Function at 0x14003caf0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x98
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rcx
call fcn.14003a6eb
mov rdx, qword [rsp + 0x50]
mov rcx, rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x60], rcx
mov r8, qword [rax]
mov qword [rsp + 0x68], r8
mov rcx, qword [rdx]
mov qword [rsp + 0x70], rcx
mov r9, r8
sub r9, rcx
cmovl rcx, r8
add rax, 8
mov qword [rsp + 0x78], rax
add rdx, 8
mov qword [rsp + 0x80], rdx
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x48], rax
cmp rax, rcx
je 0x14003ccfa
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jl 0x14003cbb2
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffff
call fcn.1400122ad
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x14003ce26
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x3e], al
mov dl, 6
xor dl, 0xb9
mov cl, al
and cl, dl
mov dl, al
or dl, 0xbf
add cl, dl
and al, 0x20
mov dl, 0x6f
xor dl, 0x6d
mul dl
mov dl, al
mov al, byte [rsp + 0x3e]
xor al, 0x20
add al, dl
cmp cl, 0x1a
mov byte [rsp + 0x3f], al
jb 0x14003cbff
mov al, byte [rsp + 0x3e]
mov byte [rsp + 0x3f], al
mov rcx, qword [rsp + 0x60]
mov al, byte [rsp + 0x3f]
mov byte [rsp + 0x3d], al
xor eax, eax
cmp byte [rcx], 0
mov qword [rsp + 0x40], rax
jne 0x14003ce26
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
cmp rax, rcx
jl 0x14003cc4e
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffff
call fcn.1400122ad
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x14003ce26
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x80]
mov dl, byte [rsp + 0x3d]
movzx edx, dl
mov qword [rsp + 0x30], rdx
mov rax, qword [rax]
mov dl, byte [rax + rcx + 8]
mov byte [rsp + 0x3b], dl
mov al, 0xde
xor al, 0x61
mov cl, 0x17
xor cl, 0xe8
xor al, cl
mov cl, 0x53
xor cl, 0x53
mov r8b, 0xb3
xor r8b, 0xb2
sub cl, r8b
sub al, cl
mov cl, dl
sub cl, al
mov al, dl
and al, 0x20
or dl, 0x20
add al, dl
cmp cl, 0x1a
mov byte [rsp + 0x3c], al
jb 0x14003ccb0
mov al, byte [rsp + 0x3b]
mov byte [rsp + 0x3c], al
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x3c]
movzx ecx, cl
sub rax, rcx
movabs rcx, 0xd0ace626cad0c07a
movabs rdx, 0xd0ace626cad0c07a
xor rcx, rdx
cmp rax, rcx
mov qword [rsp + 0x40], rax
jne 0x14003ce26
mov rax, qword [rsp + 0x48]
add rax, 1
mov qword [rsp + 0x90], rax
jmp 0x14003cb62
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x68]
mov rcx, rdx
xor rcx, 0xffffffffffffffff
mov rax, r8
add rax, rcx
add rax, 1
mov rcx, rax
xor rcx, r8
cmp rcx, 0
setl cl
mov r9, rax
xor r9, rdx
xor r9, 0xffffffffffffffff
mov r8, rdx
and r8, r9
shl r8, 1
sub r8, rdx
mov rdx, rax
sub rdx, r8
movabs r8, 0x3ce2d9be84cbd7b0
movabs r9, 0xc31d26417b34284f
xor r8, r9
cmp rdx, r8
setg dl
and cl, dl
test cl, 1
mov qword [rsp + 0x40], rax
jne 0x14003cd71
jmp 0x14003ce26
mov eax, dword [0x1401c9be0]
xor eax, 0xd303d246
imul eax, dword [0x1401c9be4]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xaac98d98
mov r8d, 0xffffffff
xor r8d, 0xaac98d98
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xaac98d98
or eax, 0xaac98d98
imul eax, edx
add eax, ecx
add eax, 0x64e6fa10
add eax, 0x4d0bcbf4
cmp eax, 0x717e5710
jbe 0x14003ce33
mov ecx, dword [0x1401c9be8]
mov edx, dword [0x1401c9bec]
mov eax, 0xc42a0a24
xor eax, 0xf3743668
xor edx, eax
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov ecx, 0x1cfd2567
xor ecx, 0xdba66247
or eax, ecx
imul eax, eax, 0x8d2f3ed6
or eax, 0xad9dcb1c
mov dword [rsp + 0x2c], eax
call fcn.140008024
mov eax, dword [rsp + 0x2c]
cmp eax, 0x5098ea6
jbe 0x14003cdca
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x14003ce26
mov rax, qword [rsp + 0x40]
add rsp, 0x98
ret
mov es, ebp
invalid