Function at 0x140012b10
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, 0x2a0
mov rax, qword [0x14003e468]
xor rax, rsp
mov qword [rsp + 0x290], rax
xor ebx, ebx
mov qword [rsp + 0x78], rcx
lea rdx, str.Enter_EnumerateHub___n
lea ecx, [rbx + 2]
mov ebp, ebx
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x58], 0xffffffffffffffff
mov esi, ebx
mov edi, ebx
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x70], rbx
call fcn.1400184c0
lea rcx, str.Enter_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [rbx + 0x4c]
call fcn.140018b58
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x140012ba5
lea rcx, str.Enter_if__hubInfo__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x58]
jmp 0x140013041
mov rcx, qword [rsp + 0x78]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea r8d, [r9 + 2]
mov edx, 0x40000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x58], rax
cmp rax, 0xffffffffffffffff
jne 0x140012bef
lea rcx, str.Enter_if__hHubDevice__INVALID_HANDLE_VALUE__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x48]
jmp 0x140013006
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x50]
mov r9d, 0x4c
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x28], 0x4c
mov qword [rsp + 0x20], rcx
mov r8, rcx
mov rcx, rax
mov edx, 0x220408
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140012c42
lea rcx, str.Enter_if___DeviceIoControl_sizeof_USB_NODE_INFORMATION_____n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x48]
jmp 0x140013006
mov ecx, 0x16d
mov dword [rsp + 0x60], 0x16d
mov dword [rsp + 0x50], 0x16d
call fcn.140018b58
mov ecx, 0x16d
mov rsi, rax
call fcn.140018b58
mov rdi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140012ff0
test rsi, rsi
je 0x140012ff0
mov rcx, qword [rsp + 0x48]
mov ebp, 1
cmp byte [rcx + 6], bpl
jb 0x140013004
nop word [rax + rax]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rbx
mov dword [rsi], ebp
mov r9d, dword [rsp + 0x60]
lea rax, [rsp + 0x60]
mov r8, rsi
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov edx, 0x220448
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140012d3e
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rbx
mov dword [rdi], ebp
mov r9d, dword [rsp + 0x50]
lea rax, [rsp + 0x50]
mov r8, rdi
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov edx, 0x22040c
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140012ee1
movzx eax, byte [rdi + 0x16]
mov byte [rsi + 0x16], al
movzx eax, byte [rdi + 0x18]
mov byte [rsi + 0x18], al
mov eax, dword [rdi + 0x1f]
mov dword [rsi + 0x1f], eax
mov rax, qword [rdi + 4]
mov qword [rsi + 4], rax
mov rax, qword [rdi + 0xc]
mov qword [rsi + 0xc], rax
movzx eax, word [rdi + 0x14]
mov word [rsi + 0x14], ax
cmp byte [rsi + 0x18], bl
je 0x140012e2a
mov rcx, qword [rsp + 0x58]
mov edx, ebp
call fcn.140012790
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140012e14
lea rdx, str.Find_another_hub_under_root_hub..._n
mov ecx, 2
call fcn.1400184c0
lea rcx, str.Find_another_hub_under_root_hub..._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rdi, qword [rsp + 0x70]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rcx, [rcx + rcx + 8]
call fcn.140018b58
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140012edc
lea r8, str.._
mov edx, 5
mov rcx, rax
call fcn.140018eac
mov r8, qword [rsp + 0x70]
or rcx, 0xffffffffffffffff
mov rdi, r8
xor eax, eax
repne scasw ax, word [rdi]
mov rdi, qword [rsp + 0x78]
not rcx
mov rdx, rcx
lea rcx, [rdi + 8]
call fcn.140018eac
mov rcx, rdi
call fcn.140012b10
mov rcx, qword [rsp + 0x78]
mov edi, eax
mov dword [rsp + 0x40], eax
call fcn.140018b18
test edi, edi
mov rdi, qword [rsp + 0x68]
je 0x140012ee1
mov ebp, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp 0x140013006
lea rcx, str.Enter_else_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [rsp + 0x40], ebx
jmp 0x140012ee1
cmp dword [rsi + 0x1f], ebx
je 0x140012ec9
mov rcx, qword [rsp + 0x58]
mov edx, ebp
call fcn.1400128e0
test rax, rax
je 0x140012ec9
lea rcx, [rsp + 0x82]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x80], bx
call fcn.14001be30
movzx edx, word [rsi + 0xe]
movzx r9d, word [rsi + 0xc]
mov dword [rsp + 0x20], edx
lea r8, str.VID__04XPID__04X
lea rcx, [rsp + 0x80]
mov edx, 0x103
call fcn.1400188c4
lea r8, [rsp + 0x80]
lea rdx, str._s_found__n
mov ecx, 2
call fcn.1400184c0
lea rdx, [rsp + 0x80]
lea rcx, str._s_found__n
call fcn.14000dcd0
lea rcx, [rsp + 0x80]
call fcn.140009510
test eax, eax
jne 0x140012f02
lea rcx, str.Enter_bRetVal__DeviceNotFound__n
mov dword [rsp + 0x40], ebx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140012ee1
mov rdi, qword [rsp + 0x68]
mov rax, qword [rsp + 0x48]
inc ebp
movzx eax, byte [rax + 6]
cmp ebp, eax
jbe 0x140012ca0
mov ebp, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp 0x140013006
lea rbp, str.USB_
xor edx, edx
mov r8d, 0x208
mov rcx, rbp
call fcn.14001be30
lea rcx, [0x140035910]
movzx eax, word [rbx + rcx]
add rbx, 2
mov word [rbx + rbp - 2], ax
test ax, ax
jne 0x140012f20
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasw ax, word [rdi]
xor r8d, r8d
lea rdx, [rsp + 0x80]
nop dword [rax]
movzx eax, word [rdx + r8]
add r8, 2
mov word [rdi + r8 - 4], ax
test ax, ax
jne 0x140012f50
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasw ax, word [rdi]
mov eax, dword [0x14003591c]
lea rcx, str.Device_instance_PVID__s_n
mov rdx, rbp
mov dword [rdi - 2], eax
call fcn.14000dcd0
movzx r8d, byte [rsi + 0x16]
lea rdx, [0x140035920]
mov ecx, 2
call fcn.1400184c0
movzx edx, byte [rsi + 0x16]
lea rcx, [0x140035920]
call fcn.14000dcd0
cmp byte [rsi + 0x16], 0
jne 0x140012fd2
lea rcx, str.Enter_if_connectionInfoEx__CurrentConfigurationValue__NULL__n
mov ebp, 2
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
jmp 0x140013006
lea rcx, str.Enter_else_bRetVal__DeviceWorksFine___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
mov ebp, 1
jmp 0x140013006
lea rcx, str.Enter__if__connectionInfo__NULL__connectionInfoEx__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x48]
jmp 0x140013006
mov ebp, ebx
call fcn.140018b18
test rsi, rsi
je 0x140013018
mov rcx, rsi
call fcn.140018b18
test rdi, rdi
je 0x140013025
mov rcx, rdi
call fcn.140018b18
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x140013037
mov rcx, rax
call fcn.1400193d8
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14001304a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str.Leave_EnumerateHub___n
mov ecx, 2
call fcn.1400184c0
lea rcx, str.Leave_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, ebp
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.1400187e0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret