/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400c18f0 FUN_1400c18f0 * Pseudocode, not original source. */ void FUN_1400c18f0(longlong param_1,wchar_t *param_2,SIZE_T *param_3,TypeDescriptor *param_4) { int *piVar1; double dVar2; FUN_1400f4540((double *)(param_1 + 0x188),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 0x198) == '\x01') { FUN_140087480(*(longlong **)(param_1 + 0x148),param_2,param_3,param_4); } FUN_1400f4540((double *)(param_1 + 0x1a0),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 0x1b0) == '\x01') { FUN_140099000(*(longlong **)(param_1 + 0x148),param_2,param_3,(longlong)param_4); } FUN_1400f4540((double *)(param_1 + 0x1b8),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 0x1c8) == '\x01') { FUN_14009f660(*(SIZE_T **)(param_1 + 0x148)); } FUN_1400f4540((double *)(param_1 + 0x1d0),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 0x1e0) == '\x01') { FUN_140088e10(*(longlong **)(param_1 + 0x148),param_2,(longlong)param_3,param_4); } FUN_1400f4540((double *)(param_1 + 0xa0),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 0xb0) == '\x01') { FUN_14007e330(*(SIZE_T **)(param_1 + 0x148),param_2,(SIZE_T)param_3,(undefined *)param_4); } FUN_1400f4540((double *)(param_1 + 0xb8),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 200) == '\x01') { FUN_14009fee0(*(undefined ****)(param_1 + 0x148),param_2,(undefined *)param_3,param_4); } FUN_1400f4540((double *)(param_1 + 0x248),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 600) == '\x01') { piVar1 = (int *)(**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))(); FUN_14006b350(piVar1); if (DAT_1401b42cf != '\0') { param_3 = (SIZE_T *)**(longlong **)(param_1 + 0x148); param_2 = L"Proud::CNetThreads_S::Heartbeat_One"; (*(code *)param_3[0x19])(); } dVar2 = (double)(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x118) + 8))(); FUN_140091240(*(longlong *)(param_1 + 0x148) + 0x2d8,dVar2); FUN_14006b3e0((longlong)piVar1); } if (*(int *)(*(longlong *)(param_1 + 0x148) + 600) != 0) { FUN_1400f4540((double *)(param_1 + 0x1e8),*(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0)); if (*(char *)(param_1 + 0x1f8) == '\x01') { LOCK(); *(undefined4 *)(param_1 + 0x200) = 1; UNLOCK(); } } FUN_14008b760(*(longlong *)(param_1 + 0x148),param_2,param_3,param_4); return; }