/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400a3060 FUN_1400a3060 * Pseudocode, not original source. */ void FUN_1400a3060(longlong *param_1,undefined8 param_2,SIZE_T param_3,undefined *param_4) { int *piVar1; longlong lVar2; undefined8 uVar3; longlong lVar4; longlong lVar5; double dVar6; piVar1 = (int *)(**(code **)(*param_1 + 0x58))(param_1,param_2,param_3,param_4,0xfffffffffffffffe) ; FUN_14006b350(piVar1); dVar6 = (double)(**(code **)(param_1[0xe] + 0x1c0))(); lVar5 = 0; if (param_1[0xbb] != 0) { lVar5 = *(longlong *)(param_1[0xbb] + 0x38); } FUN_1400f4540((double *)(param_1 + 0x2ef),*(double *)(lVar5 + 0x100)); if ((char)param_1[0x2f1] != '\0') { if (((longlong *)param_1[0x2a4] != (longlong *)0x0) && (lVar5 = *(longlong *)param_1[0x2a4], lVar5 != 0)) { FUN_1400f3ae0(lVar5 + -0x40,dVar6,param_3,param_4); if (param_1[0x2ce] == 0) { lVar5 = 0; } else { lVar5 = param_1[0x2cc]; } for (; lVar5 != 0; lVar5 = *(longlong *)(lVar5 + 0x10)) { lVar4 = 0; if (*(longlong **)(lVar5 + 8) != (longlong *)0x0) { lVar4 = **(longlong **)(lVar5 + 8); } if (*(char *)(lVar4 + 0x684) == '\0') { if ((*(longlong **)(lVar4 + 0x18) != (longlong *)0x0) && (**(longlong **)(lVar4 + 0x18) != 0)) { lVar2 = FUN_1400eff40(lVar4); FUN_1400f3ae0(lVar2,dVar6,param_3,param_4); } uVar3 = FUN_1400f0070((longlong *)(lVar4 + 0x668)); *(int *)(lVar4 + 0x58) = (int)uVar3; } } } if ((((longlong *)param_1[699] != (longlong *)0x0) && (lVar5 = *(longlong *)param_1[699], lVar5 != 0)) && (lVar5 != 0x40)) { if (lVar5 != 0) { lVar5 = lVar5 + -0x40; } FUN_1400ef470(lVar5,dVar6); } } if (DAT_1401ac058 < dVar6 - (double)param_1[0x1a]) { if (((longlong *)param_1[0x2a4] != (longlong *)0x0) && (lVar5 = *(longlong *)param_1[0x2a4], lVar5 != 0)) { FUN_1400d48a0(*(longlong **)(lVar5 + 200),dVar6,param_3,param_4); } if (param_1[0x2ce] == 0) { lVar5 = 0; } else { lVar5 = param_1[0x2cc]; } for (; lVar5 != 0; lVar5 = *(longlong *)(lVar5 + 0x10)) { lVar4 = 0; if (*(longlong **)(lVar5 + 8) != (longlong *)0x0) { lVar4 = **(longlong **)(lVar5 + 8); } if (((*(char *)(lVar4 + 0x684) == '\0') && (*(longlong **)(lVar4 + 0x18) != (longlong *)0x0)) && (**(longlong **)(lVar4 + 0x18) != 0)) { lVar4 = FUN_1400eff40(lVar4); FUN_1400d48a0(*(longlong **)(lVar4 + 0x108),dVar6,param_3,param_4); } } param_1[0x1a] = (longlong)dVar6; } FUN_14006b3e0((longlong)piVar1); return; }