Function at 0x4c5f10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4c62cc
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 0x4c5f66
dec rcx
mov r9, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
add rax, rcx
mov rcx, r9
test rcx, rcx
jle 0x4c6271
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 0x4c61d8
cmp r9b, 0x22
je 0x4c6046
cmp r9b, 0x5c
jne 0x4c5faf
inc rdi
cmp rcx, 1
jae 0x4c5f4f
jmp 0x4c62c5
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
call fcn.004c5e40
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
lea rbx, [rcx + 1]
cmp rbx, rdx
ja 0x4c6003
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 0x4c5fa4
mov qword [rsp + 0x50], rcx
lea rsi, [0x00633fa0]
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.00440670
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 0x4c5fdf
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.004c5e40
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 0x4c6171
movzx ebx, byte [rsp + 0x46]
test bl, bl
je 0x4c6165
mov rsi, qword [rsp + 0x78]
cmp rsi, 1
jle 0x4c615e
mov rdi, qword [rsp + 0x70]
cmp byte [rdi + 1], 0x22
jne 0x4c6154
lea r8, [rcx + 1]
cmp r8, rdx
ja 0x4c6107
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 0x4c5fa4
lea rbx, [0x00633fa0]
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.00440670
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 0x4c60d4
mov rcx, rdi
mov r8, qword [rsp + 0x50]
jmp 0x4c60e5
mov rdi, qword [rsp + 0x70]
jmp 0x4c6154
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
jmp 0x4c6154
lea rbx, [rcx + 1]
cmp rbx, rdx
ja 0x4c619a
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 0x4c60e8
lea rsi, [0x00633fa0]
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.00440670
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 0x4c617a
cmp r9b, 9
jne 0x4c6262
test r8b, r8b
jne 0x4c5faf
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
call fcn.004c5e40
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 0x4c61e2
jmp 0x4c5faf
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
call fcn.004c5e40
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.0042cd80
ud2
call fcn.004555d0
jmp fcn.004c5f10