Function at 0x1400689e8
Capabilities:
Check if file exists
Enumerate files on windows

Disassembly:
mov r10, r8
mov rcx, rdx
xor r8d, r8d
mov rdx, r10
jmp 0x1400843b8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2b8
mov rax, qword [0x140139980]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov r15, qword [rsp + 0x320]
xor eax, eax
movsxd r12, dword [rsp + 0x328]
mov rbx, rcx
mov qword [rsp + 0x48], r9
mov r14d, eax
mov qword [rsp + 0x38], r8
mov r13d, eax
mov qword [rsp + 0x28], rdx
mov ebp, eax
mov byte [rsp + 0x20], al
test r15, r15
je 0x14008441b
test r12d, r12d
jle 0x14008441b
mov byte [r15], al
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
movsxd rcx, eax
mov rdi, rax
add rcx, 0xa
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x40], rax
mov rsi, rax
test rax, rax
jne 0x14008446d
test r15, r15
je 0x140084465
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, dword [rax]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
mov rdx, r12
lea r8, [0x140124f98]
mov r9, rax
mov rcx, r15
call fcn.14006ee9c
or eax, 0xffffffff
jmp 0x140084727
mov rdx, rbx
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
mov al, byte [rsi]
xor ecx, ecx
mov rbx, rsi
jmp 0x14008448d
cmp al, 0x2f
jne 0x140084488
mov byte [rbx], 0x5c
inc rbx
mov al, byte [rbx]
test al, al
jne 0x140084481
mov eax, 0x2a
test edi, edi
jne 0x1400844ae
lea rdx, [0x1401272f4]
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
jmp 0x14008452e
cmp edi, 2
jne 0x1400844d5
cmp byte [rsi + 1], 0x3a
jne 0x140084503
movsx ecx, byte [rsi]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
xor ecx, ecx
test eax, eax
lea eax, [rdi + 0x28]
je 0x140084503
mov byte [rbx], 0x5c
inc rbx
mov byte [rbx], cl
jmp 0x140084503
cmp edi, 1
jne 0x1400844fb
cmp byte [rbx - 1], 0x2e
jne 0x140084503
lea rdx, [0x1401272f4]
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
xor ecx, ecx
mov byte [rsp + 0x20], dil
lea eax, [rdi + 0x29]
jmp 0x140084503
mov byte [rsp + 0x20], cl
test edi, edi
jle 0x140084515
cmp byte [rbx - 1], 0x5c
jne 0x140084515
mov byte [rbx], al
inc rbx
mov byte [rsp + 0x20], 1
mov byte [rbx], cl
cmp edi, 1
jle 0x14008452e
cmp byte [rbx - 1], 0x2e
jne 0x14008452e
cmp byte [rbx - 2], 0x5c
jne 0x14008452e
mov byte [rbx - 1], al
mov byte [rsp + 0x20], 1
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov rdx, rax
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.140061a6c
mov ebx, eax
lea ecx, [rax + 3]
add rcx, rcx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rsi
mov rdi, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov rdx, rax
lea r9d, [rbx + 1]
mov r8, rdi
mov rcx, rsi
call fcn.140061a6c
mov ebx, eax
xor eax, eax
mov word [rdi + rbx*2], ax
cmp byte [rsp + 0x20], al
jne 0x1400845ae
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400845ae
xor r12d, r12d
test al, 0x10
je 0x1400845b1
lea eax, [rbx + 1]
mov word [rdi + rbx*2], 0x5c
mov word [rdi + rax*2], 0x2a
lea eax, [rbx + 2]
mov word [rdi + rax*2], r12w
jmp 0x1400845b1
xor r12d, r12d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.kernel32.dll_FindFirstFileW]
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp rbx, 0xffffffffffffffff
jne 0x140084604
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x12
je 0x1400845f7
mov edx, dword [rsp + 0x328]
or r14d, ebx
mov rcx, r15
call fcn.14008474c
mov rax, qword [rsp + 0x28]
mov qword [rax], r12
jmp 0x140084724
mov rsi, rbx
lea rcx, [rsp + 0x7c]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
mov rdi, rax
lea ebx, [rax + rax*4]
movsxd rcx, ebx
add rcx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea edx, [rbx + 1]
mov r9d, edi
mov rcx, rax
lea r8, [rsp + 0x7c]
mov r15, rax
call fcn.140061994
xor edi, edi
movsxd rcx, eax
mov byte [rcx + r15], dil
test byte [rsp + 0x50], 0x10
je 0x14008465a
lea rdx, [0x14011ffc4]
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x140084678
mov rcx, r15
call rax
test eax, eax
jne 0x140084678
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x1400846cd
cmp r14d, r13d
jne 0x1400846be
lea eax, [r13 + 0x21]
mov ecx, 8
movsxd rdx, eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rbx, rax
test r13d, r13d
je 0x1400846a9
movsxd r8, r13d
mov rdx, rbp
shl r8, 3
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
test rbp, rbp
je 0x1400846b7
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbp, rbx
add r13d, 0x20
mov qword [r12 + rbp], r15
inc r14d
add r12, 8
mov qword [r12 + rbp], rdi
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_FindNextFileW]
test eax, eax
jne 0x140084607
call qword [sym.imp.kernel32.dll_GetLastError]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_FindClose]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14008471c
movsxd rdx, r14d
mov r9, rax
mov r8d, 8
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
mov rax, qword [rsp + 0x28]
mov qword [rax], rbp
mov eax, r14d
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.1400a6970
add rsp, 0x2b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret