Function at 0x1401586e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x40
mov rax, qword [0x14039ce38]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rcx, qword [rcx + 8]
mov r8, qword [rcx + 7]
xor eax, eax
cmp r8, 2
jae 0x140158745
mov rcx, qword [rdx + 8]
mov rdx, qword [rcx + 7]
cmp rdx, 2
jae 0x140158781
lea eax, [rax + rax*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov esi, ecx
shl esi, 0xf
add esi, ecx
and esi, 0x3fffffff
cmp esi, 1
adc esi, 0
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140258ea0
mov rax, rsi
add rsp, 0x40
pop rsi
ret
sar r8, 1
mov r9, qword [rcx - 1]
and r9d, 0xfffff000
cmp r9d, 0x5d000
jne 0x1401587fb
test r8, r8
jle 0x140158704
add rcx, 0xf
mov r9d, r8d
and r9d, 3
cmp r8, 4
jae 0x1401588ab
xor eax, eax
jmp 0x140158933
sar rdx, 1
mov r8, qword [rcx - 1]
and r8d, 0xfffff000
cmp r8d, 0x5d000
jne 0x140158838
test rdx, rdx
jle 0x140158712
add rcx, 0xf
mov r8, rdx
and r8, 3
je 0x140158a28
xor r9d, r9d
nop dword [rax]
movzx r10d, byte [rcx + r9]
add r10d, eax
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov eax, r11d
shr eax, 6
xor eax, r11d
inc r9
cmp r8, r9
jne 0x1401587c0
mov r8, rdx
sub r8, r9
add rcx, r9
cmp rdx, 4
jb 0x140158712
jmp 0x140158a35
mov r9, qword [rcx - 1]
and r9d, 0xfffff000
cmp r9d, 0x5e000
jne 0x140158b22
test r8, r8
jle 0x140158704
add rcx, 0xf
mov r9d, r8d
and r9d, 3
cmp r8, 4
jae 0x140158968
xor eax, eax
jmp 0x1401589f3
mov r8, qword [rcx - 1]
and r8d, 0xfffff000
cmp r8d, 0x5e000
jne 0x140158b22
test rdx, rdx
jle 0x140158712
add rcx, 0xf
mov r8, rdx
and r8, 3
je 0x140158aa2
xor r9d, r9d
nop dword [rax]
movzx r10d, word [rcx]
add r10d, eax
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov eax, r11d
shr eax, 6
xor eax, r11d
add rcx, 2
inc r9
cmp r8, r9
jne 0x140158870
mov r8, rdx
sub r8, r9
cmp rdx, 4
jb 0x140158712
jmp 0x140158aaf
movabs rax, 0x7ffffffffffffffc
and r8, rax
xor eax, eax
nop word [rax + rax]
movzx r10d, byte [rcx]
add r10d, eax
mov eax, r10d
shl eax, 0xa
add eax, r10d
mov r10d, eax
shr r10d, 6
xor r10d, eax
movzx eax, byte [rcx + 1]
add eax, r10d
mov r10d, eax
shl r10d, 0xa
add r10d, eax
mov eax, r10d
shr eax, 6
xor eax, r10d
movzx r10d, byte [rcx + 2]
add r10d, eax
mov eax, r10d
shl eax, 0xa
add eax, r10d
mov r10d, eax
shr r10d, 6
xor r10d, eax
movzx eax, byte [rcx + 3]
add eax, r10d
mov r10d, eax
shl r10d, 0xa
add r10d, eax
mov eax, r10d
shr eax, 6
xor eax, r10d
add rcx, 4
add r8, 0xfffffffffffffffc
jne 0x1401588c0
test r9, r9
je 0x140158704
xor r8d, r8d
nop
movzx r10d, byte [rcx + r8]
add r10d, eax
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov eax, r11d
shr eax, 6
xor eax, r11d
inc r8
cmp r9, r8
jne 0x140158940
jmp 0x140158704
movabs rax, 0x7ffffffffffffffc
and r8, rax
xor eax, eax
nop word [rax + rax]
movzx r10d, word [rcx]
add r10d, eax
mov eax, r10d
shl eax, 0xa
add eax, r10d
mov r10d, eax
shr r10d, 6
xor r10d, eax
movzx eax, word [rcx + 2]
add eax, r10d
mov r10d, eax
shl r10d, 0xa
add r10d, eax
mov eax, r10d
shr eax, 6
xor eax, r10d
movzx r10d, word [rcx + 4]
add r10d, eax
mov eax, r10d
shl eax, 0xa
add eax, r10d
mov r10d, eax
shr r10d, 6
xor r10d, eax
movzx eax, word [rcx + 6]
add eax, r10d
mov r10d, eax
shl r10d, 0xa
add r10d, eax
mov eax, r10d
shr eax, 6
xor eax, r10d
add rcx, 8
add r8, 0xfffffffffffffffc
jne 0x140158980
test r9, r9
je 0x140158704
xor r8d, r8d
nop
movzx r10d, word [rcx + r8*2]
add r10d, eax
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov eax, r11d
shr eax, 6
xor eax, r11d
inc r8
cmp r9, r8
jne 0x140158a00
jmp 0x140158704
mov r8, rdx
cmp rdx, 4
jb 0x140158712
dec r8
nop dword [rax + rax]
movzx edx, byte [rcx]
add edx, eax
mov eax, edx
shl eax, 0xa
add eax, edx
mov edx, eax
shr edx, 6
xor edx, eax
movzx eax, byte [rcx + 1]
add eax, edx
mov edx, eax
shl edx, 0xa
add edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
movzx edx, byte [rcx + 2]
add edx, eax
mov eax, edx
shl eax, 0xa
add eax, edx
mov edx, eax
shr edx, 6
xor edx, eax
movzx eax, byte [rcx + 3]
add eax, edx
mov edx, eax
shl edx, 0xa
add edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
add rcx, 4
add r8, 0xfffffffffffffffc
cmp r8, 0xfffffffffffffffe
jb 0x140158a40
jmp 0x140158712
mov r8, rdx
cmp rdx, 4
jb 0x140158712
dec r8
nop word cs:[rax + rax]
movzx edx, word [rcx]
add edx, eax
mov eax, edx
shl eax, 0xa
add eax, edx
mov edx, eax
shr edx, 6
xor edx, eax
movzx eax, word [rcx + 2]
add eax, edx
mov edx, eax
shl edx, 0xa
add edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
movzx edx, word [rcx + 4]
add edx, eax
mov eax, edx
shl eax, 0xa
add eax, edx
mov edx, eax
shr edx, 6
xor edx, eax
movzx eax, word [rcx + 6]
add eax, edx
mov edx, eax
shl edx, 0xa
add edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
add rcx, 8
add r8, 0xfffffffffffffffc
cmp r8, 0xfffffffffffffffe
jb 0x140158ac0
jmp 0x140158712
lea rax, str..._.._runtime_vm_object.cc
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], 0x5bea
lea rdx, str.unreachable_code
lea rcx, [rsp + 0x28]
call fcn.140006bb0
int3