Function at 0x1400168d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
mov rbx, qword [rcx + 0x40]
mov r15, rdx
mov rdi, rcx
cmp dword [rbx + 0x74], 0
je 0x140016913
mov r8, qword [rbx + 0x68]
mov ecx, dword [rbx + 0x48]
mov eax, dword [rbx + 0x70]
shl r8, cl
add r8, rax
cmp qword [rdi + 0x160], r8
jne 0x140016913
mov dword [rdx], 0xffffffff
xor eax, eax
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret
mov rdx, qword [rbx + 0x18]
mov ecx, dword [rdi + 0x148]
mov r8, rdx
add rcx, qword [rdi + 0x10]
shr r8, 1
mov qword [rsp + 0x58], r14
cmp rcx, r8
jb 0x140016947
mov eax, dword [rbx]
lea edx, [rax + rax]
mov eax, dword [rbx + 0x4c]
add rdx, r8
not eax
add rdx, rcx
movsxd rcx, eax
and rdx, rcx
mov rax, qword [rdi + 0x1a0]
mov r9, qword [rdi + 0x160]
cmp rax, r9
jbe 0x140016964
mov qword [rdi + 0x160], rax
mov r9, rax
cmp rdx, r9
mov qword [rsp + 0x40], rbp
mov r14, r9
mov qword [rsp + 0x48], rsi
cmovae r14, rdx
mov qword [rsp + 0x50], r12
cmp r9, r14
jae 0x140016aea
mov r8, r9
lea r12, [0x140023d80]
cmp dword [rbx + 0x74], 0
je 0x1400169b2
mov rdx, qword [rbx + 0x68]
mov r9d, r8d
mov ecx, dword [rbx + 0x48]
mov eax, dword [rbx + 0x70]
shl rdx, cl
add rdx, rax
cmp r8, rdx
jae 0x140016aea
mov ebp, dword [rbx + 0x4c]
mov rsi, r8
mov ecx, dword [rbx + 0x48]
and ebp, r8d
shr rsi, cl
cmp qword [rbx + 0x30], 0
je 0x1400169ce
cmp rsi, qword [rbx + 0x20]
je 0x1400169f2
mov qword [rbx + 0x60], rsi
mov rax, qword [rdi + 0x60]
test rax, rax
je 0x140016b2d
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
call rax
test eax, eax
jne 0x140016b1f
cmp rsi, qword [rbx + 0x68]
jbe 0x140016a12
mov eax, dword [rbx]
mov qword [rbx + 0x68], rsi
cmp dword [rbx + 0x28], eax
je 0x140016a14
cmp dword [rbx + 0x74], 0
jne 0x140016a14
mov dword [rbx + 0x74], 1
jmp 0x140016a14
jne 0x140016a1a
mov eax, dword [rbx + 0x28]
mov dword [rbx + 0x70], eax
mov rbx, qword [rdi + 0x40]
lea rax, [rbx + 0x70]
cmp rsi, qword [rbx + 0x68]
je 0x140016a2b
mov rax, rbx
mov r10d, dword [rax]
mov eax, dword [rdi + 0xc8]
mov r11d, dword [rbx]
cmp r10d, eax
jge 0x140016a49
lea r8, [rsi + 1]
imul r8, r11
jmp 0x140016ad7
sub r10d, eax
imul r11, rsi
mov rcx, qword [rdi + 0x40]
xor edx, edx
movsxd rax, r10d
xor r8d, r8d
add rax, qword [rcx + 0x30]
mov ecx, dword [rdi + 0xc8]
test ecx, ecx
je 0x140016a87
mov r9d, ecx
nop dword [rax]
movzx ecx, byte [rax]
lea rax, [rax + 1]
movzx ecx, word [r12 + rcx*2]
add edx, ecx
add r8d, edx
sub r9, 1
jne 0x140016a70
mov eax, dword [rdi + 0xf8]
movzx ecx, byte [rdi + 0xf4]
movzx r9d, dx
shl r8d, 0x10
or r9d, r8d
lea r8d, [r10 + 1]
mov edx, r9d
add r8d, r11d
and rdx, rax
shr r9, cl
mov rax, qword [rdi + 0xe8]
xor rdx, r9
mov dword [rax + rdx*4], r8d
sub r10d, dword [rdi + 0xcc]
cmp r10d, ebp
jge 0x140016a50
mov rbx, qword [rdi + 0x40]
lea r8, [rsi + 1]
mov eax, dword [rbx]
imul r8, rax
mov qword [rdi + 0x160], r8
cmp r8, r14
jb 0x140016990
mov r9d, r8d
cmp dword [rbx + 0x74], 0
je 0x140016b3f
mov eax, dword [rbx + 0x70]
mov rdx, qword [rbx + 0x68]
mov ecx, dword [rbx + 0x48]
shl rdx, cl
add rdx, rax
mov rax, qword [rdi + 0x160]
mov r9d, eax
cmp rax, rdx
jb 0x140016b3f
mov qword [rdi + 0x160], rdx
mov dword [r15], 0xffffffff
jmp 0x140016b54
cmp eax, 0xffffbad3
jne 0x140016b56
mov eax, 0xffffbad2
jmp 0x140016b56
lea rax, str.getblk_source_input
mov qword [rdi + 0x38], rax
mov eax, 0xffffbad7
jmp 0x140016b56
mov eax, dword [rbx]
sub r9d, r14d
and r9d, dword [rbx + 0x4c]
sub eax, r9d
add eax, dword [rdi + 0x148]
mov dword [r15], eax
xor eax, eax
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
mov r14, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret