Function at 0x1400a5ef0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x120
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x40], rcx
mov eax, 0x10
call fcn.1401f0aa0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x38], rax
sub rsp, 0x20
call fcn.1400a525d
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov qword [rbp + 0x48], rax
mov rax, rcx
add rax, 0x28
mov qword [rbp + 0x50], rax
mov rax, qword [rcx + 0x28]
movabs rcx, 0x453235bafecbecef
movabs rdx, 0x453235bafecbecef
xor rcx, rdx
cmp rax, rcx
mov qword [rbp + 0x58], rax
jne 0x1400a603d
mov ecx, 4
sub rsp, 0x20
call fcn.14003bef4
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x30], rcx
cmp byte [rax], 0
jne 0x1400a6682
mov rdx, qword [rbp + 0x30]
mov rax, rdx
add rax, 0xffffffffffffffff
mov qword [rbp + 0x28], rax
mov rcx, rax
xor rcx, rdx
movabs rdx, 0x67283ebefe09cdce
movabs r8, 0x67283ebefe09cdce
xor rdx, r8
cmp rcx, rdx
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x1400a5fce
jmp 0x1400a5fe0
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x1400a6682
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x50]
mov rdx, qword [rbp + 0x28]
mov qword [rcx], rdx
cmp rax, 0
jge 0x1400a601d
mov rcx, qword [rbp + 0x30]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000f6ec
add rsp, 0x20
jmp 0x1400a6682
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x40]
sub rsp, 0x20
call fcn.14002110e
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x58], rax
mov rcx, qword [rbp + 0x58]
movabs rdx, 0xd152f39fcff9323f
movabs rax, 0xd152f39fcff9323e
xor rdx, rax
mov rax, rcx
add rax, rdx
mov qword [rbp + 0x20], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x1400a6085
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x1400a6682
mov rax, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x40]
mov rdx, rcx
add rdx, 0x20
mov qword [rbp + 0x18], rdx
cmp rax, qword [rcx + 0x20]
jg 0x1400a6682
mov rcx, qword [rbp + 0x20]
lea rdx, [rbp + 0x98]
sub rsp, 0x20
call fcn.1400a66a6
add rsp, 0x20
test al, 1
jne 0x1400a60c7
jmp 0x1400a60d9
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x1400a6682
mov eax, dword [0x1401f62a8]
mov edx, dword [0x1401f62ac]
mov r8d, eax
xor r8d, edx
xor r8d, 0xffffffff
mov ecx, edx
and ecx, r8d
shl ecx, 1
sub ecx, edx
sub eax, ecx
or eax, 0x6566d264
mov ecx, 0xf0a5eb5d
xor ecx, 0x26d7214c
or eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x8bbcc0a7
add ecx, eax
xor eax, eax
sub eax, ecx
cmp eax, 0xa37c943a
je 0x1400a668b
mov eax, dword [0x1401f62b0]
mov ecx, dword [0x1401f62b4]
xor ecx, 0x9653b966
imul eax, ecx
mov ecx, 0xa1ebbeeb
xor ecx, 0x3db0e1a9
sub eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xea119a0f
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xbe12af8a
xor r8d, 0x41ed5075
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xea119a0f
mov r8d, 0x62546c94
xor r8d, 0x8845f69b
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xa6c0e4e5
xor edx, edx
div ecx
mov ecx, 0xbd05f73e
xor ecx, 0xf22dc59e
mov rdx, qword [rbp + 0x98]
mov qword [rbp + 8], rdx
cmp rdx, 0
setl dl
mov byte [rbp + 0x17], dl
cmp eax, ecx
jae 0x1400a6129
mov al, byte [rbp + 0x17]
test al, 1
jne 0x1400a61d3
jmp 0x1400a61f7
mov rcx, qword [rbp + 8]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000f6ec
add rsp, 0x20
jmp 0x1400a6682
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x80]
sub rsp, 0x20
call fcn.140021140
mov r8, qword [rbp + 0x40]
mov rax, qword [rbp + 0x38]
add rsp, 0x20
mov rdx, qword [rbp + 0x80]
mov qword [rbp - 0x38], rdx
mov rcx, qword [rbp + 0x88]
mov qword [rbp - 0x30], rcx
mov rcx, r8
add rcx, 0x10
mov qword [rbp - 0x28], rcx
mov rcx, qword [r8 + 0x10]
add r8, 8
mov qword [rbp - 0x20], r8
add rax, 8
mov qword [rbp - 0x18], rax
xor eax, eax
test rdx, rdx
cmovg rax, rdx
mov qword [rbp - 0x10], rax
xor eax, eax
mov qword [rbp - 8], rcx
mov qword [rbp], rax
mov rcx, qword [rbp + 0x18]
mov rdx, qword [rbp - 8]
mov rax, qword [rbp]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rdx
cmp rax, qword [rcx]
jge 0x1400a6399
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp + 0x40]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x50], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1400a62c8
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x50]
xor eax, eax
sub rax, 0xffffffffffffffff
sub rdx, rax
sub rsp, 0x20
call fcn.140016582
add rsp, 0x20
jmp 0x1400a6682
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x10]
cmp rax, rcx
jne 0x1400a62f7
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140016582
add rsp, 0x20
jmp 0x1400a6682
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 4
add rcx, rax
mov rax, qword [rcx]
mov qword [rbp - 0x60], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x58], rax
sub rsp, 0x20
call fcn.140012dfb
mov rcx, qword [rbp - 0x30]
mov r9, qword [rbp - 0x60]
mov r8, qword [rbp - 0x58]
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp + 0x38]
mov r10, qword [rbp - 0x48]
add rsp, 0x20
add rcx, 8
shl r10, 4
add rcx, r10
mov qword [rdx], r9
mov qword [rax], r8
sub rsp, 0x20
call fcn.140017ca0
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp + 0x50]
add rsp, 0x20
movabs r8, 0xb10a1838bbeebcc8
movabs r9, 0xb10a1838bbeebcc9
xor r8, r9
add rax, r8
add rcx, 1
and rcx, qword [rdx]
mov qword [rbp - 8], rcx
mov qword [rbp], rax
jmp 0x1400a6263
mov ecx, dword [str._A_ae8_r]
mov edx, dword [0x1401f62bc]
xor eax, eax
sub eax, edx
sub ecx, eax
sub ecx, 0x5a00ec53
mov eax, 0xffffffff
xor eax, 0x8320d27b
add ecx, eax
add ecx, 1
mov eax, 0x3eae3d65
xor eax, 0xc151c29a
mov edx, ecx
xor edx, eax
mov eax, 0x7755caa8
xor eax, 0xae08d1b0
and eax, edx
mov edx, 0xffffffff
xor edx, 0xd95d1b18
and ecx, edx
or eax, ecx
mov ecx, 0xdb19c4cd
xor ecx, 0xccb97475
cmp eax, ecx
je 0x1400a6694
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x38]
mov r8d, dword [0x1401f62c0]
mov r9d, dword [0x1401f62c4]
sub r8d, 0x2ac82e2e
sub r8d, r9d
add r8d, 0x2ac82e2e
mov r9d, r8d
and r9d, 0x9fc7251e
shl r9d, 1
add r8d, 0x9fc7251e
sub r8d, r9d
mov r9d, 0xec9b2693
xor r9d, 0x5f58814a
add r8d, r9d
mov r10d, 0xe84911bc
xor r10d, 0xa6b0d206
mov r9d, 0xe21a9d5
xor r9d, 0xf1de562a
xor r10d, r9d
mov r9d, r8d
and r9d, r10d
mov r10d, r8d
xor r10d, 0x4ef9c3ba
add r8d, r10d
sub r8d, r9d
mov dword [rbp - 0x68], r8d
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], rax
lea rdx, [rbp + 0x70]
sub rsp, 0x20
call fcn.1400a5d20
mov rcx, qword [rbp + 0x48]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0x599d6694
jbe 0x1400a6694
mov al, byte [rbp - 0x61]
test al, 1
jne 0x1400a64ca
jmp 0x1400a6682
mov rcx, qword [rbp + 0x20]
lea rdx, [rbp + 0x90]
sub rsp, 0x20
call fcn.1400a66a6
add rsp, 0x20
test al, 1
jne 0x1400a64ef
jmp 0x1400a6501
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x1400a6682
mov eax, dword [0x1401f62c8]
xor eax, 0xe995e6d9
mov r8d, dword [0x1401f62cc]
xor r8d, 0x41533f39
mov edx, 0x64ac3484
xor edx, 0x9b53cb7b
mov ecx, eax
xor ecx, edx
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
sub eax, 0x17e67380
mov ecx, 0x8b85844a
xor ecx, 0xf3eaa101
or eax, ecx
mov edx, 0x881eb177
xor edx, 0x881eb176
mov ecx, eax
add ecx, edx
xor eax, 0xffffffff
or eax, 0xbdba26c0
add eax, ecx
mov ecx, 0xdf79a71f
xor ecx, 0xeca57919
cmp eax, ecx
je 0x1400a669d
mov eax, dword [0x1401f62d0]
mov edx, dword [0x1401f62d4]
not eax
mov ecx, eax
and ecx, edx
not ecx
or eax, edx
and ecx, eax
not ecx
add ecx, 0xbfe4aae7
mov eax, ecx
and eax, 0x168bb8e3
xor eax, 0x20880c2
and ecx, 0x20880c2
or eax, ecx
mov ecx, 0x601f83ba
mov r10, qword [rbp + 0x90]
mov r9, r10
neg r9
mov r8, r10
dec r8
mov qword [rbp - 0x78], r8
mov rdx, r10
not rdx
or r9, rdx
mov rdx, r8
or rdx, r10
and r9, rdx
test r8, r8
setns dl
or r8, r9
sets r8b
add dl, r8b
inc dl
mov byte [rbp - 0x69], dl
cmp eax, ecx
je 0x1400a6588
mov al, byte [rbp - 0x69]
test al, 1
jne 0x1400a6617
jmp 0x1400a6629
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x1400a6682
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x50]
mov r9, qword [rbp - 0x78]
mov qword [r8], r9
mov rdx, qword [rdx]
mov qword [rcx + 0x18], rdx
movabs rcx, 0x87d05c255996d441
movabs rdx, 0x87d05c255996d441
xor rcx, rdx
mov qword [rax], rcx
mov qword [rbp + 0x60], 0
add byte [rax], al
mov qword [rbp + 0x68], 0
lea rcx, [rbp + 0x60]
sub rsp, 0x20
call fcn.1400a4de0
add rsp, 0x20
lea rsp, [rbp + 0xa0]
pop rbp
ret
outsd dx, dword [rsi]
mov ebx, 0x95e9a1d6
cli
invalid
imul ebx, dword [rcx], 0xffffffef
nop
jmp 0x1400a63fc
je 0x1400a6667
insb byte [rdi], dx
mov dl, 0xe9
loop 0x1400a66a2
invalid