Function at 0x140063bd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
vmovdqa xmmword [rsp + 0x80], xmm9
vmovdqa xmmword [rsp + 0x70], xmm8
vmovdqa xmmword [rsp + 0x60], xmm7
vmovdqa xmmword [rsp + 0x50], xmm6
mov eax, 0xffffff53
test rdx, rdx
je 0x140064e13
test rcx, rcx
je 0x140064e13
mov r10, r8
test r8, r8
je 0x140064e13
test r9d, r9d
je 0x140064e11
mov r13, rdx
mov edx, dword [rcx + 0x40]
test rdx, rdx
je 0x1400642c7
vmovups ymm0, ymmword [rcx]
vmovups ymm1, ymmword [rcx + 0x20]
vmovups ymmword [rsp], ymm0
vmovups ymmword [rsp + 0x20], ymm1
vmovq xmm9, qword [rsp]
vmovq xmm6, qword [rsp + 8]
vmovdqa xmm8, xmmword [rsp + 0x10]
vmovdqa xmm1, xmmword [rsp + 0x20]
vmovdqa xmm0, xmmword [rsp + 0x30]
mov eax, 0xffffffec
vmovdqa xmm2, xmmword [0x140176170]
vmovdqa xmm3, xmmword [0x140176180]
vmovdqa xmm4, xmmword [0x140176190]
vmovdqa xmm5, xmmword [0x1401761a0]
nop
vpunpcklqdq xmm6, xmm8, xmm6
vpblendw xmm7, xmm9, xmm8, 0xf0
vpaddd xmm6, xmm6, xmm7
vpxor xmm0, xmm0, xmm6
vpshufb xmm0, xmm0, xmm2
vpaddd xmm1, xmm1, xmm0
vpxor xmm7, xmm8, xmm1
vpsrld xmm8, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm8, xmm7
vpaddd xmm6, xmm7, xmm6
vpshufb xmm8, xmm6, xmm3
vpshufb xmm0, xmm0, xmm3
vpxor xmm0, xmm8, xmm0
vpaddd xmm1, xmm0, xmm1
vpxor xmm7, xmm1, xmm7
vpshufd xmm7, xmm7, 0x93
vpsrld xmm8, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm8, xmm7
vpshufd xmm6, xmm6, 0x4e
vpaddd xmm6, xmm6, xmm7
vpshufb xmm8, xmm6, xmm2
vpshufb xmm0, xmm0, xmm4
vpxor xmm0, xmm8, xmm0
vpaddd xmm1, xmm1, xmm0
vpxor xmm7, xmm1, xmm7
vpsrld xmm8, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm8, xmm7
vpaddd xmm6, xmm7, xmm6
vpshufb xmm8, xmm6, xmm5
vpshufb xmm0, xmm0, xmm5
vpxor xmm0, xmm8, xmm0
vpshufd xmm8, xmm0, 0x39
vpaddd xmm1, xmm8, xmm1
vpxor xmm7, xmm1, xmm7
vpsrld xmm8, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm8, xmm7
vpshufd xmm8, xmm7, 0x39
vpshufd xmm9, xmm6, 0xee
add eax, 2
jne 0x140063c90
cmp edx, r9d
mov eax, r9d
cmovb eax, edx
vpextrd r8d, xmm6, 2
add r8d, dword [rcx]
mov dword [rsp], r8d
vpextrd r8d, xmm6, 3
add r8d, dword [rcx + 4]
mov dword [rsp + 4], r8d
vmovd r8d, xmm6
add r8d, dword [rcx + 8]
mov dword [rsp + 8], r8d
vpextrd r8d, xmm6, 1
add r8d, dword [rcx + 0xc]
vpextrd r11d, xmm7, 1
mov dword [rsp + 0xc], r8d
add r11d, dword [rcx + 0x10]
mov dword [rsp + 0x10], r11d
vpextrd r8d, xmm7, 2
add r8d, dword [rcx + 0x14]
mov dword [rsp + 0x14], r8d
vpextrd r8d, xmm7, 3
add r8d, dword [rcx + 0x18]
mov dword [rsp + 0x18], r8d
vmovd r8d, xmm7
add r8d, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], r8d
vmovd r8d, xmm1
add r8d, dword [rcx + 0x20]
vpextrd r11d, xmm1, 1
mov dword [rsp + 0x20], r8d
add r11d, dword [rcx + 0x24]
mov dword [rsp + 0x24], r11d
vpextrd r8d, xmm1, 2
add r8d, dword [rcx + 0x28]
mov dword [rsp + 0x28], r8d
vpextrd r8d, xmm1, 3
add r8d, dword [rcx + 0x2c]
mov dword [rsp + 0x2c], r8d
vmovd r8d, xmm0
add r8d, dword [rcx + 0x30]
vpextrd r11d, xmm0, 1
mov dword [rsp + 0x30], r8d
add r11d, dword [rcx + 0x34]
mov dword [rsp + 0x34], r11d
vpextrd r8d, xmm0, 2
add r8d, dword [rcx + 0x38]
mov dword [rsp + 0x38], r8d
vpextrd r8d, xmm0, 3
add r8d, dword [rcx + 0x3c]
mov dword [rsp + 0x3c], r8d
mov r11, rsp
sub r11, rdx
add r11, 0x40
mov esi, r13d
and esi, 7
mov r8d, r10d
and r8d, 7
mov ebp, eax
cmp rsi, r8
jne 0x140063fdd
mov edi, r11d
and edi, 7
cmp r8, rdi
jne 0x140063fdd
test rsi, rsi
je 0x14006400d
lea rsi, [r10 + 1]
lea r14, [r11 + 1]
movzx r8d, byte [r11]
xor r8b, byte [r10]
lea rdx, [r13 + 1]
mov byte [r13], r8b
lea edi, [rax - 1]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 2]
lea r14, [r11 + 2]
movzx r8d, byte [r11 + 1]
xor r8b, byte [r10 + 1]
lea rdx, [r13 + 2]
mov byte [r13 + 1], r8b
lea edi, [rax - 2]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 3]
lea r14, [r11 + 3]
movzx r8d, byte [r11 + 2]
xor r8b, byte [r10 + 2]
lea rdx, [r13 + 3]
mov byte [r13 + 2], r8b
lea edi, [rax - 3]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 4]
lea r14, [r11 + 4]
movzx r8d, byte [r11 + 3]
xor r8b, byte [r10 + 3]
lea rdx, [r13 + 4]
mov byte [r13 + 3], r8b
lea edi, [rax - 4]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 5]
lea r14, [r11 + 5]
movzx r8d, byte [r11 + 4]
xor r8b, byte [r10 + 4]
lea rdx, [r13 + 5]
mov byte [r13 + 4], r8b
lea edi, [rax - 5]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 6]
lea r14, [r11 + 6]
movzx r8d, byte [r11 + 5]
xor r8b, byte [r10 + 5]
lea rdx, [r13 + 6]
mov byte [r13 + 5], r8b
lea edi, [rax - 6]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 7]
lea r14, [r11 + 7]
movzx r8d, byte [r11 + 6]
xor r8b, byte [r10 + 6]
lea rdx, [r13 + 7]
mov byte [r13 + 6], r8b
lea edi, [rax - 7]
test sil, 7
je 0x140064018
test edi, edi
je 0x140064018
lea rsi, [r10 + 8]
movzx r8d, byte [r11 + 7]
add r11, 8
xor r8b, byte [r10 + 7]
lea rdx, [r13 + 8]
mov byte [r13 + 7], r8b
lea edi, [rax - 8]
mov r14, r11
jmp 0x140064018
xor edi, edi
cmp eax, 0x10
jb 0x140064183
mov r8, r13
sub r8, r10
cmp r8, 0x80
jb 0x140064183
cmp eax, 0x80
jae 0x1400640c8
xor edi, edi
jmp 0x140064146
mov rdx, r13
mov rsi, r10
mov r14, r11
mov edi, eax
cmp edi, 8
jae 0x140064028
mov rbx, rdx
mov r11, r14
jmp 0x14006422f
mov qword [rsp + 0x40], rbp
mov r15d, edi
shr r15d, 3
lea ebp, [r15 - 1]
xor r12d, r12d
cmp ebp, 7
jb 0x140064191
mov r8, rdx
sub r8, rsi
cmp r8, 0x40
jb 0x140064191
inc rbp
mov r12, rbp
and r12, 0xfffffffffffffff8
lea r8, [r12*8]
mov qword [rsp + 0x48], r8
lea rbx, [rdx + r12*8]
lea r11, [r14 + r12*8]
xor r8d, r8d
nop word cs:[rax + rax]
vmovups ymm0, ymmword [r14 + r8*8]
vmovups ymm1, ymmword [r14 + r8*8 + 0x20]
vxorps ymm0, ymm0, ymmword [rsi + r8*8]
vxorps ymm1, ymm1, ymmword [rsi + r8*8 + 0x20]
vmovups ymmword [rdx + r8*8], ymm0
vmovups ymmword [rdx + r8*8 + 0x20], ymm1
add r8, 8
cmp r12, r8
jne 0x140064080
add rsi, qword [rsp + 0x48]
cmp rbp, r12
mov rbp, qword [rsp + 0x40]
jne 0x140064197
jmp 0x14006422f
mov edi, ebp
and edi, 0xffffff80
neg rdx
add rdx, rsp
add rdx, 0xa0
xor esi, esi
nop dword [rax]
vmovups ymm0, ymmword [rdx + rsi - 0x60]
vmovups ymm1, ymmword [rdx + rsi - 0x40]
vmovups ymm2, ymmword [rdx + rsi - 0x20]
vmovups ymm3, ymmword [rdx + rsi]
vxorps ymm0, ymm0, ymmword [r10 + rsi]
vxorps ymm1, ymm1, ymmword [r10 + rsi + 0x20]
vxorps ymm2, ymm2, ymmword [r10 + rsi + 0x40]
vxorps ymm3, ymm3, ymmword [r10 + rsi + 0x60]
vmovups ymmword [r13 + rsi], ymm0
vmovups ymmword [r13 + rsi + 0x20], ymm1
vmovups ymmword [r13 + rsi + 0x40], ymm2
vmovups ymmword [r13 + rsi + 0x60], ymm3
sub rsi, 0xffffffffffffff80
cmp rdi, rsi
jne 0x1400640e0
cmp rdi, rbp
je 0x1400642b6
test bpl, 0x70
je 0x140064183
mov rdx, rdi
mov edi, ebp
and edi, 0xfffffff0
nop
vmovdqu xmm0, xmmword [r11 + rdx]
vpxor xmm0, xmm0, xmmword [r10 + rdx]
vmovdqu xmmword [r13 + rdx], xmm0
add rdx, 0x10
cmp rdi, rdx
jne 0x140064150
mov rdx, rbp
mov rbx, r13
mov rsi, r10
cmp rdi, rbp
jne 0x14006423c
jmp 0x1400642b6
mov rdx, rbp
mov rbx, r13
mov rsi, r10
jmp 0x14006423c
mov rbx, rdx
mov r11, r14
mov ebp, r15d
sub ebp, r12d
mov edx, r12d
not edx
add edx, r15d
and ebp, 3
je 0x1400641cd
mov r14d, ebp
nop dword [rax]
mov r8, qword [r11]
add r11, 8
xor r8, qword [rsi]
add rsi, 8
mov qword [rbx], r8
add rbx, 8
dec r14d
jne 0x1400641b0
add r12d, ebp
cmp edx, 3
mov rbp, qword [rsp + 0x40]
jb 0x14006422f
sub r15d, r12d
xor r14d, r14d
xor edx, edx
nop
mov r8, qword [r11 + r14*8]
xor r8, qword [rsi + r14*8]
mov qword [rbx + r14*8], r8
mov r8, qword [r11 + r14*8 + 8]
xor r8, qword [rsi + r14*8 + 8]
mov qword [rbx + r14*8 + 8], r8
mov r8, qword [r11 + r14*8 + 0x10]
xor r8, qword [rsi + r14*8 + 0x10]
mov qword [rbx + r14*8 + 0x10], r8
mov r8, qword [r11 + r14*8 + 0x18]
xor r8, qword [rsi + r14*8 + 0x18]
mov qword [rbx + r14*8 + 0x18], r8
add rdx, 0xffffffffffffffe0
add r14, 4
cmp r15d, r14d
jne 0x1400641e0
sub rbx, rdx
sub rsi, rdx
sub r11, rdx
and edi, 7
je 0x1400642b6
mov edx, edi
xor edi, edi
mov r14, rdi
not r14
add r14, rdx
mov r15, rdx
and r15, 3
je 0x140064265
nop
movzx r8d, byte [r11 + rdi]
xor r8b, byte [rsi + rdi]
mov byte [rbx + rdi], r8b
inc rdi
dec r15
jne 0x140064250
cmp r14, 3
jb 0x1400642b6
nop dword [rax + rax]
movzx r8d, byte [r11 + rdi]
xor r8b, byte [rsi + rdi]
mov byte [rbx + rdi], r8b
movzx r8d, byte [r11 + rdi + 1]
xor r8b, byte [rsi + rdi + 1]
mov byte [rbx + rdi + 1], r8b
movzx r8d, byte [r11 + rdi + 2]
xor r8b, byte [rsi + rdi + 2]
mov byte [rbx + rdi + 2], r8b
movzx r8d, byte [r11 + rdi + 3]
xor r8b, byte [rsi + rdi + 3]
mov byte [rbx + rdi + 3], r8b
add rdi, 4
cmp rdx, rdi
jne 0x140064270
sub dword [rcx + 0x40], eax
jne 0x1400642be
inc dword [rcx + 0x30]
sub r9d, eax
add r13, rbp
add r10, rbp
cmp r9d, 0x40
jb 0x14006482c
mov r12d, r10d
not r12d
and r12d, 7
lea r11, [rsp + r12]
mov r15, r13
sub r15, r10
vmovdqa xmm0, xmmword [0x140176170]
vmovdqa xmm1, xmmword [0x140176180]
vmovdqa xmm2, xmmword [0x140176190]
vmovdqa xmm3, xmmword [0x1401761a0]
mov rdi, rsp
mov rdx, r13
jmp 0x140064367
vmovaps xmm4, xmmword [rsp]
vxorps xmm4, xmm4, xmmword [r10]
vmovups xmmword [rdx], xmm4
vmovaps xmm4, xmmword [rsp + 0x10]
vxorps xmm4, xmm4, xmmword [r10 + 0x10]
vmovups xmmword [rdx + 0x10], xmm4
vmovaps xmm4, xmmword [rsp + 0x20]
vxorps xmm4, xmm4, xmmword [r10 + 0x20]
vmovups xmmword [rdx + 0x20], xmm4
vmovdqa xmm4, xmmword [rsp + 0x30]
vpxor xmm4, xmm4, xmmword [r10 + 0x30]
vmovdqu xmmword [rdx + 0x30], xmm4
add r9d, 0xffffffc0
add rdx, 0x40
add r10, 0x40
cmp r9d, 0x3f
jbe 0x14006482f
vmovups ymm4, ymmword [rcx]
vmovups ymm5, ymmword [rcx + 0x20]
vmovups ymmword [rsp], ymm4
vmovups ymmword [rsp + 0x20], ymm5
vmovq xmm9, qword [rsp]
vmovq xmm6, qword [rsp + 8]
vmovdqa xmm8, xmmword [rsp + 0x10]
vmovdqa xmm5, xmmword [rsp + 0x20]
vmovdqa xmm4, xmmword [rsp + 0x30]
mov eax, 0xffffffec
nop dword [rax]
vpunpcklqdq xmm6, xmm8, xmm6
vpblendw xmm7, xmm9, xmm8, 0xf0
vpaddd xmm6, xmm6, xmm7
vpxor xmm4, xmm4, xmm6
vpshufb xmm4, xmm4, xmm0
vpaddd xmm5, xmm5, xmm4
vpxor xmm7, xmm8, xmm5
vpsrld xmm8, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm8, xmm7
vpaddd xmm6, xmm7, xmm6
vpshufb xmm8, xmm6, xmm1
vpshufb xmm4, xmm4, xmm1
vpxor xmm4, xmm8, xmm4
vpaddd xmm5, xmm4, xmm5
vpxor xmm7, xmm5, xmm7
vpshufd xmm7, xmm7, 0x93
vpsrld xmm8, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm8, xmm7
vpshufd xmm6, xmm6, 0x4e
vpaddd xmm6, xmm6, xmm7
vpshufb xmm8, xmm6, xmm0
vpshufb xmm4, xmm4, xmm2
vpxor xmm4, xmm8, xmm4
vpaddd xmm5, xmm5, xmm4
vpxor xmm7, xmm5, xmm7
vpsrld xmm8, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm8, xmm7
vpaddd xmm6, xmm7, xmm6
vpshufb xmm8, xmm6, xmm3
vpshufb xmm4, xmm4, xmm3
vpxor xmm4, xmm8, xmm4
vpshufd xmm8, xmm4, 0x39
vpaddd xmm5, xmm8, xmm5
vpxor xmm7, xmm5, xmm7
vpsrld xmm8, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm8, xmm7
vpshufd xmm8, xmm7, 0x39
vpshufd xmm9, xmm6, 0xee
add eax, 2
jne 0x1400643a0
vpextrd eax, xmm6, 2
add eax, dword [rcx]
mov dword [rsp], eax
vpextrd ebx, xmm6, 3
add ebx, dword [rcx + 4]
mov dword [rsp + 4], ebx
vmovd r8d, xmm6
add r8d, dword [rcx + 8]
mov dword [rsp + 8], r8d
vpextrd r8d, xmm6, 1
add r8d, dword [rcx + 0xc]
vpextrd esi, xmm7, 1
mov dword [rsp + 0xc], r8d
add esi, dword [rcx + 0x10]
mov dword [rsp + 0x10], esi
vpextrd r8d, xmm7, 2
add r8d, dword [rcx + 0x14]
mov dword [rsp + 0x14], r8d
vpextrd r8d, xmm7, 3
add r8d, dword [rcx + 0x18]
mov dword [rsp + 0x18], r8d
vmovd r8d, xmm7
add r8d, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], r8d
vmovd r8d, xmm5
add r8d, dword [rcx + 0x20]
vpextrd esi, xmm5, 1
mov dword [rsp + 0x20], r8d
add esi, dword [rcx + 0x24]
mov dword [rsp + 0x24], esi
vpextrd r8d, xmm5, 2
add r8d, dword [rcx + 0x28]
mov dword [rsp + 0x28], r8d
vpextrd r8d, xmm5, 3
add r8d, dword [rcx + 0x2c]
mov dword [rsp + 0x2c], r8d
mov r8d, dword [rcx + 0x30]
vmovd esi, xmm4
add esi, r8d
vpextrd ebp, xmm4, 1
mov dword [rsp + 0x30], esi
add ebp, dword [rcx + 0x34]
mov dword [rsp + 0x34], ebp
vpextrd esi, xmm4, 2
add esi, dword [rcx + 0x38]
mov dword [rsp + 0x38], esi
vpextrd esi, xmm4, 3
add esi, dword [rcx + 0x3c]
mov dword [rsp + 0x3c], esi
inc r8d
mov dword [rcx + 0x30], r8d
mov r8d, r10d
or r8d, edx
test r8b, 7
je 0x140064580
cmp r15, 0x80
jae 0x140064310
mov esi, 0x40
xor r14d, r14d
mov rax, rdx
mov r8, r10
mov rbp, rdi
jmp 0x1400647e0
mov r14b, 1
test r13b, 7
je 0x14006465d
movzx r8d, byte [rsp]
xor r8b, byte [r10]
mov byte [rdx], r8b
test r12, r12
je 0x14006466d
mov r8d, eax
shr r8d, 8
xor r8b, byte [r10 + 1]
mov byte [rdx + 1], r8b
lea r8, [rsp + 1]
cmp r8, r11
je 0x140064687
mov r8d, eax
shr r8d, 0x10
xor r8b, byte [r10 + 2]
mov byte [rdx + 2], r8b
lea r8, [rsp + 2]
cmp r8, r11
je 0x14006469e
shr eax, 0x18
xor al, byte [r10 + 3]
mov byte [rdx + 3], al
lea rax, [rsp + 3]
cmp rax, r11
je 0x1400646b5
movzx eax, byte [r10 + 4]
xor al, bl
mov byte [rdx + 4], al
lea rax, [rsp + 4]
cmp rax, r11
je 0x1400646cc
mov eax, ebx
shr eax, 8
xor al, byte [r10 + 5]
mov byte [rdx + 5], al
lea rax, [rsp + 5]
cmp rax, r11
je 0x1400646e3
mov eax, ebx
shr eax, 0x10
xor al, byte [r10 + 6]
mov byte [rdx + 6], al
lea rax, [rsp + 6]
cmp rax, r11
je 0x1400646fa
shr ebx, 0x18
lea r8, [r10 + 8]
xor bl, byte [r10 + 7]
lea rax, [rdx + 8]
mov byte [rdx + 7], bl
xor esi, esi
lea rbp, [rsp + 8]
jmp 0x140064710
xor esi, esi
mov rbp, rdi
mov r8, r10
mov rax, rdx
jmp 0x140064710
lea r8, [r10 + 1]
lea rax, [rdx + 1]
xor r14d, r14d
mov esi, 7
lea rbp, [rsp + 1]
jmp 0x140064710
lea r8, [r10 + 2]
lea rax, [rdx + 2]
xor r14d, r14d
mov esi, 6
lea rbp, [rsp + 2]
jmp 0x140064710
lea r8, [r10 + 3]
lea rax, [rdx + 3]
xor r14d, r14d
mov esi, 5
lea rbp, [rsp + 3]
jmp 0x140064710
lea r8, [r10 + 4]
lea rax, [rdx + 4]
xor r14d, r14d
mov esi, 4
lea rbp, [rsp + 4]
jmp 0x140064710
lea r8, [r10 + 5]
lea rax, [rdx + 5]
xor r14d, r14d
mov esi, 3
lea rbp, [rsp + 5]
jmp 0x140064710
lea r8, [r10 + 6]
lea rax, [rdx + 6]
xor r14d, r14d
mov esi, 2
lea rbp, [rsp + 6]
jmp 0x140064710
lea r8, [r10 + 7]
lea rax, [rdx + 7]
xor r14d, r14d
mov esi, 1
lea rbp, [rsp + 7]
nop
mov rbx, qword [rbp]
xor rbx, qword [r8]
mov qword [rax], rbx
mov rbx, qword [rbp + 8]
xor rbx, qword [r8 + 8]
mov qword [rax + 8], rbx
mov rbx, qword [rbp + 0x10]
xor rbx, qword [r8 + 0x10]
mov qword [rax + 0x10], rbx
mov rbx, qword [rbp + 0x18]
xor rbx, qword [r8 + 0x18]
mov qword [rax + 0x18], rbx
mov rbx, qword [rbp + 0x20]
xor rbx, qword [r8 + 0x20]
mov qword [rax + 0x20], rbx
mov rbx, qword [rbp + 0x28]
xor rbx, qword [r8 + 0x28]
mov qword [rax + 0x28], rbx
mov rbx, qword [rbp + 0x30]
xor rbx, qword [r8 + 0x30]
mov qword [rax + 0x30], rbx
test r13b, 7
je 0x14006477f
add r8, 0x38
add rbp, 0x38
add rax, 0x38
test r14b, r14b
jne 0x140064351
jmp 0x1400647a0
mov rbx, qword [rbp + 0x38]
xor rbx, qword [r8 + 0x38]
add rbp, 0x40
add r8, 0x40
mov qword [rax + 0x38], rbx
add rax, 0x40
test r14b, r14b
jne 0x140064351
mov rbx, rsi
xor r14d, r14d
and rbx, 3
je 0x1400647c6
nop dword [rax]
movzx edi, byte [rbp + r14]
xor dil, byte [r8 + r14]
mov byte [rax + r14], dil
inc r14
cmp rbx, r14
jne 0x1400647b0
lea rdi, [rsi - 1]
cmp rdi, 3
mov rdi, rsp
jb 0x140064351
nop word [rax + rax]
movzx ebx, byte [rbp + r14]
xor bl, byte [r8 + r14]
mov byte [rax + r14], bl
movzx ebx, byte [rbp + r14 + 1]
xor bl, byte [r8 + r14 + 1]
mov byte [rax + r14 + 1], bl
movzx ebx, byte [rbp + r14 + 2]
xor bl, byte [r8 + r14 + 2]
mov byte [rax + r14 + 2], bl
movzx ebx, byte [rbp + r14 + 3]
xor bl, byte [r8 + r14 + 3]
mov byte [rax + r14 + 3], bl
add r14, 4
cmp rsi, r14
jne 0x1400647e0
jmp 0x140064351
mov rdx, r13
test r9d, r9d
je 0x140064e11
vmovups ymm0, ymmword [rcx]
vmovups ymm1, ymmword [rcx + 0x20]
vmovups ymmword [rsp], ymm0
vmovups ymmword [rsp + 0x20], ymm1
lea r11, [rsp + 8]
vmovq xmm9, qword [rsp]
vmovq xmm6, qword [rsp + 8]
vmovdqa xmm8, xmmword [rsp + 0x10]
vmovdqa xmm1, xmmword [rsp + 0x20]
vmovdqa xmm0, xmmword [rsp + 0x30]
mov eax, 0xffffffec
vmovdqa xmm2, xmmword [0x140176170]
vmovdqa xmm3, xmmword [0x140176180]
vmovdqa xmm4, xmmword [0x140176190]
vmovdqa xmm5, xmmword [0x1401761a0]
nop word cs:[rax + rax]
vpunpcklqdq xmm6, xmm8, xmm6
vpblendw xmm7, xmm9, xmm8, 0xf0
vpaddd xmm6, xmm6, xmm7
vpxor xmm0, xmm0, xmm6
vpshufb xmm0, xmm0, xmm2
vpaddd xmm1, xmm1, xmm0
vpxor xmm7, xmm8, xmm1
vpsrld xmm8, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm8, xmm7
vpaddd xmm6, xmm7, xmm6
vpshufb xmm8, xmm6, xmm3
vpshufb xmm0, xmm0, xmm3
vpxor xmm0, xmm8, xmm0
vpaddd xmm1, xmm0, xmm1
vpxor xmm7, xmm1, xmm7
vpshufd xmm7, xmm7, 0x93
vpsrld xmm8, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm8, xmm7
vpshufd xmm6, xmm6, 0x4e
vpaddd xmm6, xmm6, xmm7
vpshufb xmm8, xmm6, xmm2
vpshufb xmm0, xmm0, xmm4
vpxor xmm0, xmm8, xmm0
vpaddd xmm1, xmm1, xmm0
vpxor xmm7, xmm1, xmm7
vpsrld xmm8, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm7, xmm8, xmm7
vpaddd xmm6, xmm7, xmm6
vpshufb xmm8, xmm6, xmm5
vpshufb xmm0, xmm0, xmm5
vpxor xmm0, xmm8, xmm0
vpshufd xmm8, xmm0, 0x39
vpaddd xmm1, xmm8, xmm1
vpxor xmm7, xmm1, xmm7
vpsrld xmm8, xmm7, 0x19
vpslld xmm7, xmm7, 7
vpor xmm7, xmm8, xmm7
vpshufd xmm8, xmm7, 0x39
vpshufd xmm9, xmm6, 0xee
add eax, 2
jne 0x1400648a0
vpextrd eax, xmm6, 2
add eax, dword [rcx]
vpextrd r8d, xmm6, 3
mov dword [rsp], eax
add r8d, dword [rcx + 4]
mov dword [rsp + 4], r8d
vmovd eax, xmm6
add eax, dword [rcx + 8]
mov dword [rsp + 8], eax
vpextrd eax, xmm6, 1
add eax, dword [rcx + 0xc]
mov dword [rsp + 0xc], eax
vpextrd eax, xmm7, 1
add eax, dword [rcx + 0x10]
vpextrd r8d, xmm7, 2
mov dword [rsp + 0x10], eax
add r8d, dword [rcx + 0x14]
mov dword [rsp + 0x14], r8d
vpextrd eax, xmm7, 3
add eax, dword [rcx + 0x18]
mov dword [rsp + 0x18], eax
vmovd eax, xmm7
add eax, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], eax
vmovd eax, xmm1
add eax, dword [rcx + 0x20]
mov dword [rsp + 0x20], eax
vpextrd eax, xmm1, 1
add eax, dword [rcx + 0x24]
vpextrd r8d, xmm1, 2
mov dword [rsp + 0x24], eax
add r8d, dword [rcx + 0x28]
mov dword [rsp + 0x28], r8d
vpextrd eax, xmm1, 3
add eax, dword [rcx + 0x2c]
mov dword [rsp + 0x2c], eax
vmovd eax, xmm0
add eax, dword [rcx + 0x30]
mov dword [rsp + 0x30], eax
vpextrd eax, xmm0, 1
add eax, dword [rcx + 0x34]
vpextrd r8d, xmm0, 2
mov dword [rsp + 0x34], eax
add r8d, dword [rcx + 0x38]
mov dword [rsp + 0x38], r8d
vpextrd eax, xmm0, 3
add eax, dword [rcx + 0x3c]
mov dword [rsp + 0x3c], eax
mov eax, edx
or eax, r10d
test al, 7
je 0x140064a53
mov eax, r9d
cmp r9d, 0x10
jae 0x140064bcc
mov r11, rsp
jmp 0x140064d8a
test dl, 7
je 0x140064c37
lea rax, [r10 + 1]
lea rsi, [rsp + 1]
movzx r8d, byte [rsp]
xor r8b, byte [r10]
lea rdi, [rdx + 1]
mov byte [rdx], r8b
lea r8d, [r9 - 1]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
lea rax, [r10 + 2]
lea rsi, [rsp + 2]
movzx r8d, byte [rsp + 1]
xor r8b, byte [r10 + 1]
lea rdi, [rdx + 2]
mov byte [rdx + 1], r8b
lea r8d, [r9 - 2]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
lea rax, [r10 + 3]
lea rsi, [rsp + 3]
movzx r8d, byte [rsp + 2]
xor r8b, byte [r10 + 2]
lea rdi, [rdx + 3]
mov byte [rdx + 2], r8b
lea r8d, [r9 - 3]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
lea rsi, [rsp + 4]
lea rax, [r10 + 4]
movzx r8d, byte [rsp + 3]
xor r8b, byte [r10 + 3]
lea rdi, [rdx + 4]
mov byte [rdx + 3], r8b
lea r8d, [r9 - 4]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
lea rax, [r10 + 5]
lea rsi, [rsp + 5]
movzx r8d, byte [rsp + 4]
xor r8b, byte [r10 + 4]
lea rdi, [rdx + 5]
mov byte [rdx + 4], r8b
lea r8d, [r9 - 5]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
lea rax, [r10 + 6]
lea rsi, [rsp + 6]
movzx r8d, byte [rsp + 5]
xor r8b, byte [r10 + 5]
lea rdi, [rdx + 6]
mov byte [rdx + 5], r8b
lea r8d, [r9 - 6]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
lea rax, [r10 + 7]
lea rsi, [rsp + 7]
movzx r8d, byte [rsp + 6]
xor r8b, byte [r10 + 6]
lea rdi, [rdx + 7]
mov byte [rdx + 6], r8b
lea r8d, [r9 - 7]
test al, 7
je 0x140064c43
test r8d, r8d
je 0x140064c43
movzx eax, byte [rsp + 7]
xor al, byte [r10 + 7]
add r10, 8
mov byte [rdx + 7], al
add rdx, 8
lea r8d, [r9 - 8]
mov rax, r10
mov rdi, rdx
mov rsi, r11
jmp 0x140064c43
mov rsi, rdx
sub rsi, r10
mov r11, rsp
xor r8d, r8d
cmp rsi, 0x80
jb 0x140064d8d
mov rsi, rdx
sub rsi, r11
cmp rsi, 0x80
jb 0x140064d8d
mov r8d, eax
and r8d, 0x30
xor esi, esi
nop word cs:[rax + rax]
vmovdqa xmm0, xmmword [rsp + rsi]
vpxor xmm0, xmm0, xmmword [r10 + rsi]
vmovdqu xmmword [rdx + rsi], xmm0
add rsi, 0x10
cmp r8, rsi
jne 0x140064c10
cmp r8, rax
jne 0x140064d8d
jmp 0x140064e06
mov rsi, rsp
mov rax, r10
mov rdi, rdx
mov r8d, r9d
cmp r8d, 8
jae 0x140064c57
mov rdx, rdi
mov r10, rax
mov r11, rsi
jmp 0x140064d81
mov ebx, r8d
shr ebx, 3
lea r15d, [rbx - 1]
xor r14d, r14d
cmp r15d, 0xb
jb 0x140064ce0
mov rdx, rdi
sub rdx, rax
cmp rdx, 0x40
jb 0x140064ce0
mov rdx, rdi
sub rdx, rsi
cmp rdx, 0x40
jb 0x140064ce0
inc r15
mov r14, r15
and r14, 0xfffffffffffffff8
lea r10, [r14*8]
lea rdx, [rdi + r14*8]
lea r11, [rsi + r14*8]
xor r12d, r12d
nop
vmovups ymm0, ymmword [rsi + r12*8]
vmovups ymm1, ymmword [rsi + r12*8 + 0x20]
vxorps ymm0, ymm0, ymmword [rax + r12*8]
vxorps ymm1, ymm1, ymmword [rax + r12*8 + 0x20]
vmovups ymmword [rdi + r12*8], ymm0
vmovups ymmword [rdi + r12*8 + 0x20], ymm1
add r12, 8
cmp r14, r12
jne 0x140064ca0
add rax, r10
mov r10, rax
cmp r15, r14
jne 0x140064ce6
jmp 0x140064d81
mov rdx, rdi
mov r11, rsi
mov r10d, ebx
sub r10d, r14d
mov esi, r14d
not esi
add esi, ebx
and r10d, 3
je 0x140064d1c
mov edi, r10d
nop dword [rax]
mov r15, qword [r11]
add r11, 8
xor r15, qword [rax]
add rax, 8
mov qword [rdx], r15
add rdx, 8
dec edi
jne 0x140064d00
add r14d, r10d
mov r10, rax
cmp esi, 3
jb 0x140064d81
sub ebx, r14d
xor esi, esi
xor r10d, r10d
nop dword [rax]
mov rdi, qword [r11 + rsi*8]
xor rdi, qword [rax + rsi*8]
mov qword [rdx + rsi*8], rdi
mov rdi, qword [r11 + rsi*8 + 8]
xor rdi, qword [rax + rsi*8 + 8]
mov qword [rdx + rsi*8 + 8], rdi
mov rdi, qword [r11 + rsi*8 + 0x10]
xor rdi, qword [rax + rsi*8 + 0x10]
mov qword [rdx + rsi*8 + 0x10], rdi
mov rdi, qword [r11 + rsi*8 + 0x18]
xor rdi, qword [rax + rsi*8 + 0x18]
mov qword [rdx + rsi*8 + 0x18], rdi
add r10, 0xffffffffffffffe0
add rsi, 4
cmp ebx, esi
jne 0x140064d30
sub rdx, r10
sub rax, r10
sub r11, r10
mov r10, rax
and r8d, 7
je 0x140064e06
mov eax, r8d
xor r8d, r8d
mov rsi, r8
not rsi
add rsi, rax
mov rdi, rax
and rdi, 3
je 0x140064db5
nop
movzx ebx, byte [r11 + r8]
xor bl, byte [r10 + r8]
mov byte [rdx + r8], bl
inc r8
dec rdi
jne 0x140064da0
cmp rsi, 3
jb 0x140064e06
nop dword [rax + rax]
movzx ebx, byte [r11 + r8]
xor bl, byte [r10 + r8]
mov byte [rdx + r8], bl
movzx ebx, byte [r11 + r8 + 1]
xor bl, byte [r10 + r8 + 1]
mov byte [rdx + r8 + 1], bl
movzx ebx, byte [r11 + r8 + 2]
xor bl, byte [r10 + r8 + 2]
mov byte [rdx + r8 + 2], bl
movzx ebx, byte [r11 + r8 + 3]
xor bl, byte [r10 + r8 + 3]
mov byte [rdx + r8 + 3], bl
add r8, 4
cmp rax, r8
jne 0x140064dc0
mov eax, 0x40
sub eax, r9d
mov dword [rcx + 0x40], eax
xor eax, eax
vmovaps xmm6, xmmword [rsp + 0x50]
vmovaps xmm7, xmmword [rsp + 0x60]
vmovaps xmm8, xmmword [rsp + 0x70]
vmovaps xmm9, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret