/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14013b0e0 FUN_14013b0e0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ int FUN_14013b0e0(longlong param_1,ushort param_2,undefined8 *param_3,undefined8 *param_4) { longlong lVar1; int iVar2; ulonglong uVar3; undefined1 auStack_208 [32]; undefined4 local_1e8; undefined8 local_1e4; undefined2 local_1dc; undefined8 local_1da; undefined8 local_1d2; undefined1 local_1ca [402]; ulonglong local_38; local_38 = DAT_1403463c0 ^ (ulonglong)auStack_208; local_1dc = 0; memset(local_1ca,0,0x18c); local_1da = *param_3; local_1d2 = param_3[1]; local_1e8 = 0x42501aa; local_1e4 = 0; uVar3 = param_4[1] - (longlong)*param_4 >> 2; if ((int)uVar3 != 0) { memcpy(local_1ca,(void *)*param_4,(uVar3 & 0xffffffff) << 2); } if (param_2 < 1000) { lVar1 = *(longlong *)(*(longlong *)(param_1 + 200) + (longlong)(short)param_2 * 8); if (lVar1 != 0) { EnterCriticalSection((LPCRITICAL_SECTION)(lVar1 + 0x38)); iVar2 = FUN_1400a7630(*(undefined8 *)(lVar1 + 0x18),&local_1e8); if (iVar2 != 0) { ReleaseSemaphore(*(HANDLE *)(lVar1 + 0x10),1,(LPLONG)0x0); } LeaveCriticalSection((LPCRITICAL_SECTION)(lVar1 + 0x38)); return iVar2; } } else { wprintf(L"Invalid Queue Index\n"); } return 0; }