96 lines
3.2 KiB
C
96 lines
3.2 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14013a170 FUN_14013a170
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14013a170(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined8 *puVar2;
|
|
uint uVar3;
|
|
undefined8 *puVar5;
|
|
undefined8 *puVar6;
|
|
undefined8 *puVar7;
|
|
undefined4 local_res10 [2];
|
|
undefined8 *local_50;
|
|
undefined8 *local_48;
|
|
undefined8 *local_40;
|
|
undefined8 *puVar4;
|
|
|
|
if (0 < *(short *)(param_2 + 0xe)) {
|
|
puVar5 = (undefined8 *)(param_2 + 0x10);
|
|
puVar4 = (undefined8 *)0x0;
|
|
local_50 = (undefined8 *)0x0;
|
|
local_48 = (undefined8 *)0x0;
|
|
local_40 = (undefined8 *)0x0;
|
|
puVar7 = puVar4;
|
|
if (0 < *(short *)(param_2 + 0xe)) {
|
|
do {
|
|
if ((puVar5 < local_48) && (puVar7 <= puVar5)) {
|
|
puVar6 = puVar7;
|
|
if (local_48 == local_40) {
|
|
FUN_14004a260(&local_50);
|
|
puVar6 = local_50;
|
|
}
|
|
puVar2 = (undefined8 *)
|
|
((((longlong)puVar5 - (longlong)puVar7) / 0x1c) * 0x1c + (longlong)puVar6);
|
|
puVar7 = puVar6;
|
|
if (local_48 != (undefined8 *)0x0) {
|
|
*local_48 = *puVar2;
|
|
local_48[1] = puVar2[1];
|
|
local_48[2] = puVar2[2];
|
|
uVar1 = *(undefined4 *)(puVar2 + 3);
|
|
LAB_14013a26b:
|
|
*(undefined4 *)(local_48 + 3) = uVar1;
|
|
puVar7 = local_50;
|
|
}
|
|
}
|
|
else {
|
|
if (local_48 == local_40) {
|
|
FUN_14004a260(&local_50);
|
|
puVar7 = local_50;
|
|
}
|
|
if (local_48 != (undefined8 *)0x0) {
|
|
*local_48 = *puVar5;
|
|
local_48[1] = puVar5[1];
|
|
local_48[2] = puVar5[2];
|
|
uVar1 = *(undefined4 *)(puVar5 + 3);
|
|
goto LAB_14013a26b;
|
|
}
|
|
}
|
|
local_48 = (undefined8 *)((longlong)local_48 + 0x1c);
|
|
if (((longlong)local_48 - (longlong)puVar7) / 0x1c == 0x32) {
|
|
*(int *)(param_1 + 0x5fc) = *(int *)(param_1 + 0x5fc) + 1;
|
|
local_res10[0] = *(undefined4 *)(param_2 + 4);
|
|
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x180))
|
|
((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0,
|
|
local_res10,&local_50);
|
|
puVar7 = local_50;
|
|
if (local_50 != local_48) {
|
|
local_48 = local_50;
|
|
}
|
|
}
|
|
puVar5 = (undefined8 *)((longlong)puVar5 + 0x1c);
|
|
uVar3 = (int)puVar4 + 1;
|
|
puVar4 = (undefined8 *)(ulonglong)uVar3;
|
|
} while ((int)uVar3 < (int)*(short *)(param_2 + 0xe));
|
|
puVar4 = puVar7;
|
|
if (puVar7 != local_48) {
|
|
*(int *)(param_1 + 0x5fc) = *(int *)(param_1 + 0x5fc) + 1;
|
|
local_res10[0] = *(undefined4 *)(param_2 + 4);
|
|
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x180))
|
|
((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0,
|
|
local_res10,&local_50);
|
|
puVar4 = local_50;
|
|
if (local_50 != local_48) {
|
|
local_48 = local_50;
|
|
}
|
|
}
|
|
}
|
|
if (puVar4 != (undefined8 *)0x0) {
|
|
operator_delete(puVar4);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|