server-re/decomp/MessageServer_Release_x64/full/functions/0x1400a3680.c

53 lines
1.9 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400a3680 FUN_1400a3680
* Pseudocode, not original source. */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void FUN_1400a3680(longlong param_1)
{
int *piVar1;
longlong lVar2;
double dVar3;
undefined8 uVar4;
undefined4 local_res8 [2];
if ((*(char *)(param_1 + 0x6cc) != '\0') &&
(dVar3 = (double)(**(code **)(*(longlong *)(param_1 + 0x70) + 0x1c0))(param_1 + 0x70),
_DAT_1401ac168 < dVar3 - *(double *)(param_1 + 0x638))) {
if (*(longlong *)(param_1 + 0x1670) == 0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = *(int **)(param_1 + 0x1660);
}
for (; piVar1 != (int *)0x0; piVar1 = *(int **)(piVar1 + 4)) {
uVar4 = (**(code **)(*(longlong *)(param_1 + 0x70) + 0x1c0))(param_1 + 0x70);
*(undefined8 *)(param_1 + 0x638) = uVar4;
if (piVar1 == (int *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x80004005);
}
if (*(int *)(param_1 + 0x1578) < *piVar1) {
lVar2 = 0;
if (*(longlong **)(piVar1 + 2) != (longlong *)0x0) {
lVar2 = **(longlong **)(piVar1 + 2);
}
if ((*(char *)(lVar2 + 0x684) == '\0') && (*(char *)(lVar2 + 0x608) == '\0')) {
if ((*(double *)(lVar2 + 0x50) <= 0.0) ||
((*(double *)(lVar2 + 0x60) <= 0.0 ||
(dVar3 = *(double *)(lVar2 + 0x60) + *(double *)(param_1 + 0x4f8),
*(double *)(lVar2 + 0x50) <= dVar3)))) {
dVar3 = *(double *)(lVar2 + 0x50);
}
local_res8[0] = (undefined4)(longlong)(dVar3 * 1000.0);
(**(code **)(*(longlong *)(param_1 + 0x1818) + 0x110))
((longlong *)(param_1 + 0x1818),1,&DAT_1401b6110,lVar2 + 0x56c,local_res8);
}
}
}
}
return;
}