Function at 0x14003c9f0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xb8
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rcx
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x88], rax
mov byte [rsp + 0x96], r9b
mov byte [rsp + 0x97], r8b
mov r8, qword [rdx]
mov qword [rsp + 0x98], r8
mov rax, r8
and rax, 0xffffffffffffffff
mov rcx, r8
or rcx, 0xffffffffffffffff
add rax, rcx
mov qword [rsp + 0xa0], rax
movabs rdx, 0xc04edcb2d7ea861f
movabs rcx, 0x3fb1234d281579e0
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
mov rdx, rax
xor rdx, 0xffffffffffffffff
and rcx, rdx
mov rdx, r8
or rdx, rdx
movabs r9, 0xb46b0f77432aaa1c
movabs r10, 0x4b94f088bcd555e3
xor r9, r10
xor rdx, r9
xor rcx, 0xffffffffffffffff
movabs r9, 0xda0e5ee086769fcd
movabs r10, 0x25f1a11f79896032
xor r9, r10
xor rdx, r9
and rcx, rdx
mov rdx, rax
or rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x6b5357a0b36d3392
movabs r9, 0x94aca85f4c92cc6d
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x779ea0a2e06e8281
movabs r8, 0x779ea0a2e06e8281
xor rdx, r8
cmp rcx, rdx
setl dl
cmp rax, 0xffffffffffffffff
setg cl
xor dl, 0xff
mov al, cl
xor al, dl
and al, cl
test al, 1
jne 0x14003cb1a
jmp 0x14003cb24
call fcn.140009cc0
jmp 0x14003ceab
mov cl, byte [rsp + 0x97]
xor eax, eax
test cl, 1
mov qword [rsp + 0x68], rax
jne 0x14003cb40
jmp 0x14003cc2a
mov rax, qword [rsp + 0x70]
add rax, 8
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x50], rax
cmp rax, rcx
mov qword [rsp + 0x68], rax
jg 0x14003cc2a
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x98]
cmp rax, rcx
jl 0x14003cba2
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x50]
call fcn.140013c92
jmp 0x14003ceab
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx]
mov r8b, byte [rdx + rax + 8]
mov dl, r8b
shr dl, 3
movzx edx, dl
movzx edx, byte [rcx + rdx]
mov cl, r8b
xor cl, 0xff
mov r9b, 0xff
xor r9b, 7
or cl, r9b
mov r9b, 0x5e
xor r9b, 0xa1
xor r8b, r9b
mov r9b, 0xff
xor r9b, 7
or r8b, r9b
and cl, r8b
xor cl, 0xff
movzx ecx, cl
mov r8d, 1
shl r8d, cl
mov ecx, r8d
and ecx, edx
cmp ecx, 0
mov qword [rsp + 0x68], rax
je 0x14003cc2a
mov rax, qword [rsp + 0x50]
xor ecx, ecx
sub rcx, 1
sub rax, rcx
mov qword [rsp + 0x60], rax
jmp 0x14003cb55
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov eax, dword [0x1401f4c70]
mov ecx, 0x989d2b88
xor ecx, 0x48ad004e
xor eax, ecx
mov ecx, dword [0x1401f4c74]
xor ecx, 0x2ce01e23
sub eax, ecx
mov ecx, 0xd3e27c01
xor ecx, 0xbf3f6512
xor edx, edx
div ecx
imul eax, eax, 0x8b8d041
mov edx, eax
xor edx, 0xffffffff
and edx, 0x931a2154
mov r8d, 0xffffffff
xor r8d, 0x931a2154
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x931a2154
or eax, 0x931a2154
imul eax, edx
add eax, ecx
cmp eax, 0x7dff08bf
ja 0x14003cebb
mov eax, dword [0x1401f4c78]
xor eax, 0x3a35c559
mov ecx, dword [0x1401f4c7c]
xor ecx, 0x4219d879
imul eax, ecx
sub eax, 0x993c4c11
mov ecx, 0xdcc68b8d
xor ecx, 0xe4fcc4aa
imul eax, ecx
add eax, 0x85109979
mov ecx, 0x8df0df29
xor ecx, 0xd6054ba9
cmp eax, ecx
jae 0x14003cca7
mov rax, qword [rsp + 0xa0]
mov cl, byte [rsp + 0x96]
test cl, 1
mov qword [rsp + 0x40], rax
jne 0x14003cd0e
jmp 0x14003ce73
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
add rcx, 8
mov qword [rsp + 0x28], rcx
add rdx, 0xffffffffffffffff
mov rcx, rdx
sub rcx, rax
mov rcx, rax
cmovl rcx, rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rdx
cmp rcx, rdx
mov qword [rsp + 0x40], rax
jg 0x14003ce73
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x98]
cmp rax, rcx
jl 0x14003cd93
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x20]
call fcn.140013c92
jmp 0x14003ceab
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
mov cl, byte [rcx + rax + 8]
mov r8b, cl
shr r8b, 3
movzx r8d, r8b
movzx r8d, byte [rdx + r8]
mov dl, 0x87
xor dl, 0x80
and cl, dl
movzx ecx, cl
mov edx, 1
shl edx, cl
xor r8d, 0xffffffff
mov ecx, edx
xor ecx, r8d
and ecx, edx
cmp ecx, 0
mov qword [rsp + 0x40], rax
je 0x14003ce73
mov rcx, qword [rsp + 0x20]
mov rax, rcx
and rax, 0xffffffffffffffff
mov rdx, rcx
or rdx, 0xffffffffffffffff
add rax, rdx
mov r8, rax
xor r8, 0xffffffffffffffff
mov rdx, rcx
and rdx, r8
mov r9, rcx
xor r9, 0xffffffffffffffff
mov r8, rax
and r8, r9
or rdx, r8
cmp rdx, 0
setl r8b
cmp rcx, 0
setg dl
xor ecx, ecx
mov r9b, cl
xor r9b, 1
mov cl, dl
xor cl, r9b
mov r9b, r8b
xor r9b, 0xff
or cl, r9b
xor r9d, r9d
xor r9b, 1
xor dl, r9b
xor r8b, 0xff
or dl, r8b
and cl, dl
xor cl, 0xff
test cl, 1
mov qword [rsp + 0x38], rax
jne 0x14003ce69
jmp 0x14003cd44
call fcn.140009cc0
jmp 0x14003ceab
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
mov r9, qword [rsp + 0x40]
mov rdx, qword [rax]
mov qword [rsp + 0xa8], rdx
mov rax, qword [rax + 8]
mov qword [rsp + 0xb0], rax
lea rdx, [rsp + 0xa8]
call fcn.14001a0a0
mov rax, qword [rsp + 0x80]
add rsp, 0xb8
ret
retf