server-re/decomp/Agent_Release_x64/full/functions/0x14002a930.c
2026-10-14 16:45:19 -04:00

65 lines
2 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14002a930 FUN_14002a930
* Pseudocode, not original source. */
longlong * FUN_14002a930(longlong *param_1,longlong *param_2)
{
ulonglong *puVar1;
undefined1 *puVar2;
undefined8 uVar3;
undefined1 *puVar4;
undefined1 *puVar5;
longlong lVar6;
longlong lVar7;
ulonglong uVar8;
ulonglong uVar9;
if (param_1 == param_2) {
return param_1;
}
puVar2 = (undefined1 *)*param_2;
lVar6 = param_2[1] - (longlong)puVar2;
lVar6 = lVar6 / 6 + (lVar6 >> 0x3f);
lVar7 = lVar6 >> 3;
lVar6 = lVar6 >> 0x3f;
uVar8 = lVar7 - lVar6;
if (lVar7 != lVar6) {
puVar1 = (ulonglong *)*param_1;
lVar6 = param_1[1] - (longlong)puVar1;
lVar6 = lVar6 / 6 + (lVar6 >> 0x3f);
uVar9 = (lVar6 >> 3) - (lVar6 >> 0x3f);
if (uVar9 < uVar8) {
if ((ulonglong)((param_1[2] - (longlong)puVar1) / 0x30) < uVar8) {
if (puVar1 != (ulonglong *)0x0) {
FUN_14000e870(puVar1,(ulonglong *)param_1[1]);
operator_delete((void *)*param_1);
}
uVar3 = FUN_14000e760(param_1,(param_2[1] - *param_2) / 0x30);
if ((char)uVar3 == '\0') {
return param_1;
}
puVar2 = (undefined1 *)*param_1;
puVar4 = (undefined1 *)param_2[1];
puVar5 = (undefined1 *)*param_2;
}
else {
puVar5 = puVar2 + uVar9 * 0x30;
FUN_1400216d0(puVar2,puVar5,(undefined1 *)puVar1);
puVar2 = (undefined1 *)param_1[1];
puVar4 = (undefined1 *)param_2[1];
}
puVar2 = FUN_14002ab60(puVar5,puVar4,puVar2);
}
else {
puVar1 = (ulonglong *)FUN_1400216d0(puVar2,(undefined1 *)param_2[1],(undefined1 *)puVar1);
FUN_14000e870(puVar1,(ulonglong *)param_1[1]);
puVar2 = (undefined1 *)(((param_2[1] - *param_2) / 0x30) * 0x30 + *param_1);
}
param_1[1] = (longlong)puVar2;
return param_1;
}
FUN_14002aad0(param_1);
return param_1;
}