server-re/decomp/DBCServer_Release_x64/full/functions/0x140002630.c

36 lines
1.1 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x140002630 FUN_140002630
* Pseudocode, not original source. */
void FUN_140002630(undefined8 *param_1)
{
int iVar1;
undefined2 local_res8 [4];
*param_1 = CmdQueue::vftable;
if (param_1[1] != 0) {
local_res8[0] = 0;
EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 7));
iVar1 = FUN_1400a7630(param_1[3],local_res8);
if (iVar1 != 0) {
ReleaseSemaphore((HANDLE)param_1[2],1,(LPLONG)0x0);
}
LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 7));
WaitForSingleObject((HANDLE)param_1[1],0xffffffff);
CloseHandle((HANDLE)param_1[1]);
printf("command thread end!\n");
}
if ((HANDLE)param_1[2] != (HANDLE)0x0) {
CloseHandle((HANDLE)param_1[2]);
}
if (param_1[3] != 0) {
FUN_1400026f0();
param_1[3] = 0;
}
/* WARNING: Could not recover jumptable at 0x0001400026e7. Too many branches */
/* WARNING: Treating indirect jump as call */
DeleteCriticalSection((LPCRITICAL_SECTION)(param_1 + 7));
return;
}