Function at 0x140158800
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
test r8d, r8d
js 0x140158d72
mov rax, rcx
movzx r10d, word [rdx + 2]
xor r9d, r9d
test r10d, r10d
mov r11d, 0x8a
mov ecx, 7
cmove ecx, r11d
setne r9b
add r9d, 3
inc r8d
xor r11d, r11d
mov ebp, 0xffffffff
xor edi, edi
jmp 0x140158862
mov esi, ebp
inc r11
mov ebp, esi
mov edi, ebx
cmp r11, r8
je 0x140158d72
mov esi, r10d
movzx r10d, word [rdx + r11*4 + 6]
lea ebx, [rdi + 1]
cmp ebx, ecx
jge 0x140158877
cmp esi, r10d
je 0x140158850
cmp ebx, r9d
jge 0x140158950
mov r9d, esi
mov ecx, dword [rax + 0x1768]
jmp 0x1401588e5
mov rcx, qword [rax + 0x10]
mov r15d, dword [rax + 0x28]
lea r12d, [r15 + 1]
mov dword [rax + 0x28], r12d
mov byte [rcx + r15], r14b
movzx ecx, byte [rax + 0x1765]
mov r14, qword [rax + 0x10]
mov r15d, dword [rax + 0x28]
lea r12d, [r15 + 1]
mov dword [rax + 0x28], r12d
mov byte [r14 + r15], cl
mov r14d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r14b
shr ebp, cl
mov word [rax + 0x1764], bp
lea ecx, [rdi + r14]
add ecx, 0xfffffff0
mov dword [rax + 0x1768], ecx
dec ebx
je 0x14015892b
movzx edi, word [rax + r9*4 + 0xaf6]
mov r15d, reloc.WS2_32.dll_recv
sub r15d, edi
movzx ebp, word [rax + r9*4 + 0xaf4]
mov r14d, ebp
shl r14d, cl
or r14w, word [rax + 0x1764]
mov word [rax + 0x1764], r14w
cmp ecx, r15d
jg 0x140158890
add ecx, edi
mov dword [rax + 0x1768], ecx
dec ebx
jne 0x1401588e5
xor ebx, ebx
test r10d, r10d
je 0x140158d62
xor ecx, ecx
cmp esi, r10d
sete cl
mov r9d, 4
sub r9d, ecx
xor ecx, 7
jmp 0x140158852
mov r9d, dword [rax + 0x1768]
test esi, esi
je 0x14015896a
cmp esi, ebp
jne 0x140158a20
mov edi, ebx
jmp 0x140158b5d
movzx ebx, word [rax + 0x1764]
cmp edi, 9
jg 0x140158aad
movzx r14d, word [rax + 0xb3a]
movzx ebp, word [rax + 0xb38]
mov r15d, ebp
mov ecx, r9d
shl r15d, cl
mov ecx, reloc.WS2_32.dll_recv
sub ecx, r14d
or ebx, r15d
cmp r9d, ecx
jle 0x140158c6e
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], bl
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov ebx, dword [rax + 0x28]
lea r15d, [rbx + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + rbx], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
add r9d, r14d
add r9d, 0xfffffff0
mov ebx, ebp
mov dword [rax + 0x1768], r9d
add edi, 0xfffe
cmp r9d, 0xe
jge 0x140158c88
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
add r9d, 3
jmp 0x140158d50
mov ecx, esi
movzx ebx, word [rax + rcx*4 + 0xaf6]
mov r15d, reloc.WS2_32.dll_recv
sub r15d, ebx
movzx ebp, word [rax + rcx*4 + 0xaf4]
mov r14d, ebp
mov ecx, r9d
shl r14d, cl
or r14w, word [rax + 0x1764]
mov word [rax + 0x1764], r14w
cmp r9d, r15d
jle 0x140158b53
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], r14b
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov r14d, dword [rax + 0x28]
lea r15d, [r14 + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + r14], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, ebx
add r9d, 0xfffffff0
jmp 0x140158b56
movzx r14d, word [rax + 0xb3e]
movzx ebp, word [rax + 0xb3c]
mov r15d, ebp
mov ecx, r9d
shl r15d, cl
mov ecx, reloc.WS2_32.dll_recv
sub ecx, r14d
or ebx, r15d
cmp r9d, ecx
jle 0x140158cdf
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], bl
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov ebx, dword [rax + 0x28]
lea r15d, [rbx + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + rbx], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
add r9d, r14d
add r9d, 0xfffffff0
mov ebx, ebp
mov dword [rax + 0x1768], r9d
add edi, 0xfff6
cmp r9d, 0xa
jge 0x140158cf9
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
add r9d, 7
jmp 0x140158d50
add r9d, ebx
mov dword [rax + 0x1768], r9d
movzx r14d, word [rax + 0xb36]
mov r15d, reloc.WS2_32.dll_recv
movzx ebp, word [rax + 0xb34]
mov ebx, ebp
mov ecx, r9d
shl ebx, cl
sub r15d, r14d
or bx, word [rax + 0x1764]
cmp r9d, r15d
jle 0x140158bfe
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], bl
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov ebx, dword [rax + 0x28]
lea r15d, [rbx + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + rbx], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
add r9d, r14d
add r9d, 0xfffffff0
mov ebx, ebp
mov dword [rax + 0x1768], r9d
add edi, 0xfffd
cmp r9d, 0xf
jge 0x140158c14
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
add r9d, 2
jmp 0x140158d50
add r9d, r14d
mov dword [rax + 0x1768], r9d
add edi, 0xfffd
cmp r9d, 0xf
jl 0x140158be7
movzx ebp, di
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea edi, [r9 + 1]
mov dword [rax + 0x28], edi
mov byte [rcx + r9], bl
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov edi, dword [rax + 0x28]
lea ebx, [rdi + 1]
mov dword [rax + 0x28], ebx
mov byte [r9 + rdi], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, 0xfffffff2
jmp 0x140158d50
add r9d, r14d
mov dword [rax + 0x1768], r9d
add edi, 0xfffe
cmp r9d, 0xe
jl 0x140158a09
movzx ebp, di
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea edi, [r9 + 1]
mov dword [rax + 0x28], edi
mov byte [rcx + r9], bl
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov edi, dword [rax + 0x28]
lea ebx, [rdi + 1]
mov dword [rax + 0x28], ebx
mov byte [r9 + rdi], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, 0xfffffff3
jmp 0x140158d50
add r9d, r14d
mov dword [rax + 0x1768], r9d
add edi, 0xfff6
cmp r9d, 0xa
jl 0x140158b3c
movzx ebp, di
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea edi, [r9 + 1]
mov dword [rax + 0x28], edi
mov byte [rcx + r9], bl
movzx ecx, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov edi, dword [rax + 0x28]
lea ebx, [rdi + 1]
mov dword [rax + 0x28], ebx
mov byte [r9 + rdi], cl
mov r9d, dword [rax + 0x1768]
mov cl, reloc.WS2_32.dll_recv
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, 0xfffffff7
nop
mov dword [rax + 0x1768], r9d
xor ebx, ebx
test r10d, r10d
jne 0x140158936
mov ecx, 0x8a
mov r9d, 3
jmp 0x140158852
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret