/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14006c2f0 FUN_14006c2f0 * Pseudocode, not original source. */ void FUN_14006c2f0(longlong *param_1) { int *piVar1; int iVar2; longlong *plVar3; longlong lVar4; lVar4 = *param_1; plVar3 = *(longlong **)(lVar4 + -0x18); if (*(int *)(lVar4 + -0x10) != 0) { if (*(int *)(lVar4 + -8) < 0) { if (*(int *)(lVar4 + -0xc) < 0) { /* WARNING: Subroutine does not return */ FUN_1400064e0(0x80070057); } *(undefined4 *)(lVar4 + -0x10) = 0; *(undefined2 *)*param_1 = 0; return; } LOCK(); piVar1 = (int *)(lVar4 + -8); iVar2 = *piVar1; *piVar1 = *piVar1 + -1; UNLOCK(); if (iVar2 + -1 < 1) { (**(code **)(**(longlong **)(lVar4 + -0x18) + 8))(); } lVar4 = (**(code **)(*plVar3 + 0x18))(plVar3); *param_1 = lVar4 + 0x18; } return; }