Function at 0x14012ca20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
mov dword [r11 + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x110
mov rsi, qword [rcx + 0xdef8]
movsxd rax, r8d
mov r15, rcx
mov rdi, qword [rdx + rax*8 + 0x1030]
mov r10, qword [rdx + rax*8 + 0x1000]
mov rcx, qword [rcx + 0x88]
mov r8, qword [r15 + 0x110]
lea rbp, [rax + 2]
lea rbx, [rax + 5]
mov r13, rax
mov qword [rsp + 0x58], rax
lea rax, [rax + rax*2]
mov r14, rdx
shl rbp, 9
shl rbx, 9
add rbp, rdx
add rbx, rdx
lea rdx, [rax + rax]
mov rax, qword [r14 + rdx*8 + 0x1060]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x158], r8
movzx ecx, word [rax]
mov rax, qword [r14 + rdx*8 + 0x1068]
mov qword [rsp + 0x48], r10
mov word [r11 + 8], cx
movzx ecx, word [rax]
mov qword [rsp + 0x30], rdi
mov word [r11 + 0xa], cx
xor r11d, r11d
test rdi, rdi
jle 0x14012ccba
lea r9, [r13 + r13*2]
mov qword [rsp + 0x108], r12
mov r13, r11
mov qword [rsp + 0x38], r9
nop word [rax + rax]
mov r10, qword [r10 + r13*8]
movsx rax, r11w
lea rdi, [rsp + 0x70]
mov edx, dword [r8 + r10*4]
mov ecx, 0x40
mov qword [rsp + 0x40], r10
rep stosw word [rdi], ax
mov eax, edx
mov ecx, r11d
and eax, 0x700
cmp eax, 0x100
setne cl
shr rdx, 2
and edx, 0x3f
movsxd rax, ecx
add rdx, r9
mov qword [rsp + 0x60], rax
lea rax, [rax + rdx*2 + 0x20c]
xor edx, edx
mov rax, qword [r14 + rax*8]
mov r11d, edx
mov qword [rsp + 0x168], rax
jmp 0x14012cb52
xor edx, edx
movsxd r9, r11d
mov r12d, r11d
cmp qword [rbx + r9*8], 0
jne 0x14012cc3b
movsxd rdi, dword [rbp + r9*8]
lea rcx, [0x14032a8f0]
movzx r8d, byte [rdi + rsi]
inc edi
mov r10d, dword [rcx + r8*4]
cmp r8d, 0xf
jae 0x14012cbac
mov eax, edx
mov ecx, edx
cmp r8d, 0xc
setl cl
neg ecx
and ecx, 0x15
cmp r8d, 2
setl al
neg eax
and eax, 0xfffffff3
add ecx, eax
movsxd rax, edi
movzx edx, byte [rax + rsi]
shl edx, cl
add r10d, edx
inc edi
mov edx, r10d
sar rdx, 8
and edx, 0xfff
test r8d, r8d
jne 0x14012cbdd
movsxd rax, edi
inc edi
movzx eax, byte [rax + rsi]
shl eax, 8
cdqe
add rdx, rax
movabs rax, 0x7fffffffffffffff
cmove rdx, rax
movsxd rax, edi
mov rdi, qword [rsp + 0x168]
mov qword [rbx + r9*8], rdx
mov qword [rbp + r9*8], rax
movzx eax, r10b
mov ecx, r10d
add r11d, eax
and ecx, 0x100000
sar r10d, 0x15
neg ecx
movsxd rax, r11d
sar ecx, 0x15
xor cx, r10w
imul cx, word [rdi + rax*2]
mov rdi, qword [rsp + 0x50]
movzx eax, byte [rax + rdi]
mov word [rsp + rax*2 + 0x70], cx
xor eax, eax
test rdx, rdx
sete al
add r11d, eax
cmp r11d, 0x40
jl 0x14012cb50
jmp 0x14012cc42
movsxd rax, r11d
dec qword [rbx + rax*8]
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x158]
mov r8d, dword [rsp + 0x160]
movzx eax, word [rax + rdx*4 + 2]
lea r9, [rsp + 0x70]
mov rcx, r15
mov word [rsp + 0x70], ax
mov rax, qword [rsp + 0x60]
movzx eax, word [rsp + rax*2 + 0x150]
mov word [rsp + 0x28], ax
mov dword [rsp + 0x20], r12d
call qword [r15 + 0x68]
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x158]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x48]
inc r13
mov r11d, 0
cmp r13, rdi
jl 0x14012caf0
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x108]
mov r8, qword [r14 + r13*8 + 0x1048]
lea rax, [rdi*8]
mov r9d, 2
add qword [r14 + r13*8 + 0x1000], rax
mov rax, r8
mov rcx, r15
neg rax
shl rax, 3
add qword [r14 + r13*8 + 0x1018], rax
mov eax, dword [rsp + 0x160]
mov rdx, qword [r14 + r13*8 + 0x1018]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 1
call qword [r15 + WSAStartup]
add rsp, 0x110
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret