Function at 0x14004e3e0
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push rdi
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1400ebe98]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r14, rdx
mov rdi, rcx
xor ebx, ebx
mov dword [rbp - 0x50], ebx
lea r13d, [rbx + 1]
mov r15b, 4
test byte [0x1400ed740], r15b
je 0x14004e446
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea rdx, [0x1400a3260]
call fcn.140016e58
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], bl
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, rdi
call fcn.14004df40
test eax, eax
je 0x14004e4bb
mov rcx, qword [rdi + reloc.MFC42u.dll_CProperty::CProperty]
call sub.msvcrt.dll_free
mov qword [rdi + reloc.MFC42u.dll_CProperty::CProperty], rbx
test byte [0x1400ed740], r15b
je 0x14004e49c
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x20], rcx
mov r9d, r13d
lea rdx, [0x1400a3200]
call fcn.140016e58
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
nop dword [rax + rax]
mov rcx, rax
call fcn.140063c6c
mov eax, r13d
jmp 0x14004e6ee
cmp dword [rbp - 0x50], ebx
je 0x14004e4ea
test byte [0x1400ed740], r15b
je 0x14004e6ec
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea rdx, [0x1400a3200]
call fcn.140016e58
jmp 0x14004e6ec
mov ecx, CSocketFile::CSocketFile
call fcn.140082d90
mov rsi, rax
test rax, rax
jne 0x14004e51e
test byte [0x1400ed740], r15b
je 0x14004e511
lea rdx, [0x1400a3200]
call fcn.140016d60
call qword [sym.imp.MFC42u.dll_AfxUnlockGlobals]
nop dword [rax + rax]
int3
mov r8d, 0x104
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
nop dword [rax + rax]
test eax, eax
je 0x14004e627
cmp eax, 0x104
jg 0x14004e627
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
nop dword [rax + rax]
mov r15, rax
mov dword [rsp + 0x20], r13d
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], r13d
or r9d, 0xffffffff
lea r8, str..docx
or edx, r9d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
nop dword [rax + rax]
xor ecx, ecx
cmp eax, 2
sete cl
cmp ebx, 2
je 0x14004e5b7
test ecx, ecx
jne 0x14004e5b7
xor r9d, r9d
jmp 0x14004e5ba
mov r9b, r13b
and qword [rsp + 0x28], 0
mov byte [rsp + 0x20], r13b
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.14004df40
test eax, eax
je 0x14004e613
mov rcx, qword [rdi + reloc.MFC42u.dll_CProperty::CProperty]
call sub.msvcrt.dll_free
mov qword [rdi + reloc.MFC42u.dll_CProperty::CProperty], rsi
test byte [0x1400ed740], 4
je 0x14004e60b
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea rdx, [0x1400a3200]
call fcn.140016e58
mov rcx, r15
jmp 0x14004e4ae
mov rcx, rsi
call sub.msvcrt.dll_free
test byte [0x1400ed740], 4
jmp 0x14004e4c7
mov rcx, rsi
call sub.msvcrt.dll_free
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 2
je 0x14004e67b
cmp eax, 0x43
je 0x14004e67b
test byte [0x1400ed740], r15b
je 0x14004e65a
lea rdx, [0x1400a3200]
call fcn.140016d60
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov edx, eax
mov r8, r14
mov ecx, r13d
call qword [sym.imp.MFC42u.dll_AfxTlsRelease]
nop dword [rax + rax]
int3
mov edx, 2
lea rcx, [rbp - 0x40]
call fcn.14004d81c
nop
mov rax, qword [rdi]
mov dword [rsp + 0x20], 0xf101
xor r9d, r9d
lea r8, [rbp - 0x40]
mov rdx, r14
mov rcx, rdi
mov rax, qword [rax + 0x110]
call qword [str._N_b_]
test byte [0x1400ed740], r15b
je 0x14004e6d1
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea rdx, [0x1400a3200]
call fcn.140016e58
nop
lea rax, vtable.CFileException.0
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x28]
call qword [sym.imp.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef]
nop dword [rax + rax]
xor eax, eax
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140083280
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret