Function at 0x7c5510
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r14
push r13
push rdi
push rsi
push rbx
sub rsp, 0x30
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x20]
movzx rax, byte [rcx + 0x80]
mov rax, qword [rcx + rax*8 + 0x70]
movzx rax, byte [rax]
sub al, 1
test al, al
je 0x7c5563
sub al, 1
test al, al
je 0x7c55d7
sub al, 1
test al, al
je 0x7c5647
sub al, 1
test al, al
jne 0x7c57f9
jmp 0x7c5705
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x3c]
add eax, 1
mov rcx, qword [rsp + 0x20]
mov edx, dword [rcx + 0x38]
mov edi, eax
cmp edi, edx
ja 0x7c55d1
sub edx, eax
add edx, 1
mov rcx, qword [rsp + 0x20]
movzx rax, byte [rcx + 0x80]
mov rcx, qword [rcx + rax*8 + 0x70]
mov eax, edi
mov r9, qword [rsp + 0x20]
movzx r8, byte [r9 + 0x80]
mov r8, qword [r9 + r8*8 + 0x70]
mov r9d, edi
mov r10, qword [rsp + 0x20]
sub r9d, dword [r10 + 0x3c]
mov r9d, r9d
movzx r10, byte [rcx + rax]
add r10b, byte [r8 + r9]
and r10b, 0xff
mov byte [rcx + rax], r10b
add edi, 1
sub edx, 1
test edx, edx
jne 0x7c5581
nop
jmp 0x7c57f9
mov eax, 1
mov rcx, qword [rsp + 0x20]
mov r8d, dword [rcx + 0x38]
mov edi, eax
cmp edi, r8d
ja 0x7c5641
sub r8d, eax
add r8d, 1
mov rax, qword [rsp + 0x20]
movzx rax, byte [rax + 0x80]
movzx rcx, al
mov rdx, qword [rsp + 0x20]
mov rdx, qword [rdx + rcx*8 + 0x70]
mov ecx, edi
test al, al
sete al
movzx rax, al
mov r9, qword [rsp + 0x20]
mov rax, qword [r9 + rax*8 + 0x70]
movzx r9, byte [rdx + rcx]
add r9b, byte [rax + rcx]
and r9b, 0xff
mov byte [rdx + rcx], r9b
add edi, 1
sub r8d, 1
test r8d, r8d
jne 0x7c55f4
nop
jmp 0x7c57f9
mov eax, 1
mov rcx, qword [rsp + 0x20]
mov r9d, dword [rcx + 0x38]
mov edi, eax
cmp edi, r9d
ja 0x7c56ff
sub r9d, eax
add r9d, 1
mov rax, qword [rsp + 0x20]
movzx rcx, byte [rax + 0x80]
mov r8d, edi
test cl, cl
sete al
movzx rax, al
mov rdx, qword [rsp + 0x20]
mov rax, qword [rdx + rax*8 + 0x70]
movzx rax, byte [rax + r8]
mov rdx, qword [rsp + 0x20]
mov edx, dword [rdx + 0x3c]
mov r10d, edi
sub r10d, 1
cmp r10d, edx
jae 0x7c56a8
xor ebx, ebx
jmp 0x7c56c4
movzx r10, cl
mov r11, qword [rsp + 0x20]
mov r10, qword [r11 + r10*8 + 0x70]
mov r11d, edi
sub r11d, edx
mov r11d, r11d
movzx rbx, byte [r10 + r11]
movzx rcx, cl
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rdx + rcx*8 + 0x70]
add ebx, eax
mov r10d, 2
mov eax, ebx
cdq
idiv r10d
movzx rdx, byte [rcx + r8]
add dl, al
and dl, 0xff
mov byte [rcx + r8], dl
add edi, 1
sub r9d, 1
test r9d, r9d
jne 0x7c5668
nop
jmp 0x7c57f9
xor ebx, ebx
xor esi, esi
mov eax, 1
mov rcx, qword [rsp + 0x20]
mov r14d, dword [rcx + 0x38]
mov edi, eax
cmp edi, r14d
ja 0x7c57f8
sub r14d, eax
add r14d, 1
mov rax, qword [rsp + 0x20]
movzx rcx, byte [rax + 0x80]
mov r13d, edi
test cl, cl
sete al
movzx rax, al
mov rdx, qword [rsp + 0x20]
mov rax, qword [rdx + rax*8 + 0x70]
movzx rax, byte [rax + r13]
mov rdx, qword [rsp + 0x20]
mov edx, dword [rdx + 0x3c]
mov r8d, edi
sub r8d, 1
cmp r8d, edx
jb 0x7c57a6
mov r8d, edi
sub r8d, edx
mov edx, r8d
movzx r8, cl
mov r9, qword [rsp + 0x20]
mov r8, qword [r9 + r8*8 + 0x70]
movzx rbx, byte [r8 + rdx]
mov r8, qword [rsp + 0x20]
cmp byte [r8 + 0x80], 0
sete r8b
movzx r8, r8b
mov r9, qword [rsp + 0x20]
mov r8, qword [r9 + r8*8 + 0x70]
movzx rsi, byte [r8 + rdx]
movzx rcx, cl
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rdx + rcx*8 + 0x70]
movzx rcx, byte [rcx + r13]
mov dword [rsp + 0x2c], ecx
mov ecx, ebx
mov edx, eax
mov r8d, esi
call fcn.007c11b0
mov rdx, qword [rsp + 0x20]
movzx rcx, byte [rdx + 0x80]
mov rcx, qword [rdx + rcx*8 + 0x70]
mov edx, dword [rsp + 0x2c]
add al, dl
and al, 0xff
mov byte [rcx + r13], al
add edi, 1
sub r14d, 1
test r14d, r14d
jne 0x7c572a
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r13
pop r14
ret