Function at 0x1800a0dc0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
mov ebp, esp
sub esp, 0x18
movabs eax, dword [0x4589c5330042b520]
cld
push rbx
push rsi
push rdi
mov eax, dword [rbp + 8]
mov dword [rbp - 0x18], eax
mov esi, ecx
mov ecx, dword [rsi]
mov edx, dword [rsi + 4]
add edx, edx
add edx, edx
mov eax, ecx
shr eax, 0x1d
add edx, edx
or eax, edx
mov ebx, eax
shr ebx, 0x18
mov byte [rbp - 0xc], bl
mov ebx, eax
shr ebx, 0x10
mov byte [rbp - 9], al
lea edx, [rcx*8]
mov byte [rbp - 0xb], bl
mov ebx, eax
mov eax, edx
shr eax, 0x18
mov byte [rbp - 8], al
mov eax, edx
shr eax, 0x10
mov byte [rbp - 7], al
mov eax, edx
shr eax, 8
shr ebx, 8
and ecx, 0x3f
mov byte [rbp - 6], al
mov byte [rbp - 0xa], bl
mov byte [rbp - 5], dl
mov eax, 0x38
cmp ecx, 0x38
jb 0x1800a0d8d
mov eax, 0x78
sub eax, ecx
test eax, eax
je 0x1800a0da0
push 0x46c4f0
call fcn.1800a0c71
add esp, 4
mov ecx, dword [rsi]
mov eax, ecx
mov edi, 8
and eax, 0x3f
mov ebx, 0x40
add ecx, edi
sub ebx, eax
lea edx, [rbp - 0xc]
mov dword [rsi], ecx
cmp ecx, edi
jae 0x1800a0dc1
inc dword [rsi + 4]
test eax, eax
je 0x1800a0e24
cmp ebx, edi
ja 0x1800a0e24
push rbx
lea ecx, [rbp - 0xc]
push rcx
lea edx, [rax + rsi + 0x28]
push rdx
call fcn.1800af6f1
lea eax, [rsi + 0x28]
push rsi
call fcn.18009e521
sub edi, ebx
add esp, 0x10
lea ebx, [rbp + rbx - 0xc]
mov dword [rbp - 0x10], ebx
mov dword [rbp - 0x14], 0
cmp edi, 0x40
jb 0x1800a0e1a
mov eax, edi
shr eax, 6
mov dword [rbp - 0x10], eax
push rsi
mov eax, ebx
call fcn.18009e521
add esp, 4
sub edi, 0x40
add ebx, 0x40
dec dword [rbp - 0x10]
jne 0x1800a0e01
mov dword [rbp - 0x10], ebx
test edi, edi
je 0x1800a0e33
mov eax, dword [rbp - 0x14]
mov edx, dword [rbp - 0x10]
push rdi
push rdx
lea eax, [rax + rsi + 0x28]
push rax
call fcn.1800af6f1
add esp, 0xc
movzx ecx, byte [rsi + 0xb]
mov eax, dword [rbp - 0x18]
mov byte [rax], cl
movzx edx, byte [rsi + 0xa]
mov byte [rax + 1], dl
mov ecx, dword [rsi + 8]
shr ecx, 8
mov byte [rax + 2], cl
movzx edx, byte [rsi + 8]
mov byte [rax + 3], dl
movzx ecx, byte [rsi + 0xf]
mov byte [rax + 4], cl
movzx edx, byte [rsi + 0xe]
mov byte [rax + 5], dl
mov ecx, dword [rsi + 0xc]
shr ecx, 8
mov byte [rax + 6], cl
movzx edx, byte [rsi + 0xc]
mov byte [rax + 7], dl
movzx ecx, byte [rsi + 0x13]
mov byte [rax + 8], cl
movzx edx, byte [rsi + 0x12]
mov byte [rax + 9], dl
mov ecx, dword [rsi + 0x10]
shr ecx, 8
mov byte [rax + 0xa], cl
movzx edx, byte [rsi + 0x10]
mov byte [rax + 0xb], dl
movzx ecx, byte [rsi + 0x17]
mov byte [rax + 0xc], cl
movzx edx, byte [rsi + 0x16]
mov byte [rax + 0xd], dl
mov ecx, dword [rsi + 0x14]
shr ecx, 8
mov byte [rax + 0xe], cl
movzx edx, byte [rsi + 0x14]
mov byte [rax + 0xf], dl
movzx ecx, byte [rsi + 0x1b]
mov byte [rax + 0x10], cl
movzx edx, byte [rsi + 0x1a]
mov byte [rax + 0x11], dl
mov ecx, dword [rsi + 0x18]
shr ecx, 8
mov byte [rax + 0x12], cl
movzx edx, byte [rsi + 0x18]
mov byte [rax + 0x13], dl
movzx ecx, byte [rsi + 0x1f]
mov byte [rax + 0x14], cl
movzx edx, byte [rsi + 0x1e]
mov byte [rax + 0x15], dl
mov ecx, dword [rsi + 0x1c]
shr ecx, 8
mov byte [rax + 0x16], cl
movzx edx, byte [rsi + 0x1c]
mov byte [rax + 0x17], dl
movzx ecx, byte [rsi + 0x23]
mov byte [rax + 0x18], cl
movzx edx, byte [rsi + 0x22]
mov byte [rax + 0x19], dl
mov ecx, dword [rsi + 0x20]
shr ecx, 8
mov byte [rax + 0x1a], cl
movzx edx, byte [rsi + 0x20]
mov byte [rax + 0x1b], dl
movzx ecx, byte [rsi + 0x27]
mov byte [rax + 0x1c], cl
movzx edx, byte [rsi + 0x26]
mov byte [rax + 0x1d], dl
mov ecx, dword [rsi + 0x24]
shr ecx, 8
mov byte [rax + 0x1e], cl
movzx edx, byte [rsi + 0x24]
mov ecx, dword [rbp - 4]
pop rdi
pop rsi
xor ecx, ebp
mov byte [rax + 0x1f], dl
pop rbx
call fcn.1800ac42c
mov esp, ebp
pop rbp
ret