Function at 0x14006aee7
Capabilities:
Enumerate files on windows

Disassembly:
push rbp
push r13
push r12
push rdi
push rbx
sub rsp, 0x710
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x6c0], rcx
mov rbx, rdx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdx
mov eax, dword [rbp - 0x28]
test eax, eax
jne 0x14006afb6
lea r8, str.ls___expects_a_folder__not_an_empty_string
mov rdx, r9
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 0x2a
mov r9, rax
mov rax, r9
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov r9, rax
lea rax, [rbp + 0x610]
mov qword [rbp - 0x40], r8
mov qword [rbp - 0x38], r9
lea rdx, [rbp - 0x40]
mov rcx, rax
call sym._v_error
mov rax, qword [rbp + 0x6c0]
pxor xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movq qword [rax + 0x30], xmm0
mov rax, qword [rbp + 0x6c0]
mov byte [rax], 1
mov rcx, qword [rbp + 0x6c0]
mov rax, qword [rbp + 0x610]
mov rdx, qword [rbp + 0x618]
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rdx
jmp 0x14006b547
lea rdx, [rbp + 0x3b0]
mov eax, 0
mov ecx, 0x4b
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, rdi
mov dword [rdx], eax
add rdx, 4
lea rax, [rbp + 0x130]
mov qword [rsp + 0x20], 0
mov r9d, 0x10
mov r8d, 0
mov edx, 0
mov rcx, rax
call sym.__new_array_with_default
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x28]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.os__is_dir
test al, al
jne 0x14006b10f
pxor xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
lea rax, str.ls___couldnt_open_dir__
mov qword [rbp - 0x20], rax
mov dword [rbp - 0x18], 0x17
mov dword [rbp - 0x14], 1
mov dword [rbp - 0x10], 0xfe10
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x28]
mov qword [rbp - 8], rax
mov qword [rbp], rdx
lea rax, str._:_directory_does_not_exist
mov qword [rbp + 8], rax
mov dword [rbp + 0x10], 0x1b
mov dword [rbp + 0x14], 1
lea rax, [rbp + 0x620]
lea rdx, [rbp - 0x20]
mov r8, rdx
mov edx, 2
mov rcx, rax
call sym.str_intp
lea rcx, [rbp + 0x630]
mov rax, qword [rbp + 0x620]
mov rdx, qword [rbp + 0x628]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rdx, rax
call sym._v_error
mov rax, qword [rbp + 0x6c0]
pxor xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movq qword [rax + 0x30], xmm0
mov rax, qword [rbp + 0x6c0]
mov byte [rax], 1
mov rcx, qword [rbp + 0x6c0]
mov rax, qword [rbp + 0x630]
mov rdx, qword [rbp + 0x638]
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rdx
jmp 0x14006b547
pxor xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
lea rax, [0x140088256]
mov qword [rbp + 0xd0], rax
mov dword [rbp + 0xdc], 1
mov dword [rbp + 0xe0], 0xfe10
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x28]
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rdx
lea rax, [0x14008a6df]
mov qword [rbp + 0xf8], rax
mov dword [rbp + 0x100], 2
mov dword [rbp + 0x104], 1
lea rax, [rbp + 0x120]
lea rdx, [rbp + 0xd0]
mov r8, rdx
mov edx, 2
mov rcx, rax
call sym.str_intp
mov rax, qword [rbp + 0x120]
mov rdx, qword [rbp + 0x128]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.string_to_wide
mov rcx, rax
lea rax, [rbp + 0x3b0]
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FindFirstFileW]
call rax
mov qword [rbp + 0x688], rax
cmp qword [rbp + 0x688], 0xffffffffffffffff
jne 0x14006b2f0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, [rbp + 0x640]
mov rcx, rax
call sym.os__get_error_msg
lea r12, str.ls__:_Could_not_get_a_file_handle:
mov rdx, r13
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 0x23
mov r13, rax
mov rax, r13
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov r13, rax
lea rcx, [rbp + 0x650]
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x38], r13
mov rax, qword [rbp + 0x640]
mov rdx, qword [rbp + 0x648]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rdx
lea rdx, [rbp - 0x50]
lea rax, [rbp - 0x40]
mov r8, rdx
mov rdx, rax
call sym.string__plus
lea rcx, [rbp + 0x660]
mov rax, qword [rbp + 0x650]
mov rdx, qword [rbp + 0x658]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rdx, rax
call sym._v_error
mov rax, qword [rbp + 0x6c0]
pxor xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movq qword [rax + 0x30], xmm0
mov rax, qword [rbp + 0x6c0]
mov byte [rax], 1
mov rcx, qword [rbp + 0x6c0]
mov rax, qword [rbp + 0x660]
mov rdx, qword [rbp + 0x668]
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rdx
jmp 0x14006b547
lea rax, [rbp + 0xc0]
lea rdx, [rbp + 0x3b0]
add rdx, 0x2c
mov rcx, rax
call sym.string_from_wide
mov eax, dword [rbp + 0xc8]
cmp eax, 1
jne 0x14006b33b
mov eax, dword [rbp + 0xc8]
movsxd rdx, eax
mov rax, qword [rbp + 0xc0]
mov r8, rdx
lea rdx, [0x140089752]
mov rcx, rax
call sym.vmemcmp
test eax, eax
je 0x14006b3a5
mov eax, dword [rbp + 0xc8]
cmp eax, 2
jne 0x14006b36c
mov eax, dword [rbp + 0xc8]
movsxd rdx, eax
mov rax, qword [rbp + 0xc0]
mov r8, rdx
lea rdx, [0x140088616]
mov rcx, rax
call sym.vmemcmp
test eax, eax
je 0x14006b3a5
lea rcx, [rbp + 0x50]
mov rax, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0xc8]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rdx, rax
call sym.string_clone
lea rdx, [rbp + 0x50]
lea rax, [rbp + 0x130]
mov rcx, rax
call sym.array_push
lea rdx, [rbp + 0x3b0]
mov rax, qword [rbp + 0x688]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FindNextFileW]
call rax
test eax, eax
jg 0x14006b477
mov rax, qword [rbp + 0x688]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FindClose]
call rax
mov rax, qword [rbp + 0x130]
mov rdx, qword [rbp + 0x138]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rdx
mov rax, qword [rbp + 0x140]
mov rdx, qword [rbp + 0x148]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rdx
lea rdx, [rbp + 0x80]
lea rax, [rbp + 0x60]
mov r8d, 0x20
mov rcx, rax
call sym._result_ok
mov rax, qword [rbp + 0x6c0]
mov rcx, qword [rbp + 0x80]
mov rbx, qword [rbp + 0x88]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x90]
mov rbx, qword [rbp + 0x98]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0xa0]
mov rbx, qword [rbp + 0xa8]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0xb0]
mov qword [rax + 0x30], rdx
jmp 0x14006b547
lea rax, [rbp + 0x40]
lea rdx, [rbp + 0x3b0]
add rdx, 0x2c
mov rcx, rax
call sym.string_from_wide
mov eax, dword [rbp + 0x48]
cmp eax, 1
jne 0x14006b4ba
mov eax, dword [rbp + 0x48]
movsxd rdx, eax
mov rax, qword [rbp + 0x40]
mov r8, rdx
lea rdx, [0x140089752]
mov rcx, rax
call sym.vmemcmp
test eax, eax
je 0x14006b3a5
mov eax, dword [rbp + 0x48]
cmp eax, 2
jne 0x14006b4e6
mov eax, dword [rbp + 0x48]
movsxd rdx, eax
mov rax, qword [rbp + 0x40]
mov r8, rdx
lea rdx, [0x140088616]
mov rcx, rax
call sym.vmemcmp
test eax, eax
je 0x14006b3a5
lea rcx, [rbp + 0x670]
mov rax, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x48]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rdx, rax
call sym.string_clone
lea rcx, [rbp + 0x30]
mov rax, qword [rbp + 0x670]
mov rdx, qword [rbp + 0x678]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lea rax, [rbp - 0x40]
mov rdx, rax
call sym.string_clone
lea rdx, [rbp + 0x30]
lea rax, [rbp + 0x130]
mov rcx, rax
call sym.array_push
jmp 0x14006b3a5
mov rax, qword [rbp + 0x6c0]
add rsp, 0x710
pop rbx
pop rdi
pop r12
pop r13
pop rbp
ret