Function at 0x14001f030
Capabilities:
Get common file path
Get file version info

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x6a0
mov rax, qword [0x14016b140]
xor rax, rsp
mov qword [rsp + 0x690], rax
mov r14, r8
mov rbp, rdx
mov r15, rcx
xor r12d, r12d
xor edx, edx
lea rcx, [rsp + 0x60]
mov r8d, 0x208
mov edi, r12d
call fcn.1400c0ac0
mov qword [rsp + 0x30], r12
lea r8d, [r12 + 1]
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
mov rcx, rbp
xor r13b, r13b
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp rbx, 0xffffffffffffffff
jne 0x14001f1e8
cmp eax, 0xb7
je 0x14001f1e8
cmp eax, 0x20
je 0x14001f1e8
xor edx, edx
lea rcx, [rsp + 0x270]
mov r8d, 0x208
call fcn.1400c0ac0
xor edx, edx
lea rcx, [rsp + 0x480]
mov r8d, 0x208
call fcn.1400c0ac0
lea rdx, [rsp + 0x270]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x14001f11f
mov edx, 0x104
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea r9, [rsp + 0x480]
xor r8d, r8d
lea rdx, [0x140106890]
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x14001f210
mov rcx, r12
nop word [rax + rax]
movzx eax, word [rsp + rcx + 0x480]
mov word [rsp + rcx + 0x60], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14001f150
xor r9d, r9d
lea r8, [rsp + 0x60]
mov rdx, rbp
mov rcx, r15
mov r13b, 1
call fcn.14001de20
test eax, eax
jne 0x14001f210
mov qword [rsp + 0x30], r12
lea r8d, [rax + 1]
mov dword [rsp + 0x28], 0x80
lea rcx, [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], 3
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp rbx, 0xffffffffffffffff
jne 0x14001f1cb
cmp eax, 0xb7
je 0x14001f1cb
cmp eax, 0x20
jne 0x14001f1e1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.14001e940
xor eax, eax
jmp 0x14001f356
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x60]
mov rcx, rbp
sub rdx, rbp
nop dword [rax]
movzx eax, word [rcx]
mov word [rdx + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14001f200
mov dword [rsp + 0x44], r12d
test r14, r14
je 0x14001f21d
mov dword [r14], r12d
lea rdx, [rsp + 0x44]
lea rcx, [rsp + 0x60]
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov ebx, eax
test eax, eax
je 0x14001f2f2
mov ecx, ebx
mov qword [rsp + 0x6f8], rsi
call fcn.140027a58
mov rsi, rax
test rax, rax
je 0x14001f2ea
mov r9, rax
lea rcx, [rsp + 0x60]
mov r8d, ebx
xor edx, edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x14001f2dd
lea r9, [rsp + 0x50]
mov qword [rsp + 0x48], r12
lea r8, [rsp + 0x48]
mov rcx, rsi
lea rdx, [0x1401330f4]
call sub.VERSION.dll_VerQueryValueW
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x28], rbp
mov eax, dword [rcx + 0x10]
movzx ebx, ax
shr eax, 0x10
mov r8d, ebx
mov edx, eax
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x14]
mov edi, eax
movzx r12d, ax
lea rcx, str.GetProductVersion____d__d__d__d___s__n
shr edi, 0x10
mov r9d, edi
mov dword [rsp + 0x20], r12d
call fcn.1400213c0
mov eax, dword [rsp + 0x40]
shl eax, 0x10
or eax, ebx
test r14, r14
je 0x14001f2d8
shl edi, 0x10
or edi, r12d
mov dword [r14], edi
xor r12d, r12d
mov edi, eax
mov edx, 1
mov rcx, rsi
call fcn.1400277b4
mov rsi, qword [rsp + 0x6f8]
test r13b, r13b
je 0x14001f354
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
lea rcx, [rsp + 0x60]
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp rbx, 0xffffffffffffffff
jne 0x14001f33e
cmp eax, 0xb7
je 0x14001f33e
cmp eax, 0x20
jne 0x14001f354
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.14001e940
mov eax, edi
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.140027790
add rsp, 0x6a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret