Function at 0x140188cb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rsi, r9
mov rdi, r8
mov dword [rsp + 0x24], edx
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov qword [r8], 0
mov qword [r9], 0
mov rax, qword [rcx]
mov qword [rsp + 0x28], rcx
mov r14, qword [rcx + 0x10]
mov rax, qword [rax + 8]
lea r13, [rax + 0xf]
mov rbx, qword [rax + 7]
add rbx, r13
mov rdx, qword [r8]
inc rdx
mov rcx, r8
call fcn.140166fd0
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
mov qword [rcx + rax*8 - 8], r14
movzx ebp, byte [0x1404ab68d]
mov r12, qword [rsi]
mov r8, qword [rsi + 8]
cmp r12, r8
jge 0x140188d35
mov rax, qword [rsi + 0x10]
jmp 0x140188d8b
mov rax, r12
shr rax, 1
or rax, r12
mov rcx, rax
shr rcx, 2
or rcx, rax
mov rax, rcx
shr rax, 4
or rax, rcx
mov rcx, rax
shr rcx, 8
or rcx, rax
mov rax, rcx
shr rax, 0x10
or rax, rcx
mov r15, rax
shr r15, 0x20
or r15, rax
inc r15
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x18]
mov r9, r15
call fcn.140189230
mov qword [rsi + 0x10], rax
mov qword [rsi + 8], r15
lea rcx, [r12 + 1]
mov qword [rsi], rcx
lea rdx, [0x140424900]
lea rcx, [0x140424904]
test bpl, bpl
cmovne rcx, rdx
mov ecx, dword [rcx]
mov dword [rax + r12*4], ecx
mov dword [rsp + 0x20], 0
lea r15, [0x14040ecc8]
jmp case.0x140188e4d.4
dec qword [rdi]
dec qword [rsi]
mov rax, rbx
sub rax, r13
test rax, rax
jle 0x140188f71
movzx eax, byte [r13]
inc r13
test al, al
js 0x140188e20
xor edx, edx
xor ecx, ecx
nop word cs:[rax + rax]
movzx ecx, cl
shl eax, cl
or edx, eax
add ecx, 7
movzx eax, byte [r13]
inc r13
test al, al
jns 0x140188df0
add eax, 0xffffff40
shl eax, cl
or eax, edx
jmp 0x140188e25
add eax, 0xffffff40
mov ecx, eax
and cl, 7
mov edx, eax
shr edx, 3
lea ebp, [rdx - 0x20000000]
test eax, eax
cmovns ebp, edx
cmp cl, 4
ja case.default.0x140188e4d
and eax, 7
movsxd rax, dword [r15 + rax*4]
add rax, r15
jmp rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
lea rcx, [rcx + rax*4]
add rcx, 0xfffffffffffffffc
call fcn.14003a4c0
add ebp, eax
lea rcx, [rsp + 0x30]
mov edx, ebp
call fcn.1402270c0
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rsp + 0x30]
mov dword [rcx + rax*4 - 4], edx
jmp case.0x140188e4d.4
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
movsxd rcx, ebp
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8 + 0x17]
call fcn.140188fc0
mov r12, rax
mov rdx, qword [rdi]
inc rdx
mov rcx, rdi
call fcn.140166fd0
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
mov qword [rcx + rax*8 - 8], r12
movzx r14d, byte [0x1404ab68d]
mov rbp, qword [rsi]
mov r8, qword [rsi + 8]
cmp rbp, r8
jge 0x140188ee1
mov rax, qword [rsi + 0x10]
jmp 0x140188f37
mov rax, rbp
shr rax, 1
or rax, rbp
mov rcx, rax
shr rcx, 2
or rcx, rax
mov rax, rcx
shr rax, 4
or rax, rcx
mov rcx, rax
shr rcx, 8
or rcx, rax
mov rax, rcx
shr rax, 0x10
or rax, rcx
mov r12, rax
shr r12, 0x20
or r12, rax
inc r12
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x18]
mov r9, r12
call fcn.140189230
mov qword [rsi + 0x10], rax
mov qword [rsi + 8], r12
lea rcx, [rbp + 1]
mov qword [rsi], rcx
test r14b, r14b
lea rcx, [0x140424904]
lea rdx, [0x140424900]
cmovne rcx, rdx
mov ecx, dword [rcx]
mov dword [rax + rbp*4], ecx
jmp case.0x140188e4d.4
mov eax, dword [rsp + 0x20]
add eax, ebp
mov dword [rsp + 0x20], eax
cmp eax, dword [rsp + 0x24]
jle case.0x140188e4d.4
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x140188f93
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14029fd30
int3
lea rax, str..._.._runtime_vm_code_descriptors.cc
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x273
lea rdx, str.unreachable_code
lea rcx, [rsp + 0x30]
call fcn.1402d94a0
int3