Function at 0x140011970
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x90
or rbp, 0xffffffffffffffff
mov rbx, rcx
mov rcx, qword [rcx + 0x90]
mov rax, rbp
mov r14, rdx
inc rax
cmp byte [rcx + rax], 0
jne 0x140011990
test rax, rax
je 0x140011d77
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xc8], r15
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x60], xmm8
xor r15d, r15d
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x40], xmm11
movss xmm11, dword [0x14003e4fc]
cmp word [rbx + 0x12e], r15w
je 0x140011a51
lea rdx, [rsp + 0xb0]
mov rcx, rbx
mov word [rsp + 0xb0], 0x3c
call fcn.140003620
mov word [rsp + 0x30], r15w
mov rdx, r14
movss xmm3, dword [rbx + 0xc]
movss dword [rsp + 0x28], xmm11
movzx ecx, ax
mov byte [rsp + 0x20], 0x3c
subss xmm3, dword [0x14003e4dc]
movd xmm2, ecx
mov rcx, rbx
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x14003e5c8]
xorps xmm2, xmmword [0x14003e600]
subss xmm2, dword [rbx + 0x14]
call fcn.140003310
xorps xmm8, xmm8
mov edi, 2
mov esi, edi
movaps xmm6, xmm8
mov rax, qword [rbx + 0xd0]
cmp byte [rax + rsi], 0x53
jne 0x140011a7c
movsx ecx, byte [rax + rsi + 1]
call qword [sym.imp.MSVCR120.dll_isdigit]
test eax, eax
je 0x140011aa4
mov rax, qword [rbx + 0xd0]
add edi, 2
movsx ecx, byte [rax + rsi + 1]
sub ecx, 0x30
add rsi, 2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x14]
addss xmm6, xmm0
jmp 0x140011a60
movss xmm0, dword [rbx + 0x14]
movss xmm9, dword [rbx + 0xc]
add edi, 2
movaps xmm7, xmm8
movsxd rsi, edi
mulss xmm0, dword [0x14003e528]
subss xmm9, dword [0x14003e4dc]
subss xmm0, dword [0x14003e4cc]
addss xmm6, xmm0
nop word [rax + rax]
mov rax, qword [rbx + 0xd0]
cmp byte [rax + rsi], 0x4c
jne 0x140011afc
movsx ecx, byte [rax + rsi + 1]
call qword [sym.imp.MSVCR120.dll_isdigit]
test eax, eax
je 0x140011b24
mov rax, qword [rbx + 0xd0]
add edi, 2
movsx ecx, byte [rax + rsi + 1]
sub ecx, 0x30
add rsi, 2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x14]
addss xmm7, xmm0
jmp 0x140011ae0
mulss xmm7, dword [0x14003e4e0]
mov rsi, r15
nop
mov rax, qword [rbx + 0x90]
mov word [rsp + 0x30], r15w
movaps xmm3, xmm9
movzx eax, byte [rsi + rax]
movaps xmm2, xmm6
mov rdx, r14
movss dword [rsp + 0x28], xmm11
mov rcx, rbx
mov byte [rsp + 0x20], al
call fcn.140003310
inc rsi
addss xmm6, xmm7
cmp rsi, 4
jl 0x140011b30
subss xmm6, dword [rbx + 0x14]
add edi, 2
movsxd rsi, edi
nop word [rax + rax]
mov rax, qword [rbx + 0xd0]
cmp byte [rax + rsi], 0x53
jne 0x140011b9c
movsx ecx, byte [rax + rsi + 1]
call qword [sym.imp.MSVCR120.dll_isdigit]
test eax, eax
je 0x140011bc4
mov rax, qword [rbx + 0xd0]
add edi, 2
movsx ecx, byte [rax + rsi + 1]
sub ecx, 0x30
add rsi, 2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x14]
addss xmm6, xmm0
jmp 0x140011b80
mov rsi, qword [rsp + 0xb8]
lea eax, [rdi + 2]
movaps xmm7, xmm8
movsxd rdi, eax
nop word [rax + rax]
mov rax, qword [rbx + 0xd0]
cmp byte [rax + rdi], 0x4c
jne 0x140011bfc
movsx ecx, byte [rax + rdi + 1]
call qword [sym.imp.MSVCR120.dll_isdigit]
test eax, eax
je 0x140011c21
mov rax, qword [rbx + 0xd0]
movsx ecx, byte [rax + rdi + 1]
sub ecx, 0x30
add rdi, 2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x14]
addss xmm7, xmm0
jmp 0x140011be0
mulss xmm7, dword [0x14003e4e0]
mov rdi, r15
nop dword [rax]
mov rax, qword [rbx + 0x90]
mov word [rsp + 0x30], r15w
movaps xmm3, xmm9
movzx eax, byte [rdi + rax + 4]
movaps xmm2, xmm6
mov rdx, r14
movss dword [rsp + 0x28], xmm11
mov rcx, rbx
mov byte [rsp + 0x20], al
call fcn.140003310
inc rdi
addss xmm6, xmm7
cmp rdi, 3
jl 0x140011c30
mov rax, qword [rbx + 0xe8]
mov word [rsp + 0x30], r15w
movaps xmm3, xmm9
movzx eax, byte [rax]
movaps xmm2, xmm6
mov rdx, r14
movss dword [rsp + 0x28], xmm11
mov rcx, rbx
mov byte [rsp + 0x20], al
call fcn.140003310
mov rax, qword [rbx + 0x98]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
inc rbp
cmp byte [rax + rbp], r15b
jne 0x140011cb3
test rbp, rbp
jne 0x140011d5b
cmp word [rbx + 0x12e], 1
jne 0x140011d5b
mov rax, qword [rbx + 0xd0]
cmp byte [rax], r15b
je 0x140011d27
mov rdi, r15
movsx ecx, byte [rax + rdi + 1]
call qword [sym.imp.MSVCR120.dll_isdigit]
test eax, eax
je 0x140011d17
mov rax, qword [rbx + 0xd0]
movsx ecx, byte [rax + rdi + 1]
sub ecx, 0x30
add rdi, 2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x14]
addss xmm8, xmm0
jmp 0x140011d1a
inc rdi
mov rax, qword [rbx + 0xd0]
cmp byte [rax + rdi], r15b
jne 0x140011ce2
movss xmm3, dword [rbx + 0xc]
addss xmm8, dword [rbx + 0x14]
mov word [rsp + 0x30], r15w
mov rdx, r14
mov rcx, rbx
subss xmm3, dword [0x14003e4dc]
movaps xmm2, xmm8
movss dword [rsp + 0x28], xmm11
mov byte [rsp + 0x20], 0x3e
call fcn.140003310
movaps xmm8, xmmword [rsp + 0x60]
mov r15, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xc0]
movaps xmm11, xmmword [rsp + 0x40]
add rsp, 0x90
pop r14
pop rbp
pop rbx
ret