Function at 0x1401ae490
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
call fcn.1401ad2c2
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x50], rax
mov rcx, qword [rcx]
call fcn.1401ad2e0
test al, 1
jne 0x1401ae4c2
jmp 0x1401ae725
mov ecx, dword [0x1401fd488]
xor ecx, 0xa65b5f79
mov edx, dword [0x1401fd48c]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
add eax, 0xe1ddbe2e
mov ecx, 0x4c50d8e0
xor ecx, 0x4c50d8e0
mov edx, 0xb229806b
xor edx, 0xb2115794
sub ecx, edx
sub eax, ecx
and eax, 0xb8f9a4c
mov ecx, 0xb08d48b2
xor ecx, 0x4d5aacb5
cmp eax, ecx
jae 0x1401ae7a0
mov rax, qword [rsp + 0x48]
mov edx, dword [0x1401fd490]
mov r8d, dword [0x1401fd494]
mov ecx, edx
xor ecx, 0xffffffff
and ecx, r8d
xor r8d, 0xffffffff
and edx, r8d
sub edx, ecx
mov ecx, 0x5fa63677
xor ecx, 0xa0bdd7f9
and ecx, edx
xor ecx, 0xffffffff
mov r8d, 0x918f73a4
xor r8d, 0x6e94922a
add edx, r8d
mov r8d, 0x8b7f6f19
xor r8d, 0x8b7f6f18
add edx, r8d
add edx, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x5040e496
mov r8d, 0xffffffff
xor r8d, 0x5040e496
and edx, r8d
or ecx, edx
xor ecx, 0xffffffff
mov edx, ecx
xor edx, 0xd9b3d7da
mov r8d, 0xd213f95d
xor r8d, 0x2dec06a2
xor edx, r8d
or ecx, 0xd9b3d7da
and ecx, edx
mov dword [rsp + 0x38], ecx
mov ecx, 0xdc71f22c
xor ecx, 0x8f66be6b
mov dword [rsp + 0x34], ecx
mov rcx, qword [rax]
call fcn.1401ad5d0
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x38]
cmp byte [rdx], 0
sete dl
mov byte [rsp + 0x3f], dl
cmp eax, ecx
jae 0x1401ae513
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x1401ae5fd
jmp 0x1401ae79b
mov eax, dword [0x1401fd498]
mov r8d, dword [0x1401fd49c]
mov ecx, 0x536d9303
xor ecx, 0x4fd0873
xor r8d, ecx
mov ecx, 0xee94854f
xor ecx, 0x116b7ab0
mov edx, r8d
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
xor eax, 0x80637ba
mov ecx, 0xd3b5d25
xor ecx, 0x83a0c3bb
sub eax, ecx
sub eax, 0x235751cd
add eax, 0x8e9b9e9e
mov ecx, 0xf60544ff
xor ecx, 0xef0e3778
sub eax, ecx
cmp eax, 0x8beff921
jbe 0x1401ae7a9
mov eax, dword [0x1401fd4a0]
xor eax, 0xd838dce0
mov r8d, dword [0x1401fd4a4]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov ecx, 0xcbdb4a13
xor ecx, 0x3424b5ec
mov r9d, r8d
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
imul eax, eax, 0x9981e802
mov ecx, 0x6fe29413
xor ecx, 0xeb7843ec
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rsp + 0x48]
mov edx, 0xffffffff
xor edx, 0xe823d716
xor r8d, r8d
sub r8d, 1
sub edx, r8d
sub ecx, edx
mov dword [rsp + 0x30], ecx
mov ecx, 0xdbcb084e
xor ecx, 0xed719506
mov dword [rsp + 0x2c], ecx
mov rcx, qword [rax]
movabs rdx, 0x70f080f2664bf41f
movabs rax, 0x70f080f2664bf417
xor rdx, rax
call fcn.140011370
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x30]
cmp eax, ecx
jb 0x1401ae669
jmp 0x1401ae725
mov eax, dword [0x1401fd4a8]
imul eax, dword [0x1401fd4ac]
mov ecx, 0xa361b588
xor edx, edx
div ecx
add eax, 0x445ae68d
or eax, 0xd0cb3b0
mov ecx, 0x1112bdcc
xor ecx, 0x434415d
cmp eax, ecx
jb 0x1401ae7b2
mov rcx, qword [rsp + 0x48]
mov eax, dword [0x1401fd4b0]
xor eax, 0x727c61c1
sub eax, dword [0x1401fd4b4]
mov r8d, 0x596adab7
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x40]
or eax, 0x5e737cbe
or eax, 0x24c1b0c8
mov qword [rcx], rdx
cmp eax, 0xc2508597
je 0x1401ae758
jmp 0x1401ae79b
add rsp, 0x58
ret
pop rsp
push 0x6ae9020d
std
invalid
ret 0x5b9f
sbb al, 0x48
mov ebx, 0xff9de9b8
invalid