Function at 0x1400a1940
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x98
mov qword [rsp + 0x70], rcx
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
call fcn.14000efc9
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x80], rax
add rax, 0x60
mov qword [rsp + 0x78], rax
call fcn.14005989b
mov rcx, qword [rsp + 0x80]
mov byte [rsp + 0x8f], al
xor eax, eax
cmp byte [rcx + 0x60], 0
mov qword [rsp + 0x90], rax
jne 0x1400a1e14
mov dl, byte [rsp + 0x8f]
cmp dl, 0xe0
setb cl
movsx rax, dl
mov qword [rsp + 0x60], rax
movabs r8, 0x4731ab351d558f
movabs r9, 0x4731ab351d558f
xor r8, r9
cmp dl, 0xe0
mov rdx, rax
cmovb rdx, r8
mov qword [rsp + 0x68], rdx
test cl, 1
mov qword [rsp + 0x90], rax
jne 0x1400a19ea
jmp 0x1400a1e14
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov dl, byte [rsp + 0x8f]
cmp dl, 0
setl cl
cmp dl, 0
mov rdx, rax
cmovl rdx, r8
mov qword [rsp + 0x58], rdx
test cl, 1
mov qword [rsp + 0x90], rax
jne 0x1400a1a26
jmp 0x1400a1e14
mov al, byte [rsp + 0x8f]
add al, 0x34
movzx ecx, al
mov qword [rsp + 0x50], rcx
sub al, 7
ja 0x1400a1cca
mov rax, qword [rsp + 0x50]
lea rcx, [0x1400a1e38]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rcx, qword [rsp + 0x70]
call fcn.14005989b
mov rdx, qword [rsp + 0x78]
mov cl, al
mov rax, qword [rsp + 0x58]
mov dl, byte [rdx]
movsx rcx, cl
cmp dl, 0
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
call fcn.14000efc9
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x48], rax
call fcn.140058eb2
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x78]
mov cx, ax
mov rax, qword [rsp + 0x58]
mov r9b, byte [r8 + 0x60]
rol cx, 8
mov dl, byte [rdx]
movsx r8, cx
xor ecx, ecx
cmp r9b, 0
cmove rcx, r8
cmp dl, 0
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov rcx, qword [rsp + 0x70]
call fcn.14009f7af
mov rdx, qword [rsp + 0x78]
mov ecx, eax
mov rax, qword [rsp + 0x58]
mov dl, byte [rdx]
movsxd rcx, ecx
cmp dl, 0
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov rcx, qword [rsp + 0x70]
call fcn.1400a1520
mov rdx, qword [rsp + 0x78]
mov rcx, rax
mov rax, qword [rsp + 0x58]
cmp byte [rdx], 0
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov rcx, qword [rsp + 0x70]
call fcn.14005989b
mov rdx, qword [rsp + 0x78]
mov cl, al
mov rax, qword [rsp + 0x58]
mov dl, byte [rdx]
mov r8b, 0xbe
xor r8b, 0xbe
movzx ecx, cl
cmp dl, r8b
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov eax, dword [0x140276b58]
mov ecx, dword [0x140276b5c]
xor ecx, 0xec60ed02
xor eax, ecx
mov ecx, 0x82e4dc3e
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0xa015c6ad
xor eax, 0x347c8e87
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x7655413b
and eax, edx
xor ecx, 0xffffffff
mov edx, 0x230d63aa
xor edx, 0x55582291
mov r8d, 0x900383e9
xor r8d, 0x6ffc7c16
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xfdd34f89
xor ecx, 0x76d1f82f
cmp eax, ecx
je 0x1400a1e24
mov rcx, qword [rsp + 0x70]
mov eax, dword [0x140276b60]
mov edx, dword [0x140276b64]
xor edx, 0xffffffff
add eax, edx
add eax, 1
mov r8d, 0x901a5c74
xor edx, edx
div r8d
mov edx, 0xe1391051
xor edx, 0x44825e2e
and eax, edx
mov r8d, 0x184eb555
xor r8d, 0x28fda6b8
xor edx, edx
div r8d
mov dword [rsp + 0x3c], eax
call fcn.14009f75f
mov r8, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
mov dx, ax
mov eax, dword [rsp + 0x3c]
mov r8b, byte [r8]
movzx edx, dx
cmp r8b, 0
cmove rcx, rdx
mov qword [rsp + 0x40], rcx
cmp eax, 0x867f62ab
jae 0x1400a1be4
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov rcx, qword [rsp + 0x70]
call fcn.14009f7af
mov rdx, qword [rsp + 0x78]
mov ecx, eax
mov rax, qword [rsp + 0x58]
mov dl, byte [rdx]
mov ecx, ecx
cmp dl, 0
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov rcx, qword [rsp + 0x70]
call fcn.1400a1520
mov rdx, qword [rsp + 0x78]
mov rcx, rax
mov rax, qword [rsp + 0x58]
cmp byte [rdx], 0
cmove rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a1e14
mov ecx, dword [0x140276b68]
xor ecx, 0xd6035b9d
mov edx, dword [0x140276b6c]
mov eax, ecx
or eax, edx
xor eax, 0xffffffff
or ecx, edx
mov edx, 0xae7fa6d7
xor edx, 0x51805928
xor ecx, edx
or eax, ecx
xor eax, 0xffffffff
and eax, 0x2f01ae26
mov ecx, 0xaf07655f
xor edx, edx
div ecx
mov edx, 0x46521a98
xor edx, 0xd0d0a5e8
mov ecx, eax
xor ecx, edx
mov edx, 0x3322435d
xor edx, 0xccddbca2
xor ecx, edx
or eax, 0x9682bf70
and eax, ecx
cmp eax, 0x3c3465bd
ja 0x1400a1e2d
mov eax, dword [0x140276b70]
mov edx, dword [0x140276b74]
mov ecx, 0xd94d97c0
xor ecx, 0x8820dc8c
xor edx, ecx
mov ecx, edx
and ecx, eax
mov r8d, 0xe4f03329
xor r8d, 0x1b0fccd6
xor ecx, r8d
add eax, edx
add eax, 1
add eax, ecx
mov ecx, 0xcdc8b82
xor ecx, 0x18eef4f6
xor edx, edx
div ecx
mov ecx, 0x60940633
xor ecx, 0xe744396d
xor edx, edx
div ecx
sub eax, 0x1f92a694
mov dword [rsp + 0x2c], eax
lea rcx, [0x140289778]
call fcn.1400a0559
mov rcx, qword [rsp + 0x78]
mov rdx, rax
mov eax, dword [rsp + 0x2c]
mov qword [rsp + 0x30], rdx
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x3b], cl
cmp eax, 0x170836af
jbe 0x1400a1d33
mov rax, qword [rsp + 0x68]
mov cl, byte [rsp + 0x3b]
test cl, 1
mov qword [rsp + 0x90], rax
jne 0x1400a1ddf
jmp 0x1400a1e14
mov rcx, qword [rsp + 0x30]
lea rdx, [0x1402896c5]
lea r8, [0x140289704]
lea r9, [0x1402896b5]
mov qword [rsp + 0x20], 0x356e9931
call fcn.140028fa8
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x90]
add rsp, 0x98
ret
jae 0x1400a1e7f
adc esp, dword [0x14007d615]
call qword [rax + rbx*8 - 0x216cb08]
xchg esp, eax
fdivr st(0)
xor al, 0xe9
std
invalid
add byte [rax + 0x29], cl
invalid