Function at 0x1800571f0
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 [0x18010e350]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov r15, rdx
mov r13, rcx
call qword [0x18010e050]
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 0x180057927
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 0x180057927
lea rdx, str.__xml_version_1.0__encoding_utf_16____r_n
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
lea rdx, str._request
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
mov rcx, qword [r13 + 0xd08]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x180057334
lea rdx, str.url_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
mov qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 0xd08]
call fcn.180056450
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x180057927
lea rdx, [0x1800e0ffc]
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test ebp, ebp
js 0x180057927
mov rcx, qword [r13 + 0xd10]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x1800573b6
lea rdx, str.dataClassId_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
mov qword [rsp + 0x38], rdi
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 0xd10]
call fcn.180056450
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x180057927
lea rdx, [0x1800e0ffc]
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test ebp, ebp
js 0x180057927
lea rdx, str.method_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
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.18008cb60
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
lea rdx, [0x1800e0fc0]
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
xor ebx, ebx
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.180056660
mov esi, dword [rsp + 0x40]
test esi, esi
jne 0x1800574ae
lea rdx, str._parameters___
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
jmp 0x1800575ce
lea rdx, str._parameters_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
mov edi, ebx
test eax, eax
js 0x180057927
nop
nop
cmp edi, esi
jge 0x1800575b3
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.180056170
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x18005751f
mov r9b, 1
movzx r8d, r9b
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.180055320
mov ebp, eax
jmp 0x18005758c
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.180055320
mov ebp, eax
test eax, eax
js 0x18005758c
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call fcn.180056450
mov rbx, qword [rsp + 0x48]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x18005758a
mov r9b, 1
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.180055320
mov ebp, eax
xor ebx, ebx
jmp 0x18005758c
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 0x1800574d0
jmp 0x180057927
test ebp, ebp
js 0x180057927
lea rdx, str.__parameters_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test ebp, ebp
js 0x180057927
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.180056670
mov r14d, dword [rsp + 0x40]
test r14d, r14d
jne 0x180057609
lea rdx, str._files___
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
jmp 0x180057840
lea rdx, str._files_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
mov r12d, ebx
test eax, eax
js 0x180057927
cmp r12d, r14d
jge 0x180057825
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.180056c10
mov ebp, eax
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
test eax, eax
js 0x1800577ea
lea rdx, [0x1800e0c28]
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x1800577ea
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x1800577ea
mov qword [rsp + 0x38], rbx
cmp word [rsp + 0x40], 0
je 0x18005778a
lea rdx, str._temporaryFile_true__
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x1800577c2
mov word [rsp + 0xc0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xc2]
call fcn.180086e90
lea rdx, [rsp + 0xc0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, [0x1800e0f00]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea rdx, [rsp + 0xc0]
mov rcx, qword [rsp + 0x68]
call fcn.1800553d0
mov ebp, eax
test eax, eax
js 0x1800577c2
lea rcx, [rsp + 0xc0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x18005781a
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.180056450
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x1800577ae
lea rdx, str._temporaryFile_false__
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x1800577c2
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.180056450
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebp, ebp
js 0x1800577e8
mov r9b, 1
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.180055320
mov ebp, eax
xor ebx, ebx
jmp 0x1800577ea
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 0x180057927
jmp 0x180057627
mov ecx, 0x8007000e
call fcn.1800012c4
nop
test ebp, ebp
js 0x180057927
lea rdx, str.__files_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test ebp, ebp
js 0x180057927
lea rdx, str.__request_
mov rcx, qword [rsp + 0x30]
call fcn.1800552c0
mov ebp, eax
test eax, eax
js 0x180057927
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 0x180057927
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 0x180057912
lea rcx, [rsp + 0x50]
call fcn.18001cb10
nop
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.180024050
mov ebp, eax
test eax, eax
js 0x1800578fa
mov rdx, r15
mov rcx, r13
call fcn.180055aa0
mov rbx, rax
mov r9d, esi
mov r8, rdi
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.180022c50
mov ebp, eax
test rbx, rbx
je 0x1800578fa
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.1800205f0
jmp 0x180057927
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
test eax, eax
jle 0x180057927
movzx ebp, ax
or ebp, 0x80070000
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180057937
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov eax, ebp
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.180086e60
mov rbx, qword [rsp + 0x330]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret