Function at 0x1000231d4
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r15
sub rsp, 0x60
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov r13, rdx
mov rbp, rcx
xor r15d, r15d
mov dword [rax + 8], r15d
lea rdx, [rcx + 0x48]
lea rcx, [rax + 0x18]
call sub.MFC42u.dll_CControlBar::CControlBar
xor edx, edx
mov rcx, rax
call fcn.100005f20
mov dil, 4
movabs rbx, 0x8000000000000000
cmp dword [0x1000fb1f4], r15d
jne 0x100039da3
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], r15b
xor r9d, r9d
xor r8d, r8d
mov rdx, r13
mov rcx, rbp
call fcn.1000232d0
cmp eax, r15d
je 0x100039e43
mov rcx, qword [rbp + reloc.MFC42u.dll_CProperty::CProperty]
call sub.msvcrt.dll_free
mov qword [rbp + reloc.MFC42u.dll_CProperty::CProperty], r15
cmp dword [0x1000fb1f4], r15d
jne 0x100039df3
lea rcx, [0x1000f6280]
call fcn.100005970
mov rbx, rax
mov edx, dword [rbp + 0x1c4]
mov ecx, 1
call fcn.100005cd8
mov dword [rbx], eax
lea rcx, [0x1000f6280]
call fcn.100005970
mov byte [rax + 8], 1
mov eax, 1
jmp 0x1000232b2
mov rbx, qword [rsp + 0x98]
add rsp, 0x60
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret
mov al, byte [0x1000fb1f8]
cmp al, dil
jae 0x100039db7
cmp al, r15b
jne 0x10002322e
test qword [0x1000fb1e0], rbx
je 0x10002322e
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rbx
cmp rax, rcx
jne 0x10002322e
lea rdx, [0x1000cce98]
mov rcx, qword [0x1000fc250]
call fcn.100054630
nop
jmp 0x10002322e
mov al, byte [0x1000fb1f8]
cmp al, dil
jae 0x100039e07
cmp al, r15b
jne 0x10002327a
test qword [0x1000fb1e0], rbx
je 0x10002327a
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rbx
cmp rax, rcx
jne 0x10002327a
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
nop
jmp 0x10002327a
cmp dword [rsp + 0x90], r15d
je 0x100039eab
cmp dword [0x1000fb1f4], r15d
je 0x100039e94
mov al, byte [0x1000fb1f8]
cmp al, dil
jae 0x100039e66
cmp al, r15b
jne 0x100039e94
test qword [0x1000fb1e0], rbx
je 0x100039e94
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rbx
cmp rax, rcx
jne 0x100039e94
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
lea rcx, [0x1000f6280]
call fcn.100005970
mov byte [rax + 8], r15b
xor eax, eax
jmp 0x1000232b2
mov ecx, CSocketFile::CSocketFile
call fcn.10000640c
mov r12, rax
cmp rax, r15
jne 0x100039f0a
cmp dword [0x1000fb1f4], r15d
je 0x100039f04
mov al, byte [0x1000fb1f8]
cmp al, dil
jae 0x100039ed6
cmp al, r15b
jne 0x100039f04
test qword [0x1000fb1e0], rbx
je 0x100039f04
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rbx
cmp rax, rcx
jne 0x100039f04
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
call sub.MFC42u.dll_AfxUnlockGlobals
int3
mov r8d, 0x104
mov rdx, rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
cmp eax, r15d
je 0x10003a0cc
cmp eax, 0x104
jg 0x10003a0cc
mov rcx, r13
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
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]
mov ebx, r15d
cmp eax, 2
sete bl
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]
mov ecx, r15d
cmp eax, 2
sete cl
cmp ebx, r15d
jne 0x100039f9b
cmp ecx, r15d
jne 0x100039f9b
mov r9b, r15b
jmp 0x100039f9e
mov r9b, 1
mov qword [rsp + 0x28], r15
mov byte [rsp + 0x20], 1
mov r8, r13
mov rdx, r12
mov rcx, rbp
call fcn.1000232d0
cmp eax, r15d
je 0x10003a05d
mov rcx, qword [rbp + reloc.MFC42u.dll_CProperty::CProperty]
call sub.msvcrt.dll_free
mov qword [rbp + reloc.MFC42u.dll_CProperty::CProperty], r12
cmp dword [0x1000fb1f4], r15d
je 0x10003a022
mov al, byte [0x1000fb1f8]
cmp al, 4
jae 0x100039fea
cmp al, r15b
jne 0x10003a022
movabs rdx, 0x8000000000000000
test qword [0x1000fb1e0], rdx
je 0x10003a022
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rdx
cmp rax, rcx
jne 0x10003a022
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
lea rcx, [0x1000f6280]
call fcn.100005970
mov rbx, rax
mov edx, dword [rbp + 0x1c4]
mov ecx, 1
call fcn.100005cd8
mov dword [rbx], eax
lea rcx, [0x1000f6280]
call fcn.100005970
mov byte [rax + 8], 1
mov eax, 1
jmp 0x1000232b2
mov rcx, r12
call sub.msvcrt.dll_free
cmp dword [0x1000fb1f4], r15d
je 0x10003a0b5
mov al, byte [0x1000fb1f8]
cmp al, 4
jae 0x10003a07d
cmp al, r15b
jne 0x10003a0b5
movabs rdx, 0x8000000000000000
test qword [0x1000fb1e0], rdx
je 0x10003a0b5
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rdx
cmp rax, rcx
jne 0x10003a0b5
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
lea rcx, [0x1000f6280]
call fcn.100005970
mov byte [rax + 8], r15b
xor eax, eax
jmp 0x1000232b2
mov rcx, r12
call sub.msvcrt.dll_free
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x10003a141
cmp eax, 0x43
je 0x10003a141
cmp dword [0x1000fb1f4], r15d
je 0x10003a12b
mov al, byte [0x1000fb1f8]
cmp al, dil
jae 0x10003a0fd
cmp al, r15b
jne 0x10003a12b
test qword [0x1000fb1e0], rbx
je 0x10003a12b
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rbx
cmp rax, rcx
jne 0x10003a12b
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov r8, r13
mov ecx, 1
call sub.MFC42u.dll_AfxTlsRelease
int3
xor r9d, r9d
or r8d, 0xffffffff
lea edx, [r9 + 2]
lea rcx, [rsp + 0x38]
call fcn.100016400
nop
mov rax, qword [rbp]
mov dword [rsp + 0x20], 0xf101
xor r9d, r9d
lea r8, [rsp + 0x38]
mov rdx, r13
mov rcx, rbp
call qword [rax + 0x110]
lea rcx, [0x1000f6280]
call fcn.100005970
mov byte [rax + 8], r15b
cmp dword [0x1000fb1f4], r15d
je 0x10003a1cf
mov al, byte [0x1000fb1f8]
cmp al, dil
jae 0x10003a1a0
cmp al, r15b
jne 0x10003a1cf
test qword [0x1000fb1e0], rbx
je 0x10003a1cf
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rbx
cmp rax, rcx
jne 0x10003a1cf
lea rdx, [0x1000ccea8]
mov rcx, qword [0x1000fc250]
call fcn.100054630
nop
lea rax, vtable.CFileException.0
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x50]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
xor eax, eax
jmp 0x1000232b2