Function at 0x180010939
Capabilities:
Check os version
Encrypt data using rc4 prga

Disassembly:
push rbp
sub rsp, 0x200
lea rbp, [rsp + 0x20]
mov qword [rsp], rax
mov rax, 0x1fc
mov dword [rsp + rax], 0xcccccccc
sub rax, 4
cmp rax, 4
jg 0x180010951
mov rax, qword [rsp]
mov dword [rsp], 0xcccccccc
mov dword [rsp + 4], 0xcccccccc
mov qword [rbp + 0xa0], rbx
mov rax, qword [0x1800f4ae8]
xor rax, rbp
mov qword [rbp + 0x1d8], rax
mov byte [rbp], 0
lea rax, [rbp + 0xb0]
mov edx, 0
mov ecx, 0x11c
mov qword [rbp + 0x68], rcx
mov rcx, rax
mov rax, qword [rbp + 0x68]
mov r8, rax
call fcn.180062370
mov qword [rbp + 0x30], rax
mov dword [rbp + 0xb0], 0x11c
lea rax, [rbp + 0xb0]
mov rdx, qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov rcx, rax
call rdx
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
test eax, eax
jne 0x180010a00
mov dword [rbp + 0xb0], 0x114
lea rax, [rbp + 0xb0]
mov rdx, qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov rcx, rax
call rdx
mov dword [rbp + 8], eax
mov eax, dword [rbp + 0xc0]
cmp eax, 2
jne 0x180010d50
movzx eax, word [rbp + 0x1c6]
movzx eax, ax
and eax, 0xff
movzx eax, al
movzx edx, word [rbp + 0x1c4]
movzx edx, dx
and edx, 0xff
movzx edx, dl
shl edx, 8
or eax, edx
movzx eax, ax
and eax, 0xffff
movzx eax, ax
mov edx, dword [rbp + 0xb8]
and edx, 0xff
movzx edx, dl
mov ecx, dword [rbp + 0xb4]
and ecx, 0xff
movzx ecx, cl
shl ecx, 8
or edx, ecx
movzx edx, dx
and edx, 0xffff
movzx edx, dx
shl edx, 0x10
or eax, edx
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
and eax, 0xffff0000
cmp eax, 0x6020000
jb 0x180010d13
mov dword [rbp + 0x10], 8
mov eax, dword [rbp + 0x10]
cmp eax, 6
jge 0x180010aaf
jmp 0x180010d13
mov eax, 0xffffffff
add eax, dword [rbp + 0x10]
mov dword [rbp + 0x10], eax
jmp 0x180010a95
mov dword [rbp + 0x14], 8
mov eax, dword [rbp + 0x14]
test eax, eax
jge 0x180010acc
jmp 0x180010aa2
mov eax, 0xffffffff
add eax, dword [rbp + 0x14]
mov dword [rbp + 0x14], eax
jmp 0x180010ab6
mov dword [rbp + 0x18], 8
mov eax, dword [rbp + 0x18]
test eax, eax
jge 0x180010ae9
jmp 0x180010abf
mov eax, 0xffffffff
add eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
jmp 0x180010ad3
lea rax, [rbp + 0xb0]
mov edx, 0
mov ecx, 0x11c
mov qword [rbp + 0x70], rcx
mov rcx, rax
mov rax, qword [rbp + 0x70]
mov r8, rax
call fcn.180062370
mov qword [rbp + 0x38], rax
mov dword [rbp + 0xb0], 0x11c
mov eax, dword [rbp + 0x10]
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0x14]
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0x18]
mov word [rbp + 0x1c4], ax
mov qword [rbp + 0x40], 0
mov rax, qword [rbp + 0x40]
mov edx, 2
mov ecx, 3
mov rbx, qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [rbp + 0x78], ecx
mov rcx, rax
mov eax, dword [rbp + 0x78]
mov r8d, eax
call rbx
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov edx, 1
mov ecx, 3
mov rbx, qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [rbp + 0x80], ecx
mov rcx, rax
mov eax, dword [rbp + 0x80]
mov r8d, eax
call rbx
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov edx, 0x20
mov ecx, 3
mov rbx, qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [rbp + 0x88], ecx
mov rcx, rax
mov eax, dword [rbp + 0x88]
mov r8d, eax
call rbx
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov edx, reloc.WS2_32.dll_recv
mov ecx, 3
mov rbx, qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [rbp + 0x90], ecx
mov rcx, rax
mov eax, dword [rbp + 0x90]
mov r8d, eax
call rbx
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x40], rax
lea rax, [rbp + 0xb0]
mov edx, gethostbyname
mov rcx, qword [rbp + 0x40]
mov rbx, qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
mov qword [rbp + 0x98], rcx
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov r8, rax
call rbx
mov dword [rbp + 0x1c], eax
mov byte [rbp], 1
mov eax, dword [rbp + 0x1c]
mov dword [rbp + 0x20], eax
movzx eax, byte [rbp]
test eax, eax
jne 0x180010c5e
lea rax, [0x180101dd4]
mov rcx, rax
call fcn.180064a90
mov eax, dword [rbp + 0x20]
cmp eax, 1
jne 0x180010adc
movzx eax, word [rbp + 0x1c6]
movzx eax, ax
and eax, 0xff
movzx eax, al
movzx edx, word [rbp + 0x1c4]
movzx edx, dx
and edx, 0xff
movzx edx, dl
shl edx, 8
or eax, edx
movzx eax, ax
and eax, 0xffff
movzx eax, ax
mov edx, dword [rbp + 0xb8]
and edx, 0xff
movzx edx, dl
mov ecx, dword [rbp + 0xb4]
and ecx, 0xff
movzx ecx, cl
shl ecx, 8
or edx, ecx
movzx edx, dx
and edx, 0xffff
movzx edx, dx
shl edx, 0x10
or eax, edx
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
mov dword [rbp + 0x24], eax
lea rax, reloc.WS2_32.dll_accept
mov rdx, rax
mov rcx, rbp
call fcn.180061140
mov rax, qword [rbp + 0x1d8]
xor rax, rbp
mov rcx, rax
call fcn.1800612f0
mov eax, dword [rbp + 0x24]
mov rbx, qword [rbp + 0xa0]
lea rsp, [rbp + 0x1e0]
pop rbp
ret
mov eax, dword [rbp + 0xc]
mov dword [rbp + 0x28], eax
lea rax, reloc.WS2_32.dll_accept
mov rdx, rax
mov rcx, rbp
call fcn.180061140
mov rax, qword [rbp + 0x1d8]
xor rax, rbp
mov rcx, rax
call fcn.1800612f0
mov eax, dword [rbp + 0x28]
mov rbx, qword [rbp + 0xa0]
lea rsp, [rbp + 0x1e0]
pop rbp
ret
mov eax, 0
mov dword [rbp + 0x2c], eax
lea rax, reloc.WS2_32.dll_accept
mov rdx, rax
mov rcx, rbp
call fcn.180061140
mov rax, qword [rbp + 0x1d8]
xor rax, rbp
mov rcx, rax
call fcn.1800612f0
mov eax, dword [rbp + 0x2c]
mov rbx, qword [rbp + 0xa0]
lea rsp, [rbp + 0x1e0]
pop rbp
ret