Function at 0x14006dfd0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x178
mov qword [rsp + 0x108], rcx
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, qword [rsp + 0x108]
add rax, 0x60
mov qword [rsp + 0x110], rax
movabs rax, 0x88cc6d1047c4eff9
movabs rdx, 0x88cc6d1047c4eff9
xor rax, rdx
mov qword [rsp + 0x168], rax
lea rax, [rsp + 0x168]
add rax, 8
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x170], 0
mov rcx, qword [rcx]
mov rax, rcx
shl rax, 1
mov qword [rsp + 0x120], rax
cvtsi2sd xmm0, rcx
movsd xmm1, qword [0x1402bddd0]
mulsd xmm0, xmm1
movsd qword [rsp + 0x128], xmm0
cvtsi2sd xmm1, rax
movsd qword [rsp + 0x130], xmm1
ucomisd xmm0, xmm1
jne 0x14006e091
jp 0x14006e091
jmp 0x14006e274
movsd xmm1, qword [rsp + 0x128]
movsd xmm0, qword [rsp + 0x130]
subsd xmm0, xmm1
call fcn.1402a7e80
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0x128]
movsd qword [rsp + 0x100], xmm1
call fcn.1402a7e80
movsd xmm1, qword [rsp + 0x100]
movsd xmm2, qword [0x1402bddd8]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x14006e274
mov eax, dword [0x1402aadd0]
mov r8d, dword [0x1402aadd4]
mov ecx, 0xf74e0541
xor ecx, 0xd7d5869d
xor r8d, ecx
mov ecx, 0xa2795c97
xor ecx, 0x5d86a368
mov edx, r8d
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov ecx, 0x3634f3be
xor ecx, 0xaf4fa546
sub eax, ecx
add eax, 0xee49eac
add eax, 0x997b56f8
mov ecx, 0xb28d5501
xor ecx, 0xa1976698
mov edx, 0xc994eb64
xor edx, 0x366b149b
xor ecx, edx
mov edx, 0xeedb7fe8
xor edx, 0xeedb7fe8
mov r8d, 0xf250aa52
xor r8d, 0xf250aa53
sub edx, r8d
sub ecx, edx
sub eax, ecx
xor eax, 0xf7690d27
cmp eax, 0x34af23ee
je 0x14006eabc
mov ecx, dword [str._E_o]
xor ecx, 0x2c5aa86b
mov edx, dword [0x1402aaddc]
xor edx, 0xa7024faf
mov eax, ecx
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x52598417
xor edx, 0x57a47a4d
and edx, ecx
mov r8d, 0x803bda28
xor r8d, 0x85c62472
mov ecx, 0x4ca2c506
xor ecx, 0xb35d3af9
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x5aeba055
xor r8d, 0x5f165e0f
mov edx, eax
and edx, r8d
or eax, 0x5fdfe5a
imul eax, edx
add eax, ecx
mov ecx, 0x4deaa0ae
xor ecx, 0xaeede817
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xf91f5b5f
xor edx, 0x47db960
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0xfd62e23f
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xfd62e23f
mov r8d, 0xded1b498
xor r8d, 0x23b356a7
or eax, r8d
imul eax, edx
add eax, ecx
mov dword [rsp + 0xfc], eax
call fcn.14000ee80
mov eax, dword [rsp + 0xfc]
cmp eax, 0x7dd9f423
jbe 0x14006eabc
jmp 0x14006ea34
mov rax, qword [rsp + 0x120]
movabs rcx, 0x90369687d48abc47
movabs rdx, 0x90369687d48abc47
xor rcx, rdx
cmp rax, rcx
jge 0x14006e378
mov eax, dword [0x1402aade0]
mov edx, dword [0x1402aade4]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0xfb25705b
xor ecx, 0x4bc37701
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xdde15595
xor ecx, 0xffffffff
or eax, 0xdde15595
and eax, ecx
mov r8d, 0xffffffff
xor r8d, 0x9346815e
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x9346815e
or eax, 0x9346815e
imul eax, edx
add eax, ecx
cmp eax, 0xd16776
je 0x14006eac5
mov rcx, qword [rsp + 0x120]
mov eax, dword [0x1402aade8]
xor eax, dword [0x1402aadec]
xor edx, edx
sub edx, 0xe6869031
add eax, edx
mov edx, 0xd7b362cd
xor edx, 0x614b9c25
or eax, edx
mov r8d, 0x76ba0825
xor edx, edx
div r8d
mov dword [rsp + 0xf8], eax
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.140018506
mov eax, dword [rsp + 0xf8]
cmp eax, 0x5f409fa5
ja 0x14006e311
jmp 0x14006ea34
mov eax, dword [0x1402aadf0]
xor edx, edx
div dword [0x1402aadf4]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x796f0d4b
xor edx, 0x5a766db9
and edx, ecx
mov r8d, 0x5aa7f0c4
xor r8d, 0x79be9036
mov ecx, 0x91e97c0c
xor ecx, 0x6e1683f3
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x231960f2
mov r8d, 0xa6828212
xor r8d, 0x859be2e0
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x110ed08f
xor ecx, 0x13a45a08
xor eax, ecx
and eax, 0xf4580fc7
cmp eax, 0x7cf89d8a
jae 0x14006eace
mov rdx, qword [rsp + 0x120]
mov ecx, dword [0x1402aadf8]
mov eax, dword [0x1402aadfc]
xor eax, 0x1879e203
imul ecx, eax
xor ecx, 0xc2ae5804
mov r8d, 0x4b2de279
xor r8d, 0xb4d21d86
mov eax, ecx
xor eax, r8d
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x2251f126
and ecx, 0x2251f126
mov r8d, 0x995a3185
xor r8d, 0x66a5ce7a
xor ecx, r8d
and eax, ecx
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0x7b189ab0
xor ecx, 0xffffffff
mov r8d, 0xb2624f56
xor r8d, 0xc97ad5e6
add eax, r8d
add eax, 1
add eax, ecx
mov dword [rsp + 0xd4], eax
lea rcx, [rsp + 0x168]
call fcn.140036715
mov r9, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x118]
mov eax, dword [rsp + 0xd4]
mov r8, qword [r9]
mov qword [rsp + 0xd8], r8
mov rdx, r9
add rdx, 8
mov qword [rsp + 0xe0], rdx
mov rdx, qword [r9 + 8]
mov r10, qword [rsp + 0x168]
mov qword [r9], r10
mov r10, qword [rsp + 0x170]
mov qword [r9 + 8], r10
mov qword [rsp + 0x168], r8
mov qword [rcx], rdx
lea rcx, [rsp + 0x158]
add rcx, 8
mov qword [rsp + 0xe8], rcx
lea rcx, [rsp + 0x148]
add rcx, 8
mov qword [rsp + 0xf0], rcx
cmp eax, 0x70c43230
jb 0x14006eace
xor eax, eax
mov qword [rsp + 0xc8], rax
jmp 0x14006e51b
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc0], rax
cmp rax, rcx
jge 0x14006ea07
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
setns al
mov rdx, qword [rsp + 0x168]
mov qword [rsp + 0xb8], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14006e588
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffff
call fcn.140025e55
jmp 0x14006ea34
mov rax, qword [rsp + 0x110]
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x118]
mov rcx, qword [rcx]
mov qword [rsp + 0xa0], rcx
lea rdx, [rdx + rdx*4]
mov rcx, qword [rcx + rdx*8 + 8]
mov qword [rsp + 0xa8], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rsp + 0xb7], al
or al, cl
test al, 1
jne 0x14006e8a9
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x108]
mov r8, qword [rax]
mov qword [rsp + 0x80], r8
mov rax, r8
dec rax
mov qword [rsp + 0x88], rax
mov rax, r8
neg rax
not rcx
or rax, rcx
xor rax, 0xffffffffffffffff
mov qword [rsp + 0x90], rax
setns cl
mov rdx, rax
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov qword [rsp + 0x98], rax
jne 0x14006e63f
jmp 0x14006e661
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xe0]
mov rcx, qword [rcx]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
jmp 0x14006e67b
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x98]
call fcn.140025e55
jmp 0x14006ea34
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x68], rcx
add rax, 8
imul rcx, rcx, 0x28
add rax, rcx
cmp qword [rax], 0
je 0x14006e6e6
mov r8, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x68]
inc rcx
and rax, rcx
setns cl
mov rdx, rax
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov rcx, rax
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x78], rax
jne 0x14006e67b
jmp 0x14006e661
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xa0]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x58], rax
call fcn.14001dfcd
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x168]
mov qword [rsp + 0x60], rcx
cmp rax, rcx
jl 0x14006e788
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x60]
movabs rax, 0xeada0e79a39a47c
movabs r8, 0xdd7083fa1a5c2715
xor rax, r8
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0xce37bb4a7d6a8527
movabs r8, 0x1dea9857fd0f064e
xor rax, r8
sub rdx, rax
call fcn.140025e55
jmp 0x14006ea34
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x118]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 0x18
mov rax, qword [rcx]
mov qword [rsp + 0x40], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x48], rax
call fcn.14001dfcd
mov r11, qword [rsp + 0xe8]
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x108]
mov r10, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x158], rdi
mov qword [r11], rsi
mov qword [rsp + 0x148], r9
mov qword [rcx], r8
lea r8, [rsp + 0x158]
lea r9, [rsp + 0x148]
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.14006dd20
mov rax, qword [rsp + 0x110]
cmp byte [rax], 0
jne 0x14006ea34
mov rax, qword [rsp + 0x58]
cmp rax, 0
je 0x14006e965
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
movabs rdx, 0x4000000000000000
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
and rax, rcx
movabs rcx, 0xa08e52c572c15103
movabs rdx, 0xa08e52c572c15103
xor rcx, rdx
cmp rax, rcx
jne 0x14006e965
mov rcx, qword [rsp + 0x58]
call fcn.14001a7c0
jmp 0x14006e965
mov eax, dword [0x1402aae00]
mov ecx, dword [0x1402aae04]
xor ecx, 0x15f12490
xor edx, edx
div ecx
sub eax, 0xbae33cec
xor ecx, ecx
sub ecx, 0x4387ef41
sub eax, ecx
mov ecx, 0xfc5626bd
xor ecx, 0xeeb1eb98
imul eax, ecx
mov ecx, 0x765b67c7
xor ecx, 0xc2fead59
cmp eax, ecx
je 0x14006ead7
mov eax, dword [0x1402aae08]
xor eax, 0xcfb80c0c
and eax, dword [0x1402aae0c]
mov ecx, 0x338cd3cd
xor edx, edx
div ecx
mov ecx, 0xffffffff
xor ecx, 0x700e92e
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0x9bad7265
xor ecx, 0xc6676387
or eax, ecx
mov ecx, 0xceed7920
xor ecx, 0x64204417
cmp eax, ecx
jae 0x14006e8ef
mov rcx, qword [rsp + 0xc0]
mov dl, byte [rsp + 0xb7]
xor eax, eax
test dl, 1
mov qword [rsp + 0x30], rcx
mov byte [rsp + 0x3f], al
jne 0x14006e9e8
jmp 0x14006e965
mov r8, qword [rsp + 0xc0]
movabs rax, 0xa77d9a521f7aa9bb
mov rcx, r8
add rcx, rax
add rcx, 1
movabs rax, 0xb403859d3541568b
movabs rdx, 0x137e1fcf2a3bff30
xor rax, rdx
sub rcx, rax
mov rax, r8
xor rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
and rax, 0xffffffffffffffff
shl rax, 1
sub rax, 0xffffffffffffffff
sub r8, rax
mov rax, rcx
add rax, 1
mov rdx, rcx
xor rdx, 0xffffffffffffffff
or rdx, r8
add rdx, rax
mov al, 1
cmp rdx, 0
mov qword [rsp + 0x30], rcx
mov byte [rsp + 0x3f], al
jge 0x14006e9e8
call fcn.14000ee80
jmp 0x14006ea34
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x3f]
test cl, 1
mov qword [rsp + 0xc8], rax
jne 0x14006e51b
jmp 0x14006ea34
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x140], rax
lea rcx, [rsp + 0x138]
call fcn.14006c180
mov eax, dword [0x1402aae10]
xor edx, edx
div dword [0x1402aae14]
mov ecx, 0xdcd045d8
xor edx, edx
div ecx
add eax, 0x5f492b41
or eax, 0x7e5fb6f7
cmp eax, 0x19f8f1ed
je 0x14006eae0
mov eax, dword [0x1402aae18]
xor eax, 0x6edab1f5
mov edx, dword [0x1402aae1c]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
mov r8d, 0x2bfa29da
xor r8d, 0xd405d625
xor edx, r8d
and eax, edx
sub eax, ecx
mov ecx, 0x8740cd4d
xor ecx, 0x58d83e7b
xor eax, ecx
add eax, 0xcc98aaa5
mov ecx, 0x6297cdf0
xor edx, edx
div ecx
cmp eax, 0x5df98b2e
je 0x14006eae0
add rsp, 0x178
pop rdi
pop rsi
ret
test eax, 0xe9584c32
mov dh, 0xf6
invalid
mov edi, 0xe99aa30c
clc
invalid
outsd dx, dword [rsi]
fnstsw word [rax + rsi*2]
jmp 0x14006e3f5
cmp esp, dword [rax]
invalid
insd dword [rdi], dx
int 0xf2
jmp 0x14006ea60