Function at 0x140002500
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbx
push rsi
push r12
push r15
sub rsp, 0x28
mov r15d, dword [rsp + 0x70]
mov ebx, r9d
mov r12d, edx
mov rsi, rcx
cmp edx, 4
jne 0x14000252c
mov rax, rcx
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbx
ret
mov qword [rsp + 0x20], r14
test ebx, ebx
js 0x14000294b
jne 0x140002548
lea ecx, [r9*4]
mov r8d, ecx
jmp 0x14000256d
xor edx, edx
mov eax, 0x7fffffff
div ebx
cmp eax, 4
jl 0x14000294b
lea ecx, [r9*4]
mov r8d, ecx
test ecx, ecx
js 0x14000294b
test r15d, r15d
js 0x14000294b
je 0x14000258b
xor edx, edx
mov eax, 0x7fffffff
div r15d
cmp r8d, eax
jg 0x14000294b
imul ecx, r15d
movsxd rcx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x14000294b
mov qword [rsp + 0x58], rdi
xor edi, edi
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x60], r13
test r15d, r15d
jle 0x1400028ee
lea r11d, [rbx - 1]
lea ebp, [r12*8 - 6]
lea r13, [0x140000000]
nop dword [rax]
nop word [rax + rax]
mov r9d, edi
mov eax, edi
imul r9d, r12d
imul eax, ebx
imul r9d, ebx
shl eax, 2
add rax, r14
add r9, rsi
cmp ebp, 0x19
ja case.0x140002610.9
movsxd rcx, ebp
mov edx, dword [r13 + rcx*4 + 0x2984]
add rdx, r13
jmp rdx
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax], cl
lea r9, [r9 + 1]
mov byte [rax + 1], 0xff
lea rax, [rax + 2]
jns 0x140002620
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop dword [rax + rax]
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax + 2], cl
lea r9, [r9 + 1]
mov byte [rax + 1], cl
mov byte [rax], cl
lea rax, [rax + 3]
jns 0x140002650
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop word [rax + rax]
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax + 2], cl
lea r9, [r9 + 1]
mov byte [rax + 1], cl
mov byte [rax], cl
mov byte [rax + 3], 0xff
lea rax, [rax + 4]
jns 0x140002680
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax], cl
lea rax, [rax + 1]
lea r9, [r9 + 2]
jns 0x1400026b0
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop dword [rax]
nop dword [rax + rax]
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax + 2], cl
lea r9, [r9 + 2]
mov byte [rax + 1], cl
mov byte [rax], cl
lea rax, [rax + 3]
jns 0x1400026e0
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop word [rax + rax]
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax + 2], cl
lea r9, [r9 + 2]
mov byte [rax + 1], cl
mov byte [rax], cl
lea rax, [rax + 4]
movzx ecx, byte [r9 - 1]
mov byte [rax - 1], cl
jns 0x140002710
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax], cl
lea rax, [rax + 4]
movzx ecx, byte [r9 + 1]
lea r9, [r9 + 3]
mov byte [rax - 3], cl
movzx ecx, byte [r9 - 1]
mov byte [rax - 2], cl
mov byte [rax - 1], 0xff
jns 0x140002742
jmp 0x1400028e3
mov r10d, r11d
test r11d, r11d
js 0x1400028e3
nop word [rax + rax]
movzx ecx, byte [r9 + 1]
lea rax, [rax + 1]
imul r8d, ecx, 0x96
movzx ecx, byte [r9 + 2]
lea r9, [r9 + 3]
imul edx, ecx, 0x1d
movzx ecx, byte [r9 - 3]
add r8d, edx
imul edx, ecx, 0x4d
add r8d, edx
shr r8d, 8
sub r10d, 1
mov byte [rax - 1], r8b
jns 0x140002780
jmp 0x1400028e3
mov r10d, r11d
test r11d, r11d
js 0x1400028e3
nop dword [rax]
movzx ecx, byte [r9 + 1]
lea rax, [rax + 2]
imul r8d, ecx, 0x96
movzx ecx, byte [r9 + 2]
lea r9, [r9 + 3]
imul edx, ecx, 0x1d
movzx ecx, byte [r9 - 3]
mov byte [rax - 1], 0xff
add r8d, edx
imul edx, ecx, 0x4d
add r8d, edx
shr r8d, 8
sub r10d, 1
mov byte [rax - 2], r8b
jns 0x1400027d0
jmp 0x1400028e3
mov r10d, r11d
test r11d, r11d
js 0x1400028e3
nop dword [rax]
movzx ecx, byte [r9 + 1]
lea rax, [rax + 1]
imul r8d, ecx, 0x96
movzx ecx, byte [r9 + 2]
lea r9, [r9 + 4]
imul edx, ecx, 0x1d
movzx ecx, byte [r9 - 4]
add r8d, edx
imul edx, ecx, 0x4d
add r8d, edx
shr r8d, 8
sub r10d, 1
mov byte [rax - 1], r8b
jns 0x140002820
jmp 0x1400028e3
mov r10d, r11d
test r11d, r11d
js 0x1400028e3
nop dword [rax]
movzx ecx, byte [r9 + 1]
lea rax, [rax + 2]
imul r8d, ecx, 0x96
movzx ecx, byte [r9 + 2]
lea r9, [r9 + 4]
imul edx, ecx, 0x1d
movzx ecx, byte [r9 - 4]
add r8d, edx
imul edx, ecx, 0x4d
add r8d, edx
shr r8d, 8
sub r10d, 1
mov byte [rax - 2], r8b
movzx ecx, byte [r9 - 1]
mov byte [rax - 1], cl
jns 0x140002870
jmp 0x1400028e3
mov edx, r11d
test r11d, r11d
js 0x1400028e3
nop word [rax + rax]
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax], cl
lea rax, [rax + 3]
movzx ecx, byte [r9 + 1]
lea r9, [r9 + 4]
mov byte [rax - 2], cl
movzx ecx, byte [r9 - 2]
mov byte [rax - 1], cl
jns 0x1400028c0
inc edi
cmp edi, r15d
jl 0x1400025e0
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, r14
mov r13, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbx
ret
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword gs:[0x58]
mov edx, 0x28
mov rcx, qword [rax]
lea rax, str.unsupported
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x1400028fa
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword gs:[0x58]
mov r14, qword [rsp + 0x20]
mov edx, 0x28
mov rcx, qword [rax]
lea rax, str.outofmem
mov qword [rdx + rcx], rax
xor eax, eax
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbx
ret