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

Disassembly:
test rdx, rdx
je 0x18007dfe5
push rbp
push rsi
push rdi
sub rsp, 0x630
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov qword [rsp + 0x650], rbx
mov rax, qword [0x1801dc960]
xor rax, rsp
mov qword [rsp + 0x620], rax
mov qword [rsp + 0x40], r9
mov rbx, r8
mov rsi, rdx
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp rcx, 3
jb 0x18007dfc3
mov ebp, dword [rsp + 0x670]
test ebp, ebp
cmovne rax, r9
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x220], 0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x221]
call fcn.1800f4fb0
mov rdx, rsi
lea rcx, [rsp + 0x220]
sub rcx, rsi
nop dword [rax]
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
inc rdx
test al, al
jne 0x18007dc60
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x220]
repne scasb al, byte [rdi]
not rcx
lea rax, [rsp + 0x220]
cmp byte [rcx + rax - 2], 0x5c
je 0x18007dcaa
lea rdi, [rsp + 0x220]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x180151570]
mov word [rdi - 1], ax
lea rdi, [rsp + 0x220]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov eax, dword [0x18015d30c]
mov dword [rdi - 1], eax
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x220]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov qword [rsp + 0x30], rax
cmp rax, 0xffffffffffffffff
je 0x18007dfc3
mov rdi, rax
nop dword [rax + rax]
cmp byte [rsp + 0x10c], 0x2e
je 0x18007df9c
test byte [rsp + 0xe0], 0x10
je 0x18007ddc4
mov byte [rsp + 0x420], 0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x421]
call fcn.1800f4fb0
mov rdx, rsi
lea rcx, [rsp + 0x420]
sub rcx, rsi
nop word [rax + rax]
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
inc rdx
test al, al
jne 0x18007dd40
lea rdi, [rsp + 0x420]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x180151570]
mov word [rdi - 1], ax
lea rdi, [rsp + 0x420]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x10c]
xor ecx, ecx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x18007dd90
mov dword [rsp + 0x20], ebp
mov r9, qword [rsp + 0x40]
mov r8, rbx
lea rdx, [rsp + 0x420]
xor ecx, ecx
call fcn.18007dbc0
mov rdi, qword [rsp + 0x30]
jmp 0x18007df9c
mov qword [rsp + 0xd0], 0xf
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xb8], 0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0xb0]
call fcn.180003700
mov r8d, 1
lea rdx, [0x180151570]
lea rcx, [rsp + 0xb0]
call fcn.18000e780
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x10c]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x10c]
lea rcx, [rsp + 0xb0]
call fcn.18000e780
cmp qword [rsp + 0xc8], 0x200
jae 0x18007df5f
test ebp, ebp
je 0x18007df5d
lea rdx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 0x10
cmovae rdx, qword [rsp + 0xb8]
movsxd rcx, dword [rbx]
imul rcx, rcx, 0x104
mov rdi, qword [rsp + 0x38]
add rcx, rdi
movzx eax, byte [rdx]
mov byte [rcx], al
inc rdx
inc rcx
test al, al
jne 0x18007de92
movsxd r8, dword [rbx]
mov r9, r8
imul r9, r9, 0x104
add r9, rdi
mov edx, 0x9ce3
lea rcx, str.line:_d__ICount___d_
call fcn.18005cd20
lea rax, [rsp + 0x70]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x90], 0xf
mov qword [rsp + 0x88], 0
mov byte [rsp + 0x78], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [0x1801b1348]
lea rcx, [rsp + 0x70]
call fcn.1800035e0
nop
mov qword [rsp + 0x68], 0xf
mov qword [rsp + 0x60], 0
mov byte [rsp + 0x50], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x48]
call fcn.1800035e0
nop
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x48]
mov rcx, qword [0x1801e1b00]
call fcn.180036200
inc dword [rbx]
jmp 0x18007df5f
inc dword [rbx]
cmp qword [rsp + 0xd0], 0x10
jb 0x18007df77
mov rcx, qword [rsp + 0xb8]
call fcn.1800f4b9c
mov qword [rsp + 0xd0], 0xf
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xb8], 0
mov rdi, qword [rsp + 0x30]
lea rdx, [rsp + 0xe0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x18007dcf0
test rdi, rdi
je 0x18007dfc3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x620]
xor rcx, rsp
call fcn.1800f4f80
mov rbx, qword [rsp + 0x650]
add rsp, 0x630
pop rdi
pop rsi
pop rbp
repz ret