Function at 0x140001000
Capabilities:
Extract resource via kernel32 functions
Get common file path
Write file on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x6e8
mov rax, qword [0x14001c218]
xor rax, rsp
mov qword [rsp + 0x6d0], rax
lea rcx, [0x1400013e0]
call fcn.14000190c
mov dword [rsp + 0x44], 0x104
mov eax, dword [rsp + 0x44]
mov r8d, eax
xor edx, edx
lea rcx, [rsp + 0xd0]
call fcn.1400024f0
mov qword [rsp + 0x48], 0
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0xd0]
lea rcx, str.E39EABEF_A7EB_4EAF_AD3E_A1254450BBE1
call sub.msi.dll_MsiOpenPackageW
test eax, eax
jl 0x1400010af
lea rcx, [rsp + 0xd0]
call fcn.1400056a8
test rax, rax
jbe 0x1400010af
lea rcx, [rsp + 0xd0]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea rcx, [rsp + 0xd0]
call fcn.140001450
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
jne 0x1400010fb
mov qword [rsp + 0x20], 0
lea r9, [0x140001590]
xor r8d, r8d
mov edx, 0x64
mov rcx, qword [rsp + 0x6f0]
call qword [sym.imp.USER32.dll_DialogBoxParamW]
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 2
jne 0x1400010f1
xor eax, eax
jmp 0x140001309
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x48], rax
mov edx, 0x208
lea rcx, [0x14001ccb0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x140001129
lea rdx, str.Temp
lea rcx, [0x14001ccb0]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x140001133
mov eax, 1
jmp 0x140001309
lea rcx, [rsp + 0x90]
call fcn.140001330
test eax, eax
jne 0x14000114e
mov eax, 1
jmp 0x140001309
lea rdx, [rsp + 0x90]
lea rcx, [0x14001ccb0]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x140001171
mov eax, 1
jmp 0x140001309
mov r8d, 0xa
mov edx, 0xb
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
jne 0x14000119b
mov eax, 1
jmp 0x140001309
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0
jne 0x1400011bf
mov eax, 1
jmp 0x140001309
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
jne 0x1400011e1
mov eax, 1
jmp 0x140001309
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [rsp + 0x70], rax
cmp qword [rsp + 0x70], 0
jne 0x140001203
mov eax, 1
jmp 0x140001309
mov dword [rsp + 0x78], 0x18
mov qword [rsp + 0x80], 0
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x78]
xor r8d, r8d
mov edx, 0x40010000
lea rcx, [0x14001ccb0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [section..data], rax
cmp qword [section..data], 0xffffffffffffffff
jne 0x140001270
mov eax, 1
jmp 0x140001309
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x50]
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [section..data]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400012a3
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x50], eax
je 0x1400012b7
mov rcx, qword [section..data]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x140001309
mov rcx, qword [section..data]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov ecx, 5
call sub.msi.dll_MsiSetPropertyW
lea r9, [rsp + 0xd0]
mov rax, qword [rsp + 0x48]
mov r8d, dword [rax]
lea rdx, str.ProductLanguage_d_PREVINSTALLFOLDER__s_
lea rcx, [rsp + 0x2e0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x2e0]
lea rcx, [0x14001ccb0]
call sub.msi.dll_MsiOpenDatabaseW
mov rcx, qword [rsp + 0x6d0]
xor rcx, rsp
call fcn.1400019f0
add rsp, 0x6e8
ret