Function at 0x18003bea0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov dword [rsp], 0
mov dword [rsp + 0x10], 0
mov dword [rsp + 0xc], 0
mov dword [rsp + 8], 0
mov dword [rsp + 8], 0
jmp 0x18003bee7
mov eax, dword [rsp + 8]
add eax, 1
mov dword [rsp + 8], eax
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 8], eax
jae 0x18003c2f0
mov eax, dword [rsp]
add eax, 1
cdq
idiv dword [0x180061108]
mov dword [rsp], edx
movsxd rcx, dword [rsp]
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x10]
add eax, ecx
cdq
idiv dword [0x180061108]
mov dword [rsp + 0x10], edx
movsxd rcx, dword [rsp]
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + rcx]
mov byte [rsp + 4], al
mov ecx, dword [0x18005c5fc]
mov eax, dword [rsp + 0x10]
sub eax, ecx
add eax, dword [0x18005c5f8]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c600]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c5f8]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c600]
add eax, dword [0x18005c600]
movsxd r8, eax
mov ecx, dword [0x18005c5f8]
mov eax, dword [rsp]
add eax, ecx
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
add eax, dword [0x18005c5f8]
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
add eax, dword [0x18005c5f8]
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
movsxd rdx, eax
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + r8]
mov byte [rcx + rdx], al
mov ecx, dword [0x18005c5f8]
mov eax, dword [rsp + 0x10]
add eax, ecx
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
add eax, dword [0x18005c5f8]
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
add eax, dword [0x18005c5f8]
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c5f8]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c600]
add eax, dword [0x18005c600]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c5f8]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c600]
add eax, dword [0x18005c600]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c5f8]
add eax, dword [0x18005c600]
sub eax, dword [0x18005c600]
add eax, dword [0x18005c600]
add eax, dword [0x18005c600]
movsxd rdx, eax
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rsp + 4]
mov byte [rcx + rdx], al
mov eax, dword [0x18005c5fc]
mov edx, dword [rsp]
sub edx, eax
add edx, dword [0x18005c5f8]
add edx, dword [0x18005c600]
sub edx, dword [0x18005c600]
add edx, dword [0x18005c600]
mov eax, dword [0x18005c600]
imul eax, dword [0x18005c600]
imul eax, dword [0x18005c5f8]
mov ecx, dword [0x18005c5f8]
add ecx, edx
add eax, ecx
mov ecx, dword [0x18005c5f8]
imul ecx, dword [0x18005c5f8]
add eax, ecx
sub eax, dword [0x18005c5fc]
add eax, dword [0x18005c600]
movsxd rcx, eax
mov rax, qword [rsp + 0x30]
movzx edx, byte [rax + rcx]
mov ecx, dword [0x18005c5fc]
mov eax, dword [rsp + 0x10]
add eax, ecx
mov ecx, dword [0x18005c5fc]
imul ecx, dword [0x18005c5f8]
sub eax, ecx
sub eax, dword [0x18005c5f8]
sub eax, dword [0x18005c5f8]
add eax, dword [0x18005c5f8]
sub eax, dword [0x18005c600]
sub eax, dword [0x18005c600]
mov ecx, dword [0x18005c5fc]
imul ecx, dword [0x18005c600]
imul ecx, dword [0x18005c600]
imul ecx, dword [0x18005c600]
imul ecx, dword [0x18005c600]
add eax, ecx
movsxd rcx, eax
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax + rcx]
mov eax, edx
add eax, ecx
cdq
idiv dword [0x180061108]
mov dword [rsp + 0xc], edx
mov eax, dword [0x18005c600]
imul eax, dword [0x18005c5f8]
mov edx, dword [rsp + 8]
add edx, eax
mov eax, dword [0x18005c600]
imul eax, dword [0x18005c5f8]
add edx, eax
sub edx, dword [0x18005c600]
mov eax, dword [0x18005c600]
imul eax, dword [0x18005c600]
add edx, eax
mov eax, dword [0x18005c600]
imul eax, dword [0x18005c600]
imul eax, dword [0x18005c5fc]
imul eax, dword [0x18005c5fc]
mov ecx, dword [0x18005c5fc]
add ecx, edx
add eax, ecx
sub eax, dword [0x18005c600]
mov r8d, eax
mov eax, dword [0x18005c5fc]
mov edx, dword [rsp + 0xc]
sub edx, eax
add edx, dword [0x18005c5f8]
sub edx, dword [0x18005c600]
add edx, dword [0x18005c600]
sub edx, dword [0x18005c5fc]
mov eax, dword [0x18005c5fc]
imul eax, dword [0x18005c5f8]
mov ecx, dword [0x18005c600]
add ecx, edx
add eax, ecx
movsxd rcx, eax
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax + rcx]
mov rax, qword [rsp + 0x38]
movzx r10d, byte [rax + r8]
xor r10d, ecx
mov r9d, dword [0x18005c600]
imul r9d, dword [0x18005c600]
imul r9d, dword [0x18005c5fc]
imul r9d, dword [0x18005c5fc]
mov r8d, dword [0x18005c600]
imul r8d, dword [0x18005c600]
mov edx, dword [0x18005c600]
imul edx, dword [0x18005c5f8]
mov ecx, dword [0x18005c600]
imul ecx, dword [0x18005c5f8]
mov eax, dword [rsp + 8]
add eax, ecx
add eax, edx
sub eax, dword [0x18005c600]
mov ecx, r8d
add ecx, dword [0x18005c5fc]
add ecx, eax
mov eax, r9d
add eax, ecx
sub eax, dword [0x18005c600]
mov ecx, eax
mov rax, qword [rsp + 0x38]
mov byte [rax + rcx], r10b
jmp 0x18003bedc
add rsp, 0x28
ret