Function at 0x14000c980
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x40
mov ecx, 0x120
movaps xmmword [rsp + 0x30], xmm6
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x1a0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x20], 0x39
mov eax, dword [rbp + 0x20]
sub eax, 0x64
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x20], 0x13
mov dword [rbp + 0x28], 0xe5
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
add ecx, eax
mov dword [rbp + 0x30], ecx
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
sub ecx, eax
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
imul ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
cdq
idiv ecx
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x20], eax
mov eax, 0x66666667
mov dword [rbp + 0x20], 0x117
mov ecx, dword [rbp + 0x20]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
mov dword [rbp + 0x20], ecx
mov ecx, 0x40
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x30], 0xa5
xor ebx, ebx
mov dword [rbp + 0x20], 1
mov edx, ebx
mov dword [rbp + 0x38], ebx
mov dword [rbp - 0x20], ebx
mov dword [rbp + 0x28], 1
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
cmp edx, 9
jge 0x14000ca86
mov eax, dword [rbp + 0x30]
inc edx
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp - 0x20]
add ecx, eax
mov dword [rbp + 0x38], ecx
mov eax, dword [rbp + 0x28]
mov dword [rbp - 0x20], eax
mov eax, dword [rbp + 0x38]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x20]
inc eax
mov dword [rbp + 0x20], eax
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
cmp ecx, eax
jne 0x14000ca53
mov eax, dword [rbp + 0x20]
cmp eax, 1
jne 0x14000ca94
mov eax, dword [rbp + 0x28]
mov dword [rbp - 0x18], eax
mov eax, dword [rbp + 0x38]
mov dword [rbp - 0x18], eax
mov dword [rbp + 0x20], 0xa7
mov eax, dword [rbp + 0x20]
movss xmm0, dword [0x14002db90]
xor eax, 0xff
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x20], eax
mov byte [rbp + 0x20], 1
movzx eax, byte [rbp + 0x20]
mov byte [rbp + 0x20], bl
movzx eax, byte [rbp + 0x20]
mov byte [rbp + 0x20], al
mov dword [rbp + 0x20], 0xe1
mov dword [rbp + 0x28], 0xff
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov dword [rbp + 0x20], ecx
mov dword [rbp + 0x30], 0xfa
mov dword [rbp + 0x20], 0xca
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov eax, dword [rbp + 0x30]
add eax, ecx
mov dword [rbp + 0x38], eax
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov eax, dword [rbp + 0x28]
imul eax, ecx
cdq
sub eax, edx
mov edx, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x30]
sar eax, 1
imul edx, ecx
add edx, eax
mov dword [rbp + 0x20], edx
movss dword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + 0x20]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x14002d4a0]
cvtpd2ps xmm0, xmm1
movss dword [rbp + 0x20], xmm0
movss xmm1, dword [rbp + 0x20]
movss dword [rbp + 0x20], xmm1
mov dword [rbp + 0x20], 0x92
mov dword [rbp + 0x28], 0x106
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x20], eax
call fcn.14002a020
mov dword [rbp + 0x20], 0xd7
mov dword [rbp + 0x28], 0xa1
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov dword [rbp + 0x20], ecx
mov dword [rbp + 0x30], 0x1e
mov dword [rbp + 0x20], 0x6e
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov eax, dword [rbp + 0x30]
add eax, ecx
mov dword [rbp + 0x38], eax
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov eax, dword [rbp + 0x28]
imul eax, ecx
cdq
sub eax, edx
mov edx, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x30]
sar eax, 1
imul edx, ecx
add edx, eax
mov ecx, 0x600
mov dword [rbp + 0x20], edx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp - 0x18], 0x9a
mov edx, ebx
mov dword [rbp + 0x30], 1
mov rdi, 0xffffffffffffffff
mov dword [rbp + 0x20], ebx
mov dword [rbp + 0x38], ebx
mov dword [rbp + 0x28], 1
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x18]
nop
cmp edx, 7
jge 0x14000cc3f
mov eax, dword [rbp + 0x20]
cmp eax, 0x418937
jg 0x14000cc3c
mov ecx, dword [rbp + 0x28]
inc edx
mov eax, dword [rbp + 0x38]
add ecx, eax
mov dword [rbp + 0x20], ecx
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rbp + 0x30], eax
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x18]
cmp ecx, eax
jne 0x14000cc00
jmp 0x14000cc3f
mov dword [rbp + 0x20], edi
mov eax, dword [rbp + 0x30]
mov ecx, 0x840
mov dword [rbp + 0x20], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x20], 0x67
mov eax, 0x66666667
mov ecx, dword [rbp + 0x20]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
mov dword [rbp + 0x20], ecx
call fcn.14002a7a0
mov ecx, 0xa28
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x8b8
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x8e0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp - 0x18], 0x52
mov edx, ebx
mov dword [rbp + 0x30], 1
mov dword [rbp + 0x20], ebx
mov dword [rbp + 0x38], ebx
mov dword [rbp + 0x28], 1
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x18]
nop
cmp edx, 7
jge 0x14000ccff
mov eax, dword [rbp + 0x20]
cmp eax, 0x418937
jg 0x14000ccfc
mov ecx, dword [rbp + 0x28]
inc edx
mov eax, dword [rbp + 0x38]
add ecx, eax
mov dword [rbp + 0x20], ecx
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rbp + 0x30], eax
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x18]
cmp ecx, eax
jne 0x14000ccc0
jmp 0x14000ccff
mov dword [rbp + 0x20], edi
mov eax, dword [rbp + 0x30]
mov ecx, 0x6e0
mov dword [rbp + 0x20], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x3e0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x30], 0x17
mov dword [rbp + 0x20], 0x68
mov dword [rbp + 0x28], 0x1d
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov ecx, ebx
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x20], eax
mov edx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov eax, dword [rbp + 0x38]
mov dword [rbp + 0x38], ebx
mov eax, 0x51eb851f
mov dword [rbp + 0x20], 0x81
mov r8d, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x20]
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub r8d, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
mov eax, 0x66666667
sub r8d, ecx
mov ecx, 0x200
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x20], edx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
call fcn.140028b00
mov ecx, 0xbb8
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x30], 0x2a
mov dword [rbp + 0x20], 0x35
mov dword [rbp + 0x28], 0x46
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x20], eax
mov ecx, ebx
mov edx, dword [rbp + 0x20]
mov cl, 1
mov eax, dword [rbp + 0x30]
mov eax, dword [rbp + 0x38]
mov dword [rbp + 0x38], ecx
mov dword [rbp + 0x30], 0xa4
mov dword [rbp + 0x20], 1
mov dword [rbp + 0x38], ebx
mov dword [rbp - 0x18], ebx
mov dword [rbp + 0x28], 1
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
cmp ebx, 9
jge 0x14000ce88
mov eax, dword [rbp + 0x30]
inc ebx
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp - 0x18]
add ecx, eax
mov dword [rbp + 0x38], ecx
mov eax, dword [rbp + 0x28]
mov dword [rbp - 0x18], eax
mov eax, dword [rbp + 0x38]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x20]
inc eax
mov dword [rbp + 0x20], eax
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x30]
cmp ecx, eax
jne 0x14000ce55
mov eax, dword [rbp + 0x20]
cmp eax, 1
jne 0x14000ce96
mov eax, dword [rbp + 0x28]
mov dword [rbp - 0x20], eax
mov eax, dword [rbp + 0x38]
mov ecx, 0x848
mov dword [rbp - 0x20], eax
mov byte [rbp + 0x20], 1
movzx eax, byte [rbp + 0x20]
mov byte [rbp + 0x20], 0
movzx eax, byte [rbp + 0x20]
mov byte [rbp + 0x20], al
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x390
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x500
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
call rdi
mov dword [rbp + 0x20], 0xf7
mov eax, 0x51eb851f
mov r8d, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x20]
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub r8d, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
mov eax, 0x66666667
sub r8d, ecx
mov ecx, 0x10
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x20], edx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
movsd xmm0, qword [0x14002d9e0]
mov dword [rbp + 0x38], 0x118
movsd qword [rbp - 0x18], xmm0
mov byte [rbp + 0x20], 0x3c
mov byte [rbp + 0x28], 1
movsd xmm0, qword [rbp - 0x18]
mov ecx, dword [rbp + 0x38]
cvttsd2si eax, xmm0
add ecx, eax
mov dword [rbp + 0x30], ecx
movd xmm0, dword [rbp + 0x30]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [rbp - 0x18]
movsd qword [rbp - 0x18], xmm0
movsx ecx, byte [rbp + 0x20]
mov eax, dword [rbp + 0x30]
add al, cl
mov byte [rbp + 0x20], al
movzx eax, byte [rbp + 0x28]
mov eax, dword [rbp + 0x30]
cmp eax, 0x32
jle 0x14000cf8f
mov al, 1
jmp 0x14000cf91
xor eax, eax
movsd xmm6, qword [0x14002d670]
mov byte [rbp + 0x28], al
mov ecx, dword [rbp + 0x30]
mov eax, dword [rbp + 0x30]
imul ecx, eax
mov eax, 0x66666667
mov dword [rbp + 0x30], ecx
movsd xmm1, qword [rbp - 0x18]
movd xmm0, dword [rbp + 0x38]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [rbp + 0x38], xmm1
movzx ecx, byte [rbp + 0x20]
dec cl
mov byte [rbp + 0x20], cl
movzx ecx, byte [rbp + 0x28]
test cl, cl
sete byte [rbp + 0x28]
mov ecx, dword [rbp + 0x30]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
mov dword [rbp + 0x30], ecx
movsd xmm0, qword [rbp + 0x38]
addsd xmm0, xmm6
movsd qword [rbp + 0x38], xmm0
movzx eax, byte [rbp + 0x20]
add al, 2
mov byte [rbp + 0x20], al
movzx eax, byte [rbp + 0x28]
test al, al
jne 0x14000d01b
mov eax, dword [rbp + 0x30]
cmp eax, 5
jl 0x14000d01b
xor eax, eax
jmp 0x14000d01d
mov al, 1
mov ecx, 0x190
mov byte [rbp + 0x20], al
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
movsd xmm0, qword [0x14002d8a8]
movsd qword [rbp + 0x28], xmm0
movsd xmm1, qword [0x14002d8f8]
movsd qword [rbp + 0x30], xmm1
movsd xmm0, qword [0x14002d858]
movsd qword [rbp + 0x20], xmm0
movsd xmm1, qword [rbp + 0x20]
divsd xmm1, xmm6
movsd qword [rbp + 0x20], xmm1
movsd xmm0, qword [rbp + 0x28]
mulsd xmm0, xmm6
addsd xmm0, qword [rbp + 0x30]
movsd qword [rbp + 0x28], xmm0
movsd xmm1, qword [rbp + 0x28]
movsd xmm0, qword [rbp + 0x20]
mulsd xmm1, xmm0
movsd qword [rbp + 0x20], xmm1
movsd xmm2, qword [rbp + 0x20]
movsd xmm0, qword [rbp + 0x28]
addsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [rbp + 0x20], eax
mov eax, 0x51eb851f
mov ecx, dword [rbp + 0x20]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub ecx, eax
mov eax, 0x51eb851f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x30], xmm0
mov ecx, dword [rbp + 0x20]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x28], xmm0
movsd xmm1, qword [rbp + 0x28]
movsd qword [rbp + 0x20], xmm1
movsd xmm0, qword [rbp + 0x30]
movsd xmm1, qword [0x14002d750]
movsd qword [rbp + 0x20], xmm0
movsd xmm0, qword [0x14002d5f8]
mov dword [rbp + 0x20], 0x8c
mov eax, dword [rbp + 0x20]
sub eax, 0x64
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x20], eax
movsd qword [rbp + 0x28], xmm0
movsd xmm0, qword [0x14002d918]
movsd qword [rbp + 0x30], xmm1
movsd qword [rbp + 0x20], xmm0
movsd xmm1, qword [rbp + 0x20]
divsd xmm1, xmm6
movsd qword [rbp + 0x20], xmm1
movsd xmm0, qword [rbp + 0x28]
mulsd xmm0, xmm6
addsd xmm0, qword [rbp + 0x30]
movsd qword [rbp + 0x28], xmm0
movsd xmm1, qword [rbp + 0x28]
movsd xmm0, qword [rbp + 0x20]
mulsd xmm1, xmm0
movsd qword [rbp + 0x20], xmm1
movsd xmm2, qword [rbp + 0x20]
movsd xmm0, qword [rbp + 0x28]
addsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [rbp + 0x20], eax
mov eax, 0x51eb851f
mov r8d, dword [rbp + 0x20]
movaps xmm6, xmmword [rsp + 0x30]
imul r8d
mov eax, 0x51eb851f
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x64
sub r8d, ecx
movd xmm0, r8d
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x30], xmm0
mov ecx, dword [rbp + 0x20]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x28], xmm0
movsd xmm1, qword [rbp + 0x28]
movsd qword [rbp + 0x20], xmm1
movsd xmm0, qword [rbp + 0x30]
movsd qword [rbp + 0x20], xmm0
add rsp, 0x40
pop rdi
pop rbx
pop rbp
ret