Function at 0x18009dc40
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0x80], xmm6
mov qword [rsp + 0x60], r9
mov rsi, qword [rsp + 0x120]
mov rax, qword [0x180127a40]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x74], 0
test edx, edx
jle 0x18009e0c0
movdqa xmm6, xmm2
mov r15d, edx
mov rbx, rcx
mov ebp, edx
cmp edx, 8
jae 0x18009dcb2
xor eax, eax
xor ecx, ecx
jmp 0x18009dd96
mov eax, ebp
and eax, 0xfffffff8
mov ecx, ebp
shr ecx, 3
imul rcx, rcx, 0x70
pxor xmm0, xmm0
xor edx, edx
movdqa xmm2, xmmword [0x180109030]
movdqa xmm3, xmmword [0x180109040]
pxor xmm1, xmm1
nop word [rax + rax]
movzx r8d, byte [rbx + rdx + 0xc]
movzx r9d, byte [rbx + rdx + 0x28]
movzx r10d, byte [rbx + rdx + 0x36]
shl r10d, 8
or r10d, r9d
movzx r9d, byte [rbx + rdx + 0x1a]
shl r9d, 8
or r9d, r8d
movd xmm4, r9d
pinsrw xmm4, r10d, 1
movzx r8d, byte [rbx + rdx + 0x44]
movzx r9d, byte [rbx + rdx + 0x60]
movzx r10d, byte [rbx + rdx + 0x6e]
shl r10d, 8
or r10d, r9d
movzx r9d, byte [rbx + rdx + 0x52]
shl r9d, 8
or r9d, r8d
movd xmm5, r9d
pinsrw xmm5, r10d, 1
pcmpeqb xmm4, xmm2
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm0, xmm4
pcmpeqb xmm5, xmm2
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm1, xmm5
add rdx, 0x70
cmp rcx, rdx
jne 0x18009dce0
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ecx, xmm1
cmp rax, rbp
je 0x18009ddc6
lea r8, [rax + rax]
mov rdx, rbp
sub rdx, rax
shl rax, 4
sub rax, r8
add rax, rbx
add rax, 0xc
nop
xor r8d, r8d
cmp byte [rax], 1
sete r8b
add ecx, r8d
add rax, 0xe
dec rdx
jne 0x18009ddb0
mov dword [rsi], ecx
test ecx, ecx
je 0x18009e0c6
mov ecx, ecx
shl rcx, 2
call fcn.180045410
mov rcx, qword [rsp + 0x60]
mov qword [rcx], rax
test rax, rax
je 0x18009e0c0
mulss xmm6, xmm6
lea rax, [rbp*2]
shl rbp, 4
sub rbp, rax
xor eax, eax
mov r12b, 1
lea rdi, [0x18010919c]
xor esi, esi
xor r14d, r14d
mov dword [rsp + 0x6c], r15d
jmp 0x18009de4c
mov eax, dword [rsp + 0x74]
mov r15d, dword [rsp + 0x6c]
sub eax, esi
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx]
movsxd rdx, r13d
mov dword [rcx + rdx*4], eax
mov al, 1
test byte [rsp + 0x70], 1
mov r12d, 0
je 0x18009e0c9
test al, 1
je 0x18009de6a
movsxd rcx, dword [rsp + 0x74]
shl rcx, 3
call fcn.180045410
mov r14, rax
test rax, rax
je 0x18009e09d
mov dword [rsp + 0x70], r12d
mov dword [rsp + 0x74], 0
test r15d, r15d
jle 0x18009e090
xorps xmm7, xmm7
mov r13d, 0xffffffff
xor r15d, r15d
jmp 0x18009df59
movsx eax, word [rbx + r15 + 2]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movsx eax, word [rbx + r15]
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
movsx eax, word [rbx + r15 + 0xa]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movsx eax, word [rbx + r15 + 8]
xorps xmm4, xmm4
cvtsi2ss xmm4, eax
movsx eax, word [rbx + r15 + 6]
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
movsx eax, word [rbx + r15 + 4]
xorps xmm8, xmm8
cvtsi2ss xmm8, eax
movaps xmm3, xmm7
shufps xmm3, xmm7, 0x55
movss dword [rsp + 0x50], xmm6
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x40], xmm1
movss dword [rsp + 0x38], xmm2
movss dword [rsp + 0x30], xmm4
movss dword [rsp + 0x28], xmm5
movss dword [rsp + 0x20], xmm8
mov dword [rsp + 0x58], 0
mov rcx, r14
lea rdx, [rsp + 0x74]
movaps xmm2, xmm7
call fcn.18009e6c0
movd xmm0, dword [rbx + r15]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm7, xmm0
add r15, 0xe
cmp rbp, r15
je 0x18009de20
movzx eax, byte [rbx + r15 + 0xc]
dec eax
cmp eax, 3
ja case.default.0x18009df6d
movsxd rax, dword [rdi + rax*4]
add rax, rdi
jmp rax
mov r12d, dword [rsp + 0x74]
test r13d, r13d
js 0x18009df90
sub r12d, esi
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
mov ecx, r13d
mov dword [rax + rcx*4], r12d
mov r12d, dword [rsp + 0x74]
inc r13d
movd xmm0, dword [rbx + r15]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm7, xmm0
movaps xmm3, xmm7
shufps xmm3, xmm7, 0x55
lea eax, [r12 + 1]
mov dword [rsp + 0x74], eax
mov rcx, r14
mov edx, r12d
movaps xmm2, xmm7
call fcn.18009e3c0
mov esi, r12d
jmp case.default.0x18009df6d
movd xmm0, dword [rbx + r15]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm7, xmm0
movaps xmm3, xmm7
shufps xmm3, xmm7, 0x55
mov edx, dword [rsp + 0x74]
lea eax, [rdx + 1]
mov dword [rsp + 0x74], eax
mov rcx, r14
movaps xmm2, xmm7
call fcn.18009e3c0
jmp case.default.0x18009df6d
movsx eax, word [rbx + r15 + 2]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movsx eax, word [rbx + r15]
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
movsx eax, word [rbx + r15 + 6]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movsx eax, word [rbx + r15 + 4]
xorps xmm4, xmm4
cvtsi2ss xmm4, eax
movaps xmm3, xmm7
shufps xmm3, xmm7, 0x55
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x30], xmm1
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x20], xmm4
mov dword [rsp + 0x48], 0
mov rcx, r14
lea rdx, [rsp + 0x74]
movaps xmm2, xmm7
call fcn.18009e3e0
jmp 0x18009df39
xor eax, eax
mov r13d, 0xffffffff
jmp 0x18009de29
xor ecx, ecx
call fcn.1800454e0
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsi]
call fcn.1800454e0
mov qword [rsi], 0
mov rsi, qword [rsp + 0x120]
mov dword [rsi], 0
xor r14d, r14d
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1800cf260
mov rax, r14
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret