Function at 0x1800048e0
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 [0x180106f10]
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 0x180004d73
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r11d, dword [rsp + 0x174]
sub r11d, 4
je 0x180004c97
sub r11d, 1
je 0x180004b9e
sub r11d, 1
je 0x1800049e3
cmp r11d, 4
jne 0x180004d73
cmp dword [rsp + 0x178], edi
jne 0x180004d73
cmp byte [rsp + 0x28a], 1
jne 0x1800049b5
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 0x180004e36
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 0x180004e36
mov eax, dword [rsp + 0x178]
test eax, eax
je 0x180004b38
sub eax, 1
je 0x180004ad2
sub eax, 1
je 0x180004a6c
cmp eax, 1
jne 0x180004d73
cmp byte [rsp + 0x28a], al
jne 0x180004a3e
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 0x180004e36
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 0x180004e36
cmp byte [rsp + 0x28a], 1
jne 0x180004aa4
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 0x180004e36
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 0x180004e36
cmp byte [rsp + 0x28a], 1
jne 0x180004b0a
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 0x180004e36
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 0x180004e36
cmp byte [rsp + 0x28a], 1
jne 0x180004b70
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 0x180004e36
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 0x180004e36
mov eax, dword [rsp + 0x178]
test eax, eax
je 0x180004c69
sub eax, 1
je 0x180004c3b
sub eax, 1
jne 0x180004d73
movzx eax, byte [rsp + 0x28a]
cmp al, 1
jne 0x180004c05
cmp word [rsp + 0x38], 9
jne 0x180004d73
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 0x180004e36
cmp al, 3
jne 0x180004d73
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 0x180004e36
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 0x180004e36
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 0x180004e36
mov eax, dword [rsp + 0x178]
test eax, eax
je 0x180004d0a
cmp eax, 0xa
je 0x180004cdc
cmp eax, 0x5a
jne 0x180004d73
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 0x180004e36
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 0x180004e36
mov eax, dword [rsp + 0x180]
cmp eax, 2
jne 0x180004d42
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 0x180004e36
cmp eax, 1
jne 0x180004d73
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 0x180004e36
mov edx, 3
lea r8d, [rdx - 2]
lea rcx, [rsp + 0x70]
call fcn.180005d20
nop
lea rdx, str.Windows_NT
lea rcx, [rsp + 0x80]
call fcn.18000ac50
mov edx, dword [rsp + 0x174]
lea rcx, [rsp + 0x80]
call fcn.180005af0
mov rcx, rax
lea rdx, [0x1800e37bc]
call fcn.18000ac50
mov edx, dword [rsp + 0x178]
lea rcx, [rsp + 0x80]
call fcn.180005af0
mov rcx, rax
lea rdx, [0x1800e37bc]
call fcn.18000ac50
mov edx, dword [rsp + 0x17c]
lea rcx, [rsp + 0x80]
call fcn.180005af0
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.180005ed0
mov dword [rsp + 0x20], 1
lea rcx, [rsp + 0x108]
call fcn.180005e00
lea r11, vtable.std::ios_base.0
mov qword [rsp + 0x108], r11
lea rcx, [rsp + 0x108]
call fcn.18002f61c
mov rax, rbx
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.1800564b0
mov rbx, qword [rsp + 0x2b8]
add rsp, 0x2a0
pop rdi
ret