Function at 0x18000de5c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rdi
push r12
push r14
push r15
sub rsp, 0x20
cmp dword [rcx + 0x4838], 0
mov rdi, r8
movsxd r15, r9d
mov r14, rdx
mov rbx, rcx
je 0x18000deb4
mov edx, dword [0x18010f888]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.cant_merge_dc_and_ac
mov ecx, 0xa20
mov qword [rcx + rax], rdx
xor eax, eax
jmp 0x18000e11f
cmp dword [rcx + 0x4824], 0x10
jge 0x18000dec2
call fcn.18000d87c
cmp dword [rbx + 0x483c], 0
jne 0x18000e0d0
xor edx, edx
mov r8d, 0x80
mov rcx, r14
call qword [sym.imp.msvcrt.dll_memset]
cmp dword [rbx + 0x4824], 0x10
jge 0x18000def1
mov rcx, rbx
call fcn.18000d87c
mov r9d, dword [rbx + 0x4820]
lea r12, [0x180000000]
mov eax, r9d
shr rax, 0x17
cmp byte [rax + rdi], 0xff
jae 0x18000df30
movzx eax, byte [rax + rdi]
mov r8d, dword [rbx + 0x4824]
movzx ecx, byte [rax + rdi + 0x500]
cmp ecx, r8d
jg 0x18000de8a
shl r9d, cl
sub r8d, ecx
jmp 0x18000dfaf
mov ecx, r9d
lea rax, [rdi + 0x62c]
shr ecx, 0x10
mov r10d, 0xa
jmp 0x18000df4c
inc r10d
lea rax, [rax + 4]
cmp ecx, dword [rax]
jae 0x18000df45
mov r8d, dword [rbx + 0x4824]
cmp r10d, 0x11
jne 0x18000df6c
lea eax, [r8 - 0x10]
mov dword [rbx + 0x4824], eax
jmp 0x18000de8a
cmp r10d, r8d
jg 0x18000de8a
movsxd rax, r10d
mov ecx, 0x20
sub ecx, r10d
mov r11d, r9d
shr r11d, cl
and r11d, dword [r12 + rax*4 + 0xbc4d0]
add r11d, dword [rdi + rax*4 + 0x64c]
cmp r11d, 0xff
ja 0x18000de8a
sub r8d, r10d
movsxd rax, r11d
mov ecx, r10d
shl r9d, cl
mov dword [rbx + 0x4824], r8d
mov dword [rbx + 0x4820], r9d
mov al, byte [rax + rdi + 0x400]
movzx ebp, al
cmp ebp, 0xf
ja 0x18000de8a
test al, al
je 0x18000e02b
cmp r8d, ebp
jge 0x18000dfe1
mov rcx, rbx
call fcn.18000d87c
cmp dword [rbx + 0x4824], ebp
jl 0x18000e02b
mov edi, dword [rbx + 0x4820]
mov edx, ebp
mov ecx, edi
call qword [sym.imp.msvcrt.dll__lrotl]
mov edx, dword [r12 + rbp*4 + 0xbc4d0]
mov r8d, eax
sub dword [rbx + 0x4824], ebp
mov eax, edx
shr edi, 0x1f
not eax
dec edi
and eax, r8d
and edi, dword [r12 + rbp*4 + 0xbc440]
and edx, r8d
mov dword [rbx + 0x4820], eax
add edi, edx
jmp 0x18000e02d
xor edi, edi
lea r8, [r15 + r15*2]
mov eax, edi
shl r8, 5
not eax
mov edx, dword [r8 + rbx + 0x46b8]
mov ecx, edx
not ecx
xor ecx, eax
js 0x18000e092
test edx, edx
jns 0x18000e061
test edi, edi
jns 0x18000e061
xor ecx, ecx
mov eax, 0x80000000
sub eax, edi
cmp edx, eax
setge cl
jmp 0x18000e06f
xor ecx, ecx
mov eax, 0x7fffffff
sub eax, edi
cmp edx, eax
setle cl
test ecx, ecx
jne 0x18000e092
mov edx, dword [0x18010f888]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_delta
jmp 0x18000dea4
add edi, edx
mov r11d, 1
mov dword [r8 + rbx + 0x46b8], edi
mov ecx, dword [rbx + 0x4840]
shl r11w, cl
movzx ecx, di
movzx edx, r11w
call fcn.18000d1e0
test eax, eax
je 0x18000de8a
movsx eax, di
movsx ecx, r11w
imul ecx, eax
mov word [r14], cx
jmp 0x18000e11a
cmp dword [rbx + 0x4824], 1
jge 0x18000e0e1
mov rcx, rbx
call fcn.18000d87c
mov eax, dword [rbx + 0x4824]
cmp eax, 1
jl 0x18000e11a
mov edx, dword [rbx + 0x4820]
lea ecx, [rdx + rdx]
mov dword [rbx + 0x4820], ecx
lea ecx, [rax - 1]
mov dword [rbx + 0x4824], ecx
test edx, edx
jns 0x18000e11a
mov ecx, dword [rbx + 0x4840]
mov edx, 1
shl dx, cl
add word [r14], dx
mov eax, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret