Function at 0x180002c40
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
movzx r12d, byte [rdx + 0x11e7]
mov r15, rdx
mov eax, 0x10b7
mov r11, rcx
cdq
idiv dword [0x180044ae8]
movzx r8d, byte [r15]
movsxd r13, eax
movsxd rax, dword [0x180044aec]
movzx r9d, byte [r8 + r15]
movzx r10d, word [rcx + rax*2]
add r10d, r9d
mov r9d, dword [0x180044aa4]
mov edi, r10d
movzx r10d, byte [0x180044af0]
mov qword [rsp + 0xa8], rdi
lea ecx, [r9 + r9*2]
movsxd rdx, ecx
movzx ecx, word [0x180044a94]
movzx r8d, word [r11 + rdx*2]
sub r8d, ecx
movsxd rbx, r8d
mov qword [rsp + 0xa0], rbx
movzx ecx, byte [rbx + 0xc0]
cmp byte [r10 + r15], cl
jne 0x180002cf5
movsxd r8, dword [r13]
lea ecx, [rax*4 + 0x14]
movsxd rdx, ecx
movzx ecx, byte [rdx + rbx]
cmp byte [r8 + r15], cl
jae 0x180002cf5
movzx ecx, word [r11]
cmp word [r11 + rcx*2], 0x7a
jb 0x180002d30
dec r9d
xor edx, edx
mov dword [0x180044aa4], r9d
movsxd rax, r9d
sub r10b, byte [rax + rbx]
mov byte [rax + rbx], r10b
mov eax, dword [r13]
shl eax, 2
movsxd rcx, eax
mov eax, 0x2519
div qword [rdi + rcx*8]
mov rcx, rax
mov eax, dword [0x180044aec]
sub ecx, eax
mov dword [0x180044aa4], ecx
movsxd rcx, eax
dec eax
movsxd r9, dword [r13 + rcx*4]
mov dword [0x180044aec], eax
cmp r9, r12
jb 0x180002da8
nop word [rax + rax]
add eax, 0xa
inc r9d
movsxd rcx, eax
mov eax, 0x896
movzx r8d, byte [rcx + r15]
movzx ecx, byte [r15 + 0x16be]
sub eax, ecx
cdq
idiv r8d
movsxd rax, edx
and r12, rax
movsxd rax, dword [r13]
lea rdx, [rax*4]
movzx eax, word [0x180044a94]
imul ecx, eax, 0x2ca
movsxd rax, r9d
sub ecx, dword [rdx + r13]
mov dword [rdx + r13], ecx
cmp rax, r12
jb 0x180002da8
mov eax, dword [0x180044aec]
jmp 0x180002d50
movzx edx, word [r11]
mov rax, qword [0x180044ad8]
mov r10, qword [rsp + 0xa8]
mov ecx, dword [rax + 0xea28]
mov dword [r13 + rdx*4], ecx
movzx eax, word [r11]
movsxd rbp, dword [0x180044aa0]
movzx r8d, word [r11 + rax*8]
mov eax, dword [0x180044aec]
dec eax
mov dword [0x180044aec], eax
lea eax, [rax + rax*2]
movsxd rdx, eax
movzx eax, byte [rbx]
mov r9, qword [rdi + rdx*8]
xor edx, edx
movzx ecx, byte [rax + r15]
movsxd rax, dword [r13]
imul r9, rcx
movzx ecx, byte [rax + rbx]
imul ecx, dword [0x180044aa4]
movzx eax, byte [r15]
movsxd r14, ecx
movzx ecx, byte [rbx + rax*4]
movzx eax, byte [r15 + 0x1b78]
div ecx
xor edx, edx
movsxd rsi, eax
movzx eax, word [r11]
movzx edi, word [r11 + rax*2]
mov rax, qword [0x180044af8]
dec rax
mov qword [0x180044af8], rax
movzx ebx, byte [rbx + 0x1691]
xor rbx, rax
mov rax, qword [rsp + 0xa0]
movzx ecx, byte [rax]
mov eax, 0x16e5
div qword [r10 + rcx*8]
movsxd rax, dword [r13]
movzx ecx, byte [0x180044af0]
mov r11, rdx
xor edx, edx
movsxd r10, dword [r13 + rax*4]
mov eax, r8d
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], r11
div ecx
mov qword [rsp + 0x40], rbx
mov rdx, r12
mov qword [rsp + 0x38], rdi
mov r8d, eax
mov qword [rsp + 0x30], rsi
mov ecx, 0x185
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], r14
call fcn.180010520
mov dword [0x180044aa0], eax
movzx eax, byte [0x180044a96]
movsxd rdx, dword [r13]
or al, 0x6a
movzx ecx, al
movzx eax, byte [r15 + 0x1d44]
imul eax, ecx
add byte [rdx + r15], al
inc dword [0x180044aec]
dec dword [r13]
movsxd r8, dword [r13]
movzx ecx, byte [r15]
mov rax, qword [rsp + 0xa0]
mov r9d, dword [r13 + r8*4]
lea r10, [rcx*4]
movzx edx, byte [rax]
lea ecx, [r8*4 + 0x1a]
mov rax, qword [rsp + 0xa8]
shl rdx, 5
imul r9d, dword [rdx + rax]
movsxd rdx, ecx
add r9d, dword [r13 + rdx*4]
sub r9d, dword [r10 + r13]
mov dword [r10 + r13], r9d
movsxd rax, dword [0x180044aec]
mov rbx, qword [rsp + 0xb0]
mov eax, dword [r13 + rax*4 - 4]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret