/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14013b770 FUN_14013b770 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ int FUN_14013b770(longlong param_1,ushort param_2,undefined8 *param_3,undefined4 param_4, longlong *param_5,undefined1 param_6) { longlong lVar1; int iVar2; undefined8 *puVar3; ulonglong uVar4; ulonglong uVar5; undefined1 auStack_78 [32]; undefined2 local_58; undefined2 local_56; undefined8 local_54; undefined2 local_4c; undefined8 local_4a; undefined8 local_42; undefined4 local_3a; undefined8 local_36; undefined4 local_2e; undefined1 local_2a; ulonglong local_28; local_28 = DAT_1403463c0 ^ (ulonglong)auStack_78; uVar4 = 0; local_4c = 0; local_36 = 0; local_2e = 0; local_56 = 0x4bd; local_58 = 0x2f; local_4a = *param_3; local_42 = param_3[1]; local_54 = 0; local_2a = param_6; lVar1 = *param_5; uVar5 = param_5[1] - lVar1 >> 2; if (uVar5 != 0) { puVar3 = &local_36; do { uVar4 = (ulonglong)((int)uVar4 + 1); *(undefined4 *)puVar3 = *(undefined4 *)((lVar1 - (longlong)&local_36) + (longlong)puVar3); puVar3 = (undefined8 *)((longlong)puVar3 + 4); } while (uVar4 < uVar5); } local_3a = param_4; 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_58); 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; }