Function at 0x1401657b0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x40
mov rax, qword [0x14039de68]
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 0x140165815
mov rcx, qword [rdx + 8]
mov rdx, qword [rcx + 7]
cmp rdx, 2
jae 0x140165851
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.140259980
mov rax, rsi
add rsp, 0x40
pop rsi
ret
sar r8, 1
mov r9, qword [rcx - 1]
and r9d, 0xfffff000
cmp r9d, 0x5d000
jne 0x1401658cb
test r8, r8
jle 0x1401657d4
add rcx, 0xf
mov r9d, r8d
and r9d, 3
cmp r8, 4
jae 0x14016597b
xor eax, eax
jmp 0x140165a03
sar rdx, 1
mov r8, qword [rcx - 1]
and r8d, 0xfffff000
cmp r8d, 0x5d000
jne 0x140165908
test rdx, rdx
jle 0x1401657e2
add rcx, 0xf
mov r8, rdx
and r8, 3
je 0x140165af8
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 0x140165890
mov r8, rdx
sub r8, r9
add rcx, r9
cmp rdx, 4
jb 0x1401657e2
jmp 0x140165b05
mov r9, qword [rcx - 1]
and r9d, 0xfffff000
cmp r9d, 0x5e000
jne 0x140165bf2
test r8, r8
jle 0x1401657d4
add rcx, 0xf
mov r9d, r8d
and r9d, 3
cmp r8, 4
jae 0x140165a38
xor eax, eax
jmp 0x140165ac3
mov r8, qword [rcx - 1]
and r8d, 0xfffff000
cmp r8d, 0x5e000
jne 0x140165bf2
test rdx, rdx
jle 0x1401657e2
add rcx, 0xf
mov r8, rdx
and r8, 3
je 0x140165b72
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 0x140165940
mov r8, rdx
sub r8, r9
cmp rdx, 4
jb 0x1401657e2
jmp 0x140165b7f
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 0x140165990
test r9, r9
je 0x1401657d4
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 0x140165a10
jmp 0x1401657d4
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 0x140165a50
test r9, r9
je 0x1401657d4
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 0x140165ad0
jmp 0x1401657d4
mov r8, rdx
cmp rdx, 4
jb 0x1401657e2
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 0x140165b10
jmp 0x1401657e2
mov r8, rdx
cmp rdx, 4
jb 0x1401657e2
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 0x140165b90
jmp 0x1401657e2
lea rax, str..._.._runtime_vm_object.cc
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], 0x5c8f
lea rdx, str.unreachable_code
lea rcx, [rsp + 0x28]
call fcn.140023d10
int3