Function at 0x14012b670
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x260
mov r15, qword [rcx + 0xdef8]
mov r13, qword [rcx + 0x110]
mov r14, qword [rcx + 0x168]
lea rax, [rcx + 0xd2f8]
lea rsi, [r8 + 0x200]
xor r12d, r12d
mov qword [rsp + 0x28], rax
lea rax, [rcx + 0x170]
xor ebx, ebx
xor ebp, ebp
mov dword [rsp + 0x2b8], 1
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rax
xor edi, edi
mov qword [rsp + 0x40], 3
nop word [rax + rax]
add rdi, qword [rax]
lea rcx, [rsp + 0x60]
xor edx, edx
mov r8d, 0x200
mov qword [rsp + 0x48], rdi
call sub.MSVCR90.dll_memset
mov r9, qword [rsp + 0x28]
mov rcx, rbx
mov rax, rdi
mov qword [r9 + 0x600], rbx
mov qword [r9], r12
sub rax, rbp
cmp rax, rbx
cmovl rcx, rax
xor r10d, r10d
sub rbx, rcx
mov r8, rcx
mov qword [rsp + 0x20], rcx
test rcx, rcx
jle 0x14012b755
nop dword [rax]
mov rax, qword [r14 + rbp*8]
dec rcx
inc rbp
mov word [r13 + rax*4 + 2], r10w
test rcx, rcx
jg 0x14012b740
cmp rbp, rdi
jge 0x14012b9ca
movsxd rax, dword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2a0]
sar rax, 1
lea rsi, [rcx + 0xd058]
mov qword [rsp + 0x50], rax
nop dword [rax]
mov rdx, qword [rsp + 0x2a8]
movsxd rax, dword [rdx + rax*4]
mov rbx, qword [rcx + rax*8 + 0xd078]
movzx eax, byte [rbx]
test al, al
je 0x14012b84d
nop
mov r9d, dword [rsi]
movzx r11d, al
test al, al
jne 0x14012b7b3
mov r9d, r10d
jmp 0x14012b832
mov r8d, dword [rsi + 0x18]
cmp r11d, r8d
jle 0x14012b824
mov rdx, qword [rsi + 8]
mov r10, qword [rsi + 0x10]
cmp rdx, r10
jae 0x14012b7ff
cmp r8d, 0x18
jg 0x14012b805
mov ecx, 0x20
sub ecx, r8d
nop word [rax + rax]
movzx eax, byte [rdx]
sub ecx, 8
inc rdx
shl eax, cl
add r8d, 8
or r9d, eax
cmp rdx, r10
jae 0x14012b7ff
cmp r8d, 0x18
jle 0x14012b7e0
jmp 0x14012b805
mov r8d, 0x40000000
cmp r11d, r8d
mov qword [rsi + 8], rdx
jle 0x14012b81d
movzx edx, byte [rdx]
movzx ecx, r8b
and ecx, 7
shr edx, cl
or r9d, edx
mov dword [rsi + 0x18], r8d
mov dword [rsi], r9d
mov ecx, 0x20
sub ecx, r11d
shr r9d, cl
xor r10d, r10d
movsxd rax, r9d
mov rbx, qword [rbx + rax*8 + 8]
movzx ecx, byte [rbx + 2]
shl dword [rsi], cl
sub dword [rsi + 0x18], ecx
mov al, byte [rbx]
test al, al
jne 0x14012b7a0
movzx ebx, byte [rbx + 1]
inc r12
mov byte [r12 + r15 - 1], bl
cmp ebx, 0xf
jae 0x14012b8ef
mov edx, dword [rsi]
movsxd rax, ebx
lea rcx, [0x140000000]
movzx edi, byte [rax + rcx + 0x32a8e0]
mov eax, dword [rsi + 0x18]
test edi, edi
jne 0x14012b882
mov edx, r10d
jmp 0x14012b8b0
cmp eax, edi
jge 0x14012b895
mov edx, edi
mov rcx, rsi
call fcn.140131370
mov edx, eax
mov eax, dword [rsi + 0x18]
sub eax, edi
lea ecx, [rdi - 1]
mov dword [rsi + 0x18], eax
lea eax, [rdx + rdx]
shl eax, cl
mov ecx, 0x20
sub ecx, edi
mov dword [rsi], eax
shr edx, cl
xor r10d, r10d
mov byte [r12 + r15], dl
inc r12
test ebx, ebx
jne 0x14012b8c8
mov eax, edx
sar eax, 8
inc r12
mov byte [r12 + r15 - 1], al
mov rdi, qword [rsp + 0x48]
cmp ebx, 0xc
mov ecx, r10d
setl cl
mov eax, r10d
neg ecx
and ecx, 0x15
cmp ebx, 2
setl al
neg eax
and eax, 0xfffffff3
add ecx, eax
shl edx, cl
jmp 0x14012b8f2
mov edx, r10d
lea rcx, [0x140000000]
mov eax, dword [rcx + rbx*4 + 0x32a8f0]
lea r8d, [rdx + rax]
mov ebx, r8d
sar rbx, 8
and ebx, 0xfff
test r8d, r8d
jne 0x14012b922
movabs rbx, 0x7fffffffffffffff
jmp 0x14012b927
test rbx, rbx
je 0x14012b977
mov r8, qword [rsp + 0x20]
mov ecx, r10d
mov rax, rdi
sub rax, rbp
cmp rax, rbx
mov rax, rdi
setl cl
sub rax, rbx
neg ecx
sub rax, rbp
movsxd rdx, ecx
and rdx, rax
add rdx, rbx
add r8, rdx
sub rbx, rdx
mov qword [rsp + 0x20], r8
test rdx, rdx
jle 0x14012b9aa
nop
mov rax, qword [r14 + rbp*8]
dec rdx
inc rbp
mov word [r13 + rax*4 + 2], r10w
test rdx, rdx
jg 0x14012b960
jmp 0x14012b9aa
movzx eax, r8b
mov ecx, r8d
and ecx, 0x100000
neg ecx
xor ecx, r8d
sar ecx, 0x15
test r8b, r8b
mov r8, qword [rsp + 0x20]
cmovne ecx, r10d
inc qword [rsp + rax*8 + 0x60]
mov rax, qword [r14 + rbp*8]
mov word [r13 + rax*4 + 2], cx
inc rbp
cmp rbp, rdi
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x2a0]
jl 0x14012b780
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
add qword [rsp + 0x258], r8
mov ecx, 0x3f
nop word [rax + rax]
mov rax, qword [rsp + rcx*8 + 0x60]
dec rcx
add qword [rsp + rcx*8 + 0x60], rax
test rcx, rcx
jg 0x14012b9e0
mov edx, 0x40
mov r8, rsi
nop word [rax + rax]
mov rcx, qword [rsp + rdx*8 + 0x58]
dec rdx
sub r8, 8
sub qword [r8], rcx
test rdx, rdx
jg 0x14012ba00
mov rax, qword [rsp + 0x38]
inc dword [rsp + 0x2b8]
add r9, 0x200
add rsi, 0x200
add rax, 8
sub qword [rsp + 0x40], 1
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], rsi
jne 0x14012b6f0
mov rcx, qword [rsp + 0x2a0]
mov rax, rbx
mov rbx, qword [rsp + 0x2b0]
mov dword [rcx + 0xdf08], r12d
add rsp, 0x260
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret