Function at 0x14002bb40
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rbx
mov rbp, rsp
sub rsp, 0x38
mov byte [rbp + 0x18], 1
mov ecx, 0x2c0
movzx eax, byte [rbp + 0x18]
mov byte [rbp + 0x18], 0
movzx eax, byte [rbp + 0x18]
mov byte [rbp + 0x18], al
mov dword [rbp + 0x18], 0x122
mov eax, dword [rbp + 0x18]
cdq
sub eax, edx
sar eax, 1
lea eax, [rax*2 + 2]
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0x73
mov eax, 0x51eb851f
mov r8d, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x18]
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
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x18], edx
xor ebx, ebx
mov dword [rbp + 0x28], 0x1f
mov edx, ebx
mov dword [rbp + 0x18], 1
mov dword [rbp + 0x30], ebx
mov dword [rbp - 0x18], ebx
mov dword [rbp + 0x20], 1
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
nop dword [rax]
cmp edx, 9
jge 0x14002bc33
mov eax, dword [rbp + 0x28]
inc edx
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x18]
add ecx, eax
mov dword [rbp + 0x30], ecx
mov eax, dword [rbp + 0x20]
mov dword [rbp - 0x18], eax
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
cmp ecx, eax
jne 0x14002bc00
mov eax, dword [rbp + 0x18]
cmp eax, 1
jne 0x14002bc41
mov eax, dword [rbp + 0x20]
mov dword [rbp - 0x10], eax
mov eax, dword [rbp + 0x30]
mov ecx, 0x948
mov dword [rbp - 0x10], eax
mov dword [rbp + 0x18], 0xab
mov eax, dword [rbp + 0x18]
xor eax, 0xff
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0xe5
mov edx, ebx
mov eax, dword [rbp + 0x18]
mov dword [rbp - 0x10], eax
mov dword [rbp + 0x20], ebx
mov dword [rbp + 0x28], ebx
mov dword [rbp + 0x30], ebx
mov dword [rbp + 0x18], 0x8c
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x18], 0x7a
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x18]
cmp edx, 0xc
jge 0x14002bcde
mov eax, dword [rbp + 0x18]
inc edx
test eax, eax
je 0x14002bcde
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x10]
cmp ecx, eax
jle 0x14002bcc9
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
cmp eax, ecx
jle 0x14002bcc9
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp - 0x10], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x18], 0x101
jmp 0x14002bc96
mov eax, dword [rbp + 0x30]
mov ecx, 0x6f0
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
movsd xmm0, qword [0x14002d5f0]
mov dword [rbp + 0x30], 0x87
movsd qword [rbp - 0x10], xmm0
mov byte [rbp + 0x18], 0x20
mov byte [rbp + 0x20], 1
movsd xmm0, qword [rbp - 0x10]
mov ecx, dword [rbp + 0x30]
cvttsd2si eax, xmm0
add ecx, eax
mov dword [rbp + 0x28], ecx
movd xmm0, dword [rbp + 0x28]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [rbp - 0x10]
movsd qword [rbp - 0x10], xmm0
movsx ecx, byte [rbp + 0x18]
mov eax, dword [rbp + 0x28]
add al, cl
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x20]
mov eax, dword [rbp + 0x28]
cmp eax, 0x32
jle 0x14002bd4b
mov al, 1
jmp 0x14002bd4d
xor eax, eax
mov byte [rbp + 0x20], al
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov dword [rbp + 0x28], ecx
movsd xmm1, qword [rbp - 0x10]
movd xmm0, dword [rbp + 0x30]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [rbp + 0x30], xmm1
movzx eax, byte [rbp + 0x18]
dec al
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x20]
test al, al
mov eax, 0x66666667
sete byte [rbp + 0x20]
mov ecx, dword [rbp + 0x28]
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 + 0x28], ecx
movsd xmm0, qword [rbp + 0x30]
addsd xmm0, qword [0x14002d670]
movsd qword [rbp + 0x30], xmm0
movzx eax, byte [rbp + 0x18]
add al, 2
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x20]
test al, al
jne 0x14002bdd3
mov eax, dword [rbp + 0x28]
cmp eax, 5
jl 0x14002bdd3
xor eax, eax
jmp 0x14002bdd5
mov al, 1
movsd xmm0, qword [0x14002d690]
mov edx, ebx
mov byte [rbp + 0x18], al
movsd qword [rbp + 0x18], xmm0
movsd xmm1, qword [rbp + 0x18]
divsd xmm1, qword [0x14002d4a8]
movsd qword [rbp + 0x18], xmm1
movsd xmm0, qword [rbp + 0x18]
movsd qword [rbp + 0x18], xmm0
mov dword [rbp + 0x18], 0x6f
mov eax, dword [rbp + 0x18]
mov dword [rbp - 0x10], eax
mov dword [rbp + 0x20], ebx
mov dword [rbp + 0x28], ebx
mov dword [rbp + 0x30], ebx
mov dword [rbp + 0x18], 0xb9
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x18], 0x36
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x18]
cmp edx, 0xc
jge 0x14002be75
mov eax, dword [rbp + 0x18]
inc edx
test eax, eax
je 0x14002be75
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x10]
cmp ecx, eax
jle 0x14002be60
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
cmp eax, ecx
jle 0x14002be60
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp - 0x10], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x18], 0x2b
jmp 0x14002be2d
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x18], eax
mov dword [rbp + 0x28], 0x107
mov dword [rbp + 0x18], 0x108
mov dword [rbp + 0x20], 0x9a
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
mov ecx, ebx
mov eax, dword [rbp + 0x18]
mov cl, 1
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x18], eax
mov edx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x30], ecx
mov ecx, 0x870
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x1e8
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x540
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov byte [rbp + 0x18], 1
movzx eax, byte [rbp + 0x18]
mov byte [rbp + 0x18], bl
movzx eax, byte [rbp + 0x18]
mov byte [rbp + 0x18], al
mov dword [rbp + 0x18], 0x128
mov dword [rbp + 0x20], 0xa4
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
imul ecx, eax
mov dword [rbp + 0x18], ecx
mov dword [rbp + 0x28], 0x106
mov dword [rbp + 0x18], 0xfe
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov eax, dword [rbp + 0x28]
add eax, ecx
mov dword [rbp + 0x30], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x18]
imul ecx, eax
mov eax, dword [rbp + 0x20]
imul eax, ecx
cdq
sub eax, edx
mov edx, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x28]
sar eax, 1
imul edx, ecx
mov ecx, 0x7a8
add edx, eax
mov dword [rbp + 0x18], edx
mov dword [rbp + 0x18], 0x18
mov eax, dword [rbp + 0x18]
sub eax, 0x64
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0x10f
mov dword [rbp + 0x20], 0x12b
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
imul ecx, eax
mov dword [rbp + 0x18], ecx
mov dword [rbp + 0x28], 0xb0
mov dword [rbp + 0x18], 0x8d
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov eax, dword [rbp + 0x28]
add eax, ecx
mov dword [rbp + 0x30], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x18]
imul ecx, eax
mov eax, dword [rbp + 0x20]
imul eax, ecx
cdq
sub eax, edx
mov edx, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x28]
imul edx, ecx
mov ecx, 0x78
sar eax, 1
add edx, eax
mov dword [rbp + 0x18], edx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x150
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov byte [rbp + 0x18], 0x61
mov ecx, 0x1b0
movzx eax, byte [rbp + 0x18]
inc al
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x18]
mov byte [rbp + 0x18], al
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0x109
mov dword [rbp + 0x20], 0x9b
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x18]
sub ecx, eax
mov dword [rbp + 0x20], ecx
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov dword [rbp + 0x20], ecx
mov eax, dword [rbp + 0x20]
mov ecx, dword [rbp + 0x18]
cdq
idiv ecx
mov ecx, 0x2d0
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x660
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0xaf0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
movsd xmm0, qword [0x14002d4c8]
mov dword [rbp + 0x30], 0x89
movsd qword [rbp - 0x10], xmm0
mov byte [rbp + 0x18], 0x11
mov byte [rbp + 0x20], 1
movsd xmm0, qword [rbp - 0x10]
mov ecx, dword [rbp + 0x30]
cvttsd2si eax, xmm0
add ecx, eax
mov dword [rbp + 0x28], ecx
movd xmm0, dword [rbp + 0x28]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [rbp - 0x10]
movsd qword [rbp - 0x10], xmm0
movsx ecx, byte [rbp + 0x18]
mov eax, dword [rbp + 0x28]
add al, cl
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x20]
mov eax, dword [rbp + 0x28]
cmp eax, 0x32
jle 0x14002c0c8
mov al, 1
jmp 0x14002c0ca
xor eax, eax
mov byte [rbp + 0x20], al
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov eax, 0x66666667
mov dword [rbp + 0x28], ecx
movsd xmm1, qword [rbp - 0x10]
movd xmm0, dword [rbp + 0x30]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [rbp + 0x30], xmm1
movzx ecx, byte [rbp + 0x18]
dec cl
mov byte [rbp + 0x18], cl
movzx ecx, byte [rbp + 0x20]
test cl, cl
sete byte [rbp + 0x20]
mov ecx, dword [rbp + 0x28]
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 + 0x28], ecx
movsd xmm0, qword [rbp + 0x30]
addsd xmm0, qword [0x14002d670]
movsd qword [rbp + 0x30], xmm0
movzx eax, byte [rbp + 0x18]
add al, 2
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x20]
test al, al
jne 0x14002c150
mov eax, dword [rbp + 0x28]
cmp eax, 5
jl 0x14002c150
xor eax, eax
jmp 0x14002c152
mov al, 1
mov ecx, 0x5b0
mov byte [rbp + 0x18], al
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x28], 0x7e
mov dword [rbp + 0x18], 0x52
mov dword [rbp + 0x20], 0xa2
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
mov ecx, ebx
mov eax, dword [rbp + 0x20]
mov cl, 1
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
mov edx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x30], ecx
mov ecx, 0x490
mov dword [rbp + 0x18], 0x9d
mov eax, dword [rbp + 0x18]
add eax, 0xa
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x20], 0x9c
mov dword [rbp - 0x18], ebx
mov dword [rbp + 0x30], ebx
mov dword [rbp + 0x18], 1
mov dword [rbp + 0x28], ebx
mov eax, dword [rbp + 0x20]
cmp ebx, 0xa
jge 0x14002c258
mov eax, dword [rbp + 0x20]
inc ebx
mov dword [rbp - 0x18], eax
mov dword [rbp + 0x20], 0xd0
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x30], eax
mov ecx, dword [rbp + 0x30]
mov eax, dword [rbp - 0x18]
cmp ecx, eax
jne 0x14002c224
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
jmp 0x14002c234
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x18]
cmp ecx, eax
jge 0x14002c234
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x28], eax
mov ecx, dword [rbp + 0x30]
mov eax, dword [rbp - 0x18]
cmp ecx, eax
jle 0x14002c245
mov dword [rbp + 0x18], 1
mov ecx, dword [rbp + 0x30]
mov eax, dword [rbp - 0x18]
cmp ecx, eax
jge 0x14002c1f3
mov dword [rbp + 0x18], 1
jmp 0x14002c1f3
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x18], eax
add rsp, 0x38
pop rbx
pop rbp
ret