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

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x1f0]
sub rsp, 0x2f0
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x328], rbx
mov rax, qword [0x140260d50]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov edi, r8d
mov dword [rsp + 0x50], r8d
mov qword [rsp + 0x48], rdx
mov rsi, rcx
mov qword [rsp + 0x60], rcx
xor r8d, r8d
lea rdx, str.Tool_FindAllFilesInFolder
lea rcx, [rsp + 0x70]
call fcn.14000b870
nop
mov dword [rsp + 0x20], edi
mov r9, rsi
lea r8, str.lpszDirectory___s__bFindSubDirectory___d
mov edx, 1
lea rcx, [rsp + 0x70]
call fcn.14000ba50
xor eax, eax
mov edi, eax
mov dword [rsp + 0x38], eax
test rsi, rsi
je 0x14002cab3
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.140001110
nop
mov edx, 0x5c
mov rcx, qword [rsp + 0x40]
call fcn.14018f7cc
mov rdx, rax
mov rax, qword [rsp + 0x40]
or rbx, 0xffffffffffffffff
test rdx, rdx
jne 0x14002c7de
mov edx, ebx
jmp 0x14002c7e4
sub rdx, rax
sar rdx, 1
mov ecx, dword [rax - 0x10]
dec ecx
cmp edx, ecx
je 0x14002c804
mov r8d, 1
lea rdx, [0x14021120c]
lea rcx, [rsp + 0x40]
call fcn.140006350
mov r8d, 3
lea rdx, [0x1402165d8]
lea rcx, [rsp + 0x40]
call fcn.140006350
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp - 0x70]
call fcn.140193010
lea rdx, [rbp - 0x70]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rbp - 0x80], rax
cmp rax, 0xffffffffffffffff
je 0x14002ca92
mov dword [rsp + 0x38], 1
call fcn.14004cde4
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
je 0x14002ca87
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
test rsi, 0xffffffffffff0000
jne 0x14002c8a2
movzx edi, si
mov ecx, edi
call fcn.14004cbb8
test rax, rax
je 0x14002c8c2
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400012a0
jmp 0x14002c8c2
xor eax, eax
mov rcx, rbx
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1400014d0
nop
xor eax, eax
mov rcx, rbx
lea rdi, [rbp - 0x44]
repne scasw ax, word [rdi]
not rcx
dec rcx
lea rax, [rbp - 0x44]
mov qword [rsp + 0x68], rax
lea rsi, [rbp - 0x44]
mov rax, qword [rsp + 0x30]
sub rsi, rax
sar rsi, 1
mov ebx, dword [rax - 0x10]
xor edi, edi
mov eax, edi
test ecx, ecx
setns al
test eax, eax
je 0x14002ca7c
movsxd rdx, ecx
lea rcx, [rbp - 0x44]
call fcn.14018f24c
mov r8, rax
mov qword [rsp + 0x58], rax
mov eax, 0x7fffffff
sub eax, r8d
mov ecx, edi
cmp eax, ebx
setge cl
test ecx, ecx
je 0x14002ca71
lea edi, [rbx + r8]
test edi, edi
js 0x14002ca66
mov rax, qword [rsp + 0x30]
mov edx, 1
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x14002c963
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.1400015c0
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x58]
cmp rsi, rbx
lea r10, [rax + rsi*2]
jbe 0x14002c971
mov r10, qword [rsp + 0x68]
movsxd rdx, r8d
add rdx, rdx
lea rcx, [rax + rbx*2]
mov r9, rdx
mov r8, r10
call fcn.14018e7d0
mov rdx, qword [rsp + 0x30]
cmp edi, dword [rdx - 0xc]
jg 0x14002ca5b
mov dword [rdx - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x30]
xor edx, edx
mov word [rax + rcx*2], dx
mov edi, dword [rsp + 0x50]
test edi, edi
je 0x14002c9f2
test byte [rbp - 0x70], 0x10
je 0x14002c9f2
lea rdx, [0x140213bcc]
lea rcx, [rbp - 0x44]
call fcn.14018ea5c
test eax, eax
je 0x14002c9f2
lea rdx, [0x140213bd0]
lea rcx, [rbp - 0x44]
call fcn.14018ea5c
test eax, eax
je 0x14002c9f2
mov r8d, edi
mov rdi, qword [rsp + 0x48]
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.14002c720
jmp 0x14002c9f7
mov rdi, qword [rsp + 0x48]
test byte [rbp - 0x70], 0x10
jne 0x14002ca0f
lea r8, [rsp + 0x30]
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
call fcn.14004fb34
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
or rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002ca32
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x70]
mov rdi, qword [rbp - 0x80]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
mov rsi, qword [rsp + 0x60]
jne 0x14002c851
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x14002ca92
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
nop
mov ecx, 0x80004005
call fcn.140001000
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14002caaf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, dword [rsp + 0x38]
mov r9d, edi
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x70]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x70]
call fcn.14000ba00
mov eax, edi
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.14018e5d0
mov rbx, qword [rsp + 0x328]
add rsp, 0x2f0
pop rdi
pop rsi
pop rbp
ret