112 lines
2.9 KiB
C
112 lines
2.9 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14002dda0 FUN_14002dda0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14002dda0(longlong *param_1,ulonglong param_2)
|
|
|
|
{
|
|
longlong lVar1;
|
|
longlong lVar2;
|
|
longlong lVar3;
|
|
undefined8 *puVar4;
|
|
undefined8 *puVar5;
|
|
undefined8 *puVar6;
|
|
longlong *plVar7;
|
|
longlong *plVar8;
|
|
longlong lVar9;
|
|
ulonglong uVar10;
|
|
undefined8 *puVar11;
|
|
longlong *plVar12;
|
|
double dVar13;
|
|
longlong *local_30;
|
|
ulonglong local_28;
|
|
|
|
lVar9 = param_1[4];
|
|
lVar1 = param_1[1];
|
|
lVar2 = *param_1;
|
|
local_30 = (longlong *)0x0;
|
|
local_28 = param_2;
|
|
FUN_14002dff0(&local_30);
|
|
lVar3 = param_1[1];
|
|
puVar4 = (undefined8 *)*param_1;
|
|
*param_1 = 0;
|
|
param_1[1] = lVar3;
|
|
param_1[4] = 0;
|
|
for (plVar12 = (longlong *)param_1[6]; plVar12 != (longlong *)(lVar2 + lVar1 * 8);
|
|
plVar12 = plVar12 + 1) {
|
|
plVar8 = (longlong *)*plVar12;
|
|
while (plVar8 != (longlong *)0x0) {
|
|
uVar10 = (ulonglong)(longlong)(int)plVar8[1] % local_28;
|
|
*plVar12 = *plVar8;
|
|
*plVar8 = local_30[uVar10];
|
|
local_30[uVar10] = (longlong)plVar8;
|
|
plVar8 = (longlong *)*plVar12;
|
|
}
|
|
}
|
|
param_1[4] = lVar9;
|
|
plVar12 = (longlong *)*param_1;
|
|
*param_1 = (longlong)local_30;
|
|
uVar10 = param_1[1];
|
|
param_1[1] = local_28;
|
|
if (param_1[4] == 0) {
|
|
param_1[6] = *param_1 + local_28 * 8;
|
|
}
|
|
else {
|
|
plVar8 = (longlong *)*param_1;
|
|
param_1[6] = (longlong)plVar8;
|
|
lVar9 = *plVar8;
|
|
while (lVar9 == 0) {
|
|
plVar8 = plVar8 + 1;
|
|
param_1[6] = (longlong)plVar8;
|
|
lVar9 = *plVar8;
|
|
}
|
|
}
|
|
dVar13 = (double)param_1[1];
|
|
if (param_1[1] < 0) {
|
|
dVar13 = dVar13 + 1.8446744073709552e+19;
|
|
}
|
|
local_30 = plVar12;
|
|
local_28 = uVar10;
|
|
dVar13 = ceil((double)*(float *)(param_1 + 5) * dVar13);
|
|
lVar9 = -1;
|
|
if (dVar13 < 1.8446744073709552e+19) {
|
|
lVar9 = 0;
|
|
if ((9.223372036854776e+18 < dVar13) &&
|
|
(dVar13 = dVar13 - 9.223372036854776e+18, dVar13 < 9.223372036854776e+18)) {
|
|
lVar9 = -0x8000000000000000;
|
|
}
|
|
lVar9 = (longlong)dVar13 + lVar9;
|
|
}
|
|
param_1[7] = lVar9;
|
|
if (puVar4 != (undefined8 *)0x0) {
|
|
for (puVar11 = puVar4; puVar11 != puVar4 + lVar3; puVar11 = puVar11 + 1) {
|
|
puVar5 = (undefined8 *)*puVar11;
|
|
*puVar11 = 0;
|
|
while (puVar5 != (undefined8 *)0x0) {
|
|
puVar6 = (undefined8 *)*puVar5;
|
|
operator_delete(puVar5);
|
|
puVar5 = puVar6;
|
|
}
|
|
}
|
|
operator_delete(puVar4);
|
|
uVar10 = local_28;
|
|
plVar12 = local_30;
|
|
}
|
|
if (plVar12 != (longlong *)0x0) {
|
|
plVar8 = plVar12 + uVar10;
|
|
plVar7 = plVar12;
|
|
for (; plVar12 != plVar8; plVar12 = plVar12 + 1) {
|
|
puVar4 = (undefined8 *)*plVar12;
|
|
*plVar12 = 0;
|
|
while (puVar4 != (undefined8 *)0x0) {
|
|
puVar11 = (undefined8 *)*puVar4;
|
|
operator_delete(puVar4);
|
|
puVar4 = puVar11;
|
|
}
|
|
plVar7 = local_30;
|
|
}
|
|
operator_delete(plVar7);
|
|
}
|
|
return;
|
|
}
|
|
|