Function at 0x14021e990
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x68], rcx
mov qword [rbp + 0x70], rcx
mov ecx, dword [0x14027f1a8]
and ecx, dword [0x14027f1ac]
sub ecx, 0x4e870d9
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xabd08715
or eax, edx
mov edx, 0xffffffff
xor edx, 0xabd08715
mov r8d, 0xffffffff
xor r8d, 0xabd08715
or edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
mov edx, 0x1ebc7302
xor edx, 0xe1438cfd
xor ecx, edx
or eax, ecx
and eax, 0x90799932
cmp eax, 0x24652973
je 0x14021f272
mov eax, dword [0x14027f1b0]
mov ecx, dword [0x14027f1b4]
xor eax, ecx
or eax, 0x3008052
and eax, 0x30488da
mov dword [rbp + 0x64], eax
mov eax, 0x8e0660a1
mov dword [rbp + 0x60], eax
mov eax, 0x10
mov qword [rbp + 0x30], rax
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x48], rax
mov eax, 0x40
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x30]
mov rcx, rsp
mov qword [rbp + 0x28], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x30]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x50], rdx
movabs rdx, 0x80c065a198afed1
movabs r8, 0x80c065a198afed1
xor rdx, r8
mov qword [rcx], rdx
mov qword [rcx + 8], 0
movabs rcx, 0x2b52ac2d5830ebf5
movabs rdx, 0x2b52ac2d5830ebf5
xor rcx, rdx
mov qword [rax], rcx
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x58], rcx
mov qword [rax + 8], 0
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
add rsp, 0x20
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov ecx, dword [rbp + 0x60]
add rsp, 0x20
mov eax, dword [rbp + 0x64]
cmp eax, ecx
je 0x14021ea17
xor eax, eax
mov qword [rbp + 0x20], rax
jmp 0x14021eb45
mov rax, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x28]
xorps xmm0, xmm0
movaps xmmword [rcx + rax], xmm0
add rax, 0x10
cmp rax, 0x40
mov qword [rbp + 0x20], rax
jne 0x14021eb45
mov rax, qword [rbp + 0x50]
add rax, 0x60
mov qword [rbp + 0x10], rax
mov eax, 0x80000000
cpuid
mov dword [rbp + 0x1c], eax
cmp eax, 0xffffffff
jg 0x14021ec8b
mov rax, qword [rbp + 0x28]
movabs rdx, 0x4e8f3a3fca3d0252
movabs rcx, 0x4e8f3a3fca3d0272
xor rdx, rcx
mov rcx, rax
add rcx, rdx
mov qword [rbp - 8], rcx
movabs rcx, 0xb7a7d945ec33a270
movabs rdx, 0xb7a7d945ec33a260
xor rcx, rdx
add rax, rcx
mov qword [rbp], rax
mov eax, 0x80000000
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0xc]
mov dword [rbp - 0x2c], eax
cpuid
mov r8d, eax
mov eax, dword [rbp - 0x2c]
mov dword [rbp - 0x28], r8d
mov r8d, ecx
mov ecx, dword [rbp - 0x28]
mov dword [rbp - 0x24], r8d
mov r8d, edx
mov edx, dword [rbp - 0x24]
movd xmm0, r8d
movd xmm1, edx
punpckldq xmm1, xmm0
movd xmm2, ebx
movd xmm0, ecx
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
movaps xmmword [rbp - 0x20], xmm0
sub eax, 0x80000002
je 0x14021ec6b
jmp 0x14021ec23
mov eax, dword [rbp - 0x2c]
sub eax, 0x80000003
je 0x14021ec5a
jmp 0x14021ec36
mov eax, dword [rbp - 0x2c]
sub eax, 0x80000004
jne 0x14021ec77
jmp 0x14021ec49
mov rax, qword [rbp - 8]
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rax], xmm0
jmp 0x14021ec77
mov rax, qword [rbp]
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rax], xmm0
jmp 0x14021ec77
mov rax, qword [rbp + 0x28]
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rax], xmm0
mov ecx, dword [rbp + 0x1c]
mov eax, dword [rbp - 0x2c]
add eax, 1
cmp eax, ecx
mov dword [rbp + 0xc], eax
jbe 0x14021ebd0
mov r9, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x48]
mov rax, qword [0x14028c390]
mov qword [r9], rax
mov rax, qword [0x14028c398]
mov qword [r9 + 8], rax
movabs r8, 0xad0ca4dd53ffa69f
movabs rax, 0xad0ca4dd53ffa6df
xor r8, rax
sub rsp, 0x20
call fcn.14006ecf0
mov rax, qword [rbp + 0x10]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14021f12a
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
add rsp, 0x20
mov rcx, rax
add rcx, 0x60
mov qword [rbp - 0x38], rcx
cmp byte [rax + 0x60], 0
jne 0x14021ef7b
mov rax, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rcx]
mov qword [rbp - 0x48], rdx
movabs r8, 0xc1e63d8ed76f5c3
movabs rcx, 0xc1e63d8ed76f5c3
xor r8, rcx
mov rcx, qword [rax]
add rcx, 8
lea rax, [0x14028c3b9]
cmp rdx, r8
cmove rcx, rax
sub rsp, 0x20
call fcn.1400ed000
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x38]
mov dword [rbp - 0x3c], ecx
mov al, byte [rax]
mov cl, 0x51
xor cl, 0x51
cmp al, cl
jne 0x14021ef7b
mov rax, qword [rbp - 0x48]
mov ecx, dword [rbp - 0x3c]
movsxd rcx, ecx
mov qword [rbp - 0x50], rcx
cmp rax, rcx
jle 0x14021ef7b
mov eax, dword [rbp - 0x3c]
cmp eax, 0
jge 0x14021ee99
mov eax, dword [0x14027f1b8]
mov ecx, 0x7975a791
xor ecx, 0xbe22bcb9
xor eax, ecx
mov ecx, dword [0x14027f1bc]
xor ecx, 0x777dba7b
or eax, ecx
mov ecx, 0x3b987e92
xor ecx, 0xb604b6cf
xor edx, edx
div ecx
sub eax, 0x4289654
add eax, 0xe3150eda
mov ecx, 0x725b0c40
xor ecx, 0x76739a14
add eax, ecx
sub eax, 0x5ca3cd55
cmp eax, 0xf5b43261
jae 0x14021f27b
mov rcx, qword [rbp - 0x50]
mov eax, dword [0x14027f1c0]
xor eax, dword [0x14027f1c4]
mov r8d, eax
xor r8d, 0xffffffff
and r8d, 0xb34cc430
mov r9d, 0xffffffff
xor r9d, 0xb34cc430
mov edx, eax
and edx, r9d
imul edx, r8d
mov r9d, 0x9281ac87
xor r9d, 0x21cd68b7
mov r8d, eax
and r8d, r9d
or eax, 0xb34cc430
imul eax, r8d
add eax, edx
mov edx, eax
add edx, 1
mov r8d, 0xcefcc083
xor r8d, 0x31033f7c
xor eax, r8d
or eax, 0x57fef7e3
add eax, edx
mov r8d, 0xcb340821
xor edx, edx
div r8d
mov dword [rbp - 0x54], eax
mov eax, 0x72bb367a
xor eax, 0x8f3c5a79
mov dword [rbp - 0x58], eax
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14001a720
mov ecx, dword [rbp - 0x58]
mov eax, dword [rbp - 0x54]
add rsp, 0x20
cmp eax, ecx
je 0x14021f27b
jmp 0x14021ef7b
mov eax, dword [0x14027f1c8]
mov ecx, dword [0x14027f1cc]
xor ecx, 0x6e7157a4
xor edx, edx
div ecx
mov ecx, 0xa04edde0
xor ecx, 0xd7ecfb35
mov edx, 0xfc3756db
xor edx, 0x3c8a924
xor ecx, edx
add eax, ecx
add eax, 1
or eax, 0xa3db7961
add eax, 0xb368985
cmp eax, 0x7558480d
je 0x14021f284
mov rcx, qword [rbp + 0x48]
mov eax, dword [0x14027f1d0]
xor edx, edx
div dword [0x14027f1d4]
mov rdx, qword [rbp - 0x50]
and eax, 0xd01b700d
and eax, 0x1bdfa6e6
mov r8d, 0x45c660e6
xor r8d, 0xba399f19
xor eax, r8d
mov r9d, 0xffffffff
xor r9d, 0x663fee98
mov r8d, 0xa0964cb7
xor r8d, 0xed3dddc7
mov r10d, 0xf8eb2489
xor r10d, 0x714db76
xor r8d, r10d
or eax, r9d
or r8d, 0x4dab9170
mov r9d, 0x9ea40794
xor r9d, 0x615bf86b
xor eax, r9d
and eax, r8d
mov dword [rbp - 0x5c], eax
sub rsp, 0x20
call fcn.14002bfc0
mov eax, dword [rbp - 0x5c]
add rsp, 0x20
cmp eax, 0xa954c7da
ja 0x14021f284
jmp 0x14021ef7b
mov eax, dword [0x14027f1d8]
mov ecx, dword [0x14027f1dc]
and eax, eax
xor eax, 0xffffffff
and ecx, ecx
mov edx, 0x3bc9b7a1
xor edx, 0xc436485e
xor ecx, edx
mov edx, 0xa2641506
xor edx, 0x5d9beaf9
xor eax, edx
mov edx, 0xafd4202f
xor edx, 0x502bdfd0
xor ecx, edx
or eax, ecx
sub eax, 0x728ee510
add eax, 0xc004b341
mov ecx, 0x3a22de93
xor ecx, 0x48ac3b83
add eax, ecx
mov ecx, eax
and ecx, 0x3100c91e
shl ecx, 1
mov edx, 0xe201639f
xor edx, 0xd301aa81
xor eax, edx
add eax, ecx
sub eax, 0xf1471182
cmp eax, 0x4fe7d28f
jae 0x14021f28d
mov rcx, qword [rbp + 0x10]
mov eax, dword [0x14027f1e0]
xor eax, 0xdddd951e
mov r9d, dword [0x14027f1e4]
mov edx, eax
xor edx, 0xffffffff
mov r8d, r9d
and r8d, edx
mov r10d, r9d
xor r10d, 0xffffffff
mov edx, eax
and edx, r10d
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
mov edx, eax
add edx, 1
xor eax, 0xffffffff
mov r8d, 0x318b267a
xor r8d, 0x1788cc5a
or eax, r8d
add eax, edx
mov r8d, 0xc6483b06
xor edx, edx
div r8d
mov r8d, 0xcb761629
xor r8d, 0xe6b9ce52
xor edx, edx
div r8d
mov cl, byte [rcx]
mov dl, 0xd8
xor dl, 0xd8
cmp cl, dl
sete cl
mov byte [rbp - 0x5d], cl
cmp eax, 0x394df22a
je 0x14021eff8
mov al, byte [rbp - 0x5d]
test al, 1
jne 0x14021f099
jmp 0x14021f12a
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x48]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
mov r8b, 1
xor r8b, 0
mov r9b, 1
xor r9b, 0
sub rsp, 0x30
lea r10, [0x14028c3d0]
mov rax, rsp
mov qword [rax + 0x20], r10
and r8b, 1
and r9b, 1
call fcn.140064fc0
mov rax, qword [rbp + 0x10]
add rsp, 0x30
cmp byte [rax], 0
jne 0x14021f12a
mov rax, qword [rbp + 0x58]
mov rax, qword [rax]
mov qword [rbp - 0x68], rax
cmp rax, 0
je 0x14021f267
mov rax, qword [rbp - 0x68]
movabs rcx, 0x4000000000000000
and rcx, qword [rax]
cmp rcx, 0
mov qword [rbp - 0x70], rax
je 0x14021f256
jmp 0x14021f267
mov rax, qword [rbp + 0x58]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x14021f267
mov eax, dword [0x14027f1e8]
xor eax, 0x34e8b07c
mov ecx, dword [0x14027f1ec]
mov edx, 0x2515d72d
xor edx, 0x32a48492
xor ecx, edx
sub eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0xde3e8686
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0xc9e52ea8
xor ecx, 0xdbf498bf
or eax, ecx
sub eax, 0xc2c60cbc
cmp eax, 0xa4a67768
jae 0x14021f296
mov rcx, qword [rbp - 0x78]
mov eax, dword [0x14027f1f0]
mov r8d, dword [0x14027f1f4]
mov edx, r8d
and edx, eax
xor edx, 0xffffffff
add eax, r8d
mov r8d, 0x93b07450
xor r8d, 0x93b07451
add eax, r8d
add eax, edx
sub eax, 0xa4a005a0
mov edx, 0xe5e98d00
xor edx, 0x7e0a4fe
add eax, edx
add eax, 0xa4a005a0
mov r8d, 0x67b99256
xor edx, edx
div r8d
sub eax, 0x2346b3e
mov rcx, qword [rcx]
xor rcx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor r8, rdx
mov rdx, 0xffffffffffffffff
movabs r9, 0xda35910ab7e15592
xor rdx, r9
or rcx, r8
movabs r8, 0xda35910ab7e15592
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
sete cl
mov byte [rbp - 0x79], cl
cmp eax, 0x3f1bb797
jbe 0x14021f18d
mov rax, qword [rbp - 0x78]
mov cl, byte [rbp - 0x79]
test cl, 1
mov qword [rbp - 0x70], rax
jne 0x14021f256
jmp 0x14021f267
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.14001d1d6
add rsp, 0x20
mov rax, qword [rbp + 0x70]
lea rsp, [rbp + 0x78]
pop rbx
pop rbp
ret
sub byte [rdx - 0x631665ab], bh
idiv edi
push qword [rbx + 0x20]
jae 0x14021f29d
mov dword [rdi - 0x4a117], edx
call qword [rsi + 0x35]
invalid
push rsi
xor eax, 0x54e9f33f
cld
invalid
cmp eax, 0xe963b7d4
invalid
pop rcx
invalid
invalid