Function at 0x1400f5220
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov qword [rsp + 0x130], r9
mov rdi, r8
mov rbp, rcx
mov qword [rsp + 0x20], 2
lea r9, [0x14047b810]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x140], rdx
call fcn.1400c2d20
mov rdx, qword [rsp + 0x100]
mov r8, qword [rsp + 0xb8]
cmp r8, rdx
sete r9b
cmp qword [rsp + 0xb0], 0
mov r13, qword [rsp + 0xf8]
je 0x1400f5551
mov r12, qword [rsp + 0xd8]
mov r11, rdi
cmp r12, rdx
je 0x1400f56b7
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x30], rbp
mov rax, qword [rsp + 0x110]
lea rcx, [rax - 1]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x60], rcx
mov rbp, qword [rsp + 0x108]
mov rbx, qword [rsp + 0xe8]
mov r9, qword [rsp + 0xc8]
mov r10, rax
mov rcx, r9
mov qword [rsp + 0x138], r9
sub r10, r9
mov qword [rsp + 0x120], r10
lea rcx, [r8 - 1]
mov qword [rsp + 0x118], rcx
cmp rcx, rax
setb byte [rsp + 0x2f]
lea rsi, [r12 + r13]
lea rcx, [r8 + rbp]
dec rcx
mov qword [rsp + 0x128], rcx
lea rdi, [r8 + r12]
dec rdi
mov r11, r12
mov rcx, qword [rsp + 0x38]
lea r9, [r12 + rcx]
cmp r9, rdx
jae 0x1400f5655
mov rcx, qword [rsp + 0x138]
add rcx, r11
mov qword [rsp + 0xa8], rcx
lea r12, [r11 + rax]
mov r14, r11
sub r14, r8
inc r14
mov r10, r11
cmp rbx, 0xffffffffffffffff
jne 0x1400f5397
jmp 0x1400f5462
xor ebx, ebx
mov r10, r12
mov rcx, qword [rsp + 0x38]
lea r9, [r10 + rcx]
cmp r9, rdx
jae 0x1400f5655
cmp r11, r10
jne 0x1400f5655
movzx ecx, byte [r13 + r9]
mov r9, qword [rsp + 0x60]
bt r9, rcx
jae 0x1400f5380
cmp r8, rbx
mov rcx, rbx
cmova rcx, r8
mov r9, rcx
nop
cmp r9, rax
jae 0x1400f53f0
mov r10, r9
add r9, r11
cmp r9, rdx
jae 0x1400f5bee
lea r9, [r10 + 1]
movzx r15d, byte [rbp + r10]
cmp r15b, byte [rsi + r10]
je 0x1400f53c0
add r10, r14
xor ebx, ebx
jmp 0x1400f5385
mov r10, r8
nop word cs:[rax + rax]
cmp rbx, r10
jae 0x1400f5440
dec r10
cmp r10, rax
jae 0x1400f553f
lea r9, [r10 + r11]
cmp r9, rdx
jae 0x1400f5bdc
movzx ecx, byte [rbp + r10]
cmp cl, byte [r13 + r9]
je 0x1400f5400
mov rbx, qword [rsp + 0x120]
mov r10, qword [rsp + 0xa8]
jmp 0x1400f5385
xor ebx, ebx
jmp 0x1400f5517
mov r10, qword [rsp + 0xa8]
nop
mov rcx, qword [rsp + 0x38]
lea r9, [r10 + rcx]
cmp r9, rdx
jae 0x1400f5655
cmp r11, r10
jne 0x1400f5655
movzx ecx, byte [r13 + r9]
mov r9, qword [rsp + 0x60]
bt r9, rcx
mov r10, r12
jae 0x1400f5450
mov rcx, r8
nop word cs:[rax + rax]
cmp rcx, rax
jae 0x1400f54c0
mov r10, rcx
add rcx, r11
cmp rcx, rdx
jae 0x1400f5beb
lea rcx, [r10 + 1]
movzx r9d, byte [rbp + r10]
cmp r9b, byte [rsi + r10]
je 0x1400f5490
add r10, r14
jmp 0x1400f5450
test byte [rsp + 0x2f], 1
je 0x1400f552b
mov r9, rdi
mov r10, qword [rsp + 0x128]
mov rbx, r8
nop word cs:[rax + rax]
sub rbx, 1
jb 0x1400f5510
cmp r9, rdx
jae 0x1400f5bdc
movzx ecx, byte [r10]
dec r10
lea r15, [r9 - 1]
cmp cl, byte [r13 + r9]
mov r9, r15
je 0x1400f54e0
jmp 0x1400f5447
mov rbx, 0xffffffffffffffff
add rsi, rax
add rdi, rax
cmp r12, rdx
jne 0x1400f532f
jmp 0x1400f5af4
mov rbx, 0xffffffffffffffff
test r8, r8
je 0x1400f5517
mov r10, qword [rsp + 0x118]
lea r8, str._rustc_c9f8f3438a8134a413aa5d4903e0196e44e37bbclibrarycore_src_strpattern.rs
mov rcx, r10
mov rdx, rax
call fcn.1402c7670
cmp byte [rsp + 0xca], 0
mov r11, rdi
jne 0x1400f56b7
movzx eax, byte [rsp + 0xc8]
test r9b, 1
je 0x1400f55ce
test r8, r8
je 0x1400f568b
cmp r8, rdx
jae 0x1400f56a6
cmp byte [r13 + r8], 0xc0
jl 0x1400f5c23
mov r11, rdi
test al, al
je 0x1400f56b7
nop dword [rax]
xor al, 1
jne 0x1400f55a0
jmp 0x1400f56b4
movzx r10d, byte [r13 + r8]
test r10b, r10b
js 0x1400f55f1
movzx r9d, r10b
mov ecx, eax
xor cl, 1
test al, al
mov eax, ecx
je 0x1400f566e
test r8, r8
je 0x1400f55b0
cmp r8, rdx
jae 0x1400f5c23
movzx r10d, byte [r13 + r8]
cmp r10b, 0xbf
jle 0x1400f5c23
test r10b, r10b
jns 0x1400f55bb
mov ecx, r10d
and cl, 0x1f
movzx r9d, cl
movzx esi, byte [r13 + r8 + 1]
and esi, 0x3f
cmp r10b, 0xe0
jb 0x1400f563d
movzx r11d, byte [r13 + r8 + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp r10b, 0xf0
jb 0x1400f5649
movzx ecx, byte [r13 + r8 + 3]
and r9d, 7
shl r9d, 0x12
shl r11d, 6
and ecx, 0x3f
or ecx, r11d
or r9d, ecx
jmp 0x1400f55bf
shl r9d, 6
or r9d, esi
jmp 0x1400f55bf
shl r9d, 0xc
or r9d, r11d
jmp 0x1400f55bf
mov rbp, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
sub rdi, r11
test dil, 1
jne 0x1400f5b0e
jmp 0x1400f56c4
cmp r9d, 0x110000
cmove r8, rdi
mov r11, r8
sub rdi, r11
test dil, 1
jne 0x1400f5b0e
jmp 0x1400f56c4
mov r11, rdi
test al, al
je 0x1400f56b7
nop word cs:[rax + rax]
xor al, 1
jne 0x1400f56a0
jmp 0x1400f56b4
mov r11, rdi
test al, al
je 0x1400f56b7
nop dword [rax]
xor al, 1
jne 0x1400f56b0
mov r11, rdi
sub rdi, r11
test dil, 1
jne 0x1400f5b0e
mov rax, qword [rsp + 0x140]
add rax, r11
mov dword [rsp + 0x68], 3
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], 2
mov qword [rsp + 0x98], 0
lea rdi, [rsp + 0x68]
mov qword [rsp + 0xa0], rdi
lea r15, [rsp + 0x80]
mov rcx, r15
call fcn.1400f5ca0
test al, 1
je 0x1400f584d
mov ebx, edx
mov rax, qword [rsp + 0xa0]
cmp dword [rax], 3
jne 0x1400f574d
cmp qword [rsp + 0x88], 0
je 0x1400f574d
cmp qword [rsp + 0x90], 0
je 0x1400f5835
movzx eax, byte [0x1404c8501]
mov edx, 8
xor ecx, ecx
call fcn.140277170
test rax, rax
je 0x1400f5c73
mov r13, rax
mov byte [rax], bl
mov qword [rsp + 0x48], 8
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
mov ebx, 1
lea r14, [rsp + 0xb0]
lea r12, [rsp + 0x48]
jmp 0x1400f57fd
mov r8d, 1
mov rcx, r12
mov rdx, rbx
call fcn.1402d61d0
mov r13, qword [rsp + 0x50]
mov edx, esi
nop word cs:[rax + rax]
mov byte [r13 + rbx], dl
inc rbx
mov qword [rsp + 0x58], rbx
mov rcx, r14
call fcn.1400f5ca0
test al, 1
je 0x1400f5869
cmp rbx, qword [rsp + 0x48]
jne 0x1400f57f0
mov esi, edx
mov rax, qword [rsp + 0xd0]
cmp dword [rax], 3
jne 0x1400f57c9
cmp qword [rsp + 0xb8], 0
je 0x1400f57c9
cmp qword [rsp + 0xc0], 0
jne 0x1400f57c9
lea rcx, str.attempt_to_divide_by_zero
lea r8, str._rustc_c9f8f3438a8134a413aa5d4903e0196e44e37bbclibrarycore_src_sliceiter.rs
mov edx, 0x19
call fcn.1402c76f0
cmp dword [rsp + 0x68], 3
jne 0x1400f59ec
mov r14d, 1
xor esi, esi
xor ecx, ecx
xor eax, eax
jmp 0x1400f5b5c
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
cmp dword [rsp + 0x68], 3
jne 0x1400f59f8
movabs rax, 0x8000000000000000
cmp rsi, rax
je 0x1400f5a1c
mov rcx, qword [rsp + 0x130]
cmp rbx, rcx
je 0x1400f5862
mov qword [rsp + 0x30], rbp
lea rbp, [r14 + rbx]
test rbx, rbx
je 0x1400f5bb7
js 0x1400f5c82
movzx eax, byte [0x1404c8501]
xor ecx, ecx
mov rdx, rbx
call fcn.140277170
test rax, rax
je 0x1400f5c66
mov qword [rsp + 0x60], rax
mov rcx, rax
mov rdx, r14
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
movzx edi, byte [r14]
movzx eax, byte [0x1404c8501]
mov edx, 0x20
xor ecx, ecx
call fcn.140277170
test rax, rax
je 0x1400f5c87
mov r15, rax
mov byte [rax], dil
mov qword [rsp + 0xb0], 0x20
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 1
mov r13d, 0x1f
mov edi, 2
mov qword [rsp + 0x38], r14
jmp 0x1400f5976
mov qword [rsp + 0x38], r14
mov rsi, rbx
lea rdx, [rdi - 1]
movzx r12d, byte [r14]
cmp rdx, qword [rsp + 0xb0]
je 0x1400f59cf
dec r13
mov byte [r15 + rdi - 1], r12b
mov qword [rsp + 0xc0], rdi
inc rdi
test r13, r13
je 0x1400f5b80
inc r14
cmp r14, rbp
jne 0x1400f5948
movzx eax, byte [0x1404c8501]
xor ecx, ecx
mov rdx, rbx
call fcn.140277170
test rax, rax
je 0x1400f5c66
mov r14, rax
mov rcx, rax
mov rdx, qword [rsp + 0x60]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rbp, r14
add rbp, rbx
test rsi, rsi
je 0x1400f5940
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400f5940
lea rcx, [rsp + 0xb0]
mov r8, r13
call fcn.1402d61d0
mov r15, qword [rsp + 0xb8]
jmp 0x1400f595a
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
jmp 0x1400f5a19
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
test rsi, rsi
je 0x1400f5a19
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r14, r12
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], 0
test r14d, r14d
je 0x1400f5a5d
cmp r14d, 1
je 0x1400f5b29
lea rdx, [0x1403f982c]
lea rcx, [rsp + 0x48]
mov r8d, 0x15
jmp 0x1400f5b3b
shr r14, 0x20
mov dword [rsp + 0x7c], r14d
mov qword [rsp + 0x68], rbx
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x80], rax
lea rax, [fcn.1400c2610]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rdi
lea rax, [fcn.1400b9cf0]
mov qword [rsp + 0x98], rax
lea rax, str.Invalid_character__at_position
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], 2
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], 2
lea rdx, [0x14040b9a8]
lea rcx, [rsp + 0x48]
lea r8, [rsp + 0xb0]
call fcn.1400ba9c0
jmp 0x1400f5b40
mov rdi, qword [rsp + 0x40]
mov r11, rdi
mov rbp, qword [rsp + 0x30]
sub rdi, r11
test dil, 1
je 0x1400f56c4
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], 0
lea rdx, str.Odd_number_of_digitsInvalid_string_length
lea rcx, [rsp + 0x48]
mov r8d, 0x14
call fcn.1400f5dc0
test al, al
jne 0x1400f5c3a
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov eax, 1
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], rcx
mov qword [rbp], rax
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_HeapFree]
test rsi, rsi
je 0x1400f5c04
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0xc0]
jmp 0x1400f5c09
test rsi, rsi
mov rbp, qword [rsp + 0x30]
je 0x1400f5858
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400f5858
lea r8, str._rustc_c9f8f3438a8134a413aa5d4903e0196e44e37bbclibrarycore_src_strpattern.rs
mov rcx, r9
call fcn.1402c7670
mov rcx, r8
add rcx, r11
cmp rdx, rcx
cmova rcx, rdx
lea r8, str._rustc_c9f8f3438a8134a413aa5d4903e0196e44e37bbclibrarycore_src_strpattern.rs
call fcn.1402c7670
mov ecx, 0x20
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
jmp 0x1400f5862
lea rax, str._rustc_c9f8f3438a8134a413aa5d4903e0196e44e37bbclibrarycore_src_strpattern.rs
mov qword [rsp + 0x20], rax
mov rcx, r13
mov r9, rdx
call fcn.1402c7b90
lea rax, [0x14047c1b0]
mov qword [rsp + 0x20], rax
lea rcx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_c9f8f3438a8134a413aa5d4903e0196e44e37bbclibrary_alloc_src_string.rs
lea r9, [0x14040b9d8]
lea r8, [rsp + 0xb0]
mov edx, 0x37
call fcn.1402c79b0
mov ecx, 1
mov rdx, rbx
call fcn.1402c6f80
mov ecx, 1
mov edx, 8
call fcn.1402c6f80
call fcn.14007b550
mov ecx, 1
mov edx, 0x20
call fcn.1402c6f80
int3