Function at 0x680ab360
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
movups xmmword [rsp + 0x80], xmm6
movups xmmword [rsp + 0x90], xmm7
movups xmmword [rsp + 0xa0], xmm8
movups xmmword [rsp + 0xb0], xmm9
movups xmmword [rsp + 0xc0], xmm10
movups xmmword [rsp + 0xd0], xmm11
movups xmmword [rsp + 0xe0], xmm12
mov r14, rcx
mov r15, rdx
test r9d, r9d
jle 0x680ab91b
lea eax, [r9 - 1]
mov r12, r8
xor r13d, r13d
xor ebp, ebp
lea rdx, [rax + rax*4]
pxor xmm10, xmm10
movss xmm9, dword [0x680bb940]
lea rcx, [r8 + rdx*8 + 0x28]
movups xmm8, xmm9
movss xmm11, dword [0x680bb9d0]
mov qword [rsp + 0x38], rcx
nop dword [rax]
movss xmm7, dword [r12]
mov rbx, qword [r15 + 8]
comiss xmm7, xmm10
jbe 0x680ab8e8
movsxd r11, dword [r15 + 0x24]
pxor xmm1, xmm1
lea rcx, [rbx + r11 + 6]
lea rdx, [rbx + r11 + 4]
movzx eax, byte [rdx]
movzx esi, byte [rcx]
movzx ebx, byte [rdx + 1]
movzx edi, byte [rcx + 1]
shl eax, 8
shl esi, 8
add eax, ebx
add esi, edi
cwde
movsx r8d, si
sub eax, r8d
cvtsi2ss xmm1, eax
divss xmm7, xmm1
mov r9d, dword [r14 + 0x24]
mov r11d, dword [r12 + 0x10]
mov byte [r12 + 0x20], r9b
mov r10d, dword [r14 + 0x28]
mov byte [r12 + 0x21], r10b
test r11d, r11d
jle 0x680ab880
movsxd rdx, ebp
mov rax, qword [rsp + 0x160]
lea ebp, [rbp + 1]
xor esi, esi
lea rcx, [rdx + rdx*2]
mov dword [rsp + 0x28], ebp
lea rdi, [rax + rcx*8 + 0xc]
jmp 0x680ab4ac
mov dword [rdi + 4], 0
mov dword [rdi], 0
add ebp, dword [rsp + 0x28]
add rsi, 1
add rdi, 0x18
cmp dword [r12 + 0x10], esi
jle 0x680ab880
mov rbx, qword [r12 + 8]
mov ebp, esi
test rbx, rbx
je 0x680ab6d0
mov edx, dword [rbx + rsi*4]
mov rcx, r15
call fcn.680a2660
mov ebx, eax
test eax, eax
jne 0x680ab4d6
mov r8d, r13d
or r8d, dword [r14 + 0x20]
jne 0x680ab488
mov r9d, dword [r14 + 0x28]
mov r10d, dword [r14 + 0x24]
pxor xmm12, xmm12
pxor xmm6, xmm6
mov ecx, dword [r15 + 0x4c]
cvtsi2ss xmm12, r9
cvtsi2ss xmm6, r10
mulss xmm12, xmm7
mulss xmm6, xmm7
test ecx, ecx
jne 0x680ab6e0
mov dword [rsp + 0x2c], ecx
mov edx, ebx
mov rcx, r15
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x30], r10d
call fcn.680ad510
xor edx, edx
mov ecx, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x30]
test eax, eax
mov r8d, dword [rsp + 0x34]
js 0x680ab6a5
mov r11, qword [r15 + 8]
cdqe
pxor xmm2, xmm2
movss xmm4, dword [0x680bba14]
lea r10, [r11 + rax + 2]
lea rdx, [r11 + rax + 4]
lea rcx, [r11 + rax + 6]
lea r11, [r11 + rax + 8]
movzx eax, byte [r10]
movzx r10d, byte [r10 + 1]
shl eax, 8
add eax, r10d
cwde
cvtsi2ss xmm2, eax
mulss xmm2, xmm6
movups xmm3, xmm2
andps xmm3, xmm8
comiss xmm4, xmm3
jbe 0x680ab5a6
cvttss2si eax, xmm2
pxor xmm0, xmm0
movss xmm1, dword [0x680bb950]
cvtsi2ss xmm0, eax
movups xmm5, xmm0
cmpnless xmm5, xmm2
movups xmm2, xmm0
andps xmm1, xmm5
subss xmm2, xmm1
movzx eax, byte [r11]
movzx r11d, byte [r11 + 1]
pxor xmm3, xmm3
shl eax, 8
add eax, r11d
cwde
neg eax
cvtsi2ss xmm3, eax
mulss xmm3, xmm12
movups xmm0, xmm3
andps xmm0, xmm8
comiss xmm4, xmm0
jbe 0x680ab5f9
cvttss2si r10d, xmm3
pxor xmm0, xmm0
movss xmm1, dword [0x680bb950]
cvtsi2ss xmm0, r10d
movups xmm5, xmm0
cmpnless xmm5, xmm3
movups xmm3, xmm0
andps xmm1, xmm5
subss xmm3, xmm1
movzx eax, byte [rcx]
movzx ecx, byte [rcx + 1]
pxor xmm1, xmm1
shl eax, 8
add eax, ecx
cwde
cvtsi2ss xmm1, eax
mulss xmm1, xmm6
movups xmm6, xmm1
andps xmm6, xmm8
comiss xmm4, xmm6
jbe 0x680ab643
cvttss2si r11d, xmm1
pxor xmm0, xmm0
movups xmm5, xmm1
movss xmm1, dword [0x680bb950]
cvtsi2ss xmm0, r11d
cmpnless xmm5, xmm0
andps xmm1, xmm5
addss xmm1, xmm0
movzx eax, byte [rdx]
movzx edx, byte [rdx + 1]
pxor xmm6, xmm6
shl eax, 8
add eax, edx
cwde
neg eax
cvtsi2ss xmm6, eax
mulss xmm6, xmm12
movups xmm12, xmm6
andps xmm12, xmm8
comiss xmm4, xmm12
jbe 0x680ab68f
cvttss2si r10d, xmm6
pxor xmm4, xmm4
movss xmm0, dword [0x680bb950]
cvtsi2ss xmm4, r10d
cmpnless xmm6, xmm4
andps xmm6, xmm0
addss xmm6, xmm4
cvttss2si ecx, xmm1
cvttss2si r11d, xmm2
cvttss2si edx, xmm6
cvttss2si eax, xmm3
sub ecx, r11d
sub edx, eax
mov r10d, dword [r14 + 0x1c]
add ecx, r10d
add edx, r10d
test ebx, ebx
mov ebx, 1
lea ecx, [r9 + rcx - 1]
lea r8d, [r8 + rdx - 1]
cmove r13d, ebx
mov dword [rdi], ecx
mov dword [rdi + 4], r8d
jmp 0x680ab495
mov edx, dword [r12 + 4]
add edx, esi
jmp 0x680ab4bf
mov edx, ebx
mov rcx, r15
lea r8, [rsp + 0x40]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x40], 1
call fcn.680b2d00
xor edx, edx
mov ecx, eax
test eax, eax
je 0x680ab86d
pxor xmm3, xmm3
movss xmm4, dword [0x680bba14]
movups xmm2, xmm9
cvtsi2ss xmm3, dword [rsp + 0x58]
mulss xmm3, xmm6
andps xmm2, xmm3
comiss xmm4, xmm2
jbe 0x680ab78c
cvttss2si r9d, xmm3
pxor xmm5, xmm5
movss xmm1, dword [0x680bb950]
cvtsi2ss xmm5, r9d
movups xmm0, xmm5
cmpnless xmm0, xmm3
movups xmm3, xmm5
andps xmm1, xmm0
subss xmm3, xmm1
mov r8d, dword [rsp + 0x64]
pxor xmm2, xmm2
movups xmm5, xmm9
neg r8d
cvtsi2ss xmm2, r8d
mulss xmm2, xmm12
andps xmm5, xmm2
comiss xmm4, xmm5
jbe 0x680ab7d6
cvttss2si r10d, xmm2
pxor xmm0, xmm0
movss xmm5, dword [0x680bb950]
cvtsi2ss xmm0, r10d
movups xmm1, xmm0
cmpnless xmm1, xmm2
movups xmm2, xmm0
andps xmm5, xmm1
subss xmm2, xmm5
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [rsp + 0x5c]
mulss xmm1, xmm6
movups xmm6, xmm9
andps xmm6, xmm1
comiss xmm4, xmm6
jbe 0x680ab813
cvttss2si ecx, xmm1
pxor xmm0, xmm0
movups xmm5, xmm1
movss xmm1, dword [0x680bb950]
cvtsi2ss xmm0, ecx
cmpnless xmm5, xmm0
andps xmm1, xmm5
addss xmm1, xmm0
mov r11d, dword [rsp + 0x60]
pxor xmm6, xmm6
neg r11d
cvtsi2ss xmm6, r11d
mulss xmm6, xmm12
movups xmm12, xmm9
andps xmm12, xmm6
comiss xmm4, xmm12
jbe 0x680ab857
cvttss2si edx, xmm6
pxor xmm4, xmm4
movss xmm0, dword [0x680bb950]
cvtsi2ss xmm4, edx
cmpnless xmm6, xmm4
andps xmm6, xmm0
addss xmm6, xmm4
cvttss2si ecx, xmm1
cvttss2si eax, xmm3
cvttss2si edx, xmm6
cvttss2si r9d, xmm2
sub ecx, eax
sub edx, r9d
mov r9d, dword [r14 + 0x24]
mov r8d, dword [r14 + 0x28]
jmp 0x680ab6a5
add r12, 0x28
cmp qword [rsp + 0x38], r12
jne 0x680ab3f8
movups xmm6, xmmword [rsp + 0x80]
mov eax, ebp
movups xmm7, xmmword [rsp + 0x90]
movups xmm8, xmmword [rsp + 0xa0]
movups xmm9, xmmword [rsp + 0xb0]
movups xmm10, xmmword [rsp + 0xc0]
movups xmm11, xmmword [rsp + 0xd0]
movups xmm12, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movsxd rsi, dword [r15 + 0x1c]
pxor xmm0, xmm0
xorps xmm7, xmm11
lea rdi, [rbx + rsi + 0x12]
movzx r8d, byte [rdi]
movzx r9d, byte [rdi + 1]
shl r8d, 8
add r8d, r9d
movzx r10d, r8w
cvtsi2ss xmm0, r10d
divss xmm7, xmm0
jmp 0x680ab446
xor ebp, ebp
jmp 0x680ab88f