Function at 0x4a1a50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4a1e0c
sub rsp, 0x68
mov qword [rsp + 0x60], rbp
lea rbp, [rsp + 0x60]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
xor edx, edx
xor ebx, ebx
xor esi, esi
xor edi, edi
xor r8d, r8d
jmp 0x4a1aa6
dec rcx
mov r9, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
add rax, rcx
mov rcx, r9
test rcx, rcx
jle 0x4a1db1
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x46], r8b
movzx r9d, byte [rax]
mov byte [rsp + 0x47], r9b
cmp r9b, 0x20
jbe 0x4a1d18
cmp r9b, 0x22
je 0x4a1b86
cmp r9b, 0x5c
jne 0x4a1aef
inc rdi
cmp rcx, 1
jae 0x4a1a8f
jmp 0x4a1e05
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
call fcn.004a1980
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
lea rbx, [rcx + 1]
cmp rbx, rdx
ja 0x4a1b43
movzx r9d, byte [rsp + 0x47]
mov byte [rax + rcx], r9b
mov rcx, qword [rsp + 0x78]
mov rsi, rdx
mov rdx, rax
xor edi, edi
movzx r8d, byte [rsp + 0x46]
mov rax, qword [rsp + 0x70]
jmp 0x4a1ae4
mov qword [rsp + 0x50], rcx
lea rsi, [0x004f07a0]
mov qword [rsp], rsi
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rbx
call fcn.0043f590
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea rbx, [rcx + 1]
mov rcx, qword [rsp + 0x50]
jmp 0x4a1b1f
mov qword [rsp + 0x48], rdi
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov rax, rdi
shr rdi, 0x3f
lea rcx, [rax + rdi]
sar rcx, 1
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x18], rcx
call fcn.004a1980
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
shl rbx, 1
mov rsi, qword [rsp + 0x48]
cmp rsi, rbx
jne 0x4a1cb1
movzx ebx, byte [rsp + 0x46]
test bl, bl
je 0x4a1ca5
mov rsi, qword [rsp + 0x78]
cmp rsi, 1
jle 0x4a1c9e
mov rdi, qword [rsp + 0x70]
cmp byte [rdi + 1], 0x22
jne 0x4a1c94
lea r8, [rcx + 1]
cmp r8, rdx
ja 0x4a1c47
movzx r9d, byte [rsp + 0x47]
mov byte [rax + rcx], r9b
lea rcx, [rdi + 1]
dec rsi
xor ebx, 1
xor edi, edi
mov r9, rcx
mov rcx, rsi
mov rsi, rdx
mov rdx, rax
mov rax, r9
mov r10d, ebx
mov rbx, r8
mov r8d, r10d
jmp 0x4a1ae4
lea rbx, [0x004f07a0]
mov qword [rsp], rbx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], r8
call fcn.0043f590
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea r8, [rcx + 1]
mov rcx, qword [rsp + 0x50]
movzx ebx, byte [rsp + 0x46]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
jmp 0x4a1c14
mov rcx, rdi
mov r8, qword [rsp + 0x50]
jmp 0x4a1c25
mov rdi, qword [rsp + 0x70]
jmp 0x4a1c94
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
jmp 0x4a1c94
lea rbx, [rcx + 1]
cmp rbx, rdx
ja 0x4a1cda
movzx edi, byte [rsp + 0x47]
mov byte [rax + rcx], dil
mov rsi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
mov r8, rbx
movzx ebx, byte [rsp + 0x46]
jmp 0x4a1c28
lea rsi, [0x004f07a0]
mov qword [rsp], rsi
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rbx
call fcn.0043f590
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea rbx, [rcx + 1]
mov rcx, qword [rsp + 0x50]
jmp 0x4a1cba
cmp r9b, 9
jne 0x4a1da2
test r8b, r8b
jne 0x4a1aef
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
call fcn.004a1980
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rdx
mov rax, qword [rsp + 0x78]
dec rax
mov rcx, rax
neg rax
sar rax, 0x3f
and rax, 1
mov rdx, qword [rsp + 0x70]
add rax, rdx
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rcx
mov rbp, qword [rsp + 0x60]
add rsp, 0x68
ret
cmp r9b, 0x20
je 0x4a1d22
jmp 0x4a1aef
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
call fcn.004a1980
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
mov rbp, qword [rsp + 0x60]
add rsp, 0x68
ret
call fcn.0042bf80
ud2
call fcn.00454640
jmp fcn.004a1a50