Function at 0x140069fe0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x1c0
movaps xmmword [rsp + 0x1b0], xmm8
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x190], xmm6
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x130], rcx
mov rax, qword [0x1402c6150]
mov qword [rsp + 0x138], rax
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, rax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x140], rcx
mov ecx, dword [rax]
call fcn.14000eaf8
movaps xmm0, xmmword [0x1402bdc50]
movaps xmm1, xmmword [0x1402bdc60]
movaps xmm2, xmmword [0x1402bdc70]
movaps xmm3, xmmword [0x1402bdc80]
xor eax, eax
mov qword [rsp + 0x148], rax
movaps xmmword [rsp + 0x150], xmm3
movaps xmmword [rsp + 0x160], xmm2
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x180], xmm0
jmp 0x14006a094
mov rax, qword [rsp + 0x148]
movaps xmm2, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
movaps xmm8, xmmword [rsp + 0x170]
movaps xmm5, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0xc0], xmm5
movaps xmmword [rsp + 0xd0], xmm8
movaps xmmword [rsp + 0xe0], xmm7
movaps xmmword [rsp + 0xf0], xmm2
mov qword [rsp + 0x108], rax
movaps xmm6, xmmword [0x1402bdc90]
pxor xmm2, xmm6
pshufd xmm1, xmm2, 0xf5
movaps xmm3, xmmword [0x1402bdc90]
movaps xmm0, xmm3
pcmpeqd xmm0, xmm1
movaps xmm4, xmmword [0x1402bdca0]
movaps xmm1, xmm4
pcmpgtd xmm1, xmm2
pshufd xmm2, xmm1, 0xa0
pand xmm0, xmm2
pshufd xmm1, xmm1, 0xf5
por xmm0, xmm1
pxor xmm7, xmm6
pshufd xmm1, xmm7, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm1
movaps xmm1, xmm4
pcmpgtd xmm1, xmm7
pshufd xmm7, xmm1, 0xa0
pand xmm2, xmm7
pshufd xmm1, xmm1, 0xf5
por xmm2, xmm1
movaps xmm1, xmm0
packssdw xmm1, xmm2
pxor xmm8, xmm6
pshufd xmm7, xmm8, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm7
movaps xmm7, xmm4
pcmpgtd xmm7, xmm8
pshufd xmm8, xmm7, 0xa0
pand xmm2, xmm8
pshufd xmm7, xmm7, 0xf5
por xmm2, xmm7
pxor xmm5, xmm6
pshufd xmm6, xmm5, 0xf5
pcmpeqd xmm3, xmm6
pcmpgtd xmm4, xmm5
pshufd xmm5, xmm4, 0xa0
pand xmm3, xmm5
pshufd xmm4, xmm4, 0xf5
por xmm3, xmm4
packssdw xmm2, xmm3
packssdw xmm1, xmm2
movaps xmmword [rsp + 0x110], xmm1
movd eax, xmm0
test al, 1
jne 0x14006a1c6
jmp 0x14006a1da
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x108]
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0x110]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x14006a1f6
jmp 0x14006a2a0
mov rax, qword [rsp + 0x128]
mov rsi, qword [rsp + 0x108]
movabs rcx, 0x38b816a8399b622d
movabs rdx, 0xc747e957c6649dd2
xor rcx, rdx
mov rdx, rsi
xor rdx, rcx
mov r9, 0xffffffffffffffff
xor r9, 1
mov r8, 0xffffffffffffffff
movabs rcx, 0x850c6c3d4e51634c
xor r8, rcx
movabs r10, 0xd3875388cfe7e5d4
movabs rcx, 0x568b3fb581b68698
xor r10, rcx
mov rcx, rdx
and rcx, r10
and rsi, r8
movabs r11, 0x850c6c3d4e51634c
mov r10, r9
and r10, r11
mov r11, r8
and r11, 1
or rcx, rsi
or r10, r11
xor rcx, r10
or rdx, r9
xor rdx, 0xffffffffffffffff
movabs r9, 0x850c6c3d4e51634c
or r8, r9
and rdx, r8
or rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rsp + 0x110]
pextrw eax, xmm0, 2
test al, 1
jne 0x14006a2ba
jmp 0x14006a32a
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x108]
mov rdx, rcx
and rdx, 2
movabs r8, 0x9c3e74ca98cc050f
movabs r9, 0x63c18b356733faf0
xor r8, r9
xor rdx, r8
movabs r8, 0x3f634212a5df9fc0
movabs r9, 0x3f634212a5df9fc2
xor r8, r9
add rcx, r8
movabs r8, 0x84157dd78c0937de
movabs r9, 0x84157dd78c0937df
xor r8, r9
add rcx, r8
add rcx, rdx
mov dl, 0xeb
xor dl, 0xeb
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0x110]
pextrw eax, xmm0, 3
test al, 1
jne 0x14006a344
jmp 0x14006a372
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x108]
mov rdx, rcx
and rdx, 3
xor rdx, 0xffffffffffffffff
add rcx, 3
add rcx, 1
add rcx, rdx
mov dl, 0x86
xor dl, 0x86
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0x110]
pextrw eax, xmm0, 4
test al, 1
jne 0x14006a38c
jmp 0x14006a3a8
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x108]
or rcx, 4
mov dl, 0xf2
xor dl, 0xf2
mov byte [rax + rcx], dl
mov eax, dword [0x1402aac40]
mov ecx, dword [0x1402aac44]
mov edx, 0xc283a14f
xor edx, 0x384cddd9
add eax, edx
sub eax, ecx
mov ecx, 0x8d8c62a
xor ecx, 0xf217babc
sub eax, ecx
mov ecx, 0xc73dc5e
xor ecx, 0xc1811d23
xor edx, edx
div ecx
add eax, 0xe3db782e
sub eax, 0x7d568101
mov ecx, 0xeb1009a1
xor ecx, 0x8cb718f
sub eax, ecx
mov ecx, 0x7243ecac
xor ecx, 0xd5350c9c
xor edx, edx
div ecx
mov ecx, 0xc64c6eec
xor ecx, 0x78e9b538
cmp eax, ecx
jae 0x14006a9d1
movaps xmm0, xmmword [rsp + 0x110]
mov r8d, dword [0x1402aac48]
mov eax, dword [0x1402aac4c]
mov edx, r8d
add edx, eax
mov ecx, eax
mov eax, r8d
lea ecx, [rax + rcx + 0x30000558]
not ecx
or ecx, 0x665a61c
mov eax, ecx
mov ecx, edx
lea eax, [rax + rcx + 0x30000559]
or eax, 0xe2138e7d
mov ecx, 0x3d124fbf
pextrw edx, xmm0, 5
mov byte [rsp + 0xbf], dl
cmp eax, ecx
jb 0x14006a418
mov al, byte [rsp + 0xbf]
test al, 1
jne 0x14006a483
jmp 0x14006a4bf
mov rax, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x108]
movabs r8, 0xa1b49dfab3a23b6e
movabs rcx, 0xa1b49dfab3a23b6b
xor r8, rcx
mov rcx, rdx
and rcx, r8
xor rdx, 5
or rcx, rdx
mov dl, 0xbb
xor dl, 0xbb
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rsp + 0x110]
pextrw eax, xmm0, 6
test al, 1
jne 0x14006a4d9
jmp 0x14006a50b
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x108]
mov r8, 0xffffffffffffffff
xor r8, 6
mov rdx, rcx
and rdx, r8
mov r8, rcx
xor r8, 6
add rcx, r8
sub rcx, rdx
mov byte [rax + rcx], 0
mov eax, dword [0x1402aac50]
xor eax, dword [0x1402aac54]
and eax, 0xf5392fd5
mov ecx, 0x48a0cb16
xor ecx, 0x223de718
or eax, ecx
add eax, 0x3bb9d7b3
cmp eax, 0x1b916d15
jb 0x14006a9da
movaps xmm0, xmmword [rsp + 0x110]
mov eax, dword [0x1402aac58]
mov ecx, dword [0x1402aac5c]
xor ecx, 0xf740fc34
sub eax, ecx
mov edx, eax
not edx
and edx, 0x479d593b
mov ecx, eax
and ecx, 0x3862a6c4
imul ecx, edx
mov edx, eax
and edx, 0x479d593b
or eax, 0x479d593b
imul eax, edx
add eax, ecx
or eax, 0x14040029
and eax, 0x55b7082d
pextrw ecx, xmm0, 7
mov byte [rsp + 0xbe], cl
cmp eax, 0xe84d8ab7
jae 0x14006a9da
mov al, byte [rsp + 0xbe]
test al, 1
jne 0x14006a5b1
jmp 0x14006a5c9
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x108]
or rcx, 7
mov byte [rax + rcx], 0
mov ecx, dword [0x1402aac60]
mov edx, dword [0x1402aac64]
xor edx, 0xe842b7e8
mov eax, ecx
xor eax, 0xffffffff
mov r9d, 0x1456bf70
xor r9d, 0xeba9408f
mov r8d, edx
xor r8d, r9d
or eax, r8d
mov r8d, 0x4d47c4f8
xor r8d, 0xb2b83b07
xor ecx, r8d
mov r8d, 0x2c20a571
xor r8d, 0xd3df5a8e
xor edx, r8d
or ecx, edx
and eax, ecx
mov ecx, 0x915b73e2
xor ecx, 0x6ea48c1d
xor eax, ecx
mov ecx, 0x7d8ee680
xor ecx, 0xc2625d1a
add eax, ecx
mov ecx, 0xd42bbd0c
xor ecx, 0xb27acdc8
sub eax, ecx
mov ecx, 0x93b194aa
xor ecx, 0x2c5d2f30
sub eax, ecx
and eax, 0xf532e16b
xor ecx, ecx
sub ecx, 0x92162652
sub eax, ecx
cmp eax, 0x9197c106
jae 0x14006a9e3
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm2, xmmword [rsp + 0xd0]
movaps xmm3, xmmword [rsp + 0xe0]
movaps xmm4, xmmword [rsp + 0xf0]
mov rdx, qword [rsp + 0x108]
mov ecx, dword [0x1402aac68]
mov eax, dword [0x1402aac6c]
xor eax, ecx
xor eax, 0xd16ec592
imul eax, eax, 0x19509f5c
add eax, 0x605d6a78
mov ecx, 0xad8f9637
add rdx, 8
mov qword [rsp + 0x68], rdx
movaps xmm1, xmmword [0x1402bdcb0]
paddq xmm4, xmm1
movaps xmmword [rsp + 0x70], xmm4
paddq xmm3, xmm1
movaps xmmword [rsp + 0x80], xmm3
paddq xmm2, xmm1
movaps xmmword [rsp + 0x90], xmm2
paddq xmm0, xmm1
movaps xmmword [rsp + 0xa0], xmm0
movabs r8, 0xfab806c7cfcdb269
movabs r9, 0xfab806c7cfcdb271
xor r8, r9
cmp rdx, r8
sete dl
mov byte [rsp + 0xbd], dl
cmp eax, ecx
ja 0x14006a668
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0x80]
movaps xmm3, xmmword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov cl, byte [rsp + 0xbd]
test cl, 1
mov qword [rsp + 0x148], rax
movaps xmmword [rsp + 0x150], xmm3
movaps xmmword [rsp + 0x160], xmm2
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x180], xmm0
je 0x14006a094
jmp 0x14006a77b
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x140]
add rcx, 0x60
mov qword [rsp + 0x60], rcx
movabs rcx, 0x5538744535a6b3e7
movabs rdx, 0x5538744535a6b3e7
xor rcx, rdx
cmp rax, rcx
jge 0x14006a7d4
mov rcx, qword [rsp + 0x120]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.140018506
jmp 0x14006a9a7
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, qword [rsp + 0x120]
movabs rdx, 0x8623ff410ffec42d
movabs rax, 0x79dc00bef0013bd2
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, 3
mov r8, 0xffffffffffffffff
xor r8, 3
mov rdx, rcx
and rdx, r8
imul rdx, rax
mov r8, rcx
and r8, 3
mov rax, rcx
or rax, 3
imul rax, r8
add rax, rdx
mov qword [rsp + 0x48], rax
cvtsi2sd xmm0, rcx
movsd xmm1, qword [0x1402bdcc0]
mulsd xmm0, xmm1
movsd qword [rsp + 0x50], xmm0
cvtsi2sd xmm1, rax
movsd qword [rsp + 0x58], xmm1
ucomisd xmm0, xmm1
jne 0x14006a871
jp 0x14006a871
jmp 0x14006a8c0
movsd xmm1, qword [rsp + 0x50]
movsd xmm0, qword [rsp + 0x58]
subsd xmm0, xmm1
call fcn.1402a7e80
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x40], xmm1
call fcn.1402a7e80
movsd xmm1, qword [rsp + 0x40]
movsd xmm2, qword [0x1402bdcc8]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x14006a8c0
call fcn.14000ee80
jmp 0x14006a941
mov rax, qword [rsp + 0x48]
mov ecx, 2
cqo
idiv rcx
mov rdx, rax
mov rax, rdx
add rax, 4
mov qword [rsp + 0x38], rax
movabs rcx, 0x8433e2b4abb2290f
movabs r8, 0x7bcc1d4b544dd6f0
xor rcx, r8
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
movabs r8, 0xc72c32e84fdfd54
movabs r9, 0xf38d3cd17b0202ab
xor r8, r9
xor rcx, r8
or rax, rdx
and rax, rcx
cmp rax, 0
jge 0x14006a932
call fcn.14000ee80
jmp 0x14006a941
mov rcx, qword [rsp + 0x38]
call fcn.140051e20
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x28], rcx
cmp byte [rax], 0
jne 0x14006a9a7
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x128]
mov qword [rcx + 0x10], 0
cmp rax, 0
jge 0x14006a995
mov rcx, qword [rsp + 0x28]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.140018506
jmp 0x14006a9a7
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x128]
call fcn.14002da8a
mov rax, qword [rsp + 0x130]
movaps xmm6, xmmword [rsp + 0x190]
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm8, xmmword [rsp + 0x1b0]
add rsp, 0x1c0
pop rsi
ret
invalid
invalid
loopne 0x14006a9d8
scasd eax, dword [rdi]
invalid
mov al, 0x71
mov edx, 0xfffc7ce9
call qword [rbp + 0x48]
push rbp
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov qword [rbp - 0x40], rcx
mov eax, 0x20
call fcn.1402a7dd0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
add rsp, 0x20
mov qword [rbp - 0x28], rax
add rax, 0x60
mov qword [rbp - 0x30], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
mov rcx, qword [rbp - 0x28]
add rsp, 0x20
xor eax, eax
cmp byte [rcx + 0x60], 0
mov qword [rbp - 0x20], rax
jne 0x14006aadd
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.140025b10
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x40]
add rsp, 0x20
mov qword [rbp - 0x48], rax
sub rsp, 0x20
call fcn.140069fe0
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x48]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xc8
xor dl, 0xc8
cmp cl, dl
mov qword [rbp - 0x20], rax
jne 0x14006aadd
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
mov rdx, qword [rax]
mov qword [rbp - 0x18], rdx
mov rdx, qword [rax + 8]
mov qword [rbp - 0x10], rdx
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
lea rdx, [rbp - 0x18]
sub rsp, 0x20
call fcn.1400697e0
mov rax, qword [rbp - 0x48]
add rsp, 0x20
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov rsp, rbp
pop rbp
ret