Function at 0x140027ac0
Capabilities:
Get common file path
Identify system language via api

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x330]
sub rsp, 0x430
mov rax, qword [0x1400e00c0]
xor rax, rsp
mov qword [rbp + 0x320], rax
mov r14d, r9d
mov r15, r8
mov r12, rdx
mov rsi, rcx
mov qword [rsp + 0x40], rcx
xor r13d, r13d
mov qword [rcx], r13
mov qword [rcx + 8], r13
mov qword [rcx + 0x10], r13
mov qword [rcx + 0x18], r13
mov qword [rcx + 0x20], r13
mov qword [rcx + 0x28], r13
mov qword [rcx + 0x30], r13
mov qword [rcx + 0x38], r13
mov qword [rcx + 0x40], r13
mov qword [rcx + 0x48], r13
mov qword [rcx + 0x50], r13
mov qword [rcx + 0x58], r13
mov qword [rcx + 0x60], r13
mov qword [rcx + 0x68], r13
mov qword [rcx + 0x70], r13
mov qword [rcx + 0x78], r13
mov qword [rcx + 0x80], r13
mov qword [rcx + 0x88], r13
mov qword [rcx + 0x90], r13
mov qword [rcx + 0x98], r13
mov qword [rcx + 0xa0], r13
mov qword [rcx + 0xa8], r13
mov qword [rcx + 0xb0], r13
mov qword [rcx + 0xb8], r13
mov qword [rcx + 0xc0], r13
mov qword [rcx + 0xc8], r13
mov qword [rcx + 0xd0], r13
mov qword [rcx + 0xd8], r13
mov qword [rcx + 0xe0], r13
mov qword [rcx + 0xe8], r13
mov qword [rcx + 0xf0], r13
mov qword [rcx + 0xf8], r13
mov qword [rcx + 0x100], r13
mov qword [rcx + 0x108], r13
mov qword [rcx + 0x110], r13
mov qword [rcx + 0x118], r13
mov qword [rcx + 0x120], r13
mov qword [rcx + 0x128], r13
mov qword [rcx + 0x130], r13
mov qword [rcx + 0x138], r13
mov qword [rcx + 0x140], r13
mov qword [rcx + 0x148], r13
mov qword [rcx + 0x150], r13
mov qword [rcx + 0x158], r13
mov qword [rcx + 0x160], r13
mov qword [rcx + 0x168], r13
mov qword [rcx + 0x170], r13
mov qword [rcx + 0x178], r13
mov qword [rcx + 0x180], r13
mov qword [rcx + 0x188], r13
mov qword [rcx + 0x190], r13
mov qword [rcx + 0x198], r13
mov qword [rcx + 0x1a0], r13
mov qword [rcx + 0x1a8], r13
mov qword [rcx + 0x1b0], r13
mov qword [rcx + 0x1b8], r13
mov qword [rcx + 0x1c0], r13
mov qword [rcx + 0x1c8], r13
mov qword [rcx + 0x1d0], r13
mov qword [rcx + 0x1d8], r13
mov qword [rcx + 0x1e0], r13
mov qword [rcx + 0x1e8], r13
mov qword [rcx + 0x1f0], r13
mov qword [rcx + 0x1f8], r13
mov qword [rcx + 0x200], r13
mov qword [rcx + 0x208], r13
mov qword [rcx + 0x210], r13
mov qword [rcx + 0x218], r13
mov qword [rcx + 0x220], r13
mov qword [rcx + 0x228], r13
mov qword [rcx + 0x230], r13
mov qword [rcx + 0x238], r13
mov qword [rcx + 0x240], r13
mov qword [rcx + 0x248], r13
mov qword [rcx + 0x250], r13
mov qword [rcx + 0x258], r13
mov qword [rcx + 0x260], r13
mov qword [rcx + 0x268], r13
mov qword [rcx + 0x270], r13
mov qword [rcx + 0x278], r13
mov qword [rcx + 0x280], r13
mov qword [rcx + 0x288], r13
mov qword [rcx + 0x290], r13
mov qword [rcx + 0x298], r13
mov qword [rcx + 0x2a0], r13
mov qword [rcx + 0x2a8], r13
mov qword [rcx + 0x2b0], r13
lea rdi, [rcx + 0x2b8]
mov qword [rsp + 0x50], rdi
mov rcx, rdi
call fcn.14005be20
nop
mov ecx, 0x228
call fcn.1400703c8
mov rbx, rax
xor edx, edx
mov r8d, 0x228
mov rcx, rax
call fcn.140072740
mov rcx, rbx
call fcn.140055fb0
mov qword [rdi + 0x28], rax
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.msi.dll_MsiSetPropertyW]
lea rdi, [rsi + 0x2f0]
mov qword [rsp + 0x50], rdi
mov byte [rdi], r13b
mov qword [rdi + 0x30], r13
mov rbx, 0xffffffffffffffff
mov qword [rdi + 0x38], rbx
mov byte [rdi + 0x40], 1
lea r9d, [r13 + 4]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov qword [rdi + 8], rax
cmp rax, rbx
jne 0x140027dd1
lea rcx, str.Setup::UninstallDevice___Cancelling__SetupDiGetClassDevs_invalid_handle_value_
call fcn.140026280
mov byte [rdi + 0x40], r13b
xorps xmm0, xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
mov dword [rdi + 0x10], 0x20
mov qword [rsi + 0x338], r13
mov qword [rsi + 0x340], r13
mov qword [rsi + 0x348], r13
mov qword [rsi + 0x350], r13
mov qword [rsi + 0x358], r13
mov qword [rsi + 0x360], r13
mov qword [rsi + 0x368], r13
mov qword [rsi + 0x370], r13
mov qword [rsi + 0x378], r13
mov qword [rsi + 0x380], r13
mov qword [rsi + 0x388], r13
mov qword [rsi + 0x390], r13
mov qword [rsi + 0x398], r13
mov qword [rsi + 0x3a0], r13
mov qword [rsi + 0x3a8], r13
mov qword [rsi + 0x3b0], r13
mov qword [rsi + 0x3b8], r13
mov qword [rsi + 0x3c0], r13
mov qword [rsi + 0x3c8], r13
mov qword [rsi + 0x3d0], r13
mov qword [rsi + 0x410], r13
mov qword [rsi + 0x418], rbx
mov byte [rsi + 0x420], 1
mov r9d, 4
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov qword [rsi + 0x3e8], rax
cmp rax, 0xffffffffffffffff
jne 0x140027eb7
lea rcx, str.Setup::UninstallDevice___Cancelling__SetupDiGetClassDevs_invalid_handle_value_
call fcn.140026280
mov byte [rsi + 0x420], 0
xorps xmm0, xmm0
movups xmmword [rsi + 0x3f0], xmm0
movups xmmword [rsi + 0x400], xmm0
mov dword [rsi + 0x3f0], 0x20
mov qword [rsi + 0x428], r12
mov qword [rsi + 0x430], r15
mov dword [rsi + 0x438], r14d
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [rsi + 0x43c], ax
mov qword [rsi + 0x440], r13
mov qword [rsi + 0x448], r13
mov dword [rsi + 0x450], 0x1000101
mov byte [rsi + 0x454], 0
mov dword [rsi + 0x458], 0xffffffff
mov byte [rsi + 0x45c], 0
mov dword [rsi + 0x460], 0xffffffff
mov byte [rsi + 0x464], 0
mov byte [rsi + 0x468], 0
lea rdi, [rsi + 0x470]
mov qword [rsp + 0x50], rdi
mov qword [rdi], r13
mov qword [rdi + 8], r13
mov ecx, 0x50
call fcn.1400703c8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rdi], rax
mov byte [rdi + 0x10], 0
lea r14, [rsi + 0x488]
mov qword [r14], r13
mov qword [r14 + 0x10], r13
mov qword [r14 + 0x18], 7
mov word [r14], r13w
mov qword [rsi + 0x4a8], r13
mov qword [rsi + 0x4b8], r13
mov qword [rsi + 0x4c0], 7
mov word [rsi + 0x4a8], r13w
mov qword [rsi + 0x4c8], r13
mov qword [rsi + 0x4d0], r13
mov qword [rsi + 0x4d8], r13
mov qword [rsi + 0x4e0], r13
mov qword [rsi + 0x4e8], r13
mov qword [rsi + 0x4f0], r13
mov qword [rsi + 0x4f8], r13
mov qword [rsi + 0x500], r13
mov qword [rsi + 0x508], r13
mov qword [rsi + 0x510], r13
mov qword [rsi + 0x518], r13
mov ecx, 0x30
call fcn.1400703c8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsi + 0x510], rax
mov qword [rbp - 0x10], r13
mov qword [rbp], r13
mov qword [rbp + 8], 7
mov word [rbp - 0x10], r13w
mov r8d, 0x1f
lea rdx, str.SOFTWAREKhronosVulkanDrivers
lea rcx, [rbp - 0x10]
call fcn.1400027d0
nop
mov qword [rbp + 0x10], r13
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x28], 7
mov word [rbp + 0x10], r13w
mov r8d, 0x11
lea rdx, str.amd_vulkan64.json
lea rcx, [rbp + 0x10]
call fcn.1400027d0
nop
mov qword [rbp + 0x30], r13
mov qword [rbp + 0x40], r13
mov qword [rbp + 0x48], 7
mov word [rbp + 0x30], r13w
mov r8d, 0x26
lea rdx, str.SOFTWAREKhronosVulkanImplicitLayers
lea rcx, [rbp + 0x30]
call fcn.1400027d0
nop
mov qword [rbp + 0x50], r13
mov qword [rbp + 0x60], r13
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], r13w
mov r8d, 0x11
lea rdx, str.amd_vulkan64.json
lea rcx, [rbp + 0x50]
call fcn.1400027d0
nop
mov qword [rbp + 0x70], r13
mov qword [rbp + 0x80], r13
mov qword [rbp + 0x88], 7
mov word [rbp + 0x70], r13w
mov r8d, 0x2b
lea rdx, str.SOFTWAREWOW6432NodeKhronosVulkanDrivers
lea rcx, [rbp + 0x70]
call fcn.1400027d0
nop
mov qword [rbp + 0x90], r13
mov qword [rbp + 0xa0], r13
mov qword [rbp + 0xa8], 7
mov word [rbp + 0x90], r13w
mov r8d, 0x11
lea rdx, str.amd_vulkan32.json
lea rcx, [rbp + 0x90]
call fcn.1400027d0
nop
mov qword [rbp + 0xb0], r13
mov qword [rbp + 0xc0], r13
mov qword [rbp + 0xc8], 7
mov word [rbp + 0xb0], r13w
mov r8d, 0x32
lea rdx, str.SOFTWAREWOW6432NodeKhronosVulkanImplicitLayers
lea rcx, [rbp + 0xb0]
call fcn.1400027d0
nop
mov qword [rbp + 0xd0], r13
mov qword [rbp + 0xe0], r13
mov qword [rbp + 0xe8], 7
mov word [rbp + 0xd0], r13w
mov r8d, 0x11
lea rdx, str.amd_vulkan32.json
lea rcx, [rbp + 0xd0]
call fcn.1400027d0
nop
lea rax, [rbp - 0x10]
mov qword [rsp + 0x50], rax
lea rax, [rbp + 0xf0]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [rsi + 0x778]
call fcn.14003e660
nop
lea r9, [fcn.140028700]
mov edx, 0x40
lea r8d, [rdx - 0x3c]
lea rcx, [rbp - 0x10]
call fcn.140070924
mov qword [rsp + 0x70], r13
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r13w
mov r8d, 0x1f
lea rdx, str.SOFTWAREKhronosVulkanDrivers
lea rcx, [rsp + 0x70]
call fcn.1400027d0
nop
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], 7
mov word [rbp - 0x70], r13w
mov r8d, 0x11
lea rdx, str.amd_vulkan32.json
lea rcx, [rbp - 0x70]
call fcn.1400027d0
nop
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x38], 7
mov word [rbp - 0x50], r13w
mov r8d, 0x26
lea rdx, str.SOFTWAREKhronosVulkanImplicitLayers
lea rcx, [rbp - 0x50]
call fcn.1400027d0
nop
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], 7
mov word [rbp - 0x30], r13w
mov r8d, 0x11
lea rdx, str.amd_vulkan32.json
lea rcx, [rbp - 0x30]
call fcn.1400027d0
nop
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [rsi + 0x788]
call fcn.14003e660
nop
lea r9, [fcn.140028700]
mov edx, 0x40
lea r8d, [rdx - 0x3e]
lea rcx, [rsp + 0x70]
call fcn.140070924
mov qword [rbp - 0x10], r13
mov qword [rbp], r13
mov qword [rbp + 8], 7
mov word [rbp - 0x10], r13w
mov r8d, 0x25
lea rdx, str.C:WindowsSystem32_amd_vulkan64.json
lea rcx, [rbp - 0x10]
call fcn.1400027d0
nop
mov qword [rbp + 0x10], r13
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x28], 7
mov word [rbp + 0x10], r13w
mov r8d, 0x20
lea rdx, str.C:WindowsSystem32_amdvlk64.dll
lea rcx, [rbp + 0x10]
call fcn.1400027d0
nop
mov qword [rbp + 0x30], r13
mov qword [rbp + 0x40], r13
mov qword [rbp + 0x48], 7
mov word [rbp + 0x30], r13w
mov r8d, 0x25
lea rdx, str.C:WindowsSysWOW64_amd_vulkan32.json
lea rcx, [rbp + 0x30]
call fcn.1400027d0
nop
mov qword [rbp + 0x50], r13
mov qword [rbp + 0x60], r13
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], r13w
mov r8d, 0x20
lea rdx, str.C:WindowsSysWOW64_amdvlk32.dll
lea rcx, [rbp + 0x50]
call fcn.1400027d0
nop
lea rax, [rbp - 0x10]
mov qword [rsp + 0x50], rax
lea rax, [rbp + 0x70]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [rsi + 0x798]
call fcn.14003ea40
nop
lea r9, [fcn.1400024f0]
mov edx, 0x20
lea r8d, [rdx - 0x1c]
lea rcx, [rbp - 0x10]
call fcn.140070924
mov qword [rsp + 0x70], r13
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r13w
mov r8d, 0x25
lea rdx, str.C:WindowsSystem32_amd_vulkan32.json
lea rcx, [rsp + 0x70]
call fcn.1400027d0
nop
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], 7
mov word [rbp - 0x70], r13w
mov r8d, 0x20
lea rdx, str.C:WindowsSystem32_amdvlk32.dll
lea rcx, [rbp - 0x70]
call fcn.1400027d0
nop
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [rsi + 0x7b0]
call fcn.14003ea40
nop
lea r9, [fcn.1400024f0]
mov edx, 0x20
lea r8d, [rdx - 0x1e]
lea rcx, [rsp + 0x70]
call fcn.140070924
lea rdx, [rbp + 0x110]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
call fcn.1400277e0
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r13w
lea rax, [rbp + 0x110]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x1400284b6
mov r8, rbx
lea rdx, [rbp + 0x110]
lea rcx, [rsp + 0x50]
call fcn.1400027d0
nop
lea rax, [rsp + 0x50]
cmp r14, rax
je 0x1400284fd
lea rdx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x60]
mov rcx, r14
call fcn.1400027d0
movabs rax, 0x7ffffffffffffffe
mov rcx, qword [rsp + 0x60]
sub rax, rcx
cmp rax, 1
jb 0x1400286d3
lea r9, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae r9, qword [rsp + 0x50]
mov qword [rsp + 0x30], 1
lea rax, [0x1400bc204]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x70]
call fcn.140018a00
nop
lea rdx, [0x1400e0df0]
cmp qword [0x1400e0e08], 8
cmovae rdx, qword [0x1400e0df0]
mov r8, qword [0x1400e0e00]
lea rcx, [rsp + 0x70]
call fcn.140014b80
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xf0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x100], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 7
mov word [rax], r13w
lea rdx, [rbp + 0xf0]
lea rcx, [rsi + 0x4a8]
call fcn.140014c20
mov rdx, qword [rbp + 0x108]
cmp rdx, 8
jb 0x1400285f6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xf0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400285f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400286d9
call fcn.140070654
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x140028638
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140028632
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400286df
call fcn.140070654
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x140028676
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140028671
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400286cd
call fcn.140070654
lea r8, str.AMDCleanupUtility_Instance
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rsi + 0x3e0], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi + 0x3d8], eax
mov rax, rsi
mov rcx, qword [rbp + 0x320]
xor rcx, rsp
call fcn.140070140
lea r11, [rsp + 0x430]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14007d0fc
nop
call fcn.1400020a0
nop
call fcn.14007d0fc
nop
call fcn.14007d0fc
int3