Function at 0x14001b690
Capabilities:
Enumerate files on windows
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
movaps xmmword [rsp + 0xe0], xmm6
mov qword [rsp + 0x30], rdx
mov rdi, rcx
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0xd8], rax
movaps xmm6, xmmword [0x1401ee3a0]
lea r14, [rsp + 0x80]
movaps xmmword [r14 + 0x30], xmm6
movaps xmmword [r14 + 0x20], xmm6
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
lea rdx, str.Next
lea r8, str....._base_files_file_enumerator_win.cc
lea rbx, [rsp + 0x60]
mov rcx, rbx
mov r9d, 0x8b
call fcn.1400bab70
mov rcx, r14
mov rdx, rbx
xor r8d, r8d
call fcn.1400d8580
lea r15, [rdi + 4]
lea rax, [rdi + 0x260]
mov qword [rsp + 0x38], rax
lea rax, [rdi + 0x280]
mov qword [rsp + 0x40], rax
lea r12, [rdi + 0x30]
lea rax, [rdi + 0x2a8]
mov qword [rsp + 0x48], rax
movabs rbp, 0xaaaaaaaaaaaaaaaa
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
lea r14, [rsp + 0x50]
mov r13, qword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp byte [rdi], 0
je 0x14001ba06
mov rcx, qword [rdi + 0x258]
mov rdx, r15
call r13
test eax, eax
je 0x14001b946
call rsi
cmp qword [rdi + 0x258], 0xffffffffffffffff
je 0x14001b963
mov qword [rsp + 0x70], rbp
movaps xmmword [rsp + 0x60], xmm6
mov qword [rsp + 0x50], r12
test r12, r12
je 0x14001bcc4
mov rcx, r12
call fcn.14012d784
mov qword [rsp + 0x58], rax
mov rcx, rbx
mov rdx, r14
call fcn.1400f4860
mov rcx, rdi
mov rdx, rbx
call fcn.14001bd70
test al, al
jne 0x14001b92c
mov r9, rbp
mov rdx, rbx
mov r13d, dword [r15]
movzx ecx, byte [rsp + 0x77]
mov eax, ecx
and eax, 0x7f
test cl, cl
cmovs rax, qword [rsp + 0x68]
mov r8, qword [rsp + 0x30]
mov qword [r8 + 0x10], rbp
mov rcx, qword [rsp + 0x60]
cmovns rcx, rbx
movups xmmword [r8], xmm6
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
test rax, rax
js 0x14001bcf0
mov rbp, r14
mov r14, r12
mov r12, rsi
mov rsi, r15
test rcx, rcx
jne 0x14001b834
test rax, rax
jne 0x14001bc98
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
lea r8, [rsp + 0xc8]
call fcn.1400cdc20
mov r15d, 1
test r13b, 0x10
jne 0x14001b9c5
test dword [rdi + 0x27c], r15d
mov r15, rsi
mov rsi, r12
mov r12, r14
mov r14, rbp
mov r13, qword [sym.imp.KERNEL32.dll_FindNextFileW]
je 0x14001b90a
mov eax, dword [rdi + 0x298]
cmp eax, 1
jne 0x14001b901
cmp byte [rdi + 0x297], 0
mov rdx, qword [rsp + 0x40]
js 0x14001bd1c
cmp byte [rsp + 0x77], 0
mov rcx, rbx
jns 0x14001b8a7
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
cmp eax, 1
jne 0x14001b90a
cmp byte [rsp + 0x77], 0
jns 0x14001b8c3
mov rcx, qword [rsp + 0x60]
call fcn.14012cd4c
lea rcx, [rsp + 0x80]
call fcn.1400ae4f0
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.14012f6f0
mov rax, qword [rsp + 0x30]
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
je 0x14001b8b2
jmp 0x14001bd29
mov rax, qword [rsp + 0x30]
cmp byte [rax + 0x17], 0
movabs rbp, 0xaaaaaaaaaaaaaaaa
jns 0x14001b92c
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call fcn.14012cd4c
cmp byte [rsp + 0x77], 0
jns 0x14001b75f
mov rcx, qword [rsp + 0x60]
call fcn.14012cd4c
jmp 0x14001b75f
mov rcx, qword [rdi + 0x258]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rdi + 0x258], 0xffffffffffffffff
jmp 0x14001b77d
mov byte [rdi], 0
cmp dword [rdi + 0x298], 0
jne 0x14001b98a
cmp byte [rdi + 0x297], 0
js 0x14001b9dd
mov byte [rdi + 0x297], 1
mov rcx, qword [rsp + 0x40]
mov dword [rcx], 0x2a
cmp eax, 0x12
je 0x14001b75f
cmp dword [rdi + 0x29c], 0
je 0x14001b75f
mov ecx, eax
call fcn.140009460
mov dword [rdi + 0x2a0], eax
xorps xmm0, xmm0
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
jmp 0x14001b8c3
mov r15d, 2
cmp byte [rdi + 0x278], 0
je 0x14001b85b
jmp 0x14001bd33
mov qword [rdi + 0x288], 1
mov rcx, qword [rdi + 0x280]
jmp 0x14001b984
mov rax, qword [rdx + 0x10]
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rdx]
movups xmmword [rcx], xmm0
jmp 0x14001ba73
mov rax, qword [rdi + 0x2c0]
cmp qword [rdi + 0x2b8], rax
je 0x14001b9ad
mov rcx, qword [rdi + 0x2b0]
test rax, rax
je 0x14001bbf8
dec rax
cmp rcx, rax
jb 0x14001bc8f
lea rdx, [rax + rax*2]
shl rdx, 3
add rdx, qword [rdi + 0x2a8]
cmp qword [rsp + 0x38], rdx
je 0x14001ba73
cmp byte [rdi + 0x277], 0
movzx r8d, byte [rdx + 0x17]
js 0x14001bbd7
test r8b, r8b
jns 0x14001b9f1
mov rax, qword [rdx]
mov r8, qword [rdx + 8]
mov rcx, qword [rsp + 0x38]
mov rdx, rax
call fcn.140016af0
mov rax, qword [rdi + 0x2b0]
mov rdx, qword [rdi + 0x2c0]
test rdx, rdx
je 0x14001bc00
lea rcx, [rdx - 1]
mov qword [rdi + 0x2c0], rcx
cmp rax, rdx
jb 0x14001bc8c
cmp rax, rcx
jb 0x14001bc92
movabs r8, 0x8000000000000000
cmp rdx, r8
je 0x14001bc95
mov rdx, qword [rsp + 0x48]
mov rdx, qword [rdx]
lea rcx, [rcx + rcx*2]
cmp byte [rdx + rcx*8 + 0x17], 0
jns 0x14001bae0
lea rax, [rdx + rcx*8]
mov rcx, qword [rax]
call fcn.14012cd4c
mov rax, qword [rdi + 0x2b0]
cmp rax, 5
jae 0x14001bc2e
mov qword [rsp + 0x70], rbp
movaps xmmword [rsp + 0x60], xmm6
mov eax, dword [rdi + 0x298]
test eax, eax
jne 0x14001bb49
movzx eax, byte [rdi + 0x297]
test al, al
js 0x14001bb13
and eax, 0x7f
mov rcx, qword [rsp + 0x40]
jmp 0x14001bb21
mov rax, qword [rdi + 0x288]
mov rcx, qword [rdi + 0x280]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
test rax, rax
js 0x14001bcf0
test rcx, rcx
jne 0x14001bb6d
test rax, rax
je 0x14001bb6d
jmp 0x14001bc98
cmp eax, 1
jne 0x14001bc13
lea rax, [0x1401f98fa]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], 1
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
lea r8, [rsp + 0xc8]
call fcn.1400cdc20
cmp byte [rsp + 0x77], 0
mov rcx, rbx
jns 0x14001bb91
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], 0
mov edx, 1
mov r8, r15
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov qword [rdi + 0x258], rax
mov byte [rdi], 1
cmp byte [rsp + 0x77], 0
jns 0x14001b77d
mov rcx, qword [rsp + 0x60]
call fcn.14012cd4c
jmp 0x14001b77d
test r8b, r8b
js 0x14001bbe2
and r8d, 0x7f
jmp 0x14001bbe9
mov r8, qword [rdx + 8]
mov rdx, qword [rdx]
mov rcx, qword [rsp + 0x38]
call fcn.1400170c0
jmp 0x14001ba73
mov rax, rcx
jmp 0x14001ba26
lea rcx, [rax - 1]
mov qword [rdi + 0x2c0], rcx
mov rdx, rax
jmp 0x14001ba9e
call fcn.140168c50
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
jmp 0x14001bb82
mov rdx, qword [rdi + 0x2b8]
mov r8, qword [rdi + 0x2c0]
xor ecx, ecx
cmp rdx, r8
cmova rcx, rax
sub rcx, rdx
add rcx, r8
dec rax
mov rdx, rax
sub rdx, rcx
cmp rdx, rcx
jb 0x14001baea
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x14001baea
mov rcx, qword [rsp + 0x48]
call fcn.140199490
jmp 0x14001baea
int3
int3
int3
int3
lea rax, str.string_view::string_view__CharT___size_t_:_received_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string_view
lea r9, str.__len__0____s___nullptr
mov r8d, 0x13c
call fcn.140167fb0
lea rax, str.null_pointer_passed_to_non_null_argument_of_char_traits_..._::length
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string_view
lea r9, str.__s___nullptr
mov r8d, 0x109
call fcn.140167fb0
lea rax, str.string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string_view
lea r9, str.__len___static_cast_size_type__numeric_limits_difference_type_::max___
mov r8d, 0x13a
call fcn.140167fb0
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax]
jmp 0x14001b898
call fcn.140168c50
jmp 0x14001b90a
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x17], 0
jns 0x14001bd46
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
bt eax, 0xa
jb 0x14001b85b
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
call fcn.14001b3e0
jmp 0x14001b85b