/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c62f0 FUN_1401c62f0 * Pseudocode, not original source. */ void FUN_1401c62f0(longlong param_1) { undefined8 *puVar1; longlong *plVar2; undefined8 uVar3; int iVar4; longlong lVar5; FUN_14016db50(); if (0 < *(int *)(param_1 + 0x48)) { FUN_14016f090( L"CHeartbeatWorkThread must be cleaned up only after every work items are unregistered!" ); } *(undefined1 *)(param_1 + 0x80) = 0; iVar4 = 0; lVar5 = 0; if (0 < *(int *)(param_1 + 0x68)) { do { if ((lVar5 < 0) || (*(int *)(param_1 + 0x68) <= iVar4)) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } puVar1 = *(undefined8 **)(*(longlong *)(param_1 + 0x60) + lVar5 * 8); uVar3 = 0; if (puVar1 != (undefined8 *)0x0) { uVar3 = *puVar1; } FUN_140199740(uVar3); iVar4 = iVar4 + 1; lVar5 = lVar5 + 1; } while (iVar4 < *(int *)(param_1 + 0x68)); } FUN_14016dbe0(param_1); *(undefined ***)(param_1 + 0x50) = Proud::CFastArray,0>::vftable; if (0 < *(int *)(param_1 + 0x68)) { FUN_1401a7f40(*(undefined8 *)(param_1 + 0x60),(longlong)*(int *)(param_1 + 0x68)); } if (*(longlong *)(param_1 + 0x60) != 0) { plVar2 = *(longlong **)(param_1 + 0x58); if (plVar2 == (longlong *)0x0) { FUN_14016d970(); } else { (**(code **)(*plVar2 + 0x18))(plVar2,*(longlong *)(param_1 + 0x60)); } } FUN_1401c5f30(param_1 + 0x38); FUN_14016dc00(param_1); return; }