Function at 0x1400aa100
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov edx, dword [r8 + 0x10]
mov r8d, dword [r8 + 0x14]
shl rdx, 0x10
shl r8, 0x28
add rdx, r8
movabs r8, 0xc03349c08b49
mov rbx, rcx
mov rcx, qword [rcx + 0x20]
add rdx, r8
mov r9d, dword [rbx + 0x28]
mov rax, r9
mov qword [rcx + r9], rdx
mov rdx, qword [0x140232d50]
add eax, 6
mov dword [rbx + 0x28], eax
mov r8d, dword [rdx + 0x150]
add rcx, rax
add rdx, 0x134
mov rsi, r8
call sub.msvcrt.dll_memcpy
add esi, dword [rbx + 0x28]
lea r8, [0x1400a8fba]
lea rdx, [0x1400a8f6e]
mov rdi, r8
mov dword [rbx + 0x28], esi
mov ecx, esi
add rcx, qword [rbx + 0x20]
sub rdi, rdx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov r8d, edi
add r8d, dword [rbx + 0x28]
cmp byte [rbx + 0x3c], 0
mov dword [rbx + 0x28], r8d
je 0x1400aa1a8
lea eax, [r8 + 9]
xor eax, r8d
cmp eax, 0x1f
ja 0x1400aa230
mov r9, qword [rbx + 0x20]
mov eax, r8d
lea rcx, [0x1400a8b80]
lea edx, [r8 + 5]
movabs rsi, 0x850f01eb83
mov qword [r9 + rax], rsi
lea rax, [0x1400a8dc0]
sub rax, rcx
mov dword [rbx + 0x28], edx
sub eax, 4
sub eax, edx
mov dword [r9 + rdx], eax
mov eax, dword [rbx + 0x28]
lea r9, [0x1400a9680]
mov rdx, qword [rbx + 0x20]
add eax, 4
mov dword [rbx + 0x28], eax
mov byte [rdx + rax], 0xe9
mov eax, dword [rbx + 0x28]
mov r8, qword [rbx + 0x20]
lea ecx, [rax + 1]
lea rax, [0x1400a95c0]
sub eax, r9d
mov dword [rbx + 0x28], ecx
add eax, 0x10000
and eax, 0xffffffc0
sub eax, 4
sub eax, ecx
mov dword [r8 + rcx], eax
add dword [rbx + 0x28], 4
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
mov eax, r8d
mov r10d, 0x20
and eax, 0x1f
sub r10d, eax
cmp r10d, 8
ja 0x1400aa2a0
mov edx, 0x1f
mov r9, qword [rbx + 0x20]
mov r11d, r10d
sub edx, eax
lea rax, [0x14022c100]
mov rcx, qword [rax + rdx*8]
add r8, r9
mov eax, r11d
cmp r11d, 8
jae 0x1400aa310
and r11d, 4
jne 0x1400aa3b8
test eax, eax
je 0x1400aa28e
movzx edx, byte [rcx]
mov byte [r8], dl
test al, 2
jne 0x1400aa3cf
mov r9, qword [rbx + 0x20]
add r10d, dword [rbx + 0x28]
mov r8d, r10d
jmp 0x1400aa1ac
mov r9, qword [rbx + 0x20]
mov edx, 0x18
mov ecx, 0x17
sub ecx, eax
sub edx, eax
lea rax, [0x14022c100]
mov rax, qword [rax + rcx*8]
add r8, r9
cmp edx, 8
jae 0x1400aa360
test dl, 4
jne 0x1400aa3e3
test edx, edx
je 0x1400aa2e9
movzx ecx, byte [rax]
mov byte [r8], cl
test dl, 2
jne 0x1400aa3fc
mov r9, qword [rbx + 0x20]
add edx, dword [rbx + 0x28]
lea rcx, [0x14022c158]
mov r11d, 8
mov r10d, 8
mov r8d, edx
mov dword [rbx + 0x28], r8d
jmp 0x1400aa25e
mov rax, qword [rcx]
lea r9, [r8 + 8]
and r9, 0xfffffffffffffff8
mov qword [r8], rax
mov rax, qword [rcx + r11 - 8]
mov qword [r11 + r8 - 8], rax
sub r8, r9
lea eax, [r11 + r8]
sub rcx, r8
and eax, 0xfffffff8
cmp eax, 8
jb 0x1400aa28a
and eax, 0xfffffff8
xor edx, edx
mov r8d, edx
add edx, 8
mov r11, qword [rcx + r8]
mov qword [r9 + r8], r11
cmp edx, eax
jb 0x1400aa343
jmp 0x1400aa28a
mov rcx, qword [rax]
lea r10, [r8 + 8]
and r10, 0xfffffffffffffff8
mov qword [r8], rcx
mov ecx, edx
mov r9, qword [rax + rcx - 8]
mov qword [r8 + rcx - 8], r9
sub r8, r10
sub rax, r8
add r8d, edx
and r8d, 0xfffffff8
mov rcx, rax
cmp r8d, 8
jb 0x1400aa2e5
and r8d, 0xfffffff8
xor eax, eax
mov r9d, eax
add eax, 8
mov r11, qword [rcx + r9]
mov qword [r10 + r9], r11
cmp eax, r8d
jb 0x1400aa39a
jmp 0x1400aa2e5
mov edx, dword [rcx]
mov dword [r8], edx
mov edx, dword [rcx + rax - 4]
mov dword [r8 + rax - 4], edx
mov r9, qword [rbx + 0x20]
jmp 0x1400aa28e
movzx edx, word [rcx + rax - 2]
mov word [r8 + rax - 2], dx
mov r9, qword [rbx + 0x20]
jmp 0x1400aa28e
mov ecx, dword [rax]
mov dword [r8], ecx
mov ecx, edx
mov eax, dword [rax + rcx - 4]
mov dword [r8 + rcx - 4], eax
mov r9, qword [rbx + 0x20]
jmp 0x1400aa2e9
mov ecx, edx
movzx eax, word [rax + rcx - 2]
mov word [r8 + rcx - 2], ax
mov r9, qword [rbx + 0x20]
jmp 0x1400aa2e9
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea r12, [0x1400a8f3b]
mov rsi, r12
mov rbx, rcx
mov r13d, r9d
mov rdi, rdx
mov rbp, r8
call fcn.1400a9c30
lea rdx, [0x1400a8ef4]
mov ecx, dword [rbx + 0x28]
add rcx, qword [rbx + 0x20]
sub rsi, rdx
shr r13d, 6
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbx + 0x20]
add esi, dword [rbx + 0x28]
mov dword [rbx + 0x28], esi
mov dword [rdx + rsi], 0xc381
mov eax, dword [rbx + 0x28]
lea rsi, [0x1400a8f6e]
sub rsi, r12
add eax, 2
mov dword [rbx + 0x28], eax
mov dword [rdx + rax], r13d
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x20]
add eax, 4
mov dword [rbx + 0x28], eax
mov byte [rdx + rax], 0xe8
mov eax, dword [rbx + 0x28]
mov edx, 0x7ffc
mov r8, qword [rbx + 0x20]
lea ecx, [rax + 1]
sub edx, ecx
mov dword [rbx + 0x28], ecx
mov dword [r8 + rcx], edx
mov eax, dword [rbx + 0x28]
mov r8, rsi
mov rdx, r12
lea ecx, [rax + 4]
mov dword [rbx + 0x28], ecx
add rcx, qword [rbx + 0x20]
call sub.msvcrt.dll_memcpy
add dword [rbx + 0x28], esi
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp 0x1400aa100