Function at 0x14021baf0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xd8
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x90], rcx
call fcn.1402257f0
mov rcx, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa0]
add rax, 0x50
mov qword [rsp + 0xa8], rax
mov qword [rcx], 0
mov rax, rcx
add rax, 8
mov qword [rsp + 0xb0], rax
mov qword [rcx + 8], 0
movabs rax, 0xaebecdbeeaef0dce
movabs rcx, 0x514132416aef0dce
xor rax, rcx
add r8, rax
movabs rax, 0xffffffff00000000
cmp r8, rax
jae 0x14021bba2
mov rcx, qword [rsp + 0xa0]
mov rdx, 0xffffffff80000000
mov r8d, 0x7fffffff
call fcn.14000d792
jmp 0x14021c155
mov rax, qword [rsp + 0xa0]
mov dword [rsp + 0xc8], eax
mov ecx, 0x8e7
call fcn.140063c67
mov rcx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x80], rcx
mov al, byte [rax]
mov cl, 0x4b
xor cl, 0x4b
cmp al, cl
jne 0x14021c155
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0xa0]
cmp rcx, 0xffffffffffffffff
setg al
cmp rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14021bc52
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0xa0]
movabs rax, 0x87b7a372f0c4a4ad
movabs r8, 0x87b7a372f0c4a4ad
xor rax, r8
movabs r8, 0x99d76aa897f28010
movabs r9, 0x66289557680d7fef
xor r8, r9
sub rax, r8
sub rdx, rax
call fcn.14001284c
jmp 0x14021c155
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
add rax, rcx
mov qword [rsp + 0xd0], rax
lea rcx, [rsp + 0xb8]
mov edx, 0x10
call fcn.14021c177
mov ecx, 0x91d
call fcn.140063c67
mov rcx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x78], rcx
cmp byte [rax], 0
jne 0x14021c155
mov rax, qword [rsp + 0x78]
add rax, 0xffffffff80000000
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x14021bcdc
mov rcx, qword [rsp + 0x78]
mov rdx, 0xffffffff80000000
mov r8d, 0x7fffffff
call fcn.14000d792
jmp 0x14021c155
mov rax, qword [rsp + 0x78]
mov r10d, eax
lea rcx, [rsp + 0xc8]
xor eax, eax
mov r9d, eax
lea rax, [rsp + 0xb8]
mov rdx, r9
mov r8, r9
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], r10d
mov qword [rsp + 0x30], rax
call fcn.1400a9917
mov ecx, eax
mov rax, qword [rsp + 0xa8]
mov dword [rsp + 0x74], ecx
cmp byte [rax], 0
jne 0x14021c155
mov eax, dword [rsp + 0x74]
mov ecx, 0x1544d76
xor ecx, 0x1544d76
cmp eax, ecx
jne 0x14021bdc5
mov ecx, 0x48
mov edx, 8
call fcn.140012610
mov rcx, rax
mov rax, qword [0x1402646e8]
mov qword [rcx], rax
lea rax, [0x1402641c4]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1402641f0]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1402641f8]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0x206da06a114521a1
movabs rdx, 0x206da06a1df714b9
xor rax, rdx
lea rdx, [0x1402641c4]
lea r8, [0x1402641d8]
lea r9, [0x1402641e7]
mov qword [rsp + 0x20], rax
call fcn.14001203f
jmp 0x14021c155
mov eax, dword [rsp + 0xb8]
movsxd rcx, eax
mov qword [rsp + 0x68], rcx
cmp eax, 0
jge 0x14021bdfa
mov rcx, qword [rsp + 0x68]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000d792
jmp 0x14021c155
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x98]
call fcn.1400141a0
mov ecx, 0xbf4
call fcn.140063c67
mov rcx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rcx
mov al, byte [rax]
mov cl, 0xf4
xor cl, 0xf4
cmp al, cl
jne 0x14021c155
mov eax, dword [0x140259830]
mov r8d, dword [0x140259834]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
imul eax, eax, 0xcea25c84
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xb47f161a
mov ecx, 0xffffffff
xor ecx, 0xe005c942
or eax, edx
or ecx, 0xe005c942
xor eax, 0xffffffff
and eax, ecx
imul eax, eax, 0xc4f22e6c
mov ecx, 0xeb39e348
xor ecx, 0xb91acd17
cmp eax, ecx
jb 0x14021c165
mov rcx, qword [rsp + 0x60]
mov eax, dword [0x140259838]
xor edx, edx
div dword [0x14025983c]
mov r8d, 0xf6049082
xor edx, edx
div r8d
mov edx, eax
xor edx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xaa3607fb
and edx, r8d
mov r8d, 0xbfc9c850
xor r8d, 0x15ffcfab
or eax, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
xor eax, 0xffffffff
and edx, eax
mov eax, 0xc47059da
xor eax, 0x3b8fa625
mov r8d, edx
xor r8d, eax
mov eax, 0x681afeed
xor eax, 0x1e81fbc4
and eax, r8d
mov r8d, 0xffffffff
xor r8d, 0x769b0529
and edx, r8d
or eax, edx
movsxd rdx, dword [rsp + 0xb8]
cmp rcx, rdx
sete cl
mov byte [rsp + 0x5f], cl
cmp eax, 0xcabc2937
jbe 0x14021beab
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x14021c148
jmp 0x14021bf56
mov cx, 0xed9f
xor cx, 0xed38
call fcn.140063c67
mov rcx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x50], rcx
mov al, byte [rax]
mov cl, 0xf3
xor cl, 0xf3
cmp al, cl
jne 0x14021c155
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rsp + 0x48], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14021bfed
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
movabs rax, 0x8dff74f952bd47b5
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0xd2946c8cc3364e68
movabs r8, 0x5f6b1875918b09dd
xor rax, r8
sub rdx, rax
call fcn.14001284c
jmp 0x14021c155
mov eax, dword [0x140259840]
mov ecx, dword [0x140259844]
or eax, eax
mov edx, 0x73adcda5
xor edx, 0x8c52325a
xor eax, edx
or ecx, ecx
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
sub eax, 0x81c3221a
mov ecx, 0xe670f487
xor ecx, 0xbfdbd4b
add eax, ecx
add eax, 0x81c3221a
mov ecx, 0xe24daf75
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0xa52a2add
xor edx, 0x5ad5d522
mov eax, ecx
xor eax, edx
and eax, 0x6f6f6e89
mov edx, 0xffffffff
xor edx, 0x6f6f6e89
and ecx, edx
or eax, ecx
cmp eax, 0xedeb6c80
je 0x14021c16e
mov eax, dword [0x140259848]
mov ecx, 0x17f8c354
xor ecx, 0xdc38dcd3
xor eax, ecx
mov ecx, dword [0x14025984c]
xor ecx, 0x3d23d2af
and eax, ecx
add eax, 0xa57850b
imul eax, eax, 0x41519cf3
mov ecx, eax
and ecx, 0x91d3a994
mov edx, 0xf5ea9ffe
xor edx, 0xa156001
xor ecx, edx
add eax, 0x91d3a994
add eax, 1
add eax, ecx
mov ecx, dword [rsp + 0xb8]
movsxd rdx, ecx
mov qword [rsp + 0x38], rdx
cmp ecx, 0
setl cl
mov byte [rsp + 0x47], cl
cmp eax, 0x14ca7553
jbe 0x14021c062
mov al, byte [rsp + 0x47]
test al, 1
jne 0x14021c0e2
jmp 0x14021c11f
mov rcx, qword [rsp + 0x38]
movabs rdx, 0xba39a46c8ad0787a
movabs rax, 0xba39a46c8ad0787a
xor rdx, rax
movabs r8, 0xb0c279596ee3db29
movabs rax, 0xcf3d86a6911c24d6
xor r8, rax
call fcn.14000d792
jmp 0x14021c155
mov r8, qword [rsp + 0x38]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xb0]
mov rcx, qword [rcx]
add rcx, 8
add rcx, rax
mov rdx, qword [rsp + 0xc0]
call fcn.14021c1e0
mov rcx, qword [rsp + 0xc0]
call fcn.1400ade6c
mov rax, qword [rsp + 0x90]
add rsp, 0xd8
ret
jg 0x14021c1d0
lahf
invalid
invalid
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
cmp rax, rcx
je 0x14021c1d8
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov byte [rcx + rax], 0
add rax, 1
mov qword [rsp + 0x40], rax
and al, 0x40
jmp 0x14021c1a4
add rsp, 0x48
ret