Function at 0x4aa830
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x20], 1
lea r9, [0x0053248a]
lea rcx, [rsp + 0x70]
mov rdx, rbx
mov r8, rdi
call fcn.0042d1f0
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x98]
cmp rdx, r8
sete r10b
cmp qword [rsp + 0x90], 0
je 0x4aab20
mov r11, qword [rsp + 0xb8]
mov r9, rdi
cmp r11, rdx
je 0x4aac77
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rdi
mov rax, qword [rsp + 0x88]
lea r9, [rax - 1]
mov qword [rsp + 0x48], r9
mov r14, qword [rsp + 0x80]
mov r9, qword [rsp + 0xb0]
mov qword [rsp + 0x50], r9
mov r15, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xa8]
mov rsi, rax
mov r9, r10
mov qword [rsp + 0x60], r10
sub rsi, r10
mov qword [rsp + 0x58], rsi
lea rbp, [r8 - 1]
mov rdi, r11
sub rdi, r8
lea r13, [rcx + r11]
lea r9, [r14 + r8]
mov qword [rsp + 0x68], r9
lea r12, [rcx + r8]
lea r9, [r11 + rax]
dec r9
cmp r9, rdx
jae 0x4aac2b
lea r10, [r11 + rax]
mov qword [rsp + 0x38], r10
mov r10, qword [rsp + 0x60]
add r10, r11
mov qword [rsp + 0x40], r10
cmp r15, 0xffffffffffffffff
je 0x4aaa20
mov r10, r11
jmp 0x4aa969
xor r15d, r15d
mov r10, qword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
add r9, r10
cmp r9, rdx
jae 0x4aac2b
cmp r11, r10
jne 0x4aac2b
movzx r9d, byte [rcx + r9]
mov r10, qword [rsp + 0x50]
bt r10, r9
jae 0x4aa950
cmp r8, r15
mov r9, r15
cmova r9, r8
mov rbx, r9
nop
cmp rbx, rax
jae 0x4aa9c0
lea r10, [r11 + rbx]
cmp r10, rdx
jae 0x4aade3
lea r10, [rbx + 1]
movzx esi, byte [r14 + rbx]
cmp sil, byte [r13 + rbx]
mov rbx, r10
je 0x4aa990
add r10, rdi
xor r15d, r15d
jmp 0x4aa958
mov r9, r8
nop word cs:[rax + rax]
cmp r15, r9
jae 0x4aaa10
dec r9
cmp r9, rax
jae 0x4aadbb
lea r10, [r9 + r11]
cmp r10, rdx
jae 0x4aadcf
movzx ebx, byte [r14 + r9]
cmp bl, byte [rcx + r10]
je 0x4aa9d0
mov r15, qword [rsp + 0x58]
mov r10, qword [rsp + 0x40]
jmp 0x4aa958
xor r15d, r15d
jmp 0x4aaaf7
mov rbx, r11
jmp 0x4aaa41
mov r9, qword [rsp + 0x48]
add r9, rbx
cmp r9, rdx
jae 0x4aac2b
cmp r11, rbx
jne 0x4aac2b
movzx r9d, byte [rcx + r9]
mov r10, qword [rsp + 0x50]
bt r10, r9
mov rbx, qword [rsp + 0x38]
jae 0x4aaa30
xor r9d, r9d
mov r15, r11
mov r10, qword [rsp + 0x68]
nop word [rax + rax]
lea rbx, [r8 + r9]
cmp rbx, rax
jae 0x4aaaa0
lea rbx, [r8 + r15]
cmp rbx, rdx
jae 0x4aade0
movzx esi, byte [r10]
inc r10
lea rbx, [r15 + 1]
inc r9
cmp sil, byte [r12 + r15]
mov r15, rbx
je 0x4aaa70
jmp 0x4aaa30
mov r9, rbp
nop word cs:[rax + rax]
cmp r9, 0xffffffffffffffff
je 0x4aaaf0
cmp rbp, rax
jae 0x4aadbb
lea r10, [r11 + r9]
cmp r10, rdx
jae 0x4aadcf
movzx r10d, byte [r14 + r9]
lea rbx, [r9 - 1]
cmp r10b, byte [r13 + r9]
mov r9, rbx
je 0x4aaab0
mov rbx, qword [rsp + 0x40]
jmp 0x4aaa30
mov r15, 0xffffffffffffffff
add rdi, rax
add r13, rax
mov r9, qword [rsp + 0x38]
mov r11, r9
cmp r9, rdx
jne 0x4aa913
mov rdi, qword [rsp + 0x30]
mov r9, rdi
mov rbx, qword [rsp + 0x28]
jmp 0x4aac77
cmp byte [rsp + 0xaa], 0
mov r9, rdi
jne 0x4aac77
movzx eax, byte [rsp + 0xa8]
test r10b, 1
je 0x4aaba0
test r8, r8
je 0x4aac4a
cmp rdx, r8
jbe 0x4aac66
cmp byte [rcx + r8], 0xc0
jl 0x4aae18
mov r9, rdi
test al, al
je 0x4aac77
nop word [rax + rax]
xor al, 1
jne 0x4aab70
jmp 0x4aac74
movzx r10d, byte [rcx + r8]
test r10b, r10b
js 0x4aabc2
movzx r9d, r10b
mov r10d, eax
xor r10b, 1
test al, al
mov eax, r10d
je 0x4aac3a
test r8, r8
je 0x4aab80
cmp rdx, r8
jbe 0x4aae18
movzx r10d, byte [rcx + r8]
cmp r10b, 0xbf
jle 0x4aae18
test r10b, r10b
jns 0x4aab8a
mov r9d, r10d
and r9b, 0x1f
movzx r9d, r9b
movzx esi, byte [rcx + r8 + 1]
and esi, 0x3f
cmp r10b, 0xe0
jb 0x4aac13
movzx r11d, byte [rcx + r8 + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp r10b, 0xf0
jb 0x4aac1f
movzx r10d, byte [rcx + r8 + 3]
and r9d, 7
shl r9d, 0x12
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
or r9d, r10d
jmp 0x4aab8e
shl r9d, 6
or r9d, esi
jmp 0x4aab8e
shl r9d, 0xc
or r9d, r11d
jmp 0x4aab8e
mov r9, r11
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
jmp 0x4aac77
cmp r9d, 0x110000
cmove r8, rdi
mov r9, r8
jmp 0x4aac77
mov r9, rdi
test al, al
je 0x4aac77
nop word cs:[rax + rax]
xor al, 1
jne 0x4aac60
jmp 0x4aac74
mov r9, rdi
test al, al
je 0x4aac77
nop dword [rax]
xor al, 1
jne 0x4aac70
mov r9, rdi
mov rax, rdi
sub rax, r9
cmp rax, 0x10
jbe 0x4aac87
xor eax, eax
jmp 0x4aac93
mov eax, 1
cmp r9, rdi
jne 0x4aaca7
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add rdi, rbx
add r9, rbx
xor edx, edx
mov ecx, 0xffffffff
jmp 0x4aacef
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, ecx
mov r10d, r8d
cmp r8d, 0x10
jae 0x4aadfe
mov r8, rdx
shl r8, 4
mov edx, r10d
or rdx, r8
cmp r9, rdi
je 0x4aac93
movzx r8d, byte [r9]
test r8b, r8b
js 0x4aad10
inc r9
lea r10d, [r8 - 0x30]
cmp r10d, 0xa
jb 0x4aacdd
jmp 0x4aacc0
mov r10d, r8d
and r10d, 0x1f
movzx esi, byte [r9 + 1]
and esi, 0x3f
cmp r8b, 0xdf
jbe 0x4aad79
movzx r11d, byte [r9 + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp r8b, 0xf0
jb 0x4aad9a
movzx r8d, byte [r9 + 3]
and r10d, 7
shl r10d, 0x12
shl r11d, 6
and r8d, 0x3f
or r8d, r11d
or r8d, r10d
cmp r8d, 0x110000
je 0x4aac93
add r9, 4
lea r10d, [r8 - 0x30]
cmp r10d, 0xa
jb 0x4aacdd
jmp 0x4aacc0
add r9, 2
shl r10d, 6
or r10d, esi
mov r8d, r10d
lea r10d, [r8 - 0x30]
cmp r10d, 0xa
jae 0x4aacc0
jmp 0x4aacdd
add r9, 3
shl r10d, 0xc
or r11d, r10d
mov r8d, r11d
lea r10d, [r8 - 0x30]
cmp r10d, 0xa
jb 0x4aacdd
jmp 0x4aacc0
lea r8, str._repos_rust_1.70.0_library_core_src_str_pattern.rs
mov rcx, r9
mov rdx, rax
call fcn.0042fd90
ud2
lea r8, str._repos_rust_1.70.0_library_core_src_str_pattern.rs
mov rcx, r10
call fcn.0042fd90
ud2
mov r9, r8
add r9, r11
cmp rdx, r9
cmova r9, rdx
lea r8, str._repos_rust_1.70.0_library_core_src_str_pattern.rs
mov rcx, r9
call fcn.0042fd90
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, [0x00532490]
mov edx, 0x2b
call fcn.0042fe50
ud2
lea rax, str._repos_rust_1.70.0_library_core_src_str_pattern.rs
mov qword [rsp + 0x20], rax
mov r9, rdx
call fcn.0042f750
ud2