Function at 0x14001c570
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov rax, qword [0x140074020]
xor rax, rsp
mov qword [rbp + 0x258], rax
mov rdi, rdx
mov rbx, rcx
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp - 0x10]
call fcn.140031ee0
xor r15d, r15d
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], r15w
lea r8d, [r15 + 1]
lea rdx, [0x140068628]
lea rcx, [rsp + 0x28]
call fcn.140001c40
nop
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.14001a450
cmp qword [rax + 0x18], 8
jb 0x14001c601
mov rax, qword [rax]
lea rdx, [rbp - 0x10]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r14, rax
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x14001c652
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001c64d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd6a
call fcn.14002f77c
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r15w
mov rdx, qword [rsp + 0x40]
cmp rdx, 8
jb 0x14001c6a7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001c6a2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd70
call fcn.14002f77c
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], r15w
mov esi, r15d
cmp qword [rdi + 0x18], 8
jb 0x14001c6c8
mov rdi, qword [rdi]
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x68], r15
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], r15w
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdi + r8*2], si
jne 0x14001c6e4
mov rdx, rdi
lea rcx, [rbp - 0x78]
call fcn.140001c40
nop
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14001c71c
test al, 0x10
jne 0x14001c945
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rcx, qword [rbp - 0x78]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x14001c945
movzx edi, al
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rcx, qword [rbp - 0x78]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea rdx, [0x1400683c8]
test rax, rax
cmovne rdx, rax
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x48], r15
mov qword [rbp - 0x40], 7
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], 0
jne 0x14001c775
lea rcx, [rbp - 0x58]
call fcn.140001c40
lea r8, [rbp - 0x58]
cmp qword [rbp - 0x40], 8
cmovae r8, qword [rbp - 0x58]
mov edx, 0x104
lea rcx, [rbp + 0x1c]
call fcn.140035868
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x14001c7e5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001c7e0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd76
call fcn.14002f77c
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rbp - 0x10], eax
lea rcx, [rbp - 0x78]
call fcn.14001bd80
mov dword [rbp + 0x10], eax
shr rax, 0x20
mov dword [rbp + 0xc], eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x240], xmm0
mov qword [rbp + 0x250], rax
lea rax, [rbp - 0xc]
mov qword [rbp - 0x38], rax
lea rax, [rbp - 4]
mov qword [rbp - 0x30], rax
lea rax, [rbp + 4]
mov qword [rbp - 0x28], rax
lea r9, [rbp + 0x250]
lea r8, [rbp + 0x248]
lea rdx, [rbp + 0x240]
lea rcx, [rbp - 0x78]
call fcn.14001a710
mov r8d, r15d
mov rdx, r15
nop
mov rax, qword [rbp + rdx + 0x240]
mov dword [rsp + 0x20], eax
shr rax, 0x20
mov dword [rsp + 0x24], eax
mov rcx, qword [rbp + rdx - 0x38]
mov rax, qword [rsp + 0x20]
mov qword [rcx], rax
mov rax, qword [rbp + rdx + 0x248]
mov dword [rsp + 0x20], eax
shr rax, 0x20
mov dword [rsp + 0x24], eax
mov rcx, qword [rbp + rdx - 0x30]
mov rax, qword [rsp + 0x20]
mov qword [rcx], rax
mov rax, qword [rbp + rdx + 0x250]
mov dword [rsp + 0x20], eax
shr rax, 0x20
mov dword [rsp + 0x24], eax
mov rcx, qword [rbp + rdx - 0x28]
mov rax, qword [rsp + 0x20]
mov qword [rcx], rax
add r8d, 3
lea rdx, [rdx + 0x18]
cmp r8d, 3
jb 0x14001c860
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x78]
call fcn.14001a200
nop
lea rcx, [rbp - 0x78]
cmp rcx, rax
je 0x14001c903
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x14001c8f6
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.140001c40
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x14001c948
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001c93e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd7c
call fcn.14002f77c
jmp 0x14001c948
xor dil, dil
cmp r14, 0xffffffffffffffff
jne 0x14001c960
test dil, dil
je 0x14001cbcf
nop word [rax + rax]
lea rdx, [0x140068620]
lea rcx, [rbp + 0x1c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x14001cd40
lea rdx, [0x14006862c]
lea rcx, [rbp + 0x1c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x14001cd40
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x48], r15
mov qword [rbp - 0x40], 7
mov word [rbp - 0x58], r15w
lea rax, [rbp + 0x1c]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x14001c9b2
lea rdx, [rbp + 0x1c]
lea rcx, [rbp - 0x58]
call fcn.140001c40
nop
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], 7
mov word [rsp + 0x48], r15w
lea rax, [rbp + 0x1c]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], 0
jne 0x14001c9f0
lea rdx, [rbp + 0x1c]
lea rcx, [rsp + 0x48]
call fcn.140001c40
nop
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x78]
call fcn.14001a450
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x14001ca5f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ca5a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd88
call fcn.14002f77c
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], 7
mov word [rsp + 0x48], r15w
mov al, 1
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14001ca8c
mov rax, qword [rcx]
lea rdx, [rbp - 0x58]
call qword [rax]
test eax, eax
sete al
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x14001caae
test al, al
je 0x14001caaa
mov rax, qword [rcx]
lea rdx, [rbp - 0x58]
call qword [rax]
test eax, eax
je 0x14001caaa
mov al, 1
jmp 0x14001cab2
xor al, al
jmp 0x14001cab4
test al, al
je 0x14001cab4
inc esi
lea rcx, [rbp - 0x38]
mov qword [rbp + 0x240], rcx
mov byte [rbp + 0x248], al
lea rax, [rbp - 0x10]
mov qword [rbp + 0x250], rax
mov r8, qword [rbx]
test r8, r8
je 0x14001cc37
mov ecx, dword [rbx + 0x10]
sub ecx, 1
je 0x14001cb17
sub ecx, 1
je 0x14001cb0a
cmp ecx, 1
jne 0x14001cb17
mov rcx, qword [r8 + 0x38]
test rcx, rcx
je 0x14001cd8e
mov rax, qword [rcx]
lea rdx, [rbp + 0x240]
call qword [rax + 0x10]
jmp 0x14001cb25
lea rdx, [rbp + 0x240]
mov rcx, qword [rbx + 8]
jmp 0x14001cb22
mov rdx, qword [rbx + 8]
lea rcx, [rbp + 0x240]
call r8
cmp eax, 1
jne 0x14001cc3a
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x14001cb6e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001cb69
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd94
call fcn.14002f77c
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], r15w
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x14001cbbf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001cbba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd64
call fcn.14002f77c
cmp r14, 0xffffffffffffffff
je 0x14001cbcf
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x14001cc0f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001cc0a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd82
call fcn.14002f77c
mov eax, esi
mov rcx, qword [rbp + 0x258]
xor rcx, rsp
call fcn.14002f4c0
mov rbx, qword [rsp + 0x3a0]
add rsp, 0x360
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov eax, r15d
test byte [rbp - 0x10], 0x10
je 0x14001ccb3
cmp eax, 2
je 0x14001ccb3
lea rdx, [rbp - 0x38]
mov rcx, rbx
call fcn.14001c570
add esi, eax
mov qword [rbp + 0x250], r15
mov byte [rbp + 0x248], 0
mov r8, qword [rbx]
test r8, r8
je 0x14001ccb3
mov ecx, dword [rbx + 0x10]
sub ecx, 1
je 0x14001cca4
sub ecx, 1
je 0x14001cc97
cmp ecx, 1
jne 0x14001cca4
mov rcx, qword [r8 + 0x38]
test rcx, rcx
je 0x14001cd8e
mov rax, qword [rcx]
lea rdx, [rbp + 0x240]
call qword [rax + 0x10]
jmp 0x14001ccb3
lea rdx, [rbp + 0x240]
mov rcx, qword [rbx + 8]
jmp 0x14001ccaf
mov rdx, qword [rbx + 8]
lea rcx, [rbp + 0x240]
call r8
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x14001ccf3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ccee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd94
call fcn.14002f77c
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], r15w
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x14001cd40
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001cd3b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001cd64
call fcn.14002f77c
cmp r14, 0xffffffffffffffff
je 0x14001cbcf
lea rdx, [rbp - 0x10]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x14001cbc5
jmp 0x14001c960
call fcn.140035b04
nop
call fcn.140035b04
nop
call fcn.140035b04
nop
call fcn.140035b04
int3
call fcn.140035b04
nop
call fcn.140035b04
nop
call fcn.140035b04
int3
call fcn.14002dd38
nop
call fcn.140035b04
int3