Function at 0x14014ff20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x60], rdx
mov qword [rbp + 0x68], rcx
mov qword [rbp + 0x70], rcx
mov r11d, dword [0x140254278]
sub r11d, dword [0x14025427c]
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xa717a084
mov edx, 0xffffffff
xor edx, 0xaed09cea
mov eax, ecx
and eax, 0xaed09cea
and r11d, edx
mov r10d, 0x2a02a96d
xor r10d, 0x84d23587
mov r9d, r8d
and r9d, r10d
mov r10d, 0x52e89695
xor r10d, 0xf5ff3611
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0xaed09cea
and ecx, edx
or eax, ecx
xor eax, 0xda10ccf5
mov ecx, 0x1b6c390d
xor ecx, 0x3a56f24d
mov edx, eax
and edx, ecx
mov ecx, 0x2df6337
xor ecx, 0x2df6335
imul ecx, edx
add eax, 0x213acb40
sub eax, ecx
cmp eax, 0x24d87a94
jb 0x1401505e6
mov eax, dword [0x140254280]
mov ecx, dword [0x140254284]
xor ecx, 0x8ed43216
and eax, ecx
or eax, 0x6122cde1
imul rax, rax, 0x3a7f24e7
shr rax, 0x3d
mov dword [rbp + 0x3c], eax
mov eax, 0x10
mov qword [rbp + 0x10], rax
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp + 0x28], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp - 0x18], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp - 0x10], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp - 8], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp + 8], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp + 0x18], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x20], rax
sub rsp, 0x20
call fcn.14014be98
mov r9, qword [rbp + 0x68]
mov r8, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x60]
add rsp, 0x20
mov r10, rax
mov eax, dword [rbp + 0x3c]
mov qword [rbp + 0x40], r10
mov qword [r9], 0
mov qword [r9 + 8], 0
mov qword [r8], 0
mov r9, r8
add r9, 8
mov qword [rbp + 0x48], r9
mov qword [r8 + 8], 0
mov r8d, 0x2986d7d8
xor r8d, 0x2986d7d8
mov dword [rdx], r8d
mov rcx, qword [rcx]
mov qword [rbp + 0x50], rcx
cmp rcx, 4
setl cl
mov byte [rbp + 0x5f], cl
cmp eax, 0xee8c0452
ja 0x14014ffe3
mov al, byte [rbp + 0x5f]
test al, 1
jne 0x140150146
jmp 0x140150164
mov rax, qword [rbp + 0x68]
mov rcx, qword [0x140263b88]
mov qword [rax], rcx
mov rcx, qword [0x140263b90]
mov qword [rax + 8], rcx
jmp 0x1401505db
mov ecx, dword [0x140254288]
xor ecx, 0xe442447d
mov eax, dword [0x14025428c]
xor ecx, 0xffffffff
mov edx, 0xfc6e7d1e
xor edx, 0x39182e1
xor eax, edx
mov edx, 0xffffffff
xor edx, 0xe405d319
or ecx, eax
mov eax, 0x8221acab
xor eax, 0x66247fb2
or eax, edx
xor ecx, 0xffffffff
and ecx, eax
mov edx, 0xffffffff
xor edx, 0x6108ee72
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0xbe3cb009
xor edx, edx
div ecx
xor eax, 0xbd1f2623
mov ecx, 0xaaa77b85
xor ecx, 0xbe0413e2
cmp eax, ecx
jbe 0x1401505ef
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x60]
mov edx, dword [0x140254290]
mov r8d, dword [0x140254294]
mov r9d, 0xfce87371
xor r9d, 0x377d0de3
xor r8d, r9d
add edx, r8d
and edx, 0x918846f
add edx, 0x7a12b21b
mov r8d, 0xa6a43c69
xor r8d, 0x25d97f70
imul edx, r8d
mov dword [rbp - 0x24], edx
mov rdx, qword [rax + 8]
add rdx, 8
movabs r8, 0xa344a77202780851
movabs rax, 0xa344a77202780855
xor r8, rax
sub rsp, 0x20
call fcn.14014f830
mov rcx, qword [rbp + 0x30]
mov eax, dword [rbp - 0x24]
add rsp, 0x20
mov ecx, dword [rcx]
mov dword [rbp - 0x20], ecx
cmp ecx, 0
sete cl
mov byte [rbp - 0x19], cl
cmp eax, 0x5d35d7b0
ja 0x1401501d6
mov rax, qword [rbp + 0x50]
mov dl, byte [rbp - 0x19]
mov ecx, 4
test dl, 1
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
jne 0x1401502f3
jmp 0x14015028c
mov r8, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x28]
mov r9, qword [rbp + 0x60]
mov eax, dword [rbp - 0x20]
mov eax, eax
mov qword [rbp - 0x40], rax
add rax, 3
mov r10, qword [r9]
mov qword [rdx], r10
mov r9, qword [r9 + 8]
mov qword [rdx + 8], r9
mov qword [r8], 4
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.14014e130
mov rax, qword [rbp + 0x40]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14015059a
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp + 0x60]
mov rax, qword [rax]
add rcx, 4
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp - 0x38]
mov r9, qword [rbp - 0x30]
mov qword [rbp - 0x58], r9
mov qword [rbp - 0x50], rdx
movabs rax, 0x5e87ad7c68afb610
mov rcx, r9
add rcx, rax
sub rcx, rdx
movabs rax, 0x42b7f3790649bc2b
movabs r8, 0x1c305e056ee60a3b
xor rax, r8
sub rcx, rax
mov qword [rbp - 0x48], rcx
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs r8, 0xef70ae73497f6be8
and rax, r8
mov r11, 0xffffffffffffffff
movabs r8, 0xef70ae73497f6be8
xor r11, r8
mov r10, rcx
and r10, r11
movabs rsi, 0x4f7adac9588aad96
movabs r8, 0xb0852536a7755269
xor rsi, r8
mov r8, r9
xor r8, rsi
movabs rsi, 0xef70ae73497f6be8
and r8, rsi
and r9, r11
or rax, r10
or r8, r9
xor rax, r8
cmp rax, 0
setl al
xor rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x14015058d
mov rax, qword [rbp - 0x48]
cmp rax, 0
jle 0x140150498
mov rdx, qword [rbp - 0x58]
mov rax, rdx
and rax, 0xffffffffffffffff
mov rcx, rdx
or rcx, 0xffffffffffffffff
add rax, rcx
mov qword [rbp - 0x60], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl dl
cmp rax, 0xffffffffffffffff
setg cl
mov al, cl
and al, dl
xor al, 0xff
xor r8d, r8d
xor r8b, 1
xor cl, r8b
xor dl, 0xff
or cl, dl
and al, cl
xor al, 0xff
test al, 1
jne 0x14015058d
mov rcx, qword [rbp - 8]
mov r8, qword [rbp + 8]
mov rdx, qword [rbp]
mov rax, qword [rbp - 0x60]
mov r9, qword [rbp - 0x50]
mov r10, qword [rbp + 0x60]
mov r11, qword [r10]
mov qword [rdx], r11
mov r10, qword [r10 + 8]
mov qword [rdx + 8], r10
mov qword [r8], r9
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.14014e130
mov rcx, qword [rbp - 8]
mov rax, qword [rbp + 0x40]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp - 0x70], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x68], rcx
mov al, byte [rax]
mov cl, 6
xor cl, 6
cmp al, cl
jne 0x14015059a
mov rdx, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp - 0x68]
mov r8, qword [rbp - 0x70]
mov qword [rdx], r8
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140013ddc
add rsp, 0x20
jmp 0x1401504c2
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x60]
mov rax, qword [0x140263b88]
mov qword [rdx], rax
mov rax, qword [0x140263b90]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140013ddc
add rsp, 0x20
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x68]
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rdx, qword [rcx + 8]
mov qword [rax + 8], rdx
sub rsp, 0x20
call fcn.140010107
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x1401505db
mov rax, qword [rbp - 0x78]
mov rax, qword [rax]
or rax, rax
xor rax, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor rcx, rdx
movabs rdx, 0xcf7817195d6edcc0
movabs r8, 0x8f7817195d6edcc0
xor rdx, r8
movabs r8, 0x37dd5926818e2a47
movabs r9, 0xc822a6d97e71d5b8
xor r8, r9
xor rdx, r8
and rcx, rdx
or rax, rcx
xor rax, 0xffffffffffffffff
movabs rcx, 0xd9364a214d785da9
movabs rdx, 0xd9364a214d785da9
xor rcx, rdx
cmp rax, rcx
jne 0x1401505db
mov rcx, qword [rbp - 0x78]
sub rsp, 0x20
call fcn.14000eec9
add rsp, 0x20
jmp 0x1401505db
sub rsp, 0x20
call fcn.140008c92
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp rax, 0
je 0x1401505db
mov rcx, qword [rbp - 0x80]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x1401505db
mov rcx, qword [rbp - 0x80]
sub rsp, 0x20
call fcn.14000eec9
add rsp, 0x20
mov rax, qword [rbp + 0x70]
lea rsp, [rbp + 0x78]
pop rsi
pop rbp
ret
int 0xa
cld
sti
jmp 0x14014ffe3
invalid