Function at 0x14017c5e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movdqa xmmword [rsp + 0x40], xmm6
mov r12, qword [rsp + 0xc0]
test r12, r12
je 0x14017d050
mov r10d, edx
mov r14, rcx
movzx ebp, byte [r9 + 0x19]
movzx ecx, bpl
cmp r12, 1
jne 0x14017c637
lea rsi, [r9 + 0x1a]
movzx ebx, byte [r9 + 0x1a]
mov r13d, ebx
test r10w, r10w
jne 0x14017ce05
jmp 0x14017cfdd
movabs rax, 0x7ffffffffffffff
lea r13, [r12 + rax]
and rax, r13
cmp rax, 8
jae 0x14017c655
xor edi, edi
jmp 0x14017c9af
cmp rax, 0x20
jae 0x14017c662
xor edi, edi
jmp 0x14017c8b8
mov r11d, r13d
and r11d, 0x1f
mov rdi, rax
sub rdi, r11
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rbx, [r9 + 0x419]
mov r15, rdi
movdqa xmm1, xmm0
nop
movzx esi, byte [rbx - 0x200]
movd xmm2, esi
movzx esi, byte [rbx - 0x220]
movd xmm3, esi
punpcklbw xmm3, xmm2
movzx esi, byte [rbx - 0x240]
movd xmm2, esi
movzx esi, byte [rbx - 0x260]
movd xmm4, esi
punpcklbw xmm4, xmm2
punpcklwd xmm4, xmm3
movzx esi, byte [rbx - 0x280]
movd xmm2, esi
movzx esi, byte [rbx - 0x2a0]
movd xmm3, esi
punpcklbw xmm3, xmm2
movzx esi, byte [rbx - 0x2c0]
movd xmm5, esi
movzx esi, byte [rbx - 0x2e0]
movd xmm2, esi
punpcklbw xmm2, xmm5
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm4
movzx esi, byte [rbx - 0x300]
movd xmm3, esi
movzx esi, byte [rbx - 0x320]
movd xmm4, esi
punpcklbw xmm4, xmm3
movzx esi, byte [rbx - 0x340]
movd xmm3, esi
movzx esi, byte [rbx - 0x360]
movd xmm5, esi
punpcklbw xmm5, xmm3
punpcklwd xmm5, xmm4
movzx esi, byte [rbx - 0x380]
movd xmm3, esi
movzx esi, byte [rbx - 0x3a0]
movd xmm4, esi
punpcklbw xmm4, xmm3
movzx esi, byte [rbx - 0x3c0]
movd xmm3, esi
movzx esi, byte [rbx - 0x3e0]
movd xmm6, esi
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm4
punpckldq xmm6, xmm5
punpcklqdq xmm6, xmm2
pmaxub xmm0, xmm6
movzx esi, byte [rbx]
movd xmm2, esi
movzx esi, byte [rbx - 0x20]
movd xmm3, esi
punpcklbw xmm3, xmm2
movzx esi, byte [rbx - 0x40]
movd xmm2, esi
movzx esi, byte [rbx - 0x60]
movd xmm4, esi
punpcklbw xmm4, xmm2
punpcklwd xmm4, xmm3
movzx esi, byte [rbx - 0x80]
movd xmm2, esi
movzx esi, byte [rbx - 0xa0]
movd xmm3, esi
punpcklbw xmm3, xmm2
movzx esi, byte [rbx - 0xc0]
movd xmm5, esi
movzx esi, byte [rbx - 0xe0]
movd xmm2, esi
punpcklbw xmm2, xmm5
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm4
movzx esi, byte [rbx - 0x100]
movd xmm3, esi
movzx esi, byte [rbx - 0x120]
movd xmm4, esi
punpcklbw xmm4, xmm3
movzx esi, byte [rbx - 0x140]
movd xmm3, esi
movzx esi, byte [rbx - 0x160]
movd xmm5, esi
punpcklbw xmm5, xmm3
punpcklwd xmm5, xmm4
movzx esi, byte [rbx - 0x180]
movd xmm3, esi
movzx esi, byte [rbx - 0x1a0]
movd xmm4, esi
punpcklbw xmm4, xmm3
movzx esi, byte [rbx - 0x1c0]
movd xmm3, esi
movzx esi, byte [rbx - 0x1e0]
movd xmm6, esi
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm4
punpckldq xmm6, xmm5
punpcklqdq xmm6, xmm2
pmaxub xmm1, xmm6
add rbx, 0x400
add r15, 0xffffffffffffffe0
jne 0x14017c690
pmaxub xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pmaxub xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pmaxub xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pmaxub xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pmaxub xmm0, xmm1
movd ebp, xmm0
test r11, r11
je 0x14017c9f4
cmp r11d, 8
jb 0x14017c9af
mov qword [rsp + 0x30], r8
mov r8, r14
mov r11, rdi
mov rdx, r13
mov ebx, r13d
and ebx, 7
mov rdi, rax
sub rdi, rbx
movzx esi, bpl
movd xmm0, esi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
mov rsi, r11
shl rsi, 5
add rsi, r9
add rsi, 0x119
add r11, rbx
sub r11, rax
nop word [rax + rax]
movzx ebp, byte [rsi - 0xe0]
movzx r14d, byte [rsi - 0xa0]
movzx r15d, byte [rsi - 0x60]
movzx r12d, byte [rsi - 0x20]
movzx r13d, byte [rsi - 0x80]
shl r13d, 8
or r13d, r14d
movzx r14d, byte [rsi - 0xc0]
shl r14d, 8
or r14d, ebp
movd xmm1, r14d
pinsrw xmm1, r13d, 1
movzx ebp, byte [rsi - 0x40]
shl ebp, 8
or ebp, r15d
pinsrw xmm1, ebp, 2
movzx ebp, byte [rsi]
shl ebp, 8
or ebp, r12d
pinsrw xmm1, ebp, 3
pmaxub xmm0, xmm1
add rsi, 0x100
add r11, 8
jne 0x14017c900
pshufd xmm1, xmm0, 0x55
pmaxub xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pmaxub xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pmaxub xmm1, xmm0
movd ebp, xmm1
mov r11d, ebp
test rbx, rbx
mov r14, r8
mov r12, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x30]
mov r13, rdx
je 0x14017c9db
mov rsi, rax
sub rsi, rdi
shl rdi, 5
add rdi, r9
add rdi, 0x39
movzx r11d, byte [rdi]
movzx ebx, bpl
cmp bl, r11b
cmova r11d, ebx
add rdi, 0x20
mov ebp, r11d
dec rsi
jne 0x14017c9c0
lea rsi, [r9 + 0x1a]
movzx ebx, byte [r9 + 0x1a]
cmp rax, 8
jae 0x14017ca06
xor edi, edi
mov r13d, ebx
jmp 0x14017cdc6
mov r11d, ebp
lea rsi, [r9 + 0x1a]
movzx ebx, byte [r9 + 0x1a]
cmp rax, 8
jb 0x14017c9ea
cmp rax, 0x20
jae 0x14017ca19
mov r15, r13
xor edi, edi
mov r13d, ebx
jmp 0x14017ccc5
mov rdx, r14
mov r15, r13
mov r12d, r13d
and r12d, 0x1f
mov rdi, rax
sub rdi, r12
movzx ebp, bl
movd xmm0, ebp
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r13, [r9 + 0x41a]
mov rbp, rdi
movdqa xmm1, xmm0
nop
movzx r14d, byte [r13 - 0x200]
movd xmm2, r14d
movzx r14d, byte [r13 - 0x220]
movd xmm3, r14d
punpcklbw xmm3, xmm2
movzx r14d, byte [r13 - 0x240]
movd xmm2, r14d
movzx r14d, byte [r13 - 0x260]
movd xmm4, r14d
punpcklbw xmm4, xmm2
punpcklwd xmm4, xmm3
movzx r14d, byte [r13 - 0x280]
movd xmm2, r14d
movzx r14d, byte [r13 - 0x2a0]
movd xmm3, r14d
punpcklbw xmm3, xmm2
movzx r14d, byte [r13 - 0x2c0]
movd xmm5, r14d
movzx r14d, byte [r13 - 0x2e0]
movd xmm2, r14d
punpcklbw xmm2, xmm5
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm4
movzx r14d, byte [r13 - 0x300]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x320]
movd xmm4, r14d
punpcklbw xmm4, xmm3
movzx r14d, byte [r13 - 0x340]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x360]
movd xmm5, r14d
punpcklbw xmm5, xmm3
punpcklwd xmm5, xmm4
movzx r14d, byte [r13 - 0x380]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x3a0]
movd xmm4, r14d
punpcklbw xmm4, xmm3
movzx r14d, byte [r13 - 0x3c0]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x3e0]
movd xmm6, r14d
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm4
punpckldq xmm6, xmm5
punpcklqdq xmm6, xmm2
pmaxub xmm0, xmm6
movzx r14d, byte [r13]
movd xmm2, r14d
movzx r14d, byte [r13 - 0x20]
movd xmm3, r14d
punpcklbw xmm3, xmm2
movzx r14d, byte [r13 - 0x40]
movd xmm2, r14d
movzx r14d, byte [r13 - 0x60]
movd xmm4, r14d
punpcklbw xmm4, xmm2
punpcklwd xmm4, xmm3
movzx r14d, byte [r13 - 0x80]
movd xmm2, r14d
movzx r14d, byte [r13 - 0xa0]
movd xmm3, r14d
punpcklbw xmm3, xmm2
movzx r14d, byte [r13 - 0xc0]
movd xmm5, r14d
movzx r14d, byte [r13 - 0xe0]
movd xmm2, r14d
punpcklbw xmm2, xmm5
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm4
movzx r14d, byte [r13 - 0x100]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x120]
movd xmm4, r14d
punpcklbw xmm4, xmm3
movzx r14d, byte [r13 - 0x140]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x160]
movd xmm5, r14d
punpcklbw xmm5, xmm3
punpcklwd xmm5, xmm4
movzx r14d, byte [r13 - 0x180]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x1a0]
movd xmm4, r14d
punpcklbw xmm4, xmm3
movzx r14d, byte [r13 - 0x1c0]
movd xmm3, r14d
movzx r14d, byte [r13 - 0x1e0]
movd xmm6, r14d
punpcklbw xmm6, xmm3
punpcklwd xmm6, xmm4
punpckldq xmm6, xmm5
punpcklqdq xmm6, xmm2
pmaxub xmm1, xmm6
add r13, 0x400
add rbp, 0xffffffffffffffe0
jne 0x14017ca50
pmaxub xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pmaxub xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pmaxub xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pmaxub xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pmaxub xmm0, xmm1
movd r13d, xmm0
test r12, r12
je 0x14017cfc5
cmp r12d, 8
mov r14, rdx
mov r12, qword [rsp + 0xc0]
jb 0x14017cdc6
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r14
mov r14, rdi
mov rdx, r15
and edx, 7
mov rdi, rax
sub rdi, rdx
movzx ebp, r13b
movd xmm0, ebp
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
mov r15, r14
shl r15, 5
add r15, r9
add r15, 0x11a
mov qword [rsp + 0x38], rdx
add r14, rdx
sub r14, rax
nop dword [rax + rax]
movzx ebp, byte [r15 - 0xe0]
movzx r12d, byte [r15 - 0xa0]
movzx r13d, byte [r15 - 0x60]
movzx edx, byte [r15 - 0x20]
movzx r8d, byte [r15 - 0x80]
shl r8d, 8
or r8d, r12d
movzx r12d, byte [r15 - 0xc0]
shl r12d, 8
or r12d, ebp
movd xmm1, r12d
pinsrw xmm1, r8d, 1
movzx r8d, byte [r15 - 0x40]
shl r8d, 8
or r8d, r13d
pinsrw xmm1, r8d, 2
movzx r8d, byte [r15]
shl r8d, 8
or r8d, edx
pinsrw xmm1, r8d, 3
pmaxub xmm0, xmm1
add r15, 0x100
add r14, 8
jne 0x14017cd10
pshufd xmm1, xmm0, 0x55
pmaxub xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pmaxub xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pmaxub xmm1, xmm0
movd r13d, xmm1
cmp qword [rsp + 0x38], 0
mov r14, qword [rsp + 0x28]
mov r12, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x30]
je 0x14017cdf8
sub rax, rdi
shl rdi, 5
lea rdx, [rdi + r9]
add rdx, 0x3a
nop word cs:[rax + rax]
movzx edi, r13b
movzx r13d, byte [rdx]
cmp dil, r13b
cmova r13d, edi
add rdx, 0x20
dec rax
jne 0x14017cde0
mov ebp, r11d
test r10w, r10w
je 0x14017cfdd
test bpl, bpl
je 0x14017cfdd
movzx ebp, bpl
shl ebp, 3
lea eax, [r10 - 1]
xor edx, edx
div bp
test r8w, r8w
je 0x14017cfdd
test r13b, r13b
je 0x14017cfdd
mov r11d, eax
mov qword [rsp + 0x28], r14
movzx edi, r10w
movzx r13d, r13b
shl r13d, 3
lea eax, [r8 - 1]
xor edx, edx
div r13w
mov dword [rsp + 0x38], edi
imul ecx, edi
mov r14d, dword [r9 + 8]
imul ecx, r14d
test ecx, ecx
je 0x14017cf40
mov r10d, eax
movzx r8d, r8w
dec ecx
mov eax, ecx
xor edx, edx
div ebp
mov edi, eax
inc edi
mov word [r9 + 0x10], di
movzx ecx, bl
mov dword [rsp + 0x30], r8d
imul ecx, r8d
imul ecx, r14d
test ecx, ecx
je 0x14017cf84
inc r11d
inc r10d
shl r12, 5
add r12, 0xffffffffffffffe0
xor r14d, r14d
mov r15, r9
nop word [rax + rax]
dec ecx
mov eax, ecx
xor edx, edx
div r13d
mov ebx, eax
inc ebx
mov word [r9 + r14 + 0x12], bx
movzx eax, byte [r9 + r14 + 0x19]
imul eax, r11d
mov word [r9 + r14 + 0x14], ax
movzx eax, byte [rsi]
imul eax, r10d
mov word [r9 + r14 + 0x16], ax
cmp r12, r14
je 0x14017d03b
movzx eax, byte [r9 + r14 + 0x39]
imul eax, dword [rsp + 0x38]
mov ecx, dword [r9 + r14 + 0x28]
imul eax, ecx
test eax, eax
je 0x14017cf40
mov r8, r12
lea r12, [r15 + 0x20]
dec eax
xor edx, edx
div ebp
mov edi, eax
inc edi
mov word [r9 + r14 + 0x30], di
add r15, 0x3a
movzx eax, byte [r9 + r14 + 0x3a]
imul ecx, dword [rsp + 0x30]
imul ecx, eax
add r14, 0x20
mov rsi, r15
mov r15, r12
mov r12, r8
test ecx, ecx
jne 0x14017ceb0
jmp 0x14017cf84
movzx eax, byte [0x1402f7215]
mov ecx, send
mov edx, 1
call fcn.1400a8e60
test rax, rax
je 0x14017d06a
movdqu xmm0, xmmword [0x14026bc1d]
movdqu xmmword [rax], xmm0
mov word [rax + 0x10], 0x736e
mov r14, qword [rsp + 0x28]
mov byte [r14], 0
mov word [r14 + 2], di
jmp 0x14017d00e
movzx eax, byte [0x1402f7215]
mov ecx, send
mov edx, 1
call fcn.1400a8e60
test rax, rax
je 0x14017d06a
movdqu xmm0, xmmword [0x14026bc1d]
movdqu xmmword [rax], xmm0
mov word [rax + 0x10], 0x736e
mov r14, qword [rsp + 0x28]
mov byte [r14], 0
mov word [r14 + 2], bx
jmp 0x14017d00e
mov ebp, r11d
mov r14, rdx
mov r12, qword [rsp + 0xc0]
test r10w, r10w
jne 0x14017ce05
movzx eax, byte [0x1402f7215]
mov ecx, send
mov edx, 1
call fcn.1400a8e60
test rax, rax
je 0x14017d06a
movdqu xmm0, xmmword [0x14026bc1d]
movdqu xmmword [rax], xmm0
mov word [rax + 0x10], 0x736e
mov byte [r14], 0
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], send
mov qword [r14 + 0x18], send
mov rax, r14
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rsp + 0x28]
mov word [r14 + 2], r11w
mov word [r14 + 4], r10w
mov byte [r14], 4
jmp 0x14017d022
lea rcx, [0x14026bc2f]
lea r8, [0x14026bc60]
mov edx, 0x2b
call fcn.1401fc0d0
ud2
mov ecx, 1
mov edx, send
call fcn.1401fbeb0
ud2