Function at 0x14004caf0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xb0
lea rbp, [rsp + 0x80]
mov qword [rbp], rdx
mov qword [rbp + 8], rcx
mov qword [rbp + 0x10], rcx
mov eax, 0x10
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x18], rax
mov rcx, qword [rdx]
lea rdx, [rbp + 0x28]
sub rsp, 0x20
call fcn.14004d0b0
add rsp, 0x20
test al, 1
jne 0x14004cb41
jmp 0x14004cb53
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
jmp 0x14004d086
mov rax, qword [rbp + 0x28]
mov qword [rbp - 8], rax
cmp rax, 0
jge 0x14004cba9
mov rcx, qword [rbp - 8]
movabs rdx, 0xd527cc2b29b91a6f
movabs rax, 0xd527cc2b29b91a6f
xor rdx, rax
movabs r8, 0xa9b7df2bbdaecbb4
movabs rax, 0xd64820d44251344b
xor r8, rax
sub rsp, 0x20
call fcn.14000e6db
add rsp, 0x20
jmp 0x14004d086
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 8]
sub rsp, 0x20
call fcn.14001c510
mov rdx, qword [rbp]
mov rax, qword [rbp + 8]
add rsp, 0x20
mov rcx, qword [rdx]
add rdx, 8
mov qword [rbp - 0x28], rdx
add rax, 8
mov qword [rbp - 0x20], rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rbp - 0x18], rax
xor eax, eax
mov qword [rbp - 0x10], rax
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x30], rax
cmp rax, rcx
je 0x14004cfb7
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp]
mov rcx, qword [rcx]
mov qword [rbp - 0x38], rcx
cmp rax, rcx
jl 0x14004cc5b
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x38]
movabs rax, 0xa6d83c4b957c4dda
movabs r8, 0xa6d83c4b957c4dda
xor rax, r8
sub rax, rdx
xor edx, edx
sub rdx, 0xffffffffffffffff
add rax, rdx
xor edx, edx
sub rdx, rax
sub rsp, 0x20
call fcn.1400153d3
add rsp, 0x20
jmp 0x14004cfb7
mov rdx, qword [rbp + 0x18]
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
movzx eax, byte [rax + rcx + 8]
mov qword [rbp - 0x40], rax
sub rsp, 0x20
call fcn.14004d0b0
add rsp, 0x20
test al, 1
jne 0x14004cc8d
jmp 0x14004cd59
mov eax, dword [0x140218650]
sub eax, dword [0x140218654]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x6c80f1fb
xor edx, 0x1dc056be
mov r8d, 0xd808b17c
xor r8d, 0x27f74e83
xor edx, r8d
or ecx, edx
mov edx, 0x40febe3e
xor edx, 0xbf0141c1
xor eax, edx
mov edx, 0xffffffff
xor edx, 0x7140a745
or eax, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov edx, 0x135b34ad
xor edx, 0x778493c5
mov eax, ecx
and eax, edx
or ecx, 0x64dfa768
add eax, ecx
imul eax, eax, 0x78edad36
cmp eax, 0xadd3405c
jae 0x14004d090
mov eax, dword [0x140218658]
add eax, dword [0x14021865c]
and eax, 0x4b31306f
mov ecx, 0xb7d7554
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, 0x431b2bdd
add eax, ecx
mov dword [rbp - 0x44], eax
mov eax, 0xd1aa0c30
xor eax, 0x2eb20229
mov dword [rbp - 0x48], eax
sub rsp, 0x20
call fcn.140008bc6
mov ecx, dword [rbp - 0x48]
mov eax, dword [rbp - 0x44]
add rsp, 0x20
cmp eax, ecx
ja 0x14004cd05
jmp 0x14004cfb7
mov rax, qword [rbp + 0x18]
mov rdx, qword [rax]
xor eax, eax
sub rax, rdx
xor ecx, ecx
sub rcx, 1
add rax, rcx
movabs rcx, 0xe977c1ea4a0fece6
movabs r8, 0xe977c1ea4a0fece6
xor rcx, r8
sub rcx, rax
mov qword [rbp - 0x50], rcx
xor rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, rdx
and rax, rcx
movabs rcx, 0xda272cf0c2ecdfdc
movabs rdx, 0xda272cf0c2ecdfdc
xor rcx, rdx
cmp rax, rcx
jge 0x14004cdcf
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
jmp 0x14004cfb7
mov eax, dword [0x140218660]
mov ecx, 0x995bee40
xor ecx, 0x84f35cbd
xor eax, ecx
sub eax, dword [0x140218664]
sub eax, 0xe747c69d
mov ecx, 0x59c68c64
xor ecx, 0xd344da06
add eax, ecx
mov ecx, 0xa9d572f6
xor ecx, 0x5bbfa08a
xor eax, ecx
cmp eax, 0x2e061ae5
jbe 0x14004d099
mov rdx, qword [rbp - 0x50]
mov r8, qword [rbp + 8]
mov ecx, dword [0x140218668]
xor ecx, 0x7b684705
mov eax, dword [0x14021866c]
and ecx, eax
add ecx, 0x1f5b1f7a
mov eax, ecx
not eax
or eax, 0x9142074
and eax, 0x4dd4237c
and ecx, 0x80235c03
or eax, ecx
test rdx, rdx
setns cl
mov r8, qword [r8]
mov qword [rbp - 0x60], r8
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp - 0x51], cl
cmp eax, 0x904a0607
jbe 0x14004d099
mov al, byte [rbp - 0x51]
test al, 1
jne 0x14004cec2
jmp 0x14004ce7d
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x60]
movabs rax, 0x6f0041e860e76787
movabs r8, 0xf253a0b03529710a
xor rax, r8
sub rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x9d53e15855ce168d
add rdx, rax
sub rsp, 0x20
call fcn.1400153d3
add rsp, 0x20
jmp 0x14004cfb7
mov rcx, qword [rbp + 8]
sub rsp, 0x20
call fcn.140045565
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x50]
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x30]
add rsp, 0x20
movabs r10, 0x537fccdd0ccda7f8
movabs r9, 0x537fccdd0ccda7f9
xor r10, r9
mov r9, rax
add r9, r10
movabs r11, 0x6703f332fc3c0ba0
movabs r10, 0x98fc0ccd03c3f45f
xor r11, r10
mov r10, rax
xor r10, r11
or r10, 0xf
add r10, r9
lea r9, [0x140226b60]
mov r9b, byte [r9 + r10 + 8]
mov rdx, qword [rdx]
mov byte [rdx + r8 + 8], r9b
shr rax, 4
mov qword [rbp - 0x68], rax
lea rdx, [rbp + 0x20]
sub rsp, 0x20
call fcn.14004d0b0
add rsp, 0x20
test al, 1
jne 0x14004cf5e
jmp 0x14004cf70
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
jmp 0x14004cfb7
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp + 0x20]
mov qword [rbp - 0x78], rcx
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x70], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14004d031
mov rcx, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x70]
xor eax, eax
sub rax, 0xffffffffffffffff
sub rdx, rax
sub rsp, 0x20
call fcn.1400153d3
add rsp, 0x20
mov eax, dword [0x140218670]
mov ecx, 0xa94d985f
xor ecx, 0x3e6fcecf
xor eax, ecx
mov ecx, dword [0x140218674]
mov edx, 0x7d91a967
xor edx, 0xff8beb51
xor ecx, edx
sub eax, ecx
sub eax, 0xc1cce155
and eax, 0x8f87a00e
mov ecx, 0xc7e3ca24
xor ecx, 0x4717ea3a
sub eax, ecx
cmp eax, 0xc569dec8
jae 0x14004d0a2
mov eax, dword [0x140218678]
xor eax, 0xaa54e63b
add eax, dword [0x14021867c]
sub eax, 0x4cbb4ee
or eax, 0x6884a6a8
add eax, 0xaee3b50b
cmp eax, 0x70e217e2
jbe 0x14004d001
jmp 0x14004d086
mov rcx, qword [rbp + 8]
sub rsp, 0x20
call fcn.140045565
mov r9, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x78]
mov rax, qword [rbp - 0x30]
add rsp, 0x20
lea r8, [0x140226b60]
mov r8b, byte [r8 + r9 + 8]
mov rcx, qword [rcx]
mov byte [rcx + rdx + 8], r8b
mov rcx, 0xffffffffffffffff
xor rcx, 1
xor edx, edx
sub rdx, 1
sub rcx, rdx
sub rax, rcx
mov qword [rbp - 0x10], rax
jmp 0x14004cbec
mov rax, qword [rbp + 0x10]
lea rsp, [rbp + 0x30]
pop rbp
ret
pop rsi
pushfq
cdq
mov dh, 0xe9
insb byte [rdi], dx
cld
invalid
out dx, eax
push 0x70e9d537
std
invalid
retf