Function at 0x1403b490c
Capabilities:
Get file attributes
Set file attributes
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x860
mov rax, qword [0x1404f5550]
xor rax, rsp
mov qword [rsp + COleIPFrameWnd::DestroySharedMenu], rax
and dword [rsp + 0x30], 0
mov rbx, rcx
mov qword [rsp + 0x60], rcx
mov rsi, rdx
lea rcx, [rsp + reloc.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Append]
mov r8d, SerializeElements<class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > >
xor edx, edx
mov byte [rsp + ATL::CSimpleStringT<char,1>::Append], 0
call sub.MSVCR90.dll_memset
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
mov rdi, rax
jne 0x1403b4975
mov eax, send
jmp 0x1403b5695
mov rax, qword [rax + reloc.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::AppendFormat]
test rax, rax
mov qword [rsp + 0x38], rax
je 0x1403b49be
mov edx, CFileDialog::GetInterfaceMap
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
mov rbp, rax
je 0x1403b496b
mov r8w, CFileDialog::GetInterfaceMap
mov rdx, rsi
mov rcx, rax
call fcn.1403b6858
jmp 0x1403b49cd
mov rax, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x38]
mov qword [rsp + 0x48], rax
mov eax, dword [rdi + 0x104]
cmp eax, 3
je 0x1403b49fa
cmp eax, 4
je 0x1403b49fa
lea rcx, [rdi + 0x108]
lea r8, [rsp + 0x120]
lea rdx, str.139975959bd8768d74383a8ad6e0f2f79b59a
call fcn.1403b8154
jmp 0x1403b4a19
lea rcx, [rdi + 0x108]
lea rdx, [rsp + 0x120]
sub rdx, rcx
mov al, byte [rcx]
mov byte [rdx + rcx], al
add rcx, 1
test al, al
jne 0x1403b4a0c
lea r8, [rsi + 0x137]
lea rdx, [rsp + 0x120]
lea rcx, str.38810806
call fcn.1403b8154
cmp byte [rsi + 0x137], 0
jne 0x1403b4a47
mov eax, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
jmp 0x1403b5695
lea r8, [rsi + 0x3bc]
lea rdx, [rsp + 0x120]
lea rcx, str.SAA_482
call fcn.1403b8154
cmp byte [rsi + 0x3bc], 0
je 0x1403b4a3d
lea r8, [rsi + 0x41e]
lea rdx, [rsp + 0x120]
lea rcx, str.YAP00667
call fcn.1403b8154
cmp byte [rsi + 0x41e], 0
je 0x1403b4a3d
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 5]
mov byte [rsi + 4], 1
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 5]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x38]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x38]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x6b]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x6b]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x9e]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x9e]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0xd1]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0xd1]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x104]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x104]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x141]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x141]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x174]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x174]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x1a7]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x1a7]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x1da]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x1da]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x20d]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x20d]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x240]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x240]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x273]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x273]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x2a6]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x2a6]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x2d9]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x2d9]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x30c]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x30c]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x33f]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x33f]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x372]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x372]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x3a5]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x3a5]
xor r8d, r8d
call fcn.1403b6858
movsx ecx, byte [rsp + 0x120]
movsx eax, byte [rsp + 0x122]
imul ecx, eax
add dword [rsi + 0x3a8], ecx
add dword [rsi + 0x3ac], ecx
add dword [rsi + 0x3b0], ecx
add dword [rsi + 0x3b4], ecx
add dword [rsi + 0x3b8], ecx
add dword [rsi + 0x3c6], ecx
mov edx, dword [rsi + 0x5f8]
add dword [rsi + 0x3ca], ecx
add dword [rsi + reloc.mfc90u.dll_COlePropertyPage::XPropertyPage::Activate], ecx
add dword [rsi + 0x3d2], ecx
add dword [rsi + 0x3d6], ecx
add dword [rsi + 0x3da], ecx
add dword [rsi + 0x3de], ecx
sub dword [rsi + 0x3e2], ecx
sub dword [rsi + 0x3e6], ecx
sub dword [rsi + 0x3ea], ecx
sub dword [rsi + 0x3ee], ecx
sub dword [rsi + 0x3f2], ecx
sub dword [rsi + 0x3f6], ecx
sub dword [rsi + 0x3fa], ecx
sub dword [rsi + reloc.mfc90u.dll_CBlobProperty::AddRef], ecx
sub dword [rsi + 0x402], ecx
add dword [rsi + 0x406], ecx
add dword [rsi + 0x40a], ecx
add dword [rsi + 0x40e], ecx
sub dword [rsi + reloc.mfc90u.dll_CPtrList::AddTail], ecx
sub dword [rsi + 0x416], ecx
sub dword [rsi + 0x41a], ecx
sub dword [rsi + 0x428], ecx
sub dword [rsi + 0x42c], ecx
sub dword [rsi + reloc.mfc90u.dll_AfxCompareValueByRef], ecx
sub dword [rsi + 0x434], ecx
sub dword [rsi + reloc.mfc90u.dll_AfxCriticalNewHandler], ecx
sub dword [rsi + 0x43c], ecx
sub dword [rsi + 0x440], ecx
sub dword [rsi + 0x444], ecx
sub dword [rsi + 0x448], ecx
sub dword [rsi + 0x44c], ecx
sub dword [rsi + 0x450], ecx
sub dword [rsi + 0x454], ecx
test edx, edx
jle 0x1403b5279
mov al, byte [rsp + 0x122]
add dword [rsi + 0x5f4], ecx
add dword [rsi + 0x5fc], ecx
imul byte [rsp + 0x120]
add byte [rsi + 0x5f0], al
add byte [rsi + 0x5f1], al
add byte [rsi + 0x5f2], al
add byte [rsi + 0x5f3], al
lea eax, [rdx + rcx]
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x608]
mov dword [rsi + 0x5f8], eax
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x608]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x60e]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x60e]
xor r8d, r8d
call fcn.1403b6858
movsx r11d, byte [rsp + 0x120]
movsx eax, byte [rsp + 0x122]
imul r11d, eax
add dword [rsi + 0x697], r11d
add dword [rsi + 0x69b], r11d
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x69f]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x69f]
xor r8d, r8d
call fcn.1403b6858
movsx r11d, byte [rsp + 0x120]
movsx eax, byte [rsp + 0x122]
imul r11d, eax
add dword [rsi + 0x6a5], r11d
add dword [rsi + 0x6a9], r11d
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x61d]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x61d]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + reloc.mfc90u.dll_CPropertySheet::Construct]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + reloc.mfc90u.dll_CPropertySheet::Construct]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x6ad]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x6ad]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x6f4]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x6f4]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x726]
call fcn.1403b8154
xor r8d, r8d
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x726]
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x776]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x776]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x7da]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x7da]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x82a]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x82a]
xor r8d, r8d
call fcn.1403b6858
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x120]
lea rcx, [rsi + 0x87a]
call fcn.1403b8154
lea rdx, [rsp + 0xa0]
lea rcx, [rsi + 0x87a]
xor r8d, r8d
call fcn.1403b6858
movsx r11d, byte [rsp + 0x120]
movsx eax, byte [rsp + 0x122]
imul r11d, eax
sub dword [rsi + 0x917], r11d
sub dword [rsi + reloc.mfc90u.dll_CCmdUI::Enable], r11d
sub dword [rsi + 0x91f], r11d
add dword [rsi + 0x923], r11d
add dword [rsi + 0x927], r11d
add dword [rsi + reloc.mfc90u.dll_COleControl::XOleInPlaceActiveObject::EnableModeless], r11d
call fcn.1403b31a0
mov ecx, eax
call sub.MSVCR90.dll_srand
xor ebx, ebx
call sub.MSVCR90.dll_rand
add rbx, 1
cmp rbx, reloc.mfc90u.dll_CDHtmlControlSink::AddRef
mov byte [rsp + rbx + 0x11f], al
jl 0x1403b5287
mov ecx, dword [rsp + 0x30]
mov edx, 0xc2c
lea r8, [rsi + 4]
movsx eax, byte [r8]
add r8, 1
add ecx, eax
sub rdx, 1
jne 0x1403b52ad
mov dword [rsi], ecx
mov rdx, rsi
lea r8, [rsi + 0xc2f]
mov r9d, reloc.mfc90u.dll_CStatusBar::CStatusBar
mov al, byte [r8]
mov cl, byte [rdx]
mov byte [rdx], al
mov byte [r8], cl
sub r8, 2
add rdx, 2
sub r9, 1
jne 0x1403b52cf
mov ecx, dword [rdi + 0x104]
sub ecx, 1
je 0x1403b54d4
cmp ecx, 1
je 0x1403b5304
lea eax, [r9 + 0xe]
jmp 0x1403b5695
xor edx, edx
lea rax, [rsp + 0x520]
mov rbx, rdi
and qword [rsp + 0x58], rdx
sub rax, rdi
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x68], rax
cmp byte [rbx], 0
je 0x1403b535c
movsx ecx, byte [rbx]
call sub.MSVCR90.dll_toupper
mov rcx, qword [rsp + 0x68]
mov edx, dword [rsp + 0x30]
add al, 7
add edx, 1
mov byte [rcx + rbx], al
mov rcx, qword [rsp + 0x58]
add rbx, 1
add rcx, 1
mov dword [rsp + 0x30], edx
cmp rcx, 0x32
mov qword [rsp + 0x58], rcx
jl 0x1403b5322
movsxd rax, edx
lea r9, [rsp + 0x40]
xor r8d, r8d
mov byte [rsp + rax + ATL::CSimpleStringT<char,1>::Append], 0
lea rax, [rsp + 0x520]
xor edx, edx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x740]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1403b7d4c
cmp eax, 1
je 0x1403b5457
mov rax, qword [str.softwareclasses_vdsp]
lea rcx, [rsp + 0x630]
mov r9, 0xffffffff80000002
mov qword [rcx], rax
mov rax, qword [0x14048b728]
mov r10b, 0x3a
mov qword [rcx + 8], rax
mov eax, dword [0x14048b730]
mov qword [rsp + 0x40], r9
cmp byte [rdi], r10b
mov dword [rcx + 0x10], eax
movzx eax, word [0x14048b734]
mov word [rcx + 0x14], ax
jne 0x1403b543d
lea rax, [rdi + 4]
xor edx, edx
mov cl, byte [rax]
cmp cl, r10b
je 0x1403b540b
lea r8, [rsp + 0x630]
add rax, 1
mov byte [r8], cl
add edx, 1
mov cl, byte [rax]
add r8, 1
cmp cl, r10b
jne 0x1403b53f6
movsxd rax, edx
mov byte [rsp + rax + CToolBar::CommandToIndex], 0
lea eax, [rdx + 5]
lea rdx, [rsp + 0x520]
movsxd rcx, eax
sub rdx, rcx
sub rdx, rdi
lea r8, [rcx + rdi]
mov al, byte [r8]
mov byte [r8 + rdx], al
add r8, 1
test al, al
jne 0x1403b542e
xor ecx, ecx
mov al, byte [rsp + rcx + 0x630]
add rcx, 1
test al, al
mov byte [rsp + rcx + 0x73f], al
jne 0x1403b543f
jmp 0x1403b545c
mov r9, qword [rsp + 0x40]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x740]
mov rcx, r9
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x1403b5480
mov eax, 0x2a
jmp 0x1403b5695
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x520]
mov r9d, 3
xor r8d, r8d
mov dword [rsp + 0x28], CFileDialog::GetInterfaceMap
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x1403b54b7
mov eax, 0x2e
jmp 0x1403b5695
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x1403b565f
mov eax, 0x2c
jmp 0x1403b5695
cmp byte [rdi + 0x508], 0
je 0x1403b552c
mov rbx, qword [rdi + 0x509]
and dword [rsp + 0x20], 0
xor r9d, r9d
lea ecx, [r9 + 1]
mov r8, rdi
mov rdx, rbx
call fcn.1403b7864
mov edx, dword [rdi + 0x53d]
mov r9, rsi
mov r8, rdi
mov rcx, rbx
mov dword [rsp + 0x20], CFileDialog::GetInterfaceMap
call fcn.1403b7b88
cmp eax, 0xc30
je 0x1403b5608
mov eax, 5
jmp 0x1403b5695
xor edx, edx
mov rcx, rdi
call fcn.1403b7798
cmp eax, 0xffffffff
jne 0x1403b5545
mov eax, send
jmp 0x1403b5695
lea r8, [rdi + reloc.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Append]
lea rdx, [rdi + 0x515]
mov rcx, rdi
call fcn.1403b81b0
mov rcx, rdi
call sub.KERNEL32.dll_GetFileAttributesA
test al, 0xf
mov dword [rdi + 0x511], eax
je 0x1403b55d8
xor edx, edx
mov rcx, rdi
call sub.KERNEL32.dll_SetFileAttributesA
test eax, eax
jne 0x1403b55d8
mov eax, 3
jmp 0x1403b5695
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
jne 0x1403b55fe
test byte [rdi + 0x53d], 0x10
je 0x1403b55b9
mov eax, 0x25
jmp 0x1403b5695
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_DispatchMessageA]
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 1
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x1403b55a3
mov ecx, dword [rdi + 0x53d]
mov r8d, dword [rdi + 0x511]
mov rdx, rdi
or ecx, 0x40
call fcn.1403b79a8
cmp rax, 0xffffffffffffffff
mov rbx, rax
je 0x1403b5585
jmp 0x1403b54fb
mov eax, 9
jmp 0x1403b5695
cmp byte [rdi + 0x508], 0
jne 0x1403b565f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, rbx
call fcn.1403b77e8
test rax, rax
je 0x1403b562e
mov eax, 6
jmp 0x1403b5695
mov edx, dword [rdi + 0x511]
test dl, 0xf
je 0x1403b5649
mov rcx, rdi
call sub.KERNEL32.dll_SetFileAttributesA
test eax, eax
je 0x1403b557b
lea r8, [rdi + reloc.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Append]
lea rdx, [rdi + 0x515]
mov rcx, rdi
call fcn.1403b82f8
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1403b5690
mov rdx, rbp
call fcn.1403b490c
mov rcx, qword [rsp + 0x48]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp ebx, 1
mov eax, ebx
jne 0x1403b5695
mov eax, 1
mov rcx, qword [rsp + 0x850]
xor rcx, rsp
call fcn.1403c2380
mov rbx, qword [rsp + 0x890]
add rsp, 0x860
pop rdi
pop rsi
pop rbp
ret