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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xa58]
sub rsp, 0xb30
mov rax, qword [0x14000b0c8]
xor rax, rsp
mov qword [rbp + 0xa20], rax
mov r12d, 0x100
lea rax, [rbp + 0x400]
mov qword [rsp + 0x40], r12
lea r9, [rbp + 0x500]
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x50]
xor r14d, r14d
mov qword [rsp + 0x30], r12
lea rax, [rbp + 0x600]
mov esi, r14d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
lea r8d, [r14 + 3]
call qword [sym.imp.msvcrt.dll__splitpath_s]
nop dword [rax + rax]
cmp dword [0x14000b7b0], r14d
je 0x1400015e1
lea rax, [rbp + 0x400]
lea r9, [rbp + 0x600]
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x500]
lea rdx, [rsp + 0x50]
lea rcx, str.Drive_s__Dir_s__Name_s__Ext___s_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
mov ebx, r14d
cmp byte [rbp + 0x600], r14b
jne 0x1400015f6
mov word [rbp + 0x600], 0x2a
cmp byte [0x14000b7b4], r14b
mov r13d, 1
je 0x140001655
cmp byte [rbp + 0x400], r14b
jne 0x140001655
lea r8, [0x1400076c0]
mov rdx, r12
lea rax, [rbp + 0x400]
sub r8, rax
lea rcx, [rbp + 0x400]
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x140001647
mov al, byte [r8 + rcx]
test al, al
je 0x140001647
mov byte [rcx], al
add rcx, r13
sub rdx, r13
jne 0x140001629
test rdx, rdx
lea rax, [rcx - 1]
cmovne rax, rcx
mov byte [rax], r14b
lea rax, [rbp + 0x400]
mov r15d, 0x104
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x500]
lea rax, [rbp + 0x600]
mov edx, r15d
lea r8, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.msvcrt.dll__makepath_s]
nop dword [rax + rax]
cmp dword [0x14000b7b0], r14d
je 0x1400016b8
lea rdx, [rbp + 0x1e0]
lea rcx, str.Target_file_is__s_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
mov dword [rsp + 0x28], r14d
lea r8, [rbp + 0xa0]
xor r9d, r9d
mov qword [rsp + 0x20], r14
xor edx, edx
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileExA]
nop dword [rax + rax]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140001716
cmp dword [0x14000b7b0], r14d
je 0x140001a32
lea rdx, [rbp + 0x400]
lea rcx, str.No_files_Found_with__s_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
jmp 0x140001a32
cmp byte [0x14000b7b4], r14b
lea rax, [rbp + 0xcc]
mov qword [rsp + 0x28], r14
lea r9, [rbp + 0x500]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
mov rdx, r15
jne 0x140001965
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.msvcrt.dll__makepath_s]
nop dword [rax + rax]
mov r8, r15
lea rcx, [rbp + 0x2f0]
xor edx, edx
call sub.msvcrt.dll_memset
mov rcx, qword [0x14000b7b8]
lea rdx, [0x14000b7c0]
xor r8d, r8d
call qword [sym.imp.dbghelp.dll_SymInitialize]
nop dword [rax + rax]
cmp dword [0x14000b7b0], r14d
mov ebx, 0x680
je 0x1400017ce
lea rdx, [0x14000b7c0]
lea rcx, str.Current_Symbol_Search_Path___s__n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
mov rcx, qword [0x14000b7b8]
lea rdx, [0x140001260]
xor r8d, r8d
mov ebx, 0x80000680
call qword [sym.imp.dbghelp.dll_SymRegisterCallback64]
nop dword [rax + rax]
mov ecx, ebx
call qword [sym.imp.dbghelp.dll_SymSetOptions]
nop dword [rax + rax]
mov rcx, qword [0x14000b7b8]
lea rax, [rbp + 0x810]
mov qword [rsp + 0x38], r15
lea r8, [rbp + 0x1e0]
mov qword [rsp + 0x30], rax
mov r9d, 2
lea rax, [rbp + 0x2f0]
mov qword [rsp + 0x28], r15
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.dbghelp.dll_SymGetSymbolFile]
nop dword [rax + rax]
test eax, eax
jne 0x140001978
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 2
jne 0x140001936
mov qword [rsp + 0x40], r12
lea rax, [rbp + 0x920]
mov qword [rsp + 0x38], rax
lea rcx, [rbp + 0x1e0]
mov qword [rsp + 0x30], r14
xor r9d, r9d
mov qword [rsp + 0x28], r14
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r14
call qword [sym.imp.msvcrt.dll__splitpath_s]
nop dword [rax + rax]
lea rax, [rbp + 0x400]
mov byte [rbp + 0x400], 0x5c
lea r9, [0x14000b7c0]
mov qword [rsp + 0x20], rax
lea r8, str._s_s
mov rdx, r15
lea rcx, [rsp + 0x60]
call fcn.14000115c
lea rdx, [rsp + 0x60]
lea rcx, str.Trying_Symbol_Path__s_:___n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
mov rcx, qword [0x14000b7b8]
lea rax, [rbp + 0x810]
mov qword [rsp + 0x38], r15
lea r8, [rbp + 0x1e0]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x60]
lea rax, [rbp + 0x2f0]
mov qword [rsp + 0x28], r15
mov r9d, ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.dbghelp.dll_SymGetSymbolFile]
nop dword [rax + rax]
test eax, eax
jne 0x140001978
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
lea rdx, [rbp + 0x1e0]
lea rcx, str.Failed_to_get_PDB_file_for__s_:_PDB_error_:__d__n
mov r8d, eax
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
jmp 0x1400019e4
lea rdx, [rbp + 0x1e0]
cmp eax, 0xc1
jne 0x14000195c
lea rcx, str._s_Invalid_Image_Format__is_not_EXE__SYS__or_DLL_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
jmp 0x1400019e4
lea rcx, str.Failed_to_get_PDB_file_for__s_error_:__d_n
jmp 0x140001922
lea rcx, [rbp + 0x2f0]
call qword [sym.imp.msvcrt.dll__makepath_s]
nop dword [rax + rax]
cmp dword [0x14000b7b0], r14d
je 0x1400019a2
lea r8, [0x14000cce0]
lea rdx, [rbp + 0x2f0]
lea rcx, str.Extracting_TMF_files_from__s_to__s_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
lea rcx, [rbp + 0x2f0]
call fcn.140004f70
mov ebx, eax
test eax, eax
je 0x1400019e4
mov r8d, eax
lea rdx, [rbp + 0xcc]
lea rcx, str.Couldnt_process_file__s__Status__0x_08X_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
lea rcx, str.Continuing_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
nop dword [rax + rax]
test eax, eax
jne 0x140001a2a
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 0x12
je 0x140001a24
mov edx, eax
lea rcx, str.Couldnt_find_next_file__GetLastError____0x_08X._n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
mov ebx, r14d
mov esi, r13d
test esi, esi
je 0x140001716
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
nop dword [rax + rax]
cmp dword [0x14000b8c4], r14d
je 0x140001be1
cmp dword [0x14000b7b0], r14d
mov edi, r14d
je 0x140001a6d
lea rcx, str.Processing_subdirs_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
mov qword [rsp + 0x28], r14
lea r9, [rbp + 0x500]
lea r8, [rsp + 0x50]
mov qword [rsp + 0x20], r14
mov rdx, r15
lea rcx, [rbp + 0x700]
call qword [sym.imp.msvcrt.dll__makepath_s]
nop dword [rax + rax]
lea r8, [0x14000789c]
lea rcx, [rbp + 0x700]
call fcn.1400010c4
mov r9d, r13d
mov dword [rsp + 0x28], r14d
lea r8, [rsp + 0x60]
mov qword [rsp + 0x20], r14
xor edx, edx
lea rcx, [rbp + 0x700]
call qword [sym.imp.KERNEL32.dll_FindFirstFileExA]
nop dword [rax + rax]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140001bd2
mov r12b, 0x2e
mov cl, byte [rbp - 0x73]
cmp byte [rbp - 0x74], r12b
jne 0x140001b09
test cl, cl
je 0x140001bb0
cmp byte [rbp - 0x74], r12b
jne 0x140001b09
cmp cl, r12b
jne 0x140001b09
cmp byte [rbp - 0x72], r14b
je 0x140001bb0
test byte [rsp + 0x60], 0x10
je 0x140001bb0
lea rax, [rbp - 0x74]
mov qword [rsp + 0x28], r14
lea r9, [rbp + 0x500]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
mov rdx, r15
lea rcx, [rbp + 0x2f0]
call qword [sym.imp.msvcrt.dll__makepath_s]
nop dword [rax + rax]
lea r8, [0x1400078a0]
lea rcx, [rbp + 0x2f0]
call fcn.1400010c4
lea rdx, [rbp + 0x2f0]
lea rcx, str.Processing_Dir__s_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
lea rcx, [rbp + 0x2f0]
call fcn.140001520
mov ebx, eax
test eax, eax
je 0x140001bb0
mov r8d, eax
lea rdx, [rbp - 0x74]
lea rcx, str.Couldnt_process_Dir__s__Status__0x_08X_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
lea rcx, str.Continuing_n
call qword [sym.imp.msvcrt.dll_printf]
nop dword [rax + rax]
lea rdx, [rsp + 0x60]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
nop dword [rax + rax]
test eax, eax
cmove edi, r13d
test edi, edi
je 0x140001ae3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
nop dword [rax + rax]
mov eax, ebx
mov rcx, qword [rbp + 0xa20]
xor rcx, rsp
call fcn.140005e90
lea r11, [rsp + 0xb30]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret