Function at 0x140013390
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 [0x140040468]
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.140019330
lea rcx, str.Enter_EnumerateHub___n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [rbx + 0x4c]
call fcn.1400199c8
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x140013425
lea rcx, str.Enter_if__hubInfo__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x58]
jmp 0x1400138c1
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 0x14001346f
lea rcx, str.Enter_if__hHubDevice__INVALID_HANDLE_VALUE__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x48]
jmp 0x140013886
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 0x1400134c2
lea rcx, str.Enter_if___DeviceIoControl_sizeof_USB_NODE_INFORMATION_____n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x48]
jmp 0x140013886
mov ecx, 0x16d
mov dword [rsp + 0x60], 0x16d
mov dword [rsp + 0x50], 0x16d
call fcn.1400199c8
mov ecx, 0x16d
mov rsi, rax
call fcn.1400199c8
mov rdi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140013870
test rsi, rsi
je 0x140013870
mov rcx, qword [rsp + 0x48]
mov ebp, 1
cmp byte [rcx + 6], bpl
jb 0x140013884
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 0x1400135be
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 0x140013761
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 0x1400136aa
mov rcx, qword [rsp + 0x58]
mov edx, ebp
call fcn.140013010
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140013694
lea rdx, str.Find_another_hub_under_root_hub..._n
mov ecx, 2
call fcn.140019330
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.1400199c8
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14001375c
lea r8, str.._
mov edx, 5
mov rcx, rax
call fcn.140019d1c
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.140019d1c
mov rcx, rdi
call fcn.140013390
mov rcx, qword [rsp + 0x78]
mov edi, eax
mov dword [rsp + 0x40], eax
call fcn.140019988
test edi, edi
mov rdi, qword [rsp + 0x68]
je 0x140013761
mov ebp, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp 0x140013886
lea rcx, str.Enter_else_bRetVal__DeviceNotFound__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [rsp + 0x40], ebx
jmp 0x140013761
cmp dword [rsi + 0x1f], ebx
je 0x140013749
mov rcx, qword [rsp + 0x58]
mov edx, ebp
call fcn.140013160
test rax, rax
je 0x140013749
lea rcx, [rsp + 0x82]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x80], bx
call fcn.14001cc90
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.140019734
lea r8, [rsp + 0x80]
lea rdx, str._s_found__n
mov ecx, 2
call fcn.140019330
lea rdx, [rsp + 0x80]
lea rcx, str._s_found__n
call fcn.14000e580
lea rcx, [rsp + 0x80]
call fcn.140009dc0
test eax, eax
jne 0x140013782
lea rcx, str.Enter_bRetVal__DeviceNotFound__n
mov dword [rsp + 0x40], ebx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140013761
mov rdi, qword [rsp + 0x68]
mov rax, qword [rsp + 0x48]
inc ebp
movzx eax, byte [rax + 6]
cmp ebp, eax
jbe 0x140013520
mov ebp, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp 0x140013886
lea rbp, str.USB_
xor edx, edx
mov r8d, 0x208
mov rcx, rbp
call fcn.14001cc90
lea rcx, [0x1400374a0]
movzx eax, word [rbx + rcx]
add rbx, 2
mov word [rbx + rbp - 2], ax
test ax, ax
jne 0x1400137a0
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 0x1400137d0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasw ax, word [rdi]
mov eax, dword [0x1400374ac]
lea rcx, str.Device_instance_PVID__s_n
mov rdx, rbp
mov dword [rdi - 2], eax
call fcn.14000e580
movzx r8d, byte [rsi + 0x16]
lea rdx, [0x1400374b0]
mov ecx, 2
call fcn.140019330
movzx edx, byte [rsi + 0x16]
lea rcx, [0x1400374b0]
call fcn.14000e580
cmp byte [rsi + 0x16], 0
jne 0x140013852
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 0x140013886
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 0x140013886
lea rcx, str.Enter__if__connectionInfo__NULL__connectionInfoEx__NULL__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x48]
jmp 0x140013886
mov ebp, ebx
call fcn.140019988
test rsi, rsi
je 0x140013898
mov rcx, rsi
call fcn.140019988
test rdi, rdi
je 0x1400138a5
mov rcx, rdi
call fcn.140019988
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1400138b7
mov rcx, rax
call fcn.14001a248
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x1400138ca
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str.Leave_EnumerateHub___n
mov ecx, 2
call fcn.140019330
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.140019650
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