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

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x1e0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
xor eax, eax
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x30], eax
or rbx, 0xffffffffffffffff
mov qword [rsp + 0x38], r8
mov rsi, rcx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x70], rcx
nop
inc rbx
cmp byte [rcx + rbx], al
jne 0x1400696c0
lea eax, [rbx + 3]
movsxd rcx, eax
call fcn.14006f1a8
mov rdi, rax
test rax, rax
je 0x140069981
mov qword [rsp + 0x1d8], rbp
mov rdx, rsi
movsxd rbp, ebx
mov rcx, rdi
mov r8, rbp
mov qword [rsp + 0x68], rbp
call fcn.14006dfa0
lea eax, [rbx + 1]
mov byte [rdi + rbp], 0x5c
mov dword [rsp + 0x4c], eax
lea rdx, [rsp + 0x80]
cdqe
mov rcx, rdi
mov byte [rax + rdi], 0x2a
lea eax, [rbx + 2]
mov dword [rsp + 0x48], eax
cdqe
mov byte [rax + rdi], 0
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov qword [rsp + 0x60], rax
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x140069766
cmp dword [0x14009eeb8], 1
jl 0x140069977
lea ecx, [rax + 3]
call fcn.14006f398
mov rcx, rax
lea rdx, str.Cannot_open_directory__s_n
mov r8, rsi
call fcn.140041730
jmp 0x140069977
mov rcx, rdi
call fcn.14006f1a0
mov rdi, qword [rsp + 0x38]
nop dword [rax]
nop word [rax + rax]
lea rax, [rsp + 0xac]
or rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140069790
mov eax, dword [rsp + 0x48]
add eax, ebx
movsxd rcx, eax
call fcn.14006f1a8
mov rsi, rax
test rax, rax
je 0x14006996e
mov rbp, qword [rsp + 0x68]
mov rcx, rax
mov rdx, qword [rsp + 0x70]
mov r8, rbp
call fcn.14006dfa0
lea rcx, [rbp + 1]
movsxd r8, ebx
add rcx, rsi
mov byte [rsi + rbp], 0x5c
lea rdx, [rsp + 0xac]
call fcn.14006dfa0
mov ecx, dword [rsp + 0x4c]
lea eax, [rcx + rbx]
movsxd rbp, eax
mov dword [rsp + 0x50], eax
mov byte [rsi + rbp], 0
mov eax, dword [rsp + 0x80]
test al, 0x10
je 0x14006988f
movzx edx, byte [rsp + 0xac]
cmp dl, byte [0x140094edc]
movzx ecx, byte [rsp + 0xad]
jne 0x140069838
cmp cl, byte [0x140094edd]
jne 0x140069838
movzx eax, byte [rsp + 0xae]
cmp al, byte [0x140094ede]
je 0x140069941
cmp dl, byte [0x140094ee0]
jne 0x14006984c
cmp cl, byte [0x140094ee1]
je 0x140069941
mov eax, dword [rsp + 0x220]
mov r8, rdi
mov rbx, qword [rsp + 0x58]
mov rcx, rsi
mov r9, qword [rsp + 0x40]
mov rdx, rbx
mov dword [rsp + 0x20], eax
call fcn.140069680
add dword [rsp + 0x30], eax
cmp qword [rbx], 0
jne 0x140069939
mov rcx, rsi
call fcn.14006f1a0
mov rcx, qword [rsp + 0x60]
jmp 0x140069971
test eax, 0x8a0
je 0x140069939
mov rax, qword [rsp + 0x58]
mov rbx, qword [rax]
mov rax, qword [rsp + 0x40]
mov rdi, qword [rax]
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
add rax, rbx
add rax, rbp
cmp rax, rdi
jb 0x1400698fc
sub rdi, rbx
mov rcx, rbx
add rdi, 0x2000
mov rdx, rdi
call fcn.140074594
test rax, rax
jne 0x1400698e1
mov rcx, rbx
call fcn.14006f1a0
xor eax, eax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
mov qword [rcx], rax
add rax, rdi
mov qword [rdx], rax
mov rbx, qword [rcx]
test rbx, rbx
je 0x14006987d
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov r8, qword [rax]
mov rcx, qword [rdi]
lea rax, [rcx + rbx]
add rax, rbp
cmp rax, r8
jae 0x140069939
sub r8, rcx
mov rdx, rsi
sub r8, rbx
add rcx, rbx
call fcn.1400745b0
mov eax, dword [rsp + 0x50]
inc eax
movsxd rcx, eax
add qword [rdi], rcx
inc dword [rsp + 0x30]
mov rcx, rsi
call fcn.14006f1a0
mov rbp, qword [rsp + 0x60]
lea rdx, [rsp + 0x80]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x140069780
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [rsp + 0x30]
jmp 0x140069979
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
mov rbp, qword [rsp + 0x1d8]
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.14006d240
add rsp, 0x1e0
pop rdi
pop rsi
pop rbx
ret