Function at 0x14018be70
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 [0x140366144]
mov r12d, dword [0x140366130]
mov eax, 0xffff6009
add eax, dword [0x14044c6ac]
lea rsi, [rcx + 8]
cdqe
add rax, qword [0x14044c6e0]
mov rcx, rbp
mov rdx, rsi
mov r8d, 0xa46e532f
call qword [case.0x1400eabdd.0]
mov rax, qword [rbx]
mov edx, dword [rax + 0x30]
lea rcx, [rbp - 0x50]
call fcn.1401a45a0
mov rcx, rdi
call fcn.1401a3f60
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.14031953c
lea rdx, [rbp + 8]
lea rcx, [0x140366558]
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 [0x14044c6b0]
mov qword [rbp + 0xe8], rax
movsxd rax, ecx
add rax, qword [0x14044c6d0]
lea rdi, [rbp + 0xb0]
mov rcx, rdi
call qword [case.0x1400eabdd.0]
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x14018bfb1
cmp rcx, rdi
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400eabdd.0]
lea rcx, [rbp - 0x50]
mov rdx, rbp
call fcn.14018ca10
mov r8, qword [r14 + 8]
lea rcx, [rbp + 0x70]
lea rdx, [rbp - 0x50]
call fcn.14018c590
mov rdi, qword [r14]
mov r14, qword [r14 + 8]
mov r13d, dword [0x140490b90]
mov eax, r13d
xor eax, 1
mov ecx, r13d
and ecx, 1
lea eax, [rax + rcx*2]
mov dword [0x140490b90], eax
xor eax, r13d
not eax
xor edx, edx
mov dword [rbp + 0xf0], eax
test eax, r13d
jne 0x14018c06e
lea rax, [0x140366144]
add r15, rax
nop dword [rax]
mov eax, dword [0x140490ba0]
lea ecx, [rax - 1]
mov dword [0x140490bac], 0
imul ecx, eax
test cl, 1
jne 0x14018c036
mov eax, dword [0x140490ba4]
cmp eax, 0x5e
jle 0x14018c049
mov eax, dword [0x140490ba0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14018c010
jmp 0x14018c02b
test r12d, r12d
jle 0x14018c06e
xor eax, eax
xor edx, edx
nop word cs:[rax + rax]
cdqe
xor edx, dword [r15 + rax]
add eax, 4
cmp eax, r12d
jl 0x14018c060
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.140229d30
add rax, rbx
mov rcx, rax
call fcn.1401a45f0
mov rbx, rax
xorps xmm0, xmm0
movaps xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], 0
test rax, rax
je 0x14018c10c
js 0x14018c33f
cmp rbx, 0x1000
jb 0x14018c0dc
lea rcx, [rbx + 0x27]
call fcn.14031953c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14018c0e7
mov rcx, rbx
call fcn.14031953c
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.140341b50
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.140256970
mov rbx, qword [rbp + 0xb0]
movzx eax, byte [0x140490bb0]
add al, byte [rbx]
je 0x14018c161
movzx eax, al
or eax, 0x60000000
jmp 0x14018c171
mov eax, dword [rbx + 2]
test eax, eax
je 0x14018c2ca
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 [0x140366140]
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 [0x140490bb0]
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
mov byte [0x140490bb0], cl
mov rcx, qword [rbp + 0xb0]
test rcx, rcx
je 0x14018c21e
mov rdx, qword [rbp + 0xc0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14018c204
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14018c344
add rdx, 0x27
mov rcx, rax
mov eax, 0xffff6009
add eax, dword [0x14044c6a8]
cdqe
add rax, qword [0x14044c6c8]
call qword [case.0x1400eabdd.0]
mov rcx, qword [rbp + 0x70]
test rcx, rcx
je 0x14018c270
mov rdx, qword [rbp + 0x80]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14018c256
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14018c349
add rdx, 0x27
mov rcx, rax
mov eax, 0xffff6009
add eax, dword [0x14044c6a8]
cdqe
add rax, qword [0x14044c6c8]
call qword [case.0x1400eabdd.0]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14018c290
lea rax, [rbp - 0x48]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400eabdd.0]
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x14018c2b0
lea rax, [rbp + 8]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400eabdd.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 0x14018c306
mov dword [rbp + 0xfc], 0x60000003
cmp dx, r14w
jbe 0x14018c177
lea rcx, [rbx + 0x10]
mov r8, rsi
call fcn.1401a4b80
test eax, eax
jns 0x14018c308
mov dword [rbp + 0xfc], 0x60000004
jmp 0x14018c177
xor eax, eax
movzx ecx, r14w
mov dword [rbp + 0xfc], 0x60000005
cmp eax, ecx
jne 0x14018c177
add rbx, 0x10
mov r8d, eax
mov rcx, rdi
mov rdx, rbx
call fcn.1403414a0
mov dword [rbp + 0xfc], 0
jmp 0x14018c177
call fcn.140178ca0
call fcn.1402f9bec
call fcn.1402f9bec
int3