/* 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; }