/* 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; }