Function at 0x564020
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x564455
sub rsp, 0x30
mov qword [rsp + 0x28], rbp
lea rbp, [rsp + 0x28]
mov rax, qword [0x00896e40]
mov rcx, qword [rsp + 0x38]
cmp rcx, rax
je 0x5643fa
mov rax, qword [0x00896e10]
cmp rcx, rax
je 0x56439f
mov rax, qword [0x00896e70]
cmp rcx, rax
je 0x564344
mov rax, qword [0x00896e20]
cmp rcx, rax
je 0x5642e9
mov rax, qword [0x00896e00]
cmp rcx, rax
je 0x56428e
mov rax, qword [rcx + 0xa0]
mov rdx, qword [rsp + 0x40]
mov qword [rsp], rdx
call rax
mov rax, qword [rsp + 8]
cmp rax, 6
ja 0x564121
cmp rax, 1
je 0x564104
add rax, 0xfffffffffffffffe
cmp rax, 4
jbe 0x5640e7
mov qword [rsp + 0x48], 0
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 0
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp + 0x48], 2
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp + 0x48], 1
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
cmp rax, 0x17
je 0x56416f
cmp rax, 0x18
je 0x564152
cmp rax, 0x19
je 0x564135
jmp 0x5640ca
mov qword [rsp + 0x48], 0x10
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp + 0x48], 0x13
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 0x50]
mov rdx, qword [rsp + 0x40]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
mov rax, qword [rax + 0xa0]
mov rcx, qword [rsp + 0x10]
mov qword [rsp], rcx
call rax
mov rax, qword [rsp + 8]
cmp rax, 8
je 0x564271
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0xc0]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], rcx
call rax
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
cmp rax, 3
jl 0x56426d
lea rdx, [rax - 3]
cmp rdx, rax
ja 0x564266
sub rax, rdx
lea rbx, [rax - 1]
sar rbx, 0x3f
xor rbx, 0xffffffffffffffff
and rdx, rbx
add rcx, rdx
cmp rax, 3
je 0x56423c
xor eax, eax
test al, al
je 0x56421f
mov qword [rsp + 0x48], 0x11
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp + 0x48], 0x10
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp], rcx
mov qword [rsp + 8], rax
lea rax, [0x006cf50c]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], 3
call fcn.00454360
movzx eax, byte [rsp + 0x20]
jmp 0x5641fe
call fcn.00429450
ud2
xor eax, eax
jmp 0x5641fe
mov qword [rsp + 0x48], 4
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp], rcx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 8], rax
mov rdx, qword [0x00896e00]
mov rbx, qword [0x00896e08]
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rbx
call fcn.004020b0
movzx eax, byte [rsp + 0x20]
test al, al
jne 0x5642cc
mov rcx, qword [rsp + 0x38]
jmp 0x56409d
mov qword [rsp + 0x48], 2
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp], rcx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 8], rax
mov rdx, qword [0x00896e28]
mov rbx, qword [0x00896e20]
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdx
call fcn.004020b0
movzx eax, byte [rsp + 0x20]
test al, al
jne 0x564327
mov rcx, qword [rsp + 0x38]
jmp 0x56408d
mov qword [rsp + 0x48], 0xa
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp], rcx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 8], rax
mov rdx, qword [0x00896e78]
mov rbx, qword [0x00896e70]
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdx
call fcn.004020b0
movzx eax, byte [rsp + 0x20]
test al, al
jne 0x564382
mov rcx, qword [rsp + 0x38]
jmp 0x56407d
mov qword [rsp + 0x48], 0x17
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp], rcx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 8], rax
mov rdx, qword [0x00896e10]
mov rbx, qword [0x00896e18]
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rbx
call fcn.004020b0
movzx eax, byte [rsp + 0x20]
test al, al
jne 0x5643dd
mov rcx, qword [rsp + 0x38]
jmp 0x56406d
mov qword [rsp + 0x48], 3
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
mov qword [rsp], rcx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 8], rax
mov rdx, qword [0x00896e40]
mov rbx, qword [0x00896e48]
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rbx
call fcn.004020b0
movzx eax, byte [rsp + 0x20]
test al, al
jne 0x564438
mov rcx, qword [rsp + 0x38]
jmp 0x56405d
mov qword [rsp + 0x48], 6
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x51], 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x30
ret
call fcn.00452210
jmp fcn.00564020