Function at 0x140036370
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x8c0
mov rax, qword [0x1404e41f8]
xor rax, rsp
mov qword [rsp + CDocObjectServer::DoPrepareDC], rax
mov r12d, dword [rsp + reloc.mfc90u.dll_CCmdTarget::EnableAggregation]
mov rbp, qword [rsp + 0x918]
mov rbx, r8
mov rdi, rdx
mov r8, r12
xor edx, edx
mov rcx, rbp
add r8, r8
mov esi, r9d
call sub.MSVCR90.dll_memset
xor eax, eax
xor r13d, r13d
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x28], r13
cmp esi, 0xffffffff
je 0x140036417
lea r8, [rsp + 0x28]
mov edx, esi
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov rcx, qword [rsp + 0x38]
test eax, eax
cmovns rcx, qword [rsp + 0x28]
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x92]
xor edx, edx
mov r8d, CPtrList::AddTail
mov word [rsp + 0x90], r13w
call sub.MSVCR90.dll_memset
test rbx, rbx
je 0x140036477
mov rax, rbx
shr rax, 0x10
test ax, ax
jne 0x140036460
lea rdx, [rsp + 0x90]
movzx r8d, bx
xor r9d, r9d
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
jmp 0x140036477
lea rcx, [rsp + 0x90]
mov r8d, COleVariant::COleVariant
mov rdx, rbx
call qword [sym.imp.MSVCR90.dll_wcsncpy]
cmp word [rsp + 0x90], r13w
jne 0x14003649c
cmp qword [rsp + 0x38], r13
jne 0x14003649c
lea rdx, [rsp + 0x90]
mov ecx, COleVariant::COleVariant
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp dword [rsp + reloc.mfc90u.dll_CDHtmlDialog::EnableModeless], r13d
mov ecx, 1
mov eax, setsockopt
cmovne ecx, eax
lea rax, [0x140036290]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x58], rax
bts ecx, 9
lea rax, [rsp + 0x70]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x90]
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + reloc.mfc90u.dll_CStdioFile::Duplicate]
mov dword [rsp + 0x80], ecx
lea rcx, [rsp + 0x30]
mov ebx, r13d
mov qword [rsp + 0x70], rax
call qword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
mov rdi, rax
test rax, rax
je 0x140036559
lea rcx, [rsp + reloc.mfc90u.dll_AfxOleInit]
xor edx, edx
mov r8d, CPtrList::AddTail
mov word [rsp + AfxOleInit], r13w
call sub.MSVCR90.dll_memset
lea rdx, [rsp + 0x4a0]
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x140036559
lea r8d, [r12 - 1]
lea rdx, [rsp + 0x4a0]
mov rcx, rbp
call qword [sym.imp.MSVCR90.dll_wcsncpy]
mov ebx, 1
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], r13
call qword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
js 0x1400365a6
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x1400365a6
test rdi, rdi
je 0x14003658a
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1400365a0
mov r8, qword [rcx]
call qword [r8 + 0x28]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
mov eax, ebx
mov rcx, qword [rsp + 0x8b0]
xor rcx, rsp
call fcn.1403addc0
mov rbx, qword [rsp + 0x8f0]
add rsp, 0x8c0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret