Function at 0x140013180
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x290
mov rax, qword [0x140053008]
xor rax, rsp
mov qword [rsp + 0x280], rax
xor eax, eax
mov qword [rsp + 0x60], rcx
lea rdx, str.Enter_EnumerateHub___n
mov qword [rsp + 0x58], 0xffffffffffffffff
mov esi, eax
mov dword [rsp + 0x50], eax
mov edi, eax
mov dword [rsp + 0x40], eax
lea ecx, [rax + 2]
mov ebp, eax
mov ebx, eax
call fcn.1400197e0
lea rcx, str.Enter_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [rbx + 0x4c]
call fcn.140021aa0
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x14001320e
lea rcx, str.Enter_if__hubInfo__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x58]
jmp 0x140013635
mov rcx, qword [rsp + 0x60]
xor eax, eax
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], eax
mov edx, 0x40000000
mov dword [rsp + 0x20], 3
lea r8d, [rax + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x58], rax
cmp rax, 0xffffffffffffffff
jne 0x14001324f
lea rcx, str.Enter_if__hHubDevice__INVALID_HANDLE_VALUE__n
jmp 0x1400135ec
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
mov r9d, 0x4c
mov rcx, qword [rsp + 0x48]
mov edx, 0x220408
mov r8, rcx
mov dword [rsp + 0x28], 0x4c
mov qword [rsp + 0x20], rcx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140013297
lea rcx, str.Enter_if___DeviceIoControl_sizeof_USB_NODE_INFORMATION_____n
jmp 0x1400135ec
mov ecx, 0x16d
mov dword [rsp + 0x50], 0x16d
mov dword [rsp + 0x40], 0x16d
call fcn.140021aa0
mov ecx, dword [rsp + 0x40]
mov rdi, rax
call fcn.140021aa0
mov qword [rsp + 0x60], rax
mov rbp, rax
test rax, rax
je 0x1400135e5
test rdi, rdi
je 0x1400135e5
mov rax, qword [rsp + 0x48]
mov ecx, 1
mov dword [rsp + 0x44], ecx
cmp byte [rax + 6], cl
jb 0x1400135f7
nop
mov dword [rdi], ecx
lea rax, [rsp + 0x50]
mov r9d, dword [rsp + 0x50]
mov r8, rdi
mov rcx, qword [rsp + 0x58]
mov edx, 0x220448
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140013393
mov eax, dword [rsp + 0x44]
mov r8, rbp
mov rcx, qword [rsp + 0x58]
mov edx, 0x22040c
mov dword [rbp], eax
lea rax, [rsp + 0x40]
mov r9d, dword [rsp + 0x40]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14001350a
movzx eax, byte [rbp + 0x16]
mov byte [rdi + 0x16], al
movzx eax, byte [rbp + 0x18]
mov byte [rdi + 0x18], al
mov eax, dword [rbp + 0x1f]
mov dword [rdi + 0x1f], eax
movups xmm0, xmmword [rbp + 4]
movups xmmword [rdi + 4], xmm0
movzx eax, word [rbp + 0x14]
mov word [rdi + 0x14], ax
cmp byte [rdi + 0x18], 0
je 0x140013471
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x58]
call fcn.140012e10
mov rbx, rax
test rax, rax
je 0x14001345d
lea rdx, str.Find_another_hub_under_root_hub..._n
mov ecx, 2
call fcn.1400197e0
lea rcx, str.Find_another_hub_under_root_hub..._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
or rcx, 0xffffffffffffffff
nop dword [rax]
cmp word [rbx + rcx*2 + 2], 0
lea rcx, [rcx + 1]
jne 0x1400133e0
lea rcx, [rcx*2 + 0xa]
call fcn.140021aa0
mov rbp, rax
test rax, rax
je 0x140013505
lea r8, str.._
mov edx, 5
mov rcx, rax
call fcn.1400219a4
or rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x140013420
inc rdx
lea rcx, [rbp + 8]
mov r8, rbx
call fcn.1400219a4
mov rcx, rbp
call fcn.140013180
mov rcx, rbp
mov esi, eax
call fcn.140021a8c
mov rbp, qword [rsp + 0x60]
test esi, esi
jne 0x1400135f2
jmp 0x14001350a
lea rcx, str.Enter_else_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor esi, esi
jmp 0x14001350a
cmp dword [rdi + 0x1f], 0
je 0x1400134f4
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x58]
call fcn.140012f60
test rax, rax
je 0x1400134f4
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x208
call fcn.14001d250
movzx eax, word [rdi + 0xe]
lea r8, str.VID__04XPID__04X
movzx r9d, word [rdi + 0xc]
lea rcx, [rsp + 0x70]
mov edx, 0x103
mov dword [rsp + 0x20], eax
call fcn.140001040
lea r8, [rsp + 0x70]
mov ecx, 2
lea rdx, str._s_found__n
call fcn.1400197e0
lea rdx, [rsp + 0x70]
lea rcx, str._s_found__n
call fcn.14000e220
lea rcx, [rsp + 0x70]
call fcn.140009c80
test eax, eax
jne 0x14001352a
xor esi, esi
lea rcx, str.Enter_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x14001350a
mov rbp, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x44]
mov rax, qword [rsp + 0x48]
inc ecx
mov dword [rsp + 0x44], ecx
movzx eax, byte [rax + 6]
cmp ecx, eax
jbe 0x1400132f0
jmp 0x1400135f2
xor edx, edx
lea rcx, str.USB_
mov r8d, 0x208
call fcn.14001d250
lea r8, [0x140048a60]
mov edx, 0x104
lea rcx, str.USB_
call fcn.1400219a4
lea r8, [rsp + 0x70]
mov edx, 0x104
lea rcx, str.USB_
call fcn.140021a0c
lea r8, [0x140048a6c]
mov edx, 0x104
lea rcx, str.USB_
call fcn.140021a0c
lea rdx, str.USB_
lea rcx, [0x140048a70]
call fcn.14000e220
movzx r8d, byte [rdi + 0x16]
lea rdx, str.Find_the_atheros_dongle__config____d__n
mov ecx, 2
call fcn.1400197e0
movzx edx, byte [rdi + 0x16]
lea rcx, str.Find_the_atheros_dongle__config____d__n
call fcn.14000e220
cmp byte [rdi + 0x16], 0
jne 0x1400135d1
mov esi, 2
lea rcx, str.Enter_if_connectionInfoEx__CurrentConfigurationValue__NULL__n
jmp 0x1400135ec
lea rcx, str.Enter_else_bRetVal__DeviceWorksFine___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, 1
jmp 0x1400135f2
lea rcx, str.Enter__if__connectionInfo__NULL__connectionInfoEx__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x48]
mov rcx, rax
call fcn.140021a8c
test rdi, rdi
je 0x14001360c
mov rcx, rdi
call fcn.140021a8c
test rbp, rbp
je 0x140013619
mov rcx, rbp
call fcn.140021a8c
test rbx, rbx
je 0x14001362b
mov edx, 2
mov rcx, rbx
call fcn.140019d04
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14001363e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str.Leave_EnumerateHub___n
mov ecx, 2
call fcn.1400197e0
lea rcx, str.Leave_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, esi
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140019ce0
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret