Function at 0x1401a8cc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x100
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], rcx
mov qword [rbp - 0x20], rcx
mov eax, 0x10
mov qword [rbp - 0x18], rax
call fcn.1401f0aa0
sub rsp, rax
mov rax, rsp
mov qword [rbp], rax
mov eax, 0x40
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp - 0x18]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.1401f0aa0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x10], rax
sub rsp, 0x20
call fcn.1401ad01f
mov rcx, qword [rbp - 8]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp]
mov qword [rbp + 8], rdx
mov qword [rcx], 0
mov qword [rcx + 8], 0
mov qword [rax], 0
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x10], rcx
mov qword [rax + 8], 0
lea rcx, [rbp + 0x70]
mov edx, 0x10
sub rsp, 0x20
call fcn.1401a8c51
add rsp, 0x20
lea rcx, [rbp + 0x70]
lea rdx, [0x140208000]
sub rsp, 0x20
call fcn.1401a9340
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
mov edx, 0x40
sub rsp, 0x20
call fcn.1401a8c51
add rsp, 0x20
lea rax, [rbp + 0x70]
add rax, 4
mov qword [rbp + 0x18], rax
lea rax, [rbp + 0x70]
add rax, 8
mov qword [rbp + 0x20], rax
lea rax, [rbp + 0x70]
add rax, 0xc
mov qword [rbp + 0x28], rax
mov eax, 0x80000000
cpuid
mov r8d, eax
mov rax, qword [rbp + 0x30]
mov dword [rbp + 0x3c], r8d
mov r8d, ecx
mov ecx, dword [rbp + 0x3c]
mov dword [rbp + 0x40], r8d
mov r8d, edx
mov edx, dword [rbp + 0x40]
mov dword [rbp + 0x44], ecx
mov rcx, rax
add rcx, 0x20
mov qword [rbp + 0x48], rcx
add rax, 0x10
mov qword [rbp + 0x50], rax
mov eax, 0x80000000
mov dword [rbp + 0x5c], eax
mov ecx, dword [rbp + 0x44]
mov eax, dword [rbp + 0x5c]
mov dword [rbp - 0x24], eax
cmp eax, ecx
ja 0x1401a8fbb
mov edx, dword [0x1401fd1e8]
mov ecx, dword [0x1401fd1ec]
mov r8d, 0x811afd95
xor r8d, 0x7ee5026a
mov eax, edx
xor eax, r8d
xor edx, 0xffffffff
or eax, edx
and ecx, ecx
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
imul ecx, eax, 0x922cf813
and ecx, 0xda950c6d
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xae681f59
xor edx, 0x748b27d4
mov r8d, 0x3e5acf61
xor r8d, 0xc1a5309e
xor edx, r8d
and eax, edx
mov edx, 0x65ea6a23
xor edx, 0x9a1595dc
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xdae3388d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x18f29337
je 0x1401a9323
mov r9, qword [rbp + 0x20]
mov r11, qword [rbp + 0x18]
mov eax, dword [rbp - 0x24]
mov ecx, dword [0x1401fd1f0]
xor ecx, dword [0x1401fd1f4]
mov edx, 0x315bae14
xor edx, 0xac16b4be
mov r8d, 0x52ce8882
xor r8d, 0xad31777d
xor edx, r8d
add ecx, edx
add ecx, 1
sub ecx, 0xd7aff838
sub ecx, 0x37ac3e93
add ecx, 0xd7aff838
mov edx, 0x68aa940d
xor edx, 0xefc17142
xor ecx, edx
mov dword [rbp - 0x2c], ecx
mov ecx, 0x43d1a40
xor ecx, 0xeda8fc99
mov dword [rbp - 0x28], ecx
cpuid
mov esi, eax
mov eax, dword [rbp - 0x2c]
mov r10d, ecx
mov ecx, dword [rbp - 0x28]
mov r8d, edx
mov rdx, qword [rbp + 0x28]
mov dword [rbp + 0x70], esi
mov dword [r11], ebx
mov dword [r9], r10d
mov dword [rdx], r8d
cmp eax, ecx
je 0x1401a9323
mov eax, dword [rbp - 0x24]
sub eax, 0x80000002
je 0x1401a8f64
jmp 0x1401a8f3e
mov eax, dword [rbp - 0x24]
sub eax, 0x80000003
je 0x1401a8f7e
jmp 0x1401a8f51
mov eax, dword [rbp - 0x24]
sub eax, 0x80000004
je 0x1401a8f98
jmp 0x1401a8fad
mov rcx, qword [rbp + 0x30]
lea rdx, [rbp + 0x70]
sub rsp, 0x20
call fcn.1401a9340
add rsp, 0x20
jmp 0x1401a8fad
mov rcx, qword [rbp + 0x50]
lea rdx, [rbp + 0x70]
sub rsp, 0x20
call fcn.1401a9340
add rsp, 0x20
jmp 0x1401a8fad
mov rcx, qword [rbp + 0x48]
lea rdx, [rbp + 0x70]
sub rsp, 0x20
call fcn.1401a9340
add rsp, 0x20
mov eax, dword [rbp - 0x24]
add eax, 1
mov dword [rbp + 0x5c], eax
jmp 0x1401a8e06
mov rax, qword [rbp + 8]
mov r9, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp]
add rax, 0x60
mov qword [rbp - 0x38], rax
mov rax, qword [0x140208028]
mov qword [r9], rax
mov rax, qword [0x140208030]
mov qword [r9 + 8], rax
mov r8d, 0x40
sub rsp, 0x20
call fcn.1400507d3
mov rax, qword [rbp + 8]
add rsp, 0x20
cmp byte [rax + 0x60], 0
jne 0x1401a927c
sub rsp, 0x20
call fcn.1401ad01f
add rsp, 0x20
mov rcx, rax
add rcx, 0x60
mov qword [rbp - 0x40], rcx
cmp byte [rax + 0x60], 0
jne 0x1401a91b3
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp]
mov rdx, qword [rcx]
mov qword [rbp - 0x50], rdx
mov rcx, qword [rax]
add rcx, 8
lea rax, [0x140208051]
cmp rdx, 0
cmove rcx, rax
sub rsp, 0x20
call fcn.1400a9350
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x40]
mov dword [rbp - 0x44], ecx
mov al, byte [rax]
mov cl, 0xf3
xor cl, 0xf3
cmp al, cl
jne 0x1401a91b3
mov rax, qword [rbp - 0x50]
mov ecx, dword [rbp - 0x44]
movsxd rcx, ecx
mov qword [rbp - 0x58], rcx
cmp rax, rcx
jle 0x1401a91b3
mov eax, dword [rbp - 0x44]
cmp eax, 0
jge 0x1401a90bc
mov rcx, qword [rbp - 0x58]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000f6ec
add rsp, 0x20
jmp 0x1401a91b3
mov ecx, dword [0x1401fd1f8]
mov edx, dword [0x1401fd1fc]
mov eax, 0x17d5167e
xor eax, 0x26a45e43
xor edx, eax
mov r8d, ecx
xor r8d, edx
xor r8d, 0xffffffff
mov eax, edx
and eax, r8d
shl eax, 1
sub eax, edx
sub ecx, eax
mov eax, ecx
or eax, 0x9b5c3ec3
xor eax, 0xffffffff
or ecx, 0x9b5c3ec3
mov edx, 0x45330f71
xor edx, 0xbaccf08e
xor ecx, edx
mov edx, 0x852c1379
xor edx, 0x7ad3ec86
xor eax, edx
mov edx, 0x4c819963
xor edx, 0xb37e669c
xor ecx, edx
and eax, ecx
add eax, 0x39c71d7a
mov ecx, 0x61468de9
xor ecx, 0x771ea8ff
xor edx, edx
div ecx
mov ecx, 0xfcd4b538
xor ecx, 0x441b0751
cmp eax, ecx
ja 0x1401a932c
mov rcx, qword [rbp]
mov eax, dword [0x1401fd200]
mov r8d, dword [0x1401fd204]
xor edx, edx
sub edx, r8d
sub eax, edx
mov edx, 0x6a2b3011
xor edx, 0x3daef10a
xor eax, edx
mov r8d, 0xdc3fac28
xor edx, edx
div r8d
mov r8d, 0x93d328f
xor r8d, 0xf73b3803
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x58]
mov dword [rbp - 0x5c], eax
sub rsp, 0x20
call fcn.140018050
mov eax, dword [rbp - 0x5c]
add rsp, 0x20
cmp eax, 0x28488070
je 0x1401a914a
jmp 0x1401a91b3
mov rax, qword [rbp - 0x38]
cmp byte [rax], 0
jne 0x1401a927c
mov rcx, qword [rbp - 8]
mov rax, qword [rbp]
mov rdx, qword [rax]
mov qword [rbp + 0x60], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x68], rax
xor eax, eax
mov r8b, al
xor r8b, 1
xor eax, eax
mov r9b, al
xor r9b, 1
sub rsp, 0x30
lea rdx, [0x140208070]
mov rax, rsp
mov qword [rax + 0x20], rdx
and r8b, 1
and r9b, 1
lea rdx, [rbp + 0x60]
call fcn.140046a80
mov rax, qword [rbp - 0x38]
add rsp, 0x30
cmp byte [rax], 0
jne 0x1401a927c
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x68], rax
cmp rax, 0
je 0x1401a9314
mov rax, qword [rbp - 0x68]
mov rcx, qword [rax]
movabs rdx, 0x5bdfedf171a765b
movabs r8, 0x45bdfedf171a765b
xor rdx, r8
and rcx, rdx
movabs rdx, 0xeea6bfedc2abedcd
movabs r8, 0xeea6bfedc2abedcd
xor rdx, r8
cmp rcx, rdx
mov qword [rbp - 0x70], rax
je 0x1401a9303
jmp 0x1401a9314
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x1401a9314
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax]
movabs r8, 0x4000000000000000
mov rdx, rcx
xor rdx, r8
movabs r8, 0x6cf1b2ff5ffa453b
movabs r9, 0x930e4d00a005bac4
xor r8, r9
xor rdx, r8
movabs r8, 0x8ba1e2106636d74d
movabs r9, 0xcba1e2106636d74d
xor r8, r9
or rcx, r8
and rcx, rdx
movabs eax, dword [0x48c1094cc8314dcb]
and ecx, edx
movabs rdx, 0x9c3b43856281ec32
movabs r8, 0x9c3b43856281ec32
xor rdx, r8
cmp rcx, rdx
mov qword [rbp - 0x70], rax
jne 0x1401a9314
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
mov rax, qword [rbp - 0x20]
lea rsp, [rbp + 0x80]
pop rbx
pop rsi
pop rbp
ret
invalid
ja 0x1401a92d4
movsb byte [rdi], byte [rsi]
adc al, 0xe9
adc eax, 0x66fffffe
nop word cs:[rax + rax]