Function at 0x4036b0
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
test r8b, 0xf
je 0x4036e0
xor eax, eax
jmp 0x4040c6
mov rbx, rcx
mov r14, r8
shr r14, 4
cmp r8, 0x80
mov qword [rsp + 0x158], r8
mov qword [rsp + 0xc8], rdx
jbe 0x40382c
movups xmm0, xmmword [rdx + 0x70]
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rdx + 0x60]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rdx + 0x50]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rdx + 0x40]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movups xmm3, xmmword [rdx + 0x30]
movaps xmmword [rsp + 0x70], xmm3
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
dec r14
lea rsi, [rbx + 0x2c0]
mov rbp, qword [0x004a5018]
movzx eax, byte [rbp]
cmp al, 1
mov qword [rsp + 0x150], rsi
jne 0x40383d
movaps xmm0, xmmword [rbx + 0x2c0]
movaps xmmword [rsp + 0xd0], xmm0
lea rcx, [rsp + 0x160]
lea r8, [rsp + 0xd0]
mov rdx, rbx
call fcn.00404100
movaps xmm0, xmmword [rsp + 0x160]
movaps xmmword [rbx + 0x2c0], xmm0
movaps xmmword [rsp + 0x30], xmm0
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x2f], al
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x2e], al
movzx eax, byte [rsp + 0x32]
mov byte [rsp + 0x2d], al
movzx eax, byte [rsp + 0x33]
mov byte [rsp + 0x2c], al
movzx eax, byte [rsp + 0x34]
mov byte [rsp + 0x2b], al
movzx eax, byte [rsp + 0x35]
mov byte [rsp + 0x2a], al
movzx r11d, byte [rsp + 0x36]
movzx edi, byte [rsp + 0x37]
movzx r15d, byte [rsp + 0x38]
movzx r12d, byte [rsp + 0x39]
movzx r13d, byte [rsp + 0x3a]
movzx esi, byte [rsp + 0x3b]
movzx eax, byte [rsp + 0x3c]
movzx ecx, byte [rsp + 0x3d]
movzx edx, byte [rsp + 0x3e]
movzx r8d, byte [rsp + 0x3f]
jmp 0x403911
mov r13, rdx
test r14, r14
jne 0x403e6c
jmp 0x4040b1
xorps xmm0, xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0xd0], xmm0
lea rdx, [rsp + 0xd0]
mov r8d, 4
mov rcx, rbx
call fcn.00407200
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsi], xmm0
movzx eax, byte [rbx + 0x2c0]
mov byte [rsp + 0x2f], al
movzx eax, byte [rbx + 0x2c1]
mov byte [rsp + 0x2e], al
movzx eax, byte [rbx + 0x2c2]
mov byte [rsp + 0x2d], al
movzx eax, byte [rbx + 0x2c3]
mov byte [rsp + 0x2c], al
movzx eax, byte [rbx + 0x2c4]
mov byte [rsp + 0x2b], al
movzx eax, byte [rbx + 0x2c5]
mov byte [rsp + 0x2a], al
movzx r11d, byte [rbx + 0x2c6]
movzx edi, byte [rbx + 0x2c7]
movzx r15d, byte [rbx + 0x2c8]
movzx r12d, byte [rbx + 0x2c9]
movzx r13d, byte [rbx + 0x2ca]
movzx esi, byte [rbx + 0x2cb]
movzx eax, byte [rbx + 0x2cc]
movzx ecx, byte [rbx + 0x2cd]
movzx edx, byte [rbx + 0x2ce]
movzx r8d, byte [rbx + 0x2cf]
mov r9, qword [rsp + 0xc8]
movzx r10d, byte [rsp + 0x2f]
xor byte [r9], r10b
movzx r10d, byte [rsp + 0x2e]
xor byte [r9 + 1], r10b
movzx r10d, byte [rsp + 0x2d]
xor byte [r9 + 2], r10b
movzx r10d, byte [rsp + 0x2c]
xor byte [r9 + 3], r10b
movzx r10d, byte [rsp + 0x2b]
xor byte [r9 + 4], r10b
movzx r10d, byte [rsp + 0x2a]
xor byte [r9 + 5], r10b
xor byte [r9 + 6], r11b
xor byte [r9 + 7], dil
xor byte [r9 + 8], r15b
xor byte [r9 + 9], r12b
xor byte [r9 + 0xa], r13b
xor byte [r9 + 0xb], sil
xor byte [r9 + 0xc], al
xor byte [r9 + 0xd], cl
xor byte [r9 + 0xe], dl
xor byte [r9 + 0xf], r8b
mov rcx, r14
and rcx, 0xfffffffffffffff8
dec rcx
cmp rcx, r14
jae 0x4040ea
lea rdi, [r9 + 0x10]
shl rcx, 4
movdqu xmm0, xmmword [rdi + rcx]
mov rax, qword [rsp + 0x150]
movdqu xmmword [rax], xmm0
cmp r14, 0x10
jb 0x403c6b
lea rsi, [rsp + 0x80]
lea r12, [rsp + 0xd0]
lea r13, [rsp + 0x40]
jmp 0x403af2
mov r8d, 4
mov rcx, rbx
mov rdx, r13
call fcn.00407200
mov r8d, 4
mov rcx, rbx
mov rdx, rsi
call fcn.00407200
lea r15, [rdi + 0x80]
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
xorps xmm0, xmmword [rsp + 0x40]
movups xmmword [rdi], xmm0
xorps xmm1, xmmword [rsp + 0x50]
xorps xmm2, xmmword [rsp + 0x60]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi + 0x20], xmm2
xorps xmm3, xmmword [rsp + 0x70]
movups xmmword [rdi + 0x30], xmm3
movups xmm0, xmmword [rdi + 0x40]
xorps xmm0, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x40], xmm0
movups xmm0, xmmword [rdi + 0x50]
xorps xmm0, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x50], xmm0
movups xmm0, xmmword [rdi + 0x60]
xorps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rdi + 0x60], xmm0
movups xmm0, xmmword [rdi + 0x70]
xorps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rdi + 0x70], xmm0
add r14, 0xfffffffffffffff8
movaps xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x80], xmm0
movdqa xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmm2, xmmword [rsp + 0x180]
movaps xmm3, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x70], xmm3
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x50], xmm1
movdqa xmmword [rsp + 0x40], xmm0
mov rdi, r15
cmp r14, 0xf
jbe 0x403c6e
movups xmm0, xmmword [rdi + 0xe0]
movaps xmmword [rsp + 0x1d0], xmm0
movups xmm0, xmmword [rdi + 0xd0]
movaps xmmword [rsp + 0x1c0], xmm0
movups xmm0, xmmword [rdi + 0xc0]
movaps xmmword [rsp + 0x1b0], xmm0
movups xmm0, xmmword [rdi + 0xb0]
movaps xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [rdi + 0x70]
movups xmm1, xmmword [rdi + 0x80]
movups xmm2, xmmword [rdi + 0x90]
movups xmm3, xmmword [rdi + 0xa0]
movaps xmmword [rsp + 0x190], xmm3
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x160], xmm0
movzx eax, byte [rbp]
cmp al, 1
jne 0x4039d0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movaps xmm3, xmmword [rsp + 0x70]
movaps xmm4, xmmword [rsp + 0x80]
movaps xmm5, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
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, rbx
mov rdx, r12
call fcn.00404160
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 + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x70], xmm3
movaps xmmword [rsp + 0x80], xmm4
movaps xmmword [rsp + 0x90], xmm5
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
jmp 0x4039f2
mov r15, rdi
movzx eax, byte [rbp]
cmp al, 1
jne 0x403d76
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movaps xmm3, xmmword [rsp + 0x70]
movaps xmm4, xmmword [rsp + 0x80]
movaps xmm5, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
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, rbx
call fcn.00404160
movdqa 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]
movdqa xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x70], xmm3
movaps xmmword [rsp + 0x80], xmm4
movaps xmmword [rsp + 0x90], xmm5
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
jmp 0x403da2
lea r12, [rsp + 0x80]
lea rdx, [rsp + 0x40]
mov r8d, 4
mov rcx, rbx
call fcn.00407200
mov r8d, 4
mov rcx, rbx
mov rdx, r12
call fcn.00407200
lea r13, [r15 + 0x80]
mov eax, 0xf
nop
movzx ecx, byte [rsp + rax + 0x31]
xor byte [r15 + rax - 0xf], cl
movzx ecx, byte [rsp + rax + 0x32]
xor byte [r15 + rax - 0xe], cl
movzx ecx, byte [rsp + rax + 0x33]
xor byte [r15 + rax - 0xd], cl
movzx ecx, byte [rsp + rax + 0x34]
xor byte [r15 + rax - 0xc], cl
movzx ecx, byte [rsp + rax + 0x35]
xor byte [r15 + rax - 0xb], cl
movzx ecx, byte [rsp + rax + 0x36]
xor byte [r15 + rax - 0xa], cl
movzx ecx, byte [rsp + rax + 0x37]
xor byte [r15 + rax - 9], cl
movzx ecx, byte [rsp + rax + 0x38]
xor byte [r15 + rax - 8], cl
movzx ecx, byte [rsp + rax + 0x39]
xor byte [r15 + rax - 7], cl
movzx ecx, byte [rsp + rax + 0x3a]
xor byte [r15 + rax - 6], cl
movzx ecx, byte [rsp + rax + 0x3b]
xor byte [r15 + rax - 5], cl
movzx ecx, byte [rsp + rax + 0x3c]
xor byte [r15 + rax - 4], cl
movzx ecx, byte [rsp + rax + 0x3d]
xor byte [r15 + rax - 3], cl
movzx ecx, byte [rsp + rax + 0x3e]
xor byte [r15 + rax - 2], cl
movzx ecx, byte [rsp + rax + 0x3f]
xor byte [r15 + rax - 1], cl
movzx ecx, byte [rsp + rax + 0x40]
xor byte [r15 + rax], cl
add rax, 0x10
cmp rax, 0x8f
jne 0x403db0
add r14, 0xfffffffffffffff8
test r14, r14
je 0x4040b1
shl r14, 4
add r14, r13
lea rbp, [rbx + 0x2c0]
lea rsi, [rsp + 0xe0]
mov rdi, qword [0x004a5018]
lea r15, [rsp + 0x160]
lea r12, [rsp + 0xd0]
xorps xmm6, xmm6
jmp 0x40406f
movups xmmword [rsi + 0x20], xmm6
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
movups xmm0, xmmword [rbp]
movaps xmmword [rsp + 0xd0], xmm0
mov r8d, 4
mov rcx, rbx
mov rdx, r12
call fcn.00407200
movdqa xmm0, xmmword [rsp + 0xd0]
movdqu xmmword [rbp], xmm0
movzx eax, byte [rbx + 0x2c0]
movzx ecx, byte [r13]
xor al, cl
mov byte [r13], al
mov byte [rbx + 0x2c0], cl
movzx eax, byte [r13 + 1]
movzx ecx, byte [rbx + 0x2c1]
xor cl, al
mov byte [r13 + 1], cl
mov byte [rbx + 0x2c1], al
movzx eax, byte [r13 + 2]
movzx ecx, byte [rbx + 0x2c2]
xor cl, al
mov byte [r13 + 2], cl
mov byte [rbx + 0x2c2], al
movzx eax, byte [r13 + 3]
movzx ecx, byte [rbx + 0x2c3]
xor cl, al
mov byte [r13 + 3], cl
mov byte [rbx + 0x2c3], al
movzx eax, byte [r13 + 4]
movzx ecx, byte [rbx + 0x2c4]
xor cl, al
mov byte [r13 + 4], cl
mov byte [rbx + 0x2c4], al
movzx eax, byte [r13 + 5]
movzx ecx, byte [rbx + 0x2c5]
xor cl, al
mov byte [r13 + 5], cl
mov byte [rbx + 0x2c5], al
movzx eax, byte [r13 + 6]
movzx ecx, byte [rbx + 0x2c6]
xor cl, al
mov byte [r13 + 6], cl
mov byte [rbx + 0x2c6], al
movzx eax, byte [r13 + 7]
movzx ecx, byte [rbx + 0x2c7]
xor cl, al
mov byte [r13 + 7], cl
mov byte [rbx + 0x2c7], al
movzx eax, byte [r13 + 8]
movzx ecx, byte [rbx + 0x2c8]
xor cl, al
mov byte [r13 + 8], cl
mov byte [rbx + 0x2c8], al
movzx eax, byte [r13 + 9]
movzx ecx, byte [rbx + 0x2c9]
xor cl, al
mov byte [r13 + 9], cl
mov byte [rbx + 0x2c9], al
movzx eax, byte [r13 + 0xa]
movzx ecx, byte [rbx + 0x2ca]
xor cl, al
mov byte [r13 + 0xa], cl
mov byte [rbx + 0x2ca], al
movzx eax, byte [r13 + 0xb]
movzx ecx, byte [rbx + 0x2cb]
xor cl, al
mov byte [r13 + 0xb], cl
mov byte [rbx + 0x2cb], al
movzx eax, byte [r13 + 0xc]
movzx ecx, byte [rbx + 0x2cc]
xor cl, al
mov byte [r13 + 0xc], cl
mov byte [rbx + 0x2cc], al
movzx eax, byte [r13 + 0xd]
movzx ecx, byte [rbx + 0x2cd]
xor cl, al
mov byte [r13 + 0xd], cl
mov byte [rbx + 0x2cd], al
movzx eax, byte [r13 + 0xe]
movzx ecx, byte [rbx + 0x2ce]
xor cl, al
mov byte [r13 + 0xe], cl
mov byte [rbx + 0x2ce], al
movzx eax, byte [r13 + 0xf]
movzx ecx, byte [rbx + 0x2cf]
xor cl, al
mov byte [r13 + 0xf], cl
mov byte [rbx + 0x2cf], al
add r13, 0x10
cmp r13, r14
je 0x4040b1
movzx eax, byte [rdi]
cmp al, 1
jne 0x403eb0
movaps xmm0, xmmword [rbx + 0x2c0]
movaps xmmword [rsp + 0xd0], xmm0
mov rcx, r15
mov rdx, rbx
mov r8, r12
call fcn.00404100
movdqa xmm0, xmmword [rsp + 0x160]
movdqa xmmword [rbx + 0x2c0], xmm0
movd eax, xmm0
jmp 0x403eed
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x158]
call fcn.00404780
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_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_modes_0.8.1_srccfb.rs
mov rdx, r14
call fcn.0048c580
int3