Function at 0x14005a3a0
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rdi
push r14
push r15
sub rsp, 0x60
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rbp
mov r15, rdx
mov r14, rcx
and dword [rax + 8], 0
lea rdx, [rcx + 0x48]
lea rcx, [rax + 0x18]
call qword [sym.imp.MFC42u.dll_CControlBar::CControlBar]
nop dword [rax + rax]
xor edx, edx
mov rcx, rax
call fcn.140061f64
mov bl, 4
test byte [0x1400fecc0], bl
je 0x14005a3fa
lea rdx, [0x1400b23f8]
call fcn.140016f80
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call fcn.140059f20
test eax, eax
je 0x14005a471
mov rcx, qword [r14 + reloc.MFC42u.dll_CProperty::CProperty]
call sub.msvcrt.dll_free
and qword [r14 + reloc.MFC42u.dll_CProperty::CProperty], 0
test byte [0x1400fecc0], bl
je 0x14005a449
lea rdx, [0x1400b2398]
call fcn.140016f80
mov edx, dword [r14 + 0x1c4]
mov ecx, 1
call fcn.140061f04
mov dword [0x1400ff514], eax
mov byte [0x1400ff51c], 1
mov eax, 1
jmp 0x14005a685
cmp dword [rsp + 0x80], 0
je 0x14005a49b
test byte [0x1400fecc0], bl
je 0x14005a48f
lea rdx, [0x1400b2398]
call fcn.140016f80
mov byte [0x1400ff51c], 0
jmp 0x14005a683
mov ecx, CSocketFile::CSocketFile
call fcn.1400924e0
mov rbp, rax
test rax, rax
jne 0x14005a4ce
test byte [0x1400fecc0], bl
je 0x14005a4c1
lea rdx, [0x1400b2398]
call fcn.140016f80
call qword [sym.imp.MFC42u.dll_AfxUnlockGlobals]
nop dword [rax + rax]
int3
mov edi, 0x104
mov r8d, edi
mov rdx, rbp
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
nop dword [rax + rax]
test eax, eax
je 0x14005a5bf
cmp eax, edi
jg 0x14005a5bf
mov rcx, r15
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
nop dword [rax + rax]
mov rdi, rax
mov dword [rsp + 0x20], 1
or r9d, 0xffffffff
lea r8, str..odt
or edx, r9d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
nop dword [rax + rax]
mov ebx, eax
mov dword [rsp + 0x20], 1
or r9d, 0xffffffff
lea r8, str..docx
or edx, r9d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
nop dword [rax + rax]
xor ecx, ecx
cmp eax, 2
sete cl
cmp ebx, 2
je 0x14005a56c
test ecx, ecx
jne 0x14005a56c
xor r9d, r9d
jmp 0x14005a56f
mov r9b, 1
and qword [rsp + 0x28], 0
mov byte [rsp + 0x20], 1
mov r8, r15
mov rdx, rbp
mov rcx, r14
call fcn.140059f20
test eax, eax
je 0x14005a5ab
mov rcx, qword [r14 + reloc.MFC42u.dll_CProperty::CProperty]
call sub.msvcrt.dll_free
mov qword [r14 + reloc.MFC42u.dll_CProperty::CProperty], rbp
test byte [0x1400fecc0], 4
jmp 0x14005a43b
mov rcx, rbp
call sub.msvcrt.dll_free
test byte [0x1400fecc0], 4
jmp 0x14005a481
mov rcx, rbp
call sub.msvcrt.dll_free
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 2
je 0x14005a614
cmp eax, 0x43
je 0x14005a614
test byte [0x1400fecc0], bl
je 0x14005a5f1
lea rdx, [0x1400b2398]
call fcn.140016f80
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov edx, eax
mov r8, r15
mov ecx, 1
call qword [sym.imp.MFC42u.dll_AfxTlsRelease]
nop dword [rax + rax]
int3
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.1400597cc
nop
mov rax, qword [r14]
mov dword [rsp + 0x20], 0xf101
xor r9d, r9d
lea r8, [rsp + 0x38]
mov rdx, r15
mov rcx, r14
mov rax, qword [rax + 0x110]
call qword [str._E_t_]
mov byte [0x1400ff51c], 0
test byte [0x1400fecc0], bl
je 0x14005a666
lea rdx, [0x1400b2398]
call fcn.140016f80
nop
lea rax, vtable.CFileException.0
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x50]
call qword [sym.imp.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef]
nop dword [rax + rax]
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret