Function at 0x14003de80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x68
mov qword [rsp + 0x38], rcx
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x10]
and eax, 7
cmp eax, 0
je 0x14003df14
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x10]
and ecx, 7
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x10]
cmp eax, dword [rsp + 0x54]
jge 0x14003ded2
mov rcx, qword [rsp + 0x48]
call fcn.14003f510
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x14]
mov ecx, dword [rsp + 0x54]
mov edx, 1
shl edx, cl
mov ecx, edx
sub ecx, 1
and eax, ecx
mov dword [rsp + 0x44], eax
mov ecx, dword [rsp + 0x54]
mov rax, qword [rsp + 0x48]
mov edx, dword [rax + 0x14]
shr edx, cl
mov ecx, edx
mov dword [rax + 0x14], ecx
mov edx, dword [rsp + 0x54]
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x10]
sub ecx, edx
mov dword [rax + 0x10], ecx
mov dword [rsp + 0x28], 0
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x10], 0
jle 0x14003df6e
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x14]
and eax, 0xff
mov cl, al
mov eax, dword [rsp + 0x28]
mov edx, eax
add edx, 1
mov dword [rsp + 0x28], edx
cdqe
mov byte [rsp + rax + 0x34], cl
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x14]
shr ecx, 8
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x10]
sub ecx, 8
mov dword [rax + 0x10], ecx
jmp 0x14003df1c
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x10], 0
jge 0x14003df92
lea rcx, str.zlib_corrupt
call fcn.14001a4b0
mov dword [rsp + 0x40], eax
jmp 0x14003e141
jmp 0x14003df97
cmp dword [rsp + 0x28], 4
jge 0x14003e01a
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
cmp rax, qword [rcx + 8]
setae al
and al, 1
movzx eax, al
cmp eax, 0
je 0x14003dfe3
xor eax, eax
mov dword [rsp + 0x24], eax
jmp 0x14003dffc
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
mov rdx, rax
add rdx, 1
mov qword [rcx], rdx
movzx eax, byte [rax]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
mov cl, al
mov eax, dword [rsp + 0x28]
mov edx, eax
add edx, 1
mov dword [rsp + 0x28], edx
cdqe
mov byte [rsp + rax + 0x34], cl
jmp 0x14003df97
movzx eax, byte [rsp + 0x35]
shl eax, 8
movzx ecx, byte [rsp + 0x34]
add eax, ecx
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x37]
shl eax, 8
movzx ecx, byte [rsp + 0x36]
add eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x30]
xor ecx, 0xffff
cmp eax, ecx
je 0x14003e06b
lea rcx, str.zlib_corrupt
call fcn.14001a4b0
mov dword [rsp + 0x40], eax
jmp 0x14003e141
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
movsxd rcx, dword [rsp + 0x30]
add rax, rcx
mov rcx, qword [rsp + 0x38]
cmp rax, qword [rcx + 8]
jbe 0x14003e09f
lea rcx, str.read_past_buffer
call fcn.14001a4b0
mov dword [rsp + 0x40], eax
jmp 0x14003e141
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x18]
movsxd rcx, dword [rsp + 0x30]
add rax, rcx
mov rcx, qword [rsp + 0x38]
cmp rax, qword [rcx + 0x28]
jbe 0x14003e0f2
mov r8d, dword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rsp + 0x38]
call fcn.14003f5f0
cmp eax, 0
jne 0x14003e0ed
mov dword [rsp + 0x40], 0
jmp 0x14003e141
jmp 0x14003e0f2
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax]
movsxd r8, dword [rsp + 0x30]
call fcn.1400039ef
mov edx, dword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax]
movsxd rdx, edx
add rcx, rdx
mov qword [rax], rcx
mov edx, dword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 0x18]
movsxd rdx, edx
add rcx, rdx
mov qword [rax + 0x18], rcx
mov dword [rsp + 0x40], 1
mov eax, dword [rsp + 0x40]
add rsp, 0x68
ret