Function at 0x6500b780
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x160
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov rax, qword [0x65043120]
xor rax, rsp
mov qword [rsp + 0x150], rax
cmp dword [0x65047e30], 0
jne 0x6500ba51
mov dword [0x65047e30], 0x18
xor ebx, ebx
mov dword [0x65047e40], ebx
lea r8, [0x65038ce8]
lea edx, [rbx + 0x12]
lea rcx, [0x65038d10]
call fcn.6500c660
mov rbp, rax
lea rcx, [0x650430a0]
mov rdx, qword [0x650430a0]
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
or rsi, 0xffffffffffffffff
test rbp, rbp
je 0x6500b855
test rbp, 0xffffffffffff0000
jne 0x6500b841
movzx edi, bp
xor edx, edx
mov ecx, edi
call fcn.650026f0
test rax, rax
je 0x6500b868
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.65003e00
jmp 0x6500b868
xor eax, eax
mov rcx, rsi
mov rdi, rbp
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
jmp 0x6500b857
mov ecx, ebx
mov r8d, ecx
mov rdx, rbp
lea rcx, [rsp + 0x20]
call fcn.65003f90
nop
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x34]
call fcn.6501efa0
mov dword [rsp + 0x30], 0x114
lea rcx, [0x650430a0]
mov rax, qword [0x650430a0]
call qword [rax + 0x18]
mov rdi, rax
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov r12d, 1
test eax, eax
je 0x6500b98b
mov ebp, dword [rsp + 0x34]
mov rdx, rdi
mov eax, esi
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x6500b8cd
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
cmp ebp, 6
jb 0x6500b9a5
lea r8, [0x65038d38]
mov edx, 0xf
lea rcx, [0x65038d68]
call fcn.6500c660
mov r12, rax
test rax, rax
jne 0x6500b8fb
mov r13d, ebx
jmp 0x6500b90d
xor eax, eax
mov rcx, rsi
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r13, [rcx - 1]
mov r14, r12
mov rdi, qword [rsp + 0x20]
sub r14, rdi
sar r14, 1
mov r15d, dword [rdi - 0x10]
lea ebp, [r15 + r13]
mov edx, 1
sub edx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, ebp
or eax, edx
jge 0x6500b945
mov edx, ebp
lea rcx, [rsp + 0x20]
call fcn.65002640
mov rdi, qword [rsp + 0x20]
cmp r14, r15
ja 0x6500b94e
lea r12, [rdi + r14*2]
movsxd rdx, r13d
add rdx, rdx
lea rcx, [rdi + r15*2]
mov r9, rdx
mov r8, r12
call fcn.6501d7b0
test ebp, ebp
js 0x6500b980
cmp ebp, dword [rdi - 0xc]
jg 0x6500b980
mov dword [rdi - 0x10], ebp
movsxd rax, ebp
mov word [rdi + rax*2], 0
mov r12d, 1
jmp 0x6500b9a5
mov ecx, 0x80070057
call fcn.65001050
int3
mov rdx, rdi
mov eax, esi
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x6500b9a5
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
xor eax, eax
lock cmpxchg dword [0x65047da0], r12d
jne 0x6500ba19
lea r8, [0x65039978]
mov edx, 0x34
lea rcx, [0x650399b8]
call fcn.6500bcb0
mov rdi, rax
lea r8, [0x650399f0]
mov edx, 8
lea rcx, [0x65039878]
call fcn.6500c660
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
add dword [0x65044948], 1
test rax, rax
je 0x6500ba10
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
add dword [0x6504494c], 1
mov qword [0x65047ed8], rbx
jmp 0x6500ba20
mov rbx, qword [0x65047ed8]
xor r9d, r9d
lea r8, [0x65047e38]
mov edx, r12d
mov rdi, qword [rsp + 0x20]
mov rcx, rdi
call rbx
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x6500ba51
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rax, [0x65047e30]
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.6501e650
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret