Function at 0x1401aa090
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
mov eax, dword [0x1404be378]
mov ecx, dword [0x1404c1758]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x26838]
jg 0x1401aa116
call fcn.140097450
mov rsi, rax
movzx eax, byte [0x1404be398]
mov ecx, eax
not cl
xor al, 1
and cl, 0xfe
or cl, al
cmp cl, 0xff
je 0x1401aa0fd
call fcn.140097450
mov rcx, rax
mov rax, qword [0x1404be380]
sub rax, rcx
jmp 0x1401aa0ff
xor eax, eax
add rax, rsi
sub rax, qword [0x1404be390]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
lea rdx, [0x1404be378]
xor ecx, ecx
mov r8d, 0x6d73e134
call fcn.1401aa800
cmp byte [0x1404be3a8], 0
jne 0x1401aa13c
cmp dword [0x1404be378], 0xffffffff
jne 0x1401aa0ca
lea rcx, [0x1404be348]
call fcn.14020fc10
xorps xmm0, xmm0
movups xmmword [0x1404be360], xmm0
mov qword [0x1404be370], 0
call fcn.140097450
mov qword [0x1404be380], rax
mov qword [rbp - 8], 0xf
mov qword [rbp - 0x10], 0xc
xor ecx, ecx
mov edx, 1
mov r8d, 1
mov r9d, 0x25a9339e
call fcn.1401aa830
mov rcx, qword [rax]
mov qword [rbp - 0x20], rcx
mov eax, dword [rax + 8]
mov dword [rbp - 0x18], eax
mov byte [rbp - 0x14], 0
lea rcx, [rbp - 0x38]
lea rdx, [rbp - 0x20]
call fcn.140210e40
lea rcx, [0x1404be348]
lea rsi, [rbp - 0x38]
mov rdx, rsi
mov r8d, 0x24614861
call fcn.1401aa820
mov rcx, rsi
call fcn.14009e2d0
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x1401aa21d
mov rcx, qword [rbp - 0x20]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x1401aa218
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1401aa4b9
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14009e2b0
lea rcx, [0x1404be348]
call fcn.14020fdc0
mov rbx, qword [0x1404780b8]
movsxd rsi, dword [rbx]
mov edi, dword [0x1403926d8]
test al, al
je 0x1401aa3f5
lea rcx, [0x1404be348]
call fcn.14020fdb0
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov dword [rsp + 0x20], 0xbf2e81c3
xor ecx, ecx
xor edx, edx
xor r8d, r8d
mov r9d, 1
call fcn.1401aaaf0
lea rcx, [rbp - 0x20]
mov edx, 0x26
mov r9, rax
call fcn.14008d0f0
lea rcx, [0x1404be348]
lea rdx, [rbp - 0x20]
call fcn.140210cf0
mov qword [0x1404be360], rax
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x1401aa2e2
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401aa2dd
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1401aa4be
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14009e2b0
add rsi, rbx
mov ebx, dword [0x1404be388]
lea r14d, [rbx + 1]
mov dword [0x1404be388], r14d
test ebx, r14d
je 0x1401aa300
xor r15d, r15d
jmp 0x1401aa316
xor eax, eax
xor r15d, r15d
test edi, edi
jle 0x1401aa316
cdqe
xor r15, qword [rsi + rax]
add eax, 8
cmp eax, edi
jl 0x1401aa309
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov dword [rsp + 0x20], 0xbf2e81c3
xor ecx, ecx
xor edx, edx
mov r8d, 1
xor r9d, r9d
call fcn.1401aaaf0
lea rcx, [rbp - 0x20]
mov edx, 0x28
mov r9, rax
call fcn.14008d0f0
lea rcx, [0x1404be348]
lea rdx, [rbp - 0x20]
call fcn.140210cf0
mov qword [0x1404be368], rax
and ebx, r14d
mov rax, qword [0x1403926d0]
xor ecx, ecx
neg ebx
sbb rcx, rcx
sub rax, r15
not rax
mov rdx, rax
xor rdx, rcx
and rax, rcx
or rdx, rax
not rdx
test rdx, rdx
setne al
or al, byte [0x1404be3a8]
and al, 1
mov byte [0x1404be3a8], al
mov rax, qword [rbp - 8]
cmp rax, 0xf
jbe 0x1401aa3e5
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401aa3e0
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1401aa4c3
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14009e2b0
lea rax, [0x14036e2f0]
cmp qword [0x1404be360], rax
je 0x1401aa470
mov rax, qword [0x1404be360]
test rax, rax
je 0x1401aa443
cmp qword [0x1404be368], 0
je 0x1401aa443
lea rcx, [0x1401aa790]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], 0
lea r8, [0x1404be370]
lea rdx, [rbp - 0x20]
mov ecx, 2
call qword [case.0x140116dad.0]
test eax, eax
je 0x1401aa443
mov qword [0x1404be368], 0
lea rcx, [0x1401aa720]
mov edx, 0x50bf7c38
call fcn.140107920
lea rdx, [0x1404be378]
mov ecx, 1
mov r8d, 0x6d73e134
call fcn.1401aa800
jmp 0x1401aa0ca
lea rax, [0x14038a658]
mov qword [rbp - 0x20], rax
lea rdx, [rbp - 0x18]
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
lea rax, [0x14038ad28]
mov qword [rbp - 0x38], rax
mov byte [rbp - 0x30], 1
lea rcx, [rbp - 0x38]
call fcn.14036fbfc
lea rax, [0x14038acf8]
mov qword [rbp - 0x20], rax
lea rdx, [0x1403eb8f0]
lea rcx, [rbp - 0x20]
call fcn.14036fb5c
call fcn.14032786c
call fcn.14032786c
call fcn.14032786c
int3