Created
April 9, 2025 14:35
-
-
Save lowlevel01/ef183397a0b3110a74751e5445d10c16 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void __cdecl FUN_000b04f0(uint *param_1,uint *param_2,uint *param_3,uint param_4) | |
{ | |
int iVar1; | |
uint uVar2; | |
uint uVar3; | |
uint uVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
uint *puVar8; | |
undefined4 *puVar9; | |
uint uVar10; | |
uint *puVar11; | |
undefined2 *puVar12; | |
uint uVar13; | |
uint uVar14; | |
uint local_124; | |
uint local_120; | |
uint local_11c; | |
uint local_118; | |
uint local_114; | |
uint local_110; | |
uint local_10c; | |
uint local_108; | |
uint local_104; | |
uint *local_fc; | |
uint local_f8; | |
uint local_f4; | |
uint *local_ec; | |
uint *local_e8; | |
uint local_e0 [4]; | |
uint local_d0; | |
uint local_cc; | |
uint local_c8; | |
uint local_c4; | |
uint local_c0; | |
uint local_bc; | |
uint local_b8; | |
uint local_b4; | |
uint local_b0; | |
uint local_ac; | |
uint local_a8; | |
uint local_a4; | |
undefined2 local_a0 [2]; | |
uint local_9c; | |
int local_98; | |
uint local_90 [4]; | |
int local_80; | |
int local_7c; | |
int local_78; | |
int local_74; | |
int local_70; | |
int local_6c; | |
int local_68; | |
int local_64; | |
uint local_60; | |
uint local_5c; | |
int local_58; | |
int local_54; | |
undefined4 local_50; | |
if (param_4 != 0) { | |
local_fc = param_2; | |
puVar8 = param_1; | |
puVar11 = local_90; | |
for (iVar1 = 0x10; iVar1 != 0; iVar1 = iVar1 + -1) { | |
*puVar11 = *puVar8; | |
puVar8 = puVar8 + 1; | |
puVar11 = puVar11 + 1; | |
} | |
local_ec = (uint *)0x0; | |
puVar8 = param_1 + 0x10; | |
puVar9 = &local_50; | |
for (iVar1 = 0; iVar1 != 0; iVar1 = iVar1 + -1) { | |
*(short *)puVar9 = (short)*puVar8; | |
puVar8 = (uint *)((int)puVar8 + 2); | |
puVar9 = (undefined4 *)((int)puVar9 + 2); | |
} | |
do { | |
local_e8 = param_3; | |
if (param_4 < 0x40) { | |
if (param_4 != 0) { | |
uVar2 = 0; | |
if (3 < param_4) { | |
uVar2 = 0; | |
do { | |
*(undefined1 *)((int)&local_50 + uVar2) = *(undefined1 *)((int)local_fc + uVar2); | |
*(undefined1 *)((int)&local_50 + uVar2 + 1) = | |
*(undefined1 *)((int)local_fc + uVar2 + 1); | |
*(undefined1 *)((int)&local_50 + uVar2 + 2) = | |
*(undefined1 *)((int)local_fc + uVar2 + 2); | |
*(undefined1 *)((int)&local_50 + uVar2 + 3) = | |
*(undefined1 *)((int)local_fc + uVar2 + 3); | |
uVar2 = uVar2 + 4; | |
} while ((param_4 & 0x3c) != uVar2); | |
} | |
if ((param_4 & 3) != 0) { | |
uVar3 = 0; | |
do { | |
*(undefined1 *)((int)&local_50 + uVar3 + uVar2) = | |
*(undefined1 *)((int)local_fc + uVar3 + uVar2); | |
uVar3 = uVar3 + 1; | |
} while ((param_4 & 3) != uVar3); | |
} | |
} | |
local_fc = &local_50; | |
local_ec = param_3; | |
local_e8 = local_fc; | |
} | |
puVar8 = local_90; | |
puVar11 = local_e0; | |
local_9c = param_4; | |
for (iVar1 = 0x10; iVar1 != 0; iVar1 = iVar1 + -1) { | |
*puVar11 = *puVar8; | |
puVar8 = puVar8 + 1; | |
puVar11 = puVar11 + 1; | |
} | |
puVar9 = &local_50; | |
puVar12 = local_a0; | |
for (iVar1 = 0; iVar1 != 0; iVar1 = iVar1 + -1) { | |
*puVar12 = *(undefined2 *)puVar9; | |
puVar9 = (undefined4 *)((int)puVar9 + 2); | |
puVar12 = puVar12 + 1; | |
} | |
local_124 = local_e0[0]; | |
local_11c = local_e0[1]; | |
local_118 = local_c0; | |
local_114 = local_ac; | |
local_f4 = local_bc; | |
local_120 = local_c8; | |
local_10c = local_e0[2]; | |
local_104 = local_b8; | |
local_110 = local_e0[3]; | |
local_f8 = local_a4; | |
local_98 = 10; | |
local_108 = local_b4; | |
do { | |
uVar2 = local_b0 ^ local_124 + local_d0; | |
uVar3 = uVar2 << 0x10 | uVar2 >> 0x10; | |
local_118 = local_118 + uVar3; | |
uVar2 = local_118 + (local_118 & local_d0) * -2 + local_d0; | |
uVar2 = uVar2 * 0x1000 | uVar2 >> 0x14; | |
local_124 = local_124 + local_d0 + uVar2; | |
uVar3 = uVar3 ^ local_124; | |
uVar10 = uVar3 << 8 | uVar3 >> 0x18; | |
local_118 = local_118 + uVar10; | |
uVar2 = uVar2 ^ local_118; | |
uVar7 = uVar2 << 7 | uVar2 >> 0x19; | |
local_11c = local_11c + local_cc; | |
uVar2 = local_a8 ^ local_10c + local_120; | |
uVar5 = uVar2 << 0x10 | uVar2 >> 0x10; | |
uVar2 = local_120 ^ local_104 + uVar5; | |
uVar13 = uVar2 << 0xc | uVar2 >> 0x14; | |
local_10c = local_10c + local_120 + uVar13; | |
uVar2 = uVar5 + local_10c + (local_10c & uVar5) * -2; | |
uVar6 = uVar2 * 0x100 | uVar2 >> 0x18; | |
local_110 = local_110 + local_c4; | |
uVar14 = (local_f8 ^ local_110) << 0x10 | (local_f8 ^ local_110) >> 0x10; | |
local_108 = local_108 + uVar14; | |
uVar2 = local_c4 ^ local_108; | |
uVar4 = uVar2 << 0xc | uVar2 >> 0x14; | |
local_114 = local_11c + (local_114 & local_11c) * -2 + local_114; | |
local_110 = (local_110 ^ uVar4) + (uVar4 & local_110) * 2; | |
uVar14 = uVar14 ^ local_110; | |
local_110 = local_110 + uVar7; | |
uVar3 = local_114 * 0x10000 | local_114 >> 0x10; | |
local_f4 = local_f4 + uVar3; | |
uVar2 = local_cc ^ local_f4; | |
uVar2 = uVar2 << 0xc | uVar2 >> 0x14; | |
local_11c = local_11c + uVar2; | |
uVar3 = uVar3 ^ local_11c; | |
uVar3 = uVar3 << 8 | uVar3 >> 0x18; | |
local_f4 = local_f4 + uVar3; | |
uVar2 = uVar2 ^ local_f4; | |
uVar2 = uVar2 << 7 | uVar2 >> 0x19; | |
local_104 = local_104 + uVar5 + uVar6; | |
uVar13 = uVar13 ^ local_104; | |
uVar13 = uVar13 << 7 | uVar13 >> 0x19; | |
uVar5 = uVar14 << 8 | uVar14 >> 0x18; | |
local_108 = local_108 + uVar5; | |
uVar4 = uVar4 ^ local_108; | |
uVar4 = uVar4 << 7 | uVar4 >> 0x19; | |
local_124 = local_124 + uVar2; | |
uVar5 = uVar5 ^ local_124; | |
uVar5 = uVar5 << 0x10 | uVar5 >> 0x10; | |
local_104 = local_104 + uVar5; | |
uVar2 = uVar2 ^ local_104; | |
uVar2 = uVar2 << 0xc | uVar2 >> 0x14; | |
local_124 = local_124 + uVar2; | |
uVar5 = uVar5 ^ local_124; | |
local_f8 = uVar5 << 8 | uVar5 >> 0x18; | |
local_104 = local_104 + local_f8; | |
uVar2 = uVar2 ^ local_104; | |
local_cc = uVar2 << 7 | uVar2 >> 0x19; | |
local_11c = local_11c + uVar13; | |
uVar10 = uVar10 ^ local_11c; | |
uVar2 = uVar10 << 0x10 | uVar10 >> 0x10; | |
local_108 = local_108 + uVar2; | |
uVar13 = uVar13 ^ local_108; | |
uVar13 = uVar13 << 0xc | uVar13 >> 0x14; | |
local_11c = local_11c + uVar13; | |
uVar2 = uVar2 ^ local_11c; | |
local_b0 = uVar2 << 8 | uVar2 >> 0x18; | |
local_108 = local_108 + local_b0; | |
uVar13 = uVar13 ^ local_108; | |
local_120 = uVar13 << 7 | uVar13 >> 0x19; | |
local_10c = local_10c + uVar4; | |
uVar3 = uVar3 ^ local_10c; | |
uVar2 = uVar3 << 0x10 | uVar3 >> 0x10; | |
local_118 = local_118 + uVar2; | |
uVar4 = uVar4 ^ local_118; | |
uVar3 = uVar4 << 0xc | uVar4 >> 0x14; | |
uVar6 = local_110 + (local_110 & uVar6) * -2 + uVar6; | |
local_10c = local_10c + uVar3; | |
uVar2 = uVar2 ^ local_10c; | |
local_114 = uVar2 << 8 | uVar2 >> 0x18; | |
local_118 = local_118 + local_114; | |
uVar3 = uVar3 ^ local_118; | |
local_c4 = uVar3 << 7 | uVar3 >> 0x19; | |
uVar3 = uVar6 * 0x10000 | uVar6 >> 0x10; | |
local_f4 = local_f4 + uVar3; | |
uVar7 = uVar7 ^ local_f4; | |
uVar2 = uVar7 << 0xc | uVar7 >> 0x14; | |
local_110 = local_110 + uVar2; | |
uVar3 = uVar3 ^ local_110; | |
local_a8 = uVar3 << 8 | uVar3 >> 0x18; | |
local_f4 = local_f4 + local_a8; | |
uVar2 = uVar2 ^ local_f4; | |
local_d0 = uVar2 << 7 | uVar2 >> 0x19; | |
local_98 = local_98 + -1; | |
} while (local_98 != 0); | |
local_e0[0] = local_124 + local_90[0] ^ *local_fc; | |
local_e0[1] = local_11c + local_90[1] ^ local_fc[1]; | |
local_e0[2] = local_10c + local_90[2] ^ local_fc[2]; | |
local_e0[3] = local_110 + local_90[3] ^ local_fc[3]; | |
local_d0 = local_d0 + local_80 ^ local_fc[4]; | |
local_cc = local_cc + local_7c ^ local_fc[5]; | |
local_c8 = local_120 + local_78 ^ local_fc[6]; | |
local_c4 = local_c4 + local_74 ^ local_fc[7]; | |
local_c0 = local_118 + local_70 ^ local_fc[8]; | |
local_bc = local_f4 + local_6c ^ local_fc[9]; | |
local_b8 = local_104 + local_68 ^ local_fc[10]; | |
local_b4 = local_108 + local_64 ^ local_fc[0xb]; | |
local_b0 = local_b0 + local_60 ^ local_fc[0xc]; | |
local_ac = local_114 + local_5c ^ local_fc[0xd]; | |
local_a8 = local_a8 + local_58 + local_fc[0xe] + (local_fc[0xe] & local_a8 + local_58) * -2 ; | |
local_a4 = local_f8 + local_54 ^ local_fc[0xf]; | |
local_60 = local_60 + 1; | |
if (local_60 == 0) { | |
local_5c = local_5c + 1; | |
} | |
*local_e8 = local_e0[0]; | |
local_e8[1] = local_e0[1]; | |
local_e8[2] = local_e0[2]; | |
local_e8[3] = local_e0[3]; | |
local_e8[4] = local_d0; | |
local_e8[5] = local_cc; | |
local_e8[6] = local_c8; | |
local_e8[7] = local_c4; | |
local_e8[8] = local_c0; | |
local_e8[9] = local_bc; | |
local_e8[10] = local_b8; | |
local_e8[0xb] = local_b4; | |
local_e8[0xc] = local_b0; | |
local_e8[0xd] = local_ac; | |
local_e8[0xe] = local_a8; | |
local_e8[0xf] = local_a4; | |
if (local_9c < 0x41) { | |
if (local_9c - 1 < 0x3f) { | |
uVar2 = 0; | |
if (2 < local_9c - 1) { | |
uVar2 = 0; | |
do { | |
*(undefined1 *)((int)local_ec + uVar2) = *(undefined1 *)((int)local_e8 + uVar2); | |
*(undefined1 *)((int)local_ec + uVar2 + 1) = | |
*(undefined1 *)((int)local_e8 + uVar2 + 1); | |
*(undefined1 *)((int)local_ec + uVar2 + 2) = | |
*(undefined1 *)((int)local_e8 + uVar2 + 2); | |
*(undefined1 *)((int)local_ec + uVar2 + 3) = | |
*(undefined1 *)((int)local_e8 + uVar2 + 3); | |
uVar2 = uVar2 + 4; | |
} while ((local_9c & 0x3c) != uVar2); | |
} | |
if ((local_9c & 3) != 0) { | |
uVar3 = 0; | |
do { | |
*(undefined1 *)((int)local_ec + uVar3 + uVar2) = | |
*(undefined1 *)((int)local_e8 + uVar3 + uVar2); | |
uVar3 = uVar3 + 1; | |
} while ((local_9c & 3) != uVar3); | |
} | |
} | |
param_1[0xc] = local_60; | |
param_1[0xd] = local_5c; | |
param_4 = local_9c; | |
param_3 = local_e8; | |
} | |
else { | |
local_fc = local_fc + 0x10; | |
param_3 = local_e8 + 0x10; | |
param_4 = local_9c - 0x40; | |
} | |
} while (0x40 < local_9c); | |
} | |
return; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment