Function at 0x18004fcc0
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
xorps xmm0, xmm0
mov qword [0x180069510], 0xffffffffffffffff
xor edi, edi
xor r9d, r9d
xor r8d, r8d
mov qword [0x180069528], rdi
xor edx, edx
mov qword [0x180069530], rdi
xor ecx, ecx
mov ebx, 0xffffffff
movdqu xmmword [0x180069518], xmm0
movdqu xmmword [0x180069538], xmm0
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [0x180069518], rax
test rax, rax
je 0x180050090
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [0x180069520], rax
test rax, rax
je 0x18005007c
mov qword [rsp + 0x30], rdi
lea rbp, str..VBoxUSBMon
mov rcx, rbp
mov dword [rsp + 0x28], 4
xor r9d, r9d
mov dword [rsp + 0x20], 3
mov edx, 0xc0000000
lea r8d, [rbx + 4]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [0x180069510], rax
lea rsi, str.int___cdecl_USBLibInit_void_
cmp rax, 0xffffffffffffffff
jne 0x18004fe76
lea rcx, str.VBoxUSBMon
call fcn.1800508e0
test eax, eax
jne 0x18004fe25
mov qword [rsp + 0x30], rdi
lea r8d, [rbx + 4]
mov dword [rsp + 0x28], 4
xor r9d, r9d
mov edx, 0xc0000000
mov dword [rsp + 0x20], 3
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [0x180069510], rax
cmp rax, 0xffffffffffffffff
jne 0x18004fe76
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x810010
mov ebx, eax
call qword [sym.imp.VBoxRT.dll_RTLogRelGetDefaultInstanceEx]
test rax, rax
je 0x18004fe20
mov qword [rsp + 0x38], rbp
lea rcx, str.CreateFile_failed__dwErr_u__for___s_n
mov dword [rsp + 0x30], ebx
lea edx, [rdi + 0x10]
mov qword [rsp + 0x28], rcx
lea r9, str._Rfn:__M
mov rcx, rax
mov qword [rsp + 0x20], rsi
lea r8d, [rdx + 0x71]
call qword [sym.imp.VBoxRT.dll_RTLogLoggerEx]
mov ebx, 0xffffff9a
mov rax, qword [0x180069510]
cmp rax, 0xffffffffffffffff
jne 0x18004fe76
mov ecx, 0x810010
call qword [sym.imp.VBoxRT.dll_RTLogRelGetDefaultInstanceEx]
test rax, rax
je 0x18004fe6c
mov edx, 0x10
lea rcx, str.USB_Service_not_found_n
mov qword [rsp + 0x28], rcx
lea r9, str._Rfn:__M
mov rcx, rax
mov qword [rsp + 0x20], rsi
lea r8d, [rdx + 0x71]
call qword [sym.imp.VBoxRT.dll_RTLogLoggerEx]
mov ebx, 0xffffff9a
jmp 0x180050068
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x30], rcx
xor r9d, r9d
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x78], rdi
mov edx, 0x229840
mov dword [rsp + 0x70], edi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180050005
cmp dword [rsp + 0x78], 5
jne 0x18004ffa8
call qword [sym.imp.KERNEL32.dll_CreateTimerQueue]
mov qword [0x180069538], rax
test rax, rax
je 0x18004ff9d
mov qword [rsp + 0x28], rdi
lea r8, [0x18004f240]
xor r9d, r9d
mov dword [rsp + 0x20], edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x180069528], rax
test rax, rax
je 0x18004ff72
mov rcx, qword [0x180069518]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp qword [0x180069530], rdi
je 0x18004ff40
mov rcx, qword [0x180069518]
call qword [sym.imp.KERNEL32.dll_SetEvent]
xor eax, eax
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [0x180069528]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x180069528]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [0x180069528], 0xffffffffffffffff
jmp 0x18004ff7d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, 0xffffffff
mov rcx, qword [0x180069538]
mov rdx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_DeleteTimerQueueEx]
mov qword [0x180069538], rdi
jmp 0x180050050
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x180050050
mov ecx, 0x810010
call qword [sym.imp.VBoxRT.dll_RTLogRelGetDefaultInstanceEx]
mov rcx, rax
test rax, rax
je 0x18005004b
mov eax, dword [rsp + 0x7c]
lea r9, str._Rfn:__M
mov qword [rsp + 0x48], rdi
mov edx, 0x10
mov dword [rsp + 0x40], 5
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x30], eax
lea r8d, [rdx + 0x71]
lea rax, str.USB_Monitor_driver_version_mismatch__driver_u._u_library_u._u_n
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.VBoxRT.dll_RTLogLoggerEx]
jmp 0x18005004b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x810010
mov ebx, eax
call qword [sym.imp.VBoxRT.dll_RTLogRelGetDefaultInstanceEx]
test rax, rax
je 0x18005004b
mov edx, 0x10
mov dword [rsp + 0x30], ebx
lea rcx, str.SUPUSBFLT_IOCTL_GET_VERSION_failed__dwErr_u__n
mov qword [rsp + 0x28], rcx
lea r9, str._Rfn:__M
mov rcx, rax
mov qword [rsp + 0x20], rsi
lea r8d, [rdx + 0x71]
call qword [sym.imp.VBoxRT.dll_RTLogLoggerEx]
mov ebx, 0xfffffff5
mov rcx, qword [0x180069510]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x180069510], 0xffffffffffffffff
mov rcx, qword [0x180069520]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x180069520], rdi
mov rcx, qword [0x180069518]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x180069518], rdi
mov eax, ebx
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret