Function at 0x140001000
Capabilities:
Check os version

Disassembly:
push rbp
lea rbp, [rsp - 0x770]
sub rsp, 0x870
mov rax, qword [0x140057cb0]
xor rax, rsp
mov qword [rbp + 0x760], rax
test r8, r8
je 0x1400012c7
lea r9, str._RegServer
mov rax, r8
sub r9, r8
nop dword [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r9]
sub edx, ecx
jne 0x140001053
inc rax
test ecx, ecx
jne 0x140001040
mov qword [rsp + 0x880], rbx
test edx, edx
jne 0x1400011cf
mov r8d, 0x208
lea rcx, [rsp + 0x20]
call fcn.140003580
xor edx, edx
lea rcx, [rbp + 0x130]
mov r8d, 0x208
call fcn.140003580
xor edx, edx
lea rcx, [rbp + 0x340]
mov r8d, 0x208
call fcn.140003580
xor edx, edx
lea rcx, [rbp + 0x550]
mov r8d, 0x208
call fcn.140003580
lea rcx, str.4A83E9B2_D3E6_426A_ABB5_E943830D9594
call fcn.1400013c0
test eax, eax
jne 0x1400010cc
call fcn.140001510
test eax, eax
je 0x1400012bf
mov r8d, 0x104
lea rdx, [rsp + 0x20]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor ebx, ebx
test eax, eax
setne bl
test ebx, ebx
je 0x1400012bf
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x130]
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x340]
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x550]
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
xor edx, edx
lea rcx, [rbp + 0x130]
lea r8d, [rdx + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
test rax, rax
je 0x1400012bf
lea rdx, str.PerfModeSettings.exe
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
test ebx, ebx
je 0x1400012bf
xor edx, edx
lea rcx, [rbp + 0x340]
lea r8d, [rdx + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
test rax, rax
je 0x1400012bf
lea rdx, str.PerfModeSettings.ico
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
xor edx, edx
lea rcx, [rbp + 0x550]
lea r8d, [rdx + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
test rax, rax
je 0x1400012bf
lea rdx, str.PerfModeSettings.xml
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
lea r8, [rbp + 0x340]
lea rdx, [rbp + 0x550]
lea rcx, [rbp + 0x130]
call fcn.140001820
jmp 0x1400012bf
lea r9, str._UnRegServer
mov rax, r8
sub r9, r8
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r9]
sub edx, ecx
jne 0x1400011f3
inc rax
test ecx, ecx
jne 0x1400011e0
test edx, edx
jne 0x14000120d
call fcn.140001770
lea rcx, str.tposdres.dll
call fcn.140001dd0
jmp 0x1400012bf
lea rdx, str._CopyPerfmodeResFile
sub rdx, r8
nop word [rax + rax]
movzx ecx, byte [r8]
movzx eax, byte [r8 + rdx]
sub ecx, eax
jne 0x140001234
inc r8
test eax, eax
jne 0x140001220
test ecx, ecx
jne 0x1400012bf
xor edx, edx
lea rcx, [rbp + 0x130]
mov r8d, 0x208
call fcn.140003580
xor edx, edx
mov dword [rsp + 0x20], 0x114
mov r8d, 0x110
lea rcx, [rsp + 0x24]
call fcn.140003580
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [rsp + 0x24]
cmp eax, 6
jne 0x1400012e1
cmp dword [rsp + 0x28], 2
jb 0x1400012e3
mov ebx, 1
lea rax, str.tpscr
test ebx, ebx
lea rcx, str.tposd
mov edx, 0x104
cmove rcx, rax
lea r8, [rbp + 0x130]
call fcn.140001c50
test eax, eax
je 0x1400012bf
lea rcx, [rbp + 0x130]
call fcn.140002020
mov rbx, qword [rsp + 0x880]
xor eax, eax
mov rcx, qword [rbp + 0x760]
xor rcx, rsp
call fcn.140002400
add rsp, 0x870
pop rbp
ret
ja 0x140001285
xor ebx, ebx
jmp 0x14000128a