Function at 0x18001e9c0
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 [0x180057b40]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov r15, rdx
mov r13, rcx
call qword [0x180057950]
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 0x18001f0f7
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 0x18001f0f7
lea rdx, str.__xml_version_1.0__encoding_utf_16____r_n
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
lea rdx, str._request
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
mov rcx, qword [r13 + 0xd08]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x18001eb04
lea rdx, str.url_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
mov qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 0xd08]
call fcn.18001dde0
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x18001f0f7
lea rdx, [0x18004469c]
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test ebp, ebp
js 0x18001f0f7
mov rcx, qword [r13 + 0xd10]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x18001eb86
lea rdx, str.dataClassId_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
mov qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 0xd10]
call fcn.18001dde0
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x18001f0f7
lea rdx, [0x18004469c]
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test ebp, ebp
js 0x18001f0f7
lea rdx, str.method_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
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.180029050
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
lea rdx, [0x180044660]
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
xor ebx, ebx
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.18001dff0
mov esi, dword [rsp + 0x40]
test esi, esi
jne 0x18001ec7e
lea rdx, str._parameters___
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
jmp 0x18001ed9e
lea rdx, str._parameters_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
mov edi, ebx
test eax, eax
js 0x18001f0f7
nop
nop
cmp edi, esi
jge 0x18001ed83
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.18001dd20
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x18001ecef
mov r9b, 1
movzx r8d, r9b
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.18001d0e0
mov ebp, eax
jmp 0x18001ed5c
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.18001d0e0
mov ebp, eax
test eax, eax
js 0x18001ed5c
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call fcn.18001dde0
mov rbx, qword [rsp + 0x48]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x18001ed5a
mov r9b, 1
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.18001d0e0
mov ebp, eax
xor ebx, ebx
jmp 0x18001ed5c
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 0x18001eca0
jmp 0x18001f0f7
test ebp, ebp
js 0x18001f0f7
lea rdx, str.__parameters_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test ebp, ebp
js 0x18001f0f7
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.18001e000
mov r14d, dword [rsp + 0x40]
test r14d, r14d
jne 0x18001edd9
lea rdx, str._files___
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
jmp 0x18001f010
lea rdx, str._files_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
mov r12d, ebx
test eax, eax
js 0x18001f0f7
cmp r12d, r14d
jge 0x18001eff5
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.18001e750
mov ebp, eax
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
test eax, eax
js 0x18001efba
lea rdx, [0x1800442b0]
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001efba
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001efba
mov qword [rsp + 0x38], rbx
cmp word [rsp + 0x40], 0
je 0x18001ef5a
lea rdx, str._temporaryFile_true__
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001ef92
mov word [rsp + 0xc0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xc2]
call fcn.180026db0
lea rdx, [rsp + 0xc0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, [0x1800445a0]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea rdx, [rsp + 0xc0]
mov rcx, qword [rsp + 0x68]
call fcn.18001d190
mov ebp, eax
test eax, eax
js 0x18001ef92
lea rcx, [rsp + 0xc0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x18001efea
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.18001dde0
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x18001ef7e
lea rdx, str._temporaryFile_false__
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001ef92
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.18001dde0
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x18001efb8
mov r9b, 1
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.18001d0e0
mov ebp, eax
xor ebx, ebx
jmp 0x18001efba
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 0x18001f0f7
jmp 0x18001edf7
mov ecx, 0x8007000e
call fcn.180001000
nop
test ebp, ebp
js 0x18001f0f7
lea rdx, str.__files_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test ebp, ebp
js 0x18001f0f7
lea rdx, str.__request_
mov rcx, qword [rsp + 0x30]
call fcn.18001d080
mov ebp, eax
test eax, eax
js 0x18001f0f7
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 0x18001f0f7
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 0x18001f0e2
lea rcx, [rsp + 0x50]
call fcn.1800202b0
nop
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.180021ec0
mov ebp, eax
test eax, eax
js 0x18001f0ca
mov rdx, r15
mov rcx, r13
call fcn.18001d280
mov rbx, rax
mov r9d, esi
mov r8, rdi
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.180021db0
mov ebp, eax
test rbx, rbx
je 0x18001f0ca
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.180020ec0
jmp 0x18001f0f7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
test eax, eax
jle 0x18001f0f7
movzx ebp, ax
or ebp, 0x80070000
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18001f107
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebp
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.180026cf0
mov rbx, qword [rsp + 0x330]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret