Function at 0x1800a8740
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x308
mov rax, qword [0x1801580d0]
xor rax, rsp
mov qword [rsp + 0x2f0], rax
mov rax, qword [rsp + 0x358]
movsxd rbp, r8d
mov rbx, rcx
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x360]
mov edi, ebp
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x368]
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x60], rax
mov eax, 0x2a
mov dword [rsp + 0x40], ebp
mov word [rcx + rdi*2], ax
lea ecx, [rbp + 1]
xor eax, eax
mov word [rbx + rcx*2], ax
mov esi, edx
call fcn.1800a3960
test eax, eax
jne 0x1800a87c8
call fcn.1800a3900
test eax, eax
jne 0x1800a87c8
call fcn.1800a3980
test eax, eax
je 0x1800a87fe
call fcn.1800bc1f0
mov rax, qword [0x180173c18]
test rax, rax
je 0x1800a87fe
mov rcx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x50]
xor r9d, r9d
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], rcx
lea edx, [r9 + 1]
mov rcx, rbx
call rax
jmp 0x1800a880c
mov rdx, qword [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x78], rax
cmp rax, 0xffffffffffffffff
jne 0x1800a8821
mov eax, 1
jmp 0x1800a8c2e
mov r8, qword [rsp + 0x50]
xor eax, eax
mov edx, esi
sub edx, ebp
mov word [rbx + rdi*2], ax
mov qword [rsp + 0x88], rax
mov rax, rbp
dec edx
lea rbp, [r8 + 0x2c]
add rax, rax
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x58], rax
mov eax, dword [r8]
or r9, 0xffffffffffffffff
mov rdi, rbp
mov dword [rsp + 0x48], eax
xor eax, eax
mov rcx, r9
repne scasw ax, word [rdi]
mov r10d, 0x7fff
mov dword [rsp + 0x44], 1
not rcx
dec rcx
mov qword [rsp + 0x80], rcx
lea eax, [rcx + 2]
cmp edx, eax
jae 0x1800a8965
cmp esi, 0x104
jne 0x1800a8899
mov esi, 0x400
jmp 0x1800a88b2
cmp esi, 0x400
jne 0x1800a88a8
mov esi, 0x1000
jmp 0x1800a88b2
cmp esi, 0x1000
cmove esi, r10d
mov ecx, esi
mov eax, 2
mul rcx
cmovo rax, r9
mov rcx, rax
call fcn.18006b890
mov qword [rsp + 0x88], rax
test rax, rax
je 0x1800a8bf8
lea rdx, [0x18010c0e8]
mov r8d, 4
mov rcx, rbx
mov rdi, rax
call fcn.180072da8
test eax, eax
je 0x1800a890e
lea rdx, [0x18010c0e8]
mov r8d, 4
mov rcx, rdi
call fcn.18006a270
add rdi, 8
mov r8d, dword [rsp + 0x40]
mov rdx, rbx
mov rcx, rdi
call fcn.18006a270
mov r9, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x88]
mov r8d, dword [rsp + 0x40]
xor eax, eax
mov word [r9 + rdi], ax
cmp rdi, rdx
je 0x1800a894e
add r8d, 4
add r9, 8
mov qword [rsp + 0x58], r9
mov dword [rsp + 0x40], r8d
mov rbx, rdx
mov edx, esi
sub edx, r8d
mov r8, qword [rsp + 0x50]
dec edx
or r9, 0xffffffffffffffff
mov dword [rsp + 0x68], edx
test byte [rsp + 0x48], 0x10
je 0x1800a8b28
cmp word [rbp], 0x2e
jne 0x1800a8997
movzx eax, word [r8 + 0x2e]
test ax, ax
je 0x1800a8bd2
cmp ax, 0x2e
jne 0x1800a8997
cmp word [r8 + 0x30], 0
je 0x1800a8bd2
xor eax, eax
mov rdi, rbx
mov rcx, r9
repne scasw ax, word [rdi]
xor ecx, ecx
nop word [rax + rax]
movzx eax, word [rcx + rbp]
add rcx, 2
mov word [rdi + rcx - 4], ax
test ax, ax
jne 0x1800a89b0
mov eax, dword [rsp + 0x350]
test al, 0x10
je 0x1800a8b1f
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1800a89ea
mov rdx, rax
mov rcx, rbx
call fcn.1800a6610
test eax, eax
je 0x1800a8a29
mov rdx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x48]
add edx, dword [rsp + 0x40]
mov rcx, rbx
call qword [rsp + 0x90]
mov edi, eax
test eax, eax
je 0x1800a8c0f
cmp eax, 2
jne 0x1800a8a2d
mov rax, qword [rsp + 0x58]
xor ecx, ecx
mov word [rax + rbx], cx
jmp 0x1800a8bd6
mov edi, dword [rsp + 0x44]
mov eax, dword [rsp + 0x350]
test al, 0x40
jne 0x1800a8ac0
mov rcx, qword [rsp + 0x80]
mov edx, 0x5c
mov r8d, 0x24c
add ecx, dword [rsp + 0x40]
lea edi, [rcx + 1]
mov word [rbx + rcx*2], dx
xor ecx, ecx
mov word [rbx + rdi*2], cx
mov dword [rsp + 0xa0], ecx
lea rcx, [rsp + 0xa4]
xor edx, edx
call fcn.18006a0a0
mov rax, qword [rsp + 0x60]
lea r9, [rsp + 0xa0]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x70]
mov r8d, edi
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x90]
mov edx, esi
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x350]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.1800a8740
mov edi, eax
mov eax, dword [rsp + 0x350]
test edi, edi
je 0x1800a8c0f
test al, 0x20
je 0x1800a8b07
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1800a8ae5
mov rdx, rax
mov rcx, rbx
call fcn.1800a6610
test eax, eax
je 0x1800a8b07
mov rdx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x48]
add edx, dword [rsp + 0x40]
mov rcx, rbx
call qword [rsp + 0x90]
mov edi, eax
test edi, edi
je 0x1800a8c0f
mov rax, qword [rsp + 0x58]
xor ecx, ecx
mov word [rax + rbx], cx
jmp 0x1800a8bd6
mov edi, dword [rsp + 0x44]
jmp 0x1800a8a34
test byte [rsp + 0x350], 0x80
jne 0x1800a8bd2
xor eax, eax
mov rdi, rbx
mov rcx, r9
repne scasw ax, word [rdi]
xor ecx, ecx
nop word [rax + rax]
movzx eax, word [rcx + rbp]
add rcx, 2
mov word [rdi + rcx - 4], ax
test ax, ax
jne 0x1800a8b50
mov rdi, qword [rsp + 0x60]
test rdi, rdi
je 0x1800a8b8e
mov dx, 0x5c
mov rcx, rdi
call fcn.18006b730
mov rcx, rbp
mov rdx, rdi
test rax, rax
cmovne rcx, rbx
call fcn.1800a6610
test eax, eax
je 0x1800a8bc1
mov rdx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x48]
add edx, dword [rsp + 0x40]
mov rcx, rbx
call qword [rsp + 0x90]
mov edi, eax
test eax, eax
je 0x1800a8c0f
mov rax, qword [rsp + 0x58]
xor ecx, ecx
mov word [rax + rbx], cx
jmp 0x1800a8bd6
mov rax, qword [rsp + 0x58]
mov edi, dword [rsp + 0x44]
xor ecx, ecx
mov word [rax + rbx], cx
jmp 0x1800a8bd6
mov edi, dword [rsp + 0x44]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x1800a8c0f
mov edx, dword [rsp + 0x68]
mov r8, qword [rsp + 0x50]
jmp 0x1800a884d
mov ecx, 8
mov edi, eax
mov dword [0x18017346c], 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x1800a8c2c
call fcn.18006aac0
mov eax, edi
mov rcx, qword [rsp + 0x2f0]
xor rcx, rsp
call fcn.18006b190
add rsp, 0x308
pop rdi
pop rsi
pop rbp
pop rbx
ret