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

54 lines
1.8 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400e0ab0 FUN_1400e0ab0
* Pseudocode, not original source. */
void FUN_1400e0ab0(longlong param_1,undefined8 param_2,undefined **param_3,double *param_4)
{
longlong lVar1;
double dVar2;
undefined **ppuVar3;
int iVar4;
longlong lVar5;
undefined *puVar6;
double dVar7;
(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x78) + 0x10))
(*(longlong *)(param_1 + 0x108) + 0x78);
puVar6 = (undefined *)
(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x70) + 0x1c0))
(*(longlong *)(param_1 + 0x108) + 0x70);
lVar1 = *(longlong *)(param_1 + 0x108);
iVar4 = 0;
if (*(longlong *)(lVar1 + 0x1670) == 0) {
lVar5 = 0;
}
else {
lVar5 = *(longlong *)(lVar1 + 0x1660);
}
for (; lVar5 != 0; lVar5 = *(longlong *)(lVar5 + 0x10)) {
ppuVar3 = (undefined **)0x0;
if (*(undefined8 **)(lVar5 + 8) != (undefined8 *)0x0) {
ppuVar3 = (undefined **)**(undefined8 **)(lVar5 + 8);
}
if (*(char *)((longlong)ppuVar3 + 0x684) == '\0') {
FUN_1400f29c0(ppuVar3,puVar6,param_3,param_4);
if (((longlong *)ppuVar3[5] != (longlong *)0x0) && (*(longlong *)ppuVar3[5] != 0)) {
iVar4 = iVar4 + 1;
}
}
}
if (lVar1 + 0x1650 == *(longlong *)(param_1 + 0x108) + 0x1650) {
dVar2 = 1.0;
if (1.0 <= (double)iVar4) {
dVar2 = (double)iVar4;
}
*(double *)(*(longlong *)(param_1 + 0x108) + 0x648) = DAT_1401ac090 * dVar2;
dVar7 = FUN_14006cd20();
*(double *)(*(longlong *)(param_1 + 0x108) + 0x640) = dVar7 * dVar2;
return;
}
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x80004005);
}