Function at 0x10006026c
Capabilities:
Delete file

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
and qword [rax + 8], 0
lea rcx, [rax + 0x18]
call sub.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo
nop
cmp dword [rdi + 0x188], 0
jne 0x1000602c9
call fcn.10007f398
mov ebx, eax
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1000602c2
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebx
jmp 0x100060543
lea rdx, [rsi + 0x160]
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CControlBar::CControlBar
nop
mov rax, qword [rsp + 0x88]
cmp dword [rax - 8], 0
jne 0x10006032b
mov ecx, 0x80004001
call fcn.10007f3b0
mov ebx, eax
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x100060324
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebx
jmp 0x100060543
mov r8, qword [rdi + 0x130]
add r8, 0xb8
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x30]
call fcn.10005baac
test eax, eax
je 0x10006038b
mov ecx, eax
call fcn.10007f3b0
mov ebx, eax
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x100060384
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebx
jmp 0x100060543
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_AfxDeleteObject
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
and qword [rsp + 0x30], 0
lea r8, [rsp + 0x70]
mov edx, 0x12
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileW]
test eax, eax
je 0x100060405
mov ecx, eax
call fcn.10007f3b0
mov ebx, eax
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1000603fe
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebx
jmp 0x100060543
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.10005f888
mov ebx, eax
lea rdx, [rsp + 0x3c]
mov rcx, rsi
call fcn.10005f8cc
test ebx, ebx
jne 0x100060430
test eax, eax
jne 0x100060430
lea rax, [rsp + 0x38]
jmp 0x100060432
xor eax, eax
mov rcx, qword [rdi + 0x130]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x70]
mov r8d, 1
mov rdx, qword [rdi + 0x190]
mov rcx, qword [rcx + 0xc0]
call fcn.100026d60
mov ebx, eax
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x10006046e
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
and qword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x80]
cmp dword [rcx - 8], 0
je 0x100060488
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test ebx, ebx
je 0x1000604c5
mov ecx, ebx
call fcn.10007f3b0
mov ebx, eax
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1000604c1
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebx
jmp 0x100060543
cmp dword [0x1000fb1f4], 0
je 0x100060515
mov al, byte [0x1000fb1f8]
cmp al, 4
jae 0x1000604dc
test al, al
jne 0x100060515
movabs rdx, 0x8000000000000000
test qword [0x1000fb1e0], rdx
je 0x100060515
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rdx
cmp rax, rcx
jne 0x100060515
lea rdx, [0x1000ccf88]
mov rcx, qword [0x1000fc250]
call fcn.100054630
nop
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x100060541
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor eax, eax
add rsp, 0x50
pop rdi
pop rsi
pop rbx
ret