Function at 0x140032460
Capabilities:
Check os version
Get common file path
Query environment variable
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x1400a8378]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov rbx, r9
mov dword [rsp + 0x30], r8d
mov r10, rdx
mov qword [rsp + 0x40], rdx
mov esi, ecx
mov r11, qword [rbp + 0x210]
mov qword [rsp + 0x48], r11
xor r12d, r12d
mov dword [rsp + 0x34], r12d
mov edi, r12d
lea rax, [0x1400a8070]
lea rcx, str._X_b_
cmp esi, dword [rax]
je 0x1400324db
inc edi
add rax, 0x28
cmp rax, rcx
jl 0x1400324c7
jmp 0x1400328ad
cmp edi, 0xffffffff
je 0x1400328ad
mov r13, r12
mov r14, r12
cmp r11, 0xffffffffffffffff
je 0x140032650
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r12w
mov dword [rsp + 0x34], 1
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x70]
call fcn.140055870
mov edx, 0x104
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x140032540
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x70]
call fcn.1400041d0
mov r8d, 0xc
lea rdx, str.Userenv.dll
lea rcx, [rsp + 0x70]
call fcn.14000b0b0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x60], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x1400325b9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400325b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400328e2
call fcn.140036990
lea rcx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r14, rax
test rax, rax
je 0x1400325eb
lea rdx, str.ExpandEnvironmentStringsForUserW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14003262d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140032628
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400328dc
call fcn.140036990
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
mov r10, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x30]
mov r11, qword [rsp + 0x48]
movsxd rax, edi
lea rdx, [rax + rax*4]
lea r15, [rdx*8]
lea rdx, [0x1400a8070]
mov rcx, qword [r15 + rdx + 0x20]
test rcx, rcx
je 0x1400326ad
test r13, r13
je 0x140032694
mov r9d, r8d
mov r8, r10
mov rdx, rcx
mov rcx, r11
call r13
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x1400328b2
mov rdx, r10
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x1400328b2
cmp esi, 0x23
jne 0x140032750
mov dword [rbp - 0x70], 0x11c
mov qword [rbp - 0x64], r12
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp - 0x5c]
call fcn.140055870
mov word [rbp + 0xa6], r12w
xor eax, eax
mov dword [rbp + 0xa8], eax
mov r8b, 3
lea edx, [rsi - 0x21]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov rcx, rax
mov r8b, 3
lea edx, [rsi - 0x22]
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov rcx, rax
mov r8b, 3
lea edx, [rsi - 3]
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov qword [rbp - 0x6c], 6
mov word [rbp + 0xa4], r12w
mov r8, rax
mov edx, esi
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
lea rdx, [0x1400a8070]
test eax, eax
jne 0x140032750
mov rax, qword [str._X_b_]
mov qword [r15 + rdx + 0x10], rax
mov rax, qword [str.Common_AppData]
mov qword [r15 + rdx + 0x18], rax
mov edi, r12d
mov r12d, dword [rbp + 0x218]
test r12d, r12d
jle 0x14003289f
xor eax, eax
nop word [rax + rax]
mov qword [rsp + 0x38], rax
test rbx, rbx
mov rcx, rbx
jne 0x140032782
mov rcx, qword [r15 + rdx + 8]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
mov rdx, qword [r15 + rdx + 0x10]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test eax, eax
jne 0x14003281a
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x70]
call fcn.140055870
mov dword [rsp + 0x34], 0x208
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x1400a8070]
mov rdx, qword [r15 + rdx + 0x18]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
jne 0x14003280f
lea rcx, [rbp - 0x70]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x140032800
test rax, rax
jne 0x140032851
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
test rbx, rbx
je 0x14003283c
cmp edi, 5
jbe 0x14003283c
test esi, esi
mov eax, 0
cmovne rbx, rax
jmp 0x14003283e
xor eax, eax
inc edi
cmp edi, r12d
jge 0x14003289f
lea rdx, [0x1400a8070]
jmp 0x140032770
test r13, r13
je 0x14003286e
mov r9d, dword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov rcx, qword [rsp + 0x48]
call r13
jmp 0x140032882
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test r14, r14
je 0x14003289b
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x1400328b2
test r14, r14
je 0x1400328ad
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 0x80004005
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.140036fa0
mov rbx, qword [rsp + 0x2f0]
add rsp, 0x2b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140059e3c
int3
call fcn.140059e3c
int3