Function at 0x18005b5a0
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 0x18005b5cc
mov rax, rcx
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbx
ret
mov qword [rsp + 0x20], r14
test ebx, ebx
js 0x18005b9f2
jne 0x18005b5e8
lea ecx, [r9*4]
mov r8d, ecx
jmp 0x18005b60d
xor edx, edx
mov eax, 0x7fffffff
div ebx
cmp eax, 4
jl 0x18005b9f2
lea ecx, [r9*4]
mov r8d, ecx
test ecx, ecx
js 0x18005b9f2
test r15d, r15d
js 0x18005b9f2
je 0x18005b62b
xor edx, edx
mov eax, 0x7fffffff
div r15d
cmp r8d, eax
jg 0x18005b9f2
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 0x18005b9f2
mov qword [rsp + 0x58], rdi
xor edi, edi
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x60], r13
test r15d, r15d
jle 0x18005b98e
lea r11d, [rbx - 1]
lea ebp, [r12*8 - 6]
lea r13, [0x180000000]
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.0x18005b6b0.9
movsxd rcx, ebp
mov edx, dword [r13 + rcx*4 + 0x5ba30]
add rdx, r13
jmp rdx
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b6c0
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b6f0
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b720
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
nop
sub edx, 1
movzx ecx, byte [r9]
mov byte [rax], cl
lea rax, [rax + 1]
lea r9, [r9 + 2]
jns 0x18005b750
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b780
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b7b0
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b7e2
jmp 0x18005b983
mov r10d, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b820
jmp 0x18005b983
mov r10d, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b870
jmp 0x18005b983
mov r10d, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b8c0
jmp 0x18005b983
mov r10d, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b910
jmp 0x18005b983
mov edx, r11d
test r11d, r11d
js 0x18005b983
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 0x18005b960
inc edi
cmp edi, r15d
jl 0x18005b680
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 edx, dword [0x180156b00]
mov rax, qword gs:[0x58]
mov ecx, 0x38
mov rax, qword [rax + rdx*8]
lea rdx, str.unsupported
mov qword [rcx + rax], rdx
xor eax, eax
jmp 0x18005b99a
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [0x180156b00]
mov rax, qword gs:[0x58]
mov r14, qword [rsp + 0x20]
mov ecx, 0x38
mov rax, qword [rax + rdx*8]
lea rdx, str.outofmem
mov qword [rcx + rax], rdx
xor eax, eax
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbx
ret