Function at 0x140001340
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x208
movaps xmmword [rsp + 0x1f0], xmm7
movaps xmmword [rsp + 0x1e0], xmm6
mov rdi, r8
mov r14, rdx
mov rsi, rcx
mov r15, qword [rcx + 0x2d0]
mov ebx, 0x10
sub rbx, r15
cmp rbx, r8
jbe 0x1400013b6
mov rax, r15
add rax, rdi
jb 0x140001d7c
cmp rax, 0x10
ja 0x140001d90
test rdi, rdi
je 0x1400014ca
lea rax, [rsi + 0x2c0]
add rax, r15
cmp rdi, 8
jae 0x1400013eb
xor ecx, ecx
jmp 0x1400014a0
movaps xmm0, xmmword [rsi + 0x2c0]
movaps xmmword [rsp + 0x20], xmm0
cmp r15, 0x11
jae 0x140001da6
cmp r15, 0x10
je 0x140001590
lea rax, [rsp + r15]
add rax, 0x20
cmp rbx, 8
jae 0x1400013f5
xor ecx, ecx
jmp 0x140001570
cmp rdi, 0x20
jae 0x140001406
xor ecx, ecx
jmp 0x140001466
cmp rbx, 0x20
jae 0x1400014d6
xor ecx, ecx
jmp 0x140001535
mov rcx, rdi
and rcx, 0xffffffffffffffe0
lea rdx, [r15 + rsi]
add rdx, 0x2d0
xor r8d, r8d
nop dword [rax + rax]
movups xmm0, xmmword [r14 + r8]
movups xmm1, xmmword [r14 + r8 + 0x10]
movups xmm2, xmmword [rdx + r8 - 0x10]
movups xmm3, xmmword [rdx + r8]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [r14 + r8], xmm2
movups xmmword [r14 + r8 + 0x10], xmm3
movups xmmword [rdx + r8 - 0x10], xmm0
movups xmmword [rdx + r8], xmm1
add r8, 0x20
cmp rcx, r8
jne 0x140001420
cmp rcx, rdi
je 0x1400014c0
test dil, 0x18
je 0x1400014a0
mov rdx, rcx
mov rcx, rdi
and rcx, 0xfffffffffffffff8
mov r8, qword [r14 + rdx]
mov r9, qword [rax + rdx]
xor r9, r8
mov qword [r14 + rdx], r9
mov qword [rax + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x140001470
cmp rcx, rdi
je 0x1400014c0
nop word cs:[rax + rax]
movzx edx, byte [r14 + rcx]
movzx r8d, byte [rax + rcx]
xor r8b, dl
mov byte [r14 + rcx], r8b
mov byte [rax + rcx], dl
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rdi, rdx
jne 0x1400014a0
add rdi, qword [rsi + 0x2d0]
mov rax, rdi
mov qword [rsi + 0x2d0], rax
jmp 0x140001d58
mov rcx, rbx
and rcx, 0xffffffffffffffe0
lea rdx, [rsp + 0x20]
add rdx, r15
add rdx, 0x10
xor r8d, r8d
nop dword [rax]
movups xmm0, xmmword [r14 + r8]
movups xmm1, xmmword [r14 + r8 + 0x10]
movups xmm2, xmmword [rdx + r8 - 0x10]
movups xmm3, xmmword [rdx + r8]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [r14 + r8], xmm2
movups xmmword [r14 + r8 + 0x10], xmm3
movups xmmword [rdx + r8 - 0x10], xmm0
movups xmmword [rdx + r8], xmm1
add r8, 0x20
cmp rcx, r8
jne 0x1400014f0
cmp rbx, rcx
je 0x140001590
test bl, 0x18
je 0x140001570
mov rdx, rcx
mov rcx, rbx
and rcx, 0xfffffffffffffff8
nop
mov r8, qword [r14 + rdx]
mov r9, qword [rax + rdx]
xor r9, r8
mov qword [r14 + rdx], r9
mov qword [rax + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x140001540
cmp rbx, rcx
je 0x140001590
nop word cs:[rax + rax]
movzx edx, byte [r14 + rcx]
movzx r8d, byte [rax + rcx]
xor r8b, dl
mov byte [r14 + rcx], r8b
mov byte [rax + rcx], dl
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rbx, rdx
jne 0x140001570
sub rdi, rbx
mov rax, qword [0x14006c008]
movzx eax, byte [rax]
cmp al, 1
jne 0x1400015d1
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0xd0], xmm0
lea rcx, [rsp + 0x20]
lea r8, [rsp + 0xd0]
mov rdx, rsi
call fcn.140001000
add rbx, r14
cmp rdi, 0x7f
ja 0x140001629
jmp 0x140001aee
xorps xmm0, xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0xd0], xmm0
lea rdx, [rsp + 0xd0]
mov r8d, 4
mov rcx, rsi
call fcn.140043e30
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x20], xmm0
add rbx, r14
cmp rdi, 0x7f
jbe 0x140001aee
lea rcx, [rsp + 0x50]
mov rdx, rbx
call fcn.140043400
mov rax, qword [0x14006c008]
movzx eax, byte [rax]
cmp al, 1
jne 0x140001748
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movaps xmm3, xmmword [rsp + 0x80]
movaps xmm4, xmmword [rsp + 0x90]
movaps xmm5, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0x110], xmm4
movaps xmmword [rsp + 0x120], xmm5
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x140], xmm7
lea rdx, [rsp + 0xd0]
mov rcx, rsi
call fcn.140001060
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movaps xmm2, xmmword [rsp + 0xf0]
movaps xmm3, xmmword [rsp + 0x100]
movaps xmm4, xmmword [rsp + 0x110]
movaps xmm5, xmmword [rsp + 0x120]
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x90], xmm4
movaps xmmword [rsp + 0xa0], xmm5
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xc0], xmm7
jmp 0x140001774
lea r12, [rsp + 0x90]
lea rdx, [rsp + 0x50]
mov r8d, 4
mov rcx, rsi
call fcn.140043e30
mov r8d, 4
mov rcx, rsi
mov rdx, r12
call fcn.140043e30
movups xmm0, xmmword [rbx]
xorps xmm0, xmmword [rsp + 0x20]
movups xmmword [rbx], xmm0
add rdi, 0xfffffffffffffff0
cmp rdi, 0xf0
jb 0x140001a20
lea rbx, [rsp + 0x1a0]
sub r14, r15
add r14, 0x90
lea r15, [rsp + 0x160]
lea r12, [rsp + 0xd0]
jmp 0x1400018ef
mov r8d, 4
mov rcx, rsi
mov rdx, r15
call fcn.140043e30
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.140043e30
movups xmm0, xmmword [r14 - 0x70]
movups xmm1, xmmword [r14 - 0x60]
movups xmm2, xmmword [r14 - 0x50]
movups xmm3, xmmword [r14 - 0x40]
xorps xmm0, xmmword [rsp + 0x50]
xorps xmm1, xmmword [rsp + 0x60]
movups xmmword [r14 - 0x70], xmm0
movups xmmword [r14 - 0x60], xmm1
xorps xmm2, xmmword [rsp + 0x70]
xorps xmm3, xmmword [rsp + 0x80]
movups xmmword [r14 - 0x50], xmm2
movups xmmword [r14 - 0x40], xmm3
movups xmm0, xmmword [r14 - 0x30]
movups xmm1, xmmword [r14 - 0x20]
xorps xmm0, xmmword [rsp + 0x90]
xorps xmm1, xmmword [rsp + 0xa0]
movups xmmword [r14 - 0x30], xmm0
movups xmmword [r14 - 0x20], xmm1
movups xmm0, xmmword [r14 - 0x10]
movups xmm1, xmmword [r14]
xorps xmm0, xmmword [rsp + 0xb0]
xorps xmm1, xmmword [rsp + 0xc0]
movups xmmword [r14 - 0x10], xmm0
movups xmmword [r14], xmm1
movaps xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmm2, xmmword [rsp + 0x180]
movaps xmm3, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
sub r14, 0xffffffffffffff80
cmp rdi, 0xef
jbe 0x140001a26
add rdi, 0xffffffffffffff80
mov rcx, r15
mov rdx, r14
call fcn.140043400
mov rax, qword [0x14006c008]
movzx eax, byte [rax]
cmp al, 1
jne 0x1400017c0
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmm2, xmmword [rsp + 0x180]
movaps xmm3, xmmword [rsp + 0x190]
movaps xmm4, xmmword [rsp + 0x1a0]
movaps xmm5, xmmword [rsp + 0x1b0]
movaps xmm6, xmmword [rsp + 0x1c0]
movaps xmm7, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0x110], xmm4
movaps xmmword [rsp + 0x120], xmm5
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x140], xmm7
mov rcx, rsi
mov rdx, r12
call fcn.140001060
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movaps xmm2, xmmword [rsp + 0xf0]
movaps xmm3, xmmword [rsp + 0x100]
movaps xmm4, xmmword [rsp + 0x110]
movaps xmm5, xmmword [rsp + 0x120]
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x160], xmm0
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x190], xmm3
movaps xmmword [rsp + 0x1a0], xmm4
movaps xmmword [rsp + 0x1b0], xmm5
movaps xmmword [rsp + 0x1c0], xmm6
movaps xmmword [rsp + 0x1d0], xmm7
jmp 0x1400017e2
add rbx, 0x10
jmp 0x140001a2d
add r14, 0xffffffffffffff90
mov rbx, r14
add rdi, 0xffffffffffffff90
mov eax, 0xf
nop word cs:[rax + rax]
movzx ecx, byte [rsp + rax + 0x41]
xor byte [rbx + rax - 0xf], cl
movzx ecx, byte [rsp + rax + 0x42]
xor byte [rbx + rax - 0xe], cl
movzx ecx, byte [rsp + rax + 0x43]
xor byte [rbx + rax - 0xd], cl
movzx ecx, byte [rsp + rax + 0x44]
xor byte [rbx + rax - 0xc], cl
movzx ecx, byte [rsp + rax + 0x45]
xor byte [rbx + rax - 0xb], cl
movzx ecx, byte [rsp + rax + 0x46]
xor byte [rbx + rax - 0xa], cl
movzx ecx, byte [rsp + rax + 0x47]
xor byte [rbx + rax - 9], cl
movzx ecx, byte [rsp + rax + 0x48]
xor byte [rbx + rax - 8], cl
movzx ecx, byte [rsp + rax + 0x49]
xor byte [rbx + rax - 7], cl
movzx ecx, byte [rsp + rax + 0x4a]
xor byte [rbx + rax - 6], cl
movzx ecx, byte [rsp + rax + 0x4b]
xor byte [rbx + rax - 5], cl
movzx ecx, byte [rsp + rax + 0x4c]
xor byte [rbx + rax - 4], cl
movzx ecx, byte [rsp + rax + 0x4d]
xor byte [rbx + rax - 3], cl
movzx ecx, byte [rsp + rax + 0x4e]
xor byte [rbx + rax - 2], cl
movzx ecx, byte [rsp + rax + 0x4f]
xor byte [rbx + rax - 1], cl
movzx ecx, byte [rsp + rax + 0x50]
xor byte [rbx + rax], cl
add rax, 0x10
cmp rax, 0x7f
jne 0x140001a40
add rbx, 0x70
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x20], xmm0
mov rbp, rdi
and rbp, 0xfffffffffffffff0
mov eax, edi
and eax, 0xf
mov qword [rsp + 0x158], rax
test rbp, rbp
je 0x140001cb3
lea r12, [rsp + 0xe0]
xor r13d, r13d
lea r14, [rsp + 0x20]
lea r15, [rsp + 0xd0]
xorps xmm6, xmm6
jmp 0x140001b79
movups xmmword [r12 + 0x20], xmm6
movups xmmword [r12 + 0x10], xmm6
movups xmmword [r12], xmm6
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0xd0], xmm0
mov r8d, 4
mov rcx, rsi
mov rdx, r15
call fcn.140043e30
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x20], xmm0
add r13, 0x10
cmp rbp, r13
je 0x140001cb3
movzx eax, byte [rsp + 0x20]
movsd xmm0, qword [rbx + r13]
movaps xmmword [rsp + 0x30], xmm0
xor al, byte [rsp + 0x30]
movups xmm0, xmmword [rbx + r13]
mov byte [rbx + r13], al
movzx eax, byte [rsp + 0x21]
xor al, byte [rsp + 0x31]
mov byte [rbx + r13 + 1], al
movzx eax, byte [rsp + 0x22]
xor al, byte [rsp + 0x32]
mov byte [rbx + r13 + 2], al
movzx eax, byte [rsp + 0x23]
xor al, byte [rsp + 0x33]
mov byte [rbx + r13 + 3], al
movzx eax, byte [rsp + 0x24]
xor al, byte [rsp + 0x34]
mov byte [rbx + r13 + 4], al
movzx eax, byte [rsp + 0x25]
xor al, byte [rsp + 0x35]
mov byte [rbx + r13 + 5], al
movzx eax, byte [rsp + 0x26]
xor al, byte [rsp + 0x36]
mov byte [rbx + r13 + 6], al
movzx eax, byte [rsp + 0x27]
xor al, byte [rsp + 0x37]
mov byte [rbx + r13 + 7], al
movzx eax, byte [rsp + 0x28]
movsd xmm1, qword [rbx + r13 + 8]
movaps xmmword [rsp + 0x40], xmm1
xor al, byte [rsp + 0x40]
mov byte [rbx + r13 + 8], al
movzx eax, byte [rsp + 0x29]
xor al, byte [rsp + 0x41]
mov byte [rbx + r13 + 9], al
movzx eax, byte [rsp + 0x2a]
xor al, byte [rsp + 0x42]
mov byte [rbx + r13 + 0xa], al
movzx eax, byte [rsp + 0x2b]
xor al, byte [rsp + 0x43]
mov byte [rbx + r13 + 0xb], al
movzx eax, byte [rsp + 0x2c]
xor al, byte [rsp + 0x44]
mov byte [rbx + r13 + 0xc], al
movzx eax, byte [rsp + 0x2d]
xor al, byte [rsp + 0x45]
mov byte [rbx + r13 + 0xd], al
movzx eax, byte [rsp + 0x2e]
xor al, byte [rsp + 0x46]
mov byte [rbx + r13 + 0xe], al
movzx eax, byte [rsp + 0x2f]
xor al, byte [rsp + 0x47]
mov byte [rbx + r13 + 0xf], al
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [0x14006c008]
movzx eax, byte [rax]
cmp al, 1
jne 0x140001b30
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0xd0], xmm0
mov rcx, r14
mov rdx, rsi
mov r8, r15
call fcn.140001000
add r13, 0x10
cmp rbp, r13
jne 0x140001b79
lea rax, [rsi + 0x2c0]
mov r14, qword [rsp + 0x158]
test r14, r14
je 0x140001d49
and edi, 1
cmp r14d, 1
jne 0x140001cd8
xor ecx, ecx
jmp 0x140001d2c
mov rdx, r14
sub rdx, rdi
lea r8, [rbx + rbp]
inc r8
xor r9d, r9d
nop dword [rax + rax]
movzx ecx, byte [r8 + r9 - 1]
movzx r10d, byte [rsp + r9 + 0x20]
xor r10b, cl
mov byte [r8 + r9 - 1], r10b
mov byte [rsp + r9 + 0x20], cl
lea rcx, [r9 + 2]
movzx r10d, byte [r8 + r9]
movzx r11d, byte [rsp + r9 + 0x21]
xor r11b, r10b
mov byte [r8 + r9], r11b
mov byte [rsp + r9 + 0x21], r10b
mov r9, rcx
cmp rdx, rcx
jne 0x140001cf0
test rdi, rdi
je 0x140001d49
add rbx, rbp
movzx edx, byte [rbx + rcx]
movzx r8d, byte [rsp + rcx + 0x20]
xor r8b, dl
mov byte [rbx + rcx], r8b
mov byte [rsp + rcx + 0x20], dl
mov qword [rsi + 0x2d0], r14
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rax], xmm0
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
add rsp, 0x208
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users_test.cargo_registry_srcindex.crates.io_6f17d22bba15001fcfb_mode_0.7.1_srclib.rs
mov rcx, r15
mov rdx, rax
call fcn.140061900
ud2
lea r8, str.C:Users_test.cargo_registry_srcindex.crates.io_6f17d22bba15001fcfb_mode_0.7.1_srclib.rs
mov edx, 0x10
mov rcx, rax
call fcn.1400618f0
ud2
lea r8, str.C:Users_test.cargo_registry_srcindex.crates.io_6f17d22bba15001fcfb_mode_0.7.1_srclib.rs
mov edx, 0x10
mov rcx, r15
call fcn.1400618e0
ud2