Function at 0x180129320
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
imul r10d, ecx, 0x9a209
lea r9, [0x1802cb8a0]
mov edi, ecx
mov eax, 0x1f
sub r10d, 0x3fe1f
sar r10d, 0x15
sub eax, r10d
imul r11d, r10d, 0xffe56cb1
movsxd rdx, eax
mov r9, qword [r9 + rdx*8]
sar r11d, 0x13
mov rax, r9
shr rax, 0x19
add r11d, ecx
mov ecx, 0x28
mov r8, r9
sub r8, rax
sub ecx, r11d
shr r8, cl
lea eax, [rdi - 2]
mov rdx, r9
shr rdx, 0x18
add rdx, r9
shr rdx, cl
lea ebx, [r8 + 1]
cmp eax, 1
mov eax, 0xcccccccd
cmovbe ebx, r8d
mul edx
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
cmp eax, ebx
jb 0x180128ffa
imul ecx, edx, 0xc28f5c29
inc r10d
xor r8d, r8d
mov eax, ecx
shr ecx, 2
shl eax, 0x1e
or eax, ecx
cmp eax, 0x28f5c28
ja 0x180128fbd
nop dword [rax]
imul ecx, eax, 0xc28f5c29
mov edx, eax
add r8d, 2
mov eax, ecx
shr ecx, 2
shl eax, 0x1e
or eax, ecx
cmp eax, 0x28f5c28
jbe 0x180128fa0
imul eax, edx, 0xcccccccd
mov ecx, eax
shr eax, 1
shl ecx, 0x1f
or ecx, eax
mov eax, r8d
or eax, 1
cmp ecx, 0x19999999
cmova eax, r8d
add eax, r10d
shl rax, 0x20
cmp ecx, 0x19999999
cmova ecx, edx
or rax, rcx
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
ret
mov ecx, 0x27
lea eax, [rdi + 0x23]
sub ecx, r11d
shr r9, cl
inc r9d
shr r9d, 1
test eax, eax
jne 0x180129020
test r9b, 1
lea ecx, [r9 - 1]
cmove ecx, r9d
jmp 0x18012902c
mov ecx, r9d
cmp r9d, ebx
jae 0x18012902c
lea ecx, [r9 + 1]
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
mov eax, r10d
shl rax, 0x20
or rax, rcx
ret
sub rsp, 0x58
movd eax, xmm0
mov edx, eax
shr eax, 0x17
and edx, 0x7fffff
movzx r8d, al
test al, al
je 0x180129358
add r8d, 0xffffff6a
test edx, edx
jne 0x180129352
mov ecx, r8d
add rsp, 0x58
jmp 0x180128ef0
bts edx, 0x17
jmp 0x18012936d
test edx, edx
jne 0x180129367
xor r10d, r10d
mov eax, r10d
add rsp, 0x58
ret
mov r8d, 0xffffff6b
mov qword [rsp + 0x70], rbx
mov ecx, 1
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rdi
movzx edi, dl
mov qword [rsp + 0x38], r12
not dil
mov qword [rsp + 0x30], r13
and dil, 1
mov qword [rsp + 0x28], r14
lea r13, [0x1802cb998]
imul r14d, r8d, 0x4d105
mov r12d, 0x40
mov qword [rsp + 0x20], r15
mov r15d, 0x20
sar r14d, 0x14
sub ecx, r14d
imul esi, ecx, 0x1a934f
movsxd rax, ecx
mov ecx, 0x3f
mov r13, qword [r13 + rax*8]
sar esi, 0x13
mov rbp, r13
add esi, r8d
lea r8d, [rdx + rdx]
sub ecx, esi
mov dword [rsp + 0x60], r8d
shr rbp, cl
mov eax, r8d
or eax, 1
mov ecx, esi
shl eax, cl
mov ecx, eax
mov rax, r13
shl rcx, 0x20
mul rcx
mov rax, rdx
shr rax, 0x20
test edx, edx
mov dword [rsp + 0x68], eax
mov rbx, rax
sete byte [rsp + 0x6c]
xor r10d, r10d
imul r11, rax, 0x51eb851f
shr r11, 0x25
imul eax, r11d, 0x64
sub ebx, eax
cmp ebx, ebp
jae 0x1801294f6
test ebx, ebx
jne 0x180129531
mov rax, qword [rsp + 0x68]
xor dil, 1
shr rax, 0x20
test dil, al
je 0x180129531
dec r11d
mov ebx, 0x64
shr ebp, 1
lea eax, [r11 + r11*4]
sub ebx, ebp
add ebx, 5
imul edx, ebx, 0x199a
movzx r9d, bl
not r9b
and r9b, 1
mov ecx, edx
shr ecx, 0x10
lea r8d, [rcx + rax*2]
cmp dx, 0x199a
jae 0x1801294bc
mov eax, dword [rsp + 0x60]
sub r15d, esi
imul rax, r13
movzx ecx, r15b
sub r12d, esi
mov rdx, rax
shr rdx, cl
movzx ecx, r12b
shr rax, cl
and al, 1
cmp al, r9b
jne 0x1801294b9
test edx, edx
sete r10b
test r8d, r10d
je 0x1801294bc
dec r8d
mov eax, r14d
shl rax, 0x20
mov ecx, r8d
or rax, rcx
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x70]
mov r15, qword [rsp + 0x20]
add rsp, 0x58
ret
ja 0x18012945c
lea r9d, [r8 - 1]
movzx eax, dil
imul r9, r13
mov ecx, r15d
mov r8d, r10d
sub ecx, esi
mov rdx, r9
shr rdx, cl
mov ecx, r12d
test edx, edx
cmove r8d, eax
sub ecx, esi
shr r9, cl
and r9b, 1
or r8b, r9b
je 0x18012945c
imul ecx, r11d, 0xc28f5c29
mov eax, ecx
shr ecx, 2
shl eax, 0x1e
or eax, ecx
cmp eax, 0x28f5c28
ja 0x18012956e
nop dword [rax]
imul ecx, eax, 0xc28f5c29
mov r11d, eax
add r10d, 2
mov eax, ecx
shr ecx, 2
shl eax, 0x1e
or eax, ecx
cmp eax, 0x28f5c28
jbe 0x180129550
imul eax, r11d, 0xcccccccd
mov ecx, eax
shr eax, 1
shl ecx, 0x1f
or ecx, eax
mov eax, r10d
cmp ecx, 0x19999999
cmovbe r11d, ecx
or eax, 1
cmp ecx, 0x19999999
mov dword [rsp + 0x68], r11d
cmova eax, r10d
inc eax
add eax, r14d
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x68]
jmp 0x1801294c9