Function at 0x1400040f0
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
push rsi
sub rsp, 0x7d0
mov rax, qword [0x140062058]
xor rax, rsp
mov qword [rsp + 0x7c0], rax
mov esi, ecx
lea rcx, [rsp + 0x160]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
lea rcx, [rsp + 0x270]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
lea rcx, [rsp + 0x380]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
lea rcx, [rsp + 0x490]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
lea rcx, [rsp + 0x5a0]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
lea rcx, [rsp + 0x6b0]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
lea rcx, [rsp + 0x270]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x140004525
xor eax, eax
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x7e8], rdi
lea rdi, [rsp + 0x270]
repne scasb al, byte [rdi]
lea rax, [rsp + 0x270]
not rcx
cmp byte [rcx + rax - 2], 0x5c
je 0x1400041eb
xor eax, eax
lea rdi, [rsp + 0x270]
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x140049a64]
mov word [rdi - 1], ax
lea rcx, [rsp + 0x160]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x270]
repne scasb al, byte [rdi]
mov eax, dword [str.inf_]
xor ecx, ecx
mov dword [rdi - 1], eax
movzx eax, byte [0x14004a09c]
mov byte [rdi + 3], al
movzx eax, byte [rsp + rcx + 0x270]
inc rcx
mov byte [rsp + rcx + 0x15f], al
test al, al
jne 0x140004225
xor ecx, ecx
nop dword [rax]
movzx eax, byte [rsp + rcx + 0x270]
inc rcx
mov byte [rsp + rcx + 0x37f], al
test al, al
jne 0x140004240
xor ecx, ecx
nop dword [rax + rax]
movzx eax, byte [rsp + rcx + 0x270]
inc rcx
mov byte [rsp + rcx + 0x59f], al
test al, al
jne 0x140004260
mov eax, esi
sub eax, 0x70
je 0x140004329
sub eax, 5
je 0x1400042dc
cmp eax, 1
jne 0x14000451d
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x380]
repne scasb al, byte [rdi]
mov rax, qword [str.NBYVCOM.INF]
or rcx, 0xffffffffffffffff
mov qword [rdi - 1], rax
mov eax, dword [0x140048f30]
mov dword [rdi + 7], eax
xor eax, eax
lea rdi, [rsp + 0x490]
repne scasb al, byte [rdi]
mov rax, qword [str.NBYVCOM.SYS]
mov qword [rdi - 1], rax
mov eax, dword [0x140048f20]
mov dword [rdi + 7], eax
jmp 0x1400043e3
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x380]
repne scasb al, byte [rdi]
mov rax, qword [str.USBVCOM.INF]
or rcx, 0xffffffffffffffff
mov qword [rdi - 1], rax
mov eax, dword [0x140048f50]
mov dword [rdi + 7], eax
xor eax, eax
lea rdi, [rsp + 0x490]
repne scasb al, byte [rdi]
mov rax, qword [str.USBVCOM.SYS]
mov qword [rdi - 1], rax
mov eax, dword [0x140048f40]
mov dword [rdi + 7], eax
jmp 0x1400043e3
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x380]
repne scasb al, byte [rdi]
mov rax, qword [str.WNTH200USB.INF]
or rcx, 0xffffffffffffffff
mov qword [rdi - 1], rax
mov eax, dword [0x140048fc0]
mov dword [rdi + 7], eax
movzx eax, word [0x140048fc4]
mov word [rdi + 0xb], ax
movzx eax, byte [0x140048fc6]
mov byte [rdi + 0xd], al
xor eax, eax
lea rdi, [rsp + 0x490]
repne scasb al, byte [rdi]
mov rax, qword [str.WNTH200USB.SYS]
or rcx, 0xffffffffffffffff
mov qword [rdi - 1], rax
mov eax, dword [0x140048fb0]
mov dword [rdi + 7], eax
movzx eax, word [0x140048fb4]
mov word [rdi + 0xb], ax
movzx eax, byte [0x140048fb6]
mov byte [rdi + 0xd], al
xor eax, eax
lea rdi, [rsp + 0x5a0]
repne scasb al, byte [rdi]
mov rax, qword [str.bulkusb.INF]
or rcx, 0xffffffffffffffff
mov qword [rdi - 1], rax
mov eax, dword [0x140048fa0]
mov dword [rdi + 7], eax
xor eax, eax
lea rdi, [rsp + 0x6b0]
repne scasb al, byte [rdi]
mov rax, qword [str.bulkusb.SYS]
mov qword [rdi - 1], rax
mov eax, dword [0x140048f90]
mov dword [rdi + 7], eax
lea rcx, [rsp + 0x380]
mov qword [rsp + 0x7e0], rbx
call fcn.140003a00
lea rcx, [rsp + 0x490]
call fcn.140003ad0
lea rcx, [rsp + 0x5a0]
call fcn.140003a00
lea rcx, [rsp + 0x6b0]
call fcn.140003ad0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x160]
lea rdx, [rsp + 0x20]
repne scasb al, byte [rdi]
mov eax, dword [str..inf]
lea rcx, [rsp + 0x160]
mov dword [rdi - 1], eax
movzx eax, word [0x14004a094]
mov word [rdi + 3], ax
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x140004480
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Invalid_File_Handle._Get_Last_Error_reports__d_n
mov edx, eax
call fcn.140030c88
jmp 0x140004515
lea rcx, [rsp + 0x160]
xor edx, edx
mov r8d, 0x104
call fcn.140030860
xor edx, edx
nop word [rax + rax]
movzx eax, byte [rsp + rdx + 0x270]
inc rdx
mov byte [rsp + rdx + 0x15f], al
test al, al
jne 0x1400044a0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x160]
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x4c]
nop dword [rax]
movzx eax, byte [rdx + rcx]
inc rcx
mov byte [rdi + rcx - 2], al
test al, al
jne 0x1400044d0
lea rcx, [rsp + 0x160]
mov edx, esi
call fcn.140003790
test al, al
je 0x1400044ff
lea rcx, [rsp + 0x160]
call fcn.140003a00
lea rdx, [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x140004480
mov rbx, qword [rsp + 0x7e0]
mov rdi, qword [rsp + 0x7e8]
mov rcx, qword [rsp + 0x7c0]
xor rcx, rsp
call fcn.140030820
add rsp, 0x7d0
pop rsi
ret