Function at 0x1401a9f90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 8], 0xfffffffffffffffe
movsxd r15, dword [0x1403f2884]
mov r12d, dword [0x1403f2880]
mov eax, dword [0x14051d570]
mov ecx, dword [0x140520970]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x26838]
jg 0x1401aa039
call fcn.14009a1f0
mov rsi, rax
movzx eax, byte [0x14051d588]
mov ecx, eax
not cl
xor al, 1
and cl, 0xfe
or cl, al
cmp cl, 0xff
je 0x1401aa00a
call fcn.14009a1f0
mov rcx, qword [0x14051d578]
sub rcx, rax
jmp 0x1401aa00c
xor ecx, ecx
add rcx, rsi
sub rcx, qword [0x1404d0f60]
sub rcx, qword [0x14051d580]
movabs rax, 0x601eecd94ae2a853
add rax, rcx
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
mov dword [rsp + 0x20], 0x23d8adaf
lea rdx, [0x14051d570]
mov ecx, 1
mov r8d, 0x89312d8c
mov r9d, 0xd713e30e
call fcn.1401ab030
cmp dword [0x14051d570], 0xffffffff
jne 0x1401a9fda
mov esi, dword [0x1404d0e04]
mov eax, dword [0x1404d0f68]
lea edi, [rsi + rax]
add edi, 0xa486c308
mov dword [0x1404d0e04], edi
xor ebx, ebx
mov r14d, 0
test esi, edi
jne 0x1401aa100
lea rax, [0x1403f2884]
add r15, rax
mov ecx, 0xa486c307
mov r8d, 0xa486c309
mov eax, dword [0x14051d598]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
mov eax, dword [0x1404d0f68]
add eax, ecx
cmp edx, eax
jne 0x1401aa0e1
mov edx, dword [0x14051d598]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x1404d0f68]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
je 0x1401aa0ee
mov eax, dword [0x14051d59c]
cmp eax, 0x17
jge 0x1401aa0a7
jmp 0x1401aa0c2
xor eax, eax
mov ebx, 0
mov r14d, 0
test r12d, r12d
jg 0x1401aa13e
mov eax, dword [0x14051d598]
mov eax, dword [0x1404d0f68]
mov ecx, eax
xor ecx, 0xa486c307
and eax, 0x2486c307
add eax, eax
add eax, ecx
jne 0x1401aa106
lea rcx, [0x14051d540]
call fcn.14021a930
mov eax, dword [0x14051d598]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401aa1b1
jmp 0x1401aa198
xor ebx, ebx
xor r14d, r14d
jmp 0x1401aa175
mov rdx, rcx
xor rdx, r14
mov r9, r8
xor r9, rbx
xor r9, rbx
and r9, r8
xor rbx, r9
xor rdx, r14
and rdx, rcx
xor r14, rdx
mov ecx, dword [0x1404d0f68]
add eax, ecx
add eax, 0xa486c317
cmp eax, r12d
jge 0x1401aa100
movsxd rdx, eax
add rdx, r15
mov r8, qword [rdx]
mov rcx, qword [rdx + 8]
mov r9d, dword [0x14051d59c]
cmp r9d, 0x29
jle 0x1401aa145
mov rcx, qword [rdx]
mov rcx, qword [rdx + 8]
jmp 0x1401aa17b
mov rax, qword [0x1403f2870]
mov rcx, qword [0x1403f2868]
mov edx, dword [0x14051d59c]
cmp edx, 0x53
jl 0x1401aa1d7
lea rax, [fcn.1401a9f90]
add eax, eax
add eax, 0x2640
mov ecx, eax
not ecx
mov rdx, qword [0x1403f2870]
mov rdx, qword [0x1403f2868]
test ecx, eax
jne 0x1401aa1c3
jmp 0x1401aa198
mov edx, dword [0x14051d598]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1401aa62e
jmp 0x1401aa5ee
mov rax, r15
not rax
mov rcx, r9
not rcx
and r10, rcx
and r11, rax
and rdx, r9
or rdx, r10
and r8, r15
or r8, r11
mov r10, rdx
not r10
mov r11, r8
not r11
xor r8, r15
xor rdx, r9
and r11, rax
or r11, r8
and r10, rcx
or r10, rdx
and r10, r11
cmp r10, 0xffffffffffffffff
setne al
or al, byte [0x14051d060]
and al, 1
mov byte [0x14051d060], al
xorps xmm0, xmm0
movups xmmword [0x14051d558], xmm0
mov qword [0x14051d568], 0
call fcn.14009a1f0
mov qword [0x14051d578], rax
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], 0xc
mov ecx, 1
mov edx, 1
mov r8d, 0x459bc0fb
mov r9d, 0xbfdcbbdd
call fcn.1401aaaf0
mov rcx, qword [rax]
mov qword [rbp - 0x28], rcx
mov eax, dword [rax + 8]
mov dword [rbp - 0x20], eax
mov byte [rbp - 0x1c], 0
lea rcx, [rbp - 0x40]
lea rdx, [rbp - 0x28]
call fcn.14021c1b0
mov dword [rsp + 0x20], 0x5db72bad
lea rcx, [0x14051d540]
lea rsi, [rbp - 0x40]
mov rdx, rsi
mov r8d, 0x4150f049
mov r9d, 0x297568b4
call fcn.1401ab050
mov rcx, rsi
call fcn.1400a8a70
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x1401aa334
mov rcx, qword [rbp - 0x28]
lea rdx, [rax + 1]
cmp rdx, 0x1000
setae r8b
movzx r9d, byte [0x14051d5a0]
test r9b, r8b
jne 0x1401aa310
xor r9b, r8b
je 0x1401aa32f
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1401aa5df
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8a50
lea rcx, [0x14051d540]
call fcn.14021aa60
test al, al
je 0x1401aa504
lea rcx, [0x14051d540]
call fcn.14021aa40
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov ecx, 1
xor edx, edx
mov r8d, 0x459bc0fb
mov r9d, 0xbfdcbbdd
call fcn.1401aaaf0
lea rcx, [rbp - 0x28]
mov edx, 0x26
mov r9, rax
call fcn.14008aa10
lea rcx, [0x14051d540]
lea rdx, [rbp - 0x28]
call fcn.14021bf50
mov qword [0x14051d558], rax
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x1401aa41b
mov rcx, qword [rbp - 0x28]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401aa416
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x9fe11326b51d57cd
add rdx, qword [0x1404d0f60]
cmp rcx, rdx
jae 0x1401aa5e4
sub rax, qword [0x1404d0f60]
movabs rcx, 0x1e5513fa1ebdefc5
add rcx, rax
movabs rax, 0x41c9d8df2c24b8b6
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea rdx, [rdx + rcx*2]
mov rcx, r8
call fcn.1400a8a50
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
xor ecx, ecx
mov edx, 1
mov r8d, 0xabd3a1d3
mov r9d, 0x1aecc673
call fcn.1401aadd0
lea rcx, [rbp - 0x28]
mov edx, 0x28
mov r9, rax
call fcn.14008aa10
lea rcx, [0x14051d540]
lea rdx, [rbp - 0x28]
call fcn.14021bf50
mov qword [0x14051d560], rax
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x1401aa4f0
mov rcx, qword [rbp - 0x28]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401aa4eb
mov r8, qword [rcx - 8]
mov rdx, qword [0x1404d0f60]
add rcx, rdx
sub rcx, r8
movabs r9, 0x9fe11326b51d57a5
add r9, rcx
movabs rcx, 0x9fe11326b51d57cd
add rcx, rdx
cmp r9, rcx
jae 0x1401aa5e9
movabs rcx, 0x9fe11326b51d57d5
add rcx, qword [0x1404d0f60]
mov rdx, rax
xor rdx, rcx
not rax
not rcx
and rcx, rax
or rcx, rdx
not rcx
lea rdx, [rdx + rcx*2]
mov rcx, r8
call fcn.1400a8a50
lea rax, [0x1403cfca0]
cmp qword [0x14051d558], rax
je 0x1401aa596
mov rax, qword [0x14051d558]
test rax, rax
je 0x1401aa552
cmp qword [0x14051d560], 0
je 0x1401aa552
lea rcx, [0x1401aa9b0]
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], 0
lea r8, [0x14051d568]
lea rdx, [rbp - 0x28]
mov ecx, 2
call qword [case.0x1400f5c95.0]
test eax, eax
je 0x1401aa552
mov qword [0x14051d560], 0
lea rcx, [0x1401aa940]
mov edx, 0x54b69197
mov r8d, 0xe462d7ee
mov r9d, 0x60d97cdb
call fcn.1400ad8d0
mov dword [rsp + 0x20], 0x23d8adaf
lea rdx, [0x14051d570]
xor ecx, ecx
mov r8d, 0x89312d8c
mov r9d, 0xd713e30e
call fcn.1401ab030
jmp 0x1401a9fda
lea rax, [0x1403ebad8]
mov qword [rbp - 0x28], rax
lea rdx, [rbp - 0x20]
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea rax, [0x1403ec1a8]
mov qword [rbp - 0x40], rax
mov byte [rbp - 0x38], 1
lea rcx, [rbp - 0x40]
call fcn.1403d15ac
lea rax, [0x1403ec178]
mov qword [rbp - 0x28], rax
lea rdx, [0x140447100]
lea rcx, [rbp - 0x28]
call fcn.1403d150c
call fcn.140388c3c
call fcn.140388c3c
call fcn.140388c3c
xor r10d, r10d
test esi, edi
setne r10b
xor r11d, r11d
mov rdx, r10
add rdx, 0xffffffffffffffff
mov r8d, 0
adc r8, 0xffffffffffffffff
mov r9, rcx
sub r9, rbx
mov r15, rax
sbb r15, r14
neg r10
sbb r11, r11
mov r12d, dword [0x14051d59c]
cmp r12d, 0x32
jl 0x1401aa1f4
mov edx, 0xa486c308
lea r8, [fcn.1401a9f90]
add r8d, r8d
add r8d, 0x260
mov r9d, dword [0x1404d0f68]
add r9d, edx
test r8d, r9d
jne 0x1401aa644
jmp 0x1401aa5ee