Function at 0x180036910
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2e0
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x330], rbx
mov rax, qword [0x180295a70]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov r15, rdx
mov r13, rcx
call qword [0x1802886b0]
xor edi, edi
mov qword [rsp + 0x30], rdi
lea r8, [rsp + 0x30]
lea edx, [rdi + 1]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ebp, eax
test eax, eax
js 0x180037047
mov dword [rsp + 0x38], edi
mov byte [rsp + 0x40], 0xff
mov byte [rsp + 0x41], 0xfe
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
lea r9, [rsp + 0x38]
lea r8d, [rdi + 2]
lea rdx, [rsp + 0x40]
call qword [rax + 0x20]
mov ebp, eax
test eax, eax
js 0x180037047
lea rdx, str.__xml_version_1.0__encoding_utf_16____r_n
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
lea rdx, str._request
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
mov rcx, qword [r13 + 0xd08]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x180036a54
lea rdx, str.url_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
mov qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 0xd08]
call fcn.180035b40
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x180037047
lea rdx, [0x180192dec]
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test ebp, ebp
js 0x180037047
mov rcx, qword [r13 + 0xd10]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x180036ad6
lea rdx, str.dataClassId_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
mov qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 0xd10]
call fcn.180035b40
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x180037047
lea rdx, [0x180192dec]
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test ebp, ebp
js 0x180037047
lea rdx, str.method_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
mov word [rsp + 0x80], 0
xor eax, eax
mov qword [rsp + 0x82], rax
mov qword [rsp + 0x8a], rax
mov qword [rsp + 0x92], rax
mov qword [rsp + 0x9a], rax
mov qword [rsp + 0xa2], rax
mov qword [rsp + 0xaa], rax
mov qword [rsp + 0xb2], rax
mov dword [rsp + 0xba], eax
mov word [rsp + 0xbe], ax
lea r8d, [rax + 0xa]
lea rdx, [rsp + 0x80]
mov ecx, dword [r13 + 0xd18]
call fcn.1801636d0
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
lea rdx, [0x180192db0]
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
xor ebx, ebx
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.180035d50
mov esi, dword [rsp + 0x40]
test esi, esi
jne 0x180036bce
lea rdx, str._parameters___
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
jmp 0x180036cee
lea rdx, str._parameters_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
mov edi, ebx
test eax, eax
js 0x180037047
nop
nop
cmp edi, esi
jge 0x180036cd3
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rbx
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x38]
mov edx, edi
mov rcx, r13
call fcn.180035a80
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x180036c3f
mov r9b, 1
movzx r8d, r9b
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.180034e60
mov ebp, eax
jmp 0x180036cac
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.180034e60
mov ebp, eax
test eax, eax
js 0x180036cac
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call fcn.180035b40
mov rbx, qword [rsp + 0x48]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x180036caa
mov r9b, 1
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.180034e60
mov ebp, eax
xor ebx, ebx
jmp 0x180036cac
xor ebx, ebx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
add edi, 1
test ebp, ebp
jns 0x180036bf0
jmp 0x180037047
test ebp, ebp
js 0x180037047
lea rdx, str.__parameters_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test ebp, ebp
js 0x180037047
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.180035d60
mov r14d, dword [rsp + 0x40]
test r14d, r14d
jne 0x180036d29
lea rdx, str._files___
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
jmp 0x180036f60
lea rdx, str._files_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
mov r12d, ebx
test eax, eax
js 0x180037047
cmp r12d, r14d
jge 0x180036f45
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov word [rsp + 0x40], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
mov edx, r12d
mov rcx, r13
call fcn.1800366a0
mov ebp, eax
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
test eax, eax
js 0x180036f0a
lea rdx, [0x180192988]
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180036f0a
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180036f0a
mov qword [rsp + 0x38], rbx
cmp word [rsp + 0x40], 0
je 0x180036eaa
lea rdx, str._temporaryFile_true__
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180036ee2
mov word [rsp + 0xc0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xc2]
call fcn.1801603e0
lea rdx, [rsp + 0xc0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, [0x18018c1a8]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea rdx, [rsp + 0xc0]
mov rcx, qword [rsp + 0x68]
call fcn.180034f10
mov ebp, eax
test eax, eax
js 0x180036ee2
lea rcx, [rsp + 0xc0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x180036f3a
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.180035b40
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x180036ece
lea rdx, str._temporaryFile_false__
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180036ee2
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.180035b40
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x180036f08
mov r9b, 1
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.180034e60
mov ebp, eax
xor ebx, ebx
jmp 0x180036f0a
xor ebx, ebx
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, rsi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
add r12d, 1
test ebp, ebp
js 0x180037047
jmp 0x180036d47
mov ecx, 0x8007000e
call fcn.180001000
nop
test ebp, ebp
js 0x180037047
lea rdx, str.__files_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test ebp, ebp
js 0x180037047
lea rdx, str.__request_
mov rcx, qword [rsp + 0x30]
call fcn.180034e00
mov ebp, eax
test eax, eax
js 0x180037047
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ole32.dll_GetHGlobalFromStream]
mov ebp, eax
test eax, eax
js 0x180037047
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GlobalSize]
mov rsi, rax
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rdi, rax
test rax, rax
je 0x180037032
lea rcx, [rsp + 0x50]
call fcn.180038af0
nop
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.18003ad70
mov ebp, eax
test eax, eax
js 0x18003701a
mov rdx, r15
mov rcx, r13
call fcn.180035000
mov rbx, rax
mov r9d, esi
mov r8, rdi
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.18003a9c0
mov ebp, eax
test rbx, rbx
je 0x18003701a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
nop
lea rcx, [rsp + 0x50]
call fcn.1800399b0
jmp 0x180037047
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
test eax, eax
jle 0x180037047
movzx ebp, ax
or ebp, 0x80070000
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180037057
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebp
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.1801604e0
mov rbx, qword [rsp + 0x330]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret