Function at 0xc636c0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbp
push r14
push r13
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rbp, rsp
mov rbx, rcx
mov esi, edx
mov qword [rbp + 0x60], r8
mov edi, r9d
xor r13, r13
cmp qword [rbp + 0xd8], 0
je 0xc63740
mov rax, qword [rbp + 0xd8]
cmp qword [rax + 0x858], 0
je 0xc63732
mov rax, qword [rbp + 0xd8]
cmp qword [rax + 0x848], 0
je 0xc63722
mov rax, qword [rbp + 0xd8]
mov rcx, qword [rax + 0x848]
call fcn.00c3e200
test al, al
jne 0xc63732
mov rax, qword [rbp + 0xd8]
mov r13, qword [rax + 0x858]
jmp 0xc63740
mov rax, qword [rbp + 0xd8]
mov r13, qword [rax + 0x848]
call fcn.00ad82f0
cmp byte [rax + 0xf0], 0
je 0xc637f3
cmp qword [rbp + 0xd8], 0
je 0xc637f3
test r13, r13
je 0xc637f3
mov rcx, r13
call fcn.00c3e200
test al, al
je 0xc637f3
cmp byte [r13 + 0x38], 0
jne 0xc637f3
mov rcx, qword [rbp + 0xd8]
call fcn.00c47680
mov rcx, rax
call fcn.00c3e200
test al, al
je 0xc637f3
mov rcx, r13
movzx rdx, sil
call fcn.00c3e580
test al, al
je 0xc637f3
mov rcx, qword [rbp + 0xd8]
call fcn.00c47680
mov rcx, r13
mov rdx, rax
movzx r8, sil
movzx r9, dil
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], rbx
mov rax, qword [rbp + 0x60]
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0xd0]
mov dword [rsp + 0x40], eax
call fcn.00c3e810
test al, al
jne 0xc63cbf
movzx rsi, sil
cmp rsi, 4
jg 0xc6383d
cmp rsi, 4
je 0xc63c0a
sub rsi, 1
cmp rsi, 0xffffffffffffffff
je 0xc638d6
test rsi, rsi
je 0xc639d6
sub rsi, 1
test rsi, rsi
je 0xc63b52
sub rsi, 1
test rsi, rsi
jne 0xc63cbf
jmp 0xc63b84
sub rsi, 5
test rsi, rsi
je 0xc63872
sub rsi, 1
test rsi, rsi
je 0xc638fb
sub rsi, 1
test rsi, rsi
je 0xc63967
sub rsi, 1
test rsi, rsi
jne 0xc63cbf
jmp 0xc63c69
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
xor r13, r13
mov eax, dword [rbp + 0xd0]
sub eax, 1
cmp r13d, eax
jg 0xc638d0
add eax, 1
movzx rcx, byte [rbx]
mov rdx, qword [rbp + 0x58]
mov byte [rdx + 2], cl
movzx rcx, byte [rbx]
mov rdx, qword [rbp + 0x58]
mov byte [rdx + 1], cl
movzx rcx, byte [rbx]
mov rdx, qword [rbp + 0x58]
mov byte [rdx], cl
add rdx, 3
mov qword [rbp + 0x58], rdx
add rbx, 1
add r13d, 1
cmp r13d, eax
jne 0xc6389b
nop
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rcx, qword [rbp + 0x60]
mov rdx, rbx
mov r8d, dword [rbp + 0xd0]
call fcn.00b29190
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
xor r13, r13
mov eax, dword [rbp + 0xd0]
sub eax, 1
cmp r13d, eax
jg 0xc63961
add eax, 1
movzx ecx, word [rbx]
shr ecx, 8
mov rdx, qword [rbp + 0x58]
mov byte [rdx + 2], cl
movzx ecx, word [rbx + 2]
shr ecx, 8
mov rdx, qword [rbp + 0x58]
mov byte [rdx + 1], cl
movzx ecx, word [rbx + 4]
shr ecx, 8
mov rdx, qword [rbp + 0x58]
mov byte [rdx], cl
add rdx, 3
mov qword [rbp + 0x58], rdx
add rbx, 6
add r13d, 1
cmp r13d, eax
jne 0xc63924
nop
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
xor r13, r13
mov eax, dword [rbp + 0xd0]
sub eax, 1
cmp r13d, eax
jg 0xc639d0
add eax, 1
movzx rcx, byte [rbx]
and cl, 0xff
mov rdx, qword [rbp + 0x58]
mov byte [rdx + 2], cl
movzx rcx, byte [rbx + 2]
and cl, 0xff
mov rdx, qword [rbp + 0x58]
mov byte [rdx + 1], cl
movzx rcx, byte [rbx + 4]
and cl, 0xff
mov rdx, qword [rbp + 0x58]
mov byte [rdx], cl
add rdx, 3
mov qword [rbp + 0x58], rdx
add rbx, 6
add r13d, 1
cmp r13d, eax
jne 0xc63990
nop
jmp 0xc63cbf
sub dil, 1
test dil, dil
je 0xc63b33
sub dil, 1
test dil, dil
je 0xc63a07
sub dil, 2
test dil, dil
je 0xc63a4d
sub dil, 1
test dil, dil
jne 0xc63cbf
jmp 0xc63aa2
mov qword [rbp + 0x58], rbx
mov rbx, qword [rbp + 0x60]
xor r13, r13
mov esi, dword [rbp + 0xd0]
sub esi, 1
cmp r13d, esi
jg 0xc63a47
add esi, 1
mov rcx, qword [rbp + 0x58]
call fcn.00c63560
mov dword [rbx], eax
mov rax, qword [rbp + 0x58]
add rax, 3
mov qword [rbp + 0x58], rax
add rbx, 4
add r13d, 1
cmp r13d, esi
jne 0xc63a23
nop
jmp 0xc63cbf
mov qword [rbp + 0x58], rbx
mov rbx, qword [rbp + 0x60]
xor r13, r13
mov r14d, dword [rbp + 0xd0]
sub r14d, 1
cmp r13d, r14d
jg 0xc63a9c
add r14d, 1
lea rcx, [rbp + 0x68]
mov rdx, qword [rbp + 0x58]
call fcn.00ac62f0
mov rdi, rbx
lea rsi, [rbp + 0x68]
movsw word [rdi], word [rsi]
movsb byte [rdi], byte [rsi]
mov rax, qword [rbp + 0x58]
add rax, 3
mov qword [rbp + 0x58], rax
add rbx, 3
add r13d, 1
cmp r13d, r14d
jne 0xc63a6c
nop
jmp 0xc63cbf
call fcn.00ad82f0
mov esi, dword [rax + 0x104]
call fcn.00ad82f0
mov edi, dword [rax + 0x108]
call fcn.00ad82f0
mov r8d, dword [rax + 0x10c]
mov qword [rbp + 0x58], rbx
mov rcx, qword [rbp + 0x60]
xor r13, r13
mov r9d, dword [rbp + 0xd0]
sub r9d, 1
cmp r13d, r9d
jg 0xc63b2d
add r9d, 1
mov rax, qword [rbp + 0x58]
movzx rdx, byte [rax + 2]
imul edx, esi
movzx r10, byte [rax + 1]
imul r10d, edi
add edx, r10d
movzx rax, byte [rax]
imul eax, r8d
add edx, eax
mov r10d, 0x64
mov eax, edx
cdq
idiv r10d
mov byte [rcx], al
mov rax, qword [rbp + 0x58]
add rax, 3
mov qword [rbp + 0x58], rax
add rcx, 1
add r13d, 1
cmp r13d, r9d
jne 0xc63ae3
nop
jmp 0xc63cbf
mov rcx, rbx
mov rdx, qword [rbp + 0x60]
mov r8d, dword [rbp + 0xd0]
lea r8, [r8 + r8*2]
movsxd r8, r8d
call fcn.004093d0
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
lea rcx, [rbp + 0x68]
mov rdx, rbx
mov r8, qword [rbp + 0x60]
mov r9d, dword [rbp + 0xd0]
mov qword [rsp + 0x20], 0
call fcn.00c633a0
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
xor r13, r13
mov r14d, dword [rbp + 0xd0]
sub r14d, 1
cmp r13d, r14d
jg 0xc63c04
add r14d, 1
mov rax, rbx
mov cl, 0xff
sub cl, byte [rax]
mov byte [rax], cl
mov cl, 0xff
sub cl, byte [rax + 1]
mov byte [rax + 1], cl
mov cl, 0xff
sub cl, byte [rax + 2]
mov byte [rax + 2], cl
mov cl, 0xff
sub cl, byte [rax + 3]
mov byte [rax + 3], cl
lea rcx, [rbp + 0x68]
mov edx, dword [rbx]
call fcn.00c62ee0
mov rdi, qword [rbp + 0x58]
lea rsi, [rbp + 0x68]
movsw word [rdi], word [rsi]
movsb byte [rdi], byte [rsi]
mov rax, qword [rbp + 0x58]
add rax, 3
mov qword [rbp + 0x58], rax
add rbx, 4
add rbx, 2
add r13d, 1
cmp r13d, r14d
jne 0xc63bb0
nop
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
xor r13, r13
mov r14d, dword [rbp + 0xd0]
sub r14d, 1
cmp r13d, r14d
jg 0xc63c66
add r14d, 1
lea rcx, [rbp + 0x68]
mov rdx, rbx
call fcn.00ac66a0
mov rdi, qword [rbp + 0x58]
lea rsi, [rbp + 0x68]
movsw word [rdi], word [rsi]
movsb byte [rdi], byte [rsi]
add rbx, 3
mov rax, qword [rbp + 0x58]
add rax, 3
mov qword [rbp + 0x58], rax
add r13d, 1
cmp r13d, r14d
jne 0xc63c36
nop
jmp 0xc63cbf
sub dil, 1
test dil, dil
jne 0xc63cbf
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
xor r13, r13
mov esi, dword [rbp + 0xd0]
sub esi, 1
cmp r13d, esi
jg 0xc63cbe
add esi, 1
mov rcx, qword [rbp + 0x58]
movzx rdx, byte [rbx]
movzx r8, byte [rbx + 1]
movzx r9, byte [rbx + 2]
call fcn.00acd230
add rbx, 3
mov rax, qword [rbp + 0x58]
add rax, 3
mov qword [rbp + 0x58], rax
add r13d, 1
cmp r13d, esi
jne 0xc63c8e
nop
lea rsp, [rbp + 0x78]
pop rbx
pop rsi
pop rdi
pop r13
pop r14
pop rbp
ret