Function at 0x419460
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x558
mov rdi, qword [0x004471b0]
mov rax, qword [rdi]
mov r13, qword [rax + 0x1348]
mov dword [rsp + 0x5a8], edx
mov r12, rcx
mov ebx, r8d
test r13, r13
je 0x4195a0
mov r14, qword [sym.imp.ucrtbase.dll_strcmp]
mov rbp, r13
jmp 0x4194bd
mov rbp, qword [rbp + 0x10]
test rbp, rbp
je 0x4195a0
mov rcx, qword [rbp]
mov rdx, r12
call r14
test eax, eax
jne 0x4194b0
mov rcx, qword [rbp + 8]
lea rdx, [rsp + 0x38]
xor r8d, r8d
call sym.source_map_file
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x41958c
mov eax, dword [rsp + 0x5a8]
lea r13, [rsp + 0x150]
lea r12, str._d_t_s_n
lea esi, [rax - 1]
movsxd r14, esi
shl r14, 2
cmp esi, ebx
jl 0x41955b
jmp 0x419574
xor eax, eax
mov ecx, pe_nt_image_headers64
mov rdi, r13
rep stosq qword [rdi], rax
mov rax, qword [rbp + 0x20]
mov r8d, dword [rax + r14 + 4]
mov eax, dword [rax + r14]
cmp r8d, eax
je 0x419543
sub r8d, 1
mov edx, eax
mov rcx, r13
add rdx, r15
sub r8d, eax
call sym.memcpy
add esi, 1
mov r8, r13
mov rcx, r12
add r14, 4
mov edx, esi
call sym.dbg_printf
cmp ebx, esi
jle 0x419574
test esi, esi
js 0x419569
mov eax, dword [rbp + 0x1c]
sub eax, 1
cmp eax, esi
jg 0x419510
add esi, 1
add r14, 4
cmp ebx, esi
jg 0x41955b
mov r12, qword [rsp + 0x38]
mov rcx, r15
call qword [sym.imp.kernel32.dll_UnmapViewOfFile]
mov rcx, r12
call qword [sym.imp.kernel32.dll_CloseHandle]
nop
add rsp, 0x558
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [sym.imp.ucrtbase.dll_strrchr]
mov edx, 0x5c
mov rcx, r12
call rsi
test rax, rax
je 0x419860
lea rsi, [rax + 1]
test r13, r13
je 0x4195f0
mov r14, qword [sym.imp.ucrtbase.dll_strcmp]
jmp 0x4195d9
mov r13, qword [r13 + 0x10]
test r13, r13
je 0x4195f0
mov rcx, qword [r13]
mov rdx, rsi
call r14
test eax, eax
jne 0x4195d0
mov rbp, r13
jmp 0x4194cb
mov rbp, qword [sym.imp.kernel32.dll_GetFileAttributesA]
mov rcx, r12
call rbp
cmp eax, 0xffffffff
jne 0x419690
mov rax, qword [rdi]
mov r14, r12
lea r15, [rsp + 0x40]
cmp qword [rax + 0x1350], 0
je 0x4197a8
nop
movzx eax, byte [r14]
cmp al, 0x2f
je 0x419798
test al, al
jne 0x41964c
jmp 0x4197a8
movzx eax, byte [r14]
test al, al
je 0x4197a8
cmp al, 0x2f
je 0x419798
add r14, 1
cmp al, 0x5c
jne 0x419638
mov rax, qword [rdi]
xor r8d, r8d
mov r13, r15
mov r9d, 0x104
mov rdx, r14
mov rcx, qword [rax + 0x1350]
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x28], 0
call qword [sym.imp.kernel32.dll_SearchPathA]
test eax, eax
je 0x419620
jmp 0x4196a1
lea r13, [rsp + 0x40]
mov rdx, r12
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_strcpy]
mov rdx, r13
mov rcx, r12
call sym.source_add_file
lea rdx, [rsp + 0x38]
mov rcx, r13
lea r8, [rax + 0x18]
mov rbp, rax
call sym.source_map_file
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x41958c
mov r8d, dword [rbp + 0x18]
mov dword [rbp + 0x1c], 1
add r8, rax
cmp rax, r8
jae 0x4198af
mov ecx, 1
nop dword [rax]
add rax, 1
lea edx, [rcx + 1]
cmp byte [rax - 1], 0xa
jne 0x419709
lea r9d, [rcx + 2]
mov dword [rbp + 0x1c], edx
mov ecx, edx
mov edx, r9d
cmp rax, r8
jne 0x4196f0
movsxd rcx, edx
shl rcx, 2
mov dword [rbp + 0x1c], edx
call qword [sym.imp.ucrtbase.dll_malloc]
mov qword [rbp + 0x20], rax
mov dword [rax], 0
mov r10d, dword [rbp + 0x18]
lea rax, [r15 + r10]
cmp r15, rax
jae 0x41989e
mov r9, qword [rbp + 0x20]
mov rax, r15
mov r8d, 1
nop word cs:[rax + rax]
add rax, 1
movsxd rdx, r8d
shl rdx, 2
cmp byte [rax - 1], 0xa
lea rcx, [r9 + rdx]
jne 0x41977f
mov r9, rax
add r8d, 1
sub r9, r15
mov dword [rcx], r9d
mov r9, qword [rbp + 0x20]
mov r10d, dword [rbp + 0x18]
lea rcx, [r9 + rdx + 4]
lea rdx, [r15 + r10]
cmp rax, rdx
jb 0x419750
sub eax, r15d
mov dword [rcx], eax
jmp 0x4194e9
test al, al
je 0x4197a8
add r14, 1
jmp 0x419654
mov rax, qword [0x004471f0]
mov eax, dword [rax]
test eax, eax
je 0x41987b
lea r13, [rsp + 0x40]
lea rdi, [rsp + 0x150]
lea r14, str.Enter_path_to_file__s___cr__to_end_search_:
lea r15, str.Unable_to_access_file__s_n
jmp 0x41981b
movzx edx, byte [rsp + rax + 0x3f]
cmp dl, 0x2f
je 0x4197f8
cmp dl, 0x5c
je 0x4197f8
mov byte [rsp + rax + 0x40], 0x2f
add rax, 1
lea rcx, [r13 + rax]
mov rdx, rsi
call qword [sym.imp.ucrtbase.dll_strcpy]
mov rcx, r13
call rbp
cmp eax, 0xffffffff
jne 0x41984d
mov rdx, r13
mov rcx, r15
call sym.dbg_printf
mov r9, r12
mov r8, r14
mov edx, 0x100
mov rcx, rdi
call sym.snprintf.constprop.0
mov rcx, rdi
mov r8d, 0x104
mov rdx, r13
call sym.input_read_line
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_strlen]
test rax, rax
jne 0x4197e0
cmp byte [rsp + 0x40], 0
jne 0x4196a1
jmp 0x41988f
mov edx, 0x2f
mov rcx, r12
call rsi
test rax, rax
jne 0x4195ba
mov rsi, r12
jmp 0x4195be
mov rdx, r12
lea rcx, str.Unable_to_access_file__s_n
call sym.dbg_printf
mov byte [rsp + 0x40], 0
xor edx, edx
mov rcx, r12
call sym.source_add_file
jmp 0x41958c
mov rax, qword [rbp + 0x20]
lea rcx, [rax + 4]
xor eax, eax
mov dword [rcx], eax
jmp 0x4194e9
mov ecx, 8
mov edx, 2
jmp 0x419715