Function at 0x14016da70
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsp
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
add byte [rax], al
add bh, al
and al, 0x34
add eax, dword [rax]
add byte [rax], al
cmp ecx, 1
jne case.0x14016dd6b.0
test dword [rdi], ebp
add eax, dword [rax]
invalid
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x50], r9
mov rsi, qword [rsp + 0x110]
adc byte [rcx], al
add byte [rax], al
mov qword [rsp + 0x60], rsi
je 0x14016dacd
invalid
mov rcx, rsi
mov ecx, esi
call sym._Unwind_GetLanguageSpecificData
invalid
add byte [rcx - 0x77], cl
invalid
mov dword [rsp + 0x3c], 0
add byte [rax], al
add byte [rax], al
lea rdx, [rsp + 0x3c]
mov rcx, rsi
mov ecx, esi
call sym._Unwind_GetIPInfo
mov edi, 0x89490007
mov byte [rbx + 0x13c247c], 0x49
sbb esi, 0
add byte [rax - 0x77], cl
int1
call sym._Unwind_GetRegionStart
lea rcx, [rsp + 0x60]
lea ecx, [rsp + 0x60]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x98], r14
mov rcx, rax
ror dword [rax - 0x77], 0x44
and al, 0x48
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x68]
push 0x24448948
js 0x14016db58
lea rax, dbg.drop_in_place_std::backtrace::lazy_resolve::closure0::closure_env0_
mov qword [rsp + 0x80], rax
test byte [rax + rax*4], ah
add byte [rax], al
add byte [rax - 0x73], cl
and al, 0x70
mov qword [rsp + 0x88], rax
test byte [rax + rcx*4], ah
mov byte [rax], al
add byte [rax], al
lea rax, dbg.drop_in_place_std::backtrace::lazy_resolve::closure0::closure_env0_
or al, byte [rax]
mov qword [rsp + 0x90], rax
test r12, r12
je 0x14016dd4c
add byte [rax], al
movzx r8d, byte [r12]
inc r12
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x28], esp
cmp r8b, 0xff
je 0x14016db7a
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x78]
push rsp
and al, 0x78
js 0x14016db49
jmp 0x14016dafd
invalid
dec dword [rax - 0x77]
push rsp
and al, 0x40
test rax, rax
jne case.0x14016dd6b.0
mov r12, qword [rsp + 0x28]
jmp 0x14016db84
invalid
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x40], eax
movzx eax, byte [r12]
inc r12
mov qword [rsp + 0x28], r12
cmp al, 0xff
je case.0x140163732.112
nop word cs:[rax + rax]
cmp byte [r12], 0
lea r12, [r12 + 1]
js 0x14016dba0
mov qword [rsp + 0x28], r12
movzx edi, byte [r12]
inc r12
invalid
mov qword [rsp + 0x28], r12
xor ebp, ebp
xor ecx, ecx
nop word cs:[rax + rax]
add byte [rax], al
add byte [rax], al
invalid
movzx eax, byte [r12]
mov edx, eax
and edx, 0x7f
shl rdx, cl
inc r12
or rbp, rdx
add rcx, 7
test al, al
js 0x14016dbd0
mov qword [rsp + 0x28], r12
lea rax, [r12 + rbp]
mov qword [rsp + 0x58], rax
lea rbx, [rsp + 0x78]
mov rax, r12
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop dword cs:[rax + rax]
add byte [rax], al
add byte [rax], al
cmp rax, qword [rsp + 0x58]
jae 0x14016dda9
lea rcx, [rsp + 0x28]
mov rdx, rbx
mov r8d, edi
call dbg.read_encoded_pointer
invalid
invalid
dec dword [rax - 0x7b]
ror byte [rdi + rcx + 0x44], 0xea
invalid
jne case.0x14016dd6b.0
lea rcx, [rsp + 0x28]
mov rdx, rbx
fiadd dword [rcx - 0x77]
clc
call dbg.read_encoded_pointer
or byte [rdx - 0x7ab70001], bl
ror byte [rax + 0xf], 0x44
bnd jne case.0x14016dd6b.0
lea rcx, [rsp + 0x28]
mov rdx, rbx
mov edx, ebx
mov r8d, edi
call dbg.read_encoded_pointer
test rax, rax
cmove r15, rdx
jne case.0x14016dd6b.0
mov rax, qword [rsp + 0x28]
xor edx, edx
xor ecx, ecx
nop dword [rax + rax]
invalid
add byte [rax], r8b
movzx r8d, byte [rax]
mov r9d, r8d
and r9d, 0x7f
shl r9, cl
inc rax
or rdx, r9
add rcx, 7
test r8b, r8b
js 0x14016dc80
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x48]
add rcx, r13
add ecx, ebp
cmp r14, rcx
jb 0x14016dda9
add rcx, rsi
cmp r14, rcx
jae 0x14016dc10
test r15, r15
je 0x14016dd4c
add r15, qword [rsp + 0x40]
test rdx, rdx
je 0x14016ddee
add rbp, rdx
lea rdx, [r12 + rbp]
dec rdx
xor eax, eax
xor ecx, ecx
nop word cs:[rax + rax]
movzx r8d, byte [rdx]
mov r9d, r8d
and r9d, 0x7f
shl r9, cl
inc rdx
or rax, r9
add ecx, 7
test r8b, r8b
js 0x14016dcf0
mov rdx, 0xffffffffffffffff
shl rdx, cl
xor r9d, r9d
test r8b, 0x40
cmove rdx, r9
cmp ecx, 0x40
cmovae rdx, r9
xor ecx, ecx
mov r8, rax
or r8, rdx
setg cl
lahf
ror dword [rax - 0x7d], 0xf1
add ecx, dword [rax + 9]
ret 0x1b8
add byte [rax], al
add byte [rax + 0xf], cl
sal r14d, 0x44
and al, 0x38
invalid
je 0x14016dd55
jmp 0x14016ddb5
xor eax, eax
test byte [rsp + 0x38], 1
jne 0x14016ddb5
mov eax, 4
test byte [rsp + 0x38], 1
mov eax, 1
test byte [rsp + 0x38], 1
je 0x14016dd55
jmp 0x14016ddb5