Function at 0x140014170
Capabilities:
Enumerate pe sections
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 [0x140043468]
xor rax, rsp
mov qword [rsp + 0x280], rax
xor eax, eax
mov qword [rsp + 0x60], rcx
lea rdx, str.Enter_EnumerateHub___n
lea ecx, [rax + 2]
mov edi, eax
mov dword [rsp + 0x50], eax
or rbp, 0xffffffffffffffff
mov ebx, eax
mov esi, eax
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x68], rax
call fcn.14001a330
lea rcx, str.Enter_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [rsi + 0x4c]
call fcn.14001ab78
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1400141fb
lea rcx, str.Enter_if__hubInfo__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140014494
mov rcx, qword [rsp + 0x60]
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
lea r8d, [rax + 2]
mov edx, 0x40000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
jne 0x14001424a
lea rcx, str.Enter_if__hHubDevice__INVALID_HANDLE_VALUE__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x40]
jmp 0x14001445e
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x54]
mov r9d, 0x4c
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x40]
mov edx, 0x220408
mov rcx, rbp
mov r8, rax
mov dword [rsp + 0x28], 0x4c
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14001429d
lea rcx, str.Enter_if___DeviceIoControl_sizeof_USB_NODE_INFORMATION_____n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x40]
jmp 0x14001445e
mov ecx, 0x16d
mov dword [rsp + 0x58], 0x16d
mov dword [rsp + 0x54], 0x16d
call fcn.14001ab78
mov ecx, 0x16d
mov rbx, rax
call fcn.14001ab78
mov rsi, rax
test rax, rax
je 0x140014686
test rbx, rbx
je 0x140014686
mov rcx, qword [rsp + 0x40]
mov ebp, 1
cmp byte [rcx + 6], bpl
jb 0x140014459
nop dword [rax]
mov rcx, qword [rsp + 0x48]
xor eax, eax
mov dword [rbx], ebp
mov r9d, dword [rsp + 0x58]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov r8, rbx
mov edx, 0x220448
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140014392
mov rcx, qword [rsp + 0x48]
xor eax, eax
mov dword [rsi], ebp
mov r9d, dword [rsp + 0x54]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov r8, rsi
mov edx, 0x22040c
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1400145a7
movzx eax, byte [rsi + 0x16]
mov byte [rbx + 0x16], al
movzx eax, byte [rsi + 0x18]
mov byte [rbx + 0x18], al
mov eax, dword [rsi + 0x1f]
mov dword [rbx + 0x1f], eax
mov rax, qword [rsi + 4]
mov qword [rbx + 4], rax
mov rax, qword [rsi + 0xc]
mov qword [rbx + 0xc], rax
movzx eax, word [rsi + 0x14]
mov word [rbx + 0x14], ax
cmp byte [rbx + 0x18], 0
je 0x140014500
mov rcx, qword [rsp + 0x48]
mov edx, ebp
call fcn.140013df0
mov rdi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1400144e6
lea rdx, str.Find_another_hub_under_root_hub..._n
mov ecx, 2
call fcn.14001a330
lea rcx, str.Find_another_hub_under_root_hub..._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rcx, [rcx + rcx + 8]
call fcn.14001ab78
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400145a3
lea r8, str.._
mov edx, 5
mov rcx, rax
call fcn.14001af54
mov r8, qword [rsp + 0x68]
or rcx, 0xffffffffffffffff
mov rdi, r8
xor eax, eax
repne scasw ax, word [rdi]
mov rdi, qword [rsp + 0x60]
not rcx
mov rdx, rcx
lea rcx, [rdi + 8]
call fcn.14001af54
mov rcx, rdi
call fcn.140014170
mov rcx, qword [rsp + 0x60]
mov edi, eax
mov dword [rsp + 0x50], eax
call fcn.14001a988
test edi, edi
je 0x1400145a7
mov rcx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
call fcn.14001a988
test rbx, rbx
je 0x140014470
mov rcx, rbx
call fcn.14001a988
test rsi, rsi
je 0x14001447d
mov rcx, rsi
call fcn.14001a988
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14001448f
mov rcx, rax
call fcn.14001b480
test rbp, rbp
je 0x14001449d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str.Leave_EnumerateHub___n
mov ecx, 2
call fcn.14001a330
lea rcx, str.Leave_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, edi
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.14001a650
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
lea rcx, str.Enter_else_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
mov edi, eax
mov dword [rsp + 0x50], eax
jmp 0x1400145a7
cmp dword [rbx + 0x1f], 0
je 0x14001458c
mov rcx, qword [rsp + 0x48]
mov edx, ebp
call fcn.140013f40
test rax, rax
je 0x14001458c
xor eax, eax
lea rcx, [rsp + 0x72]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x70], ax
call fcn.14001dd20
movzx edx, word [rbx + 0xe]
movzx r9d, word [rbx + 0xc]
mov dword [rsp + 0x20], edx
lea r8, str.VID__04XPID__04X
lea rcx, [rsp + 0x70]
mov edx, 0x103
call fcn.14001a734
lea r8, [rsp + 0x70]
lea rdx, str._s_found__n
mov ecx, 2
call fcn.14001a330
lea rdx, [rsp + 0x70]
lea rcx, str._s_found__n
call fcn.14000f070
lea rcx, [rsp + 0x70]
call fcn.14000a8b0
test eax, eax
jne 0x1400145bf
xor eax, eax
lea rcx, str.Enter_bRetVal__DeviceNotFound__n
mov edi, eax
mov dword [rsp + 0x50], eax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400145a7
mov edi, dword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
inc ebp
movzx eax, byte [rax + 6]
cmp ebp, eax
jbe 0x1400142f0
jmp 0x140014454
lea rcx, str.USB_
xor edx, edx
mov r8d, 0x208
call fcn.14001dd20
lea r8, [0x140039520]
lea rcx, str.USB_
mov edx, 0x104
call fcn.14001af54
lea r8, [rsp + 0x70]
lea rcx, str.USB_
mov edx, 0x104
call fcn.14001aecc
lea r8, [0x14003952c]
lea rcx, str.USB_
mov edx, 0x104
call fcn.14001aecc
lea rdx, str.USB_
lea rcx, str.Device_instance_PVID__s_n
call fcn.14000f070
movzx r8d, byte [rbx + 0x16]
lea rdx, [0x140039530]
mov ecx, 2
call fcn.14001a330
movzx edx, byte [rbx + 0x16]
lea rcx, [0x140039530]
call fcn.14000f070
cmp byte [rbx + 0x16], 0
jne 0x14001466f
lea rcx, str.Enter_if_connectionInfoEx__CurrentConfigurationValue__NULL__n
mov edi, 2
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140014454
lea rcx, str.Enter_else_bRetVal__DeviceWorksFine___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edi, 1
jmp 0x140014454
lea rcx, str.Enter__if__connectionInfo__NULL__connectionInfoEx__NULL__n
xor eax, eax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x40]
jmp 0x14001445e