Function at 0x1400046c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
movaps xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x1b0], xmm6
mov rsi, r8
test sil, 0xf
je 0x1400046f3
xor eax, eax
jmp 0x140004fb6
mov r15, rdx
mov rbx, rcx
mov r14, rsi
shr r14, 4
cmp rsi, 0x8f
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0x120], rdx
jbe 0x1400047d4
movups xmm0, xmmword [r15 + 0x70]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [r15 + 0x60]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r15 + 0x50]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [r15 + 0x40]
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmm3, xmmword [r15 + 0x30]
movaps xmmword [rsp + 0x50], xmm3
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
dec r14
lea rdi, [rbx + 0x2c0]
mov rbp, qword [0x140038008]
movzx eax, byte [rbp]
cmp al, 1
jne 0x1400047e5
movaps xmm0, xmmword [rbx + 0x2c0]
movaps xmmword [rsp + 0xa0], xmm0
lea rcx, [rsp + 0x130]
lea r8, [rsp + 0xa0]
mov rdx, rbx
call fcn.140004ff0
movdqa xmm1, xmmword [rsp + 0x130]
movdqa xmmword [rbx + 0x2c0], xmm1
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xee
pshufd xmm2, xmm1, 0xff
jmp 0x14000484c
mov r13, r15
test r14, r14
jne 0x140004d5c
jmp 0x140004fa1
xorps xmm0, xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0xa0], xmm0
lea rdx, [rsp + 0xa0]
mov r8d, 4
mov rcx, rbx
call fcn.14000ab80
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rdi], xmm0
movdqa xmm1, xmmword [rbx + 0x2c0]
movd xmm0, dword [rbx + 0x2c4]
movq xmm3, qword [rbx + 0x2c8]
movd xmm2, dword [rbx + 0x2cc]
movd xmm4, dword [r15]
pxor xmm4, xmm1
movd xmm1, dword [r15 + 8]
pxor xmm1, xmm3
movd xmm3, dword [r15 + 0xc]
pxor xmm3, xmm2
punpckldq xmm1, xmm3
movd xmm2, dword [r15 + 4]
pxor xmm2, xmm0
punpckldq xmm4, xmm2
punpcklqdq xmm4, xmm1
movdqu xmmword [r15], xmm4
mov rcx, r14
and rcx, 0xfffffffffffffff8
dec rcx
cmp rcx, r14
jae 0x140004fda
lea rsi, [r15 + 0x10]
shl rcx, 4
movdqu xmm0, xmmword [rsi + rcx]
movdqu xmmword [rdi], xmm0
cmp r14, 0x10
jb 0x140004b5b
lea rdi, [rsp + 0x60]
lea r12, [rsp + 0xa0]
lea r13, [rsp + 0x20]
jmp 0x1400049ec
mov r8d, 4
mov rcx, rbx
mov rdx, r13
call fcn.14000ab80
mov r8d, 4
mov rcx, rbx
mov rdx, rdi
call fcn.14000ab80
lea r15, [rsi + 0x80]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmm3, xmmword [rsi + 0x30]
xorps xmm0, xmmword [rsp + 0x20]
movups xmmword [rsi], xmm0
xorps xmm1, xmmword [rsp + 0x30]
xorps xmm2, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi + 0x20], xmm2
xorps xmm3, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x30], xmm3
movups xmm0, xmmword [rsi + 0x40]
xorps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [rsi + 0x50]
xorps xmm0, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmm0, xmmword [rsi + 0x60]
xorps xmm0, xmmword [rsp + 0x80]
movups xmmword [rsi + 0x60], xmm0
movups xmm0, xmmword [rsi + 0x70]
xorps xmm0, xmmword [rsp + 0x90]
movups xmmword [rsi + 0x70], xmm0
add r14, 0xfffffffffffffff8
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x80], xmm0
movaps xmm0, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x60], xmm0
movdqa xmm0, xmmword [rsp + 0x130]
movdqa xmm1, xmmword [rsp + 0x140]
movdqa xmm2, xmmword [rsp + 0x150]
movdqa xmm3, xmmword [rsp + 0x160]
movdqa xmmword [rsp + 0x50], xmm3
movdqa xmmword [rsp + 0x40], xmm2
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmmword [rsp + 0x20], xmm0
mov rsi, r15
cmp r14, 0xf
jbe 0x140004b5e
movups xmm0, xmmword [rsi + 0xe0]
movaps xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [rsi + 0xd0]
movaps xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [rsi + 0xc0]
movaps xmmword [rsp + 0x180], xmm0
movups xmm0, xmmword [rsi + 0xb0]
movaps xmmword [rsp + 0x170], xmm0
movups xmm0, xmmword [rsi + 0x70]
movups xmm1, xmmword [rsi + 0x80]
movups xmm2, xmmword [rsi + 0x90]
movups xmm3, xmmword [rsi + 0xa0]
movaps xmmword [rsp + 0x160], xmm3
movaps xmmword [rsp + 0x150], xmm2
movaps xmmword [rsp + 0x140], xmm1
movaps xmmword [rsp + 0x130], xmm0
movzx eax, byte [rbp]
cmp al, 1
jne 0x1400048d0
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movaps xmm3, xmmword [rsp + 0x50]
movaps xmm4, xmmword [rsp + 0x60]
movaps xmm5, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm3
movaps xmmword [rsp + 0xe0], xmm4
movaps xmmword [rsp + 0xf0], xmm5
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0x110], xmm7
mov rcx, rbx
mov rdx, r12
call fcn.140005050
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movaps xmm2, xmmword [rsp + 0xc0]
movaps xmm3, xmmword [rsp + 0xd0]
movdqa xmm4, xmmword [rsp + 0xe0]
movaps xmm5, xmmword [rsp + 0xf0]
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x50], xmm3
movdqa xmmword [rsp + 0x60], xmm4
movaps xmmword [rsp + 0x70], xmm5
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm7
jmp 0x1400048f2
mov r15, rsi
movzx eax, byte [rbp]
cmp al, 1
jne 0x140004c62
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movaps xmm3, xmmword [rsp + 0x50]
movaps xmm4, xmmword [rsp + 0x60]
movaps xmm5, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm3
movaps xmmword [rsp + 0xe0], xmm4
movaps xmmword [rsp + 0xf0], xmm5
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0x110], xmm7
lea rdx, [rsp + 0xa0]
mov rcx, rbx
call fcn.140005050
movdqa xmm0, xmmword [rsp + 0xa0]
movdqa xmm1, xmmword [rsp + 0xb0]
movdqa xmm2, xmmword [rsp + 0xc0]
movdqa xmm3, xmmword [rsp + 0xd0]
movdqa xmm4, xmmword [rsp + 0xe0]
movaps xmm5, xmmword [rsp + 0xf0]
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movdqa xmmword [rsp + 0x20], xmm0
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmmword [rsp + 0x40], xmm2
movdqa xmmword [rsp + 0x50], xmm3
movdqa xmmword [rsp + 0x60], xmm4
movaps xmmword [rsp + 0x70], xmm5
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm7
jmp 0x140004c8b
lea r12, [rsp + 0x60]
lea rdx, [rsp + 0x20]
mov r8d, 4
mov rcx, rbx
call fcn.14000ab80
mov r8d, 4
mov rcx, rbx
mov rdx, r12
call fcn.14000ab80
lea r13, [r15 + 0x80]
mov eax, 0xf
nop word [rax + rax]
movzx ecx, byte [rsp + rax + 0x11]
xor byte [r15 + rax - 0xf], cl
movzx ecx, byte [rsp + rax + 0x12]
xor byte [r15 + rax - 0xe], cl
movzx ecx, byte [rsp + rax + 0x13]
xor byte [r15 + rax - 0xd], cl
movzx ecx, byte [rsp + rax + 0x14]
xor byte [r15 + rax - 0xc], cl
movzx ecx, byte [rsp + rax + 0x15]
xor byte [r15 + rax - 0xb], cl
movzx ecx, byte [rsp + rax + 0x16]
xor byte [r15 + rax - 0xa], cl
movzx ecx, byte [rsp + rax + 0x17]
xor byte [r15 + rax - 9], cl
movzx ecx, byte [rsp + rax + 0x18]
xor byte [r15 + rax - 8], cl
movzx ecx, byte [rsp + rax + 0x19]
xor byte [r15 + rax - 7], cl
movzx ecx, byte [rsp + rax + 0x1a]
xor byte [r15 + rax - 6], cl
movzx ecx, byte [rsp + rax + 0x1b]
xor byte [r15 + rax - 5], cl
movzx ecx, byte [rsp + rax + 0x1c]
xor byte [r15 + rax - 4], cl
movzx ecx, byte [rsp + rax + 0x1d]
xor byte [r15 + rax - 3], cl
movzx ecx, byte [rsp + rax + 0x1e]
xor byte [r15 + rax - 2], cl
movzx ecx, byte [rsp + rax + 0x1f]
xor byte [r15 + rax - 1], cl
movzx ecx, byte [rsp + rax + 0x20]
xor byte [r15 + rax], cl
add rax, 0x10
cmp rax, 0x8f
jne 0x140004ca0
add r14, 0xfffffffffffffff8
test r14, r14
je 0x140004fa1
shl r14, 4
add r14, r13
lea rbp, [rbx + 0x2c0]
lea rsi, [rsp + 0xb0]
mov rdi, qword [0x140038008]
lea r15, [rsp + 0x130]
lea r12, [rsp + 0xa0]
xorps xmm6, xmm6
jmp 0x140004f5f
movups xmmword [rsi + 0x20], xmm6
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
movups xmm0, xmmword [rbp]
movaps xmmword [rsp + 0xa0], xmm0
mov r8d, 4
mov rcx, rbx
mov rdx, r12
call fcn.14000ab80
movdqa xmm0, xmmword [rsp + 0xa0]
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 0x140004fa1
movzx eax, byte [rdi]
cmp al, 1
jne 0x140004da0
movaps xmm0, xmmword [rbx + 0x2c0]
movaps xmmword [rsp + 0xa0], xmm0
mov rcx, r15
mov rdx, rbx
mov r8, r12
call fcn.140004ff0
movdqa xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rbx + 0x2c0], xmm0
movd eax, xmm0
jmp 0x140004ddd
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x128]
call fcn.14000a290
movaps xmm6, xmmword [rsp + 0x1b0]
movaps xmm7, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:UsersAdministrator.cargo_registry_srcmirrors.sjtug.sjtu.edu.cn_7a04d2510079875b_block_modes_0.8.1_srccfb.rs
mov rdx, r14
call fcn.140026c80
ud2