Function at 0x140010408
Capabilities:
Check os version
Get system information on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov rax, qword [0x140048f50]
xor rax, rsp
mov qword [rbp + 0x27], rax
xor r13d, r13d
mov rbx, r8
mov rdi, rcx
cmp dword [0x14004afbc], r13d
lea r12, [0x14004afa8]
lea r15, [0x14004af90]
jne 0x14001062a
lea rcx, [rbp - 0x79]
xor edx, edx
mov r8d, LoadRegTypeLib
call fcn.14001e2f0
lea rdx, str.win32
mov rcx, r12
mov dword [rbp - 0x79], RegisterTypeLib
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [rbp - 0x79]
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x14001049a
lea rcx, [rbp - 0x79]
mov dword [rbp - 0x79], 0x94
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rbp - 0x69], 2
jne 0x140010539
cmp dword [rbp - 0x75], 4
jne 0x1400104b6
lea rdx, str.winnt
jmp 0x140010568
cmp dword [rbp - 0x75], 6
jne 0x140010507
mov eax, dword [rbp - 0x71]
test eax, eax
jne 0x1400104e4
cmp byte [rbp + 0x21], 1
mov rcx, r12
jne 0x1400104d8
lea rdx, str.winvista
jmp 0x14001056b
lea rdx, str.winlong
jmp 0x14001056b
cmp eax, 1
jne 0x14001057a
mov rcx, r12
cmp byte [rbp + 0x21], al
jne 0x1400104fe
lea rdx, str.win7
jmp 0x14001056b
lea rdx, str.win2008R2
jmp 0x14001056b
cmp dword [rbp - 0x75], 5
jne 0x140010571
mov eax, dword [rbp - 0x71]
test eax, eax
jne 0x14001051d
lea rdx, str.win2000
jmp 0x140010568
cmp eax, 1
jne 0x14001052b
lea rdx, str.winxp
jmp 0x140010568
cmp eax, 2
jne 0x14001057a
lea rdx, str.win2003
jmp 0x140010568
cmp dword [rbp - 0x69], 1
jne 0x140010571
cmp dword [rbp - 0x75], 4
jne 0x140010561
cmp dword [rbp - 0x71], 0xa
jne 0x140010554
lea rdx, str.win98
jmp 0x140010568
cmp dword [rbp - 0x71], 0x5a
lea rdx, str.winme
je 0x140010568
lea rdx, str.win95
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [rbp - 0x75], r13d
jbe 0x1400105aa
mov eax, dword [rbp - 0x71]
test eax, eax
je 0x1400105aa
lea rdx, str.win32
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x1400105aa
mov r9d, dword [rbp - 0x71]
mov r8d, dword [rbp - 0x75]
lea rdx, str._d._d
mov rcx, r12
call qword [sym.imp.USER32.dll_wsprintfA]
movzx eax, word [rbp + 0x1b]
lea rdx, str.Unknown
mov rcx, r15
mov dword [0x14004af88], eax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [rsp + 0x20]
mov word [rsp + 0x20], r13w
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movzx r8d, word [rsp + 0x20]
test r8d, r8d
je 0x140010610
cmp r8d, 6
je 0x140010607
mov rcx, r15
cmp r8d, 9
je 0x1400105fe
lea rdx, [0x1400384d0]
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x140010620
lea rdx, str.amd64
jmp 0x14001061a
lea rdx, str.ia64
jmp 0x140010617
lea rdx, str.i586
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [0x14004afbc], 1
mov r9d, dword [0x14004af88]
mov r8, r12
mov rcx, rdi
test r9d, r9d
je 0x14001064b
lea rdx, str._s_sp_d
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x140010658
lea rdx, [0x14003620c]
call qword [sym.imp.USER32.dll_wsprintfA]
test rbx, rbx
je 0x140010670
lea rdx, [0x14003620c]
mov r8, r15
mov rcx, rbx
call qword [sym.imp.USER32.dll_wsprintfA]
mov eax, 1
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14001eba0
mov rbx, qword [rsp + 0x138]
add rsp, 0x100
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret