Function at 0x140012a80
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 [0x14004b008]
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.140018d20
lea rcx, str.Enter_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [rbx + 0x4c]
call fcn.140020fe0
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x140012b0e
lea rcx, str.Enter_if__hubInfo__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x58]
jmp 0x140012f35
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 0x140012b4f
lea rcx, str.Enter_if__hHubDevice__INVALID_HANDLE_VALUE__n
jmp 0x140012eec
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 0x140012b97
lea rcx, str.Enter_if___DeviceIoControl_sizeof_USB_NODE_INFORMATION_____n
jmp 0x140012eec
mov ecx, 0x16d
mov dword [rsp + 0x50], 0x16d
mov dword [rsp + 0x40], 0x16d
call fcn.140020fe0
mov ecx, dword [rsp + 0x40]
mov rdi, rax
call fcn.140020fe0
mov qword [rsp + 0x60], rax
mov rbp, rax
test rax, rax
je 0x140012ee5
test rdi, rdi
je 0x140012ee5
mov rax, qword [rsp + 0x48]
mov ecx, 1
mov dword [rsp + 0x44], ecx
cmp byte [rax + 6], cl
jb 0x140012ef7
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 0x140012c93
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 0x140012e0a
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 0x140012d71
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x58]
call fcn.140012710
mov rbx, rax
test rax, rax
je 0x140012d5d
lea rdx, str.Find_another_hub_under_root_hub..._n
mov ecx, 2
call fcn.140018d20
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 0x140012ce0
lea rcx, [rcx*2 + 0xa]
call fcn.140020fe0
mov rbp, rax
test rax, rax
je 0x140012e05
lea r8, str.._
mov edx, 5
mov rcx, rax
call fcn.140020ee4
or rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x140012d20
inc rdx
lea rcx, [rbp + 8]
mov r8, rbx
call fcn.140020ee4
mov rcx, rbp
call fcn.140012a80
mov rcx, rbp
mov esi, eax
call fcn.140020fcc
mov rbp, qword [rsp + 0x60]
test esi, esi
jne 0x140012ef2
jmp 0x140012e0a
lea rcx, str.Enter_else_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor esi, esi
jmp 0x140012e0a
cmp dword [rdi + 0x1f], 0
je 0x140012df4
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x58]
call fcn.140012860
test rax, rax
je 0x140012df4
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x208
call fcn.14001c790
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.140018d20
lea rdx, [rsp + 0x70]
lea rcx, str._s_found__n
call fcn.14000db40
lea rcx, [rsp + 0x70]
call fcn.140009c40
test eax, eax
jne 0x140012e2a
xor esi, esi
lea rcx, str.Enter_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140012e0a
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 0x140012bf0
jmp 0x140012ef2
xor edx, edx
lea rcx, str.USB_
mov r8d, 0x208
call fcn.14001c790
lea r8, [0x1400415d0]
mov edx, 0x104
lea rcx, str.USB_
call fcn.140020ee4
lea r8, [rsp + 0x70]
mov edx, 0x104
lea rcx, str.USB_
call fcn.140020f4c
lea r8, [0x1400415dc]
mov edx, 0x104
lea rcx, str.USB_
call fcn.140020f4c
lea rdx, str.USB_
lea rcx, [0x1400415e0]
call fcn.14000db40
movzx r8d, byte [rdi + 0x16]
lea rdx, str.Find_the_atheros_dongle__config____d__n
mov ecx, 2
call fcn.140018d20
movzx edx, byte [rdi + 0x16]
lea rcx, str.Find_the_atheros_dongle__config____d__n
call fcn.14000db40
cmp byte [rdi + 0x16], 0
jne 0x140012ed1
mov esi, 2
lea rcx, str.Enter_if_connectionInfoEx__CurrentConfigurationValue__NULL__n
jmp 0x140012eec
lea rcx, str.Enter_else_bRetVal__DeviceWorksFine___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, 1
jmp 0x140012ef2
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.140020fcc
test rdi, rdi
je 0x140012f0c
mov rcx, rdi
call fcn.140020fcc
test rbp, rbp
je 0x140012f19
mov rcx, rbp
call fcn.140020fcc
test rbx, rbx
je 0x140012f2b
mov edx, 2
mov rcx, rbx
call fcn.140019284
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140012f3e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str.Leave_EnumerateHub___n
mov ecx, 2
call fcn.140018d20
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.140019260
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