Function at 0x140003360
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rax, r8
mov r8, rdx
mov rdi, rcx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x40]
mov rdx, rdi
mov r9, rax
call sym.core::str::pattern::StrSearcher::new::h4799ecfec709ec57
mov r9, qword [rsp + 0x50]
cmp qword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x90]
je 0x140003570
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x14000357b
mov r14, qword [rsp + 0x60]
mov r15, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
cmp qword [rsp + 0x78], 0xffffffffffffffff
mov r8, qword [rsp + 0x58]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rdi
je 0x140003583
mov r12, qword [rsp + 0x80]
mov r13, r9
neg r13
mov r11, rbx
sub r11, rax
cmp r11, rdx
jae 0x140003764
mov rbp, rbx
sub rbp, qword [rsp + 0x30]
lea r8, [rbx + r13]
mov qword [rsp + 0x38], r8
mov r10, rbx
cmp rbx, r10
jne 0x140003699
movzx r8d, byte [rcx + r11]
bt r14, r8
jae 0x1400034a0
mov r10, r11
cmp r9, r12
mov r11, r12
cmovb r11, r9
dec r11
lea rsi, [rcx + r10]
nop dword [rax]
cmp r11, 0xffffffffffffffff
je 0x1400034f0
cmp r11, rax
jae 0x140003803
lea rdi, [r10 + r11]
cmp rdi, rdx
jae 0x140003781
movzx r8d, byte [r15 + r11]
lea rdi, [r11 - 1]
cmp r8b, byte [rsi + r11]
mov r11, rdi
je 0x140003450
mov r8, qword [rsp + 0x38]
lea r10, [r8 + rdi]
inc r10
mov r12, rax
jmp 0x140003535
mov r10, r11
sub r10, rax
cmp r10, rdx
jae 0x140003699
mov rsi, rbx
sub rsi, r11
nop word cs:[rax + rax]
test rsi, rsi
jne 0x140003699
movzx r8d, byte [rcx + r10]
bt r14, r8
jb 0x140003549
sub r10, rax
add rsi, rax
cmp r10, rdx
jb 0x1400034c0
jmp 0x140003699
mov r11, r9
nop word cs:[rax + rax]
cmp r11, r12
jae 0x140003551
cmp r11, rax
jae 0x140003792
lea r8, [r10 + r11]
cmp r8, rdx
jae 0x1400037ad
movzx r8d, byte [r15 + r11]
lea rdi, [r11 + 1]
cmp r8b, byte [rsi + r11]
mov r11, rdi
je 0x140003500
mov r10, rbp
mov r12, qword [rsp + 0x30]
mov r11, r10
sub r11, rax
cmp r11, rdx
jb 0x140003421
jmp 0x140003699
mov r12, rax
jmp 0x140003438
mov r12, rax
mov rbx, r10
test r10, r10
mov rdi, qword [rsp + 0x28]
mov r8d, 0
jne 0x1400033fe
jmp 0x140003767
cmp byte [rsp + 0x5a], 0
je 0x1400036a6
xor r8d, r8d
jmp 0x140003767
lea r11, [r9 - 1]
cmp r11, rax
jae 0x1400037c8
lea r8, [r15 + r11]
mov qword [rsp + 0x38], r8
mov r13, rbx
jmp 0x1400035b7
mov rbx, r13
test r13, r13
mov rdi, qword [rsp + 0x28]
mov r8d, 0
je 0x140003767
sub r13, rax
cmp r13, rdx
jae 0x140003764
mov rbp, rbx
sub rbp, qword [rsp + 0x30]
mov rsi, rbx
jmp 0x1400035e5
mov rsi, r13
mov r8, r13
sub r8, rax
mov r13, r8
cmp r8, rdx
jae 0x140003699
cmp rbx, rsi
jne 0x140003699
movzx r10d, byte [rcx + r13]
bt r14, r10
jae 0x1400035d0
lea rdi, [r11 + r13]
mov rsi, qword [rsp + 0x38]
xor r10d, r10d
nop word cs:[rax + rax]
cmp r9, r10
je 0x140003650
cmp rdi, rdx
jae 0x140003781
movzx r8d, byte [rsi]
inc r10
dec rsi
lea r12, [rdi - 1]
cmp r8b, byte [rcx + rdi]
mov rdi, r12
je 0x140003610
mov rsi, rbx
sub rsi, r10
mov r13, rsi
sub r13, rax
cmp r13, rdx
jb 0x1400035e5
jmp 0x140003699
lea r10, [r9 + r13]
mov rsi, r9
nop word [rax + rax]
cmp rax, rsi
je 0x1400035a0
cmp r10, rdx
jae 0x1400037b7
movzx r8d, byte [r15 + rsi]
inc rsi
lea rdi, [r10 + 1]
cmp r8b, byte [rcx + r10]
mov r10, rdi
je 0x140003660
mov rsi, rbp
mov r13, rsi
sub r13, rax
cmp r13, rdx
jb 0x1400035e5
mov r8, rbx
mov rdi, qword [rsp + 0x28]
jmp 0x140003767
movzx eax, byte [rsp + 0x59]
test r9, r9
jne 0x1400036e6
xor r8d, r8d
test al, al
je 0x140003767
nop dword [rax + rax]
xor al, 1
jne 0x1400036c0
jmp 0x140003767
and r10d, 0x1f
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
mov r10d, eax
xor r10b, 1
test al, al
mov eax, r10d
je 0x140003752
cmp r9, rdx
jae 0x140003700
cmp byte [rcx + r9], 0xc0
jge 0x140003706
jmp 0x140003912
jne 0x140003912
movzx r8d, byte [rcx + r9 - 1]
test r8b, r8b
jns 0x1400036d8
movzx r10d, byte [rcx + r9 - 2]
cmp r10b, 0xbf
jg 0x1400036c9
movzx r11d, byte [rcx + r9 - 3]
cmp r11b, 0xbf
jg 0x14000373e
movzx esi, byte [rcx + r9 - 4]
and esi, 7
shl esi, 6
and r11d, 0x3f
or r11d, esi
jmp 0x140003742
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x1400036cd
xor eax, eax
cmp r8d, 0x110000
cmove r9, rax
mov r8, r9
jmp 0x140003767
mov r8, rbx
mov rax, rdi
mov rdx, r8
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1400c1378]
mov rcx, rdi
call dbg.panic_bounds_check
ud2
cmp r9, rax
mov rcx, rax
cmova rcx, r9
lea r8, [0x1400c1330]
mov rdx, rax
call dbg.panic_bounds_check
ud2
add r10, r9
cmp rdx, r10
cmova r10, rdx
lea r8, [0x1400c1348]
mov rcx, r10
call dbg.panic_bounds_check
ud2
test r9, r9
je 0x140003817
mov r8, rbx
sub r8, rax
cmp r8, rdx
jae 0x140003699
xor r9d, r9d
test r9, r9
jne 0x140003699
movzx r10d, byte [rcx + r8]
bt r14, r10
jb 0x140003803
sub r8, rax
add r9, rax
cmp r8, rdx
jb 0x1400037df
jmp 0x140003699
lea r8, [0x1400c1360]
mov rcx, r11
mov rdx, rax
call dbg.panic_bounds_check
ud2
mov r9, rbx
sub r9, rax
cmp r9, rdx
jae 0x140003699
mov r11, rbx
sub r11, qword [rsp + 0x30]
mov rdi, r11
sub rdi, rax
cmp rdi, rdx
jae 0x140003897
mov r10, rbx
cmp rbx, r10
jne 0x140003699
movzx r8d, byte [rcx + r9]
mov r10, r9
bt r14, r8
jae 0x140003884
xor esi, esi
cmp rax, rsi
je 0x1400038f6
cmp r10, rdx
jae 0x1400037b7
movzx r8d, byte [r15 + rsi]
inc rsi
lea r12, [r10 + 1]
cmp r8b, byte [rcx + r10]
mov r10, r12
je 0x140003855
mov r10, r11
mov r9, rdi
jmp 0x14000383c
mov r8, r9
sub r8, rax
mov r9, r8
cmp r8, rdx
jb 0x14000383c
jmp 0x140003699
lea r11, [rcx + r9]
mov r10, r9
xor esi, esi
test rsi, rsi
jne 0x140003699
movzx r8d, byte [r11 + rsi]
bt r14, r8
jb 0x1400038c8
sub rsi, rax
lea r8, [r9 + rsi]
sub r10, rax
cmp r8, rdx
jb 0x1400038a0
jmp 0x140003699
add r9, rsi
xor r11d, r11d
cmp rax, r11
je 0x1400038f6
cmp r10, rdx
jae 0x1400037b7
movzx r8d, byte [r15 + r11]
inc r11
lea rsi, [r10 + 1]
cmp r8b, byte [rcx + r10]
mov r10, rsi
je 0x1400038ce
jmp 0x140003699
mov rbx, r9
test r9, r9
mov rdi, qword [rsp + 0x28]
mov r8d, 0
jne 0x14000381a
jmp 0x140003767
lea rax, [0x1400c1390]
mov qword [rsp + 0x20], rax
xor r8d, r8d
call dbg.slice_error_fail
ud2