87 lines
2.7 KiB
C
87 lines
2.7 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401c8bf0 FUN_1401c8bf0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1401c8bf0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined8 uVar2;
|
|
longlong lVar3;
|
|
longlong lVar4;
|
|
double dVar5;
|
|
undefined8 uVar6;
|
|
undefined1 uVar7;
|
|
|
|
uVar6 = 0xfffffffffffffffe;
|
|
uVar2 = (**(code **)(*param_1 + 0x58))();
|
|
FUN_14016db50(uVar2);
|
|
uVar7 = 1;
|
|
dVar5 = (double)(**(code **)(param_1[0xe] + 0x1c0))();
|
|
lVar4 = 0;
|
|
if (param_1[0xbb] != 0) {
|
|
lVar4 = *(longlong *)(param_1[0xbb] + 0x38);
|
|
}
|
|
FUN_1401c5960(param_1 + 0x2ef,*(undefined8 *)(lVar4 + 0x100),param_3,param_4,uVar6,uVar2,uVar7);
|
|
if ((char)param_1[0x2f1] != '\0') {
|
|
if (((longlong *)param_1[0x2a4] != (longlong *)0x0) &&
|
|
(lVar4 = *(longlong *)param_1[0x2a4], lVar4 != 0)) {
|
|
FUN_1401fe090(lVar4 + -0x40,dVar5);
|
|
if (param_1[0x2ce] == 0) {
|
|
lVar4 = 0;
|
|
}
|
|
else {
|
|
lVar4 = param_1[0x2cc];
|
|
}
|
|
for (; lVar4 != 0; lVar4 = *(longlong *)(lVar4 + 0x10)) {
|
|
lVar3 = 0;
|
|
if (*(longlong **)(lVar4 + 8) != (longlong *)0x0) {
|
|
lVar3 = **(longlong **)(lVar4 + 8);
|
|
}
|
|
if (*(char *)(lVar3 + 0x684) == '\0') {
|
|
if ((*(longlong **)(lVar3 + 0x18) != (longlong *)0x0) &&
|
|
(**(longlong **)(lVar3 + 0x18) != 0)) {
|
|
uVar6 = FUN_1401fa4b0(lVar3);
|
|
FUN_1401fe090(uVar6,dVar5);
|
|
}
|
|
uVar1 = FUN_1401fa620(lVar3 + 0x668);
|
|
*(undefined4 *)(lVar3 + 0x58) = uVar1;
|
|
}
|
|
}
|
|
}
|
|
if ((((longlong *)param_1[699] != (longlong *)0x0) &&
|
|
(lVar4 = *(longlong *)param_1[699], lVar4 != 0)) && (lVar4 != 0x40)) {
|
|
if (lVar4 != 0) {
|
|
lVar4 = lVar4 + -0x40;
|
|
}
|
|
FUN_1401f9a10(lVar4,dVar5);
|
|
}
|
|
}
|
|
if (DAT_140344c88 < dVar5 - (double)param_1[0x1a]) {
|
|
if (((longlong *)param_1[0x2a4] != (longlong *)0x0) &&
|
|
(lVar4 = *(longlong *)param_1[0x2a4], lVar4 != 0)) {
|
|
FUN_1401b69d0(*(undefined8 *)(lVar4 + 200),dVar5);
|
|
}
|
|
if (param_1[0x2ce] == 0) {
|
|
lVar4 = 0;
|
|
}
|
|
else {
|
|
lVar4 = param_1[0x2cc];
|
|
}
|
|
for (; lVar4 != 0; lVar4 = *(longlong *)(lVar4 + 0x10)) {
|
|
lVar3 = 0;
|
|
if (*(longlong **)(lVar4 + 8) != (longlong *)0x0) {
|
|
lVar3 = **(longlong **)(lVar4 + 8);
|
|
}
|
|
if (((*(char *)(lVar3 + 0x684) == '\0') && (*(longlong **)(lVar3 + 0x18) != (longlong *)0x0))
|
|
&& (**(longlong **)(lVar3 + 0x18) != 0)) {
|
|
lVar3 = FUN_1401fa4b0();
|
|
FUN_1401b69d0(*(undefined8 *)(lVar3 + 0x108),dVar5);
|
|
}
|
|
}
|
|
param_1[0x1a] = (longlong)dVar5;
|
|
}
|
|
FUN_14016dbe0(uVar2);
|
|
return;
|
|
}
|
|
|