Function at 0x14006bc90
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, 0x78
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm6
movaps xmm6, xmm3
movaps xmm7, xmm2
mov r14, qword [rsp + 0xf8]
mov r13, qword [rsp + 0xf0]
mov r15, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xe0]
mov rax, qword [0x140279c48]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x40], 0
cmp dword [rcx + 0x4c], 0
je 0x14006bddf
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x44]
lea r9, [rsp + 0x40]
call fcn.14006fa60
test r12, r12
je 0x14006bd3f
cvtsi2ss xmm1, dword [rsp + 0x44]
mulss xmm1, xmm7
xorps xmm0, xmm0
addss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si eax, xmm0
mov dword [r12], eax
test r15, r15
je 0x14006bd68
xor eax, eax
sub eax, dword [rsp + 0x38]
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mulss xmm1, xmm6
xorps xmm0, xmm0
addss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si eax, xmm0
mov dword [r15], eax
test r13, r13
je 0x14006bd8e
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [rsp + 0x3c]
mulss xmm1, xmm7
xorps xmm0, xmm0
addss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
cvttss2si eax, xmm0
mov dword [r13], eax
test r14, r14
je 0x14006bdb7
xor eax, eax
sub eax, dword [rsp + 0x40]
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mulss xmm1, xmm6
xorps xmm0, xmm0
addss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
cvttss2si eax, xmm0
mov dword [r14], eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400c4bd0
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x14027ddb0]
lea ebx, [rax - 1]
imul ebx, eax
test bl, 1
sete bl
cmp dword [0x14027ddb4], 0xa
setl al
or al, bl
mov r11d, dword [rcx + 0x14]
lea ebx, [rdx*4]
movsxd r10, ebx
lea ebx, [rdx + rdx]
movsxd r8, ebx
mov r9d, 0xffffffff
jmp 0x14006be36
add rbx, r10
mov edi, dword [rsi + rbx]
mov ebx, dword [rsi + rbx + 4]
bswap edi
bswap ebx
mov esi, dword [rcx + 0x20]
add esi, edi
cmp edi, ebx
cmove esi, r9d
test al, al
jne 0x14006be7e
mov esi, 0xffffffff
cmp r11d, edx
jle 0x14006be32
mov edi, dword [rcx + 0x38]
mov esi, 0xffffffff
cmp edi, 1
jg 0x14006be32
mov rsi, qword [rcx + 8]
movsxd rbx, dword [rcx + 0x18]
test edi, edi
jne 0x14006be19
add rbx, r8
movzx edi, byte [rsi + rbx + 1]
movzx ebp, byte [rsi + rbx]
shl ebp, 9
lea edi, [rbp + rdi*2]
movzx ebp, byte [rsi + rbx + 3]
movzx esi, byte [rsi + rbx + 2]
shl esi, 9
lea ebx, [rsi + rbp*2]
jmp 0x14006be27
test esi, esi
js 0x14006beec
mov eax, esi
mov rcx, qword [rcx + 8]
movzx edx, byte [rax + rcx + 3]
movzx ebp, byte [rax + rcx + 2]
shl ebp, 8
movsx ebp, bp
or ebp, edx
mov dword [rsp + 0x44], ebp
movzx edx, byte [rax + rcx + 5]
movzx ebp, byte [rax + rcx + 4]
shl ebp, 8
movsx ebp, bp
or ebp, edx
mov dword [rsp + 0x40], ebp
movzx edx, byte [rax + rcx + 7]
movzx ebp, byte [rax + rcx + 6]
shl ebp, 8
movsx ebp, bp
or ebp, edx
mov dword [rsp + 0x3c], ebp
movzx edx, byte [rax + rcx + 9]
movzx eax, byte [rax + rcx + 8]
shl eax, 8
cwde
or eax, edx
mov dword [rsp + 0x38], eax
test r12, r12
jne 0x14006bd21
jmp 0x14006bd3f
test r12, r12
je 0x14006bef9
mov dword [r12], 0
test r15, r15
je 0x14006bf05
mov dword [r15], 0
test r13, r13
je 0x14006bf50
cmp dword [0x14027d3c8], 0xa
jl 0x14006bf24
mov eax, dword [0x14027d3cc]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x14006bf46
mov dword [r13], 0
cmp dword [0x14027d3c8], 0xa
jl 0x14006bf50
mov eax, dword [0x14027d3cc]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x14006bf50
mov dword [r13], 0
jmp 0x14006bf24
xor eax, eax
test r14, r14
jne 0x14006bdb4
jmp 0x14006bdb7