Function at 0x140187aa0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x38], rcx
mov r12, qword [rcx + 0x10]
mov rax, r12
mov qword [rsp + 0x48], rdx
mov rcx, rdx
mov ecx, edx
jmp 0x140187b04
movzx r11d, r9b
movzx esi, r10b
cmp r9b, r10b
cmova esi, r11d
movzx r9d, sil
movzx r10d, dl
movzx r11d, r8b
mov dh, 0xd8
cmp dl, r8b
cmovb r11d, r10d
movzx edx, r11b
inc edx
add rcx, 2
dec rax
cmp edx, r9d
jae 0x140187b2c
cmp rax, 2
jb 0x140188320
movzx r9d, byte [rcx]
movzx edx, byte [rcx + 1]
movzx r10d, byte [rcx + 2]
movzx r8d, byte [rcx + 3]
cmp r9b, r10b
jb 0x140187ad0
jne 0x140187b2c
cmp dl, r8b
jb 0x140187ad0
movsb byte [rdi], byte [rsi]
cmp r12, 0x15
jae 0x140187b54
cmp r12, 1
jbe 0x1401881e3
mov r8d, 1
mov rcx, qword [rsp + 0x48]
mov rdx, r12
call fcn.14018ccf0
jmp 0x1401881ec
invalid
add byte [rax], al
movabs r15, 0x7ffffffffffffffe
mov rdx, r12
and rdx, r15
movzx eax, byte [0x1404c8501]
xor ecx, ecx
call fcn.140277170
test rax, rax
je 0x140188474
mov rdi, rax
movzx eax, byte [0x1404c8501]
mov edx, 0x100
xor ecx, ecx
call fcn.140277170
test rax, rax
je 0x140188480
mov rbx, rax
mov rax, qword [rsp + 0x48]
lea rcx, [rax + 3]
mov qword [rsp + 0x68], rcx
add rax, 0xfffffffffffffffe
mov qword [rsp + 0x60], rax
mov eax, 0x10
mov qword [rsp + 0x58], rax
xor ebp, ebp
xor r13d, r13d
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x40], r12
jmp 0x140187be4
mov r13d, 1
mov rbp, qword [rsp + 0x30]
cmp rbp, r12
jae 0x1401881b7
mov rax, r12
sub rax, rbp
mov rcx, qword [rsp + 0x48]
lea rcx, [rcx + rbp*2]
cmp rax, 2
jae 0x140187c10
mov r8, rax
lea rdx, [r8 + rbp]
jmp 0x140187db0
movzx edx, byte [rcx + 2]
cmp dl, byte [rcx]
jb 0x140187c25
jne 0x140187c66
movzx r8d, byte [rcx + 1]
cmp byte [rcx + 3], r8b
jae 0x140187c66
mov r8d, 2
cmp rax, 2
jne 0x140187c48
jmp 0x140187cb4
inc r8
cmp rax, r8
je 0x140187cb1
mov r9d, edx
movzx edx, byte [rcx + r8*2]
cmp dl, r9b
jb 0x140187c40
jne 0x140187cb4
movzx r9d, byte [rcx + r8*2 - 1]
cmp byte [rcx + r8*2 + 1], r9b
jb 0x140187c40
jmp 0x140187cb4
mov r8d, 2
cmp rax, 2
jne 0x140187c8c
jmp 0x140187bfc
inc r8
cmp rax, r8
je 0x140187bf9
mov r9d, edx
movzx edx, byte [rcx + r8*2]
cmp dl, r9b
jb 0x140187bfc
jne 0x140187c80
movzx r9d, byte [rcx + r8*2 - 1]
cmp byte [rcx + r8*2 + 1], r9b
jae 0x140187c80
jmp 0x140187bfc
mov r8, rax
mov rdx, r8
add rdx, rbp
jb 0x14018843e
cmp rdx, r12
ja 0x14018842c
cmp r8, 2
jae 0x140187cda
mov r8d, 1
jmp 0x140187db0
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x50], r13
mov r13, rbx
mov rax, r8
shr rax, 1
lea rdx, [rcx + r8*2]
mov r9, r8
and r9, 0xfffffffffffffffe
sub rdx, r9
cmp rax, 1
jne 0x140187d06
xor r9d, r9d
jmp 0x140187d6d
mov r10, rax
and r10, 0xfffffffffffffffe
mov r9, qword [rsp + 0x68]
lea r11, [r9 + rbp*2]
mov r9, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x30]
lea rsi, [r9 + rsi*2]
xor r9d, r9d
nop word [rax + rax]
movzx edi, word [r11 + r9*2 - 3]
movzx ebx, word [rsi]
mov word [r11 + r9*2 - 3], bx
mov word [rsi], di
mov rdi, r9
xor rdi, r15
add rdi, rax
movzx ebx, word [r11 + r9*2 - 1]
movzx r14d, word [rdx + rdi*2]
mov word [r11 + r9*2 - 1], r14w
mov word [rdx + rdi*2], bx
add r9, 2
add rsi, 0xfffffffffffffffc
cmp r10, r9
jne 0x140187d30
test r8b, 2
je 0x140187d90
mov r10, r9
not r10
add rax, r10
movzx r10d, word [rcx + r9*2]
movzx r11d, word [rdx + rax*2]
mov word [rcx + r9*2], r11w
mov word [rdx + rax*2], r10w
mov rdi, qword [rsp + 0x28]
mov rbx, r13
mov r13, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x30]
nop word cs:[rax + rax]
nop word cs:[rax + rax]
mov rsi, rdx
sub rsi, rbp
jb 0x1401883f6
cmp rdx, r12
ja 0x1401883f6
jae 0x140187e10
cmp r8, 0xa
jae 0x140187e10
lea rsi, [rbp + 0xa]
cmp rsi, r12
cmovae rsi, r12
cmp rbp, 0xfffffffffffffff6
jae 0x14018840e
cmp r8, 1
adc r8, 0
mov qword [rsp + 0x30], rsi
sub rsi, rbp
mov rdx, rsi
call fcn.14018ccf0
cmp r13, qword [rsp + 0x58]
and al, 0x58
je 0x140187e1c
jmp 0x140187e76
mov qword [rsp + 0x30], rdx
cmp r13, qword [rsp + 0x58]
jne 0x140187e76
mov rdx, r13
shl rdx, 5
movzx eax, byte [0x1404c8501]
xor ecx, ecx
call fcn.140277170
test rax, rax
je 0x140188420
invalid
mov rdi, rax
lea rax, [r13*2]
mov qword [rsp + 0x58], rax
mov r8, r13
shl r8, 4
mov rcx, rdi
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [0x1404c8458]
cmc
add eax, 0xd2310034
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, rdi
mov rdi, qword [rsp + 0x28]
mov rax, r13
shl rax, 4
mov qword [rbx + rax], rsi
mov qword [rbx + rax + 8], rbp
or byte [rcx - 1], cl
invalid
mov rax, r13
cmp r13, 2
mov qword [rsp + 0x70], rbx
jae 0x140187f12
jmp 0x140187bd6
mov r13, rbx
mov rdx, rdi
mov rbx, qword [rsp + 0x70]
add rbp, rbx
add r14, rbx
sub r8, rdx
mov rcx, r13
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsp + 0x78]
add rax, rsi
mov qword [r14], rax
mov rax, qword [rsp + 0x80]
mov qword [r14 + 8], rax
lea rdx, [rbp + 0x10]
mov rax, qword [rsp + 0x88]
not rax
mov r8, qword [rsp + 0x50]
add r8, rax
shl r8, 4
mov rcx, rbp
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rsp + 0x90]
cmp rax, 1
movabs r15, 0x7ffffffffffffffe
jbe 0x140187bd0
mov r13, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rbx + rcx]
mov rcx, qword [rbx + rcx + 8]
add rcx, rax
cmp rcx, r12
je 0x140187f80
mov rdx, r13
shl rdx, 4
mov r8, qword [rdx + rbx - 0x20]
cmp r8, rax
jbe 0x140187f80
cmp r13, 2
je 0x1401881a1
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbx + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140187f95
cmp r13, 3
jbe 0x1401881ac
add r8, rcx
cmp qword [rdx + rbx - 0x40], r8
jbe 0x140187f95
jmp 0x140187bd6
cmp r13, 2
je 0x140187f9a
lea r11, [r13 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbx + rcx]
cmp rcx, rax
jb 0x140187f9e
lea r11, [r13 - 2]
cmp r13, r11
jbe 0x1401883ad
lea r14, [r11 + 1]
cmp r13, r14
jbe 0x140188343
mov rbp, r11
shl rbp, 4
mov rcx, qword [rbx + rbp + 8]
shl r14, 4
mov rax, qword [rbx + r14]
mov r15, qword [rbx + r14 + 8]
add r15, rax
mov rdi, r15
sub rdi, rcx
jb 0x14018838c
mov qword [rsp + 0x50], r13
cmp r15, r12
ja 0x14018839b
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x88], r11
mov qword [rsp + 0x90], r10
mov rsi, qword [rbx + rbp]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x80], rcx
lea r13, [rax + rcx*2]
lea rbx, [rsi*2]
add rbx, r13
mov r12, rdi
sub r12, rsi
cmp r12, rsi
jae 0x1401880e0
lea r8, [r12 + r12]
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
lea r8, [rdi + r12*2]
test rsi, rsi
jle 0x140188180
test r12, r12
jle 0x140188180
mov rax, qword [rsp + 0x60]
lea rax, [rax + r15*2]
mov r12, qword [rsp + 0x40]
jmp 0x1401880b6
movzx ecx, byte [r8 - 1]
sete dl
cmp cl, byte [rbx - 1]
setb cl
and cl, dl
movzx ecx, cl
sub rbx, rcx
sub rbx, rcx
lea r8, [r8 + rcx*2]
add r8, 0xfffffffffffffffe
test cl, cl
mov rcx, r8
cmovne rcx, rbx
movzx ecx, word [rcx]
mov word [rax], cx
cmp rbx, r13
jbe 0x140187ea0
add rax, 0xfffffffffffffffe
cmp r8, rdi
jbe 0x140187ea0
movzx ecx, byte [rbx - 2]
cmp byte [r8 - 2], cl
jae 0x140188070
add rbx, 0xfffffffffffffffe
mov rcx, rbx
movzx ecx, word [rcx]
mov word [rax], cx
cmp rbx, r13
ja 0x1401880a9
jmp 0x140187ea0
lea r8, [rsi + rsi]
mov r12, qword [rsp + 0x28]
mov rcx, r12
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
lea r8, [r12 + rsi*2]
test rsi, rsi
jle 0x14018818f
cmp rdi, rsi
mov r12, qword [rsp + 0x40]
jle 0x140188185
mov rax, qword [rsp + 0x48]
lea rax, [rax + r15*2]
mov rdi, qword [rsp + 0x28]
mov rdx, rdi
nop dword [rax]
movzx r10d, byte [rdx]
mov cl, 1
mov r9, rbx
cmp byte [rbx], r10b
jb 0x140188147
movzx ecx, byte [rbx + 1]
sete r10b
cmp cl, byte [rdx + 1]
setb cl
mov r9, rbx
and cl, r10b
jne 0x140188147
mov r9, rdx
movzx r9d, word [r9]
mov word [r13], r9w
add r13, 2
mov r9d, ecx
xor r9b, 1
movzx r9d, r9b
lea rdx, [rdx + r9*2]
cmp rdx, r8
jae 0x140187ea6
movzx ecx, cl
lea rbx, [rbx + rcx*2]
cmp rbx, rax
jb 0x140188120
jmp 0x140187ea6
mov r13, rbx
jmp 0x140188194
mov rdi, qword [rsp + 0x28]
jmp 0x140187ea3
mov rdi, qword [rsp + 0x28]
mov rdx, rdi
mov r12, qword [rsp + 0x40]
jmp 0x140187ea6
mov r13d, 2
jmp 0x140187bd6
mov r13d, 3
jmp 0x140187bd6
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, rbx
mov rsi, qword [sym.imp.KERNEL32.dll_HeapFree]
call rsi
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, rdi
call rsi
mov rax, qword [rsp + 0x38]
mov r12, qword [rax + 0x10]
test r12, r12
je 0x14018845c
xor eax, eax
mov rdx, r12
jmp 0x14018821b
mov byte [rcx + rdx*2], bl
mov byte [rcx + rdx*2 + 1], dil
inc rdx
mov qword [r8 + 0x10], rdx
mov rax, rsi
cmp r12, rsi
je 0x1401882f4
lea rsi, [rax + 1]
cmp rdx, r12
jbe 0x140188265
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 8]
movzx r9d, byte [rcx + rdx*2 - 2]
movzx r8d, byte [rcx + rdx*2 - 1]
movzx r11d, byte [rcx + rax*2]
movzx r10d, byte [rcx + rsi*2 - 1]
cmp r9b, r11b
mov edi, r11d
cmova edi, r9d
cmp r8b, r10b
mov ebx, r10d
cmovb ebx, r8d
movzx edi, dil
movzx ebx, bl
inc ebx
cmp ebx, edi
jae 0x1401882b0
cmp rax, rdx
jae 0x140188334
mov r8, qword [rsp + 0x38]
mov rcx, qword [r8 + 8]
movzx ebx, byte [rcx + rax*2]
movzx edi, byte [rcx + rsi*2 - 1]
cmp rdx, qword [r8]
jne 0x140188200
mov rcx, r8
call fcn.14022bd70
mov r8, qword [rsp + 0x38]
mov rcx, qword [r8 + 8]
mov rdx, qword [r8 + 0x10]
jmp 0x140188200
movzx eax, r9b
movzx edi, r11b
cmp r9b, r11b
cmovb edi, eax
movzx eax, r8b
movzx r9d, r10b
cmp r8b, r10b
cmova r9d, eax
cmp dil, r9b
mov eax, r9d
cmova r9d, edi
cmovb eax, edi
mov byte [rcx + rdx*2 - 2], al
mov byte [rcx + rdx*2 - 1], r9b
mov r8, qword [rsp + 0x38]
mov rax, rsi
cmp r12, rsi
jne 0x14018821b
mov rsi, rdx
sub rsi, r12
jb 0x14018844d
mov qword [r8 + 0x10], 0
je 0x140188320
lea rdx, [rcx + r12*2]
lea r8, [rsi + rsi]
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rsp + 0x38]
and al, 0x38
mov qword [rax + 0x10], rsi
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:UsersNico.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_syntax_0.8.2_srchirinterval.rs
mov rcx, rax
call fcn.1402c7670
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
movabs al, byte [0x4800000001000000]
lea eax, [0x14047c0f8]
add byte [rax - 0x77], cl
test byte [rax + rbp*4], ah
add byte [rax], al
add byte [rdi], cl
push rdi
ror byte [rdi], 0x11
test byte [rax + rsi*4], ah
add byte [rax], al
add byte [rax - 0x73], cl
adc eax, 0x2ccc99
lea rcx, [rsp + 0x98]
call fcn.1402c7620
lea r8, [0x140455030]
mov rdx, r15
call fcn.1402c78e0
lea r8, [0x140455030]
mov rcx, r15
mov rdx, r12
call fcn.1402c76e0
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
lea rax, [0x14047c0f8]
mov qword [rsp + 0xa8], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
lea rdx, [0x140455000]
lea rcx, [rsp + 0x98]
call fcn.1402c7620
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, [0x1404550c0]
mov edx, 0x2c
call fcn.1402c76f0
lea r8, [0x1404550d8]
mov rcx, rbp
mov rdx, rsi
call fcn.1402c78e0
lea rcx, [0x140455078]
call fcn.1402c7a40
lea r8, [0x140454fe8]
mov rcx, rdx
mov rdx, r12