Function at 0x18003ae40
Capabilities:
Encrypt data using salsa20 or chacha
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x28]
cmp rdx, 0
je 0x18003b1fa
mov r10, qword [0x18023a384]
test r10d, 0x200
jne 0x18003b23e
push rbx
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x58
movdqu xmm1, xmmword [rcx]
movdqu xmm2, xmmword [rcx + 0x10]
movdqu xmm3, xmmword [r8]
movdqa xmm4, xmmword [0x18003ac10]
movdqa xmmword [rsp + 0x10], xmm1
movdqa xmmword [rsp + 0x20], xmm2
movdqa xmmword [rsp + 0x30], xmm3
mov rbp, rdx
jmp 0x18003aec0
mov eax, 0x61707865
mov ebx, 0x3320646e
mov ecx, 0x79622d32
mov edx, 0x6b206574
mov r8d, dword [rsp + 0x10]
mov r9d, dword [rsp + 0x14]
mov r10d, dword [rsp + 0x18]
mov r11d, dword [rsp + 0x1c]
movd r12d, xmm3
mov r13d, dword [rsp + 0x34]
mov r14d, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x3c]
mov qword [rsp + 0x40], rbp
mov ebp, 0xa
mov qword [rsp + 0x48], rsi
movq rsi, xmm2
mov qword [rsp + 0x50], rdi
mov rdi, rsi
shr rdi, 0x20
jmp 0x18003af20
add eax, r8d
xor r12d, eax
rol r12d, 0x10
add ebx, r9d
xor r13d, ebx
rol r13d, 0x10
add esi, r12d
xor r8d, esi
rol r8d, 0xc
add edi, r13d
xor r9d, edi
rol r9d, 0xc
add eax, r8d
xor r12d, eax
rol r12d, 8
add ebx, r9d
xor r13d, ebx
rol r13d, 8
add esi, r12d
xor r8d, esi
rol r8d, 7
add edi, r13d
xor r9d, edi
rol r9d, 7
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x24], edi
mov esi, dword [rsp + 0x28]
mov edi, dword [rsp + 0x2c]
add ecx, r10d
xor r14d, ecx
rol r14d, 0x10
add edx, r11d
xor r15d, edx
rol r15d, 0x10
add esi, r14d
xor r10d, esi
rol r10d, 0xc
add edi, r15d
xor r11d, edi
rol r11d, 0xc
add ecx, r10d
xor r14d, ecx
rol r14d, 8
add edx, r11d
xor r15d, edx
rol r15d, 8
add esi, r14d
xor r10d, esi
rol r10d, 7
add edi, r15d
xor r11d, edi
rol r11d, 7
add eax, r9d
xor r15d, eax
rol r15d, 0x10
add ebx, r10d
xor r12d, ebx
rol r12d, 0x10
add esi, r15d
xor r9d, esi
rol r9d, 0xc
add edi, r12d
xor r10d, edi
rol r10d, 0xc
add eax, r9d
xor r15d, eax
rol r15d, 8
add ebx, r10d
xor r12d, ebx
rol r12d, 8
add esi, r15d
xor r9d, esi
rol r9d, 7
add edi, r12d
xor r10d, edi
rol r10d, 7
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x2c], edi
mov esi, dword [rsp + 0x20]
mov edi, dword [rsp + 0x24]
add ecx, r11d
xor r13d, ecx
rol r13d, 0x10
add edx, r8d
xor r14d, edx
rol r14d, 0x10
add esi, r13d
xor r11d, esi
rol r11d, 0xc
add edi, r14d
xor r8d, edi
rol r8d, 0xc
add ecx, r11d
xor r13d, ecx
rol r13d, 8
add edx, r8d
xor r14d, edx
rol r14d, 8
add esi, r13d
xor r11d, esi
rol r11d, 7
add edi, r14d
xor r8d, edi
rol r8d, 7
dec ebp
jne 0x18003af20
mov dword [rsp + 0x24], edi
mov dword [rsp + 0x20], esi
mov rbp, qword [rsp + 0x40]
movdqa xmm1, xmm2
mov rsi, qword [rsp + 0x48]
paddd xmm3, xmm4
mov rdi, qword [rsp + 0x50]
add eax, 0x61707865
add ebx, 0x3320646e
add ecx, 0x79622d32
add edx, 0x6b206574
add r8d, dword [rsp + 0x10]
add r9d, dword [rsp + 0x14]
add r10d, dword [rsp + 0x18]
add r11d, dword [rsp + 0x1c]
add r12d, dword [rsp + 0x30]
add r13d, dword [rsp + 0x34]
add r14d, dword [rsp + 0x38]
add r15d, dword [rsp + 0x3c]
paddd xmm1, xmmword [rsp + 0x20]
cmp rbp, 0x40
jb 0x18003b180
xor eax, dword [rsi]
xor ebx, dword [rsi + 4]
xor ecx, dword [rsi + 8]
xor edx, dword [rsi + 0xc]
xor r8d, dword [rsi + 0x10]
xor r9d, dword [rsi + 0x14]
xor r10d, dword [rsi + 0x18]
xor r11d, dword [rsi + 0x1c]
movdqu xmm0, xmmword [rsi + 0x20]
xor r12d, dword [rsi + 0x30]
xor r13d, dword [rsi + 0x34]
xor r14d, dword [rsi + 0x38]
xor r15d, dword [rsi + 0x3c]
lea rsi, [rsi + 0x40]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x20], xmm2
movd dword [rsp + 0x30], xmm3
mov dword [rdi], eax
mov dword [rdi + 4], ebx
mov dword [rdi + 8], ecx
mov dword [rdi + 0xc], edx
mov dword [rdi + 0x10], r8d
mov dword [rdi + 0x14], r9d
mov dword [rdi + 0x18], r10d
mov dword [rdi + 0x1c], r11d
movdqu xmmword [rdi + 0x20], xmm0
mov dword [rdi + 0x30], r12d
mov dword [rdi + 0x34], r13d
mov dword [rdi + 0x38], r14d
mov dword [rdi + 0x3c], r15d
lea rdi, [rdi + 0x40]
sub rbp, 0x40
jne 0x18003aec0
jmp 0x18003b1d7
mov dword [rsp], eax
mov dword [rsp + 4], ebx
xor rbx, rbx
mov dword [rsp + 8], ecx
mov dword [rsp + 0xc], edx
mov dword [rsp + 0x10], r8d
mov dword [rsp + 0x14], r9d
mov dword [rsp + 0x18], r10d
mov dword [rsp + 0x1c], r11d
movdqa xmmword [rsp + 0x20], xmm1
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x34], r13d
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x3c], r15d
movzx eax, byte [rsi + rbx]
movzx edx, byte [rsp + rbx]
lea rbx, [rbx + 1]
xor eax, edx
mov byte [rdi + rbx - 1], al
dec rbp
jne 0x18003b1c0
lea rsi, [rsp + 0x88]
mov r15, qword [rsi - 0x30]
mov r14, qword [rsi - 0x28]
mov r13, qword [rsi - 0x20]
mov r12, qword [rsi - 0x18]
mov rbp, qword [rsi - 0x10]
mov rbx, qword [rsi - 8]
lea rsp, [rsi]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov r9, rsp
test r10d, 0x800
jne 0x18003c29e
cmp rdx, 0x80
je 0x18003b49e
ja 0x18003b7fe
sub rsp, 0x68
movaps xmmword [r9 - 0x28], xmm6
movaps xmmword [r9 - 0x18], xmm7
movdqa xmm0, xmmword [0x18003adc0]
movdqu xmm1, xmmword [rcx]
movdqu xmm2, xmmword [rcx + 0x10]
movdqu xmm3, xmmword [r8]
movdqa xmm6, xmmword [0x18003ac80]
movdqa xmm7, xmmword [0x18003ac90]
movdqa xmmword [rsp], xmm0
movdqa xmmword [rsp + 0x10], xmm1
movdqa xmmword [rsp + 0x20], xmm2
movdqa xmmword [rsp + 0x30], xmm3
mov r8, 0xa
jmp 0x18003b300
movdqa xmm3, xmmword [0x18003ac10]
movdqa xmm0, xmmword [rsp]
movdqa xmm1, xmmword [rsp + 0x10]
movdqa xmm2, xmmword [rsp + 0x20]
paddd xmm3, xmmword [rsp + 0x30]
mov r8, 0xa
movdqa xmmword [rsp + 0x30], xmm3
jmp 0x18003b300
paddd xmm0, xmm1
pxor xmm3, xmm0
pshufb xmm3, xmm6
paddd xmm2, xmm3
pxor xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x14
pslld xmm4, 0xc
por xmm1, xmm4
paddd xmm0, xmm1
pxor xmm3, xmm0
pshufb xmm3, xmm7
paddd xmm2, xmm3
pxor xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
por xmm1, xmm4
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x39
pshufd xmm3, xmm3, 0x93
nop
paddd xmm0, xmm1
pxor xmm3, xmm0
pshufb xmm3, xmm6
paddd xmm2, xmm3
pxor xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x14
pslld xmm4, 0xc
por xmm1, xmm4
paddd xmm0, xmm1
pxor xmm3, xmm0
pshufb xmm3, xmm7
paddd xmm2, xmm3
pxor xmm1, xmm2
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
por xmm1, xmm4
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x93
pshufd xmm3, xmm3, 0x39
dec r8
jne 0x18003b300
paddd xmm0, xmmword [rsp]
paddd xmm1, xmmword [rsp + 0x10]
paddd xmm2, xmmword [rsp + 0x20]
paddd xmm3, xmmword [rsp + 0x30]
cmp rdx, 0x40
jb 0x18003b430
movdqu xmm4, xmmword [rsi]
movdqu xmm5, xmmword [rsi + 0x10]
pxor xmm0, xmm4
movdqu xmm4, xmmword [rsi + 0x20]
pxor xmm1, xmm5
movdqu xmm5, xmmword [rsi + 0x30]
lea rsi, [rsi + 0x40]
pxor xmm2, xmm4
pxor xmm3, xmm5
movdqu xmmword [rdi], xmm0
movdqu xmmword [rdi + 0x10], xmm1
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmmword [rdi + 0x30], xmm3
lea rdi, [rdi + 0x40]
sub rdx, 0x40
jne 0x18003b2c0
jmp 0x18003b464
movdqa xmmword [rsp], xmm0
movdqa xmmword [rsp + 0x10], xmm1
movdqa xmmword [rsp + 0x20], xmm2
movdqa xmmword [rsp + 0x30], xmm3
xor r8, r8
movzx eax, byte [rsi + r8]
movzx ecx, byte [rsp + r8]
lea r8, [r8 + 1]
xor eax, ecx
mov byte [rdi + r8 - 1], al
dec rdx
jne 0x18003b44a
movaps xmm6, xmmword [r9 - 0x28]
movaps xmm7, xmmword [r9 - 0x18]
lea rsp, [r9]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov r9, rsp
sub rsp, 0xa8
movaps xmmword [r9 - 0x68], xmm6
movaps xmmword [r9 - 0x58], xmm7
movaps xmmword [r9 - 0x48], xmm8
movaps xmmword [r9 - 0x38], xmm9
movaps xmmword [r9 - 0x28], xmm10
movaps xmmword [r9 - 0x18], xmm11
movdqa xmm8, xmmword [0x18003adc0]
movdqu xmm9, xmmword [rcx]
movdqu xmm2, xmmword [rcx + 0x10]
movdqu xmm3, xmmword [r8]
movdqa xmm1, xmmword [0x18003ac10]
movdqa xmm6, xmmword [0x18003ac80]
movdqa xmm7, xmmword [0x18003ac90]
movdqa xmm10, xmm8
movdqa xmmword [rsp], xmm8
movdqa xmm11, xmm9
movdqa xmmword [rsp + 0x10], xmm9
movdqa xmm0, xmm2
movdqa xmmword [rsp + 0x20], xmm2
paddd xmm1, xmm3
movdqa xmmword [rsp + 0x30], xmm3
mov r8, 0xa
jmp 0x18003b540
paddd xmm8, xmm9
pxor xmm3, xmm8
paddd xmm10, xmm11
pxor xmm1, xmm10
pshufb xmm3, xmm6
pshufb xmm1, xmm6
paddd xmm2, xmm3
paddd xmm0, xmm1
pxor xmm9, xmm2
pxor xmm11, xmm0
movdqa xmm4, xmm9
psrld xmm9, 0x14
movdqa xmm5, xmm11
pslld xmm4, 0xc
psrld xmm11, 0x14
por xmm9, xmm4
pslld xmm5, 0xc
por xmm11, xmm5
paddd xmm8, xmm9
pxor xmm3, xmm8
paddd xmm10, xmm11
pxor xmm1, xmm10
pshufb xmm3, xmm7
pshufb xmm1, xmm7
paddd xmm2, xmm3
paddd xmm0, xmm1
pxor xmm9, xmm2
pxor xmm11, xmm0
movdqa xmm4, xmm9
psrld xmm9, 0x19
movdqa xmm5, xmm11
pslld xmm4, 7
psrld xmm11, 0x19
por xmm9, xmm4
pslld xmm5, 7
por xmm11, xmm5
pshufd xmm2, xmm2, 0x4e
pshufd xmm9, xmm9, 0x39
pshufd xmm3, xmm3, 0x93
pshufd xmm0, xmm0, 0x4e
pshufd xmm11, xmm11, 0x39
pshufd xmm1, xmm1, 0x93
paddd xmm8, xmm9
pxor xmm3, xmm8
paddd xmm10, xmm11
pxor xmm1, xmm10
pshufb xmm3, xmm6
pshufb xmm1, xmm6
paddd xmm2, xmm3
paddd xmm0, xmm1
pxor xmm9, xmm2
pxor xmm11, xmm0
movdqa xmm4, xmm9
psrld xmm9, 0x14
movdqa xmm5, xmm11
pslld xmm4, 0xc
psrld xmm11, 0x14
por xmm9, xmm4
pslld xmm5, 0xc
por xmm11, xmm5
paddd xmm8, xmm9
pxor xmm3, xmm8
paddd xmm10, xmm11
pxor xmm1, xmm10
pshufb xmm3, xmm7
pshufb xmm1, xmm7
paddd xmm2, xmm3
paddd xmm0, xmm1
pxor xmm9, xmm2
pxor xmm11, xmm0
movdqa xmm4, xmm9
psrld xmm9, 0x19
movdqa xmm5, xmm11
pslld xmm4, 7
psrld xmm11, 0x19
por xmm9, xmm4
pslld xmm5, 7
por xmm11, xmm5
pshufd xmm2, xmm2, 0x4e
pshufd xmm9, xmm9, 0x93
pshufd xmm3, xmm3, 0x39
pshufd xmm0, xmm0, 0x4e
pshufd xmm11, xmm11, 0x93
pshufd xmm1, xmm1, 0x39
dec r8
jne 0x18003b540
paddd xmm8, xmmword [rsp]
paddd xmm9, xmmword [rsp + 0x10]
paddd xmm2, xmmword [rsp + 0x20]
paddd xmm3, xmmword [rsp + 0x30]
paddd xmm1, xmmword [0x18003ac10]
paddd xmm10, xmmword [rsp]
paddd xmm11, xmmword [rsp + 0x10]
paddd xmm0, xmmword [rsp + 0x20]
paddd xmm1, xmmword [rsp + 0x30]
movdqu xmm4, xmmword [rsi]
movdqu xmm5, xmmword [rsi + 0x10]
pxor xmm8, xmm4
movdqu xmm4, xmmword [rsi + 0x20]
pxor xmm9, xmm5
movdqu xmm5, xmmword [rsi + 0x30]
pxor xmm2, xmm4
movdqu xmm4, xmmword [rsi + 0x40]
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + 0x50]
pxor xmm10, xmm4
movdqu xmm4, xmmword [rsi + 0x60]
pxor xmm11, xmm5
movdqu xmm5, xmmword [rsi + 0x70]
pxor xmm0, xmm4
pxor xmm1, xmm5
movdqu xmmword [rdi], xmm8
movdqu xmmword [rdi + 0x10], xmm9
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmmword [rdi + 0x30], xmm3
movdqu xmmword [rdi + 0x40], xmm10
movdqu xmmword [rdi + 0x50], xmm11
movdqu xmmword [rdi + 0x60], xmm0
movdqu xmmword [rdi + 0x70], xmm1
movaps xmm6, xmmword [r9 - 0x68]
movaps xmm7, xmmword [r9 - 0x58]
movaps xmm8, xmmword [r9 - 0x48]
movaps xmm9, xmmword [r9 - 0x38]
movaps xmm10, xmmword [r9 - 0x28]
movaps xmm11, xmmword [r9 - 0x18]
lea rsp, [r9]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov r9, rsp
mov r11, r10
shr r10, 0x20
test r10, 0x20
jne 0x18003ca7e
cmp rdx, 0xc0
ja 0x18003b832
and r11, 0x4400000
cmp r11, 0x400000
je 0x18003b261
sub rsp, 0x1e8
movaps xmmword [r9 - 0xa8], xmm6
movaps xmmword [r9 - 0x98], xmm7
movaps xmmword [r9 - 0x88], xmm8
movaps xmmword [r9 - 0x78], xmm9
movaps xmmword [r9 - 0x68], xmm10
movaps xmmword [r9 - 0x58], xmm11
movaps xmmword [r9 - 0x48], xmm12
movaps xmmword [r9 - 0x38], xmm13
movaps xmmword [r9 - 0x28], xmm14
movaps xmmword [r9 - 0x18], xmm15
movdqa xmm11, xmmword [0x18003adc0]
movdqu xmm15, xmmword [rcx]
movdqu xmm7, xmmword [rcx + 0x10]
movdqu xmm3, xmmword [r8]
lea rcx, [rsp + 0x100]
lea r10, [0x18003ac80]
lea r11, [0x18003ac90]
pshufd xmm8, xmm11, 0
pshufd xmm9, xmm11, 0x55
movdqa xmmword [rsp + 0x40], xmm8
pshufd xmm10, xmm11, 0xaa
movdqa xmmword [rsp + 0x50], xmm9
pshufd xmm11, xmm11, 0xff
movdqa xmmword [rsp + 0x60], xmm10
movdqa xmmword [rsp + 0x70], xmm11
pshufd xmm12, xmm15, 0
pshufd xmm13, xmm15, 0x55
movdqa xmmword [rcx - 0x80], xmm12
pshufd xmm14, xmm15, 0xaa
movdqa xmmword [rcx - 0x70], xmm13
pshufd xmm15, xmm15, 0xff
movdqa xmmword [rcx - 0x60], xmm14
movdqa xmmword [rcx - 0x50], xmm15
pshufd xmm4, xmm7, 0
pshufd xmm5, xmm7, 0x55
movdqa xmmword [rcx - 0x40], xmm4
pshufd xmm6, xmm7, 0xaa
movdqa xmmword [rcx - 0x30], xmm5
pshufd xmm7, xmm7, 0xff
movdqa xmmword [rcx - 0x20], xmm6
movdqa xmmword [rcx - 0x10], xmm7
pshufd xmm0, xmm3, 0
pshufd xmm1, xmm3, 0x55
paddd xmm0, xmmword [0x18003ac20]
pshufd xmm2, xmm3, 0xaa
movdqa xmmword [rcx + 0x10], xmm1
pshufd xmm3, xmm3, 0xff
movdqa xmmword [rcx + 0x20], xmm2
movdqa xmmword [rcx + 0x30], xmm3
jmp 0x18003b9c3
movdqa xmm8, xmmword [rsp + 0x40]
movdqa xmm9, xmmword [rsp + 0x50]
movdqa xmm10, xmmword [rsp + 0x60]
movdqa xmm11, xmmword [rsp + 0x70]
movdqa xmm12, xmmword [rcx - 0x80]
movdqa xmm13, xmmword [rcx - 0x70]
movdqa xmm14, xmmword [rcx - 0x60]
movdqa xmm15, xmmword [rcx - 0x50]
movdqa xmm4, xmmword [rcx - 0x40]
movdqa xmm5, xmmword [rcx - 0x30]
movdqa xmm6, xmmword [rcx - 0x20]
movdqa xmm7, xmmword [rcx - 0x10]
movdqa xmm0, xmmword [rcx]
movdqa xmm1, xmmword [rcx + 0x10]
movdqa xmm2, xmmword [rcx + 0x20]
movdqa xmm3, xmmword [rcx + 0x30]
paddd xmm0, xmmword [0x18003ac30]
movdqa xmmword [rsp + 0x20], xmm6
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmm7, xmmword [r10]
mov eax, 0xa
movdqa xmmword [rcx], xmm0
jmp 0x18003b9e0
paddd xmm8, xmm12
paddd xmm9, xmm13
pxor xmm0, xmm8
pxor xmm1, xmm9
pshufb xmm0, xmm7
pshufb xmm1, xmm7
paddd xmm4, xmm0
paddd xmm5, xmm1
pxor xmm12, xmm4
pxor xmm13, xmm5
movdqa xmm6, xmm12
pslld xmm12, 0xc
psrld xmm6, 0x14
movdqa xmm7, xmm13
pslld xmm13, 0xc
por xmm12, xmm6
psrld xmm7, 0x14
movdqa xmm6, xmmword [r11]
por xmm13, xmm7
paddd xmm8, xmm12
paddd xmm9, xmm13
pxor xmm0, xmm8
pxor xmm1, xmm9
pshufb xmm0, xmm6
pshufb xmm1, xmm6
paddd xmm4, xmm0
paddd xmm5, xmm1
pxor xmm12, xmm4
pxor xmm13, xmm5
movdqa xmm7, xmm12
pslld xmm12, 7
psrld xmm7, 0x19
movdqa xmm6, xmm13
pslld xmm13, 7
por xmm12, xmm7
psrld xmm6, 0x19
movdqa xmm7, xmmword [r10]
por xmm13, xmm6
movdqa xmmword [rsp], xmm4
movdqa xmmword [rsp + 0x10], xmm5
movdqa xmm4, xmmword [rsp + 0x20]
movdqa xmm5, xmmword [rsp + 0x30]
paddd xmm10, xmm14
paddd xmm11, xmm15
pxor xmm2, xmm10
pxor xmm3, xmm11
pshufb xmm2, xmm7
pshufb xmm3, xmm7
paddd xmm4, xmm2
paddd xmm5, xmm3
pxor xmm14, xmm4
pxor xmm15, xmm5
movdqa xmm6, xmm14
pslld xmm14, 0xc
psrld xmm6, 0x14
movdqa xmm7, xmm15
pslld xmm15, 0xc
por xmm14, xmm6
psrld xmm7, 0x14
movdqa xmm6, xmmword [r11]
por xmm15, xmm7
paddd xmm10, xmm14
paddd xmm11, xmm15
pxor xmm2, xmm10
pxor xmm3, xmm11
pshufb xmm2, xmm6
pshufb xmm3, xmm6
paddd xmm4, xmm2
paddd xmm5, xmm3
pxor xmm14, xmm4
pxor xmm15, xmm5
movdqa xmm7, xmm14
pslld xmm14, 7
psrld xmm7, 0x19
movdqa xmm6, xmm15
pslld xmm15, 7
por xmm14, xmm7
psrld xmm6, 0x19
movdqa xmm7, xmmword [r10]
por xmm15, xmm6
paddd xmm8, xmm13
paddd xmm9, xmm14
pxor xmm3, xmm8
pxor xmm0, xmm9
pshufb xmm3, xmm7
pshufb xmm0, xmm7
paddd xmm4, xmm3
paddd xmm5, xmm0
pxor xmm13, xmm4
pxor xmm14, xmm5
movdqa xmm6, xmm13
pslld xmm13, 0xc
psrld xmm6, 0x14
movdqa xmm7, xmm14
pslld xmm14, 0xc
por xmm13, xmm6
psrld xmm7, 0x14
movdqa xmm6, xmmword [r11]
por xmm14, xmm7
paddd xmm8, xmm13
paddd xmm9, xmm14
pxor xmm3, xmm8
pxor xmm0, xmm9
pshufb xmm3, xmm6
pshufb xmm0, xmm6
paddd xmm4, xmm3
paddd xmm5, xmm0
pxor xmm13, xmm4
pxor xmm14, xmm5
movdqa xmm7, xmm13
pslld xmm13, 7
psrld xmm7, 0x19
movdqa xmm6, xmm14
pslld xmm14, 7
por xmm13, xmm7
psrld xmm6, 0x19
movdqa xmm7, xmmword [r10]
por xmm14, xmm6
movdqa xmmword [rsp + 0x20], xmm4
movdqa xmmword [rsp + 0x30], xmm5
movdqa xmm4, xmmword [rsp]
movdqa xmm5, xmmword [rsp + 0x10]
paddd xmm10, xmm15
paddd xmm11, xmm12
pxor xmm1, xmm10
pxor xmm2, xmm11
pshufb xmm1, xmm7
pshufb xmm2, xmm7
paddd xmm4, xmm1
paddd xmm5, xmm2
pxor xmm15, xmm4
pxor xmm12, xmm5
movdqa xmm6, xmm15
pslld xmm15, 0xc
psrld xmm6, 0x14
movdqa xmm7, xmm12
pslld xmm12, 0xc
por xmm15, xmm6
psrld xmm7, 0x14
movdqa xmm6, xmmword [r11]
por xmm12, xmm7
paddd xmm10, xmm15
paddd xmm11, xmm12
pxor xmm1, xmm10
pxor xmm2, xmm11
pshufb xmm1, xmm6
pshufb xmm2, xmm6
paddd xmm4, xmm1
paddd xmm5, xmm2
pxor xmm15, xmm4
pxor xmm12, xmm5
movdqa xmm7, xmm15
pslld xmm15, 7
psrld xmm7, 0x19
movdqa xmm6, xmm12
pslld xmm12, 7
por xmm15, xmm7
psrld xmm6, 0x19
movdqa xmm7, xmmword [r10]
por xmm12, xmm6
dec eax
jne 0x18003b9e0
paddd xmm8, xmmword [rsp + 0x40]
paddd xmm9, xmmword [rsp + 0x50]
paddd xmm10, xmmword [rsp + 0x60]
paddd xmm11, xmmword [rsp + 0x70]
movdqa xmm6, xmm8
punpckldq xmm8, xmm9
movdqa xmm7, xmm10
punpckldq xmm10, xmm11
punpckhdq xmm6, xmm9
punpckhdq xmm7, xmm11
movdqa xmm9, xmm8
punpcklqdq xmm8, xmm10
movdqa xmm11, xmm6
punpcklqdq xmm6, xmm7
punpckhqdq xmm9, xmm10
punpckhqdq xmm11, xmm7
paddd xmm12, xmmword [rcx - 0x80]
paddd xmm13, xmmword [rcx - 0x70]
paddd xmm14, xmmword [rcx - 0x60]
paddd xmm15, xmmword [rcx - 0x50]
movdqa xmmword [rsp], xmm8
movdqa xmmword [rsp + 0x10], xmm9
movdqa xmm8, xmmword [rsp + 0x20]
movdqa xmm9, xmmword [rsp + 0x30]
movdqa xmm10, xmm12
punpckldq xmm12, xmm13
movdqa xmm7, xmm14
punpckldq xmm14, xmm15
punpckhdq xmm10, xmm13
punpckhdq xmm7, xmm15
movdqa xmm13, xmm12
punpcklqdq xmm12, xmm14
movdqa xmm15, xmm10
punpcklqdq xmm10, xmm7
punpckhqdq xmm13, xmm14
punpckhqdq xmm15, xmm7
paddd xmm4, xmmword [rcx - 0x40]
paddd xmm5, xmmword [rcx - 0x30]
paddd xmm8, xmmword [rcx - 0x20]
paddd xmm9, xmmword [rcx - 0x10]
movdqa xmmword [rsp + 0x20], xmm6
movdqa xmmword [rsp + 0x30], xmm11
movdqa xmm14, xmm4
punpckldq xmm4, xmm5
movdqa xmm7, xmm8
punpckldq xmm8, xmm9
punpckhdq xmm14, xmm5
punpckhdq xmm7, xmm9
movdqa xmm5, xmm4
punpcklqdq xmm4, xmm8
movdqa xmm9, xmm14
punpcklqdq xmm14, xmm7
punpckhqdq xmm5, xmm8
punpckhqdq xmm9, xmm7
paddd xmm0, xmmword [rcx]
paddd xmm1, xmmword [rcx + 0x10]
paddd xmm2, xmmword [rcx + 0x20]
paddd xmm3, xmmword [rcx + 0x30]
movdqa xmm8, xmm0
punpckldq xmm0, xmm1
movdqa xmm7, xmm2
punpckldq xmm2, xmm3
punpckhdq xmm8, xmm1
punpckhdq xmm7, xmm3
movdqa xmm1, xmm0
punpcklqdq xmm0, xmm2
movdqa xmm3, xmm8
punpcklqdq xmm8, xmm7
punpckhqdq xmm1, xmm2
punpckhqdq xmm3, xmm7
cmp rdx, 0x100
jb 0x18003bfa5
movdqu xmm6, xmmword [rsi]
movdqu xmm11, xmmword [rsi + 0x10]
movdqu xmm2, xmmword [rsi + 0x20]
movdqu xmm7, xmmword [rsi + 0x30]
pxor xmm6, xmmword [rsp]
pxor xmm11, xmm12
pxor xmm2, xmm4
pxor xmm7, xmm0
movdqu xmmword [rdi], xmm6
movdqu xmm6, xmmword [rsi + 0x40]
movdqu xmmword [rdi + 0x10], xmm11
movdqu xmm11, xmmword [rsi + 0x50]
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmm2, xmmword [rsi + 0x60]
movdqu xmmword [rdi + 0x30], xmm7
movdqu xmm7, xmmword [rsi + 0x70]
lea rsi, [rsi + 0x80]
pxor xmm6, xmmword [rsp + 0x10]
pxor xmm11, xmm13
pxor xmm2, xmm5
pxor xmm7, xmm1
movdqu xmmword [rdi + 0x40], xmm6
movdqu xmm6, xmmword [rsi]
movdqu xmmword [rdi + 0x50], xmm11
movdqu xmm11, xmmword [rsi + 0x10]
movdqu xmmword [rdi + 0x60], xmm2
movdqu xmm2, xmmword [rsi + 0x20]
movdqu xmmword [rdi + 0x70], xmm7
lea rdi, [rdi + 0x80]
movdqu xmm7, xmmword [rsi + 0x30]
pxor xmm6, xmmword [rsp + 0x20]
pxor xmm11, xmm10
pxor xmm2, xmm14
pxor xmm7, xmm8
movdqu xmmword [rdi], xmm6
movdqu xmm6, xmmword [rsi + 0x40]
movdqu xmmword [rdi + 0x10], xmm11
movdqu xmm11, xmmword [rsi + 0x50]
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmm2, xmmword [rsi + 0x60]
movdqu xmmword [rdi + 0x30], xmm7
movdqu xmm7, xmmword [rsi + 0x70]
lea rsi, [rsi + 0x80]
pxor xmm6, xmmword [rsp + 0x30]
pxor xmm11, xmm15
pxor xmm2, xmm9
pxor xmm7, xmm3
movdqu xmmword [rdi + 0x40], xmm6
movdqu xmmword [rdi + 0x50], xmm11
movdqu xmmword [rdi + 0x60], xmm2
movdqu xmmword [rdi + 0x70], xmm7
lea rdi, [rdi + 0x80]
sub rdx, 0x100
jne 0x18003b960
jmp 0x18003c22f
cmp rdx, 0xc0
jae 0x18003c120
cmp rdx, 0x80
jae 0x18003c060
cmp rdx, 0x40
jae 0x18003bfe0
xor r10, r10
movdqa xmmword [rsp + 0x10], xmm12
movdqa xmmword [rsp + 0x20], xmm4
movdqa xmmword [rsp + 0x30], xmm0
jmp 0x18003c215
movdqu xmm6, xmmword [rsi]
movdqu xmm11, xmmword [rsi + 0x10]
movdqu xmm2, xmmword [rsi + 0x20]
movdqu xmm7, xmmword [rsi + 0x30]
pxor xmm6, xmmword [rsp]
pxor xmm11, xmm12
pxor xmm2, xmm4
pxor xmm7, xmm0
movdqu xmmword [rdi], xmm6
movdqu xmmword [rdi + 0x10], xmm11
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmmword [rdi + 0x30], xmm7
je 0x18003c22f
movdqa xmm6, xmmword [rsp + 0x10]
lea rsi, [rsi + 0x40]
xor r10, r10
movdqa xmmword [rsp], xmm6
movdqa xmmword [rsp + 0x10], xmm13
lea rdi, [rdi + 0x40]
movdqa xmmword [rsp + 0x20], xmm5
sub rdx, 0x40
movdqa xmmword [rsp + 0x30], xmm1
jmp 0x18003c215
movdqu xmm6, xmmword [rsi]
movdqu xmm11, xmmword [rsi + 0x10]
movdqu xmm2, xmmword [rsi + 0x20]
movdqu xmm7, xmmword [rsi + 0x30]
pxor xmm6, xmmword [rsp]
pxor xmm11, xmm12
pxor xmm2, xmm4
pxor xmm7, xmm0
movdqu xmmword [rdi], xmm6
movdqu xmm6, xmmword [rsi + 0x40]
movdqu xmmword [rdi + 0x10], xmm11
movdqu xmm11, xmmword [rsi + 0x50]
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmm2, xmmword [rsi + 0x60]
movdqu xmmword [rdi + 0x30], xmm7
movdqu xmm7, xmmword [rsi + 0x70]
pxor xmm6, xmmword [rsp + 0x10]
pxor xmm11, xmm13
pxor xmm2, xmm5
pxor xmm7, xmm1
movdqu xmmword [rdi + 0x40], xmm6
movdqu xmmword [rdi + 0x50], xmm11
movdqu xmmword [rdi + 0x60], xmm2
movdqu xmmword [rdi + 0x70], xmm7
je 0x18003c22f
movdqa xmm6, xmmword [rsp + 0x20]
lea rsi, [rsi + 0x80]
xor r10, r10
movdqa xmmword [rsp], xmm6
movdqa xmmword [rsp + 0x10], xmm10
lea rdi, [rdi + 0x80]
movdqa xmmword [rsp + 0x20], xmm14
sub rdx, 0x80
movdqa xmmword [rsp + 0x30], xmm8
jmp 0x18003c215
movdqu xmm6, xmmword [rsi]
movdqu xmm11, xmmword [rsi + 0x10]
movdqu xmm2, xmmword [rsi + 0x20]
movdqu xmm7, xmmword [rsi + 0x30]
pxor xmm6, xmmword [rsp]
pxor xmm11, xmm12
pxor xmm2, xmm4
pxor xmm7, xmm0
movdqu xmmword [rdi], xmm6
movdqu xmm6, xmmword [rsi + 0x40]
movdqu xmmword [rdi + 0x10], xmm11
movdqu xmm11, xmmword [rsi + 0x50]
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmm2, xmmword [rsi + 0x60]
movdqu xmmword [rdi + 0x30], xmm7
movdqu xmm7, xmmword [rsi + 0x70]
lea rsi, [rsi + 0x80]
pxor xmm6, xmmword [rsp + 0x10]
pxor xmm11, xmm13
pxor xmm2, xmm5
pxor xmm7, xmm1
movdqu xmmword [rdi + 0x40], xmm6
movdqu xmm6, xmmword [rsi]
movdqu xmmword [rdi + 0x50], xmm11
movdqu xmm11, xmmword [rsi + 0x10]
movdqu xmmword [rdi + 0x60], xmm2
movdqu xmm2, xmmword [rsi + 0x20]
movdqu xmmword [rdi + 0x70], xmm7
lea rdi, [rdi + 0x80]
movdqu xmm7, xmmword [rsi + 0x30]
pxor xmm6, xmmword [rsp + 0x20]
pxor xmm11, xmm10
pxor xmm2, xmm14
pxor xmm7, xmm8
movdqu xmmword [rdi], xmm6
movdqu xmmword [rdi + 0x10], xmm11
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmmword [rdi + 0x30], xmm7
je 0x18003c22f
movdqa xmm6, xmmword [rsp + 0x30]
lea rsi, [rsi + 0x40]
xor r10, r10
movdqa xmmword [rsp], xmm6
movdqa xmmword [rsp + 0x10], xmm15
lea rdi, [rdi + 0x40]
movdqa xmmword [rsp + 0x20], xmm9
sub rdx, 0xc0
movdqa xmmword [rsp + 0x30], xmm3
movzx eax, byte [rsi + r10]
movzx ecx, byte [rsp + r10]
lea r10, [r10 + 1]
xor eax, ecx
mov byte [rdi + r10 - 1], al
dec rdx
jne 0x18003c215
movaps xmm6, xmmword [r9 - 0xa8]
movaps xmm7, xmmword [r9 - 0x98]
movaps xmm8, xmmword [r9 - 0x88]
movaps xmm9, xmmword [r9 - 0x78]
movaps xmm10, xmmword [r9 - 0x68]
movaps xmm11, xmmword [r9 - 0x58]
movaps xmm12, xmmword [r9 - 0x48]
movaps xmm13, xmmword [r9 - 0x38]
movaps xmm14, xmmword [r9 - 0x28]
movaps xmm15, xmmword [r9 - 0x18]
lea rsp, [r9]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov r9, rsp
sub rsp, 0x1e8
movaps xmmword [r9 - 0xa8], xmm6
movaps xmmword [r9 - 0x98], xmm7
movaps xmmword [r9 - 0x88], xmm8
movaps xmmword [r9 - 0x78], xmm9
movaps xmmword [r9 - 0x68], xmm10
movaps xmmword [r9 - 0x58], xmm11
movaps xmmword [r9 - 0x48], xmm12
movaps xmmword [r9 - 0x38], xmm13
movaps xmmword [r9 - 0x28], xmm14
movaps xmmword [r9 - 0x18], xmm15
vzeroupper
vmovdqa xmm11, xmmword [0x18003adc0]
vmovdqu xmm3, xmmword [rcx]
vmovdqu xmm15, xmmword [rcx + 0x10]
vmovdqu xmm7, xmmword [r8]
lea rcx, [rsp + 0x100]
vpshufd xmm8, xmm11, 0
vpshufd xmm9, xmm11, 0x55
vmovdqa xmmword [rsp + 0x40], xmm8
vpshufd xmm10, xmm11, 0xaa
vmovdqa xmmword [rsp + 0x50], xmm9
vpshufd xmm11, xmm11, 0xff
vmovdqa xmmword [rsp + 0x60], xmm10
vmovdqa xmmword [rsp + 0x70], xmm11
vpshufd xmm0, xmm3, 0
vpshufd xmm1, xmm3, 0x55
vmovdqa xmmword [rcx - 0x80], xmm0
vpshufd xmm2, xmm3, 0xaa
vmovdqa xmmword [rcx - 0x70], xmm1
vpshufd xmm3, xmm3, 0xff
vmovdqa xmmword [rcx - 0x60], xmm2
vmovdqa xmmword [rcx - 0x50], xmm3
vpshufd xmm12, xmm15, 0
vpshufd xmm13, xmm15, 0x55
vmovdqa xmmword [rcx - 0x40], xmm12
vpshufd xmm14, xmm15, 0xaa
vmovdqa xmmword [rcx - 0x30], xmm13
vpshufd xmm15, xmm15, 0xff
vmovdqa xmmword [rcx - 0x20], xmm14
vmovdqa xmmword [rcx - 0x10], xmm15
vpshufd xmm4, xmm7, 0
vpshufd xmm5, xmm7, 0x55
vpaddd xmm4, xmm4, xmmword [0x18003ac20]
vpshufd xmm6, xmm7, 0xaa
vmovdqa xmmword [rcx + 0x10], xmm5
vpshufd xmm7, xmm7, 0xff
vmovdqa xmmword [rcx + 0x20], xmm6
vmovdqa xmmword [rcx + 0x30], xmm7
jmp 0x18003c41b
vmovdqa xmm8, xmmword [rsp + 0x40]
vmovdqa xmm9, xmmword [rsp + 0x50]
vmovdqa xmm10, xmmword [rsp + 0x60]
vmovdqa xmm11, xmmword [rsp + 0x70]
vmovdqa xmm0, xmmword [rcx - 0x80]
vmovdqa xmm1, xmmword [rcx - 0x70]
vmovdqa xmm2, xmmword [rcx - 0x60]
vmovdqa xmm3, xmmword [rcx - 0x50]
vmovdqa xmm12, xmmword [rcx - 0x40]
vmovdqa xmm13, xmmword [rcx - 0x30]
vmovdqa xmm14, xmmword [rcx - 0x20]
vmovdqa xmm15, xmmword [rcx - 0x10]
vmovdqa xmm4, xmmword [rcx]
vmovdqa xmm5, xmmword [rcx + 0x10]
vmovdqa xmm6, xmmword [rcx + 0x20]
vmovdqa xmm7, xmmword [rcx + 0x30]
vpaddd xmm4, xmm4, xmmword [0x18003ac30]
mov eax, 0xa
vmovdqa xmmword [rcx], xmm4
jmp 0x18003c440
vpaddd xmm8, xmm8, xmm0
vpaddd xmm9, xmm9, xmm1
vpaddd xmm10, xmm10, xmm2
vpaddd xmm11, xmm11, xmm3
vpxor xmm4, xmm8, xmm4
vpxor xmm5, xmm9, xmm5
vpxor xmm6, xmm10, xmm6
vpxor xmm7, xmm11, xmm7
vprotd xmm4, xmm4, 0x10
vprotd xmm5, xmm5, 0x10
vprotd xmm6, xmm6, 0x10
vprotd xmm7, xmm7, 0x10
vpaddd xmm12, xmm12, xmm4
vpaddd xmm13, xmm13, xmm5
vpaddd xmm14, xmm14, xmm6
vpaddd xmm15, xmm15, xmm7
vpxor xmm0, xmm12, xmm0
vpxor xmm1, xmm13, xmm1
vpxor xmm2, xmm2, xmm14
vpxor xmm3, xmm3, xmm15
vprotd xmm0, xmm0, 0xc
vprotd xmm1, xmm1, 0xc
vprotd xmm2, xmm2, 0xc
vprotd xmm3, xmm3, 0xc
vpaddd xmm8, xmm0, xmm8
vpaddd xmm9, xmm1, xmm9
vpaddd xmm10, xmm10, xmm2
vpaddd xmm11, xmm11, xmm3
vpxor xmm4, xmm8, xmm4
vpxor xmm5, xmm9, xmm5
vpxor xmm6, xmm10, xmm6
vpxor xmm7, xmm11, xmm7
vprotd xmm4, xmm4, 8
vprotd xmm5, xmm5, 8
vprotd xmm6, xmm6, 8
vprotd xmm7, xmm7, 8
vpaddd xmm12, xmm12, xmm4
vpaddd xmm13, xmm13, xmm5
vpaddd xmm14, xmm14, xmm6
vpaddd xmm15, xmm15, xmm7
vpxor xmm0, xmm12, xmm0
vpxor xmm1, xmm13, xmm1
vpxor xmm2, xmm2, xmm14
vpxor xmm3, xmm3, xmm15
vprotd xmm0, xmm0, 7
vprotd xmm1, xmm1, 7
vprotd xmm2, xmm2, 7
vprotd xmm3, xmm3, 7
vpaddd xmm8, xmm8, xmm1
vpaddd xmm9, xmm9, xmm2
vpaddd xmm10, xmm10, xmm3
vpaddd xmm11, xmm11, xmm0
vpxor xmm7, xmm8, xmm7
vpxor xmm4, xmm9, xmm4
vpxor xmm5, xmm10, xmm5
vpxor xmm6, xmm11, xmm6
vprotd xmm7, xmm7, 0x10
vprotd xmm4, xmm4, 0x10
vprotd xmm5, xmm5, 0x10
vprotd xmm6, xmm6, 0x10
vpaddd xmm14, xmm14, xmm7
vpaddd xmm15, xmm15, xmm4
vpaddd xmm12, xmm12, xmm5
vpaddd xmm13, xmm13, xmm6
vpxor xmm1, xmm14, xmm1
vpxor xmm2, xmm15, xmm2
vpxor xmm3, xmm3, xmm12
vpxor xmm0, xmm0, xmm13
vprotd xmm1, xmm1, 0xc
vprotd xmm2, xmm2, 0xc
vprotd xmm3, xmm3, 0xc
vprotd xmm0, xmm0, 0xc
vpaddd xmm8, xmm1, xmm8
vpaddd xmm9, xmm2, xmm9
vpaddd xmm10, xmm10, xmm3
vpaddd xmm11, xmm11, xmm0
vpxor xmm7, xmm8, xmm7
vpxor xmm4, xmm9, xmm4
vpxor xmm5, xmm10, xmm5
vpxor xmm6, xmm11, xmm6
vprotd xmm7, xmm7, 8
vprotd xmm4, xmm4, 8
vprotd xmm5, xmm5, 8
vprotd xmm6, xmm6, 8
vpaddd xmm14, xmm14, xmm7
vpaddd xmm15, xmm15, xmm4
vpaddd xmm12, xmm12, xmm5
vpaddd xmm13, xmm13, xmm6
vpxor xmm1, xmm14, xmm1
vpxor xmm2, xmm15, xmm2
vpxor xmm3, xmm3, xmm12
vpxor xmm0, xmm0, xmm13
vprotd xmm1, xmm1, 7
vprotd xmm2, xmm2, 7
vprotd xmm3, xmm3, 7
vprotd xmm0, xmm0, 7
dec eax
jne 0x18003c440
vpaddd xmm8, xmm8, xmmword [rsp + 0x40]
vpaddd xmm9, xmm9, xmmword [rsp + 0x50]
vpaddd xmm10, xmm10, xmmword [rsp + 0x60]
vpaddd xmm11, xmm11, xmmword [rsp + 0x70]
vmovdqa xmmword [rsp + 0x20], xmm14
vmovdqa xmmword [rsp + 0x30], xmm15
vpunpckldq xmm14, xmm8, xmm9
vpunpckldq xmm15, xmm10, xmm11
vpunpckhdq xmm8, xmm8, xmm9
vpunpckhdq xmm10, xmm10, xmm11
vpunpcklqdq xmm9, xmm14, xmm15
vpunpckhqdq xmm14, xmm14, xmm15
vpunpcklqdq xmm11, xmm8, xmm10
vpunpckhqdq xmm8, xmm8, xmm10
vpaddd xmm0, xmm0, xmmword [rcx - 0x80]
vpaddd xmm1, xmm1, xmmword [rcx - 0x70]
vpaddd xmm2, xmm2, xmmword [rcx - 0x60]
vpaddd xmm3, xmm3, xmmword [rcx - 0x50]
vmovdqa xmmword [rsp], xmm9
vmovdqa xmmword [rsp + 0x10], xmm14
vmovdqa xmm9, xmmword [rsp + 0x20]
vmovdqa xmm14, xmmword [rsp + 0x30]
vpunpckldq xmm10, xmm0, xmm1
vpunpckldq xmm15, xmm2, xmm3
vpunpckhdq xmm0, xmm0, xmm1
vpunpckhdq xmm2, xmm2, xmm3
vpunpcklqdq xmm1, xmm10, xmm15
vpunpckhqdq xmm10, xmm10, xmm15
vpunpcklqdq xmm3, xmm0, xmm2
vpunpckhqdq xmm0, xmm0, xmm2
vpaddd xmm12, xmm12, xmmword [rcx - 0x40]
vpaddd xmm13, xmm13, xmmword [rcx - 0x30]
vpaddd xmm9, xmm9, xmmword [rcx - 0x20]
vpaddd xmm14, xmm14, xmmword [rcx - 0x10]
vpunpckldq xmm2, xmm12, xmm13
vpunpckldq xmm15, xmm9, xmm14
vpunpckhdq xmm12, xmm12, xmm13
vpunpckhdq xmm9, xmm9, xmm14
vpunpcklqdq xmm13, xmm2, xmm15
vpunpckhqdq xmm2, xmm2, xmm15
vpunpcklqdq xmm14, xmm12, xmm9
vpunpckhqdq xmm12, xmm12, xmm9
vpaddd xmm4, xmm4, xmmword [rcx]
vpaddd xmm5, xmm5, xmmword [rcx + 0x10]
vpaddd xmm6, xmm6, xmmword [rcx + 0x20]
vpaddd xmm7, xmm7, xmmword [rcx + 0x30]
vpunpckldq xmm9, xmm4, xmm5
vpunpckldq xmm15, xmm6, xmm7
vpunpckhdq xmm4, xmm4, xmm5
vpunpckhdq xmm6, xmm6, xmm7
vpunpcklqdq xmm5, xmm9, xmm15
vpunpckhqdq xmm9, xmm9, xmm15
vpunpcklqdq xmm7, xmm4, xmm6
vpunpckhqdq xmm4, xmm4, xmm6
vmovdqa xmm6, xmmword [rsp]
vmovdqa xmm15, xmmword [rsp + 0x10]
cmp rdx, 0x100
jb 0x18003c800
vpxor xmm6, xmm6, xmmword [rsi]
vpxor xmm1, xmm1, xmmword [rsi + 0x10]
vpxor xmm13, xmm13, xmmword [rsi + 0x20]
vpxor xmm5, xmm5, xmmword [rsi + 0x30]
vpxor xmm15, xmm15, xmmword [rsi + 0x40]
vpxor xmm10, xmm10, xmmword [rsi + 0x50]
vpxor xmm2, xmm2, xmmword [rsi + 0x60]
vpxor xmm9, xmm9, xmmword [rsi + 0x70]
lea rsi, [rsi + 0x80]
vpxor xmm11, xmm11, xmmword [rsi]
vpxor xmm3, xmm3, xmmword [rsi + 0x10]
vpxor xmm14, xmm14, xmmword [rsi + 0x20]
vpxor xmm7, xmm7, xmmword [rsi + 0x30]
vpxor xmm8, xmm8, xmmword [rsi + 0x40]
vpxor xmm0, xmm0, xmmword [rsi + 0x50]
vpxor xmm12, xmm12, xmmword [rsi + 0x60]
vpxor xmm4, xmm4, xmmword [rsi + 0x70]
lea rsi, [rsi + 0x80]
vmovdqu xmmword [rdi], xmm6
vmovdqu xmmword [rdi + 0x10], xmm1
vmovdqu xmmword [rdi + 0x20], xmm13
vmovdqu xmmword [rdi + 0x30], xmm5
vmovdqu xmmword [rdi + 0x40], xmm15
vmovdqu xmmword [rdi + 0x50], xmm10
vmovdqu xmmword [rdi + 0x60], xmm2
vmovdqu xmmword [rdi + 0x70], xmm9
lea rdi, [rdi + 0x80]
vmovdqu xmmword [rdi], xmm11
vmovdqu xmmword [rdi + 0x10], xmm3
vmovdqu xmmword [rdi + 0x20], xmm14
vmovdqu xmmword [rdi + 0x30], xmm7
vmovdqu xmmword [rdi + 0x40], xmm8
vmovdqu xmmword [rdi + 0x50], xmm0
vmovdqu xmmword [rdi + 0x60], xmm12
vmovdqu xmmword [rdi + 0x70], xmm4
lea rdi, [rdi + 0x80]
sub rdx, 0x100
jne 0x18003c3c0
jmp 0x18003ca07
cmp rdx, 0xc0
jae 0x18003c940
cmp rdx, 0x80
jae 0x18003c8a0
cmp rdx, 0x40
jae 0x18003c840
xor r10, r10
vmovdqa xmmword [rsp], xmm6
vmovdqa xmmword [rsp + 0x10], xmm1
vmovdqa xmmword [rsp + 0x20], xmm13
vmovdqa xmmword [rsp + 0x30], xmm5
jmp 0x18003c9ed
vpxor xmm6, xmm6, xmmword [rsi]
vpxor xmm1, xmm1, xmmword [rsi + 0x10]
vpxor xmm13, xmm13, xmmword [rsi + 0x20]
vpxor xmm5, xmm5, xmmword [rsi + 0x30]
vmovdqu xmmword [rdi], xmm6
vmovdqu xmmword [rdi + 0x10], xmm1
vmovdqu xmmword [rdi + 0x20], xmm13
vmovdqu xmmword [rdi + 0x30], xmm5
je 0x18003ca07
lea rsi, [rsi + 0x40]
vmovdqa xmmword [rsp], xmm15
xor r10, r10
vmovdqa xmmword [rsp + 0x10], xmm10
lea rdi, [rdi + 0x40]
vmovdqa xmmword [rsp + 0x20], xmm2
sub rdx, 0x40
vmovdqa xmmword [rsp + 0x30], xmm9
jmp 0x18003c9ed
vpxor xmm6, xmm6, xmmword [rsi]
vpxor xmm1, xmm1, xmmword [rsi + 0x10]
vpxor xmm13, xmm13, xmmword [rsi + 0x20]
vpxor xmm5, xmm5, xmmword [rsi + 0x30]
vpxor xmm15, xmm15, xmmword [rsi + 0x40]
vpxor xmm10, xmm10, xmmword [rsi + 0x50]
vpxor xmm2, xmm2, xmmword [rsi + 0x60]
vpxor xmm9, xmm9, xmmword [rsi + 0x70]
vmovdqu xmmword [rdi], xmm6
vmovdqu xmmword [rdi + 0x10], xmm1
vmovdqu xmmword [rdi + 0x20], xmm13
vmovdqu xmmword [rdi + 0x30], xmm5
vmovdqu xmmword [rdi + 0x40], xmm15
vmovdqu xmmword [rdi + 0x50], xmm10
vmovdqu xmmword [rdi + 0x60], xmm2
vmovdqu xmmword [rdi + 0x70], xmm9
je 0x18003ca07
lea rsi, [rsi + 0x80]
vmovdqa xmmword [rsp], xmm11
xor r10, r10
vmovdqa xmmword [rsp + 0x10], xmm3
lea rdi, [rdi + 0x80]
vmovdqa xmmword [rsp + 0x20], xmm14
sub rdx, 0x80
vmovdqa xmmword [rsp + 0x30], xmm7
jmp 0x18003c9ed
vpxor xmm6, xmm6, xmmword [rsi]
vpxor xmm1, xmm1, xmmword [rsi + 0x10]
vpxor xmm13, xmm13, xmmword [rsi + 0x20]
vpxor xmm5, xmm5, xmmword [rsi + 0x30]
vpxor xmm15, xmm15, xmmword [rsi + 0x40]
vpxor xmm10, xmm10, xmmword [rsi + 0x50]
vpxor xmm2, xmm2, xmmword [rsi + 0x60]
vpxor xmm9, xmm9, xmmword [rsi + 0x70]
lea rsi, [rsi + 0x80]
vpxor xmm11, xmm11, xmmword [rsi]
vpxor xmm3, xmm3, xmmword [rsi + 0x10]
vpxor xmm14, xmm14, xmmword [rsi + 0x20]
vpxor xmm7, xmm7, xmmword [rsi + 0x30]
vmovdqu xmmword [rdi], xmm6
vmovdqu xmmword [rdi + 0x10], xmm1
vmovdqu xmmword [rdi + 0x20], xmm13
vmovdqu xmmword [rdi + 0x30], xmm5
vmovdqu xmmword [rdi + 0x40], xmm15
vmovdqu xmmword [rdi + 0x50], xmm10
vmovdqu xmmword [rdi + 0x60], xmm2
vmovdqu xmmword [rdi + 0x70], xmm9
lea rdi, [rdi + 0x80]
vmovdqu xmmword [rdi], xmm11
vmovdqu xmmword [rdi + 0x10], xmm3
vmovdqu xmmword [rdi + 0x20], xmm14
vmovdqu xmmword [rdi + 0x30], xmm7
je 0x18003ca07
lea rsi, [rsi + 0x40]
vmovdqa xmmword [rsp], xmm8
xor r10, r10
vmovdqa xmmword [rsp + 0x10], xmm0
lea rdi, [rdi + 0x40]
vmovdqa xmmword [rsp + 0x20], xmm12
sub rdx, 0xc0
vmovdqa xmmword [rsp + 0x30], xmm4
movzx eax, byte [rsi + r10]
movzx ecx, byte [rsp + r10]
lea r10, [r10 + 1]
xor eax, ecx
mov byte [rdi + r10 - 1], al
dec rdx
jne 0x18003c9ed
vzeroupper
movaps xmm6, xmmword [r9 - 0xa8]
movaps xmm7, xmmword [r9 - 0x98]
movaps xmm8, xmmword [r9 - 0x88]
movaps xmm9, xmmword [r9 - 0x78]
movaps xmm10, xmmword [r9 - 0x68]
movaps xmm11, xmmword [r9 - 0x58]
movaps xmm12, xmmword [r9 - 0x48]
movaps xmm13, xmmword [r9 - 0x38]
movaps xmm14, xmmword [r9 - 0x28]
movaps xmm15, xmmword [r9 - 0x18]
lea rsp, [r9]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov r9, rsp
sub rsp, 0x328
and rsp, 0xffffffffffffffe0
movaps xmmword [r9 - 0xa8], xmm6
movaps xmmword [r9 - 0x98], xmm7
movaps xmmword [r9 - 0x88], xmm8
movaps xmmword [r9 - 0x78], xmm9
movaps xmmword [r9 - 0x68], xmm10
movaps xmmword [r9 - 0x58], xmm11
movaps xmmword [r9 - 0x48], xmm12
movaps xmmword [r9 - 0x38], xmm13
movaps xmmword [r9 - 0x28], xmm14
movaps xmmword [r9 - 0x18], xmm15
vzeroupper
vbroadcasti128 ymm11, xmmword [0x18003adc0]
vbroadcasti128 ymm3, xmmword [rcx]
vbroadcasti128 ymm15, xmmword [rcx + 0x10]
vbroadcasti128 ymm7, xmmword [r8]
lea rcx, [rsp + 0x100]
lea rax, [rsp + 0x200]
lea r10, [0x18003ac80]
lea r11, [0x18003ac90]
vpshufd ymm8, ymm11, 0
vpshufd ymm9, ymm11, 0x55
vmovdqa ymmword [rcx - 0x80], ymm8
vpshufd ymm10, ymm11, 0xaa
vmovdqa ymmword [rcx - 0x60], ymm9
vpshufd ymm11, ymm11, 0xff
vmovdqa ymmword [rcx - 0x40], ymm10
vmovdqa ymmword [rcx - 0x20], ymm11
vpshufd ymm0, ymm3, 0
vpshufd ymm1, ymm3, 0x55
vmovdqa ymmword [rcx], ymm0
vpshufd ymm2, ymm3, 0xaa
vmovdqa ymmword [rcx + 0x20], ymm1
vpshufd ymm3, ymm3, 0xff
vmovdqa ymmword [rcx + 0x40], ymm2
vmovdqa ymmword [rcx + 0x60], ymm3
vpshufd ymm12, ymm15, 0
vpshufd ymm13, ymm15, 0x55
vmovdqa ymmword [rax - 0x80], ymm12
vpshufd ymm14, ymm15, 0xaa
vmovdqa ymmword [rax - 0x60], ymm13
vpshufd ymm15, ymm15, 0xff
vmovdqa ymmword [rax - 0x40], ymm14
vmovdqa ymmword [rax - 0x20], ymm15
vpshufd ymm4, ymm7, 0
vpshufd ymm5, ymm7, 0x55
vpaddd ymm4, ymm4, ymmword [0x18003ac40]
vpshufd ymm6, ymm7, 0xaa
vmovdqa ymmword [rax + 0x20], ymm5
vpshufd ymm7, ymm7, 0xff
vmovdqa ymmword [rax + 0x40], ymm6
vmovdqa ymmword [rax + 0x60], ymm7
jmp 0x18003cc16
vmovdqa ymm8, ymmword [rcx - 0x80]
vmovdqa ymm9, ymmword [rcx - 0x60]
vmovdqa ymm10, ymmword [rcx - 0x40]
vmovdqa ymm11, ymmword [rcx - 0x20]
vmovdqa ymm0, ymmword [rcx]
vmovdqa ymm1, ymmword [rcx + 0x20]
vmovdqa ymm2, ymmword [rcx + 0x40]
vmovdqa ymm3, ymmword [rcx + 0x60]
vmovdqa ymm12, ymmword [rax - 0x80]
vmovdqa ymm13, ymmword [rax - 0x60]
vmovdqa ymm14, ymmword [rax - 0x40]
vmovdqa ymm15, ymmword [rax - 0x20]
vmovdqa ymm4, ymmword [rax]
vmovdqa ymm5, ymmword [rax + 0x20]
vmovdqa ymm6, ymmword [rax + 0x40]
vmovdqa ymm7, ymmword [rax + 0x60]
vpaddd ymm4, ymm4, ymmword [0x18003ac60]
vmovdqa ymmword [rsp + 0x40], ymm14
vmovdqa ymmword [rsp + 0x60], ymm15
vbroadcasti128 ymm15, xmmword [r10]
vmovdqa ymmword [rax], ymm4
mov eax, 0xa
jmp 0x18003cc40
vpaddd ymm8, ymm8, ymm0
vpxor ymm4, ymm8, ymm4
vpshufb ymm4, ymm4, ymm15
vpaddd ymm9, ymm9, ymm1
vpxor ymm5, ymm9, ymm5
vpshufb ymm5, ymm5, ymm15
vpaddd ymm12, ymm12, ymm4
vpxor ymm0, ymm12, ymm0
vpslld ymm14, ymm0, 0xc
vpsrld ymm0, ymm0, 0x14
vpor ymm0, ymm14, ymm0
vbroadcasti128 ymm14, xmmword [r11]
vpaddd ymm13, ymm13, ymm5
vpxor ymm1, ymm13, ymm1
vpslld ymm15, ymm1, 0xc
vpsrld ymm1, ymm1, 0x14
vpor ymm1, ymm15, ymm1
vpaddd ymm8, ymm8, ymm0
vpxor ymm4, ymm8, ymm4
vpshufb ymm4, ymm4, ymm14
vpaddd ymm9, ymm9, ymm1
vpxor ymm5, ymm9, ymm5
vpshufb ymm5, ymm5, ymm14
vpaddd ymm12, ymm12, ymm4
vpxor ymm0, ymm12, ymm0
vpslld ymm15, ymm0, 7
vpsrld ymm0, ymm0, 0x19
vpor ymm0, ymm15, ymm0
vbroadcasti128 ymm15, xmmword [r10]
vpaddd ymm13, ymm13, ymm5
vpxor ymm1, ymm13, ymm1
vpslld ymm14, ymm1, 7
vpsrld ymm1, ymm1, 0x19
vpor ymm1, ymm14, ymm1
vmovdqa ymmword [rsp], ymm12
vmovdqa ymmword [rsp + 0x20], ymm13
vmovdqa ymm12, ymmword [rsp + 0x40]
vmovdqa ymm13, ymmword [rsp + 0x60]
vpaddd ymm10, ymm10, ymm2
vpxor ymm6, ymm10, ymm6
vpshufb ymm6, ymm6, ymm15
vpaddd ymm11, ymm11, ymm3
vpxor ymm7, ymm11, ymm7
vpshufb ymm7, ymm7, ymm15
vpaddd ymm12, ymm12, ymm6
vpxor ymm2, ymm12, ymm2
vpslld ymm14, ymm2, 0xc
vpsrld ymm2, ymm2, 0x14
vpor ymm2, ymm14, ymm2
vbroadcasti128 ymm14, xmmword [r11]
vpaddd ymm13, ymm13, ymm7
vpxor ymm3, ymm13, ymm3
vpslld ymm15, ymm3, 0xc
vpsrld ymm3, ymm3, 0x14
vpor ymm3, ymm15, ymm3
vpaddd ymm10, ymm10, ymm2
vpxor ymm6, ymm10, ymm6
vpshufb ymm6, ymm6, ymm14
vpaddd ymm11, ymm11, ymm3
vpxor ymm7, ymm11, ymm7
vpshufb ymm7, ymm7, ymm14
vpaddd ymm12, ymm12, ymm6
vpxor ymm2, ymm12, ymm2
vpslld ymm15, ymm2, 7
vpsrld ymm2, ymm2, 0x19
vpor ymm2, ymm15, ymm2
vbroadcasti128 ymm15, xmmword [r10]
vpaddd ymm13, ymm13, ymm7
vpxor ymm3, ymm13, ymm3
vpslld ymm14, ymm3, 7
vpsrld ymm3, ymm3, 0x19
vpor ymm3, ymm14, ymm3
vpaddd ymm8, ymm8, ymm1
vpxor ymm7, ymm8, ymm7
vpshufb ymm7, ymm7, ymm15
vpaddd ymm9, ymm9, ymm2
vpxor ymm4, ymm9, ymm4
vpshufb ymm4, ymm4, ymm15
vpaddd ymm12, ymm12, ymm7
vpxor ymm1, ymm12, ymm1
vpslld ymm14, ymm1, 0xc
vpsrld ymm1, ymm1, 0x14
vpor ymm1, ymm14, ymm1
vbroadcasti128 ymm14, xmmword [r11]
vpaddd ymm13, ymm13, ymm4
vpxor ymm2, ymm13, ymm2
vpslld ymm15, ymm2, 0xc
vpsrld ymm2, ymm2, 0x14
vpor ymm2, ymm15, ymm2
vpaddd ymm8, ymm8, ymm1
vpxor ymm7, ymm8, ymm7
vpshufb ymm7, ymm7, ymm14
vpaddd ymm9, ymm9, ymm2
vpxor ymm4, ymm9, ymm4
vpshufb ymm4, ymm4, ymm14
vpaddd ymm12, ymm12, ymm7
vpxor ymm1, ymm12, ymm1
vpslld ymm15, ymm1, 7
vpsrld ymm1, ymm1, 0x19
vpor ymm1, ymm15, ymm1
vbroadcasti128 ymm15, xmmword [r10]
vpaddd ymm13, ymm13, ymm4
vpxor ymm2, ymm13, ymm2
vpslld ymm14, ymm2, 7
vpsrld ymm2, ymm2, 0x19
vpor ymm2, ymm14, ymm2
vmovdqa ymmword [rsp + 0x40], ymm12
vmovdqa ymmword [rsp + 0x60], ymm13
vmovdqa ymm12, ymmword [rsp]
vmovdqa ymm13, ymmword [rsp + 0x20]
vpaddd ymm10, ymm10, ymm3
vpxor ymm5, ymm10, ymm5
vpshufb ymm5, ymm5, ymm15
vpaddd ymm11, ymm11, ymm0
vpxor ymm6, ymm11, ymm6
vpshufb ymm6, ymm6, ymm15
vpaddd ymm12, ymm12, ymm5
vpxor ymm3, ymm12, ymm3
vpslld ymm14, ymm3, 0xc
vpsrld ymm3, ymm3, 0x14
vpor ymm3, ymm14, ymm3
vbroadcasti128 ymm14, xmmword [r11]
vpaddd ymm13, ymm13, ymm6
vpxor ymm0, ymm13, ymm0
vpslld ymm15, ymm0, 0xc
vpsrld ymm0, ymm0, 0x14
vpor ymm0, ymm15, ymm0
vpaddd ymm10, ymm10, ymm3
vpxor ymm5, ymm10, ymm5
vpshufb ymm5, ymm5, ymm14
vpaddd ymm11, ymm11, ymm0
vpxor ymm6, ymm11, ymm6
vpshufb ymm6, ymm6, ymm14
vpaddd ymm12, ymm12, ymm5
vpxor ymm3, ymm12, ymm3
vpslld ymm15, ymm3, 7
vpsrld ymm3, ymm3, 0x19
vpor ymm3, ymm15, ymm3
vbroadcasti128 ymm15, xmmword [r10]
vpaddd ymm13, ymm13, ymm6
vpxor ymm0, ymm13, ymm0
vpslld ymm14, ymm0, 7
vpsrld ymm0, ymm0, 0x19
vpor ymm0, ymm14, ymm0
dec eax
jne 0x18003cc40
lea rax, [rsp + 0x200]
vpaddd ymm8, ymm8, ymmword [rcx - 0x80]
vpaddd ymm9, ymm9, ymmword [rcx - 0x60]
vpaddd ymm10, ymm10, ymmword [rcx - 0x40]
vpaddd ymm11, ymm11, ymmword [rcx - 0x20]
vpunpckldq ymm14, ymm8, ymm9
vpunpckldq ymm15, ymm10, ymm11
vpunpckhdq ymm8, ymm8, ymm9
vpunpckhdq ymm10, ymm10, ymm11
vpunpcklqdq ymm9, ymm14, ymm15
vpunpckhqdq ymm14, ymm14, ymm15
vpunpcklqdq ymm11, ymm8, ymm10
vpunpckhqdq ymm8, ymm8, ymm10
vpaddd ymm0, ymm0, ymmword [rcx]
vpaddd ymm1, ymm1, ymmword [rcx + 0x20]
vpaddd ymm2, ymm2, ymmword [rcx + 0x40]
vpaddd ymm3, ymm3, ymmword [rcx + 0x60]
vpunpckldq ymm10, ymm0, ymm1
vpunpckldq ymm15, ymm2, ymm3
vpunpckhdq ymm0, ymm0, ymm1
vpunpckhdq ymm2, ymm2, ymm3
vpunpcklqdq ymm1, ymm10, ymm15
vpunpckhqdq ymm10, ymm10, ymm15
vpunpcklqdq ymm3, ymm0, ymm2
vpunpckhqdq ymm0, ymm0, ymm2
vperm2i128 ymm15, ymm9, ymm1, 0x20
vperm2i128 ymm1, ymm9, ymm1, 0x31
vperm2i128 ymm9, ymm14, ymm10, 0x20
vperm2i128 ymm10, ymm14, ymm10, 0x31
vperm2i128 ymm14, ymm11, ymm3, 0x20
vperm2i128 ymm3, ymm11, ymm3, 0x31
vperm2i128 ymm11, ymm8, ymm0, 0x20
vperm2i128 ymm0, ymm8, ymm0, 0x31
vmovdqa ymmword [rsp], ymm15
vmovdqa ymmword [rsp + 0x20], ymm9
vmovdqa ymm15, ymmword [rsp + 0x40]
vmovdqa ymm9, ymmword [rsp + 0x60]
vpaddd ymm12, ymm12, ymmword [rax - 0x80]
vpaddd ymm13, ymm13, ymmword [rax - 0x60]
vpaddd ymm15, ymm15, ymmword [rax - 0x40]
vpaddd ymm9, ymm9, ymmword [rax - 0x20]
vpunpckldq ymm2, ymm12, ymm13
vpunpckldq ymm8, ymm15, ymm9
vpunpckhdq ymm12, ymm12, ymm13
vpunpckhdq ymm15, ymm15, ymm9
vpunpcklqdq ymm13, ymm2, ymm8
vpunpckhqdq ymm2, ymm2, ymm8
vpunpcklqdq ymm9, ymm12, ymm15
vpunpckhqdq ymm12, ymm12, ymm15
vpaddd ymm4, ymm4, ymmword [rax]
vpaddd ymm5, ymm5, ymmword [rax + 0x20]
vpaddd ymm6, ymm6, ymmword [rax + 0x40]
vpaddd ymm7, ymm7, ymmword [rax + 0x60]
vpunpckldq ymm15, ymm4, ymm5
vpunpckldq ymm8, ymm6, ymm7
vpunpckhdq ymm4, ymm4, ymm5
vpunpckhdq ymm6, ymm6, ymm7
vpunpcklqdq ymm5, ymm15, ymm8
vpunpckhqdq ymm15, ymm15, ymm8
vpunpcklqdq ymm7, ymm4, ymm6
vpunpckhqdq ymm4, ymm4, ymm6
vperm2i128 ymm8, ymm13, ymm5, 0x20
vperm2i128 ymm5, ymm13, ymm5, 0x31
vperm2i128 ymm13, ymm2, ymm15, 0x20
vperm2i128 ymm15, ymm2, ymm15, 0x31
vperm2i128 ymm2, ymm9, ymm7, 0x20
vperm2i128 ymm7, ymm9, ymm7, 0x31
vperm2i128 ymm9, ymm12, ymm4, 0x20
vperm2i128 ymm4, ymm12, ymm4, 0x31
vmovdqa ymm6, ymmword [rsp]
vmovdqa ymm12, ymmword [rsp + 0x20]
cmp rdx, 0x200
jb 0x18003d129
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
lea rsi, [rsi + 0x80]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
lea rdi, [rdi + 0x80]
vpxor ymm12, ymm12, ymmword [rsi]
vpxor ymm13, ymm13, ymmword [rsi + 0x20]
vpxor ymm10, ymm10, ymmword [rsi + 0x40]
vpxor ymm15, ymm15, ymmword [rsi + 0x60]
lea rsi, [rsi + 0x80]
vmovdqu ymmword [rdi], ymm12
vmovdqu ymmword [rdi + 0x20], ymm13
vmovdqu ymmword [rdi + 0x40], ymm10
vmovdqu ymmword [rdi + 0x60], ymm15
lea rdi, [rdi + 0x80]
vpxor ymm14, ymm14, ymmword [rsi]
vpxor ymm2, ymm2, ymmword [rsi + 0x20]
vpxor ymm3, ymm3, ymmword [rsi + 0x40]
vpxor ymm7, ymm7, ymmword [rsi + 0x60]
lea rsi, [rsi + 0x80]
vmovdqu ymmword [rdi], ymm14
vmovdqu ymmword [rdi + 0x20], ymm2
vmovdqu ymmword [rdi + 0x40], ymm3
vmovdqu ymmword [rdi + 0x60], ymm7
lea rdi, [rdi + 0x80]
vpxor ymm11, ymm11, ymmword [rsi]
vpxor ymm9, ymm9, ymmword [rsi + 0x20]
vpxor ymm0, ymm0, ymmword [rsi + 0x40]
vpxor ymm4, ymm4, ymmword [rsi + 0x60]
lea rsi, [rsi + 0x80]
vmovdqu ymmword [rdi], ymm11
vmovdqu ymmword [rdi + 0x20], ymm9
vmovdqu ymmword [rdi + 0x40], ymm0
vmovdqu ymmword [rdi + 0x60], ymm4
lea rdi, [rdi + 0x80]
sub rdx, 0x200
jne 0x18003cbc0
jmp 0x18003d605
cmp rdx, 0x1c0
jae 0x18003d500
cmp rdx, 0x180
jae 0x18003d420
cmp rdx, 0x140
jae 0x18003d360
cmp rdx, 0x100
jae 0x18003d2c0
cmp rdx, 0xc0
jae 0x18003d240
cmp rdx, 0x80
jae 0x18003d1e0
cmp rdx, 0x40
jae 0x18003d1a0
xor r10, r10
vmovdqa ymmword [rsp], ymm6
vmovdqa ymmword [rsp + 0x20], ymm8
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
je 0x18003d605
lea rsi, [rsi + 0x40]
xor r10, r10
vmovdqa ymmword [rsp], ymm1
lea rdi, [rdi + 0x40]
sub rdx, 0x40
vmovdqa ymmword [rsp + 0x20], ymm5
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
je 0x18003d605
lea rsi, [rsi + 0x80]
xor r10, r10
vmovdqa ymmword [rsp], ymm12
lea rdi, [rdi + 0x80]
sub rdx, 0x80
vmovdqa ymmword [rsp + 0x20], ymm13
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
vpxor ymm12, ymm12, ymmword [rsi + 0x80]
vpxor ymm13, ymm13, ymmword [rsi + 0xa0]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
vmovdqu ymmword [rdi + 0x80], ymm12
vmovdqu ymmword [rdi + 0xa0], ymm13
je 0x18003d605
lea rsi, [rsi + 0xc0]
xor r10, r10
vmovdqa ymmword [rsp], ymm10
lea rdi, [rdi + 0xc0]
sub rdx, 0xc0
vmovdqa ymmword [rsp + 0x20], ymm15
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
vpxor ymm12, ymm12, ymmword [rsi + 0x80]
vpxor ymm13, ymm13, ymmword [rsi + 0xa0]
vpxor ymm10, ymm10, ymmword [rsi + 0xc0]
vpxor ymm15, ymm15, ymmword [rsi + 0xe0]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
vmovdqu ymmword [rdi + 0x80], ymm12
vmovdqu ymmword [rdi + 0xa0], ymm13
vmovdqu ymmword [rdi + 0xc0], ymm10
vmovdqu ymmword [rdi + 0xe0], ymm15
je 0x18003d605
lea rsi, [rsi + 0x100]
xor r10, r10
vmovdqa ymmword [rsp], ymm14
lea rdi, [rdi + 0x100]
sub rdx, 0x100
vmovdqa ymmword [rsp + 0x20], ymm2
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
vpxor ymm12, ymm12, ymmword [rsi + 0x80]
vpxor ymm13, ymm13, ymmword [rsi + 0xa0]
vpxor ymm10, ymm10, ymmword [rsi + 0xc0]
vpxor ymm15, ymm15, ymmword [rsi + 0xe0]
vpxor ymm14, ymm14, ymmword [rsi + 0x100]
vpxor ymm2, ymm2, ymmword [rsi + 0x120]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
vmovdqu ymmword [rdi + 0x80], ymm12
vmovdqu ymmword [rdi + 0xa0], ymm13
vmovdqu ymmword [rdi + 0xc0], ymm10
vmovdqu ymmword [rdi + 0xe0], ymm15
vmovdqu ymmword [rdi + 0x100], ymm14
vmovdqu ymmword [rdi + 0x120], ymm2
je 0x18003d605
lea rsi, [rsi + 0x140]
xor r10, r10
vmovdqa ymmword [rsp], ymm3
lea rdi, [rdi + 0x140]
sub rdx, 0x140
vmovdqa ymmword [rsp + 0x20], ymm7
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
vpxor ymm12, ymm12, ymmword [rsi + 0x80]
vpxor ymm13, ymm13, ymmword [rsi + 0xa0]
vpxor ymm10, ymm10, ymmword [rsi + 0xc0]
vpxor ymm15, ymm15, ymmword [rsi + 0xe0]
vpxor ymm14, ymm14, ymmword [rsi + 0x100]
vpxor ymm2, ymm2, ymmword [rsi + 0x120]
vpxor ymm3, ymm3, ymmword [rsi + 0x140]
vpxor ymm7, ymm7, ymmword [rsi + 0x160]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
vmovdqu ymmword [rdi + 0x80], ymm12
vmovdqu ymmword [rdi + 0xa0], ymm13
vmovdqu ymmword [rdi + 0xc0], ymm10
vmovdqu ymmword [rdi + 0xe0], ymm15
vmovdqu ymmword [rdi + 0x100], ymm14
vmovdqu ymmword [rdi + 0x120], ymm2
vmovdqu ymmword [rdi + 0x140], ymm3
vmovdqu ymmword [rdi + 0x160], ymm7
je 0x18003d605
lea rsi, [rsi + 0x180]
xor r10, r10
vmovdqa ymmword [rsp], ymm11
lea rdi, [rdi + 0x180]
sub rdx, 0x180
vmovdqa ymmword [rsp + 0x20], ymm9
jmp 0x18003d5eb
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm8, ymm8, ymmword [rsi + 0x20]
vpxor ymm1, ymm1, ymmword [rsi + 0x40]
vpxor ymm5, ymm5, ymmword [rsi + 0x60]
vpxor ymm12, ymm12, ymmword [rsi + 0x80]
vpxor ymm13, ymm13, ymmword [rsi + 0xa0]
vpxor ymm10, ymm10, ymmword [rsi + 0xc0]
vpxor ymm15, ymm15, ymmword [rsi + 0xe0]
vpxor ymm14, ymm14, ymmword [rsi + 0x100]
vpxor ymm2, ymm2, ymmword [rsi + 0x120]
vpxor ymm3, ymm3, ymmword [rsi + 0x140]
vpxor ymm7, ymm7, ymmword [rsi + 0x160]
vpxor ymm11, ymm11, ymmword [rsi + 0x180]
vpxor ymm9, ymm9, ymmword [rsi + 0x1a0]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm8
vmovdqu ymmword [rdi + 0x40], ymm1
vmovdqu ymmword [rdi + 0x60], ymm5
vmovdqu ymmword [rdi + 0x80], ymm12
vmovdqu ymmword [rdi + 0xa0], ymm13
vmovdqu ymmword [rdi + 0xc0], ymm10
vmovdqu ymmword [rdi + 0xe0], ymm15
vmovdqu ymmword [rdi + 0x100], ymm14
vmovdqu ymmword [rdi + 0x120], ymm2
vmovdqu ymmword [rdi + 0x140], ymm3
vmovdqu ymmword [rdi + 0x160], ymm7
vmovdqu ymmword [rdi + 0x180], ymm11
vmovdqu ymmword [rdi + 0x1a0], ymm9
je 0x18003d605
lea rsi, [rsi + 0x1c0]
xor r10, r10
vmovdqa ymmword [rsp], ymm0
lea rdi, [rdi + 0x1c0]
sub rdx, 0x1c0
vmovdqa ymmword [rsp + 0x20], ymm4
movzx eax, byte [rsi + r10]
movzx ecx, byte [rsp + r10]
lea r10, [r10 + 1]
xor eax, ecx
mov byte [rdi + r10 - 1], al
dec rdx
jne 0x18003d5eb
vzeroall
movaps xmm6, xmmword [r9 - 0xa8]
movaps xmm7, xmmword [r9 - 0x98]
movaps xmm8, xmmword [r9 - 0x88]
movaps xmm9, xmmword [r9 - 0x78]
movaps xmm10, xmmword [r9 - 0x68]
movaps xmm11, xmmword [r9 - 0x58]
movaps xmm12, xmmword [r9 - 0x48]
movaps xmm13, xmmword [r9 - 0x38]
movaps xmm14, xmmword [r9 - 0x28]
movaps xmm15, xmmword [r9 - 0x18]
lea rsp, [r9]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret