Function at 0x14014c9d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x148
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xb0], xmm6
mov qword [rbp + 0xa8], 0xfffffffffffffffe
mov qword [rbp - 0x20], r9
mov rbx, rdx
mov r15, rcx
mov qword [rbp + 0xa0], 0xf
lea rax, [0x140426b18]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x98], 0
mov byte [rbp + 0x88], 0
test r8, r8
je 0x14014ca46
lea rcx, [rbp + 0x80]
mov rdx, r8
call fcn.140244d70
lea r14, [rbp + 0x88]
lea r12, [rbp - 0x10]
xorps xmm6, xmm6
lea rsi, [fcn.14014c9d0]
mov qword [rbp - 0x28], r15
jmp 0x14014ca88
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a9560
lea rcx, [rbp + 0x10]
call fcn.14014bc40
mov eax, dword [0x1405642c4]
cmp eax, 0x51
jg 0x14014cac0
nop word cs:[rax + rax]
mov eax, dword [0x1405642c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14014cb00
nop word cs:[rax + rax]
mov eax, dword [0x140509dd8]
mov ecx, eax
xor ecx, 0xaa897675
and eax, 0x2a897675
lea eax, [rcx + rax*2]
lea ecx, [rsi + rsi]
add ecx, 0x2c0
mov edx, ecx
not edx
mov r8d, ecx
xor r8d, edx
and r8d, eax
xor edx, edx
xor edx, r8d
test edx, ecx
jne 0x14014cac0
jmp 0x14014caa0
lea rax, [0x14042b6d0]
cmp rbx, 0x7fffffff
ja 0x14014d0c0
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], 0
lea rdx, [0x140426b18]
mov qword [rbp + 0x28], rdx
mov rax, qword [0x140509de0]
movabs rcx, 0x9ca093da9fcae680
add rcx, rax
mov qword [rbp + 0x68], rcx
movabs rcx, 0x9ca093da9fcae68f
add rax, rcx
mov qword [rbp + 0x70], rax
mov byte [rbp + 0x58], 0
mov qword [rbp + 0x50], rdx
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x18], rbx
mov rax, qword [r15 + 0x70]
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], 0
mov r13, rax
jne 0x14014cba9
mov r13, rax
nop dword [rax + rax]
lea rdx, [rcx + 0x10]
cmp qword [rcx + 0x28], rbx
cmovae r13, rcx
cmovae rdx, rcx
mov rcx, qword [rdx]
cmp byte [rcx + 0x19], 0
je 0x14014cb90
cmp byte [r13 + 0x19], 0
jne 0x14014d1d1
cmp rbx, qword [r13 + 0x28]
jb 0x14014d1d1
cmp r13, rax
je 0x14014d1d1
mov rbx, qword [r13 + 0x30]
cmp rbx, qword [r13 + 0x28]
je 0x14014d1d1
movups xmmword [r12 + 0x10], xmm6
cmp qword [rbp + 0xa0], 0x10
jb 0x14014cbec
mov r14, qword [rbp + 0x88]
mov r15, qword [rbp + 0x98]
mov rax, qword [0x140509de0]
movabs rcx, 0xfa70420777a47b61
add rax, rcx
mov rcx, rax
movabs rdx, 0xa23051d328266b2f
xor rcx, rdx
movabs rdx, 0x223051d328266b2f
and rax, rdx
lea rax, [rcx + rax*2]
cmp r15, rax
jae 0x14014cc70
mov eax, dword [0x140509dd8]
mov ecx, eax
xor ecx, 0xaa897675
and eax, 0x2a897675
lea eax, [rcx + rax*2]
lea ecx, [rsi + rsi]
add ecx, 0x3740
mov edx, ecx
xor edx, eax
not eax
not ecx
and ecx, eax
or ecx, edx
cmp ecx, 0xffffffff
jne 0x14014cd60
jmp 0x14014cd40
mov eax, dword [0x1405642c4]
cmp eax, 0x45
movabs rdx, 0x7fffffffffffffff
mov rdi, r15
not rdi
mov rax, r15
xor rax, 0xf
and rdi, 0xfffffffffffffff0
or rdi, rax
not rdi
or rdi, rax
cmp rdi, rdx
cmovae rdi, rdx
lea eax, [rsi + rsi]
add eax, 0x4460
mov ecx, eax
not ecx
test ecx, eax
jne 0x14014cc83
cmp rdi, 0xfff
jb 0x14014cd00
mov eax, dword [0x1405642c4]
mov ecx, dword [0x140509dd8]
mov edx, ecx
xor edx, 0xaa8976d4
not ecx
and ecx, 0x5576892b
or ecx, edx
not ecx
lea ecx, [rdx + rcx*2]
cmp eax, ecx
lea rcx, [rdi + 0x28]
call fcn.1403e3fbc
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14014cd09
lea rcx, [rdi + 1]
call fcn.1403e3fbc
mov qword [rbp - 0x10], rax
mov r8, qword [0x140509de0]
add r8, r15
movabs rcx, 0x9ca093da9fcae681
add r8, rcx
mov rcx, rax
mov rdx, r14
call fcn.14040bf30
jmp 0x14014cd85
movups xmm0, xmmword [r14]
movups xmmword [r12], xmm0
mov eax, dword [0x1405642c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14014cd80
nop word [rax + rax]
movups xmm0, xmmword [r14]
movups xmmword [r12], xmm0
mov eax, dword [0x1405642c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14014cd60
jmp 0x14014cd40
mov edi, 0xf
mov qword [rbp], r15
mov qword [rbp + 8], rdi
lea rax, [0x140426b18]
mov qword [rbp - 0x18], rax
cmp qword [rbp + 0xa0], 0x10
lea r14, [rbp + 0x88]
mov rax, r14
jb 0x14014cdb3
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x98], 0
mov byte [rax], 0
mov r8, qword [r13 + 0x50]
cmp qword [r13 + 0x58], 0x10
mov r15, qword [rbp - 0x28]
movabs rdi, 0x9ca093da9fcaf67f
jb 0x14014cde0
mov r13, qword [r13 + 0x40]
jmp 0x14014cde4
add r13, 0x40
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 0xa0]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x14014ce20
mov qword [rsp + 0x20], r8
mov rcx, r14
mov rdx, r8
mov r9, r13
call fcn.140088de0
jmp 0x14014ce59
lea rdi, [rcx + r8]
mov qword [rbp + 0x98], rdi
cmp rax, 0x10
jb 0x14014ce38
mov r14, qword [rbp + 0x88]
add rcx, r14
mov rdx, r13
call fcn.14040bf30
mov byte [r14 + rdi], 0
lea r14, [rbp + 0x88]
movabs rdi, 0x9ca093da9fcaf67f
mov qword [rbp - 0x30], 0xf
mov qword [rbp - 0x38], 1
mov word [rbp - 0x48], 0x5c
lea rax, [0x140426b18]
mov qword [rbp - 0x50], rax
mov rax, qword [rbp + 0x98]
mov rdx, qword [rbp + 0xa0]
cmp rdx, rax
jne 0x14014ceb0
mov qword [rsp + 0x20], 1
mov edx, 1
mov rcx, r14
lea r9, [rbp - 0x48]
call fcn.140088de0
jmp 0x14014cef8
mov r9, qword [0x140509de0]
lea rcx, [r9 + rax]
movabs r8, 0x9ca093da9fcae681
add rcx, r8
mov qword [rbp + 0x98], rcx
movabs r8, 0x9ca093da9fcae68f
add r9, r8
mov r8, r14
cmp rdx, r9
jbe 0x14014ceeb
mov r8, qword [rbp + 0x88]
movzx edx, byte [rbp - 0x48]
mov byte [r8 + rax], dl
mov byte [r8 + rcx], 0
mov r8, qword [rbp]
cmp qword [rbp + 8], 0x10
mov r9, r12
jb 0x14014cf0a
mov r9, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 0xa0]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x14014cf40
mov qword [rsp + 0x20], r8
mov rcx, r14
mov rdx, r8
call fcn.140088de0
jmp 0x14014cfa7
lea rdx, [rcx + r8]
movabs r10, 0x5ede73a48daeb6af
add rdx, r10
mov r10, rdx
movabs r11, 0xa1218c5b72514951
xor r10, r11
movabs r11, 0x21218c5b72514951
and rdx, r11
lea rdi, [r10 + rdx*2]
mov qword [rbp + 0x98], rdi
cmp rax, 0x10
jb 0x14014cf86
mov r14, qword [rbp + 0x88]
add rcx, r14
mov rdx, r9
call fcn.14040bf30
mov byte [r14 + rdi], 0
lea r14, [rbp + 0x88]
movabs rdi, 0x9ca093da9fcaf67f
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
jb 0x14014d048
nop word cs:[rax + rax]
mov rcx, qword [rbp - 0x48]
mov r8, qword [0x140509de0]
add r8, rdi
mov edx, dword [0x1405642c4]
cmp edx, 0x37
jg 0x14014cfc0
lea rdx, [rax + 1]
cmp rdx, r8
jbe 0x14014d043
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
movabs rdx, 0x5d2048f0eb32e494
add rcx, rdx
mov rdx, rcx
movabs r9, 0xa2dfb70f14cd1b6c
xor rdx, r9
movabs r9, 0x22dfb70f14cd1b6c
and rcx, r9
lea rcx, [rdx + rcx*2]
cmp rcx, 0x20
jae 0x14014d269
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a9560
mov rax, qword [rbp + 8]
cmp rax, 0x10
setb cl
setae r8b
movzx edx, byte [0x1405642cc]
mov r9d, edx
xor r9b, 1
mov r10d, edx
xor r10b, r8b
mov r11d, r9d
and r11b, cl
or r11b, r10b
je 0x14014d083
and r9b, r8b
jne 0x14014d083
and dl, cl
je 0x14014ca7f
mov rcx, qword [rbp - 0x10]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x14014ca7a
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jb 0x14014ca70
call fcn.1403c3cac
mov qword [rbp + 0x10], rax
lea rcx, [rbp + 0x28]
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], 0
lea rax, [0x140426b18]
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], rbx
lea rdx, [rbp + 0x80]
call fcn.1402470b0
mov r9, qword [rbp - 0x20]
mov ecx, dword [0x1405642c0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xaa897676
add ecx, dword [0x140509dd8]
xor edx, edx
div ecx
test edx, edx
je 0x14014d166
mov eax, 0xaa897675
lea rcx, [fcn.14014c9d0]
add ecx, ecx
add ecx, 0x14c0
nop
mov edx, dword [0x140509dd8]
add edx, eax
mov r8d, ecx
xor r8d, edx
not r8d
test r8d, edx
jne 0x14014d150
test r9, r9
je 0x14014d177
lea rcx, [rbp + 0x50]
mov rdx, r9
call fcn.140244d70
movabs rax, 0x222222222222222
cmp qword [r15 + 0x58], rax
je 0x14014d26e
mov rax, qword [r15 + 0x50]
mov rsi, qword [rax]
mov qword [rbp + 0x78], 0
mov ecx, 0x78
call fcn.1403e3fbc
mov rdi, rax
mov rcx, rax
add rcx, 0x10
mov qword [rbp + 0x78], rax
lea rdx, [rbp + 0x10]
call fcn.1401515b0
inc qword [r15 + 0x58]
mov rax, qword [rsi + 8]
mov qword [rdi], rsi
mov qword [rdi + 8], rax
mov qword [rsi + 8], rdi
mov qword [rax], rdi
lea rcx, [rbp + 0x10]
call fcn.14014bc40
mov rax, qword [rbp + 0xa0]
cmp rax, 0x10
jb 0x14014d22c
mov rcx, qword [rbp + 0x88]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14014d227
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14014d259
mov ecx, eax
not ecx
and ecx, 0x28
mov rdx, rax
and rdx, 0xffffffffffffffd7
or rdx, rcx
and eax, 0x28
lea rdx, [rdx + rax*2]
mov rcx, r8
call fcn.1400a9560
movaps xmm6, xmmword [rbp + 0xb0]
add rsp, 0x148
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [0x1405642cc], 0
je 0x14014d259
mov eax, dword [0x1405642c4]
cmp eax, 0x3d
jg 0x14014d250
call fcn.1403c3cac
call fcn.1403c3cac
mov dword [rsp + 0x20], 0x33462ec6
mov ecx, 1
xor edx, edx
mov r8d, 0xa4b7c4f9
mov r9d, 0xa98b5c38
call fcn.140154750
mov rcx, rax
call fcn.1403e5c74
int3