Function at 0x14005b490
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r15
sub rsp, 0x20
mov r11, qword [rcx]
mov r15d, r8d
mov r10, qword [rcx + 8]
mov rbx, rcx
mov esi, edx
mov rdi, qword [r11 + 0x10]
cmp r10, qword [rcx + 0x10]
jae 0x14005b722
movzx r9d, byte [rdi + rsi*8 + 5]
cmp r9b, 0x5a
jne 0x14005b521
movzx eax, byte [rdi + rsi*8 + 2]
and al, 0x1f
cmp al, 0x13
jne 0x14005b58d
mov eax, dword [rbx + 0x18]
movzx ecx, word [rdi + rsi*8]
and eax, 0xf000
cmp eax, 0x1000
ja 0x14005b4fd
mov edx, ecx
inc r8d
mov rcx, rbx
call fcn.14005baf0
jmp 0x14005b505
mov dword [r10], ecx
add qword [rbx + 8], 4
cmp dword [rbx + 0x1c], 0x15
jne 0x14005b51a
mov rax, qword [rbx + 8]
mov dword [rax], 0x20000
add qword [rbx + 8], 4
xor eax, eax
jmp 0x14005b64f
cmp r9b, 0x1c
jne 0x14005b58d
test dword [rcx + 0x18], 0xf000
movsd xmm1, qword [rdi + rsi*8 + 8]
jne 0x14005b574
cvttsd2si rcx, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
ucomisd xmm1, xmm0
jp 0x14005b722
jne 0x14005b722
mov dword [r10], 0x30000
mov rax, qword [rbx + 8]
add rax, 4
mov qword [rbx + 8], rax
mov dword [rax], ecx
add qword [rbx + 8], 4
xor eax, eax
jmp 0x14005b64f
cvttsd2si ecx, xmm1
movsx eax, cx
cmp ecx, eax
jne 0x14005b722
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
jmp 0x14005b543
mov qword [rsp + 0x40], rbp
movzx ebp, byte [r11 + 0xa5]
movzx r8d, word [r11 + rbp*2 + 0x182]
cmp r8d, esi
jbe 0x14005b5f5
nop dword [rax + rax]
movzx eax, word [rdi + r8*8]
cmp eax, esi
jne 0x14005b5ea
cmp bpl, 0x5b
je 0x14005b663
movzx eax, word [rdi + r8*8 + 2]
xor eax, dword [rbx + 0x18]
test eax, 0xfff
jne 0x14005b5ea
movzx ecx, byte [rdi + r8*8 + 4]
movzx eax, byte [r11 + 0xa4]
and cl, 0x80
and al, 0x80
cmp cl, al
jae 0x14005b663
movzx r8d, word [rdi + r8*8 + 6]
cmp r8d, esi
ja 0x14005b5b0
sub r9b, 0x29
mov qword [rsp + 0x48], r14
cmp r9b, 1
ja 0x14005b707
mov r8d, dword [rbx + 0x18]
mov eax, r8d
and eax, 0xf000
cmp eax, 0x2000
jne 0x14005b627
test r15d, r15d
jle 0x14005b627
add r8d, 0x1000
movzx edx, si
mov rcx, r11
call fcn.14005b450
test rax, rax
je 0x14005b66f
movzx eax, word [rax + 2]
mov dword [r10], eax
add qword [rbx + 8], 4
xor eax, eax
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rdi
ret
mov dword [r10], r8d
add qword [rbx + 8], 4
xor eax, eax
jmp 0x14005b64a
cmp dword [rbx + 0x1c], 0x15
jne 0x14005b6a3
mov r8d, 0x226e
mov rcx, r11
call fcn.14005b450
test rax, rax
je 0x14005b6a3
movzx ecx, word [rax + 2]
mov dword [r10], ecx
mov rax, qword [rbx + 8]
add rax, 4
mov qword [rbx + 8], rax
mov dword [rax], 0x20000
jmp 0x14005b63e
inc r15d
cmp r15d, 0x64
jge 0x14005b707
mov rbp, r10
cmp r10, qword [rbx + 0x10]
jae 0x14005b707
movzx edx, word [rdi + rsi*8]
mov r8d, r15d
mov rcx, rbx
call fcn.14005b490
movzx edx, word [rdi + rsi*8 + 2]
mov r8d, r15d
mov rcx, rbx
mov r14d, eax
call fcn.14005b490
add r14d, eax
cmp r14d, 1
jg 0x14005b703
movzx ecx, byte [rdi + rsi*8 + 5]
mov rax, qword [rbx + 8]
shl ecx, 8
or ecx, dword [rbx + 0x1c]
shl ecx, 0x10
add ecx, esi
mov dword [rax], ecx
mov eax, r14d
add qword [rbx + 8], 4
jmp 0x14005b645
mov qword [rbx + 8], rbp
mov rax, qword [rbx + 8]
lea ecx, [rsi + 0x10000]
mov dword [rax], ecx
mov eax, 1
add qword [rbx + 8], 4
jmp 0x14005b645
mov eax, 0xa
jmp 0x14005b64f