Function at 0x10005fd74
Capabilities:
Delete file

Disassembly:
mov r11, rsp
push r13
sub rsp, 0x100
mov qword [rsp + 0x88], 0xfffffffffffffffe
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r12
mov rax, qword [0x1000f6188]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rdi, rcx
and qword [rsp + 0x38], 0
and qword [rsp + 0x40], 0
movdqu xmm0, xmmword [0x1000cc8a8]
movdqu xmmword [r11 - 0x78], xmm0
mov rax, qword [rcx + 0x160]
cmp dword [rax - 8], 0
jne 0x10005fe08
mov ecx, 0x80004001
call fcn.10007f3b0
mov edi, eax
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x10005fdf1
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x10005fe01
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, edi
jmp 0x10006023c
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo
nop
cmp dword [0x1000fb1f4], 0
je 0x10005fe70
mov al, byte [0x1000fb1f8]
cmp al, 4
jae 0x10005fe36
test al, al
je 0x10005fe36
movabs rsi, 0x8000000000000000
jmp 0x10005fe7a
movabs rsi, 0x8000000000000000
test qword [0x1000fb1e0], rsi
je 0x10005fe7a
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x10005fe7a
lea rdx, [0x1000ccf78]
mov rcx, qword [0x1000fc250]
call fcn.100054630
jmp 0x10005fe7a
movabs rsi, 0x8000000000000000
mov r8, qword [rdi + 0x130]
add r8, 0xb8
lea rdx, [rdi + 0x160]
lea rcx, [rsp + 0x68]
call fcn.10005baac
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x10005feb6
mov dword [rsp + 0x58], eax
lea rdx, [0x1000d8f88]
lea rcx, [rsp + 0x58]
call sub.msvcrt.dll__CxxThrowException
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_AfxDeleteObject
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
lea r11, [rsp + 0x38]
mov qword [rsp + 0x28], r11
and dword [rsp + 0x20], 0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 0x12]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ole32.dll_StgOpenStorage]
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x10005ff0f
mov dword [rsp + 0x50], eax
lea rdx, [0x1000d8f88]
lea rcx, [rsp + 0x50]
call sub.msvcrt.dll__CxxThrowException
lea rdx, [rsp + 0x90]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ole32.dll_ReadClassStg]
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x10005ff3f
mov dword [rsp + 0x5c], eax
lea rdx, [0x1000d8f88]
lea rcx, [rsp + 0x5c]
call sub.msvcrt.dll__CxxThrowException
lea rdx, [0x1000cc8a8]
mov r8, qword [rdi + 0x178]
cmp r8, qword [rdx]
jne 0x10005ff63
mov r8, qword [rdi + 0x180]
cmp r8, qword [rdx + 8]
jne 0x10005ff63
xor ecx, ecx
jmp 0x10005ff68
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x10005ffd4
lea rcx, [rsp + 0x90]
mov rdx, qword [rdi + 0x178]
cmp rdx, qword [rcx]
jne 0x10005ff91
mov rdx, qword [rdi + 0x180]
cmp rdx, qword [rcx + 8]
jne 0x10005ff91
xor eax, eax
jmp 0x10005ff96
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10005ffd4
call fcn.10007f398
mov edi, eax
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x10005ffbd
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x10005ffcd
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, edi
jmp 0x10006023c
mov rax, qword [rdi + 0x130]
mov rcx, qword [rax + 0xc8]
mov rax, qword [rcx]
lea rdx, [rsp + 0x40]
call qword [rax + SafeArrayCopy]
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x10006000a
mov dword [rsp + 0x54], eax
lea rdx, [0x1000d8f88]
lea rcx, [rsp + 0x54]
call sub.msvcrt.dll__CxxThrowException
lea r13, [rdi + 0x190]
mov r9, r13
mov r8, qword [rsp + 0x40]
lea rdx, [0x1000cc8d8]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ole32.dll_OleLoad]
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x100060048
mov dword [rsp + 0x64], eax
lea rdx, [0x1000d8f88]
lea rcx, [rsp + 0x64]
call sub.msvcrt.dll__CxxThrowException
mov r12d, 0x48
mov r8, r12
xor edx, edx
lea rcx, [rsp + 0xa0]
call sub.msvcrt.dll_memset
mov dword [rsp + 0xa0], r12d
movdqu xmm0, xmmword [rsp + 0x90]
movdqu xmmword [rsp + 0xa8], xmm0
mov rax, qword [r13]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xc8], rax
and dword [rsp + 0xd4], 0
and dword [rsp + 0xd0], 0
lea rdx, [rsp + 0xd0]
mov rcx, rdi
call fcn.10005f888
lea rdx, [rsp + 0xd4]
mov rcx, rdi
call fcn.10005f8cc
or dword [rsp + 0xa4], 0xffffffff
mov dword [rsp + 0xd8], 1
mov dword [rsp + 0xdc], 1
mov rax, qword [rdi + 0x130]
mov rcx, qword [rax + 0xc8]
mov rax, qword [rcx]
lea rdx, [rsp + 0xa0]
call qword [rax + 0x38]
mov r12d, eax
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x10006012a
mov dword [rsp + 0x60], eax
lea rdx, [0x1000d8f88]
lea rcx, [rsp + 0x60]
call sub.msvcrt.dll__CxxThrowException
mov rax, qword [rdi]
xor edx, edx
mov rcx, rdi
call qword [rax + 0xb0]
xor edx, edx
lea r8d, [rdx + 0x18]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll_memset
mov dword [rsp + 0x70], 0x20
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xb8]
call fcn.10002721c
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x100060180
mov dword [rdi + 0x188], 1
jmp 0x1000601a5
test r13, r13
je 0x100060199
mov rcx, qword [r13]
test rcx, rcx
je 0x100060194
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
and qword [r13], 0
lea rcx, [rsp + 0x70]
call qword [sym.imp.ole32.dll_ReleaseStgMedium]
nop
jmp 0x1000601b6
mov rcx, qword [rsp + 0x48]
cmp dword [rcx - 8], 0
je 0x1000601c7
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [0x1000fb1f4], 0
je 0x10006020d
mov al, byte [0x1000fb1f8]
cmp al, 4
jae 0x1000601de
test al, al
jne 0x10006020d
test qword [0x1000fb1e0], rsi
je 0x10006020d
mov rcx, qword [0x1000fb1e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x10006020d
lea rdx, [0x1000ccf88]
mov rcx, qword [0x1000fc250]
call fcn.100054630
nop
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x100060229
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x100060239
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, r12d
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1000011e0
lea r11, [rsp + 0x100]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r12, qword [r11 + 0x28]
mov rsp, r11
pop r13
ret