2026-05-31 08:38
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Could not reconcile some variable overlaps */
void FUN_1400657c8(char *param_1,uint *param_2,ulonglong param_3,uint *param_4)
{
uint *puVar1;
int iVar2;
longlong lVar3;
undefined *puVar4;
uint *puVar5;
char *pcVar6;
int iVar7;
undefined4 *puVar8;
undefined *puVar9;
uint *local_res10;
undefined auStack136 [16];
uint *local_78;
char *local_70;
uint *local_68;
undefined4 local_60;
byte local_5c;
byte local_5b;
byte local_5a;
byte local_59;
byte local_58;
byte local_57;
byte local_56;
byte local_55;
byte local_54;
byte local_53;
byte local_52;
byte local_51;
uint local_50 [6];
if (param_3 != 0) {
param_3 = param_3 >> 4;
if (*param_1 == '\0') {
puVar5 = (uint *)(param_1 + 8);
local_68 = puVar5;
if (param_3 != 0) {
puVar8 = (undefined4 *)((longlong)&local_60 - (longlong)param_4);
local_78 = (uint *)((longlong)local_50 - (longlong)param_2);
pcVar6 = param_1 + (0x18 - (longlong)local_50);
puVar9 = (undefined *)((longlong)param_4 + 1);
local_70 = pcVar6;
local_res10 = param_2;
do {
if (param_1[1] == '\0') {
local_50[0] = *local_res10;
local_50[1] = local_res10[1];
local_50[2] = local_res10[2];
local_50[3] = local_res10[3];
}
else {
lVar3 = 4;
puVar1 = local_res10;
do {
*(uint *)((longlong)puVar1 + (longlong)local_78) =
*(uint *)((longlong)puVar1 + (longlong)((longlong)puVar5 - (longlong)local_res10)
) ^ *puVar1;
puVar1 = puVar1 + 1;
lVar3 = lVar3 + -1;
} while (lVar3 != 0);
}
lVar3 = 0;
do {
*(uint *)((longlong)&local_60 + lVar3) =
*(uint *)((longlong)(uint *)((longlong)local_50 + lVar3) + (longlong)pcVar6) ^
*(uint *)((longlong)local_50 + lVar3);
lVar3 = lVar3 + 4;
} while (lVar3 < 0x10);
puVar5 = (uint *)(puVar9 + -1);
*puVar5 = *(uint *)(&DAT_1400c8f00 + (ulonglong)(byte)local_60 * 4) ^
*(uint *)(&DAT_1400c9300 + (ulonglong)local_5b * 4) ^
*(uint *)(&DAT_1400c9700 + (ulonglong)local_56 * 4) ^
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_51 * 4);
*(uint *)(puVar9 + 3) =
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_60._3_1_ * 4) ^
*(uint *)(&DAT_1400c8f00 + (ulonglong)local_5c * 4) ^
*(uint *)(&DAT_1400c9300 + (ulonglong)local_57 * 4) ^
*(uint *)(&DAT_1400c9700 + (ulonglong)local_52 * 4);
*(uint *)(puVar9 + 7) =
*(uint *)(&DAT_1400c9700 + (ulonglong)local_60._2_1_ * 4) ^
*(uint *)(&DAT_1400c8f00 + (ulonglong)local_58 * 4) ^
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_59 * 4) ^
*(uint *)(&DAT_1400c9300 + (ulonglong)local_53 * 4);
*(uint *)(puVar9 + 0xb) =
*(uint *)(&DAT_1400c9300 + (ulonglong)local_60._1_1_ * 4) ^
*(uint *)(&DAT_1400c9700 + (ulonglong)local_5a * 4) ^
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_55 * 4) ^
*(uint *)(&DAT_1400c8f00 + (ulonglong)local_54 * 4);
iVar2 = *(int *)(param_1 + 4);
if (1 < iVar2 + -1) {
iVar7 = 1;
puVar4 = auStack136 + -(longlong)param_1;
puVar1 = (uint *)(param_1 + 0x28);
do {
lVar3 = 4;
do {
*(uint *)((longlong)puVar1 + (longlong)puVar4) =
*(uint *)((longlong)puVar1 +
(longlong)puVar4 +
(longlong)((longlong)puVar9 - ((longlong)&local_60 + 1))) ^ *puVar1;
puVar1 = puVar1 + 1;
lVar3 = lVar3 + -1;
} while (lVar3 != 0);
iVar7 = iVar7 + 1;
puVar4 = puVar4 + -0x10;
*param_4 = *(uint *)(&DAT_1400c8f00 + (ulonglong)(byte)local_60 * 4) ^
*(uint *)(&DAT_1400c9300 + (ulonglong)local_5b * 4) ^
*(uint *)(&DAT_1400c9700 + (ulonglong)local_56 * 4) ^
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_51 * 4);
*(uint *)(puVar9 + 3) =
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_60._3_1_ * 4) ^
*(uint *)(&DAT_1400c8f00 + (ulonglong)local_5c * 4) ^
*(uint *)(&DAT_1400c9300 + (ulonglong)local_57 * 4) ^
*(uint *)(&DAT_1400c9700 + (ulonglong)local_52 * 4);
*(uint *)(puVar9 + 7) =
*(uint *)(&DAT_1400c9700 + (ulonglong)local_60._2_1_ * 4) ^
*(uint *)(&DAT_1400c8f00 + (ulonglong)local_58 * 4) ^
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_59 * 4) ^
*(uint *)(&DAT_1400c9300 + (ulonglong)local_53 * 4);
*(uint *)(puVar9 + 0xb) =
*(uint *)(&DAT_1400c9300 + (ulonglong)local_60._1_1_ * 4) ^
*(uint *)(&DAT_1400c9700 + (ulonglong)local_5a * 4) ^
*(uint *)(&DAT_1400c9b00 + (ulonglong)local_55 * 4) ^
*(uint *)(&DAT_1400c8f00 + (ulonglong)local_54 * 4);
iVar2 = *(int *)(param_1 + 4);
pcVar6 = local_70;
} while (iVar7 < iVar2 + -1);
}
lVar3 = 4;
puVar1 = puVar5;
do {
*(uint *)((longlong)puVar1 + (longlong)puVar8) =
*(uint *)((longlong)puVar1 +
(longlong)param_1 + ((longlong)iVar2 * 0x10 - (longlong)puVar5) + 8) ^
*puVar1;
puVar1 = puVar1 + 1;
lVar3 = lVar3 + -1;
} while (lVar3 != 0);
lVar3 = 4;
*(undefined1 *)puVar5 = (&DAT_1400c8f01)[(ulonglong)(byte)local_60 * 4];
*puVar9 = (&DAT_1400c8f01)[(ulonglong)local_5b * 4];
puVar9[1] = (&DAT_1400c8f01)[(ulonglong)local_56 * 4];
puVar9[2] = (&DAT_1400c8f01)[(ulonglong)local_51 * 4];
puVar9[3] = (&DAT_1400c8f01)[(ulonglong)local_5c * 4];
puVar9[4] = (&DAT_1400c8f01)[(ulonglong)local_57 * 4];
puVar9[5] = (&DAT_1400c8f01)[(ulonglong)local_52 * 4];
puVar9[6] = (&DAT_1400c8f01)[(ulonglong)local_60._3_1_ * 4];
puVar9[7] = (&DAT_1400c8f01)[(ulonglong)local_58 * 4];
puVar9[8] = (&DAT_1400c8f01)[(ulonglong)local_53 * 4];
puVar9[9] = (&DAT_1400c8f01)[(ulonglong)local_60._2_1_ * 4];
puVar9[10] = (&DAT_1400c8f01)[(ulonglong)local_59 * 4];
puVar9[0xb] = (&DAT_1400c8f01)[(ulonglong)local_54 * 4];
puVar9[0xc] = (&DAT_1400c8f01)[(ulonglong)local_60._1_1_ * 4];
puVar9[0xd] = (&DAT_1400c8f01)[(ulonglong)local_5a * 4];
puVar9[0xe] = (&DAT_1400c8f01)[(ulonglong)local_55 * 4];
iVar2 = *(int *)(param_1 + 4);
puVar1 = puVar5;
do {
*puVar1 = *puVar1 ^ *(uint *)((longlong)puVar1 +
(longlong)param_1 +
((longlong)iVar2 * 0x10 - (longlong)puVar5) + 0x18);
puVar1 = puVar1 + 1;
lVar3 = lVar3 + -1;
} while (lVar3 != 0);
local_res10 = local_res10 + 4;
param_4 = param_4 + 4;
local_78 = local_78 + -4;
puVar8 = puVar8 + 0xfffffffffffffffc;
puVar9 = puVar9 + 0x10;
param_3 = param_3 - 1;
} while (param_3 != 0);
}
puVar5 = (uint *)((longlong)puVar5 - (longlong)local_68);
lVar3 = 4;
do {
*local_68 = *(uint *)((longlong)puVar5 + (longlong)local_68);
local_68 = local_68 + 1;
lVar3 = lVar3 + -1;
} while (lVar3 != 0);
}
else {
FUN_140065c3c((longlong)param_1,(undefined *)param_2,param_3,(undefined *)param_4);
}
}
return;
}