Function at 0x1400a63c0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x308
vmovdqa xmmword [rsp + 0x2f0], xmm15
vmovdqa xmmword [rsp + 0x2e0], xmm14
vmovdqa xmmword [rsp + 0x2d0], xmm13
vmovdqa xmmword [rsp + 0x2c0], xmm12
vmovdqa xmmword [rsp + 0x2b0], xmm11
vmovdqa xmmword [rsp + 0x2a0], xmm10
vmovdqa xmmword [rsp + 0x290], xmm9
vmovdqa xmmword [rsp + 0x280], xmm8
vmovdqa xmmword [rsp + 0x270], xmm7
vmovdqa xmmword [rsp + 0x260], xmm6
mov ebx, r8d
mov r12, rcx
mov r15d, dword [rsp + 0x380]
mov r8d, dword [rsp + 0x378]
mov ebp, dword [rsp + 0x370]
xor esi, esi
cmp r15d, 0x10
sete cl
mov eax, r8d
or eax, ebp
js 0x1400a64af
mov edi, r9d
mov r14, rdx
mov rax, qword [r12]
movsxd r13, dword [rax + 8]
test r8d, r8d
je 0x1400a647b
mov eax, 0x7fffffff
xor edx, edx
div r8d
cmp eax, ebp
jl 0x1400a64af
mov sil, cl
inc esi
mov r9d, esi
imul r9d, edi
mov ecx, r8d
imul ecx, ebp
mov eax, r9d
or eax, ecx
js 0x1400a64af
test r9d, r9d
je 0x1400a654e
mov eax, 0x7fffffff
xor edx, edx
div r9d
cmp eax, ecx
jge 0x1400a654e
mov qword [r12 + 0x18], 0
lea r8, str.outofmem
mov eax, dword [0x1402263a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 8], r8
xor ecx, ecx
mov eax, ecx
vmovaps xmm6, xmmword [rsp + 0x260]
vmovaps xmm7, xmmword [rsp + 0x270]
vmovaps xmm8, xmmword [rsp + 0x280]
vmovaps xmm9, xmmword [rsp + 0x290]
vmovaps xmm10, xmmword [rsp + 0x2a0]
vmovaps xmm11, xmmword [rsp + 0x2b0]
vmovaps xmm12, xmmword [rsp + 0x2c0]
vmovaps xmm13, xmmword [rsp + 0x2d0]
vmovaps xmm14, xmmword [rsp + 0x2e0]
vmovaps xmm15, xmmword [rsp + 0x2f0]
add rsp, 0x308
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
mov dword [rsp + 0x4c], r9d
imul ecx, r9d
movsxd rcx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r12 + 0x18], rax
test rax, rax
je 0x1400a64b8
lea r8, str.too_large
mov eax, r13d
or eax, ebp
js 0x1400a64bf
test ebp, ebp
je 0x1400a6596
mov eax, 0x7fffffff
xor edx, edx
div ebp
cmp eax, r13d
jl 0x1400a64bf
mov ecx, r13d
imul ecx, ebp
mov eax, ecx
or eax, r15d
js 0x1400a64bf
test r15d, r15d
je 0x1400a65db
mov eax, 0x7fffffff
xor edx, edx
div r15d
cmp eax, ecx
mov r11d, dword [rsp + 0x378]
jl 0x1400a64bf
mov r10d, ecx
imul r10d, r15d
cmp r10d, 0x7ffffff8
jle 0x1400a65e6
jmp 0x1400a64bf
xor r10d, r10d
mov r11d, dword [rsp + 0x378]
add r10d, 7
shr r10d, 3
lea eax, [r10 + 1]
imul eax, r11d
cmp eax, ebx
jbe 0x1400a6606
lea r8, str.not_enough_pixels
jmp 0x1400a64bf
mov eax, ebp
imul eax, edi
mov qword [rsp + 0x108], rax
test r11d, r11d
je 0x1400a9936
mov dword [rsp + 0x48], ecx
cmp r15d, 8
setl dl
cmp r13d, edi
sete al
movzx r9d, byte [r14]
cmp r9b, 4
jbe 0x1400a6643
lea r8, str.invalid_filter
jmp 0x1400a64bf
mov ecx, esi
mov r8d, edx
mov rdx, qword [rsp + 0x108]
imul ecx, edx
mov ebx, r13d
imul ebx, esi
mov dword [rsp + 0x28], ebx
sub edx, r10d
mov qword [rsp + 0x250], rdx
mov dword [rsp + 0x40], ecx
mov ecx, ecx
mov rdx, rcx
neg rdx
mov qword [rsp + 0xa8], rdx
movsxd rdx, dword [rsp + 0x4c]
or r8b, al
mov byte [rsp + 0x47], r8b
mov eax, ebp
and eax, 7
mov dword [rsp + 0xcc], eax
mov eax, ebp
and eax, 0xfffffff8
mov dword [rsp + 0x118], eax
mov eax, 0x60
mov r8d, 0x60
sub r8, rdx
mov qword [rsp + 0x100], r8
mov rbx, rdx
neg rbx
mov r8, rbx
mov qword [rsp + 0xb0], rbx
sub rbx, rcx
mov qword [rsp + 0x230], rbx
mov r8d, 3
sub r8, rcx
mov qword [rsp + 0x228], r8
mov r8d, 1
sub r8, rcx
mov qword [rsp + 0x218], r8
sub rax, rcx
mov qword [rsp + 0x210], rax
vmovdqa xmm8, xmmword [0x14012e8a0]
vmovdqa xmm9, xmmword [0x14012e8a0]
movsxd rax, edi
mov qword [rsp + 0x258], rax
lea eax, [rbp - 1]
mov dword [rsp + 0x11c], eax
mov eax, r11d
mov qword [rsp + 0x110], rax
mov rax, qword [r12 + 0x18]
mov qword [rsp + 0x220], rcx
mov qword [rsp + 0x38], rdx
add rcx, rdx
mov qword [rsp + 0x248], rcx
xor edx, edx
mov ecx, ebp
mov qword [rsp + 0x170], rcx
xor ecx, ecx
mov qword [rsp + 0xd8], r12
mov dword [rsp + 0x88], edi
mov dword [rsp + 0x8c], esi
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xd0], r10
cmp r15d, 7
jg 0x1400a67a8
cmp r10d, ebp
ja 0x1400a99ae
add rax, qword [rsp + 0x250]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x170], r10
mov qword [rsp + 0xc0], rcx
test rcx, rcx
mov r8, qword [rsp + 0xa8]
lea r12, [0x1400a99bc]
jne 0x1400a67d4
movzx ecx, r9b
lea r9, [0x14012ea9c]
movzx r9d, byte [rcx + r9]
lea rbp, [r14 + 1]
add r8, rax
movzx r10d, r9b
cmp dword [rsp + 0x28], 0
jle 0x1400a682b
mov ecx, dword [rsp + 0x28]
xor r11d, r11d
jmp 0x1400a6802
movzx ebx, byte [rbp + r11]
mov byte [rax + r11], bl
inc r11
cmp rcx, r11
je 0x1400a682b
cmp r9b, 6
ja case.default.0x1400a680f
movsxd rsi, dword [r12 + r10*4]
add rsi, r12
jmp rsi
movzx ebx, byte [r8 + r11]
add bl, byte [rbp + r11]
jmp 0x1400a67f6
movzx ebx, byte [r8 + r11]
shr bl, 1
add bl, byte [rbp + r11]
jmp 0x1400a67f6
cmp r15d, 8
jne 0x1400a6848
cmp r13d, edi
je 0x1400a683b
mov byte [rax + r13], 0xff
add rbp, r13
mov r15, qword [rsp + 0x258]
jmp 0x1400a6878
cmp r15d, 0x10
jne 0x1400a686b
movsxd rcx, dword [rsp + 0x28]
cmp r13d, edi
je 0x1400a6861
mov byte [rax + rcx], 0xff
mov byte [rcx + rax + 1], 0xff
add rbp, rcx
mov r15, qword [rsp + 0x38]
jmp 0x1400a6878
add r14, 2
mov r15d, 1
mov rbp, r14
mov r13d, dword [rsp + 0x28]
lea rcx, [rax + r15]
add r8, r15
cmp byte [rsp + 0x47], 0
mov qword [rsp + 0x30], rbp
je 0x1400a68d0
mov rdx, qword [rsp + 0x170]
lea r11d, [rdx - 1]
imul r11d, r13d
movsxd r14, r11d
cmp r9b, 6
ja case.default.0x1400a68bb
lea r9, [0x1400a99f4]
movsxd rdx, dword [r9 + r10*4]
add rdx, r9
jmp rdx
mov rdx, rbp
mov r8, r14
vzeroupper
call sub.VCRUNTIME140.dll_memcpy
jmp case.default.0x1400a68bb
cmp r9b, 6
mov ebp, dword [rsp + 0x11c]
ja case.default.0x1400a68ef
lea r11, [0x1400a99d8]
movsxd r9, dword [r11 + r10*4]
add r9, r11
jmp r9
test ebp, ebp
je case.default.0x1400a68ef
movsxd r8, r13d
mov r9d, r13d
add rax, r15
mov r10d, r9d
and r10d, 0xffffff80
mov r11d, r9d
and r11d, 0xfffffff0
mov esi, r9d
and esi, 3
xor edi, edi
mov ebx, ebp
mov r14, qword [rsp + 0x30]
jmp 0x1400a693a
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, qword [rsp + 0x38]
inc rdi
dec ebx
je 0x1400a840b
test r13d, r13d
jle 0x1400a6922
cmp r13d, 0x10
jb 0x1400a6a13
mov r15, rdi
imul r15, r8
add r15, qword [rsp + 0x30]
mov r13, rdi
imul r13, qword [rsp + 0x38]
add r13, rax
sub r13, r15
mov r12d, 0
cmp r13, 0x80
mov r13d, dword [rsp + 0x28]
jb 0x1400a6a16
xor r15d, r15d
cmp r13d, 0x80
jb 0x1400a69f0
nop dword [rax + rax]
vmovdqu ymm0, ymmword [r14 + r15]
vmovdqu ymm1, ymmword [r14 + r15 + 0x20]
vmovdqu ymm2, ymmword [r14 + r15 + 0x40]
vmovdqu ymm3, ymmword [r14 + r15 + 0x60]
vmovdqu ymmword [rcx + r15], ymm0
vmovdqu ymmword [rcx + r15 + 0x20], ymm1
vmovdqu ymmword [rcx + r15 + 0x40], ymm2
vmovdqu ymmword [rcx + r15 + 0x60], ymm3
sub r15, 0xffffffffffffff80
cmp r10, r15
jne 0x1400a6990
cmp r10, r9
je 0x1400a6922
mov r15, r10
mov r12, r10
test r9b, 0x70
je 0x1400a6a16
nop word cs:[rax + rax]
vmovdqu xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp r11, r15
jne 0x1400a69f0
mov r12, r11
cmp r11, r9
je 0x1400a6922
jmp 0x1400a6a16
xor r12d, r12d
mov r15, r12
not r15
add r15, r9
test rsi, rsi
je 0x1400a6a41
mov r13, rsi
nop word [rax + rax]
movzx ebp, byte [r14 + r12]
mov byte [rcx + r12], bpl
inc r12
dec r13
jne 0x1400a6a30
cmp r15, 3
mov r13d, dword [rsp + 0x28]
jb 0x1400a6922
movzx ebp, byte [r14 + r12]
mov byte [rcx + r12], bpl
movzx ebp, byte [r14 + r12 + 1]
mov byte [rcx + r12 + 1], bpl
movzx ebp, byte [r14 + r12 + 2]
mov byte [rcx + r12 + 2], bpl
movzx ebp, byte [r14 + r12 + 3]
mov byte [rcx + r12 + 3], bpl
add r12, 4
cmp r9, r12
jne 0x1400a6a50
jmp 0x1400a6922
test r11d, r11d
jle case.default.0x1400a68bb
mov r10d, dword [rsp + 0x28]
movsxd r8, r10d
mov edx, r11d
cmp r11d, 0x10
jae 0x1400a862e
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x1400a6acc
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
add r10b, byte [rbp + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400a68bb
mov rcx, r15
sub rcx, r8
add rcx, rax
inc rcx
add rax, r15
inc rax
movzx r8d, byte [rcx + r10 - 1]
add r8b, byte [rbp + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
add r8b, byte [rbp + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x1400a6aea
jmp case.default.0x1400a68bb
test r11d, r11d
jle case.default.0x1400a68bb
mov edx, r11d
cmp r11d, 0x10
jae 0x1400a8590
xor r9d, r9d
mov rcx, r9
not rcx
add rcx, rdx
mov r8, rdx
and r8, 3
je 0x1400a6b7b
mov r10, r9
neg r10
lea r11, [r9 + r15]
add r11, rax
mov rsi, qword [rsp + 0xa8]
add rsi, r11
add r9, rbp
xor edi, edi
movzx ebx, byte [rsi + rdi]
add bl, byte [r9 + rdi]
mov byte [r11 + rdi], bl
inc rdi
dec r10
cmp r8, rdi
jne 0x1400a6b5e
neg r10
mov r9, r10
cmp rcx, 3
jb case.default.0x1400a68bb
sub rdx, r9
add r15, r9
add rax, r15
add rax, 3
lea rcx, [r9 + rbp]
add rcx, 3
mov r9, qword [rsp + 0xa8]
movzx r8d, byte [rax + r9 - 3]
add r8b, byte [rcx - 3]
mov byte [rax - 3], r8b
movzx r8d, byte [rax + r9 - 2]
add r8b, byte [rcx - 2]
mov byte [rax - 2], r8b
movzx r8d, byte [rax + r9 - 1]
add r8b, byte [rcx - 1]
mov byte [rax - 1], r8b
movzx r8d, byte [rax + r9]
add r8b, byte [rcx]
mov byte [rax], r8b
add rax, 4
add rcx, 4
add rdx, 0xfffffffffffffffc
jne 0x1400a6b9a
jmp case.default.0x1400a68bb
test r11d, r11d
jle case.default.0x1400a68bb
mov esi, dword [rsp + 0x28]
movsxd r9, esi
mov edx, r11d
cmp r11d, 0x10
jae 0x1400a8670
xor r10d, r10d
mov r11, r10
test dl, 1
je 0x1400a6c38
movzx r8d, byte [r8 + r10]
mov r11, r10
sub r11, r9
movzx r11d, byte [rcx + r11]
add r11d, r8d
shr r11d, 1
add r11b, byte [rbp + r10]
mov byte [rcx + r10], r11b
mov r11, r10
or r11, 1
not r10
add r10, rdx
je case.default.0x1400a68bb
mov rcx, r15
sub rcx, r9
add rcx, rax
inc rcx
lea r8, [rax + r15]
inc r8
add rax, qword [rsp + 0x218]
add rax, r15
lea r9, [rbp + 1]
movzx r10d, byte [rax + r11 - 1]
movzx esi, byte [rcx + r11 - 1]
add esi, r10d
shr esi, 1
add sil, byte [r9 + r11 - 1]
mov byte [r8 + r11 - 1], sil
movzx r10d, byte [rax + r11]
movzx esi, byte [rcx + r11]
add esi, r10d
shr esi, 1
add sil, byte [r9 + r11]
mov byte [r8 + r11], sil
add rdx, 0xfffffffffffffffe
add rcx, 2
add r8, 2
add rax, 2
add r9, 2
cmp r11, rdx
jne 0x1400a6c66
jmp case.default.0x1400a68bb
test r11d, r11d
jle case.default.0x1400a68bb
mov esi, dword [rsp + 0x28]
movsxd r13, esi
mov edx, r11d
cmp r11d, 0x10
jae 0x1400a85d6
xor r9d, r9d
sub r15, r13
add rax, r15
mov r10, qword [rsp + 0xa8]
add r10, rax
mov r11, rbp
jmp 0x1400a6d20
cmp ebp, r12d
cmova esi, edi
cmp ebp, r15d
cmova esi, edi
add sil, byte [r11 + r9]
mov byte [rcx + r9], sil
inc r10
inc rax
inc rcx
inc r8
inc r11
dec rdx
cmp r9, rdx
mov rbp, qword [rsp + 0x30]
je case.default.0x1400a68bb
movzx edi, byte [r10 + r9]
movzx ebx, byte [r8 + r9]
movzx esi, byte [rax + r9]
mov r15d, ebx
sub r15d, edi
lea r13d, [r15 + rsi]
mov ebp, r15d
neg ebp
cmovs ebp, r15d
mov r12d, r13d
sub r12d, ebx
mov r15d, r12d
neg r15d
cmovs r15d, r12d
sub r13d, edi
mov r12d, r13d
neg r12d
cmovs r12d, r13d
cmp r15d, r12d
ja 0x1400a6cec
mov edi, ebx
jmp 0x1400a6cec
test r11d, r11d
jle case.default.0x1400a68bb
mov r10d, dword [rsp + 0x28]
movsxd r8, r10d
mov edx, r11d
cmp r11d, 0x10
jae 0x1400a8715
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x1400a6daf
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
shr r10b, 1
add r10b, byte [rbp + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400a68bb
mov rcx, r15
sub rcx, r8
add rcx, rax
inc rcx
add rax, r15
inc rax
movzx r8d, byte [rcx + r10 - 1]
shr r8b, 1
add r8b, byte [rbp + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
shr r8b, 1
add r8b, byte [rbp + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x1400a6dcd
jmp case.default.0x1400a68bb
test r11d, r11d
jle case.default.0x1400a68bb
mov r10d, dword [rsp + 0x28]
movsxd r8, r10d
mov edx, r11d
cmp r11d, 0x10
jae 0x1400a8757
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x1400a6e3f
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
add r10b, byte [rbp + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400a68bb
mov rcx, r15
sub rcx, r8
add rcx, rax
inc rcx
add rax, r15
inc rax
movzx r8d, byte [rcx + r10 - 1]
add r8b, byte [rbp + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
add r8b, byte [rbp + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x1400a6e59
add rbp, r14
mov r14, rbp
mov r12, qword [rsp + 0xd8]
mov r15d, dword [rsp + 0x380]
mov edi, dword [rsp + 0x88]
mov esi, dword [rsp + 0x8c]
mov r13, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0x370]
mov r11d, dword [rsp + 0x378]
mov r10, qword [rsp + 0xd0]
vmovdqa xmm8, xmmword [0x14012e8a0]
vmovdqa xmm9, xmmword [0x14012e8a0]
jmp 0x1400a8539
test ebp, ebp
je case.default.0x1400a68ef
movsxd r8, r13d
mov r9d, r13d
lea r10, [rax + r15]
mov qword [rsp + 0x50], r10
mov r11d, r9d
and r11d, 0xffffff80
mov edi, r9d
and edi, 0xfffffff0
mov r10, r9
neg r10
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0x100]
lea rbx, [rax + r10]
add rbx, r15
add rax, qword [rsp + 0xb0]
add rax, r15
xor r12d, r12d
mov r10d, ebp
mov r14, qword [rsp + 0x30]
jmp 0x1400a6f50
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x38]
add rcx, rsi
inc r12
add rbx, rsi
add rax, rsi
dec r10d
je 0x1400a840b
test r13d, r13d
jle 0x1400a6f2e
cmp r13d, 0x10
jae 0x1400a6fb9
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x1400a6f82
mov r15, rsi
sub r15, qword [rsp + 0x38]
movzx ebp, byte [rcx + r15]
add bpl, byte [r14 + rsi]
mov byte [rcx + rsi], bpl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x1400a6f2e
nop dword [rax]
movzx esi, byte [rax + rbp]
add sil, byte [r14 + rbp]
mov byte [rcx + rbp], sil
movzx esi, byte [rax + rbp + 1]
add sil, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], sil
add rbp, 2
cmp r9, rbp
jne 0x1400a6f90
jmp 0x1400a6f2e
mov rsi, r12
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x50]
mov r15, r12
imul r15, r8
add r15, qword [rsp + 0x30]
sub rsi, r15
cmp rsi, 0x80
jb 0x1400a6f5b
jb 0x1400a6f5b
mov esi, 0
cmp dword [rsp + 0x4c], 0x80
jb 0x1400a6f5d
cmp r13d, 0x80
jae 0x1400a700d
xor r15d, r15d
jmp 0x1400a70ca
xor ebp, ebp
vmovdqu xmm0, xmmword [rbx + rbp - 0x60]
vmovdqu xmm1, xmmword [rbx + rbp - 0x50]
vmovdqu xmm2, xmmword [rbx + rbp - 0x40]
vmovdqu xmm3, xmmword [rbx + rbp - 0x30]
vpaddb xmm0, xmm0, xmmword [r14 + rbp]
vpaddb xmm1, xmm1, xmmword [r14 + rbp + 0x10]
vpaddb xmm2, xmm2, xmmword [r14 + rbp + 0x20]
vpaddb xmm3, xmm3, xmmword [r14 + rbp + 0x30]
vmovdqu xmm4, xmmword [rbx + rbp - 0x20]
vpaddb xmm4, xmm4, xmmword [r14 + rbp + 0x40]
vmovdqu xmm5, xmmword [rbx + rbp - 0x10]
vpaddb xmm5, xmm5, xmmword [r14 + rbp + 0x50]
vmovdqu xmm6, xmmword [rbx + rbp]
vpaddb xmm6, xmm6, xmmword [r14 + rbp + 0x60]
vmovdqu xmm7, xmmword [rbx + rbp + 0x10]
vpaddb xmm7, xmm7, xmmword [r14 + rbp + 0x70]
vmovdqu xmmword [rcx + rbp + 0x10], xmm1
vmovdqu xmmword [rcx + rbp], xmm0
vmovdqu xmmword [rcx + rbp + 0x30], xmm3
vmovdqu xmmword [rcx + rbp + 0x20], xmm2
vmovdqu xmmword [rcx + rbp + 0x50], xmm5
vmovdqu xmmword [rcx + rbp + 0x40], xmm4
vmovdqu xmmword [rcx + rbp + 0x70], xmm7
vmovdqu xmmword [rcx + rbp + 0x60], xmm6
sub rbp, 0xffffffffffffff80
cmp r11, rbp
jne 0x1400a700f
cmp r11, r9
je 0x1400a6f2e
mov r15, r11
mov rsi, r11
test r9b, 0x70
je 0x1400a6f5d
vmovdqu xmm0, xmmword [rax + r15]
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rdi, r15
jne 0x1400a70ca
mov rsi, rdi
cmp rdi, r9
je 0x1400a6f2e
jmp 0x1400a6f5d
test ebp, ebp
je case.default.0x1400a68ef
movsxd r12, r13d
mov r11d, r13d
lea r9, [rax + r15]
mov qword [rsp + 0x140], r9
mov r9d, r11d
and r9d, 0xffffff80
mov qword [rsp + 0xe0], r9
mov r9d, r11d
and r9d, 0xfffffff0
mov qword [rsp + 0x130], r9
mov qword [rsp + 0x70], r11
and r11d, 3
lea r9, [r15 + rax]
add r9, 3
mov qword [rsp + 0x50], r9
add rax, qword [rsp + 0x228]
add rax, r15
mov r14, qword [rsp + 0x30]
lea rdi, [r14 + 3]
xor ebx, ebx
mov qword [rsp + 0x90], r12
jmp 0x1400a7196
mov byte [rcx + r12], 0xff
add r14, r12
mov r9, qword [rsp + 0x38]
add rcx, r9
add r8, r9
inc rbx
add qword [rsp + 0x50], r9
add rax, r9
add rdi, r12
mov ebp, dword [rsp + 0x60]
dec ebp
mov r13d, dword [rsp + 0x28]
je 0x1400a840b
mov dword [rsp + 0x60], ebp
test r13d, r13d
jle 0x1400a7164
cmp dword [rsp + 0x28], 0x10
jae 0x1400a727c
xor r10d, r10d
mov r9, r10
not r9
add r9, qword [rsp + 0x70]
test r11, r11
je 0x1400a7208
mov r15, r10
neg r15
lea r13, [rcx + r10]
lea rbp, [r8 + r10]
add r10, r14
xor r12d, r12d
nop word cs:[rax + rax]
movzx esi, byte [rbp + r12]
add sil, byte [r10 + r12]
mov byte [r13 + r12], sil
inc r12
dec r15
cmp r11, r12
jne 0x1400a71e0
neg r15
mov r10, r15
mov r12, qword [rsp + 0x90]
cmp r9, 3
jb 0x1400a7164
mov r9, qword [rsp + 0x70]
sub r9, r10
mov rsi, qword [rsp + 0x50]
lea rbp, [rsi + r10]
lea r15, [rax + r10]
add r10, rdi
xor r13d, r13d
nop dword [rax]
movzx esi, byte [r15 + r13 - 3]
add sil, byte [r10 + r13 - 3]
mov byte [rbp + r13 - 3], sil
movzx esi, byte [r15 + r13 - 2]
add sil, byte [r10 + r13 - 2]
mov byte [rbp + r13 - 2], sil
movzx esi, byte [r15 + r13 - 1]
add sil, byte [r10 + r13 - 1]
mov byte [rbp + r13 - 1], sil
movzx esi, byte [r15 + r13]
add sil, byte [r10 + r13]
mov byte [rbp + r13], sil
add r13, 4
cmp r9, r13
jne 0x1400a7230
jmp 0x1400a7164
mov r9, rbx
imul r9, qword [rsp + 0x38]
add r9, qword [rsp + 0x140]
mov r10, rbx
imul r10, r12
add r10, qword [rsp + 0x30]
sub r9, r10
cmp r9, 0x80
jb 0x1400a71aa
jb 0x1400a71aa
mov r10d, 0
cmp dword [rsp + 0x40], 0x80
jb 0x1400a71ad
cmp dword [rsp + 0x28], 0x80
jae 0x1400a72d5
xor r9d, r9d
jmp 0x1400a73b3
xor r9d, r9d
mov r10, qword [rsp + 0xe0]
vmovdqu xmm0, xmmword [r8 + r9]
vmovdqu xmm1, xmmword [r8 + r9 + 0x10]
vmovdqu xmm2, xmmword [r8 + r9 + 0x20]
vmovdqu xmm3, xmmword [r8 + r9 + 0x30]
vpaddb xmm0, xmm0, xmmword [r14 + r9]
vpaddb xmm1, xmm1, xmmword [r14 + r9 + 0x10]
vpaddb xmm2, xmm2, xmmword [r14 + r9 + 0x20]
vpaddb xmm3, xmm3, xmmword [r14 + r9 + 0x30]
vmovdqu xmm4, xmmword [r8 + r9 + 0x40]
vpaddb xmm4, xmm4, xmmword [r14 + r9 + 0x40]
vmovdqu xmm5, xmmword [r8 + r9 + 0x50]
vpaddb xmm5, xmm5, xmmword [r14 + r9 + 0x50]
vmovdqu xmm6, xmmword [r8 + r9 + 0x60]
vpaddb xmm6, xmm6, xmmword [r14 + r9 + 0x60]
vmovdqu xmm7, xmmword [r8 + r9 + 0x70]
vpaddb xmm7, xmm7, xmmword [r14 + r9 + 0x70]
vmovdqu xmmword [rcx + r9 + 0x10], xmm1
vmovdqu xmmword [rcx + r9], xmm0
vmovdqu xmmword [rcx + r9 + 0x30], xmm3
vmovdqu xmmword [rcx + r9 + 0x20], xmm2
vmovdqu xmmword [rcx + r9 + 0x50], xmm5
vmovdqu xmmword [rcx + r9 + 0x40], xmm4
vmovdqu xmmword [rcx + r9 + 0x70], xmm7
vmovdqu xmmword [rcx + r9 + 0x60], xmm6
sub r9, 0xffffffffffffff80
cmp r10, r9
jne 0x1400a72e0
cmp r10, qword [rsp + 0x70]
je 0x1400a7164
mov r10, qword [rsp + 0xe0]
mov r9, r10
test byte [rsp + 0x70], 0x70
je 0x1400a71ad
mov rsi, qword [rsp + 0x130]
vmovdqu xmm0, xmmword [r8 + r9]
vpaddb xmm0, xmm0, xmmword [r14 + r9]
vmovdqu xmmword [rcx + r9], xmm0
add r9, 0x10
cmp rsi, r9
jne 0x1400a73bb
mov r10, rsi
cmp rsi, qword [rsp + 0x70]
je 0x1400a7164
jmp 0x1400a71ad
test ebp, ebp
je case.default.0x1400a68ef
movsxd r9, r13d
mov r10d, r13d
lea r11, [rax + r15]
mov qword [rsp + 0x50], r11
mov edi, r10d
and edi, 0xffffffe0
mov ebx, r10d
and ebx, 0xfffffff0
mov r11, r10
neg r11
mov qword [rsp + 0x60], r11
add rax, qword [rsp + 0xb0]
add rax, r15
xor r12d, r12d
mov r11d, ebp
mov r14, qword [rsp + 0x30]
jmp 0x1400a7451
mov byte [rcx + r9], 0xff
add r14, r9
mov rsi, qword [rsp + 0x38]
add rcx, rsi
add r8, rsi
inc r12
add rax, rsi
dec r11d
je 0x1400a840b
test r13d, r13d
jle 0x1400a742f
cmp r13d, 0x10
jae 0x1400a74e2
xor esi, esi
mov rbp, rsi
test r10b, 1
je 0x1400a7492
movzx ebp, byte [r8 + rsi]
mov r15, rsi
sub r15, qword [rsp + 0x38]
movzx r15d, byte [rcx + r15]
add r15d, ebp
shr r15d, 1
add r15b, byte [r14 + rsi]
mov byte [rcx + rsi], r15b
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x1400a742f
nop dword [rax]
movzx esi, byte [r8 + rbp]
movzx r15d, byte [rax + rbp]
add r15d, esi
shr r15d, 1
add r15b, byte [r14 + rbp]
mov byte [rcx + rbp], r15b
movzx esi, byte [r8 + rbp + 1]
movzx r15d, byte [rax + rbp + 1]
add r15d, esi
shr r15d, 1
add r15b, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], r15b
add rbp, 2
cmp r10, rbp
jne 0x1400a74a0
jmp 0x1400a742f
mov rsi, r12
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x50]
mov r15, r12
imul r15, r9
add r15, qword [rsp + 0x30]
sub rsi, r15
cmp rsi, 0x20
jb 0x1400a7460
jb 0x1400a7460
cmp dword [rsp + 0x40], 0x20
jb 0x1400a7460
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x1400a7462
cmp r13d, 0x20
jae 0x1400a7538
xor r15d, r15d
jmp 0x1400a75da
xor esi, esi
vpmovzxbw xmm0, qword [r8 + rsi + 8]
vpmovzxbw xmm1, qword [r8 + rsi]
vpmovzxbw xmm2, qword [r8 + rsi + 0x18]
vpmovzxbw xmm3, qword [r8 + rsi + 0x10]
vpmovzxbw xmm4, qword [rax + rsi + 8]
vpaddw xmm0, xmm4, xmm0
vpmovzxbw xmm4, qword [rax + rsi]
vpaddw xmm1, xmm4, xmm1
vpmovzxbw xmm4, qword [rax + rsi + 0x18]
vpmovzxbw xmm5, qword [rax + rsi + 0x10]
vpaddw xmm2, xmm4, xmm2
vpaddw xmm3, xmm5, xmm3
vpsrlw xmm0, xmm0, 1
vpsrlw xmm1, xmm1, 1
vpackuswb xmm0, xmm1, xmm0
vpsrlw xmm1, xmm2, 1
vpsrlw xmm2, xmm3, 1
vpackuswb xmm1, xmm2, xmm1
vpaddb xmm0, xmm0, xmmword [r14 + rsi]
vpaddb xmm1, xmm1, xmmword [r14 + rsi + 0x10]
vmovdqu xmmword [rcx + rsi + 0x10], xmm1
vmovdqu xmmword [rcx + rsi], xmm0
add rsi, 0x20
cmp rdi, rsi
jne 0x1400a753a
cmp rdi, r10
je 0x1400a742f
mov r15, rdi
mov rsi, rdi
test r10b, 0x10
je 0x1400a7462
vpmovzxbw xmm0, qword [r8 + r15 + 8]
vpmovzxbw xmm1, qword [r8 + r15]
vpmovzxbw xmm2, qword [rax + r15 + 8]
vpaddw xmm0, xmm2, xmm0
vpmovzxbw xmm2, qword [rax + r15]
vpaddw xmm1, xmm2, xmm1
vpsrlw xmm0, xmm0, 1
vpsrlw xmm1, xmm1, 1
vpackuswb xmm0, xmm1, xmm0
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rbx, r15
jne 0x1400a75da
mov rsi, rbx
cmp rbx, r10
je 0x1400a742f
jmp 0x1400a7462
test ebp, ebp
je case.default.0x1400a68ef
movsxd r9, r13d
mov qword [rsp + 0x180], r9
mov r11d, r13d
lea r9, [rax + r15]
mov qword [rsp + 0x240], r9
mov r9d, r11d
and r9d, 0xffffffe0
mov qword [rsp + 0x168], r9
mov r9d, r11d
and r9d, 0xfffffff0
mov qword [rsp + 0x238], r9
mov r9, qword [rsp + 0xb0]
add r9, rax
add r9, r15
add rax, qword [rsp + 0x230]
add rax, r15
xor r10d, r10d
mov qword [rsp + 0x178], r10
mov r14, qword [rsp + 0x30]
jmp 0x1400a76d8
mov r10, qword [rsp + 0x180]
mov byte [rcx + r10], 0xff
add r14, r10
mov r10, qword [rsp + 0x38]
add rcx, r10
add r8, r10
inc qword [rsp + 0x178]
add r9, r10
add rax, r10
mov ebp, dword [rsp + 0x120]
dec ebp
mov r13d, dword [rsp + 0x28]
je 0x1400a840b
mov dword [rsp + 0x120], ebp
test r13d, r13d
jle 0x1400a769b
cmp dword [rsp + 0x28], 0x10
jae 0x1400a76f2
xor edi, edi
jmp 0x1400a7f20
mov rdi, qword [rsp + 0x178]
mov rsi, rdi
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x240]
imul rdi, qword [rsp + 0x180]
add rdi, qword [rsp + 0x30]
sub rsi, rdi
cmp rsi, 0x20
jb 0x1400a7eea
jb 0x1400a7eee
cmp qword [rsp + 0x248], 0x20
jb 0x1400a7ee6
cmp dword [rsp + 0x40], 0x20
jb 0x1400a7ee2
mov edi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x1400a7f20
cmp dword [rsp + 0x28], 0x20
jae 0x1400a79aa
xor esi, esi
mov r10, qword [rsp + 0x238]
vmovdqu xmm1, xmmword [rax + rsi]
vpshufd xmm0, xmm1, 0xff
vpmovzxbd xmm6, xmm0
vpshufd xmm0, xmm1, 0xee
vpmovzxbd xmm4, xmm0
vpmovzxbd xmm5, xmm1
vpshufd xmm0, xmm1, 0x55
vpmovzxbd xmm7, xmm0
vmovdqu xmm2, xmmword [r8 + rsi]
vpshufd xmm0, xmm2, 0xff
vpmovzxbd xmm15, xmm0
vpshufd xmm0, xmm2, 0xee
vpmovzxbd xmm12, xmm0
vpmovzxbd xmm8, xmm2
vpshufd xmm0, xmm2, 0x55
vpmovzxbd xmm10, xmm0
vmovdqu xmm9, xmmword [r9 + rsi]
vpshufd xmm3, xmm9, 0x55
vpmovzxbd xmm11, xmm3
vpmovzxbd xmm13, xmm9
vpshufd xmm3, xmm9, 0xee
vpmovzxbd xmm3, xmm3
vpshufd xmm14, xmm9, 0xff
vpmovzxbd xmm14, xmm14
vpsubd xmm0, xmm10, xmm7
vmovdqa xmmword [rsp + 0x60], xmm0
vpaddd xmm11, xmm11, xmm0
vpsubd xmm0, xmm11, xmm10
vmovdqa xmmword [rsp + 0x90], xmm0
vpsubd xmm0, xmm11, xmm7
vmovdqa xmmword [rsp + 0x140], xmm0
vpsubd xmm11, xmm8, xmm5
vpaddd xmm10, xmm11, xmm13
vpsubd xmm7, xmm10, xmm8
vpsubd xmm8, xmm10, xmm5
vpsubd xmm0, xmm12, xmm4
vmovdqa xmmword [rsp + 0x70], xmm0
vpaddd xmm3, xmm0, xmm3
vpsubd xmm12, xmm3, xmm12
vpsubd xmm3, xmm3, xmm4
vpsubd xmm0, xmm15, xmm6
vmovdqa xmmword [rsp + 0x50], xmm0
vpaddd xmm13, xmm14, xmm0
vpsubd xmm5, xmm13, xmm15
vpabsd xmm5, xmm5
vpabsd xmm12, xmm12
vpsubd xmm6, xmm13, xmm6
vpabsd xmm10, xmm6
vpabsd xmm13, xmm3
vpminud xmm3, xmm5, xmm10
vpcmpeqd xmm3, xmm5, xmm3
vpcmpeqd xmm0, xmm0, xmm0
vpxor xmm3, xmm3, xmm0
vpminud xmm6, xmm12, xmm13
vpcmpeqd xmm6, xmm12, xmm6
vpxor xmm6, xmm6, xmm0
vpackssdw xmm3, xmm6, xmm3
vpabsd xmm6, xmm7
vpabsd xmm7, xmmword [rsp + 0x90]
vpabsd xmm8, xmm8
vpabsd xmm14, xmmword [rsp + 0x140]
vpminud xmm15, xmm6, xmm8
vpcmpeqd xmm15, xmm15, xmm6
vpxor xmm15, xmm15, xmm0
vpminud xmm4, xmm7, xmm14
vpcmpeqd xmm4, xmm7, xmm4
vpxor xmm4, xmm4, xmm0
vpackssdw xmm4, xmm15, xmm4
vpacksswb xmm3, xmm4, xmm3
vpblendvb xmm1, xmm2, xmm1, xmm3
vpabsd xmm2, xmmword [rsp + 0x60]
vpminud xmm3, xmm2, xmm7
vpcmpeqd xmm3, xmm2, xmm3
vpminud xmm4, xmm2, xmm14
vpcmpeqd xmm2, xmm2, xmm4
vpxor xmm3, xmm3, xmm0
vpxor xmm2, xmm2, xmm0
vpor xmm2, xmm3, xmm2
vpabsd xmm3, xmm11
vpminud xmm4, xmm3, xmm6
vpcmpeqd xmm4, xmm3, xmm4
vpminud xmm6, xmm3, xmm8
vpcmpeqd xmm3, xmm3, xmm6
vpxor xmm4, xmm4, xmm0
vpxor xmm3, xmm3, xmm0
vpor xmm3, xmm4, xmm3
vpackssdw xmm2, xmm3, xmm2
vpabsd xmm3, xmmword [rsp + 0x70]
vpminud xmm4, xmm3, xmm12
vpcmpeqd xmm4, xmm3, xmm4
vpminud xmm6, xmm3, xmm13
vpcmpeqd xmm3, xmm3, xmm6
vpxor xmm4, xmm4, xmm0
vpxor xmm3, xmm3, xmm0
vpor xmm3, xmm4, xmm3
vpabsd xmm4, xmmword [rsp + 0x50]
vpminud xmm5, xmm4, xmm5
vpcmpeqd xmm5, xmm4, xmm5
vpminud xmm6, xmm4, xmm10
vpcmpeqd xmm4, xmm4, xmm6
vpxor xmm5, xmm5, xmm0
vpxor xmm4, xmm4, xmm0
vpor xmm4, xmm5, xmm4
vpackssdw xmm3, xmm3, xmm4
vpacksswb xmm2, xmm2, xmm3
vpblendvb xmm0, xmm9, xmm1, xmm2
vpaddb xmm0, xmm0, xmmword [r14 + rsi]
vmovdqu xmmword [rcx + rsi], xmm0
add rsi, 0x10
cmp r10, rsi
jne 0x1400a776b
mov rdi, r10
cmp r10, r11
vmovdqa xmm8, xmmword [0x14012e8a0]
vmovdqa xmm9, xmmword [0x14012e8a0]
jne 0x1400a7f20
jmp 0x1400a769b
xor esi, esi
mov r10, qword [rsp + 0x168]
vmovdqu xmm0, xmmword [rax + rsi]
vmovdqu xmm14, xmmword [rax + rsi + 0x10]
vpshufd xmm1, xmm14, 0x55
vpmovzxbd xmm1, xmm1
vmovdqa xmmword [rsp + 0x60], xmm1
vpshufd xmm1, xmm0, 0xff
vpmovzxbd xmm6, xmm1
vpshufd xmm1, xmm0, 0xee
vpmovzxbd xmm4, xmm1
vpmovzxbd xmm5, xmm0
vpshufd xmm0, xmm0, 0x55
vpmovzxbd xmm9, xmm0
vmovdqu xmm0, xmmword [r8 + rsi]
vmovdqu xmm7, xmmword [r8 + rsi + 0x10]
vpshufd xmm2, xmm0, 0xff
vpmovzxbd xmm1, xmm2
vpshufd xmm2, xmm0, 0xee
vpmovzxbd xmm12, xmm2
vpmovzxbd xmm13, xmm0
vpshufd xmm0, xmm0, 0x55
vpmovzxbd xmm2, xmm0
vmovdqu xmm8, xmmword [r9 + rsi]
vpshufd xmm0, xmm8, 0x55
vpmovzxbd xmm15, xmm0
vpmovzxbd xmm0, xmm8
vpshufd xmm3, xmm8, 0xee
vpmovzxbd xmm3, xmm3
vpshufd xmm8, xmm8, 0xff
vpmovzxbd xmm8, xmm8
vmovdqa xmmword [rsp + 0x50], xmm8
vpsubd xmm11, xmm2, xmm9
vpaddd xmm8, xmm11, xmm15
vpsubd xmm15, xmm8, xmm2
vpsubd xmm2, xmm8, xmm9
vpsubd xmm8, xmm13, xmm5
vpaddd xmm0, xmm8, xmm0
vpsubd xmm9, xmm0, xmm13
vmovdqa xmmword [rsp + 0x70], xmm9
vpsubd xmm0, xmm0, xmm5
vmovdqa xmmword [rsp + 0x90], xmm0
vpsubd xmm10, xmm12, xmm4
vpaddd xmm3, xmm10, xmm3
vpsubd xmm12, xmm3, xmm12
vpsubd xmm0, xmm3, xmm4
vmovdqa xmmword [rsp + 0x190], xmm0
vpsubd xmm3, xmm1, xmm6
vpaddd xmm4, xmm3, xmmword [rsp + 0x50]
vpsubd xmm0, xmm4, xmm1
vmovdqa xmmword [rsp + 0x140], xmm0
vpsubd xmm0, xmm4, xmm6
vmovdqa xmmword [rsp + 0xf0], xmm0
vpshufd xmm4, xmm7, 0x55
vpmovzxbd xmm4, xmm4
vmovdqu xmm5, xmmword [r9 + rsi + 0x10]
vpshufd xmm6, xmm5, 0x55
vpmovzxbd xmm0, xmm6
vmovdqa xmm1, xmmword [rsp + 0x60]
vpsubd xmm6, xmm4, xmm1
vpaddd xmm0, xmm6, xmm0
vpsubd xmm4, xmm0, xmm4
vmovdqa xmmword [rsp + 0x1c0], xmm4
vpsubd xmm0, xmm0, xmm1
vmovdqa xmmword [rsp + 0x1b0], xmm0
vpmovzxbd xmm0, xmm14
vpmovzxbd xmm9, xmm7
vpmovzxbd xmm13, xmm5
vpsubd xmm4, xmm9, xmm0
vpaddd xmm13, xmm13, xmm4
vpsubd xmm1, xmm13, xmm9
vmovdqa xmmword [rsp + 0x1e0], xmm1
vpsubd xmm0, xmm13, xmm0
vmovdqa xmmword [rsp + 0x1d0], xmm0
vpshufd xmm0, xmm14, 0xee
vpmovzxbd xmm0, xmm0
vpshufd xmm9, xmm7, 0xee
vpmovzxbd xmm13, xmm9
vpshufd xmm9, xmm5, 0xee
vpmovzxbd xmm1, xmm9
vpsubd xmm9, xmm13, xmm0
vpaddd xmm1, xmm9, xmm1
vpsubd xmm13, xmm1, xmm13
vmovdqa xmmword [rsp + 0xe0], xmm13
vpsubd xmm0, xmm1, xmm0
vmovdqa xmmword [rsp + 0x200], xmm0
vpshufd xmm0, xmm14, 0xff
vpmovzxbd xmm0, xmm0
vpshufd xmm1, xmm7, 0xff
vpmovzxbd xmm1, xmm1
vpshufd xmm5, xmm5, 0xff
vpmovzxbd xmm7, xmm5
vpsubd xmm5, xmm1, xmm0
vpaddd xmm7, xmm5, xmm7
vpsubd xmm1, xmm7, xmm1
vmovdqa xmmword [rsp + 0x130], xmm1
vpsubd xmm0, xmm7, xmm0
vmovdqa xmmword [rsp + 0x1f0], xmm0
vpabsd xmm0, xmm11
vpabsd xmm1, xmm15
vmovdqa xmmword [rsp + 0x60], xmm1
vpabsd xmm2, xmm2
vmovdqa xmmword [rsp + 0x50], xmm2
vpminud xmm1, xmm0, xmm1
vpcmpeqd xmm1, xmm0, xmm1
vpminud xmm2, xmm0, xmm2
vpcmpeqd xmm0, xmm0, xmm2
vpcmpeqd xmm2, xmm2, xmm2
vpxor xmm1, xmm1, xmm2
vpxor xmm0, xmm0, xmm2
vpor xmm0, xmm1, xmm0
vpabsd xmm1, xmm8
vpabsd xmm7, xmmword [rsp + 0x70]
vmovdqa xmmword [rsp + 0x70], xmm7
vpabsd xmm8, xmmword [rsp + 0x90]
vmovdqa xmmword [rsp + 0x90], xmm8
vpminud xmm7, xmm1, xmm7
vpcmpeqd xmm7, xmm1, xmm7
vpminud xmm15, xmm1, xmm8
vpcmpeqd xmm1, xmm15, xmm1
vpxor xmm7, xmm7, xmm2
vpxor xmm1, xmm1, xmm2
vpor xmm1, xmm7, xmm1
vpackssdw xmm7, xmm1, xmm0
vpabsd xmm10, xmm10
vpabsd xmm0, xmm12
vpabsd xmm1, xmmword [rsp + 0x190]
vmovdqa xmmword [rsp + 0x190], xmm1
vpminud xmm12, xmm10, xmm0
vpcmpeqd xmm12, xmm10, xmm12
vpminud xmm15, xmm10, xmm1
vpcmpeqd xmm10, xmm10, xmm15
vpxor xmm12, xmm12, xmm2
vpxor xmm10, xmm10, xmm2
vpor xmm15, xmm12, xmm10
vpabsd xmm3, xmm3
vpabsd xmm12, xmmword [rsp + 0x140]
vpabsd xmm1, xmmword [rsp + 0xf0]
vmovdqa xmmword [rsp + 0xf0], xmm1
vpminud xmm14, xmm3, xmm12
vpcmpeqd xmm14, xmm14, xmm3
vpminud xmm13, xmm3, xmm1
vpcmpeqd xmm3, xmm13, xmm3
vpxor xmm13, xmm14, xmm2
vpxor xmm3, xmm3, xmm2
vpor xmm3, xmm13, xmm3
vpackssdw xmm3, xmm15, xmm3
vpacksswb xmm1, xmm7, xmm3
vmovdqu ymmword [rsp + 0x140], ymm1
vpabsd xmm6, xmm6
vpabsd xmm7, xmmword [rsp + 0x1c0]
vpabsd xmm13, xmmword [rsp + 0x1b0]
vpminud xmm14, xmm6, xmm7
vpcmpeqd xmm14, xmm14, xmm6
vpminud xmm15, xmm6, xmm13
vpcmpeqd xmm6, xmm15, xmm6
vpxor xmm14, xmm14, xmm2
vpxor xmm6, xmm6, xmm2
vpor xmm6, xmm14, xmm6
vpabsd xmm4, xmm4
vpabsd xmm14, xmmword [rsp + 0x1e0]
vpabsd xmm15, xmmword [rsp + 0x1d0]
vpminud xmm3, xmm4, xmm14
vpcmpeqd xmm3, xmm4, xmm3
vpminud xmm8, xmm4, xmm15
vpcmpeqd xmm4, xmm8, xmm4
vpxor xmm3, xmm3, xmm2
vpxor xmm4, xmm4, xmm2
vpor xmm3, xmm3, xmm4
vpackssdw xmm3, xmm3, xmm6
vpabsd xmm4, xmm9
vpabsd xmm6, xmmword [rsp + 0xe0]
vpabsd xmm8, xmmword [rsp + 0x200]
vpminud xmm9, xmm4, xmm6
vpcmpeqd xmm9, xmm9, xmm4
vpminud xmm11, xmm4, xmm8
vpcmpeqd xmm4, xmm11, xmm4
vpxor xmm9, xmm9, xmm2
vpxor xmm4, xmm4, xmm2
vpor xmm4, xmm9, xmm4
vpabsd xmm5, xmm5
vpabsd xmm9, xmmword [rsp + 0x130]
vpabsd xmm11, xmmword [rsp + 0x1f0]
vpminud xmm1, xmm5, xmm9
vpcmpeqd xmm1, xmm5, xmm1
vpminud xmm10, xmm5, xmm11
vpcmpeqd xmm5, xmm10, xmm5
vpxor xmm1, xmm1, xmm2
vpxor xmm5, xmm5, xmm2
vpor xmm1, xmm1, xmm5
vpackssdw xmm1, xmm4, xmm1
vpacksswb xmm1, xmm3, xmm1
vpminud xmm3, xmm9, xmm11
vpcmpeqd xmm3, xmm9, xmm3
vpminud xmm4, xmm6, xmm8
vpcmpeqd xmm4, xmm6, xmm4
vpxor xmm3, xmm3, xmm2
vpxor xmm4, xmm4, xmm2
vpackssdw xmm3, xmm4, xmm3
vpminud xmm4, xmm14, xmm15
vpcmpeqd xmm4, xmm14, xmm4
vpminud xmm5, xmm7, xmm13
vpcmpeqd xmm5, xmm7, xmm5
vpxor xmm4, xmm4, xmm2
vpxor xmm5, xmm5, xmm2
vpackssdw xmm4, xmm4, xmm5
vpacksswb xmm3, xmm4, xmm3
vpminud xmm4, xmm12, xmmword [rsp + 0xf0]
vpcmpeqd xmm4, xmm12, xmm4
vpminud xmm5, xmm0, xmmword [rsp + 0x190]
vpcmpeqd xmm0, xmm0, xmm5
vpxor xmm4, xmm4, xmm2
vpxor xmm0, xmm0, xmm2
vpackssdw xmm0, xmm0, xmm4
vmovdqa xmm5, xmmword [rsp + 0x70]
vpminud xmm4, xmm5, xmmword [rsp + 0x90]
vpcmpeqd xmm5, xmm5, xmm4
vmovdqa xmm6, xmmword [rsp + 0x60]
vpminud xmm4, xmm6, xmmword [rsp + 0x50]
vpcmpeqd xmm4, xmm6, xmm4
vpxor xmm5, xmm5, xmm2
vpxor xmm4, xmm4, xmm2
vpackssdw xmm2, xmm5, xmm4
vpacksswb xmm0, xmm2, xmm0
vinsertf128 ymm0, ymm0, xmm3, 1
vandnps ymm2, ymm0, ymmword [r8 + rsi]
vandps ymm0, ymm0, ymmword [rax + rsi]
vmovdqu ymm3, ymmword [rsp + 0x140]
vinsertf128 ymm1, ymm3, xmm1, 1
vorps ymm0, ymm0, ymm2
vandnps ymm2, ymm1, ymmword [r9 + rsi]
vandps ymm0, ymm0, ymm1
vorps ymm0, ymm0, ymm2
vpaddb xmm1, xmm0, xmmword [r14 + rsi]
vextractf128 xmm0, ymm0, 1
vpaddb xmm0, xmm0, xmmword [r14 + rsi + 0x10]
vmovdqu xmmword [rcx + rsi + 0x10], xmm0
vmovdqu xmmword [rcx + rsi], xmm1
add rsi, 0x20
cmp r10, rsi
jne 0x1400a79b4
cmp r10, r11
vmovdqa xmm8, xmmword [0x14012e8a0]
vmovdqa xmm9, xmmword [0x14012e8a0]
je 0x1400a769b
mov rdi, qword [rsp + 0x168]
mov rsi, rdi
test r11b, 0x10
je 0x1400a7f20
jmp 0x1400a7763
xor edi, edi
jmp 0x1400a7f20
xor edi, edi
jmp 0x1400a7f20
xor edi, edi
jmp 0x1400a7f20
xor edi, edi
jmp 0x1400a7f20
cmp r15d, ebx
cmova esi, ebp
cmp r15d, r13d
cmova esi, ebp
add sil, byte [r14 + rdi]
mov byte [rcx + rdi], sil
inc rdi
cmp r11, rdi
je 0x1400a769b
movzx ebp, byte [rax + rdi]
movzx r12d, byte [r8 + rdi]
movzx esi, byte [r9 + rdi]
mov ebx, r12d
sub ebx, ebp
lea r10d, [rbx + rsi]
mov r15d, ebx
neg r15d
cmovs r15d, ebx
mov ebx, r10d
sub ebx, r12d
mov r13d, ebx
neg r13d
cmovs r13d, ebx
sub r10d, ebp
mov ebx, r10d
neg ebx
cmovs ebx, r10d
cmp r13d, ebx
ja 0x1400a7f00
mov ebp, r12d
jmp 0x1400a7f00
test ebp, ebp
je case.default.0x1400a68ef
movsxd r8, r13d
mov r9d, r13d
lea r10, [rax + r15]
mov qword [rsp + 0x50], r10
mov r11d, r9d
and r11d, 0xffffff80
mov edi, r9d
and edi, 0xfffffff0
mov r10, r9
neg r10
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0x100]
lea rbx, [rax + r10]
add rbx, r15
add rax, qword [rsp + 0xb0]
add rax, r15
xor r12d, r12d
mov r10d, ebp
mov r14, qword [rsp + 0x30]
jmp 0x1400a7fdf
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x38]
add rcx, rsi
inc r12
add rbx, rsi
add rax, rsi
dec r10d
je 0x1400a840b
test r13d, r13d
jle 0x1400a7fbd
cmp r13d, 0x10
jae 0x1400a804f
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x1400a8014
mov r15, rsi
sub r15, qword [rsp + 0x38]
movzx ebp, byte [rcx + r15]
shr bpl, 1
add bpl, byte [r14 + rsi]
mov byte [rcx + rsi], bpl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x1400a7fbd
nop
movzx esi, byte [rax + rbp]
shr sil, 1
add sil, byte [r14 + rbp]
mov byte [rcx + rbp], sil
movzx esi, byte [rax + rbp + 1]
shr sil, 1
add sil, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], sil
add rbp, 2
cmp r9, rbp
jne 0x1400a8020
jmp 0x1400a7fbd
mov rsi, r12
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x50]
mov r15, r12
imul r15, r8
add r15, qword [rsp + 0x30]
sub rsi, r15
cmp rsi, 0x80
jb 0x1400a7fea
jb 0x1400a7fea
mov esi, 0
cmp dword [rsp + 0x4c], 0x80
jb 0x1400a7fec
cmp r13d, 0x80
jae 0x1400a80a3
xor r15d, r15d
jmp 0x1400a81a8
xor ebp, ebp
vmovdqu xmm0, xmmword [rbx + rbp - 0x60]
vmovdqu xmm1, xmmword [rbx + rbp - 0x50]
vmovdqu xmm2, xmmword [rbx + rbp - 0x40]
vmovdqu xmm3, xmmword [rbx + rbp - 0x30]
vpsrlw xmm1, xmm1, 1
vpand xmm1, xmm9, xmm1
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm9, xmm0
vpsrlw xmm3, xmm3, 1
vpand xmm3, xmm9, xmm3
vpsrlw xmm2, xmm2, 1
vpand xmm2, xmm9, xmm2
vmovdqu xmm4, xmmword [rbx + rbp - 0x10]
vpsrlw xmm4, xmm4, 1
vpand xmm4, xmm9, xmm4
vmovdqu xmm5, xmmword [rbx + rbp - 0x20]
vpsrlw xmm5, xmm5, 1
vpand xmm5, xmm9, xmm5
vmovdqu xmm6, xmmword [rbx + rbp + 0x10]
vpsrlw xmm6, xmm6, 1
vpand xmm6, xmm9, xmm6
vmovdqu xmm7, xmmword [rbx + rbp]
vpsrlw xmm7, xmm7, 1
vpand xmm7, xmm9, xmm7
vpaddb xmm0, xmm0, xmmword [r14 + rbp]
vpaddb xmm1, xmm1, xmmword [r14 + rbp + 0x10]
vpaddb xmm2, xmm2, xmmword [r14 + rbp + 0x20]
vpaddb xmm3, xmm3, xmmword [r14 + rbp + 0x30]
vpaddb xmm5, xmm5, xmmword [r14 + rbp + 0x40]
vpaddb xmm4, xmm4, xmmword [r14 + rbp + 0x50]
vpaddb xmm7, xmm7, xmmword [r14 + rbp + 0x60]
vpaddb xmm6, xmm6, xmmword [r14 + rbp + 0x70]
vmovdqu xmmword [rcx + rbp + 0x10], xmm1
vmovdqu xmmword [rcx + rbp], xmm0
vmovdqu xmmword [rcx + rbp + 0x30], xmm3
vmovdqu xmmword [rcx + rbp + 0x20], xmm2
vmovdqu xmmword [rcx + rbp + 0x50], xmm4
vmovdqu xmmword [rcx + rbp + 0x40], xmm5
vmovdqu xmmword [rcx + rbp + 0x70], xmm6
vmovdqu xmmword [rcx + rbp + 0x60], xmm7
sub rbp, 0xffffffffffffff80
cmp r11, rbp
jne 0x1400a80a5
cmp r11, r9
je 0x1400a7fbd
mov r15, r11
mov rsi, r11
test r9b, 0x70
je 0x1400a7fec
vmovdqu xmm0, xmmword [rax + r15]
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm8, xmm0
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rdi, r15
jne 0x1400a81a8
mov rsi, rdi
cmp rdi, r9
je 0x1400a7fbd
jmp 0x1400a7fec
test ebp, ebp
je case.default.0x1400a68ef
movsxd r8, r13d
mov r9d, r13d
lea r10, [rax + r15]
mov qword [rsp + 0x50], r10
mov r11d, r9d
and r11d, 0xffffff80
mov edi, r9d
and edi, 0xfffffff0
mov r10, r9
neg r10
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0x100]
lea rbx, [rax + r10]
add rbx, r15
add rax, qword [rsp + 0xb0]
add rax, r15
xor r12d, r12d
mov r10d, ebp
mov r14, qword [rsp + 0x30]
jmp 0x1400a8255
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x38]
add rcx, rsi
inc r12
add rbx, rsi
add rax, rsi
dec r10d
je 0x1400a840b
test r13d, r13d
jle 0x1400a8233
cmp r13d, 0x10
jae 0x1400a82c9
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x1400a8287
mov r15, rsi
sub r15, qword [rsp + 0x38]
movzx ebp, byte [rcx + r15]
add bpl, byte [r14 + rsi]
mov byte [rcx + rsi], bpl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x1400a8233
nop word cs:[rax + rax]
movzx esi, byte [rax + rbp]
add sil, byte [r14 + rbp]
mov byte [rcx + rbp], sil
movzx esi, byte [rax + rbp + 1]
add sil, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], sil
add rbp, 2
cmp r9, rbp
jne 0x1400a82a0
jmp 0x1400a8233
mov rsi, r12
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x50]
mov r15, r12
imul r15, r8
add r15, qword [rsp + 0x30]
sub rsi, r15
cmp rsi, 0x80
jb 0x1400a8260
jb 0x1400a8260
mov esi, 0
cmp dword [rsp + 0x4c], 0x80
jb 0x1400a8262
cmp r13d, 0x80
jae 0x1400a831d
xor r15d, r15d
jmp 0x1400a83da
xor ebp, ebp
vmovdqu xmm0, xmmword [rbx + rbp - 0x60]
vmovdqu xmm1, xmmword [rbx + rbp - 0x50]
vmovdqu xmm2, xmmword [rbx + rbp - 0x40]
vmovdqu xmm3, xmmword [rbx + rbp - 0x30]
vpaddb xmm0, xmm0, xmmword [r14 + rbp]
vpaddb xmm1, xmm1, xmmword [r14 + rbp + 0x10]
vpaddb xmm2, xmm2, xmmword [r14 + rbp + 0x20]
vpaddb xmm3, xmm3, xmmword [r14 + rbp + 0x30]
vmovdqu xmm4, xmmword [rbx + rbp - 0x20]
vpaddb xmm4, xmm4, xmmword [r14 + rbp + 0x40]
vmovdqu xmm5, xmmword [rbx + rbp - 0x10]
vpaddb xmm5, xmm5, xmmword [r14 + rbp + 0x50]
vmovdqu xmm6, xmmword [rbx + rbp]
vpaddb xmm6, xmm6, xmmword [r14 + rbp + 0x60]
vmovdqu xmm7, xmmword [rbx + rbp + 0x10]
vpaddb xmm7, xmm7, xmmword [r14 + rbp + 0x70]
vmovdqu xmmword [rcx + rbp + 0x10], xmm1
vmovdqu xmmword [rcx + rbp], xmm0
vmovdqu xmmword [rcx + rbp + 0x30], xmm3
vmovdqu xmmword [rcx + rbp + 0x20], xmm2
vmovdqu xmmword [rcx + rbp + 0x50], xmm5
vmovdqu xmmword [rcx + rbp + 0x40], xmm4
vmovdqu xmmword [rcx + rbp + 0x70], xmm7
vmovdqu xmmword [rcx + rbp + 0x60], xmm6
sub rbp, 0xffffffffffffff80
cmp r11, rbp
jne 0x1400a831f
cmp r11, r9
je 0x1400a8233
mov r15, r11
mov rsi, r11
test r9b, 0x70
je 0x1400a8262
vmovdqu xmm0, xmmword [rax + r15]
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rdi, r15
jne 0x1400a83da
mov rsi, rdi
cmp rdi, r9
je 0x1400a8233
jmp 0x1400a8262
mov r14, qword [rsp + 0x30]
mov r15d, dword [rsp + 0x380]
cmp r15d, 0x10
jne 0x1400a8504
mov ebp, dword [rsp + 0x370]
test ebp, ebp
mov r12, qword [rsp + 0xd8]
mov edi, dword [rsp + 0x88]
mov esi, dword [rsp + 0x8c]
mov r13, qword [rsp + 0xb8]
mov r11d, dword [rsp + 0x378]
mov r10, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0xcc]
je 0x1400a8576
add rdx, qword [r12 + 0x18]
movsxd rax, dword [rsp + 0x28]
inc rax
cmp ebp, 8
jb 0x1400a84ef
mov r8, rbx
sub r8, rax
mov r9d, dword [rsp + 0x118]
mov rcx, rdx
add rdx, rax
mov byte [rcx + rax], 0xff
mov byte [rbx + rdx], 0xff
add rdx, rbx
mov byte [rbx + rdx], 0xff
add rdx, rbx
mov byte [rbx + rdx], 0xff
add rdx, rbx
mov byte [rbx + rdx], 0xff
add rdx, rbx
mov byte [rbx + rdx], 0xff
add rdx, rbx
mov byte [rbx + rdx], 0xff
add rdx, rbx
mov byte [rbx + rdx], 0xff
add rdx, rbx
add rdx, r8
add r9d, 0xfffffff8
jne 0x1400a8486
add rcx, rbx
add rcx, rbx
lea rdx, [rbx + rbx]
add rdx, rbx
add rcx, rdx
add rcx, rdx
mov rdx, rcx
mov r10, qword [rsp + 0xd0]
mov ecx, dword [rsp + 0xcc]
test ecx, ecx
je 0x1400a8539
add rdx, rax
mov eax, ecx
mov byte [rdx], 0xff
add rdx, rbx
dec eax
jne 0x1400a84f8
jmp 0x1400a8539
mov r12, qword [rsp + 0xd8]
mov edi, dword [rsp + 0x88]
mov esi, dword [rsp + 0x8c]
mov r13, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0x370]
mov r11d, dword [rsp + 0x378]
mov r10, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
inc rcx
cmp rcx, qword [rsp + 0x110]
je 0x1400a94cb
mov eax, dword [rsp + 0x40]
mov edx, eax
imul edx, ecx
mov rax, qword [r12 + 0x18]
add rax, rdx
movzx r9d, byte [r14]
cmp r9b, 4
jbe 0x1400a6781
jmp 0x1400a6637
mov rcx, qword [rsp + 0xc0]
inc rcx
cmp rcx, qword [rsp + 0x110]
jne 0x1400a8552
jmp 0x1400a9945
lea r10, [rax + r15]
mov r9, r10
sub r9, rbp
cmp r9, 0x80
jb 0x1400a6b2c
jb 0x1400a6b2c
mov r9d, 0
cmp dword [rsp + 0x40], 0x80
jb 0x1400a6b2f
cmp r11d, 0x80
jae 0x1400a8799
xor r9d, r9d
jmp 0x1400a886f
lea r10, [rax + r15]
sub r10, rbp
mov r9, qword [rsp + 0x220]
add r9, r13
cmp r10, 0x20
jb 0x1400a6cd3
jb 0x1400a6cd3
cmp r9, 0x20
jb 0x1400a6cd3
cmp dword [rsp + 0x40], 0x20
jb 0x1400a6cd3
mov r9d, 0
cmp esi, 0x20
jb 0x1400a6cd6
cmp r11d, 0x20
jae 0x1400a88a3
xor r9d, r9d
jmp 0x1400a8dfb
lea r9, [rax + r15]
sub r9, rbp
cmp r9, 0x80
jb 0x1400a6aa6
jb 0x1400a6aa6
mov r9d, 0
cmp r10d, 0x80
jb 0x1400a6aa9
cmp r11d, 0x80
jae 0x1400a9073
xor r9d, r9d
jmp 0x1400a914e
lea r10, [rax + r15]
sub r10, rbp
cmp r10, 0x20
jb 0x1400a6c07
jb 0x1400a6c07
cmp dword [rsp + 0x40], 0x20
jb 0x1400a6c07
mov r10d, 0
cmp esi, 0x20
jb 0x1400a6c0a
cmp r11d, 0x20
jae 0x1400a918b
xor r10d, r10d
mov r11, r10
mov r10d, edx
and r10d, 0xfffffff0
mov rsi, r15
sub rsi, r9
add rsi, rax
vpmovzxbw xmm0, qword [r8 + r11 + 8]
vpmovzxbw xmm1, qword [r8 + r11]
vpmovzxbw xmm2, qword [rsi + r11 + 8]
vpaddw xmm0, xmm2, xmm0
vpmovzxbw xmm2, qword [rsi + r11]
vpaddw xmm1, xmm2, xmm1
vpsrlw xmm0, xmm0, 1
vpsrlw xmm1, xmm1, 1
vpackuswb xmm0, xmm1, xmm0
vpaddb xmm0, xmm0, xmmword [rbp + r11]
vmovdqu xmmword [rcx + r11], xmm0
add r11, 0x10
cmp r10, r11
jne 0x1400a86c1
cmp r10, rdx
jne 0x1400a6c0a
jmp case.default.0x1400a68bb
lea r9, [rax + r15]
sub r9, rbp
cmp r9, 0x80
jb 0x1400a6d86
jb 0x1400a6d86
mov r9d, 0
cmp r10d, 0x80
jb 0x1400a6d89
cmp r11d, 0x80
jae 0x1400a923a
xor r9d, r9d
jmp 0x1400a9365
lea r9, [rax + r15]
sub r9, rbp
cmp r9, 0x80
jb 0x1400a6e19
jb 0x1400a6e19
mov r9d, 0
cmp r10d, 0x80
jb 0x1400a6e1c
cmp r11d, 0x80
jae 0x1400a93b3
xor r9d, r9d
jmp 0x1400a948e
mov r9d, edx
and r9d, 0xffffff80
add r10, qword [rsp + 0x210]
lea r11, [rax + r15]
add r11, 0x60
xor esi, esi
vmovdqu xmm0, xmmword [r10 + rsi - 0x60]
vmovdqu xmm1, xmmword [r10 + rsi - 0x50]
vmovdqu xmm2, xmmword [r10 + rsi - 0x40]
vmovdqu xmm3, xmmword [r10 + rsi - 0x30]
vpaddb xmm0, xmm0, xmmword [rbp + rsi]
vpaddb xmm1, xmm1, xmmword [rbp + rsi + 0x10]
vpaddb xmm2, xmm2, xmmword [rbp + rsi + 0x20]
vpaddb xmm3, xmm3, xmmword [rbp + rsi + 0x30]
vmovdqu xmm4, xmmword [r10 + rsi - 0x20]
vpaddb xmm4, xmm4, xmmword [rbp + rsi + 0x40]
vmovdqu xmm5, xmmword [r10 + rsi - 0x10]
vpaddb xmm5, xmm5, xmmword [rbp + rsi + 0x50]
vmovdqu xmm6, xmmword [r10 + rsi]
vpaddb xmm6, xmm6, xmmword [rbp + rsi + 0x60]
vmovdqu xmm7, xmmword [r10 + rsi + 0x10]
vpaddb xmm7, xmm7, xmmword [rbp + rsi + 0x70]
vmovdqu xmmword [r11 + rsi - 0x50], xmm1
vmovdqu xmmword [r11 + rsi - 0x60], xmm0
vmovdqu xmmword [r11 + rsi - 0x30], xmm3
vmovdqu xmmword [r11 + rsi - 0x40], xmm2
vmovdqu xmmword [r11 + rsi - 0x10], xmm5
vmovdqu xmmword [r11 + rsi - 0x20], xmm4
vmovdqu xmmword [r11 + rsi + 0x10], xmm7
vmovdqu xmmword [r11 + rsi], xmm6
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400a87b2
cmp r9, rdx
je case.default.0x1400a68bb
test dl, 0x70
je 0x1400a6b2f
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
vmovdqu xmm0, xmmword [r8 + r10]
vpaddb xmm0, xmm0, xmmword [rbp + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400a8879
cmp r9, rdx
jne 0x1400a6b2f
jmp case.default.0x1400a68bb
mov r9d, edx
and r9d, 0xffffffe0
mov r11, r15
sub r11, r13
add r11, rax
mov rdi, r9
mov rbx, rcx
mov r12, rbp
mov r10, qword [rsp + 0xa8]
vmovdqu xmm0, xmmword [r11 + r10]
vmovdqu xmm12, xmmword [r11 + r10 + 0x10]
vpshufd xmm1, xmm12, 0x55
vpmovzxbd xmm1, xmm1
vmovdqa xmmword [rsp + 0x60], xmm1
vpshufd xmm1, xmm0, 0xff
vpmovzxbd xmm8, xmm1
vpshufd xmm1, xmm0, 0xee
vpmovzxbd xmm6, xmm1
vpmovzxbd xmm1, xmm0
vpshufd xmm0, xmm0, 0x55
vpmovzxbd xmm9, xmm0
vmovdqu xmm0, xmmword [rbx + r10]
vmovdqu xmm4, xmmword [rbx + r10 + 0x10]
vpshufd xmm3, xmm0, 0xff
vpmovzxbd xmm5, xmm3
vpshufd xmm3, xmm0, 0xee
vpmovzxbd xmm10, xmm3
vpmovzxbd xmm13, xmm0
vpshufd xmm0, xmm0, 0x55
vpmovzxbd xmm0, xmm0
vmovdqu xmm3, xmmword [r11]
vpshufd xmm7, xmm3, 0x55
vpmovzxbd xmm14, xmm7
vpmovzxbd xmm7, xmm3
vpshufd xmm11, xmm3, 0xee
vpmovzxbd xmm2, xmm11
vmovdqa xmmword [rsp + 0x50], xmm2
vpshufd xmm3, xmm3, 0xff
vpmovzxbd xmm2, xmm3
vmovdqa xmmword [rsp + 0x70], xmm2
vpsubd xmm15, xmm0, xmm9
vpaddd xmm3, xmm15, xmm14
vpsubd xmm2, xmm3, xmm0
vpsubd xmm11, xmm3, xmm9
vpsubd xmm14, xmm13, xmm1
vpaddd xmm3, xmm14, xmm7
vpsubd xmm13, xmm3, xmm13
vpsubd xmm0, xmm3, xmm1
vmovdqa xmmword [rsp + 0x90], xmm0
vpsubd xmm3, xmm10, xmm6
vpaddd xmm7, xmm3, xmmword [rsp + 0x50]
vpsubd xmm0, xmm7, xmm10
vmovdqa xmmword [rsp + 0x120], xmm0
vpsubd xmm0, xmm7, xmm6
vmovdqa xmmword [rsp + 0x180], xmm0
vpsubd xmm10, xmm5, xmm8
vpaddd xmm7, xmm10, xmmword [rsp + 0x70]
vpsubd xmm0, xmm7, xmm5
vmovdqa xmmword [rsp + 0xf0], xmm0
vpsubd xmm0, xmm7, xmm8
vmovdqa xmmword [rsp + 0x190], xmm0
vpshufd xmm5, xmm4, 0x55
vpmovzxbd xmm5, xmm5
vmovdqu xmm9, xmmword [r11 + 0x10]
vpshufd xmm6, xmm9, 0x55
vpmovzxbd xmm7, xmm6
vmovdqa xmm0, xmmword [rsp + 0x60]
vpsubd xmm6, xmm5, xmm0
vpaddd xmm7, xmm6, xmm7
vpsubd xmm1, xmm7, xmm5
vmovdqa xmmword [rsp + 0x1c0], xmm1
vpsubd xmm0, xmm7, xmm0
vmovdqa xmmword [rsp + 0x1b0], xmm0
vpmovzxbd xmm5, xmm12
vpmovzxbd xmm8, xmm4
vpmovzxbd xmm0, xmm9
vpsubd xmm7, xmm8, xmm5
vpaddd xmm0, xmm7, xmm0
vpsubd xmm1, xmm0, xmm8
vmovdqa xmmword [rsp + 0x1e0], xmm1
vpsubd xmm0, xmm0, xmm5
vmovdqa xmmword [rsp + 0x1d0], xmm0
vpshufd xmm0, xmm12, 0xee
vpmovzxbd xmm0, xmm0
vpshufd xmm5, xmm4, 0xee
vpmovzxbd xmm5, xmm5
vpshufd xmm8, xmm9, 0xee
vpmovzxbd xmm1, xmm8
vpsubd xmm8, xmm5, xmm0
vpaddd xmm1, xmm8, xmm1
vpsubd xmm5, xmm1, xmm5
vmovdqa xmmword [rsp + 0x140], xmm5
vpsubd xmm0, xmm1, xmm0
vmovdqa xmmword [rsp + 0x130], xmm0
vpshufd xmm0, xmm12, 0xff
vpmovzxbd xmm0, xmm0
vpshufd xmm1, xmm4, 0xff
vpmovzxbd xmm1, xmm1
vpshufd xmm4, xmm9, 0xff
vpmovzxbd xmm4, xmm4
vpsubd xmm5, xmm1, xmm0
vmovdqa xmmword [rsp + 0x1f0], xmm5
vpaddd xmm4, xmm5, xmm4
vpsubd xmm1, xmm4, xmm1
vmovdqa xmmword [rsp + 0xe0], xmm1
vpsubd xmm0, xmm4, xmm0
vmovdqa xmmword [rsp + 0x200], xmm0
vpabsd xmm0, xmm15
vpabsd xmm1, xmm2
vmovdqa xmmword [rsp + 0x60], xmm1
vpabsd xmm2, xmm11
vmovdqa xmmword [rsp + 0x50], xmm2
vpminud xmm1, xmm0, xmm1
vpcmpeqd xmm1, xmm0, xmm1
vpminud xmm4, xmm0, xmm2
vpcmpeqd xmm0, xmm0, xmm4
vpcmpeqd xmm2, xmm2, xmm2
vpxor xmm1, xmm1, xmm2
vpxor xmm0, xmm0, xmm2
vpor xmm0, xmm1, xmm0
vpabsd xmm1, xmm14
vpabsd xmm4, xmm13
vmovdqa xmmword [rsp + 0x70], xmm4
vpabsd xmm5, xmmword [rsp + 0x90]
vmovdqa xmmword [rsp + 0x90], xmm5
vpminud xmm4, xmm1, xmm4
vpcmpeqd xmm4, xmm1, xmm4
vpminud xmm13, xmm1, xmm5
vpcmpeqd xmm1, xmm13, xmm1
vpxor xmm4, xmm4, xmm2
vpxor xmm1, xmm1, xmm2
vpor xmm1, xmm4, xmm1
vpackssdw xmm13, xmm1, xmm0
vpabsd xmm3, xmm3
vpabsd xmm1, xmmword [rsp + 0x120]
vpabsd xmm0, xmmword [rsp + 0x180]
vmovdqa xmmword [rsp + 0x120], xmm0
vpminud xmm4, xmm3, xmm1
vpcmpeqd xmm4, xmm3, xmm4
vpminud xmm14, xmm3, xmm0
vpcmpeqd xmm3, xmm14, xmm3
vpxor xmm4, xmm4, xmm2
vpxor xmm3, xmm3, xmm2
vpor xmm14, xmm4, xmm3
vpabsd xmm10, xmm10
vpabsd xmm3, xmmword [rsp + 0xf0]
vpabsd xmm0, xmmword [rsp + 0x190]
vmovdqa xmmword [rsp + 0xf0], xmm0
vpminud xmm15, xmm10, xmm3
vpcmpeqd xmm15, xmm10, xmm15
vpminud xmm12, xmm10, xmm0
vpcmpeqd xmm10, xmm10, xmm12
vpxor xmm12, xmm15, xmm2
vpxor xmm10, xmm10, xmm2
vpor xmm10, xmm12, xmm10
vpackssdw xmm10, xmm14, xmm10
vpacksswb xmm0, xmm13, xmm10
vmovdqu ymmword [rsp + 0x190], ymm0
vpabsd xmm6, xmm6
vpabsd xmm12, xmmword [rsp + 0x1c0]
vpabsd xmm13, xmmword [rsp + 0x1b0]
vpminud xmm14, xmm6, xmm12
vpcmpeqd xmm14, xmm14, xmm6
vpminud xmm15, xmm6, xmm13
vpcmpeqd xmm6, xmm15, xmm6
vpxor xmm14, xmm14, xmm2
vpxor xmm6, xmm6, xmm2
vpor xmm6, xmm14, xmm6
vpabsd xmm7, xmm7
vpabsd xmm14, xmmword [rsp + 0x1e0]
vpabsd xmm15, xmmword [rsp + 0x1d0]
vpminud xmm11, xmm7, xmm14
vpcmpeqd xmm11, xmm11, xmm7
vpminud xmm9, xmm7, xmm15
vpcmpeqd xmm7, xmm9, xmm7
vpxor xmm9, xmm11, xmm2
vpxor xmm7, xmm7, xmm2
vpor xmm7, xmm9, xmm7
vpackssdw xmm6, xmm7, xmm6
vpabsd xmm7, xmm8
vpabsd xmm8, xmmword [rsp + 0x140]
vpabsd xmm9, xmmword [rsp + 0x130]
vpminud xmm11, xmm7, xmm8
vpcmpeqd xmm11, xmm11, xmm7
vpminud xmm5, xmm7, xmm9
vpcmpeqd xmm5, xmm7, xmm5
vpxor xmm7, xmm11, xmm2
vpxor xmm5, xmm5, xmm2
vpor xmm5, xmm7, xmm5
vpabsd xmm7, xmmword [rsp + 0x1f0]
vpabsd xmm11, xmmword [rsp + 0xe0]
vpabsd xmm0, xmmword [rsp + 0x200]
vpminud xmm10, xmm7, xmm11
vpcmpeqd xmm10, xmm10, xmm7
vpminud xmm4, xmm7, xmm0
vpcmpeqd xmm4, xmm7, xmm4
vpxor xmm7, xmm10, xmm2
vpxor xmm4, xmm4, xmm2
vpor xmm4, xmm7, xmm4
vpackssdw xmm4, xmm5, xmm4
vpacksswb xmm4, xmm6, xmm4
vmovups ymm5, ymmword [rsp + 0x190]
vinsertf128 ymm5, ymm5, xmm4, 1
vpminud xmm0, xmm11, xmm0
vpcmpeqd xmm0, xmm11, xmm0
vpminud xmm4, xmm8, xmm9
vpcmpeqd xmm4, xmm8, xmm4
vpxor xmm0, xmm0, xmm2
vpxor xmm4, xmm4, xmm2
vpackssdw xmm0, xmm4, xmm0
vpminud xmm4, xmm14, xmm15
vpcmpeqd xmm4, xmm14, xmm4
vpminud xmm6, xmm12, xmm13
vpcmpeqd xmm6, xmm12, xmm6
vpxor xmm4, xmm4, xmm2
vpxor xmm6, xmm6, xmm2
vpackssdw xmm4, xmm4, xmm6
vpacksswb xmm0, xmm4, xmm0
vpminud xmm4, xmm3, xmmword [rsp + 0xf0]
vpcmpeqd xmm3, xmm3, xmm4
vpminud xmm4, xmm1, xmmword [rsp + 0x120]
vpcmpeqd xmm1, xmm1, xmm4
vpxor xmm3, xmm3, xmm2
vpxor xmm1, xmm1, xmm2
vpackssdw xmm1, xmm1, xmm3
vmovdqa xmm4, xmmword [rsp + 0x70]
vpminud xmm3, xmm4, xmmword [rsp + 0x90]
vpcmpeqd xmm4, xmm4, xmm3
vmovdqa xmm6, xmmword [rsp + 0x60]
vpminud xmm3, xmm6, xmmword [rsp + 0x50]
vpcmpeqd xmm3, xmm6, xmm3
vpxor xmm4, xmm4, xmm2
vpxor xmm3, xmm3, xmm2
vpackssdw xmm2, xmm4, xmm3
vpacksswb xmm1, xmm2, xmm1
vinsertf128 ymm0, ymm1, xmm0, 1
vandnps ymm1, ymm0, ymmword [rbx + r10]
vandps ymm0, ymm0, ymmword [r11 + r10]
vorps ymm0, ymm0, ymm1
vandps ymm0, ymm0, ymm5
vandnps ymm1, ymm5, ymmword [r11]
vorps ymm0, ymm0, ymm1
vpaddb xmm1, xmm0, xmmword [r12]
vextractf128 xmm0, ymm0, 1
vpaddb xmm0, xmm0, xmmword [r12 + 0x10]
vmovdqu xmmword [rbx + 0x10], xmm0
vmovdqu xmmword [rbx], xmm1
add r12, 0x20
add r11, 0x20
add rbx, 0x20
add rdi, 0xffffffffffffffe0
jne 0x1400a88c4
cmp r9, rdx
je case.default.0x1400a68bb
test dl, 0x10
je 0x1400a6cd6
mov ebx, edx
and ebx, 0xfffffff0
mov rsi, r15
sub rsi, r13
add rsi, rax
mov r10, qword [rsp + 0xa8]
lea rdi, [rsi + r10]
mov qword [rsp + 0xe0], rbx
mov r12, rcx
mov r11, r8
mov r10, rbp
vmovdqu xmm1, xmmword [rdi + r9]
vpshufd xmm0, xmm1, 0xff
vpmovzxbd xmm6, xmm0
vpshufd xmm0, xmm1, 0xee
vpmovzxbd xmm4, xmm0
vpmovzxbd xmm5, xmm1
vpshufd xmm0, xmm1, 0x55
vpmovzxbd xmm7, xmm0
vmovdqu xmm2, xmmword [r11 + r9]
vpshufd xmm0, xmm2, 0xff
vpmovzxbd xmm15, xmm0
vpshufd xmm0, xmm2, 0xee
vpmovzxbd xmm12, xmm0
vpmovzxbd xmm8, xmm2
vpshufd xmm0, xmm2, 0x55
vpmovzxbd xmm10, xmm0
vmovdqu xmm9, xmmword [rsi + r9]
vpshufd xmm3, xmm9, 0x55
vpmovzxbd xmm11, xmm3
vpmovzxbd xmm13, xmm9
vpshufd xmm3, xmm9, 0xee
vpmovzxbd xmm3, xmm3
vpshufd xmm14, xmm9, 0xff
vpmovzxbd xmm14, xmm14
vpsubd xmm0, xmm10, xmm7
vmovdqa xmmword [rsp + 0x60], xmm0
vpaddd xmm11, xmm11, xmm0
vpsubd xmm0, xmm11, xmm10
vmovdqa xmmword [rsp + 0x90], xmm0
vpsubd xmm0, xmm11, xmm7
vmovdqa xmmword [rsp + 0x140], xmm0
vpsubd xmm11, xmm8, xmm5
vpaddd xmm10, xmm11, xmm13
vpsubd xmm7, xmm10, xmm8
vpsubd xmm8, xmm10, xmm5
vpsubd xmm0, xmm12, xmm4
vmovdqa xmmword [rsp + 0x70], xmm0
vpaddd xmm3, xmm0, xmm3
vpsubd xmm12, xmm3, xmm12
vpsubd xmm3, xmm3, xmm4
vpsubd xmm0, xmm15, xmm6
vmovdqa xmmword [rsp + 0x50], xmm0
vpaddd xmm13, xmm14, xmm0
vpsubd xmm5, xmm13, xmm15
vpabsd xmm5, xmm5
vpabsd xmm12, xmm12
vpsubd xmm6, xmm13, xmm6
vpabsd xmm10, xmm6
vpabsd xmm13, xmm3
vpminud xmm3, xmm5, xmm10
vpcmpeqd xmm3, xmm5, xmm3
vpcmpeqd xmm0, xmm0, xmm0
vpxor xmm3, xmm3, xmm0
vpminud xmm6, xmm12, xmm13
vpcmpeqd xmm6, xmm12, xmm6
vpxor xmm6, xmm6, xmm0
vpackssdw xmm3, xmm6, xmm3
vpabsd xmm6, xmm7
vpabsd xmm7, xmmword [rsp + 0x90]
vpabsd xmm8, xmm8
vpabsd xmm14, xmmword [rsp + 0x140]
vpminud xmm15, xmm6, xmm8
vpcmpeqd xmm15, xmm15, xmm6
vpxor xmm15, xmm15, xmm0
vpminud xmm4, xmm7, xmm14
vpcmpeqd xmm4, xmm7, xmm4
vpxor xmm4, xmm4, xmm0
vpackssdw xmm4, xmm15, xmm4
vpacksswb xmm3, xmm4, xmm3
vpblendvb xmm1, xmm2, xmm1, xmm3
vpabsd xmm2, xmmword [rsp + 0x60]
vpminud xmm3, xmm2, xmm7
vpcmpeqd xmm3, xmm2, xmm3
vpminud xmm4, xmm2, xmm14
vpcmpeqd xmm2, xmm2, xmm4
vpxor xmm3, xmm3, xmm0
vpxor xmm2, xmm2, xmm0
vpor xmm2, xmm3, xmm2
vpabsd xmm3, xmm11
vpminud xmm4, xmm3, xmm6
vpcmpeqd xmm4, xmm3, xmm4
vpminud xmm6, xmm3, xmm8
vpcmpeqd xmm3, xmm3, xmm6
vpxor xmm4, xmm4, xmm0
vpxor xmm3, xmm3, xmm0
vpor xmm3, xmm4, xmm3
vpackssdw xmm2, xmm3, xmm2
vpabsd xmm3, xmmword [rsp + 0x70]
vpminud xmm4, xmm3, xmm12
vpcmpeqd xmm4, xmm3, xmm4
vpminud xmm6, xmm3, xmm13
vpcmpeqd xmm3, xmm3, xmm6
vpxor xmm4, xmm4, xmm0
vpxor xmm3, xmm3, xmm0
vpor xmm3, xmm4, xmm3
vpabsd xmm4, xmmword [rsp + 0x50]
vpminud xmm5, xmm4, xmm5
vpcmpeqd xmm5, xmm4, xmm5
vpminud xmm6, xmm4, xmm10
vpcmpeqd xmm4, xmm4, xmm6
vpxor xmm5, xmm5, xmm0
vpxor xmm4, xmm4, xmm0
vpor xmm4, xmm5, xmm4
vpackssdw xmm3, xmm3, xmm4
vpacksswb xmm2, xmm2, xmm3
vpblendvb xmm0, xmm9, xmm1, xmm2
vpaddb xmm0, xmm0, xmmword [r10 + r9]
vmovdqu xmmword [r12 + r9], xmm0
add r10, 0x10
add rsi, 0x10
add rdi, 0x10
add r11, 0x10
add r12, 0x10
add rbx, 0xfffffffffffffff0
cmp r9, rbx
jne 0x1400a8e26
mov r10, qword [rsp + 0xe0]
mov r9, r10
cmp r10, rdx
je case.default.0x1400a68bb
jmp 0x1400a6cd6
mov r9d, edx
and r9d, 0xffffff80
mov r10, r15
sub r10, r8
add r10, rax
add r10, 0x60
lea r11, [rax + r15]
add r11, 0x60
xor esi, esi
vmovdqu xmm0, xmmword [r10 + rsi - 0x60]
vmovdqu xmm1, xmmword [r10 + rsi - 0x50]
vmovdqu xmm2, xmmword [r10 + rsi - 0x40]
vmovdqu xmm3, xmmword [r10 + rsi - 0x30]
vpaddb xmm0, xmm0, xmmword [rbp + rsi]
vpaddb xmm1, xmm1, xmmword [rbp + rsi + 0x10]
vpaddb xmm2, xmm2, xmmword [rbp + rsi + 0x20]
vpaddb xmm3, xmm3, xmmword [rbp + rsi + 0x30]
vmovdqu xmm4, xmmword [r10 + rsi - 0x20]
vpaddb xmm4, xmm4, xmmword [rbp + rsi + 0x40]
vmovdqu xmm5, xmmword [r10 + rsi - 0x10]
vpaddb xmm5, xmm5, xmmword [rbp + rsi + 0x50]
vmovdqu xmm6, xmmword [r10 + rsi]
vpaddb xmm6, xmm6, xmmword [rbp + rsi + 0x60]
vmovdqu xmm7, xmmword [r10 + rsi + 0x10]
vpaddb xmm7, xmm7, xmmword [rbp + rsi + 0x70]
vmovdqu xmmword [r11 + rsi - 0x50], xmm1
vmovdqu xmmword [r11 + rsi - 0x60], xmm0
vmovdqu xmmword [r11 + rsi - 0x30], xmm3
vmovdqu xmmword [r11 + rsi - 0x40], xmm2
vmovdqu xmmword [r11 + rsi - 0x10], xmm5
vmovdqu xmmword [r11 + rsi - 0x20], xmm4
vmovdqu xmmword [r11 + rsi + 0x10], xmm7
vmovdqu xmmword [r11 + rsi], xmm6
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400a9091
cmp r9, rdx
je case.default.0x1400a68bb
test dl, 0x70
je 0x1400a6aa9
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, r15
sub r11, r8
add r11, rax
vmovdqu xmm0, xmmword [r11 + r10]
vpaddb xmm0, xmm0, xmmword [rbp + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400a9161
cmp r9, rdx
jne 0x1400a6aa9
jmp case.default.0x1400a68bb
mov r10d, edx
and r10d, 0xffffffe0
mov r11, r15
sub r11, r9
add r11, rax
xor esi, esi
vpmovzxbw xmm0, qword [r8 + rsi + 8]
vpmovzxbw xmm1, qword [r8 + rsi]
vpmovzxbw xmm2, qword [r8 + rsi + 0x18]
vpmovzxbw xmm3, qword [r8 + rsi + 0x10]
vpmovzxbw xmm4, qword [r11 + rsi + 8]
vpaddw xmm0, xmm4, xmm0
vpmovzxbw xmm4, qword [r11 + rsi]
vpaddw xmm1, xmm4, xmm1
vpmovzxbw xmm4, qword [r11 + rsi + 0x18]
vpmovzxbw xmm5, qword [r11 + rsi + 0x10]
vpaddw xmm2, xmm4, xmm2
vpaddw xmm3, xmm5, xmm3
vpsrlw xmm0, xmm0, 1
vpsrlw xmm1, xmm1, 1
vpackuswb xmm0, xmm1, xmm0
vpsrlw xmm1, xmm2, 1
vpsrlw xmm2, xmm3, 1
vpackuswb xmm1, xmm2, xmm1
vpaddb xmm0, xmm0, xmmword [rbp + rsi]
vpaddb xmm1, xmm1, xmmword [rbp + rsi + 0x10]
vmovdqu xmmword [rcx + rsi + 0x10], xmm1
vmovdqu xmmword [rcx + rsi], xmm0
add rsi, 0x20
cmp r10, rsi
jne 0x1400a919d
cmp r10, rdx
je case.default.0x1400a68bb
test dl, 0x10
je 0x1400a6c0a
jmp 0x1400a86ae
mov r9d, edx
and r9d, 0xffffff80
mov r10, r15
sub r10, r8
add r10, rax
add r10, 0x60
lea r11, [rax + r15]
add r11, 0x60
xor esi, esi
vmovdqa xmm8, xmmword [0x14012e8a0]
vmovdqu xmm0, xmmword [r10 + rsi - 0x60]
vmovdqu xmm1, xmmword [r10 + rsi - 0x50]
vmovdqu xmm2, xmmword [r10 + rsi - 0x40]
vmovdqu xmm3, xmmword [r10 + rsi - 0x30]
vpsrlw xmm1, xmm1, 1
vpand xmm1, xmm8, xmm1
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm8, xmm0
vpsrlw xmm3, xmm3, 1
vpand xmm3, xmm8, xmm3
vpsrlw xmm2, xmm2, 1
vpand xmm2, xmm8, xmm2
vmovdqu xmm4, xmmword [r10 + rsi - 0x10]
vpsrlw xmm4, xmm4, 1
vpand xmm4, xmm8, xmm4
vmovdqu xmm5, xmmword [r10 + rsi - 0x20]
vpsrlw xmm5, xmm5, 1
vpand xmm5, xmm8, xmm5
vmovdqu xmm6, xmmword [r10 + rsi + 0x10]
vpsrlw xmm6, xmm6, 1
vpand xmm6, xmm8, xmm6
vmovdqu xmm7, xmmword [r10 + rsi]
vpsrlw xmm7, xmm7, 1
vpand xmm7, xmm8, xmm7
vpaddb xmm0, xmm0, xmmword [rbp + rsi]
vpaddb xmm1, xmm1, xmmword [rbp + rsi + 0x10]
vpaddb xmm2, xmm2, xmmword [rbp + rsi + 0x20]
vpaddb xmm3, xmm3, xmmword [rbp + rsi + 0x30]
vpaddb xmm5, xmm5, xmmword [rbp + rsi + 0x40]
vpaddb xmm4, xmm4, xmmword [rbp + rsi + 0x50]
vpaddb xmm7, xmm7, xmmword [rbp + rsi + 0x60]
vpaddb xmm6, xmm6, xmmword [rbp + rsi + 0x70]
vmovdqu xmmword [r11 + rsi - 0x50], xmm1
vmovdqu xmmword [r11 + rsi - 0x60], xmm0
vmovdqu xmmword [r11 + rsi - 0x30], xmm3
vmovdqu xmmword [r11 + rsi - 0x40], xmm2
vmovdqu xmmword [r11 + rsi - 0x10], xmm4
vmovdqu xmmword [r11 + rsi - 0x20], xmm5
vmovdqu xmmword [r11 + rsi + 0x10], xmm6
vmovdqu xmmword [r11 + rsi], xmm7
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400a9260
cmp r9, rdx
je case.default.0x1400a68bb
test dl, 0x70
je 0x1400a6d89
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, r15
sub r11, r8
add r11, rax
vmovdqa xmm1, xmmword [0x14012e8a0]
vmovdqu xmm0, xmmword [r11 + r10]
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm0, xmm1
vpaddb xmm0, xmm0, xmmword [rbp + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400a9380
cmp r9, rdx
jne 0x1400a6d89
jmp case.default.0x1400a68bb
mov r9d, edx
and r9d, 0xffffff80
mov r10, r15
sub r10, r8
add r10, rax
add r10, 0x60
lea r11, [rax + r15]
add r11, 0x60
xor esi, esi
vmovdqu xmm0, xmmword [r10 + rsi - 0x60]
vmovdqu xmm1, xmmword [r10 + rsi - 0x50]
vmovdqu xmm2, xmmword [r10 + rsi - 0x40]
vmovdqu xmm3, xmmword [r10 + rsi - 0x30]
vpaddb xmm0, xmm0, xmmword [rbp + rsi]
vpaddb xmm1, xmm1, xmmword [rbp + rsi + 0x10]
vpaddb xmm2, xmm2, xmmword [rbp + rsi + 0x20]
vpaddb xmm3, xmm3, xmmword [rbp + rsi + 0x30]
vmovdqu xmm4, xmmword [r10 + rsi - 0x20]
vpaddb xmm4, xmm4, xmmword [rbp + rsi + 0x40]
vmovdqu xmm5, xmmword [r10 + rsi - 0x10]
vpaddb xmm5, xmm5, xmmword [rbp + rsi + 0x50]
vmovdqu xmm6, xmmword [r10 + rsi]
vpaddb xmm6, xmm6, xmmword [rbp + rsi + 0x60]
vmovdqu xmm7, xmmword [r10 + rsi + 0x10]
vpaddb xmm7, xmm7, xmmword [rbp + rsi + 0x70]
vmovdqu xmmword [r11 + rsi - 0x50], xmm1
vmovdqu xmmword [r11 + rsi - 0x60], xmm0
vmovdqu xmmword [r11 + rsi - 0x30], xmm3
vmovdqu xmmword [r11 + rsi - 0x40], xmm2
vmovdqu xmmword [r11 + rsi - 0x10], xmm5
vmovdqu xmmword [r11 + rsi - 0x20], xmm4
vmovdqu xmmword [r11 + rsi + 0x10], xmm7
vmovdqu xmmword [r11 + rsi], xmm6
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400a93d1
cmp r9, rdx
je case.default.0x1400a68bb
test dl, 0x70
je 0x1400a6e1c
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, r15
sub r11, r8
add r11, rax
vmovdqu xmm0, xmmword [r11 + r10]
vpaddb xmm0, xmm0, xmmword [rbp + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400a94a1
cmp r9, rdx
jne 0x1400a6e1c
jmp case.default.0x1400a68bb
cmp r15d, 8
jge 0x1400a9936
mov ecx, 1
test r11d, r11d
je 0x1400a64db
mov eax, dword [rsp + 0x108]
mov edx, r10d
movsxd r8, r15d
mov qword [rsp + 0x38], r8
lea r9d, [rbp - 1]
movsxd r8, r9d
imul esi, ebp
imul esi, edi
mov r11, rax
sub r11, rdx
neg rdx
lea r10, [r8 + r8*2]
add r10, 2
mov qword [rsp + 0x60], r10
lea r10d, [rbp*4 - 4]
mov dword [rsp + 0x50], r10d
dec r8
mov qword [rsp + 0x28], r8
lea r8d, [rbp + rbp - 1]
mov dword [rsp + 0x70], r8d
xor r14d, r14d
add rdx, rax
xor r13d, r13d
jmp 0x1400a9561
inc r13
mov esi, r10d
add r14d, r10d
cmp r13, qword [rsp + 0x110]
mov r15d, dword [rsp + 0x380]
je 0x1400a64db
mov r10d, esi
mov r12, qword [r12 + 0x18]
mov eax, dword [rsp + 0x40]
mov edi, eax
imul edi, r13d
lea rsi, [r12 + rdi]
mov bl, 1
cmp dword [rsp + 0x388], 0
jne 0x1400a9594
mov rax, qword [rsp + 0x38]
lea r8, [0x14012ea10]
movzx ebx, byte [rax + r8]
lea rbp, [rsi + rdx]
mov r14d, r14d
cmp r15d, 4
je 0x1400a97fb
cmp r15d, 2
je 0x1400a9746
cmp r15d, 1
jne 0x1400a985c
mov r8d, dword [rsp + 0x48]
mov eax, r8d
cmp r8d, 8
jl 0x1400a9682
lea rbp, [r12 + r11]
mov eax, dword [rsp + 0x48]
mov esi, eax
movzx eax, byte [rbp + r14]
sar al, 7
and al, bl
mov byte [r12 + r14], al
movzx eax, byte [rbp + r14]
add al, al
sar al, 7
and al, bl
mov byte [r12 + r14 + 1], al
movzx eax, byte [rbp + r14]
shl al, 2
sar al, 7
and al, bl
mov byte [r12 + r14 + 2], al
movzx eax, byte [rbp + r14]
shl al, 3
sar al, 7
and al, bl
mov byte [r12 + r14 + 3], al
movzx eax, byte [rbp + r14]
shl al, 4
sar al, 7
and al, bl
mov byte [r12 + r14 + 4], al
movzx eax, byte [rbp + r14]
shl al, 5
sar al, 7
and al, bl
mov byte [r12 + r14 + 5], al
movzx eax, byte [rbp + r14]
shl al, 6
sar al, 7
and al, bl
mov byte [r12 + r14 + 6], al
movzx eax, byte [rbp + r14]
and al, 1
neg al
and al, bl
mov byte [r12 + r14 + 7], al
lea eax, [rsi - 8]
inc rbp
add r12, 8
cmp esi, 0xf
ja 0x1400a95d3
add rbp, r14
add r12, r14
mov rsi, r12
test eax, eax
jle 0x1400a985c
movzx r8d, byte [rbp]
sar r8b, 7
and r8b, bl
mov byte [rsi], r8b
cmp eax, 1
je 0x1400a985c
movzx r8d, byte [rbp]
add r8b, r8b
sar r8b, 7
and r8b, bl
mov byte [rsi + 1], r8b
cmp eax, 3
jb 0x1400a985c
movzx r8d, byte [rbp]
shl r8b, 2
sar r8b, 7
and r8b, bl
mov byte [rsi + 2], r8b
cmp eax, 3
je 0x1400a985c
movzx r8d, byte [rbp]
shl r8b, 3
sar r8b, 7
and r8b, bl
mov byte [rsi + 3], r8b
cmp eax, 5
jb 0x1400a985c
movzx r8d, byte [rbp]
shl r8b, 4
sar r8b, 7
and r8b, bl
mov byte [rsi + 4], r8b
cmp eax, 5
je 0x1400a985c
movzx r8d, byte [rbp]
shl r8b, 5
sar r8b, 7
and r8b, bl
mov byte [rsi + 5], r8b
cmp eax, 7
jb 0x1400a985c
movzx eax, byte [rbp]
shl al, 6
sar al, 7
and al, bl
mov byte [rsi + 6], al
jmp 0x1400a985c
mov eax, dword [rsp + 0x48]
mov r8d, eax
cmp eax, 4
jl 0x1400a97b9
lea rbp, [r12 + r11]
mov r8d, dword [rsp + 0x48]
mov esi, r8d
movzx eax, byte [rbp + r14]
shr al, 6
mul bl
mov byte [r12 + r14], al
movzx eax, byte [rbp + r14]
shr al, 4
and al, 3
mul bl
mov byte [r12 + r14 + 1], al
movzx eax, byte [rbp + r14]
shr al, 2
and al, 3
mul bl
mov byte [r12 + r14 + 2], al
movzx eax, byte [rbp + r14]
and al, 3
mul bl
mov byte [r12 + r14 + 3], al
lea r8d, [rsi - 4]
inc rbp
add r12, 4
cmp esi, 7
ja 0x1400a975b
add rbp, r14
add r12, r14
mov rsi, r12
test r8d, r8d
jle 0x1400a985c
movzx eax, byte [rbp]
shr al, 6
mul bl
mov byte [rsi], al
cmp r8d, 1
je 0x1400a985c
movzx eax, byte [rbp]
shr al, 4
and al, 3
mul bl
mov byte [rsi + 1], al
cmp r8d, 3
jb 0x1400a985c
movzx eax, byte [rbp]
shr al, 2
and al, 3
mul bl
mov byte [rsi + 2], al
jmp 0x1400a985c
mov r8d, dword [rsp + 0x48]
mov eax, r8d
cmp r8d, 2
jl 0x1400a984c
lea rbp, [r12 + r11]
mov eax, dword [rsp + 0x48]
mov r8d, eax
movzx eax, byte [rbp + r14]
shr al, 4
mul bl
mov byte [r12 + r14], al
movzx eax, byte [rbp + r14]
and al, 0xf
mul bl
mov byte [r12 + r14 + 1], al
lea eax, [r8 - 2]
inc rbp
add r12, 2
cmp r8d, 3
ja 0x1400a9811
add rbp, r14
add r12, r14
mov rsi, r12
cmp eax, 1
jne 0x1400a985c
movzx eax, byte [rbp]
shr al, 4
mul bl
mov byte [rsi], al
mov rax, qword [rsp + 0xb8]
cmp eax, dword [rsp + 0x88]
mov r12, qword [rsp + 0xd8]
je 0x1400a9542
mov rax, qword [r12 + 0x18]
add rdi, rax
cmp dword [rsp + 0xb8], 1
jne 0x1400a98cf
test r9d, r9d
js 0x1400a9542
add rax, r14
mov ebx, dword [rsp + 0x70]
mov rsi, qword [rsp + 0x28]
mov r8, rsi
movsxd r15, ebx
dec ebx
mov byte [rdi + r15], 0xff
movzx ebp, byte [rax + rsi + 1]
movsxd rbx, ebx
mov byte [rdi + rbx], bpl
dec r8
add r15d, 0xfffffffe
mov ebx, r15d
test esi, esi
mov rsi, r8
jns 0x1400a98a3
jmp 0x1400a9542
test r9d, r9d
js 0x1400a9542
add rax, qword [rsp + 0x60]
add rax, r14
mov r8, qword [rsp + 0x28]
mov esi, dword [rsp + 0x50]
mov rbx, r8
lea ebp, [rsi + 3]
movsxd r15, ebp
mov byte [rdi + r15], 0xff
movzx ebp, byte [rax]
lea r15d, [rsi + 2]
movsxd r15, r15d
mov byte [rdi + r15], bpl
movzx ebp, byte [rax - 1]
lea r15d, [rsi + 1]
movsxd r15, r15d
mov byte [rdi + r15], bpl
movzx ebp, byte [rax - 2]
movsxd rsi, esi
mov byte [rdi + rsi], bpl
add rax, 0xfffffffffffffffd
add esi, 0xfffffffc
dec rbx
test r8d, r8d
mov r8, rbx
jns 0x1400a98ec
jmp 0x1400a9542
mov ecx, 1
cmp r15d, 0x10
jne 0x1400a64db
mov r8, qword [rsp + 0x108]
imul r8d, r11d
mov ecx, 1
test r8d, r8d
je 0x1400a64db
mov rax, qword [r12 + 0x18]
cmp r8d, 4
jb 0x1400a998c
mov edx, r8d
and edx, 0xfffffffc
rol word [rax], 8
rol word [rax + 2], 8
rol word [rax + 4], 8
rol word [rax + 6], 8
add rax, 8
add edx, 0xfffffffc
jne 0x1400a9970
test r8b, 3
je 0x1400a64db
and r8d, 3
xor edx, edx
rol word [rax + rdx*2], 8
inc rdx
cmp r8d, edx
jne 0x1400a999c
jmp 0x1400a64db
lea r8, str.invalid_width
jmp 0x1400a64bf