Function at 0x14001ee50
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov qword [rsp + 0x40], rbx
mov esi, r9d
mov qword [rsp + 0x48], rbp
mov r10d, r8d
mov ebp, dword [rcx + 0xb90]
mov rdi, rdx
mov qword [rsp + 0x58], r14
mov rbx, rcx
mov r14d, dword [rsp + 0x60]
and ebp, r14d
mov qword [rsp + 0x20], r15
cmp r8d, 0xffffffff
jne 0x14001f025
mov qword [rsp + 0x50], r12
cmp r9d, 1
je 0x14001eeb4
mov r8d, 0xf1
lea rdx, str.xz_5.2_src_liblzma_lzmalzma_encoder.c
lea rcx, str.len__1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
movsxd rdx, dword [rbx + 0x2e0]
xor r15d, r15d
shl rdx, 4
mov r9d, 8
mov eax, ebp
mov ecx, r9d
add rax, 0x35ce
add rdx, rax
mov rax, qword [rbx + 0x18]
mov dword [rbx + rax*4 + 0x28], r15d
lea rdx, [rbx + rdx*2]
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
sub cl, byte [rbx + 0xb94]
mov r10, qword [rbx + 0x18]
inc r10
mov qword [rbx + 0x18], r10
mov r12, qword [rdi]
mov r11d, dword [rdi + 0x18]
mov eax, r11d
sub eax, dword [rdi + 0x1c]
movzx ebp, byte [rax + r12]
dec eax
movzx edx, byte [rax + r12]
mov eax, dword [rbx + 0xb98]
and eax, r14d
shr edx, cl
mov ecx, dword [rbx + 0xb94]
shl eax, cl
add edx, eax
lea r14, [rdx + rdx*2]
shl r14, 9
add r14, 0xb9c
add r14, rbx
cmp dword [rbx + 0x2e0], 7
jge 0x14001ef89
lea r8d, [r15 + 1]
nop dword [rax]
mov eax, r8d
dec r9d
movzx ecx, r9b
mov edx, ebp
shr edx, cl
and edx, 1
mov dword [rbx + r10*4 + 0x28], edx
lea rcx, [r14 + rax*2]
mov rax, qword [rbx + 0x18]
lea r8d, [rdx + r8*2]
mov qword [rbx + rax*8 + 0x110], rcx
inc qword [rbx + 0x18]
mov r10, qword [rbx + 0x18]
test r9d, r9d
jne 0x14001ef50
jmp 0x14001effc
sub r11d, dword [rbx + 0x2e4]
lea edx, [rbp + 0x100]
sub r11d, dword [rdi + 0x1c]
mov r9d, 0x100
dec r11d
movzx r8d, byte [r11 + r12]
nop dword [rax + rax]
mov eax, edx
add r8d, r8d
shr eax, 7
mov ecx, edx
and eax, 1
shr ecx, 8
mov dword [rbx + r10*4 + 0x28], eax
add edx, edx
mov eax, r9d
and eax, r8d
add eax, r9d
add ecx, eax
mov rax, qword [rbx + 0x18]
lea rcx, [r14 + rcx*2]
mov qword [rbx + rax*8 + 0x110], rcx
mov eax, r8d
inc qword [rbx + 0x18]
xor eax, edx
mov r10, qword [rbx + 0x18]
not eax
and r9d, eax
cmp edx, 0x10000
jb 0x14001efb0
mov eax, dword [rbx + 0x2e0]
mov r12, qword [rsp + 0x50]
cmp eax, 3
jle 0x14001f019
lea r15d, [rax - 3]
cmp eax, 9
jle 0x14001f019
lea r15d, [rax - 6]
mov dword [rbx + 0x2e0], r15d
jmp 0x14001f0c7
movsxd rcx, dword [rcx + 0x2e0]
mov r8d, 1
shl rcx, 4
add rcx, 0x35ce
mov eax, ebp
add rcx, rax
mov rax, qword [rbx + 0x18]
mov dword [rbx + rax*4 + 0x28], r8d
lea rdx, [rbx + rcx*2]
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
inc qword [rbx + 0x18]
movsxd rdx, dword [rbx + 0x2e0]
mov rax, qword [rbx + 0x18]
add rdx, 0x368e
lea rdx, [rbx + rdx*2]
lea rcx, [rbx + rax*4]
cmp r10d, 4
jae 0x14001f0a2
mov dword [rcx + 0x28], r8d
mov r8d, r10d
mov rax, qword [rbx + 0x18]
mov rcx, rbx
mov qword [rbx + rax*8 + 0x110], rdx
mov edx, ebp
inc qword [rbx + 0x18]
call fcn.140020d80
jmp 0x14001f0c7
xor r15d, r15d
lea r8d, [r10 - 4]
mov dword [rcx + 0x28], r15d
mov rcx, rbx
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
mov edx, ebp
inc qword [rbx + 0x18]
call fcn.140020750
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
cmp dword [rdi + 0x1c], esi
jae 0x14001f0fa
mov r8d, 0x106
lea rdx, str.xz_5.2_src_liblzma_lzmalzma_encoder.c
lea rcx, str.mf__read_ahead___len
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
sub dword [rdi + 0x1c], esi
add rsp, 0x28
pop rdi
pop rsi
ret