server-re/decomp/DBCServer_Release_x64/full/functions/0x1401c8e70.c

51 lines
1.6 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401c8e70 FUN_1401c8e70
* Pseudocode, not original source. */
void FUN_1401c8e70(longlong param_1,undefined8 *param_2)
{
undefined8 uVar1;
longlong lVar2;
undefined1 uVar3;
longlong lVar4;
uVar1 = (**(code **)(*(longlong *)(param_1 + -0x70) + 0x58))();
FUN_14016db50(uVar1);
*param_2 = *(undefined8 *)(param_1 + 0x5e8);
param_2[1] = *(undefined8 *)(param_1 + 0x5f0);
param_2[2] = *(undefined8 *)(param_1 + 0x5f8);
param_2[3] = *(undefined8 *)(param_1 + 0x600);
param_2[4] = *(undefined8 *)(param_1 + 0x608);
param_2[5] = *(undefined8 *)(param_1 + 0x610);
param_2[6] = *(undefined8 *)(param_1 + 0x618);
param_2[7] = *(undefined8 *)(param_1 + 0x620);
*(int *)(param_2 + 6) = (int)*(undefined8 *)(param_1 + 0x1600);
if ((*(longlong **)(param_1 + 0x1500) == (longlong *)0x0) ||
(lVar2 = **(longlong **)(param_1 + 0x1500), lVar2 == 0)) {
uVar3 = 0;
}
else {
uVar3 = *(undefined1 *)(lVar2 + 0x80);
}
*(undefined1 *)((longlong)param_2 + 0x34) = uVar3;
*(undefined4 *)(param_1 + 0x620) = 0;
if (*(longlong *)(param_1 + 0x1600) == 0) {
lVar2 = 0;
}
else {
lVar2 = *(longlong *)(param_1 + 0x15f0);
}
for (; lVar2 != 0; lVar2 = *(longlong *)(lVar2 + 0x10)) {
lVar4 = 0;
if (*(longlong **)(lVar2 + 8) != (longlong *)0x0) {
lVar4 = **(longlong **)(lVar2 + 8);
}
if (*(char *)(lVar4 + 0x608) == '\0') {
*(int *)(param_1 + 0x620) = *(int *)(param_1 + 0x620) + 1;
}
}
FUN_14016dbe0(uVar1);
return;
}