Function at 0x140025bf0
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0x90
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov rbp, r8
mov rdi, rdx
mov rbx, rcx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140025f09
mov rdx, rbx
lea rcx, [rsp + 0x48]
call qword [0x1400409b8]
nop
lea r8, [0x140044ad0]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.14000ce00
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.14000cd80
nop
lea r8, str..frd
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.14000ce00
nop
lea rcx, [rsp + 0xc8]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor r12d, r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 1]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
test rax, rax
je 0x140025ef0
cmp rax, 0xffffffffffffffff
je 0x140025ef0
mov dword [rsp + 0x50], r12d
xor eax, eax
mov dword [rsp + 0x54], eax
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
cmp dword [rsp + 0x54], r12d
jne 0x140025ed5
mov esi, dword [rsp + 0x50]
test esi, esi
je 0x140025ed5
cmp esi, 0x18
ja 0x140025d25
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor eax, eax
jmp 0x140025f09
mov dword [rsp + 0xc8], r12d
lea rax, vtable.fast_array_unsigned_char_.0
mov qword [rsp + 0x78], rax
mov rbx, r12
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc8]
mov r8d, 0x18
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0xc8], 0x18
jne 0x140025ebc
cmp dword [rsp + 0x60], 0x46524448
jne 0x140025ebc
cmp dword [rsp + 0x64], 0x534b464e
jne 0x140025ebc
cmp dword [rsp + 0x68], 1
jne 0x140025ebc
mov r8d, dword [rsp + 0x70]
test r8d, r8d
je 0x140025ebc
mov eax, dword [rsp + 0x74]
test eax, eax
je 0x140025ebc
cmp dword [rsp + 0x6c], esi
jne 0x140025ebc
cmp r8d, eax
cmova eax, r8d
mov esi, eax
test eax, eax
je 0x140025e08
mov qword [rsp + 0x88], r12
test eax, eax
je 0x140025e08
mov rcx, rsi
call sub.mfc90u.dll_new__
test rax, rax
je 0x140025ebc
mov rbx, rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rsi
mov r8d, dword [rsp + 0x70]
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc8]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r11d, dword [rsp + 0x70]
cmp dword [rsp + 0xc8], r11d
jne 0x140025ebc
mov r8, r11
mov rdx, rbx
mov rcx, rbp
call fcn.1400265f0
test al, al
je 0x140025ebc
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc8]
mov r8d, dword [rsp + 0x74]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r11d, dword [rsp + 0x74]
cmp dword [rsp + 0xc8], r11d
jne 0x140025ebc
mov r8, r11
lea rcx, [rbp + 0x48]
mov rdx, rbx
call fcn.1400265f0
test al, al
je 0x140025ebc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
test rbx, rbx
je 0x140025e9e
mov rcx, rbx
call sub.mfc90u.dll_delete__
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
mov eax, 1
jmp 0x140025f09
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
test rbx, rbx
je 0x140025ef0
mov rcx, rbx
call sub.mfc90u.dll_delete__
jmp 0x140025ef0
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor eax, eax
jmp 0x140025f09
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc90u.dll_CView::CView]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc90u.dll_CView::CView]
xor eax, eax
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret