Function at 0x180044020
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov dword [rsp + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0xf0], rbx
mov rsi, rdx
movaps xmmword [rbp + 0xa0], xmm6
mov rdi, rcx
movaps xmmword [rbp + 0x90], xmm7
movaps xmmword [rbp + 0x80], xmm8
movaps xmmword [rbp + 0x70], xmm9
movaps xmmword [rbp + 0x60], xmm10
movaps xmmword [rbp + 0x50], xmm11
movsxd r12, r8d
movaps xmmword [rbp + 0x40], xmm12
movaps xmmword [rbp + 0x30], xmm13
cmp r12d, 2
jl 0x180044b82
mov rax, qword [rcx + 0x38]
cmp byte [rbp + 0x110], 0
movss xmm10, dword [rbp + 0x118]
movss xmm11, dword [0x1800733ec]
movss xmm8, dword [rax]
movss xmm9, dword [rax + 4]
lea eax, [r12 - 1]
cmovne eax, r12d
comiss xmm10, xmm11
movsxd rbx, eax
mov qword [rbp + 0x10], rbx
seta cl
test byte [rdi + 0x30], 1
mov byte [rbp + 0x100], cl
je 0x180044977
and r9d, 0xffffff
movzx ebx, cl
mov dword [rbp + 4], r9d
mov edx, 0x12
mov r9d, 0xc
lea r8d, [rbx + 3]
imul r8d, r12d
test cl, cl
mov rcx, rdi
cmove edx, r9d
imul edx, eax
mov dword [rbp + 8], r8d
call fcn.180048b60
lea eax, [rbx*2 + 3]
imul eax, r12d
movsxd rcx, eax
shl rcx, 3
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x18004412f
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.180001360
mov r11, qword [rbp + 0x10]
lea r14, [r12*8]
sub rsp, rax
xor ebx, ebx
mov r10, r12
lea r13, [rsp + 0x20]
add r14, r13
lea r15d, [rbx + 1]
test r11, r11
jle 0x18004420e
movss xmm12, dword [0x1800734a0]
mov edx, r15d
mov dword [rbp], edx
mov ecx, ebx
mov qword [rbp + 0x18], rbx
xorps xmm13, xmm13
nop word [rax + rax]
cmp edx, r12d
lea r8, [rcx + 1]
mov rax, rbx
mov qword [rbp + 0x20], r8
cmovne rax, r8
movss xmm6, dword [rsi + rax*8]
movss xmm7, dword [rsi + rax*8 + 4]
subss xmm6, dword [rsi + rcx*8]
subss xmm7, dword [rsi + rcx*8 + 4]
movaps xmm1, xmm6
movaps xmm0, xmm7
mulss xmm1, xmm6
mulss xmm0, xmm7
addss xmm0, xmm1
comiss xmm0, xmm13
jbe 0x1800441e4
call fcn.18002b200
mov rcx, qword [rbp + 0x18]
movaps xmm1, xmm11
mov edx, dword [rbp]
mov r11, qword [rbp + 0x10]
mov r8, qword [rbp + 0x20]
divss xmm1, xmm0
mulss xmm6, xmm1
mulss xmm7, xmm1
inc edx
movss dword [r13 + rcx*8], xmm7
mov dword [rbp], edx
xorps xmm6, xmm12
movss dword [r13 + rcx*8 + 4], xmm6
mov rcx, r8
mov qword [rbp + 0x18], rcx
cmp r8, r11
jl 0x180044180
mov r10, r12
movzx eax, byte [rbp + 0x110]
test al, al
jne 0x180044227
movsd xmm0, qword [r13 + r10*8 - 0x10]
movsd qword [r13 + r10*8 - 8], xmm0
cmp byte [rbp + 0x100], bl
jne 0x1800444e5
test al, al
jne 0x1800442d7
movss xmm1, dword [r13]
lea eax, [r12 + r12]
addss xmm1, dword [rsi]
movss xmm0, dword [r13 + 4]
addss xmm0, dword [rsi + 4]
movsxd rcx, eax
movss dword [r14], xmm1
movss dword [r14 + 4], xmm0
movss xmm0, dword [rsi + 4]
subss xmm0, dword [r13 + 4]
movss xmm2, dword [rsi]
subss xmm2, dword [r13]
movss dword [r14 + 0xc], xmm0
movss dword [r14 + 8], xmm2
movss xmm1, dword [r13 + r10*8 - 8]
movss xmm0, dword [rsi + r10*8 - 4]
addss xmm1, dword [rsi + r10*8 - 8]
addss xmm0, dword [r13 + r10*8 - 4]
movss dword [r14 + rcx*8 - 0x10], xmm1
movss dword [r14 + rcx*8 - 0xc], xmm0
movss xmm1, dword [rsi + r10*8 - 8]
movss xmm0, dword [rsi + r10*8 - 4]
subss xmm1, dword [r13 + r10*8 - 8]
subss xmm0, dword [r13 + r10*8 - 4]
movss dword [r14 + rcx*8 - 8], xmm1
movss dword [r14 + rcx*8 - 4], xmm0
mov r9d, dword [rdi + 0x4c]
test r11, r11
jle 0x18004442d
movss xmm5, dword [0x1800733e8]
mov rdx, rbx
nop
lea rax, [rdx + 1]
cmp r15d, r12d
mov rcx, rbx
mov qword [rbp + 0x20], rax
cmovne rcx, rax
jne 0x18004430a
mov r8d, dword [rdi + 0x4c]
jmp 0x18004430e
lea r8d, [r9 + 3]
movss xmm3, dword [r13 + rdx*8 + 4]
lea rax, [rcx*8]
addss xmm3, dword [rax + r13 + 4]
movss xmm4, dword [rax + r13]
movaps xmm1, xmm5
addss xmm4, dword [r13 + rdx*8]
shl rcx, 4
lea edx, [r8 + 1]
add rcx, r14
inc r15d
mulss xmm3, xmm5
mulss xmm4, xmm5
movaps xmm2, xmm3
mulss xmm2, xmm3
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm2, xmm0
movaps xmm0, xmm11
maxss xmm1, xmm2
divss xmm0, xmm1
mulss xmm3, xmm0
mulss xmm4, xmm0
movaps xmm1, xmm3
movaps xmm0, xmm4
addss xmm0, dword [rax + rsi]
movss dword [rcx], xmm0
addss xmm1, dword [rax + rsi + 4]
movss dword [rcx + 4], xmm1
movss xmm0, dword [rax + rsi]
subss xmm0, xmm4
movss dword [rcx + 8], xmm0
movss xmm1, dword [rax + rsi + 4]
subss xmm1, xmm3
movss dword [rcx + 0xc], xmm1
lea ecx, [r9 + 2]
mov rax, qword [rdi + 0x58]
mov word [rax], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 2], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 4], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 6], cx
lea ecx, [r8 + 2]
mov rax, qword [rdi + 0x58]
mov word [rax + 8], cx
lea ecx, [r9 + 1]
mov rax, qword [rdi + 0x58]
mov word [rax + 0xa], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xc], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 0xe], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x10], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x12], r9w
mov r9d, r8d
mov rax, qword [rdi + 0x58]
mov word [rax + 0x14], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x16], dx
add qword [rdi + 0x58], 0x18
mov rdx, qword [rbp + 0x20]
cmp rdx, r11
jl 0x1800442f0
test r10, r10
je 0x18004496b
mov ecx, dword [rbp + 0x108]
lea r8, [r10*8]
mov edx, dword [rbp + 4]
sub r8, r14
add r8, r13
nop dword [rax]
movsd xmm0, qword [rsi]
lea rsi, [rsi + 8]
mov rax, qword [rdi + 0x50]
lea r14, [r14 + 0x10]
inc rbx
movsd qword [rax], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x10], ecx
movsd xmm0, qword [r14 - 0x10]
mov rax, qword [rdi + 0x50]
movsd qword [rax + 0x14], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x24], edx
mov rax, qword [rdi + 0x50]
movsd xmm0, qword [r8 + r14 - 8]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x38], edx
add qword [rdi + 0x50], 0x3c
cmp rbx, r10
jl 0x180044450
movzx eax, word [rbp + 8]
add dword [rdi + 0x4c], eax
jmp 0x180044b82
movss xmm7, dword [0x1800733e8]
subss xmm10, xmm11
mulss xmm10, xmm7
movaps xmm6, xmm10
addss xmm6, xmm11
test al, al
jne 0x180044696
movaps xmm0, xmm6
lea eax, [r12*4]
mulss xmm0, dword [r13 + 4]
movaps xmm1, xmm6
movsxd rcx, eax
mulss xmm1, dword [r13]
movaps xmm2, xmm10
addss xmm0, dword [rsi + 4]
addss xmm1, dword [rsi]
movss dword [r14 + 4], xmm0
movaps xmm0, xmm10
movss dword [r14], xmm1
movaps xmm1, xmm10
mulss xmm0, dword [r13 + 4]
mulss xmm2, dword [r13]
addss xmm0, dword [rsi + 4]
addss xmm2, dword [rsi]
movss dword [r14 + 0xc], xmm0
movaps xmm0, xmm10
movss dword [r14 + 8], xmm2
mulss xmm0, dword [r13]
mulss xmm1, dword [r13 + 4]
movss xmm2, dword [rsi]
subss xmm2, xmm0
movss xmm0, dword [rsi + 4]
subss xmm0, xmm1
movaps xmm1, xmm6
movss dword [r14 + 0x10], xmm2
movss dword [r14 + 0x14], xmm0
movaps xmm0, xmm6
mulss xmm0, dword [r13]
mulss xmm1, dword [r13 + 4]
movss xmm2, dword [rsi]
subss xmm2, xmm0
movss xmm0, dword [rsi + 4]
subss xmm0, xmm1
movaps xmm1, xmm6
movss dword [r14 + 0x18], xmm2
movss dword [r14 + 0x1c], xmm0
movaps xmm0, xmm6
mulss xmm0, dword [r13 + r10*8 - 4]
mulss xmm1, dword [r13 + r10*8 - 8]
addss xmm0, dword [rsi + r10*8 - 4]
addss xmm1, dword [rsi + r10*8 - 8]
movss dword [r14 + rcx*8 - 0x1c], xmm0
movaps xmm0, xmm10
movss dword [r14 + rcx*8 - 0x20], xmm1
movaps xmm1, xmm10
mulss xmm0, dword [r13 + r10*8 - 4]
mulss xmm1, dword [r13 + r10*8 - 8]
addss xmm0, dword [rsi + r10*8 - 4]
addss xmm1, dword [rsi + r10*8 - 8]
movss dword [r14 + rcx*8 - 0x14], xmm0
movaps xmm0, xmm10
movss dword [r14 + rcx*8 - 0x18], xmm1
movaps xmm1, xmm10
mulss xmm0, dword [r13 + r10*8 - 8]
mulss xmm1, dword [r13 + r10*8 - 4]
movss xmm2, dword [rsi + r10*8 - 8]
subss xmm2, xmm0
movss xmm0, dword [rsi + r10*8 - 4]
subss xmm0, xmm1
movaps xmm1, xmm6
movss dword [r14 + rcx*8 - 0x10], xmm2
movss dword [r14 + rcx*8 - 0xc], xmm0
movaps xmm0, xmm6
mulss xmm0, dword [r13 + r10*8 - 8]
movss xmm2, dword [rsi + r10*8 - 8]
mulss xmm1, dword [r13 + r10*8 - 4]
subss xmm2, xmm0
movss xmm0, dword [rsi + r10*8 - 4]
subss xmm0, xmm1
movss dword [r14 + rcx*8 - 8], xmm2
movss dword [r14 + rcx*8 - 4], xmm0
mov eax, dword [rdi + 0x4c]
mov dword [rbp + 0x100], eax
test r11, r11
jle 0x180044890
mov rdx, rbx
mov r10d, eax
nop
lea rax, [rdx + 1]
cmp r15d, r12d
mov rcx, rbx
mov qword [rbp + 0x20], rax
cmovne rcx, rax
jne 0x1800446ca
mov r8d, dword [rdi + 0x4c]
jmp 0x1800446ce
lea r8d, [r10 + 4]
movss xmm4, dword [r13 + rdx*8 + 4]
lea rax, [rcx*8]
addss xmm4, dword [rax + r13 + 4]
movss xmm5, dword [rax + r13]
lea r9d, [r8 + 1]
addss xmm5, dword [r13 + rdx*8]
shl rcx, 5
lea edx, [r10 + 2]
add rcx, r14
mov dword [rbp + 0x100], r8d
mulss xmm4, xmm7
movaps xmm1, xmm7
add r8w, 2
mulss xmm5, xmm7
movaps xmm3, xmm6
movaps xmm2, xmm4
mulss xmm2, xmm4
movaps xmm0, xmm5
mulss xmm0, xmm5
addss xmm2, xmm0
movaps xmm0, xmm11
maxss xmm1, xmm2
movaps xmm2, xmm6
divss xmm0, xmm1
mulss xmm4, xmm0
mulss xmm5, xmm0
mulss xmm3, xmm4
mulss xmm2, xmm5
movaps xmm1, xmm3
mulss xmm5, xmm10
movaps xmm0, xmm2
mulss xmm4, xmm10
addss xmm0, dword [rax + rsi]
movss dword [rcx], xmm0
movaps xmm0, xmm5
addss xmm1, dword [rax + rsi + 4]
movss dword [rcx + 4], xmm1
movaps xmm1, xmm4
addss xmm0, dword [rax + rsi]
movss dword [rcx + 8], xmm0
addss xmm1, dword [rax + rsi + 4]
movss dword [rcx + 0xc], xmm1
movss xmm0, dword [rax + rsi]
subss xmm0, xmm5
movss dword [rcx + 0x10], xmm0
movss xmm1, dword [rax + rsi + 4]
subss xmm1, xmm4
movss dword [rcx + 0x14], xmm1
movss xmm0, dword [rax + rsi]
subss xmm0, xmm2
movss dword [rcx + 0x18], xmm0
movss xmm1, dword [rax + rsi + 4]
subss xmm1, xmm3
movss dword [rcx + 0x1c], xmm1
lea ecx, [r10 + 1]
mov rax, qword [rdi + 0x58]
mov word [rax], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 2], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 4], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 6], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 8], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xa], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xc], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xe], cx
mov rax, qword [rdi + 0x58]
mov ecx, dword [rbp + 0x100]
mov word [rax + 0x10], r10w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x12], r10w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x14], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x16], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x18], r8w
add r10w, 3
mov rax, qword [rdi + 0x58]
add cx, 3
inc r15d
mov word [rax + 0x1a], dx
mov rax, qword [rdi + 0x58]
mov rdx, qword [rbp + 0x20]
mov word [rax + 0x1c], r10w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x1e], r10w
mov rax, qword [rdi + 0x58]
mov r10d, dword [rbp + 0x100]
mov word [rax + 0x20], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x22], r8w
add qword [rdi + 0x58], 0x24
cmp rdx, r11
jl 0x1800446b0
mov r10, r12
test r10, r10
je 0x18004496b
mov edx, dword [rbp + 0x108]
lea rax, [r10*8 + 0x10]
mov r8d, dword [rbp + 4]
lea rcx, [rax + r13]
sub r14, rax
sub r14, r13
nop word [rax + rax]
movsd xmm0, qword [r14 + rcx]
lea rcx, [rcx + 0x20]
mov rax, qword [rdi + 0x50]
inc rbx
movsd qword [rax], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x10], r8d
movsd xmm0, qword [rcx - 0x28]
mov rax, qword [rdi + 0x50]
movsd qword [rax + 0x14], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x24], edx
movsd xmm0, qword [rcx - 0x20]
mov rax, qword [rdi + 0x50]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x38], edx
mov rax, qword [rdi + 0x50]
movsd xmm0, qword [rcx - 0x18]
movsd qword [rax + 0x3c], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x4c], r8d
add qword [rdi + 0x50], 0x50
cmp rbx, r10
jl 0x1800448c0
movzx eax, word [rbp + 8]
add dword [rdi + 0x4c], eax
jmp 0x180044b82
lea edx, [rax + rax*2]
mov rcx, rdi
add edx, edx
lea r8d, [rax*4]
call fcn.180048b60
test rbx, rbx
jle 0x180044b82
mulss xmm10, dword [0x1800733e8]
xor ebx, ebx
mov eax, ebx
xorps xmm12, xmm12
lea r15d, [rbx + 1]
nop word [rax + rax]
movss xmm2, dword [rsi + rax*8]
lea r13, [rsi + rax*8]
inc rax
mov r14, rbx
cmp r15d, r12d
mov qword [rbp + 0x28], rax
cmovne r14, rax
movss xmm6, dword [rsi + r14*8]
movss xmm7, dword [rsi + r14*8 + 4]
subss xmm6, xmm2
subss xmm7, dword [r13 + 4]
movaps xmm1, xmm6
movaps xmm0, xmm7
mulss xmm1, xmm6
mulss xmm0, xmm7
addss xmm0, xmm1
comiss xmm0, xmm12
jbe 0x180044a14
call fcn.18002b200
movss xmm2, dword [r13]
movaps xmm1, xmm11
divss xmm1, xmm0
mulss xmm6, xmm1
mulss xmm7, xmm1
mov rax, qword [rdi + 0x50]
inc r15d
mov ecx, dword [rbp + 0x108]
mulss xmm7, xmm10
mulss xmm6, xmm10
addss xmm2, xmm7
movss dword [rax], xmm2
movss xmm0, dword [r13 + 4]
mov rax, qword [rdi + 0x50]
subss xmm0, xmm6
movss dword [rax + 4], xmm0
movaps xmm0, xmm7
mov rax, qword [rdi + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x10], ecx
addss xmm0, dword [rsi + r14*8]
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x14], xmm0
movss xmm1, dword [rsi + r14*8 + 4]
mov rax, qword [rdi + 0x50]
subss xmm1, xmm6
movss dword [rax + 0x18], xmm1
movaps xmm1, xmm6
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x24], ecx
movss xmm0, dword [rsi + r14*8]
mov rax, qword [rdi + 0x50]
subss xmm0, xmm7
movss dword [rax + 0x28], xmm0
addss xmm1, dword [rsi + r14*8 + 4]
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x2c], xmm1
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x38], ecx
movss xmm0, dword [r13]
mov rax, qword [rdi + 0x50]
subss xmm0, xmm7
movss dword [rax + 0x3c], xmm0
addss xmm6, dword [r13 + 4]
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x40], xmm6
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x4c], ecx
mov rcx, qword [rdi + 0x58]
movzx eax, word [rdi + 0x4c]
add qword [rdi + 0x50], 0x50
mov word [rcx], ax
movzx ecx, word [rdi + 0x4c]
mov rax, qword [rdi + 0x58]
inc cx
mov word [rax + 2], cx
mov rax, qword [rdi + 0x58]
movzx ecx, word [rdi + 0x4c]
add cx, 2
mov word [rax + 4], cx
mov rcx, qword [rdi + 0x58]
movzx eax, word [rdi + 0x4c]
mov word [rcx + 6], ax
mov rax, qword [rdi + 0x58]
movzx ecx, word [rdi + 0x4c]
add cx, 2
mov word [rax + 8], cx
mov rax, qword [rdi + 0x58]
movzx ecx, word [rdi + 0x4c]
add cx, 3
mov word [rax + 0xa], cx
add qword [rdi + 0x58], 0xc
add dword [rdi + 0x4c], 4
mov rax, qword [rbp + 0x28]
cmp rax, qword [rbp + 0x10]
jl 0x1800449b0
mov rbx, qword [rbp + 0xf0]
movaps xmm6, xmmword [rbp + 0xa0]
movaps xmm7, xmmword [rbp + 0x90]
movaps xmm8, xmmword [rbp + 0x80]
movaps xmm9, xmmword [rbp + 0x70]
movaps xmm10, xmmword [rbp + 0x60]
movaps xmm11, xmmword [rbp + 0x50]
movaps xmm12, xmmword [rbp + 0x40]
movaps xmm13, xmmword [rbp + 0x30]
lea rsp, [rbp + 0xb0]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret