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

Disassembly:
push rdi
sub rsp, 0x2a0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x2b8], rbx
mov rax, qword [0x180109f10]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov dword [rsp + 0x170], 0x11c
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180004f13
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r11d, dword [rsp + 0x174]
sub r11d, 4
je 0x180004e37
sub r11d, 1
je 0x180004d3e
sub r11d, 1
je 0x180004b83
cmp r11d, 4
jne 0x180004f13
cmp dword [rsp + 0x178], edi
jne 0x180004f13
cmp byte [rsp + 0x28a], 1
jne 0x180004b55
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
lea r8d, [rdi + 0xa]
lea rdx, str.Windows_10
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, Ordinal_41
lea rdx, str.Windows_Server_2016_Techical_Preview
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov eax, dword [rsp + 0x178]
test eax, eax
je 0x180004cd8
sub eax, 1
je 0x180004c72
sub eax, 1
je 0x180004c0c
cmp eax, 1
jne 0x180004f13
cmp byte [rsp + 0x28a], al
jne 0x180004bde
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
lea r8d, [rax + 0xa]
lea rdx, str.Windows_8.1
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WLDAP32.dll_Ordinal_22
lea rdx, str.Windows_Server_2012_R2
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
cmp byte [rsp + 0x28a], 1
jne 0x180004c44
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, 9
lea rdx, str.Windows_8
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WS2_32.dll_send
lea rdx, str.Windows_Server_2012
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
cmp byte [rsp + 0x28a], 1
jne 0x180004caa
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, 9
lea rdx, str.Windows_7
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WLDAP32.dll_Ordinal_22
lea rdx, str.Windows_Server_2008_R2
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
cmp byte [rsp + 0x28a], 1
jne 0x180004d10
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str.Windows_Vista
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WS2_32.dll_send
lea rdx, str.Windows_Server_2008
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov eax, dword [rsp + 0x178]
test eax, eax
je 0x180004e09
sub eax, 1
je 0x180004ddb
sub eax, 1
jne 0x180004f13
movzx eax, byte [rsp + 0x28a]
cmp al, 1
jne 0x180004da5
cmp word [rsp + 0x38], 9
jne 0x180004f13
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WLDAP32.dll_Ordinal_35
lea rdx, str.Windows_XP_Professional_x64_Edition
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
cmp al, 3
jne 0x180004f13
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, reloc.WS2_32.dll_send
lea rdx, str.Windows_Server_2003
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, 0xa
lea rdx, str.Windows_XP
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, recvfrom
lea rdx, str.Windows_2000
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov eax, dword [rsp + 0x178]
test eax, eax
je 0x180004eaa
cmp eax, 0xa
je 0x180004e7c
cmp eax, 0x5a
jne 0x180004f13
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
lea r8d, [rax - 0x50]
lea rdx, str.Windows_Me
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
mov r8d, 0xa
lea rdx, str.Windows_98
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov eax, dword [rsp + 0x180]
cmp eax, 2
jne 0x180004ee2
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
lea r8d, [rax + 0xc]
lea rdx, str.Windows_NT_4.0
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
cmp eax, 1
jne 0x180004f13
mov qword [rbx + 0x20], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x18], rdi
mov byte [rbx + 8], dil
lea r8d, [rax + 9]
lea rdx, str.Windows_95
mov rcx, rbx
call fcn.180003680
nop
mov rax, rbx
jmp 0x180004fd6
mov edx, 3
lea r8d, [rdx - 2]
lea rcx, [rsp + 0x70]
call fcn.180006590
nop
lea rdx, str.Windows_NT
lea rcx, [rsp + 0x80]
call fcn.18000bc50
mov edx, dword [rsp + 0x174]
lea rcx, [rsp + 0x80]
call fcn.1800062d0
mov rcx, rax
lea rdx, [0x1800e57ac]
call fcn.18000bc50
mov edx, dword [rsp + 0x178]
lea rcx, [rsp + 0x80]
call fcn.1800062d0
mov rcx, rax
lea rdx, [0x1800e57ac]
call fcn.18000bc50
mov edx, dword [rsp + 0x17c]
lea rcx, [rsp + 0x80]
call fcn.1800062d0
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.180006740
mov dword [rsp + 0x20], 1
lea rcx, [rsp + 0x108]
call fcn.180006670
lea r11, vtable.std::ios_base.0
mov qword [rsp + 0x108], r11
lea rcx, [rsp + 0x108]
call fcn.18003096c
mov rax, rbx
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.1800576a0
mov rbx, qword [rsp + 0x2b8]
add rsp, 0x2a0
pop rdi
ret