Function at 0x1400fe1e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp], r8
mov qword [rbp + 8], rdx
mov qword [rbp + 0x10], rcx
mov eax, dword [0x1401dbb08]
xor edx, edx
div dword [0x1401dbb0c]
mov r8d, eax
mov ecx, r8d
xor ecx, 0xffffffff
mov eax, 0xce9086b8
xor eax, 0x397e10c5
and eax, ecx
mov edx, 0xd277af81
xor edx, 0x259939fc
mov ecx, 0xda7727ea
xor ecx, 0x2588d815
xor edx, ecx
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0xa0d7b4f9
and ecx, 0xf7ee967d
and edx, 0xa0d7b4f9
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, 0x799a406d
xor ecx, 0x8665bf92
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0xa8763a49
mov ecx, 0xffffffff
xor ecx, 0x381e726e
or eax, edx
or ecx, 0x381e726e
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0xe5cfa596
xor edx, edx
div ecx
mov ecx, 0x1f73bcbd
xor ecx, 0x964442c
cmp eax, ecx
jae 0x1400feb0e
mov eax, dword [0x1401dbb10]
xor eax, 0x5de543df
mov ecx, dword [0x1401dbb14]
xor edx, edx
div ecx
and eax, 0x56ae8981
mov ecx, eax
xor ecx, 0x60e9a000
xor eax, 0x9d105ecb
mov edx, eax
and edx, 0x9f16454a
and ecx, 0x60e9a881
imul ecx, edx
mov edx, eax
and edx, 0x40a89a81
or eax, 0x60e9ba81
imul eax, edx
add eax, ecx
mov dword [rbp - 0x14], eax
mov eax, 0x3f748510
mov dword [rbp - 0x18], eax
mov eax, 0x10
mov qword [rbp - 0x30], rax
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp - 0x30]
mov rcx, rsp
mov qword [rbp - 0x20], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
sub rsp, 0x20
call fcn.1400fde01
mov rcx, qword [rbp - 0x20]
add rsp, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.1400feb29
mov rdx, qword [rbp + 8]
mov r8, qword [rbp]
mov ecx, dword [rbp - 0x18]
mov eax, dword [rbp - 0x14]
add rsp, 0x20
sub rdx, r8
mov qword [rbp - 0x10], rdx
cmp rdx, 1
setl dl
mov byte [rbp - 1], dl
cmp eax, ecx
jbe 0x1400fe2a5
mov al, byte [rbp - 1]
test al, 1
jne 0x1400fea6f
jmp 0x1400fe37f
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp]
mov rdx, rax
add rdx, rcx
mov qword [rbp - 0x40], rdx
mov al, byte [rax + rcx]
mov byte [rbp - 0x35], al
movzx ecx, al
mov dword [rbp - 0x34], ecx
cmp al, 0xff
jle 0x1400fe3c4
mov ecx, dword [rbp - 0x34]
sub rsp, 0x20
call fcn.1400feb99
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x20]
mov qword [rax], rcx
jmp 0x1400fea6f
mov rax, qword [rbp - 0x10]
movabs rcx, 0x9a285004fabee4c1
movabs rdx, 0x9a285004fabee4c0
xor rcx, rdx
cmp rax, rcx
je 0x1400fea6f
mov rax, qword [rbp - 0x10]
cmp rax, 3
jbe 0x1400fe725
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x40]
mov dword [rcx], 0
mov r8d, 4
sub rsp, 0x20
call fcn.1400febd9
mov rax, qword [rbp - 0x28]
add rsp, 0x20
mov ecx, dword [rax]
mov dword [rbp - 0x48], ecx
mov edx, ecx
add edx, 1
mov eax, ecx
xor eax, 0xffffffff
or eax, 0xc0e0
add eax, edx
and ecx, 0xc0c0c0f8
mov dword [rbp - 0x44], ecx
cmp eax, 0x80c0
jne 0x1400fe4c5
mov rdx, qword [rbp]
mov r8d, dword [rbp - 0x34]
mov ecx, 0x61374416
xor ecx, 0x61374410
shl r8d, cl
mov rcx, qword [rbp + 0x10]
mov r9d, 0xffffffff
xor r9d, 0x7c0
mov eax, r8d
xor eax, r9d
and eax, r8d
movabs r8, 0x9e3d47e3ccab0514
movabs r9, 0x9e3d47e3ccab0515
xor r8, r9
add rdx, r8
mov cl, byte [rcx + rdx]
and cl, 0x3f
movzx ecx, cl
or eax, ecx
mov dword [rbp - 0x4c], eax
cmp eax, 0x7f
jbe 0x1400fe720
mov ecx, dword [rbp - 0x4c]
sub rsp, 0x20
call fcn.1400feb99
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x20]
mov qword [rax], rcx
jmp 0x1400fe720
mov eax, dword [rbp - 0x48]
mov ecx, eax
xor ecx, 0xc0c0f0
xor ecx, 0xffffffff
mov edx, 0x952f72f
xor edx, 0x99237df
or eax, edx
and eax, ecx
cmp eax, 0x8080e0
jne 0x1400fe579
mov rax, qword [rbp]
mov rdx, qword [rbp + 0x10]
mov ecx, dword [rbp - 0x34]
shl ecx, 0xc
movzx r8d, cx
movzx ecx, byte [rax + rdx + 1]
and ecx, 0x3f
shl ecx, 6
or ecx, r8d
movzx eax, byte [rax + rdx + 2]
mov edx, eax
not edx
or edx, 0x83a53140
and edx, 0x83a5315d
and eax, 0x22
or edx, eax
mov eax, ecx
xor eax, edx
xor eax, 0x83a5315d
mov dword [rbp - 0x50], eax
sub eax, 0x800
setb al
and ecx, 0xf800
sub ecx, 0xd800
sete dl
mov cl, dl
and cl, al
add al, dl
sub al, cl
test al, 1
jne 0x1400fe720
mov ecx, dword [rbp - 0x50]
sub rsp, 0x20
call fcn.1400feb99
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x20]
mov qword [rax], rcx
jmp 0x1400fe720
mov eax, dword [rbp - 0x44]
cmp eax, 0x808080f0
jne 0x1400fe720
mov rdx, qword [rbp]
mov eax, dword [rbp - 0x34]
mov ecx, 0xa382ed97
xor ecx, 0xa382ed85
shl eax, cl
mov rcx, qword [rbp + 0x10]
mov r8d, eax
xor r8d, 0xffffffff
mov r9d, 0xe88dc396
xor r9d, 0xe891c396
mov r10d, 0x545f51b7
xor r10d, 0xaba0ae48
xor r9d, r10d
or r8d, r9d
mov r9d, 0xc0d942e2
xor r9d, 0x3f26bd1d
xor eax, r9d
mov r9d, 0x1f8e855e
xor r9d, 0x1f92855e
mov r10d, 0x9987d590
xor r10d, 0x66782a6f
xor r9d, r10d
or eax, r9d
mov r9d, 0x4d780fe
xor r9d, 0xfb287f01
xor r8d, r9d
mov r9d, 0x94821e5a
xor r9d, 0x6b7de1a5
xor eax, r9d
or r8d, eax
mov al, byte [rcx + rdx + 1]
xor al, 0xff
mov r10b, 0xff
xor r10b, 0x3f
mov r9b, 0xaa
xor r9b, 0x90
mov r11b, 0x78
xor r11b, 0x87
xor r9b, r11b
or al, r10b
or r9b, 0x3a
mov r10b, 0xa9
xor r10b, 0x56
xor al, r10b
and al, r9b
movzx eax, al
shl eax, 0xc
or eax, r8d
mov r9, 0xffffffffffffffff
xor r9, 2
movabs r8, 0x30c73d6e7bc0487e
movabs r10, 0x30c73d6e7bc0487e
xor r8, r10
movabs r10, 0x714eeddb77968259
movabs r11, 0x714eeddb77968258
xor r10, r11
sub r8, r10
sub r9, r8
mov r8, rdx
sub r8, r9
mov r8b, byte [rcx + r8]
mov r9b, 0x7f
xor r9b, 0x40
and r8b, r9b
movzx r8d, r8b
shl r8d, 6
or eax, r8d
movabs r8, 0x7eca8e2e29d25990
movabs r9, 0x7eca8e2e29d25993
xor r8, r9
add rdx, r8
mov cl, byte [rcx + rdx]
and cl, 0x3f
movzx ecx, cl
or eax, ecx
mov dword [rbp - 0x54], eax
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0xffff0001
add ecx, eax
mov eax, 0xe754da04
xor eax, 0xe754da04
sub eax, ecx
mov ecx, 0x18bb7ac1
xor ecx, 0x18ab7ac0
cmp eax, ecx
jae 0x1400fe720
mov ecx, dword [rbp - 0x54]
sub rsp, 0x20
call fcn.1400feb99
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x20]
mov qword [rax], rcx
jmp 0x1400fea6f
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp]
movabs rdx, 0x2b1ac82491fe335
movabs r8, 0x2b1ac82491fe334
xor rdx, r8
add rcx, rdx
mov al, byte [rax + rcx]
movzx ecx, al
mov dword [rbp - 0x58], ecx
and al, 0xc0
cmp al, 0x80
jne 0x1400fea6f
mov al, byte [rbp - 0x35]
mov cl, 0x35
xor cl, 0xd5
and al, cl
mov cl, 0x44
xor cl, 0x84
cmp al, cl
jne 0x1400fe934
mov eax, dword [rbp - 0x58]
mov ecx, dword [rbp - 0x34]
shl ecx, 6
mov r8d, 0x38b1459c
xor r8d, 0x38b1425c
mov edx, ecx
xor edx, r8d
xor edx, 0xffffffff
mov r8d, 0x7dab2893
xor r8d, 0x7dab2f53
or ecx, r8d
and ecx, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x3f
mov r8d, 0xffffffff
xor r8d, 0xfb46dbed
or eax, edx
mov edx, 0xf6ac41de
xor edx, 0xdea9a33
or edx, r8d
xor eax, 0xffffffff
and eax, edx
or eax, ecx
mov dword [rbp - 0x5c], eax
cmp eax, 0x7f
jbe 0x1400fea6f
mov eax, dword [0x1401dbb18]
mov ecx, dword [0x1401dbb1c]
xor ecx, 0xe2efe8ef
or eax, ecx
or eax, 0xf7833b67
mov ecx, 0xffffffff
xor ecx, 0x7807d19d
add eax, ecx
add eax, 1
mov edx, 0x153a641c
xor edx, 0xf87189a2
mov ecx, eax
xor ecx, edx
mov edx, 0x62d00803
xor edx, 0x8f9be5bd
mov r8d, 0xe4f2b97b
xor r8d, 0x1b0d4684
xor edx, r8d
and eax, edx
shl eax, 1
sub eax, ecx
cmp eax, 0x14ee14f9
je 0x1400feb17
mov ecx, dword [rbp - 0x5c]
mov esi, dword [0x1401dbb20]
mov r11d, dword [0x1401dbb24]
mov edx, 0x379b68e7
xor edx, 0xc8649718
mov eax, esi
xor eax, edx
mov r9d, r11d
xor r9d, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xfefebe64
mov edx, eax
and edx, 0xfefebe64
and esi, r8d
mov r10d, r9d
and r10d, 0xfefebe64
and r11d, r8d
or edx, esi
or r10d, r11d
xor edx, r10d
or eax, r9d
xor eax, 0xffffffff
or r8d, 0xfefebe64
and eax, r8d
or edx, eax
mov eax, edx
and eax, 0xe55c13d
or edx, 0xe55c13d
add eax, edx
mov edx, 0x8a0cf519
xor edx, 0xeadb0f7d
and eax, edx
or eax, eax
xor eax, 0xffffffff
mov edx, 0xfe6e50
xor edx, 0xd829de30
mov r8d, 0x90d966be
xor r8d, 0x480ed6de
or edx, r8d
xor edx, 0xffffffff
mov r8d, 0x2dcdf1bd
xor r8d, 0xd2320e42
xor eax, r8d
xor edx, 0xffffffff
and eax, edx
mov dword [rbp - 0x60], eax
mov eax, 0x9d43d8d1
xor eax, 0x66dff57f
mov dword [rbp - 0x64], eax
sub rsp, 0x20
call fcn.1400feb99
mov rdx, qword [rbp - 0x20]
mov ecx, dword [rbp - 0x64]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp - 0x60]
mov qword [rdx], r8
cmp eax, ecx
ja 0x1400feb17
jmp 0x1400fea6f
mov cl, byte [rbp - 0x35]
mov rax, qword [rbp - 0x10]
sub rax, 3
sete al
and cl, 0xf0
sub cl, 0xe0
sete cl
and al, cl
test al, 1
jne 0x1400fe95a
jmp 0x1400fea6f
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp]
xor edx, edx
sub rdx, 2
sub rcx, rdx
mov al, byte [rax + rcx]
mov byte [rbp - 0x65], al
mov dl, 0xd9
xor dl, 0x19
mov cl, al
xor cl, dl
xor cl, 0xff
or al, 0xc0
and al, cl
cmp al, 0x80
jne 0x1400fea6f
mov al, byte [rbp - 0x65]
mov r8d, dword [rbp - 0x34]
mov ecx, 0x91bc9477
xor ecx, 0x91bc947b
shl r8d, cl
mov ecx, dword [rbp - 0x58]
mov edx, r8d
and edx, 0xf000
xor edx, 0xffffffff
and r8d, 0xf000
xor r8d, 0xffffffff
and edx, r8d
xor edx, 0xffffffff
shl ecx, 6
mov r9d, 0x286ce07c
xor r9d, 0x286cefbc
mov r8d, 0x7a13b84d
xor r8d, 0x85ec47b2
xor r9d, r8d
mov r8d, ecx
xor r8d, r9d
and r8d, ecx
mov r9d, 0x20c80f1d
xor r9d, 0xdf37f0e2
mov ecx, r8d
xor ecx, r9d
xor r8d, 0xffffffff
or ecx, r8d
and edx, edx
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
mov dl, al
add dl, 1
xor al, 0xff
or al, 0x3f
add al, dl
movzx edx, al
mov eax, ecx
or eax, edx
mov dword [rbp - 0x6c], eax
cmp eax, 0x800
setb al
mov edx, ecx
add edx, 1
xor ecx, 0xffffffff
or ecx, 0xf800
add ecx, edx
mov edx, 0xb84b3520
xor edx, 0xb84bed20
cmp ecx, edx
sete cl
or al, cl
test al, 1
jne 0x1400fea6f
mov ecx, dword [rbp - 0x6c]
sub rsp, 0x20
call fcn.1400feb99
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x20]
mov qword [rax], rcx
mov eax, dword [0x1401dbb28]
mov ecx, dword [0x1401dbb2c]
mov edx, 0x6ab50863
xor edx, 0xb42c8d73
xor ecx, edx
xor edx, edx
div ecx
imul eax, eax, 0x6df7e44f
imul eax, eax, 0x7a5811c
mov ecx, 0x3cf63b44
xor edx, edx
div ecx
cmp eax, 0x64ddfd25
je 0x1400feb20
mov rdx, qword [rbp - 0x20]
mov eax, dword [str.X_1]
xor eax, 0x2e0ba79f
mov r9d, dword [0x1401dbb34]
mov r8d, r9d
xor r8d, 0xffffffff
mov ecx, eax
and ecx, r8d
mov r8d, eax
xor r8d, r9d
add eax, r8d
sub eax, ecx
sub eax, 0x2f620fa1
imul eax, eax, 0xd7e07f2d
xor eax, 0x73f3db4c
mov ecx, 0x236bc67b
xor ecx, 0x860b0ed7
mov rdx, qword [rdx]
mov qword [rbp - 0x78], rdx
cmp eax, ecx
ja 0x1400feb20
mov rax, qword [rbp - 0x78]
lea rsp, [rbp + 0x18]
pop rsi
pop rbp
ret
pop rax
and bl, byte [r10 - 0x87117]
call [rsp + rbp*2 + 0x21e9ac0e]
std
invalid
pushfq
insb byte [rdi], dx
invalid
stosd dword [rdi], eax
adc al, 0x7b
jmp 0x1400feaac