Function at 0x1400fc720
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x90
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], r8
mov qword [rbp], rdx
mov qword [rbp + 8], rcx
mov eax, dword [0x14021d7c0]
mov ecx, dword [0x14021d7c4]
xor ecx, 0xd142dd43
sub eax, ecx
sub eax, 0x3ad68061
add eax, 0xd35c0082
add eax, 0x3ad68061
add eax, 0x8e76b275
xor eax, 0xffffffff
mov edx, 0x676fe11f
xor edx, 0x4d5cb207
mov ecx, 0xfade3f21
xor ecx, 0x521c0de
xor edx, ecx
mov ecx, 0xffffffff
xor ecx, 0xa38b3894
or eax, edx
or ecx, 0xa38b3894
mov edx, 0xcac81df
xor edx, 0xf3537e20
xor eax, edx
and eax, ecx
cmp eax, 0x457725a5
ja 0x1400fcf9c
mov eax, 0x5f2c3007
mov dword [rbp - 0x1c], eax
mov eax, 0x10
mov qword [rbp - 0x38], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rcx, rsp
mov qword [rbp - 0x28], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x30], rax
sub rsp, 0x20
call fcn.1400ee855
mov rcx, qword [rbp - 0x28]
add rsp, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.1400f32c0
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp]
mov eax, dword [rbp - 0x1c]
add rsp, 0x20
xor rdx, 0xffffffffffffffff
add rcx, rdx
add rcx, 1
mov qword [rbp - 0x18], rcx
cmp rcx, 1
setl cl
mov byte [rbp - 9], cl
cmp eax, 0x2662e5d
jb 0x1400fcf9c
mov al, byte [rbp - 9]
test al, 1
jne 0x1400fcf8d
jmp 0x1400fc843
mov rax, qword [rbp + 8]
mov rcx, qword [rbp - 8]
mov rdx, rax
add rdx, rcx
mov qword [rbp - 0x48], rdx
mov al, byte [rax + rcx]
mov byte [rbp - 0x3d], al
movzx ecx, al
mov dword [rbp - 0x3c], ecx
cmp al, 0xff
jle 0x1400fc888
mov ecx, dword [rbp - 0x3c]
sub rsp, 0x20
call fcn.1400fcfb7
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400fcf8d
mov rax, qword [rbp - 0x18]
movabs rcx, 0xe8042771266f54f
movabs rdx, 0xe8042771266f54e
xor rcx, rdx
cmp rax, rcx
je 0x1400fcf8d
mov rax, qword [rbp - 0x18]
cmp rax, 3
jbe 0x1400fcbe7
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x48]
mov eax, 0xf0d0e975
xor eax, 0xf0d0e975
mov dword [rcx], eax
mov r8d, 4
sub rsp, 0x20
call fcn.1400f08b7
mov rax, qword [rbp - 0x30]
add rsp, 0x20
mov ecx, dword [rax]
mov dword [rbp - 0x50], ecx
mov edx, 0xffffffff
xor edx, 0xc0e0
mov eax, ecx
xor eax, edx
and eax, ecx
and ecx, 0xc0c0c0f8
mov dword [rbp - 0x4c], ecx
cmp eax, 0x80c0
jne 0x1400fc9c6
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 8]
mov eax, dword [rbp - 0x3c]
shl eax, 6
mov r8d, eax
xor r8d, 0x7c0
xor r8d, 0xffffffff
or eax, 0x7c0
and eax, r8d
xor r8d, r8d
sub r8, rdx
movabs rdx, 0x962dd95075d7c5e2
movabs r9, 0x962dd95075d7c5e2
xor rdx, r9
movabs r9, 0xdaa22a75afc845b3
movabs r10, 0xdaa22a75afc845b2
xor r9, r10
sub rdx, r9
add r8, rdx
xor edx, edx
sub rdx, r8
mov dl, byte [rcx + rdx]
mov cl, dl
xor cl, 0xff
xor dl, 0xff
and cl, dl
mov dl, 0x3f
or dl, 0x3f
xor dl, 0xff
xor cl, 0xff
mov r8b, 0x25
xor r8b, 0xda
xor dl, r8b
and cl, dl
movzx ecx, cl
or eax, ecx
mov dword [rbp - 0x54], eax
cmp eax, 0x7f
jbe 0x1400fcbe2
mov ecx, dword [rbp - 0x54]
sub rsp, 0x20
call fcn.1400fcfb7
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400fcbe2
mov eax, dword [rbp - 0x50]
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x1400fca7f
mov rdx, qword [rbp + 8]
mov r8, qword [rbp - 8]
mov r10d, dword [rbp - 0x3c]
shl r10d, 0xc
mov eax, r10d
not eax
or eax, 0xf000
add r10d, eax
movzx r9d, byte [r8 + rdx + 1]
and r9d, 0x3f
shl r9d, 6
mov eax, r10d
add eax, r9d
mov ecx, r9d
mov r9d, r10d
lea ecx, [rcx + r9 + 1]
mov r9d, r8d
and r9d, 2
xor r8, 2
lea r8, [r8 + r9*2]
movzx r8d, byte [rdx + r8]
and r8d, 0x3f
mov edx, eax
mov eax, r8d
lea eax, [rax + rdx + 1]
mov dword [rbp - 0x58], 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 0x1400fcbe2
mov ecx, dword [rbp - 0x58]
sub rsp, 0x20
call fcn.1400fcfb7
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400fcbe2
mov eax, dword [rbp - 0x4c]
mov ecx, 0x98e2c7d5
xor ecx, 0x18624725
cmp eax, ecx
jne 0x1400fcbe2
mov rax, qword [rbp + 8]
mov rdx, qword [rbp - 8]
mov r8d, dword [rbp - 0x3c]
shl r8d, 0x12
mov r9d, 0xffffffff
xor r9d, 0x1c0000
mov ecx, r8d
xor ecx, r9d
and ecx, r8d
mov r8b, byte [rax + rdx + 1]
mov r9b, r8b
add r9b, 1
xor r8b, 0xff
mov r10b, 0x59
xor r10b, 0x66
or r8b, r10b
add r8b, r9b
movzx edi, r8b
shl edi, 0xc
or edi, ecx
mov r8b, byte [rax + rdx + 2]
mov r9b, 0xff
xor r9b, 0x3f
mov cl, r8b
xor cl, r9b
and cl, r8b
movzx esi, cl
shl esi, 6
mov r8d, edi
xor r8d, 0xffffffff
mov r9d, esi
xor r9d, 0xffffffff
mov r10d, 0x7670215a
xor r10d, 0x6d1a5ebb
mov ecx, 0x221b14a4
xor ecx, 0xdde4eb5b
xor r10d, ecx
mov ecx, r8d
and ecx, 0x1b6a7fe1
and edi, r10d
mov r11d, r9d
and r11d, 0x1b6a7fe1
and esi, r10d
or ecx, edi
or r11d, esi
xor ecx, r11d
or r8d, r9d
mov r9d, 0x6aa0c738
xor r9d, 0x955f38c7
xor r8d, r9d
mov r9d, 0x49666221
xor r9d, 0x520c1dc0
or r9d, r10d
and r8d, r9d
or ecx, r8d
mov al, byte [rax + rdx + 3]
and al, 0x3f
movzx edx, al
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov r8d, 0x8482bad
xor r8d, 0xf7b7d452
mov ecx, edx
xor ecx, r8d
mov r8d, 0xd11a5911
xor r8d, 0x2ee5a6ee
xor edx, r8d
or ecx, edx
and eax, ecx
mov ecx, 0x64354328
xor ecx, 0x9bcabcd7
xor eax, ecx
mov dword [rbp - 0x5c], eax
add eax, 0xffff0001
cmp eax, 0x100001
jae 0x1400fcbe2
mov ecx, dword [rbp - 0x5c]
sub rsp, 0x20
call fcn.1400fcfb7
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400fcf8d
mov eax, dword [0x14021d7d0]
add eax, dword [0x14021d7d4]
mov ecx, 0x592f1b40
xor edx, edx
div ecx
and eax, 0x8a225e1f
add eax, 0x6c59fb16
cmp eax, 0x8cf49978
je 0x1400fcfa5
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 8]
mov r9d, dword [0x14021d7d8]
mov r8d, dword [0x14021d7dc]
mov r10d, 0xc38cd2d6
xor r10d, 0x3c732d29
mov eax, r9d
xor eax, r10d
mov r10d, 0x267c0e91
xor r10d, 0xd983f16e
xor r9d, r10d
or eax, r9d
and r8d, r8d
xor r8d, 0xffffffff
xor eax, 0xffffffff
xor r8d, 0xffffffff
or eax, r8d
mov r9d, 0x3fd9e91f
xor r9d, 0x70ea5173
mov r8d, 0xdc737bdf
xor r8d, 0x238c8420
xor r9d, r8d
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, 0x4f33b86c
add eax, r9d
sub eax, r8d
mov r8d, 0x65470f6e
xor r8d, 0x73ff433c
sub eax, r8d
sub eax, 0xf080d391
add eax, 0x16b84c52
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x235cc448
mov r8d, 0xffffffff
xor r8d, 0xefeab723
or eax, r9d
or r8d, 0xefeab723
xor eax, 0xffffffff
and eax, r8d
xor r8d, r8d
sub r8, rdx
xor edx, edx
sub rdx, 1
add r8, rdx
xor edx, edx
sub rdx, r8
mov cl, byte [rcx + rdx]
movzx edx, cl
mov dword [rbp - 0x64], edx
and cl, 0xc0
cmp cl, 0x80
sete cl
mov byte [rbp - 0x5d], cl
cmp eax, 0xb87c5f43
je 0x1400fcc11
mov al, byte [rbp - 0x5d]
test al, 1
jne 0x1400fcd1c
jmp 0x1400fcf8d
mov eax, dword [0x14021d7e0]
mov ecx, 0x5625eb79
xor ecx, 0x50cefe4
xor eax, ecx
mov edx, dword [0x14021d7e4]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, eax
xor ecx, 0xa183bdfc
xor ecx, 0xffffffff
or eax, 0xa183bdfc
and eax, ecx
mov ecx, 0xa4a82fe
xor edx, edx
div ecx
add eax, 0x7aef616e
mov ecx, 0x61202753
xor ecx, 0xa69dd58c
cmp eax, ecx
jae 0x1400fcfae
mov cl, byte [rbp - 0x3d]
mov eax, dword [0x14021d7e8]
mov edx, 0x4b616336
xor edx, 0x2365ec0f
xor eax, edx
add eax, dword [0x14021d7ec]
mov r8d, 0x186a2270
xor edx, edx
div r8d
or eax, 0xf22d060b
add eax, 0x85b28a0f
and cl, 0xe0
cmp cl, 0xc0
sete cl
mov byte [rbp - 0x65], cl
cmp eax, 0x17653025
jb 0x1400fcd76
mov al, byte [rbp - 0x65]
test al, 1
jne 0x1400fcdce
jmp 0x1400fce58
mov eax, dword [rbp - 0x64]
mov ecx, dword [rbp - 0x3c]
shl ecx, 6
xor ecx, 0xffffffff
mov r8d, 0xee449b87
xor r8d, 0xee449c47
mov edx, 0x67434d23
xor edx, 0x98bcb2dc
xor r8d, edx
mov edx, 0xd770328f
xor edx, 0x150f38b8
mov r9d, 0x9a2c1e23
xor r9d, 0x65d3e1dc
xor edx, r9d
or ecx, r8d
or edx, 0xc27f0a37
xor ecx, 0xffffffff
and ecx, edx
and eax, 0x3f
or eax, ecx
mov dword [rbp - 0x6c], eax
mov ecx, 0xd4d569d9
xor ecx, 0xd4d569a6
cmp eax, ecx
jbe 0x1400fcf8d
mov ecx, dword [rbp - 0x6c]
sub rsp, 0x20
call fcn.1400fcfb7
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400fcf8d
mov cl, byte [rbp - 0x3d]
mov rax, qword [rbp - 0x18]
sub rax, 3
sete al
and cl, 0xf0
sub cl, 0xe0
sete cl
and al, cl
test al, 1
jne 0x1400fce7e
jmp 0x1400fcf8d
mov rax, qword [rbp + 8]
mov rcx, qword [rbp - 8]
movabs rdx, 0xfd0bca6e01725152
sub rcx, rdx
add rcx, 2
movabs rdx, 0xfd0bca6e01725152
add rcx, rdx
add rax, rcx
mov al, byte [rax]
mov byte [rbp - 0x6d], al
mov dl, 0xfd
xor dl, 0xfc
mov cl, al
add cl, dl
xor al, 0xff
mov dl, 0x99
xor dl, 0x59
or al, dl
add al, cl
cmp al, 0x80
jne 0x1400fcf8d
mov al, byte [rbp - 0x6d]
mov ecx, dword [rbp - 0x64]
mov edx, dword [rbp - 0x3c]
shl edx, 0xc
mov r8d, edx
add r8d, 1
xor edx, 0xffffffff
or edx, 0xf000
add edx, r8d
shl ecx, 6
mov r8d, 0x5273b5e4
xor r8d, 0x5273ba24
and ecx, r8d
or ecx, edx
mov dl, al
xor dl, 0x3f
xor dl, 0xff
mov r8b, 0x86
xor r8b, 0xb9
or al, r8b
and al, dl
movzx r8d, al
mov edx, r8d
and edx, ecx
xor edx, 0xffffffff
mov eax, ecx
add eax, r8d
add eax, 1
add eax, edx
mov dword [rbp - 0x74], eax
cmp eax, 0x800
setb al
mov edx, ecx
add edx, 1
xor ecx, 0xffffffff
or ecx, 0xf800
add ecx, edx
cmp ecx, 0xd800
sete dl
and al, al
xor al, 0xff
mov cl, dl
xor cl, 0xff
xor r8d, r8d
xor r8b, 1
xor dl, r8b
or cl, dl
xor edx, edx
xor dl, 1
xor al, dl
xor cl, 0xff
or al, cl
test al, 1
jne 0x1400fcf8d
mov ecx, dword [rbp - 0x74]
sub rsp, 0x20
sub esp, 0x20
call fcn.1400fcfb7
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
lea rsp, [rbp + 0x10]
pop rdi
pop rsi
pop rbp
ret
int1
jmp 0x1400fcf77
invalid
invalid