Function at 0x1401e8cb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x188
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x100], 0xfffffffffffffffe
mov r14, r8
mov rdi, rdx
mov rbx, rcx
movsxd r15, dword [0x1403c3154]
mov r12d, dword [0x1403c3140]
mov eax, 0xffff6009
add eax, dword [0x1404aa9ec]
lea rsi, [rcx + 8]
cdqe
add rax, qword [0x1404aaa20]
mov rcx, rbp
mov rdx, rsi
mov r8d, 0xa46e532f
call qword [case.0x14014757d.0]
mov rax, qword [rbx]
mov edx, dword [rax + 0x30]
lea rcx, [rbp - 0x50]
call fcn.1402013e0
mov rcx, rdi
call fcn.140200da0
mov qword [rbp], rax
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movaps xmmword [rbp + 0xa0], xmm3
movaps xmmword [rbp + 0x90], xmm2
movaps xmmword [rbp + 0x80], xmm1
movaps xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0xe8], 0
mov ecx, 0x48
call fcn.14037638c
lea rdx, [rbp + 8]
lea rcx, [0x1403c3568]
mov qword [rax], rcx
movaps xmm0, xmmword [rbp + 0x70]
movaps xmm1, xmmword [rbp + 0x80]
movaps xmm2, xmmword [rbp + 0x90]
movaps xmm3, xmmword [rbp + 0xa0]
movups xmmword [rax + 8], xmm0
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 0x28], xmm2
movups xmmword [rax + 0x38], xmm3
mov ecx, 0xffff6009
add ecx, dword [0x1404aa9f0]
mov qword [rbp + 0xe8], rax
movsxd rax, ecx
add rax, qword [0x1404aaa10]
lea rdi, [rbp + 0xb0]
mov rcx, rdi
call qword [case.0x14014757d.0]
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x1401e8df1
cmp rcx, rdi
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14014757d.0]
lea rcx, [rbp - 0x50]
mov rdx, rbp
call fcn.1401e9850
mov r8, qword [r14 + 8]
lea rcx, [rbp + 0x70]
lea rdx, [rbp - 0x50]
call fcn.1401e93d0
mov rdi, qword [r14]
mov r14, qword [r14 + 8]
mov r13d, dword [0x1404eeea8]
mov eax, r13d
xor eax, 1
mov ecx, r13d
and ecx, 1
lea eax, [rax + rcx*2]
mov dword [0x1404eeea8], eax
xor eax, r13d
not eax
xor edx, edx
mov dword [rbp + 0xf0], eax
test eax, r13d
jne 0x1401e8eae
lea rax, [0x1403c3154]
add r15, rax
nop dword [rax]
mov eax, dword [0x1404eeeb8]
lea ecx, [rax - 1]
mov dword [0x1404eeec4], 0
imul ecx, eax
test cl, 1
jne 0x1401e8e76
mov eax, dword [0x1404eeebc]
cmp eax, 0x5e
jle 0x1401e8e89
mov eax, dword [0x1404eeeb8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401e8e50
jmp 0x1401e8e6b
test r12d, r12d
jle 0x1401e8eae
xor eax, eax
xor edx, edx
nop word cs:[rax + rax]
cdqe
xor edx, dword [r15 + rax]
add eax, 4
cmp eax, r12d
jl 0x1401e8ea0
mov dword [rbp + 0xf4], edx
mov rax, qword [rbx]
movups xmm0, xmmword [rax + 0x18]
movaps xmmword [rbp + 0x60], xmm0
movzx ebx, r14w
mov rcx, rbx
call fcn.140286b70
add rax, rbx
mov rcx, rax
call fcn.140201430
mov rbx, rax
xorps xmm0, xmm0
movaps xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], 0
test rax, rax
je 0x1401e8f4c
js 0x1401e917f
cmp rbx, 0x1000
jb 0x1401e8f1c
lea rcx, [rbx + 0x27]
call fcn.14037638c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1401e8f27
mov rcx, rbx
call fcn.14037638c
mov rcx, rax
mov qword [rbp + 0xb0], rcx
mov r15, rbx
add r15, rcx
mov qword [rbp + 0xc0], r15
xor edx, edx
mov r8, rbx
call fcn.14039e9a0
mov qword [rbp + 0xb8], r15
mov dword [rbp + 0xf8], r13d
mov r9, qword [rbp + 0xb0]
mov rax, qword [rbp + 0xb8]
sub rax, r9
mov rdx, qword [rbp + 0x70]
mov r8, qword [rbp + 0x78]
sub r8, rdx
movaps xmm0, xmmword [rbp + 0x60]
movaps xmmword [rbp + 0x50], xmm0
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x50]
call fcn.1402b37b0
mov rbx, qword [rbp + 0xb0]
movzx eax, byte [0x1404eeec8]
add al, byte [rbx]
je 0x1401e8fa1
movzx eax, al
or eax, 0x60000000
jmp 0x1401e8fb1
mov eax, dword [rbx + 2]
test eax, eax
je 0x1401e910a
add eax, 0x70000000
mov dword [rbp + 0xfc], eax
mov eax, dword [rbp + 0xf8]
mov edx, dword [rbp + 0xf0]
and edx, eax
xor ecx, ecx
cmp edx, 1
sbb ecx, ecx
mov eax, dword [0x1403c3150]
sub eax, dword [rbp + 0xf4]
mov edx, eax
not edx
xor eax, ecx
not ecx
and edx, ecx
or eax, edx
not eax
mov ecx, eax
shr ecx, 0x10
or ecx, eax
movzx eax, ch
or eax, ecx
movzx ecx, byte [0x1404eeec8]
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
mov byte [0x1404eeec8], cl
mov rcx, qword [rbp + 0xb0]
test rcx, rcx
je 0x1401e905e
mov rdx, qword [rbp + 0xc0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1401e9044
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1401e9184
add rdx, 0x27
mov rcx, rax
mov eax, 0xffff6009
add eax, dword [0x1404aa9e8]
cdqe
add rax, qword [0x1404aaa08]
call qword [case.0x14014757d.0]
mov rcx, qword [rbp + 0x70]
test rcx, rcx
je 0x1401e90b0
mov rdx, qword [rbp + 0x80]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1401e9096
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1401e9189
add rdx, 0x27
mov rcx, rax
mov eax, 0xffff6009
add eax, dword [0x1404aa9e8]
cdqe
add rax, qword [0x1404aaa08]
call qword [case.0x14014757d.0]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x1401e90d0
lea rax, [rbp - 0x48]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14014757d.0]
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x1401e90f0
lea rax, [rbp + 8]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14014757d.0]
mov eax, dword [rbp + 0xfc]
add rsp, 0x188
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx edx, word [rbx + 0xe]
test rdx, rdx
je 0x1401e9146
mov dword [rbp + 0xfc], 0x60000003
cmp dx, r14w
jbe 0x1401e8fb7
lea rcx, [rbx + 0x10]
mov r8, rsi
call fcn.1402019c0
test eax, eax
jns 0x1401e9148
mov dword [rbp + 0xfc], 0x60000004
jmp 0x1401e8fb7
xor eax, eax
movzx ecx, r14w
mov dword [rbp + 0xfc], 0x60000005
cmp eax, ecx
jne 0x1401e8fb7
add rbx, 0x10
mov r8d, eax
mov rcx, rdi
mov rdx, rbx
call fcn.14039e2f0
mov dword [rbp + 0xfc], 0
jmp 0x1401e8fb7
call fcn.1401d5ae0
call fcn.140356a3c
call fcn.140356a3c
int3