Загрузка данных


undefined8 FUN_ffffffffc0b12000(uint *param_1)

{
  uint uVar1;
  uint uVar2;
  long lVar3;
  undefined8 uVar4;
  uint uVar5;
  long extraout_RDX;
  uint *puVar6;
  uint uVar7;
  long in_GS_OFFSET;
  uint auStack_50 [8];
  uint auStack_30 [8];
  long lStack_10;
  
  lStack_10 = *(long *)(in_GS_OFFSET + 0x28);
  lVar3 = 0;
  do {
    *(undefined4 *)((long)auStack_30 + lVar3) = *(undefined4 *)((long)param_1 + lVar3 + 0x20);
    lVar3 = lVar3 + 4;
  } while (lVar3 != 0x20);
  uVar5 = param_1[8] + param_1[0x10] + 0x4d34d34d;
  param_1[8] = uVar5;
  uVar2 = ~-(uint)(uVar5 < auStack_30[0]) + 0xd34d34d4 + param_1[9];
  param_1[9] = uVar2;
  uVar2 = ~-(uint)(uVar2 < auStack_30[1]) + 0x34d34d35 + param_1[10];
  param_1[10] = uVar2;
  uVar2 = ~-(uint)(uVar2 < auStack_30[2]) + 0x4d34d34e + param_1[0xb];
  param_1[0xb] = uVar2;
  uVar2 = ~-(uint)(uVar2 < auStack_30[3]) + 0xd34d34d4 + param_1[0xc];
  param_1[0xc] = uVar2;
  uVar2 = ~-(uint)(uVar2 < auStack_30[4]) + 0x34d34d35 + param_1[0xd];
  param_1[0xd] = uVar2;
  uVar2 = ~-(uint)(uVar2 < auStack_30[5]) + 0x4d34d34e + param_1[0xe];
  param_1[0xe] = uVar2;
  uVar2 = ~-(uint)(uVar2 < auStack_30[6]) + 0xd34d34d4 + param_1[0xf];
  param_1[0xf] = uVar2;
  param_1[0x10] = (uint)(uVar2 < auStack_30[7]);
  lVar3 = 0;
  while( true ) {
    uVar5 = uVar5 + *(int *)((long)param_1 + lVar3);
    uVar2 = uVar5 & 0xffff;
    uVar7 = uVar5 >> 0x10;
    *(uint *)((long)auStack_50 + lVar3) =
         (uVar2 * uVar7 + (uVar2 * uVar2 >> 0x11) >> 0xf) + uVar7 * uVar7 ^ uVar5 * uVar5;
    if (lVar3 + 4 == 0x20) break;
    uVar5 = *(uint *)((long)param_1 + lVar3 + 0x24);
    lVar3 = lVar3 + 4;
  }
  *param_1 = (auStack_50[6] >> 0x10 | auStack_50[6] << 0x10) +
             (auStack_50[7] >> 0x10 | auStack_50[7] << 0x10) + auStack_50[0];
  param_1[1] = (auStack_50[0] >> 0x18 | auStack_50[0] << 8) + auStack_50[1] + auStack_50[7];
  param_1[2] = (auStack_50[0] >> 0x10 | auStack_50[0] << 0x10) +
               (auStack_50[1] >> 0x10 | auStack_50[1] << 0x10) + auStack_50[2];
  param_1[3] = auStack_50[1] + auStack_50[3] + (auStack_50[2] >> 0x18 | auStack_50[2] << 8);
  param_1[4] = (auStack_50[2] >> 0x10 | auStack_50[2] << 0x10) +
               (auStack_50[3] >> 0x10 | auStack_50[3] << 0x10) + auStack_50[4];
  param_1[5] = auStack_50[3] + auStack_50[5] + (auStack_50[4] >> 0x18 | auStack_50[4] << 8);
  uVar5 = (auStack_50[4] >> 0x10 | auStack_50[4] << 0x10) +
          (auStack_50[5] >> 0x10 | auStack_50[5] << 0x10) + auStack_50[6];
  puVar6 = (uint *)(ulong)uVar5;
  param_1[6] = uVar5;
  param_1[7] = (auStack_50[6] >> 0x18 | auStack_50[6] << 8) + auStack_50[7] + auStack_50[5];
  if (lStack_10 == *(long *)(in_GS_OFFSET + 0x28)) {
    return 0;
  }
  func_0xffffffffa7f9a5d0();
  uVar4 = 0xffffffff;
  if (extraout_RDX == 0x10) {
    uVar5 = puVar6[3];
    uVar2 = puVar6[2];
    uVar7 = *puVar6;
    uVar1 = puVar6[1];
    param_1[0x10] = 0;
    param_1[6] = uVar5;
    *param_1 = uVar7;
    param_1[2] = uVar1;
    param_1[4] = uVar2;
    param_1[1] = uVar2 >> 0x10 | uVar5 << 0x10;
    param_1[3] = uVar5 >> 0x10 | uVar7 << 0x10;
    param_1[5] = uVar7 >> 0x10 | uVar1 << 0x10;
    param_1[7] = uVar1 >> 0x10 | uVar2 << 0x10;
    param_1[8] = uVar2 >> 0x10 | uVar2 << 0x10;
    param_1[10] = uVar5 >> 0x10 | uVar5 << 0x10;
    param_1[0xc] = uVar7 >> 0x10 | uVar7 << 0x10;
    param_1[0xe] = uVar1 >> 0x10 | uVar1 << 0x10;
    param_1[9] = uVar1 & 0xffff | uVar7 & 0xffff0000;
    param_1[0xb] = uVar2 & 0xffff | uVar1 & 0xffff0000;
    param_1[0xd] = uVar5 & 0xffff | uVar2 & 0xffff0000;
    param_1[0xf] = uVar7 & 0xffff | uVar5 & 0xffff0000;
    FUN_ffffffffc0b12000(param_1);
    FUN_ffffffffc0b12000(param_1);
    FUN_ffffffffc0b12000(param_1);
    FUN_ffffffffc0b12000(param_1);
    lVar3 = 0;
    do {
      param_1[lVar3 + 8] = param_1[lVar3 + 8] ^ param_1[(int)lVar3 + 4U & 7];
      lVar3 = lVar3 + 1;
    } while (lVar3 != 8);
    uVar4 = 0;
  }
  return uVar4;
}