Function at 0x140004d30
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov r8, rcx
movzx r11d, dl
mov ecx, dword [rcx + 0x8ec]
xor esi, esi
imul eax, r11d, 7
mov r9d, r11d
lea edx, [r11 + rcx]
mov dword [r8 + 0x8ec], edx
sub eax, ecx
mov ecx, dword [r8 + 0x8f8]
add dword [r8 + 0x8f0], eax
movzx eax, byte [rcx + r8 + 0x8e4]
sub edx, eax
mov dword [r8 + 0x8ec], edx
mov byte [rcx + r8 + 0x8e4], r11b
inc dword [r8 + 0x8f8]
cmp dword [r8 + 0x8f8], 7
jne 0x140004da2
mov dword [r8 + 0x8f8], esi
mov ecx, dword [r8 + 0x8f4]
lea rdi, [0x140000000]
shl ecx, 5
mov eax, 0xaaaaaaab
xor ecx, r9d
and r11d, 0x3f
mov dword [r8 + 0x8f4], ecx
mov ebx, dword [r8 + 0x8f0]
mov r9d, dword [r8 + 0x1c]
inc ebx
add ebx, dword [r8 + 0x8ec]
add ebx, ecx
mul ebx
mov r10d, edx
mov edx, dword [r8 + 0x18]
shr r10d, 1
cmp edx, r9d
jae 0x140004e35
nop dword [rax]
mov eax, edx
inc edx
lea rcx, [rax + rax*8]
movzx eax, byte [r8 + rcx*8 + 0x71]
shl rax, 6
add rax, r11
movzx eax, byte [rax + rdi + 0x4fc20]
mov byte [r8 + rcx*8 + 0x71], al
movzx eax, byte [r8 + rcx*8 + 0x72]
shl rax, 6
add rax, r11
movzx eax, byte [rax + rdi + 0x4fc20]
mov byte [r8 + rcx*8 + 0x72], al
mov r9d, dword [r8 + 0x1c]
cmp edx, r9d
jb 0x140004df0
test byte [r8 + 0x24], 1
je 0x140004e5a
movzx eax, byte [r8 + 0x8fc]
shl rax, 6
add rax, r11
movzx eax, byte [rax + rdi + 0x4fc20]
mov byte [r8 + 0x8fc], al
test ebx, ebx
je 0x140004fbc
test dword [r8 + 0x28], r10d
jne 0x140004fbc
lea eax, [r10 + r10*2]
cmp ebx, eax
jne 0x140004fbc
mov edx, dword [r8 + 0x18]
mov ecx, edx
shr r10d, cl
mov eax, edx
lea rcx, [rax + rax*8]
lea r11, [rcx*8]
cmp dword [r11 + r8 + 0x2c], esi
jne 0x140004ef0
lea eax, [r9 - 1]
lea rax, [rax + rax*8]
lea rcx, [r8 + rax*8]
cmp r9d, dword [r8 + 0x20]
ja 0x140004ed0
movzx eax, byte [rcx + 0x71]
mov byte [rcx + 0xb9], al
movzx eax, byte [rcx + 0x72]
mov byte [rcx + 0xba], al
mov byte [rcx + 0x78], sil
mov byte [rcx + 0xb8], sil
mov dword [rcx + 0x74], esi
inc dword [r8 + 0x1c]
jmp 0x140004ef0
cmp r9d, 0x1f
jne 0x140004ef0
mov eax, dword [r8 + 0x24]
test al, 1
jne 0x140004ef0
or eax, 1
mov dword [r8 + 0x24], eax
movzx eax, byte [rcx + 0x71]
mov byte [r8 + 0x8fc], al
movzx eax, byte [r11 + r8 + 0x71]
mov ecx, dword [r11 + r8 + 0x2c]
add rcx, r11
movzx eax, byte [rax + rdi + 0x60fd0]
mov byte [rcx + r8 + 0x30], al
movzx eax, byte [r11 + r8 + 0x72]
movzx eax, byte [rax + rdi + 0x60fd0]
mov byte [r11 + r8 + 0x70], al
mov eax, dword [r11 + r8 + 0x2c]
cmp eax, 0x3f
jae 0x140004f54
inc eax
mov dword [r11 + r8 + 0x2c], eax
mov ecx, eax
add rcx, r11
mov byte [rcx + r8 + 0x30], sil
cmp dword [r11 + r8 + 0x2c], 0x20
mov byte [r11 + r8 + 0x71], 0x27
jae 0x140004fa4
mov byte [r11 + r8 + 0x72], 0x27
mov byte [r11 + r8 + 0x70], sil
jmp 0x140004fa4
mov eax, dword [r8 + 0x1c]
mov ecx, dword [r8 + 0x18]
sub eax, ecx
cmp eax, 2
jb 0x140004fa4
test byte [r8 + 0x24], 2
lea rax, [r8 + 8]
mov r11, qword [r8 + 0x10]
cmove rax, r8
cmp r11, qword [rax]
jae 0x140004fa4
lea r9d, [rcx + 1]
lea rcx, [r9 + r9*8]
cmp dword [r8 + rcx*8 + 0x2c], 0x20
jb 0x140004fa4
lea rax, [r11 + r11]
mov dword [r8 + 0x18], r9d
mov qword [r8 + 0x10], rax
mov eax, dword [r8 + 0x28]
lea eax, [rax*2 + 1]
mov dword [r8 + 0x28], eax
test r10b, 1
jne 0x140004fbc
mov r9d, dword [r8 + 0x1c]
inc edx
shr r10d, 1
cmp edx, r9d
jb 0x140004e81
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ret