Function at 0x1400a9280
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, 0x1d8
vmovdqa xmmword [rsp + 0x1c0], xmm15
vmovdqa xmmword [rsp + 0x1b0], xmm14
vmovdqa xmmword [rsp + 0x1a0], xmm13
vmovdqa xmmword [rsp + 0x190], xmm12
vmovdqa xmmword [rsp + 0x180], xmm11
vmovdqa xmmword [rsp + 0x170], xmm10
vmovdqa xmmword [rsp + 0x160], xmm9
vmovdqa xmmword [rsp + 0x150], xmm8
vmovdqa xmmword [rsp + 0x140], xmm7
vmovdqa xmmword [rsp + 0x130], xmm6
mov ebp, r9d
mov ebx, r8d
mov r12, rcx
mov r15d, dword [rsp + 0x250]
mov r9d, dword [rsp + 0x248]
mov r13d, dword [rsp + 0x240]
xor r8d, r8d
cmp r15d, 0x10
sete cl
mov eax, r9d
or eax, r13d
js 0x1400a9375
mov r14, rdx
mov rax, qword [r12]
movsxd rdi, dword [rax + 8]
test r9d, r9d
je 0x1400a933f
mov eax, 0x7fffffff
xor edx, edx
div r9d
cmp eax, r13d
jl 0x1400a9375
mov r8b, cl
inc r8d
mov r10d, r8d
imul r10d, ebp
mov ecx, r9d
imul ecx, r13d
mov eax, r10d
or eax, ecx
js 0x1400a9375
test r10d, r10d
je 0x1400a9414
mov eax, 0x7fffffff
xor edx, edx
div r10d
cmp eax, ecx
jge 0x1400a9414
mov qword [r12 + 0x18], 0
lea r8, str.outofmem
mov eax, dword [0x1402293c0]
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 + 0x130]
vmovaps xmm7, xmmword [rsp + 0x140]
vmovaps xmm8, xmmword [rsp + 0x150]
vmovaps xmm9, xmmword [rsp + 0x160]
vmovaps xmm10, xmmword [rsp + 0x170]
vmovaps xmm11, xmmword [rsp + 0x180]
vmovaps xmm12, xmmword [rsp + 0x190]
vmovaps xmm13, xmmword [rsp + 0x1a0]
vmovaps xmm14, xmmword [rsp + 0x1b0]
vmovaps xmm15, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
mov dword [rsp + 0x64], r8d
mov dword [rsp + 0x68], r10d
imul ecx, r10d
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 0x1400a937e
lea r8, str.too_large
mov eax, edi
or eax, r13d
js 0x1400a9385
test r13d, r13d
je 0x1400a9462
mov eax, 0x7fffffff
xor edx, edx
div r13d
cmp eax, edi
jl 0x1400a9385
mov ecx, edi
imul ecx, r13d
mov eax, ecx
or eax, r15d
js 0x1400a9385
test r15d, r15d
je 0x1400a94a7
mov eax, 0x7fffffff
xor edx, edx
div r15d
cmp eax, ecx
mov r11d, dword [rsp + 0x248]
jl 0x1400a9385
mov r10d, ecx
imul r10d, r15d
cmp r10d, 0x7ffffff8
jle 0x1400a94b2
jmp 0x1400a9385
xor r10d, r10d
mov r11d, dword [rsp + 0x248]
add r10d, 7
shr r10d, 3
lea eax, [r10 + 1]
imul eax, r11d
cmp eax, ebx
jbe 0x1400a94d2
lea r8, str.not_enough_pixels
jmp 0x1400a9385
mov eax, r13d
imul eax, ebp
mov qword [rsp + 0xc0], rax
test r11d, r11d
je 0x1400abcc9
cmp r15d, 8
setl dl
cmp edi, ebp
sete al
movzx r9d, byte [r14]
lea r8, str.invalid_filter
cmp r9b, 4
ja 0x1400a9385
mov dword [rsp + 0x54], ecx
mov ecx, dword [rsp + 0x64]
mov ebx, edx
mov edx, ecx
mov r8, qword [rsp + 0xc0]
imul edx, r8d
mov esi, edi
imul esi, ecx
mov dword [rsp + 0x20], esi
sub r8d, r10d
mov qword [rsp + 0x120], r8
mov dword [rsp + 0x30], edx
mov ecx, edx
mov rdx, rcx
neg rdx
mov qword [rsp + 0x70], rdx
movsxd rdx, dword [rsp + 0x68]
mov qword [rsp + 0x28], rdx
or bl, al
mov byte [rsp + 0x37], bl
mov eax, r13d
and eax, 7
mov dword [rsp + 0x94], eax
mov eax, r13d
and eax, 0xfffffff8
mov dword [rsp + 0xd8], eax
mov eax, 0x60
mov r8d, 0x60
sub r8, rdx
mov qword [rsp + 0xb8], r8
mov rsi, rdx
neg rsi
mov r8, rsi
mov qword [rsp + 0x78], rsi
sub rsi, rcx
mov qword [rsp + 0x108], rsi
mov r8d, 3
sub r8, rcx
mov qword [rsp + 0x100], r8
mov r8d, 1
sub r8, rcx
mov qword [rsp + 0xf0], r8
sub rax, rcx
mov qword [rsp + 0xe8], rax
vpcmpeqd ymm13, ymm13, ymm13
vmovdqa xmm12, xmmword [0x140131ae0]
vmovdqa ymm14, ymmword [0x140131ac0]
movsxd rax, ebp
mov qword [rsp + 0x128], rax
lea eax, [r13 - 1]
mov dword [rsp + 0xdc], eax
mov eax, r11d
mov qword [rsp + 0xd0], rax
mov rax, qword [r12 + 0x18]
mov qword [rsp + 0xf8], rcx
add rcx, rdx
mov qword [rsp + 0x118], rcx
xor edx, edx
mov ecx, r13d
mov qword [rsp + 0xe0], rcx
xor ecx, ecx
mov qword [rsp + 0xb0], r12
mov dword [rsp + 0x60], ebp
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0xa8], r10
cmp r15d, 7
jg 0x1400a9676
cmp r10d, r13d
lea r12, [0x1400abd70]
ja 0x1400abd63
add rax, qword [rsp + 0x120]
mov dword [rsp + 0x20], 1
mov qword [rsp + 0xe0], r10
jmp 0x1400a967d
lea r12, [0x1400abd70]
mov qword [rsp + 0x88], rcx
test rcx, rcx
mov r8, qword [rsp + 0x70]
jne 0x1400a969f
movzx ecx, r9b
lea r9, [0x140131cfc]
movzx r9d, byte [rcx + r9]
lea rdi, [r14 + 1]
add r8, rax
movzx r10d, r9b
cmp dword [rsp + 0x20], 0
jle 0x1400a96f8
mov ecx, dword [rsp + 0x20]
xor r11d, r11d
jmp 0x1400a96d1
movzx ebx, byte [rdi + r11]
mov byte [rax + r11], bl
inc r11
cmp rcx, r11
je 0x1400a96f8
cmp r9b, 6
ja case.default.0x1400a96de
movsxd rsi, dword [r12 + r10*4]
add rsi, r12
jmp rsi
movzx ebx, byte [r8 + r11]
add bl, byte [rdi + r11]
jmp 0x1400a96c5
movzx ebx, byte [r8 + r11]
shr bl, 1
add bl, byte [rdi + r11]
jmp 0x1400a96c5
cmp r15d, 8
jne 0x1400a971b
mov rcx, qword [rsp + 0x80]
cmp ecx, ebp
je 0x1400a970e
mov byte [rax + rcx], 0xff
add rdi, rcx
mov rsi, qword [rsp + 0x128]
jmp 0x1400a974e
cmp r15d, 0x10
jne 0x1400a9742
movsxd rcx, dword [rsp + 0x20]
cmp dword [rsp + 0x80], ebp
je 0x1400a9738
mov byte [rax + rcx], 0xff
mov byte [rcx + rax + 1], 0xff
add rdi, rcx
mov rsi, qword [rsp + 0x28]
jmp 0x1400a974e
add r14, 2
mov esi, 1
mov rdi, r14
lea rcx, [rax + rsi]
add r8, rsi
cmp byte [rsp + 0x37], 0
mov qword [rsp + 0x48], rdi
je 0x1400a97a6
mov rdx, qword [rsp + 0xe0]
lea r11d, [rdx - 1]
imul r11d, dword [rsp + 0x20]
movsxd r14, r11d
cmp r9b, 6
ja case.default.0x1400a9791
mov r13, rsi
lea r9, [0x1400abda8]
movsxd rdx, dword [r9 + r10*4]
add rdx, r9
jmp rdx
mov rdx, rdi
mov r8, r14
vzeroupper
call sub.VCRUNTIME140.dll_memcpy
jmp case.default.0x1400a9791
cmp r9b, 6
mov ebp, dword [rsp + 0xdc]
ja case.default.0x1400a97c5
lea r11, [0x1400abd8c]
movsxd r9, dword [r11 + r10*4]
add r9, r11
jmp r9
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
add rax, rsi
mov r10d, r9d
and r10d, 0xffffff80
mov r11d, r9d
and r11d, 0xfffffff0
mov esi, r9d
and esi, 3
mov r14, rdi
xor edi, edi
mov ebx, ebp
jmp 0x1400a9813
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, qword [rsp + 0x28]
inc rdi
dec ebx
je 0x1400aad67
cmp dword [rsp + 0x20], 0
jle 0x1400a97fb
cmp dword [rsp + 0x20], 0x10
jb 0x1400a9866
mov r15, rdi
imul r15, r8
add r15, qword [rsp + 0x48]
mov r13, rdi
imul r13, qword [rsp + 0x28]
add r13, rax
sub r13, r15
mov r12d, 0
cmp r13, 0x80
mov r13d, dword [rsp + 0x240]
jb 0x1400a9901
cmp dword [rsp + 0x20], 0x80
jae 0x1400a986e
xor r15d, r15d
jmp 0x1400a98e0
xor r12d, r12d
jmp 0x1400a9901
xor r15d, r15d
nop word cs:[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 0x1400a9880
cmp r10, r9
je 0x1400a97fb
mov r15, r10
mov r12, r10
test r9b, 0x70
je 0x1400a9901
nop word cs:[rax + rax]
vmovdqu xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp r11, r15
jne 0x1400a98e0
mov r12, r11
cmp r11, r9
je 0x1400a97fb
mov r15, r12
not r15
add r15, r9
test rsi, rsi
je 0x1400a9931
mov r13, rsi
nop word cs:[rax + rax]
movzx ebp, byte [r14 + r12]
mov byte [rcx + r12], bpl
inc r12
dec r13
jne 0x1400a9920
cmp r15, 3
mov r13d, dword [rsp + 0x240]
jb 0x1400a97fb
nop word cs:[rax + rax]
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 0x1400a9950
jmp 0x1400a97fb
test r11d, r11d
jle case.default.0x1400a9791
movsxd r8, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x1400aaf62
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x1400a99c8
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
add r10b, byte [rdi + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400a9791
mov r9, r13
mov rcx, r13
sub rcx, r8
add rcx, rax
inc rcx
add rax, r13
inc rax
movzx r8d, byte [rcx + r10 - 1]
add r8b, byte [rdi + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
add r8b, byte [rdi + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x1400a99e9
jmp case.default.0x1400a9791
test r11d, r11d
jle case.default.0x1400a9791
mov edx, r11d
cmp r11d, 0x10
jae 0x1400aaebc
xor r9d, r9d
mov rcx, r9
not rcx
add rcx, rdx
mov r8, rdx
and r8, 3
je 0x1400a9a7b
mov r10, r9
neg r10
lea r11, [r9 + r13]
add r11, rax
mov rsi, qword [rsp + 0x70]
add rsi, r11
add r9, rdi
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 0x1400a9a59
neg r10
mov r9, r10
mov rdi, qword [rsp + 0x48]
cmp rcx, 3
jb case.default.0x1400a9791
sub rdx, r9
add r13, r9
add rax, r13
add rax, 3
lea rcx, [rdi + r9]
add rcx, 3
mov r9, qword [rsp + 0x70]
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 0x1400a9a9a
jmp case.default.0x1400a9791
test r11d, r11d
jle case.default.0x1400a9791
movsxd r9, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x1400aafa8
xor r10d, r10d
mov r11, r10
test dl, 1
je 0x1400a9b32
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 [rdi + r10]
mov byte [rcx + r10], r11b
mov r11, r10
or r11, 1
not r10
add r10, rdx
je case.default.0x1400a9791
mov r10, r13
mov rcx, r13
sub rcx, r9
add rcx, rax
inc rcx
lea r8, [rax + r13]
inc r8
add rax, qword [rsp + 0xf0]
add rax, r13
lea r9, [rdi + 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 0x1400a9b63
jmp case.default.0x1400a9791
test r11d, r11d
jle case.default.0x1400a9791
movsxd rbp, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x1400aaf05
xor r9d, r9d
sub r13, rbp
add rax, r13
mov r10, qword [rsp + 0x70]
add r10, rax
mov r11, rdi
jmp 0x1400a9c18
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 rdi, qword [rsp + 0x48]
je case.default.0x1400a9791
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 0x1400a9be4
mov edi, ebx
jmp 0x1400a9be4
test r11d, r11d
jle case.default.0x1400a9791
movsxd r8, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x1400ab040
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x1400a9ca3
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
shr r10b, 1
add r10b, byte [rdi + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400a9791
mov r9, r13
mov rcx, r13
sub rcx, r8
add rcx, rax
inc rcx
add rax, r13
inc rax
movzx r8d, byte [rcx + r10 - 1]
shr r8b, 1
add r8b, byte [rdi + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
shr r8b, 1
add r8b, byte [rdi + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x1400a9cc4
jmp case.default.0x1400a9791
test r11d, r11d
jle case.default.0x1400a9791
movsxd r8, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x1400ab086
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x1400a9d2e
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
add r10b, byte [rdi + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400a9791
mov r9, r13
mov rcx, r13
sub rcx, r8
add rcx, rax
inc rcx
add rax, r13
inc rax
movzx r8d, byte [rcx + r10 - 1]
add r8b, byte [rdi + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
add r8b, byte [rdi + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x1400a9d4b
add rdi, r14
mov r14, rdi
mov r12, qword [rsp + 0xb0]
mov r15d, dword [rsp + 0x250]
mov ebp, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x240]
mov r11d, dword [rsp + 0x248]
mov r10, qword [rsp + 0xa8]
vpcmpeqd ymm13, ymm13, ymm13
vmovdqa xmm12, xmmword [0x140131ae0]
vmovdqa ymm14, ymmword [0x140131ac0]
jmp 0x1400aae65
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + rsi]
mov qword [rsp + 0x38], r10
mov r11d, r9d
and r11d, 0xffffff80
mov r14, rdi
mov edi, r9d
and edi, 0xfffffff0
mov r10, r9
neg r10
mov qword [rsp + 0x40], r10
mov r10, qword [rsp + 0xb8]
lea rbx, [rax + r10]
add rbx, rsi
add rax, qword [rsp + 0x78]
add rax, rsi
xor r12d, r12d
mov r10d, ebp
jmp 0x1400a9e35
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x28]
add rcx, rsi
inc r12
add rbx, rsi
add rax, rsi
dec r10d
je 0x1400aad67
cmp dword [rsp + 0x20], 0
jle 0x1400a9e13
cmp dword [rsp + 0x20], 0x10
jae 0x1400a9ea9
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x1400a9e6a
mov r15, rsi
sub r15, qword [rsp + 0x28]
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 + 0x40]
je 0x1400a9e13
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 0x1400a9e80
jmp 0x1400a9e13
mov rsi, r12
imul rsi, qword [rsp + 0x28]
add rsi, qword [rsp + 0x38]
mov r15, r12
imul r15, r8
add r15, qword [rsp + 0x48]
sub rsi, r15
cmp rsi, 0x80
jb 0x1400a9e43
jb 0x1400a9e43
mov esi, 0
cmp dword [rsp + 0x68], 0x80
jb 0x1400a9e45
cmp dword [rsp + 0x20], 0x80
jae 0x1400a9efb
xor r15d, r15d
jmp 0x1400a9f68
xor esi, esi
vmovdqu ymm0, ymmword [rbx + rsi - 0x60]
vmovdqu ymm1, ymmword [rbx + rsi - 0x40]
vmovdqu ymm2, ymmword [rbx + rsi - 0x20]
vmovdqu ymm3, ymmword [rbx + rsi]
vpaddb ymm0, ymm0, ymmword [r14 + rsi]
vpaddb ymm1, ymm1, ymmword [r14 + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [r14 + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [r14 + rsi + 0x60]
vmovdqu ymmword [rcx + rsi], ymm0
vmovdqu ymmword [rcx + rsi + 0x20], ymm1
vmovdqu ymmword [rcx + rsi + 0x40], ymm2
vmovdqu ymmword [rcx + rsi + 0x60], ymm3
sub rsi, 0xffffffffffffff80
cmp r11, rsi
jne 0x1400a9efd
cmp r11, r9
je 0x1400a9e13
mov r15, r11
mov rsi, r11
test r9b, 0x70
je 0x1400a9e45
vmovdqu xmm0, xmmword [rax + r15]
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rdi, r15
jne 0x1400a9f68
mov rsi, rdi
cmp rdi, r9
je 0x1400a9e13
jmp 0x1400a9e45
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r12, r9d
mov r11d, r9d
lea r9, [rax + rsi]
mov qword [rsp + 0xa0], r9
mov r9d, r11d
and r9d, 0xffffff80
mov qword [rsp + 0x98], r9
mov r9d, r11d
and r9d, 0xfffffff0
mov qword [rsp + 0x110], r9
mov qword [rsp + 0x58], r11
and r11d, 3
lea r9, [rsi + rax]
add r9, 3
mov qword [rsp + 0x38], r9
add rax, qword [rsp + 0x100]
add rax, rsi
lea rbx, [rdi + 3]
mov r14, rdi
xor edi, edi
mov qword [rsp + 0xc8], r12
jmp 0x1400aa03a
mov byte [rcx + r12], 0xff
add r14, r12
mov r9, qword [rsp + 0x28]
add rcx, r9
add r8, r9
inc rdi
add qword [rsp + 0x38], r9
add rax, r9
add rbx, r12
mov ebp, dword [rsp + 0x40]
dec ebp
mov r13d, dword [rsp + 0x240]
je 0x1400aad67
mov dword [rsp + 0x40], ebp
cmp dword [rsp + 0x20], 0
jle 0x1400aa005
cmp dword [rsp + 0x20], 0x10
jae 0x1400aa11b
xor r10d, r10d
mov rbp, r10
not rbp
add rbp, qword [rsp + 0x58]
test r11, r11
je 0x1400aa0a7
mov r9, r10
neg r9
lea r15, [rcx + r10]
lea r13, [r8 + r10]
add r10, r14
xor r12d, r12d
nop word [rax + rax]
movzx esi, byte [r13 + r12]
add sil, byte [r10 + r12]
mov byte [r15 + r12], sil
inc r12
dec r9
cmp r11, r12
jne 0x1400aa080
neg r9
mov r10, r9
mov r12, qword [rsp + 0xc8]
cmp rbp, 3
jb 0x1400aa005
mov rbp, qword [rsp + 0x58]
sub rbp, r10
mov r9, qword [rsp + 0x38]
add r9, r10
lea r15, [rax + r10]
add r10, rbx
xor r13d, r13d
nop dword [rax + rax]
movzx esi, byte [r15 + r13 - 3]
add sil, byte [r10 + r13 - 3]
mov byte [r9 + r13 - 3], sil
movzx esi, byte [r15 + r13 - 2]
add sil, byte [r10 + r13 - 2]
mov byte [r9 + r13 - 2], sil
movzx esi, byte [r15 + r13 - 1]
add sil, byte [r10 + r13 - 1]
mov byte [r9 + r13 - 1], sil
movzx esi, byte [r15 + r13]
add sil, byte [r10 + r13]
mov byte [r9 + r13], sil
add r13, 4
cmp rbp, r13
jne 0x1400aa0d0
jmp 0x1400aa005
mov r9, rdi
imul r9, qword [rsp + 0x28]
add r9, qword [rsp + 0xa0]
mov r10, rdi
imul r10, r12
add r10, qword [rsp + 0x48]
sub r9, r10
cmp r9, 0x80
jb 0x1400aa050
jb 0x1400aa050
mov r10d, 0
cmp dword [rsp + 0x30], 0x80
jb 0x1400aa053
cmp dword [rsp + 0x20], 0x80
jae 0x1400aa174
xor r9d, r9d
jmp 0x1400aa1fa
xor r9d, r9d
mov r10, qword [rsp + 0x98]
vmovdqu ymm0, ymmword [r8 + r9]
vmovdqu ymm1, ymmword [r8 + r9 + 0x20]
vmovdqu ymm2, ymmword [r8 + r9 + 0x40]
vmovdqu ymm3, ymmword [r8 + r9 + 0x60]
vpaddb ymm0, ymm0, ymmword [r14 + r9]
vpaddb ymm1, ymm1, ymmword [r14 + r9 + 0x20]
vpaddb ymm2, ymm2, ymmword [r14 + r9 + 0x40]
vpaddb ymm3, ymm3, ymmword [r14 + r9 + 0x60]
vmovdqu ymmword [rcx + r9], ymm0
vmovdqu ymmword [rcx + r9 + 0x20], ymm1
vmovdqu ymmword [rcx + r9 + 0x40], ymm2
vmovdqu ymmword [rcx + r9 + 0x60], ymm3
sub r9, 0xffffffffffffff80
cmp r10, r9
jne 0x1400aa17f
cmp r10, qword [rsp + 0x58]
je 0x1400aa005
mov r10, qword [rsp + 0x98]
mov r9, r10
test byte [rsp + 0x58], 0x70
je 0x1400aa053
mov rsi, qword [rsp + 0x110]
vmovdqu xmm0, xmmword [r8 + r9]
vpaddb xmm0, xmm0, xmmword [r14 + r9]
vmovdqu xmmword [rcx + r9], xmm0
add r9, 0x10
cmp rsi, r9
jne 0x1400aa202
mov r10, rsi
cmp rsi, qword [rsp + 0x58]
je 0x1400aa005
jmp 0x1400aa053
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r15, r9d
mov r10d, r9d
lea r9, [rax + rsi]
mov qword [rsp + 0x38], r9
mov r9d, r10d
and r9d, 0xffffffe0
mov qword [rsp + 0x58], r9
mov r9d, r10d
and r9d, 0xfffffff0
mov r11, r10
neg r11
mov qword [rsp + 0x40], r11
add rax, qword [rsp + 0x78]
add rax, rsi
xor r12d, r12d
mov r11d, ebp
mov r14, rdi
jmp 0x1400aa29f
mov byte [rcx + r15], 0xff
add r14, r15
mov rsi, qword [rsp + 0x28]
add rcx, rsi
add r8, rsi
inc r12
add rax, rsi
dec r11d
je 0x1400aad67
cmp dword [rsp + 0x20], 0
jle 0x1400aa27d
cmp dword [rsp + 0x20], 0x10
jae 0x1400aa33c
xor ebx, ebx
mov rsi, rbx
test r10b, 1
je 0x1400aa2e7
movzx esi, byte [r8 + rbx]
mov rdi, r15
mov r15, rbx
sub r15, qword [rsp + 0x28]
movzx ebp, byte [rcx + r15]
mov r15, rdi
add ebp, esi
shr ebp, 1
add bpl, byte [r14 + rbx]
mov byte [rcx + rbx], bpl
mov rsi, rbx
or rsi, 1
not rbx
cmp rbx, qword [rsp + 0x40]
je 0x1400aa27d
nop word cs:[rax + rax]
movzx ebx, byte [r8 + rsi]
movzx ebp, byte [rax + rsi]
add ebp, ebx
shr ebp, 1
add bpl, byte [r14 + rsi]
mov byte [rcx + rsi], bpl
movzx ebx, byte [r8 + rsi + 1]
movzx ebp, byte [rax + rsi + 1]
add ebp, ebx
shr ebp, 1
add bpl, byte [r14 + rsi + 1]
mov byte [rcx + rsi + 1], bpl
add rsi, 2
cmp r10, rsi
jne 0x1400aa300
jmp 0x1400aa27d
mov rsi, r12
imul rsi, qword [rsp + 0x28]
add rsi, qword [rsp + 0x38]
mov rbx, r12
imul rbx, r15
add rbx, qword [rsp + 0x48]
sub rsi, rbx
cmp rsi, 0x20
jb 0x1400aa2b1
jb 0x1400aa2b1
cmp dword [rsp + 0x30], 0x20
jb 0x1400aa2b1
mov ebx, 0
cmp dword [rsp + 0x68], 0x20
jb 0x1400aa2b3
cmp dword [rsp + 0x20], 0x20
jae 0x1400aa38f
xor esi, esi
jmp 0x1400aa3fb
xor esi, esi
mov rdi, qword [rsp + 0x58]
vpmovzxbw ymm0, xmmword [r8 + rsi + 0x10]
vpmovzxbw ymm1, xmmword [r8 + rsi]
vpmovzxbw ymm2, xmmword [rax + rsi + 0x10]
vpmovzxbw ymm3, xmmword [rax + rsi]
vpaddw ymm0, ymm2, ymm0
vpaddw ymm1, ymm3, ymm1
vpsrlw ymm0, ymm0, 1
vpsrlw ymm1, ymm1, 1
vpackuswb ymm0, ymm1, ymm0
vpermq ymm0, ymm0, 0xd8
vpaddb ymm0, ymm0, ymmword [r14 + rsi]
vmovdqu ymmword [rcx + rsi], ymm0
add rsi, 0x20
cmp rdi, rsi
jne 0x1400aa396
cmp rdi, r10
je 0x1400aa27d
mov rbx, qword [rsp + 0x58]
mov rsi, rbx
test r10b, 0x10
je 0x1400aa2b3
vpmovzxbw ymm0, xmmword [r8 + rsi]
vpmovzxbw ymm1, xmmword [rax + rsi]
vpaddw ymm0, ymm1, ymm0
vpsrlw ymm0, ymm0, 1
vextracti128 xmm1, ymm0, 1
vpackuswb xmm0, xmm0, xmm1
vpaddb xmm0, xmm0, xmmword [r14 + rsi]
vmovdqu xmmword [rcx + rsi], xmm0
add rsi, 0x10
cmp r9, rsi
jne 0x1400aa3fb
mov rbx, r9
cmp r9, r10
je 0x1400aa27d
jmp 0x1400aa2b3
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r10, r9d
mov qword [rsp + 0x38], r10
mov r11d, r9d
lea r9, [rax + rsi]
mov qword [rsp + 0xc8], r9
mov r9d, r11d
and r9d, 0xffffffe0
mov qword [rsp + 0xa0], r9
mov r9d, r11d
and r9d, 0xfffffff0
mov qword [rsp + 0x98], r9
mov r9, qword [rsp + 0x78]
add r9, rax
add r9, rsi
add rax, qword [rsp + 0x108]
add rax, rsi
xor r10d, r10d
mov qword [rsp + 0x58], r10
mov r14, rdi
jmp 0x1400aa4db
mov r10, qword [rsp + 0x38]
mov byte [rcx + r10], 0xff
add r14, r10
mov r10, qword [rsp + 0x28]
add rcx, r10
add r8, r10
inc qword [rsp + 0x58]
add r9, r10
add rax, r10
mov ebp, dword [rsp + 0x40]
dec ebp
mov r13d, dword [rsp + 0x240]
je 0x1400aad67
mov dword [rsp + 0x40], ebp
cmp dword [rsp + 0x20], 0
jle 0x1400aa4a4
cmp dword [rsp + 0x20], 0x10
jae 0x1400aa4f4
xor edi, edi
jmp 0x1400aa930
mov rsi, qword [rsp + 0x58]
mov r10, rsi
imul r10, qword [rsp + 0x28]
add r10, qword [rsp + 0xc8]
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x48]
sub r10, rsi
cmp r10, 0x20
jb 0x1400aa908
jb 0x1400aa90c
cmp qword [rsp + 0x118], 0x20
jb 0x1400aa904
cmp dword [rsp + 0x30], 0x20
jb 0x1400aa900
mov edi, 0
cmp dword [rsp + 0x68], 0x20
jb 0x1400aa930
cmp dword [rsp + 0x20], 0x20
jae 0x1400aa6ab
xor esi, esi
mov r10, qword [rsp + 0x98]
vmovdqu xmm0, xmmword [rax + rsi]
vpbroadcastq xmm1, qword [rax + rsi + 8]
vpmovzxbd ymm4, xmm1
vpmovzxbd ymm5, xmm0
vmovdqu xmm1, xmmword [r8 + rsi]
vpbroadcastq xmm2, qword [r8 + rsi + 8]
vpmovzxbd ymm3, xmm2
vpmovzxbd ymm6, xmm1
vmovdqu xmm2, xmmword [r9 + rsi]
vpbroadcastq xmm7, qword [r9 + rsi + 8]
vpmovzxbd ymm8, xmm2
vpmovzxbd ymm7, xmm7
vpsubd ymm9, ymm6, ymm5
vpsubd ymm10, ymm3, ymm4
vpaddd ymm7, ymm10, ymm7
vpaddd ymm8, ymm9, ymm8
vpabsd ymm10, ymm10
vpabsd ymm9, ymm9
vpsubd ymm6, ymm8, ymm6
vpsubd ymm3, ymm7, ymm3
vpabsd ymm11, ymm3
vpabsd ymm3, ymm6
vpsubd ymm5, ymm8, ymm5
vpsubd ymm4, ymm7, ymm4
vpabsd ymm4, ymm4
vpabsd ymm5, ymm5
vpminud ymm6, ymm9, ymm3
vpcmpeqd ymm6, ymm9, ymm6
vpxor ymm6, ymm13, ymm6
vpminud ymm7, ymm10, ymm11
vpcmpeqd ymm7, ymm10, ymm7
vpxor ymm7, ymm13, ymm7
vpminud ymm8, ymm9, ymm5
vpcmpeqd ymm8, ymm9, ymm8
vpxor ymm8, ymm8, ymm13
vpor ymm6, ymm8, ymm6
vpminud ymm8, ymm10, ymm4
vpcmpeqd ymm8, ymm10, ymm8
vpxor ymm8, ymm8, ymm13
vpor ymm7, ymm8, ymm7
vextracti128 xmm8, ymm7, 1
vpackssdw xmm7, xmm7, xmm8
vextracti128 xmm8, ymm6, 1
vpackssdw xmm6, xmm6, xmm8
vpacksswb xmm6, xmm6, xmm7
vpminud ymm4, ymm11, ymm4
vpcmpeqd ymm4, ymm11, ymm4
vpxor ymm4, ymm13, ymm4
vextracti128 xmm7, ymm4, 1
vpackssdw xmm4, xmm4, xmm7
vpminud ymm5, ymm3, ymm5
vpcmpeqd ymm3, ymm3, ymm5
vpxor ymm3, ymm13, ymm3
vextracti128 xmm5, ymm3, 1
vpackssdw xmm3, xmm3, xmm5
vpacksswb xmm3, xmm3, xmm4
vpblendvb xmm0, xmm1, xmm0, xmm3
vpblendvb xmm0, xmm2, xmm0, xmm6
vpaddb xmm0, xmm0, xmmword [r14 + rsi]
vmovdqu xmmword [rcx + rsi], xmm0
add rsi, 0x10
cmp r10, rsi
jne 0x1400aa567
mov rdi, r10
cmp r10, r11
jne 0x1400aa930
jmp 0x1400aa4a4
xor esi, esi
mov r10, qword [rsp + 0xa0]
vpmovzxbd ymm0, qword [rax + rsi + 0x10]
vpmovzxbd ymm2, qword [rax + rsi]
vpbroadcastq xmm1, qword [rax + rsi + 0x18]
vpmovzxbd ymm1, xmm1
vpbroadcastq xmm5, qword [rax + rsi + 8]
vpmovzxbd ymm3, qword [r8 + rsi + 0x10]
vpmovzxbd ymm4, qword [r8 + rsi]
vpmovzxbd ymm5, xmm5
vpbroadcastq xmm7, qword [r8 + rsi + 0x18]
vpmovzxbd ymm7, xmm7
vpbroadcastq xmm8, qword [r8 + rsi + 8]
vpbroadcastq xmm9, qword [r9 + rsi + 8]
vpmovzxbd ymm8, xmm8
vpmovzxbd ymm9, xmm9
vpbroadcastq xmm10, qword [r9 + rsi + 0x18]
vpmovzxbd ymm11, qword [r9 + rsi]
vpmovzxbd ymm12, qword [r9 + rsi + 0x10]
vpmovzxbd ymm10, xmm10
vpsubd ymm13, ymm8, ymm5
vpsubd ymm14, ymm7, ymm1
vpaddd ymm9, ymm13, ymm9
vpsubd ymm8, ymm9, ymm8
vpsubd ymm5, ymm9, ymm5
vpsubd ymm9, ymm4, ymm2
vpaddd ymm10, ymm14, ymm10
vpsubd ymm7, ymm10, ymm7
vpsubd ymm10, ymm10, ymm1
vpsubd ymm15, ymm3, ymm0
vpaddd ymm12, ymm15, ymm12
vpaddd ymm11, ymm9, ymm11
vpabsd ymm14, ymm14
vpabsd ymm13, ymm13
vpsubd ymm4, ymm11, ymm4
vpsubd ymm6, ymm12, ymm3
vpabsd ymm3, ymm7
vpabsd ymm1, ymm8
vpsubd ymm7, ymm11, ymm2
vpsubd ymm8, ymm12, ymm0
vpabsd ymm2, ymm10
vpabsd ymm0, ymm5
vpminud ymm5, ymm13, ymm1
vpcmpeqd ymm5, ymm13, ymm5
vpxor ymm5, ymm5, ymmword [0x140129500]
vpminud ymm10, ymm13, ymm0
vpcmpeqd ymm10, ymm13, ymm10
vpminud ymm11, ymm14, ymm3
vpcmpeqd ymm11, ymm14, ymm11
vpxor ymm10, ymm10, ymmword [0x140129500]
vpor ymm5, ymm10, ymm5
vpminud ymm10, ymm14, ymm2
vpcmpeqd ymm10, ymm14, ymm10
vpabsd ymm12, ymm15
vpcmpeqd ymm13, ymm13, ymm13
vpabsd ymm9, ymm9
vpabsd ymm6, ymm6
vpabsd ymm4, ymm4
vpabsd ymm8, ymm8
vpabsd ymm7, ymm7
vpxor ymm11, ymm11, ymm13
vpxor ymm10, ymm10, ymm13
vpor ymm10, ymm11, ymm10
vpminud ymm11, ymm9, ymm4
vpcmpeqd ymm11, ymm9, ymm11
vpxor ymm11, ymm11, ymm13
vpackssdw ymm5, ymm5, ymm10
vpminud ymm10, ymm9, ymm7
vpcmpeqd ymm9, ymm9, ymm10
vpminud ymm10, ymm12, ymm6
vpcmpeqd ymm10, ymm12, ymm10
vpxor ymm9, ymm9, ymm13
vpor ymm9, ymm11, ymm9
vpminud ymm11, ymm12, ymm8
vpcmpeqd ymm11, ymm12, ymm11
vpxor ymm10, ymm10, ymm13
vpxor ymm11, ymm11, ymm13
vpor ymm10, ymm10, ymm11
vpackssdw ymm9, ymm9, ymm10
vpermq ymm9, ymm9, 0xd8
vpermq ymm5, ymm5, 0xd8
vpacksswb ymm5, ymm9, ymm5
vpminud ymm8, ymm6, ymm8
vpcmpeqd ymm6, ymm8, ymm6
vpminud ymm7, ymm4, ymm7
vpcmpeqd ymm4, ymm4, ymm7
vpxor ymm6, ymm13, ymm6
vpxor ymm4, ymm13, ymm4
vpackssdw ymm4, ymm4, ymm6
vpminud ymm2, ymm3, ymm2
vpcmpeqd ymm2, ymm3, ymm2
vpminud ymm0, ymm1, ymm0
vpcmpeqd ymm0, ymm1, ymm0
vpxor ymm1, ymm13, ymm2
vpxor ymm0, ymm13, ymm0
vpackssdw ymm0, ymm0, ymm1
vpermq ymm1, ymm4, 0xd8
vpermq ymm0, ymm0, 0xd8
vpacksswb ymm0, ymm1, ymm0
vmovdqu ymm1, ymmword [r8 + rsi]
vpblendvb ymm0, ymm1, ymmword [rax + rsi], ymm0
vmovdqu ymm1, ymmword [r9 + rsi]
vpblendvb ymm0, ymm1, ymm0, ymm5
vpaddb ymm0, ymm0, ymmword [r14 + rsi]
vmovdqu ymmword [rcx + rsi], ymm0
add rsi, 0x20
cmp r10, rsi
jne 0x1400aa6b5
cmp r10, r11
vmovdqa xmm12, xmmword [0x140131ae0]
vmovdqa ymm14, ymmword [0x140131ac0]
je 0x1400aa4a4
mov rdi, qword [rsp + 0xa0]
mov rsi, rdi
test r11b, 0x10
je 0x1400aa930
jmp 0x1400aa55f
xor edi, edi
jmp 0x1400aa930
xor edi, edi
jmp 0x1400aa930
xor edi, edi
jmp 0x1400aa930
xor edi, edi
jmp 0x1400aa930
cmp r12d, r10d
cmova esi, ebp
cmp r12d, r13d
cmova esi, ebp
add sil, byte [r14 + rdi]
mov byte [rcx + rdi], sil
inc rdi
cmp r11, rdi
je 0x1400aa4a4
movzx ebp, byte [rax + rdi]
movzx r15d, byte [r8 + rdi]
movzx esi, byte [r9 + rdi]
mov r10d, r15d
sub r10d, ebp
lea ebx, [r10 + rsi]
mov r12d, r10d
neg r12d
cmovs r12d, r10d
mov r10d, ebx
sub r10d, r15d
mov r13d, r10d
neg r13d
cmovs r13d, r10d
sub ebx, ebp
mov r10d, ebx
neg r10d
cmovs r10d, ebx
cmp r13d, r10d
ja 0x1400aa910
mov ebp, r15d
jmp 0x1400aa910
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + rsi]
mov qword [rsp + 0x38], r10
mov r11d, r9d
and r11d, 0xffffff80
mov r14, rdi
mov edi, r9d
and edi, 0xfffffff0
mov r10, r9
neg r10
mov qword [rsp + 0x40], r10
mov r10, qword [rsp + 0xb8]
lea rbx, [rax + r10]
add rbx, rsi
add rax, qword [rsp + 0x78]
add rax, rsi
xor r12d, r12d
mov r10d, ebp
jmp 0x1400aa9f0
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x28]
add rcx, rsi
inc r12
add rbx, rsi
add rax, rsi
dec r10d
je 0x1400aad67
cmp dword [rsp + 0x20], 0
jle 0x1400aa9ce
cmp dword [rsp + 0x20], 0x10
jae 0x1400aaa6f
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x1400aaa28
mov r15, rsi
sub r15, qword [rsp + 0x28]
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 + 0x40]
je 0x1400aa9ce
nop word cs:[rax + rax]
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 0x1400aaa40
jmp 0x1400aa9ce
mov rsi, r12
imul rsi, qword [rsp + 0x28]
add rsi, qword [rsp + 0x38]
mov r15, r12
imul r15, r8
add r15, qword [rsp + 0x48]
sub rsi, r15
cmp rsi, 0x80
jb 0x1400aa9fe
jb 0x1400aa9fe
mov esi, 0
cmp dword [rsp + 0x68], 0x80
jb 0x1400aaa00
cmp dword [rsp + 0x20], 0x80
jae 0x1400aaac4
xor r15d, r15d
jmp 0x1400aab55
xor esi, esi
vmovdqu ymm0, ymmword [rbx + rsi - 0x60]
vmovdqu ymm1, ymmword [rbx + rsi - 0x40]
vmovdqu ymm2, ymmword [rbx + rsi - 0x20]
vmovdqu ymm3, ymmword [rbx + rsi]
vpsrlw ymm0, ymm0, 1
vpand ymm0, ymm14, ymm0
vpsrlw ymm1, ymm1, 1
vpand ymm1, ymm14, ymm1
vpsrlw ymm2, ymm2, 1
vpand ymm2, ymm14, ymm2
vpsrlw ymm3, ymm3, 1
vpand ymm3, ymm14, ymm3
vpaddb ymm0, ymm0, ymmword [r14 + rsi]
vpaddb ymm1, ymm1, ymmword [r14 + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [r14 + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [r14 + rsi + 0x60]
vmovdqu ymmword [rcx + rsi], ymm0
vmovdqu ymmword [rcx + rsi + 0x20], ymm1
vmovdqu ymmword [rcx + rsi + 0x40], ymm2
vmovdqu ymmword [rcx + rsi + 0x60], ymm3
sub rsi, 0xffffffffffffff80
cmp r11, rsi
jne 0x1400aaac6
cmp r11, r9
je 0x1400aa9ce
mov r15, r11
mov rsi, r11
test r9b, 0x70
je 0x1400aaa00
vmovdqu xmm0, xmmword [rax + r15]
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm12, xmm0
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rdi, r15
jne 0x1400aab55
mov rsi, rdi
cmp rdi, r9
je 0x1400aa9ce
jmp 0x1400aaa00
test ebp, ebp
je case.default.0x1400a97c5
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + rsi]
mov qword [rsp + 0x38], r10
mov r11d, r9d
and r11d, 0xffffff80
mov r14, rdi
mov edi, r9d
and edi, 0xfffffff0
mov r10, r9
neg r10
mov qword [rsp + 0x40], r10
mov r10, qword [rsp + 0xb8]
lea rbx, [rax + r10]
add rbx, rsi
add rax, qword [rsp + 0x78]
add rax, rsi
xor r12d, r12d
mov r10d, ebp
jmp 0x1400aac02
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x28]
add rcx, rsi
inc r12
add rbx, rsi
add rax, rsi
dec r10d
je 0x1400aad67
cmp dword [rsp + 0x20], 0
jle 0x1400aabe0
cmp dword [rsp + 0x20], 0x10
jae 0x1400aac79
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x1400aac37
mov r15, rsi
sub r15, qword [rsp + 0x28]
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 + 0x40]
je 0x1400aabe0
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 0x1400aac50
jmp 0x1400aabe0
mov rsi, r12
imul rsi, qword [rsp + 0x28]
add rsi, qword [rsp + 0x38]
mov r15, r12
imul r15, r8
add r15, qword [rsp + 0x48]
sub rsi, r15
cmp rsi, 0x80
jb 0x1400aac10
jb 0x1400aac10
mov esi, 0
cmp dword [rsp + 0x68], 0x80
jb 0x1400aac12
cmp dword [rsp + 0x20], 0x80
jae 0x1400aaccb
xor r15d, r15d
jmp 0x1400aad38
xor esi, esi
vmovdqu ymm0, ymmword [rbx + rsi - 0x60]
vmovdqu ymm1, ymmword [rbx + rsi - 0x40]
vmovdqu ymm2, ymmword [rbx + rsi - 0x20]
vmovdqu ymm3, ymmword [rbx + rsi]
vpaddb ymm0, ymm0, ymmword [r14 + rsi]
vpaddb ymm1, ymm1, ymmword [r14 + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [r14 + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [r14 + rsi + 0x60]
vmovdqu ymmword [rcx + rsi], ymm0
vmovdqu ymmword [rcx + rsi + 0x20], ymm1
vmovdqu ymmword [rcx + rsi + 0x40], ymm2
vmovdqu ymmword [rcx + rsi + 0x60], ymm3
sub rsi, 0xffffffffffffff80
cmp r11, rsi
jne 0x1400aaccd
cmp r11, r9
je 0x1400aabe0
mov r15, r11
mov rsi, r11
test r9b, 0x70
je 0x1400aac12
vmovdqu xmm0, xmmword [rax + r15]
vpaddb xmm0, xmm0, xmmword [r14 + r15]
vmovdqu xmmword [rcx + r15], xmm0
add r15, 0x10
cmp rdi, r15
jne 0x1400aad38
mov rsi, rdi
cmp rdi, r9
je 0x1400aabe0
jmp 0x1400aac12
mov r14, rdi
mov r15d, dword [rsp + 0x250]
cmp r15d, 0x10
jne 0x1400aae49
test r13d, r13d
mov r12, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x60]
mov r11d, dword [rsp + 0x248]
mov r10, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x28]
mov ecx, dword [rsp + 0x94]
je 0x1400aaea2
add rdx, qword [r12 + 0x18]
movsxd rax, dword [rsp + 0x20]
inc rax
cmp r13d, 8
jb 0x1400aae34
mov r8, rsi
sub r8, rax
mov r9d, dword [rsp + 0xd8]
mov rcx, rdx
add rdx, rax
mov byte [rcx + rax], 0xff
mov byte [rsi + rdx], 0xff
add rdx, rsi
mov byte [rsi + rdx], 0xff
add rdx, rsi
mov byte [rsi + rdx], 0xff
add rdx, rsi
mov byte [rsi + rdx], 0xff
add rdx, rsi
mov byte [rsi + rdx], 0xff
add rdx, rsi
mov byte [rsi + rdx], 0xff
add rdx, rsi
mov byte [rsi + rdx], 0xff
add rdx, rsi
add rdx, r8
add r9d, 0xfffffff8
jne 0x1400aadcb
add rcx, rsi
add rcx, rsi
lea rdx, [rsi + rsi]
add rdx, rsi
add rcx, rdx
add rcx, rdx
mov rdx, rcx
mov r10, qword [rsp + 0xa8]
mov ecx, dword [rsp + 0x94]
test ecx, ecx
je 0x1400aae65
add rdx, rax
mov eax, ecx
mov byte [rdx], 0xff
add rdx, rsi
dec eax
jne 0x1400aae3d
jmp 0x1400aae65
mov r12, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x60]
mov r11d, dword [rsp + 0x248]
mov r10, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x88]
inc rcx
cmp rcx, qword [rsp + 0xd0]
je 0x1400ab85c
mov eax, dword [rsp + 0x30]
mov edx, eax
imul edx, ecx
mov rax, qword [r12 + 0x18]
add rax, rdx
movzx r9d, byte [r14]
cmp r9b, 4
jbe 0x1400a9646
jmp 0x1400ab850
mov rcx, qword [rsp + 0x88]
inc rcx
cmp rcx, qword [rsp + 0xd0]
jne 0x1400aae7e
jmp 0x1400abcd8
mov r9, r13
lea r10, [rax + r13]
mov r9, r10
sub r9, rdi
cmp r9, 0x80
jb 0x1400a9a2a
jb 0x1400a9a2a
mov r9d, 0
cmp dword [rsp + 0x30], 0x80
jb 0x1400a9a2d
cmp r11d, 0x80
jae 0x1400ab0cc
xor r9d, r9d
jmp 0x1400ab14d
mov r9, r13
lea r10, [rax + r13]
sub r10, rdi
mov r9, qword [rsp + 0xf8]
add r9, rbp
cmp r10, 0x20
jb 0x1400a9bce
jb 0x1400a9bce
cmp r9, 0x20
jb 0x1400a9bce
cmp dword [rsp + 0x30], 0x20
jb 0x1400a9bce
mov r9d, 0
cmp dword [rsp + 0x20], 0x20
jb 0x1400a9bd1
cmp r11d, 0x20
jae 0x1400ab180
xor r9d, r9d
jmp 0x1400ab3bf
mov r9, r13
lea r9, [rax + r13]
sub r9, rdi
cmp r9, 0x80
jb 0x1400a99a3
jb 0x1400a99a3
mov r9d, 0
cmp dword [rsp + 0x20], 0x80
jb 0x1400a99a6
cmp r11d, 0x80
jae 0x1400ab552
xor r9d, r9d
jmp 0x1400ab5db
mov r10, r13
lea r10, [rax + r13]
sub r10, rdi
cmp r10, 0x20
jb 0x1400a9b02
jb 0x1400a9b02
cmp dword [rsp + 0x30], 0x20
jb 0x1400a9b02
mov r10d, 0
cmp dword [rsp + 0x20], 0x20
jb 0x1400a9b05
cmp r11d, 0x20
jae 0x1400ab617
xor r10d, r10d
mov r11, r10
mov r10d, edx
and r10d, 0xfffffff0
mov rsi, r13
sub rsi, r9
add rsi, rax
vpmovzxbw ymm0, xmmword [r8 + r11]
vpmovzxbw ymm1, xmmword [rsi + r11]
vpaddw ymm0, ymm1, ymm0
vpsrlw ymm0, ymm0, 1
vextracti128 xmm1, ymm0, 1
vpackuswb xmm0, xmm0, xmm1
vpaddb xmm0, xmm0, xmmword [rdi + r11]
vmovdqu xmmword [rcx + r11], xmm0
add r11, 0x10
cmp r10, r11
jne 0x1400aaffe
cmp r10, rdx
jne 0x1400a9b05
jmp case.default.0x1400a9791
mov r9, r13
lea r9, [rax + r13]
sub r9, rdi
cmp r9, 0x80
jb 0x1400a9c7b
jb 0x1400a9c7b
mov r9d, 0
cmp dword [rsp + 0x20], 0x80
jb 0x1400a9c7e
cmp r11d, 0x80
jae 0x1400ab689
xor r9d, r9d
jmp 0x1400ab73e
mov r9, r13
lea r9, [rax + r13]
sub r9, rdi
cmp r9, 0x80
jb 0x1400a9d09
jb 0x1400a9d09
mov r9d, 0
cmp dword [rsp + 0x20], 0x80
jb 0x1400a9d0c
cmp r11d, 0x80
jae 0x1400ab78b
xor r9d, r9d
jmp 0x1400ab814
mov r9d, edx
and r9d, 0xffffff80
add r10, qword [rsp + 0xe8]
lea r11, [rax + r13]
add r11, 0x60
xor esi, esi
vmovdqu ymm0, ymmword [r10 + rsi - 0x60]
vmovdqu ymm1, ymmword [r10 + rsi - 0x40]
vmovdqu ymm2, ymmword [r10 + rsi - 0x20]
vmovdqu ymm3, ymmword [r10 + rsi]
vpaddb ymm0, ymm0, ymmword [rdi + rsi]
vpaddb ymm1, ymm1, ymmword [rdi + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rdi + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rdi + rsi + 0x60]
vmovdqu ymmword [r11 + rsi - 0x60], ymm0
vmovdqu ymmword [r11 + rsi - 0x40], ymm1
vmovdqu ymmword [r11 + rsi - 0x20], ymm2
vmovdqu ymmword [r11 + rsi], ymm3
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400ab0e5
cmp r9, rdx
je case.default.0x1400a9791
test dl, 0x70
je 0x1400a9a2d
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
vmovdqu xmm0, xmmword [r8 + r10]
vpaddb xmm0, xmm0, xmmword [rdi + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400ab157
cmp r9, rdx
jne 0x1400a9a2d
jmp case.default.0x1400a9791
mov r9d, edx
and r9d, 0xffffffe0
mov r11, r13
sub r11, rbp
add r11, rax
mov rsi, r9
mov rbx, rdi
mov rdi, rcx
mov r10, qword [rsp + 0x70]
vpcmpeqd ymm6, ymm6, ymm6
vpmovzxbd ymm3, qword [r11 + r10 + 0x10]
vpmovzxbd ymm5, qword [r11 + r10]
vpbroadcastq xmm0, qword [r11 + r10 + 0x18]
vpmovzxbd ymm0, xmm0
vpbroadcastq xmm1, qword [r11 + r10 + 8]
vpmovzxbd ymm2, qword [rdi + r10 + 0x10]
vpmovzxbd ymm4, qword [rdi + r10]
vpbroadcastq xmm7, qword [rdi + r10 + 0x18]
vpmovzxbd ymm1, xmm1
vpmovzxbd ymm7, xmm7
vpbroadcastq xmm8, qword [rdi + r10 + 8]
vpmovzxbd ymm8, xmm8
vpbroadcastq xmm9, qword [r11 + 8]
vpmovzxbd ymm9, xmm9
vpbroadcastq xmm10, qword [r11 + 0x18]
vpmovzxbd ymm11, qword [r11]
vpmovzxbd ymm10, xmm10
vpmovzxbd ymm12, qword [r11 + 0x10]
vpsubd ymm13, ymm8, ymm1
vpsubd ymm14, ymm7, ymm0
vpaddd ymm9, ymm13, ymm9
vpsubd ymm15, ymm9, ymm8
vpsubd ymm9, ymm9, ymm1
vpsubd ymm1, ymm4, ymm5
vpaddd ymm8, ymm14, ymm10
vpsubd ymm7, ymm8, ymm7
vpsubd ymm10, ymm8, ymm0
vpsubd ymm0, ymm2, ymm3
vpaddd ymm12, ymm12, ymm0
vpaddd ymm11, ymm11, ymm1
vpabsd ymm14, ymm14
vpabsd ymm13, ymm13
vpsubd ymm4, ymm11, ymm4
vpsubd ymm2, ymm12, ymm2
vpabsd ymm2, ymm2
vpabsd ymm4, ymm4
vpabsd ymm8, ymm7
vpabsd ymm7, ymm15
vpsubd ymm5, ymm11, ymm5
vpsubd ymm3, ymm12, ymm3
vpabsd ymm3, ymm3
vpabsd ymm5, ymm5
vpabsd ymm10, ymm10
vpabsd ymm9, ymm9
vpminud ymm11, ymm13, ymm7
vpcmpeqd ymm11, ymm13, ymm11
vpxor ymm11, ymm11, ymm6
vpminud ymm12, ymm13, ymm9
vpcmpeqd ymm12, ymm13, ymm12
vpminud ymm13, ymm14, ymm8
vpcmpeqd ymm13, ymm14, ymm13
vpxor ymm13, ymm13, ymm6
vpxor ymm12, ymm12, ymm6
vpor ymm11, ymm11, ymm12
vpminud ymm12, ymm14, ymm10
vpcmpeqd ymm12, ymm14, ymm12
vpxor ymm12, ymm12, ymm6
vpor ymm12, ymm13, ymm12
vpminud ymm13, ymm2, ymm3
vpcmpeqd ymm13, ymm13, ymm2
vpxor ymm13, ymm13, ymm6
vpminud ymm14, ymm4, ymm5
vpcmpeqd ymm14, ymm14, ymm4
vpxor ymm14, ymm14, ymm6
vpackssdw ymm13, ymm14, ymm13
vpminud ymm10, ymm8, ymm10
vpcmpeqd ymm8, ymm8, ymm10
vpminud ymm9, ymm7, ymm9
vpcmpeqd ymm7, ymm9, ymm7
vpxor ymm8, ymm8, ymm6
vpxor ymm7, ymm7, ymm6
vpackssdw ymm7, ymm7, ymm8
vpermq ymm8, ymm13, 0xd8
vpermq ymm7, ymm7, 0xd8
vpacksswb ymm7, ymm8, ymm7
vmovdqu ymm8, ymmword [rdi + r10]
vpblendvb ymm7, ymm8, ymmword [r11 + r10], ymm7
vpackssdw ymm8, ymm11, ymm12
vpabsd ymm1, ymm1
vpminud ymm4, ymm1, ymm4
vpcmpeqd ymm4, ymm1, ymm4
vpminud ymm5, ymm1, ymm5
vpcmpeqd ymm1, ymm1, ymm5
vpxor ymm4, ymm4, ymm6
vpxor ymm1, ymm1, ymm6
vpor ymm1, ymm4, ymm1
vpabsd ymm0, ymm0
vpminud ymm2, ymm0, ymm2
vpcmpeqd ymm2, ymm0, ymm2
vpminud ymm3, ymm0, ymm3
vpcmpeqd ymm0, ymm0, ymm3
vpxor ymm2, ymm2, ymm6
vpxor ymm0, ymm0, ymm6
vpor ymm0, ymm2, ymm0
vpackssdw ymm0, ymm1, ymm0
vpermq ymm0, ymm0, 0xd8
vpermq ymm1, ymm8, 0xd8
vpacksswb ymm0, ymm0, ymm1
vmovdqu ymm1, ymmword [r11]
vpblendvb ymm0, ymm1, ymm7, ymm0
vpaddb ymm0, ymm0, ymmword [rbx]
vmovdqu ymmword [rdi], ymm0
add rbx, 0x20
add r11, 0x20
add rdi, 0x20
add rsi, 0xffffffffffffffe0
jne 0x1400ab1a2
cmp r9, rdx
mov rdi, qword [rsp + 0x48]
je case.default.0x1400a9791
test dl, 0x10
je 0x1400a9bd1
mov ebx, edx
and ebx, 0xfffffff0
mov rsi, r13
sub rsi, rbp
add rsi, rax
mov r10, qword [rsp + 0x70]
mov r15, rdi
lea rdi, [rsi + r10]
mov qword [rsp + 0x40], rbx
mov r12, rcx
mov r11, r8
mov r10, r15
vpcmpeqd ymm6, ymm6, ymm6
vmovdqu xmm0, xmmword [rdi + r9]
vpbroadcastq xmm1, qword [rdi + r9 + 8]
vpmovzxbd ymm4, xmm1
vpmovzxbd ymm5, xmm0
vmovdqu xmm1, xmmword [r11 + r9]
vpbroadcastq xmm2, qword [r11 + r9 + 8]
vpmovzxbd ymm3, xmm2
vpmovzxbd ymm7, xmm1
vmovdqu xmm2, xmmword [rsi + r9]
vpbroadcastq xmm8, qword [rsi + r9 + 8]
vpmovzxbd ymm9, xmm2
vpmovzxbd ymm8, xmm8
vpsubd ymm10, ymm7, ymm5
vpsubd ymm11, ymm3, ymm4
vpaddd ymm8, ymm11, ymm8
vpaddd ymm9, ymm10, ymm9
vpabsd ymm11, ymm11
vpabsd ymm10, ymm10
vpsubd ymm7, ymm9, ymm7
vpsubd ymm3, ymm8, ymm3
vpabsd ymm12, ymm3
vpabsd ymm3, ymm7
vpsubd ymm5, ymm9, ymm5
vpsubd ymm4, ymm8, ymm4
vpabsd ymm4, ymm4
vpabsd ymm5, ymm5
vpminud ymm7, ymm10, ymm3
vpcmpeqd ymm7, ymm10, ymm7
vpxor ymm7, ymm7, ymm6
vpminud ymm8, ymm11, ymm12
vpcmpeqd ymm8, ymm11, ymm8
vpxor ymm8, ymm8, ymm6
vpminud ymm9, ymm10, ymm5
vpcmpeqd ymm9, ymm10, ymm9
vpxor ymm9, ymm9, ymm6
vpor ymm7, ymm9, ymm7
vpminud ymm9, ymm11, ymm4
vpcmpeqd ymm9, ymm11, ymm9
vpxor ymm9, ymm9, ymm6
vpor ymm8, ymm8, ymm9
vextracti128 xmm9, ymm8, 1
vpackssdw xmm8, xmm8, xmm9
vextracti128 xmm9, ymm7, 1
vpackssdw xmm7, xmm7, xmm9
vpacksswb xmm7, xmm7, xmm8
vpminud ymm4, ymm12, ymm4
vpcmpeqd ymm4, ymm12, ymm4
vpxor ymm4, ymm4, ymm6
vextracti128 xmm8, ymm4, 1
vpackssdw xmm4, xmm4, xmm8
vpminud ymm5, ymm3, ymm5
vpcmpeqd ymm3, ymm3, ymm5
vpxor ymm3, ymm3, ymm6
vextracti128 xmm5, ymm3, 1
vpackssdw xmm3, xmm3, xmm5
vpacksswb xmm3, xmm3, xmm4
vpblendvb xmm0, xmm1, xmm0, xmm3
vpblendvb xmm0, xmm2, xmm0, xmm7
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 0x1400ab3eb
mov r10, qword [rsp + 0x40]
mov r9, r10
cmp r10, rdx
mov rdi, qword [rsp + 0x48]
je case.default.0x1400a9791
jmp 0x1400a9bd1
mov r9d, edx
and r9d, 0xffffff80
mov r11, r13
mov r10, r13
sub r10, r8
add r10, rax
add r10, 0x60
lea r11, [rax + r13]
add r11, 0x60
xor esi, esi
vmovdqu ymm0, ymmword [r10 + rsi - 0x60]
vmovdqu ymm1, ymmword [r10 + rsi - 0x40]
vmovdqu ymm2, ymmword [r10 + rsi - 0x20]
vmovdqu ymm3, ymmword [r10 + rsi]
vpaddb ymm0, ymm0, ymmword [rdi + rsi]
vpaddb ymm1, ymm1, ymmword [rdi + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rdi + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rdi + rsi + 0x60]
vmovdqu ymmword [r11 + rsi - 0x60], ymm0
vmovdqu ymmword [r11 + rsi - 0x40], ymm1
vmovdqu ymmword [r11 + rsi - 0x20], ymm2
vmovdqu ymmword [r11 + rsi], ymm3
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400ab573
cmp r9, rdx
je case.default.0x1400a9791
test dl, 0x70
je 0x1400a99a6
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, r13
sub r11, r8
add r11, rax
vmovdqu xmm0, xmmword [r11 + r10]
vpaddb xmm0, xmm0, xmmword [rdi + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400ab5ee
cmp r9, rdx
jne 0x1400a99a6
jmp case.default.0x1400a9791
mov r10d, edx
and r10d, 0xffffffe0
mov r11, r13
sub r11, r9
add r11, rax
xor esi, esi
vpmovzxbw ymm0, xmmword [r8 + rsi + 0x10]
vpmovzxbw ymm1, xmmword [r8 + rsi]
vpmovzxbw ymm2, xmmword [r11 + rsi + 0x10]
vpmovzxbw ymm3, xmmword [r11 + rsi]
vpaddw ymm0, ymm2, ymm0
vpaddw ymm1, ymm3, ymm1
vpsrlw ymm0, ymm0, 1
vpsrlw ymm1, ymm1, 1
vpackuswb ymm0, ymm1, ymm0
vpermq ymm0, ymm0, 0xd8
vpaddb ymm0, ymm0, ymmword [rdi + rsi]
vmovdqu ymmword [rcx + rsi], ymm0
add rsi, 0x20
cmp r10, rsi
jne 0x1400ab629
cmp r10, rdx
je case.default.0x1400a9791
test dl, 0x10
je 0x1400a9b05
jmp 0x1400aafeb
mov r9d, edx
and r9d, 0xffffff80
mov r11, r13
mov r10, r13
sub r10, r8
add r10, rax
add r10, 0x60
lea r11, [rax + r13]
add r11, 0x60
xor esi, esi
vmovdqa ymm4, ymmword [0x140131ac0]
vmovdqu ymm0, ymmword [r10 + rsi - 0x60]
vmovdqu ymm1, ymmword [r10 + rsi - 0x40]
vmovdqu ymm2, ymmword [r10 + rsi - 0x20]
vmovdqu ymm3, ymmword [r10 + rsi]
vpsrlw ymm0, ymm0, 1
vpand ymm0, ymm0, ymm4
vpsrlw ymm1, ymm1, 1
vpand ymm1, ymm1, ymm4
vpsrlw ymm2, ymm2, 1
vpand ymm2, ymm2, ymm4
vpsrlw ymm3, ymm3, 1
vpand ymm3, ymm3, ymm4
vpaddb ymm0, ymm0, ymmword [rdi + rsi]
vpaddb ymm1, ymm1, ymmword [rdi + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rdi + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rdi + rsi + 0x60]
vmovdqu ymmword [r11 + rsi - 0x60], ymm0
vmovdqu ymmword [r11 + rsi - 0x40], ymm1
vmovdqu ymmword [r11 + rsi - 0x20], ymm2
vmovdqu ymmword [r11 + rsi], ymm3
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400ab6b2
cmp r9, rdx
je case.default.0x1400a9791
test dl, 0x70
je 0x1400a9c7e
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, r13
sub r11, r8
add r11, rax
vmovdqa xmm1, xmmword [0x140131ae0]
vmovdqu xmm0, xmmword [r11 + r10]
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm0, xmm1
vpaddb xmm0, xmm0, xmmword [rdi + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400ab759
cmp r9, rdx
jne 0x1400a9c7e
jmp case.default.0x1400a9791
mov r9d, edx
and r9d, 0xffffff80
mov r11, r13
mov r10, r13
sub r10, r8
add r10, rax
add r10, 0x60
lea r11, [rax + r13]
add r11, 0x60
xor esi, esi
vmovdqu ymm0, ymmword [r10 + rsi - 0x60]
vmovdqu ymm1, ymmword [r10 + rsi - 0x40]
vmovdqu ymm2, ymmword [r10 + rsi - 0x20]
vmovdqu ymm3, ymmword [r10 + rsi]
vpaddb ymm0, ymm0, ymmword [rdi + rsi]
vpaddb ymm1, ymm1, ymmword [rdi + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rdi + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rdi + rsi + 0x60]
vmovdqu ymmword [r11 + rsi - 0x60], ymm0
vmovdqu ymmword [r11 + rsi - 0x40], ymm1
vmovdqu ymmword [r11 + rsi - 0x20], ymm2
vmovdqu ymmword [r11 + rsi], ymm3
sub rsi, 0xffffffffffffff80
cmp r9, rsi
jne 0x1400ab7ac
cmp r9, rdx
je case.default.0x1400a9791
test dl, 0x70
je 0x1400a9d0c
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, r13
sub r11, r8
add r11, rax
vmovdqu xmm0, xmmword [r11 + r10]
vpaddb xmm0, xmm0, xmmword [rdi + r10]
vmovdqu xmmword [rcx + r10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400ab827
cmp r9, rdx
jne 0x1400a9d0c
jmp case.default.0x1400a9791
lea r8, str.invalid_filter
jmp 0x1400a9385
cmp r15d, 8
jge 0x1400abcc9
mov ecx, 1
test r11d, r11d
je 0x1400a93a1
mov eax, dword [rsp + 0xc0]
mov edx, r10d
movsxd r8, r15d
mov qword [rsp + 0x20], r8
lea r9d, [r13 - 1]
movsxd r8, r9d
mov r10d, dword [rsp + 0x64]
imul r10d, r13d
imul r10d, ebp
mov r11, rax
sub r11, rdx
neg rdx
lea rsi, [r8 + r8*2]
add rsi, 2
mov qword [rsp + 0x68], rsi
lea esi, [r13*4 - 4]
mov dword [rsp + 0x48], esi
dec r8
mov qword [rsp + 0x28], r8
lea r8d, [r13 + r13 - 1]
mov dword [rsp + 0x64], r8d
xor r14d, r14d
add rdx, rax
xor r13d, r13d
jmp 0x1400ab8ed
inc r13
add r14d, r10d
cmp r13, qword [rsp + 0xd0]
je 0x1400a93a1
mov r12, qword [r12 + 0x18]
mov eax, dword [rsp + 0x30]
mov edi, eax
imul edi, r13d
lea rsi, [r12 + rdi]
mov bl, 1
cmp dword [rsp + 0x258], 0
jne 0x1400ab91d
mov rax, qword [rsp + 0x20]
lea r8, [0x140131c68]
movzx ebx, byte [rax + r8]
lea rbp, [rsi + rdx]
mov r14d, r14d
mov eax, dword [rsp + 0x250]
cmp eax, 4
je 0x1400abb90
cmp eax, 2
mov r15, qword [rsp + 0x80]
je 0x1400abadb
cmp eax, 1
jne 0x1400abbf9
mov r8d, dword [rsp + 0x54]
mov eax, r8d
cmp r8d, 8
jl 0x1400aba17
lea rbp, [r12 + r11]
mov eax, dword [rsp + 0x54]
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 0x1400ab968
add rbp, r14
add r12, r14
mov rsi, r12
test eax, eax
jle 0x1400abbf9
movzx r8d, byte [rbp]
sar r8b, 7
and r8b, bl
mov byte [rsi], r8b
cmp eax, 1
je 0x1400abbf9
movzx r8d, byte [rbp]
add r8b, r8b
sar r8b, 7
and r8b, bl
mov byte [rsi + 1], r8b
cmp eax, 3
jb 0x1400abbf9
movzx r8d, byte [rbp]
shl r8b, 2
sar r8b, 7
and r8b, bl
mov byte [rsi + 2], r8b
cmp eax, 3
je 0x1400abbf9
movzx r8d, byte [rbp]
shl r8b, 3
sar r8b, 7
and r8b, bl
mov byte [rsi + 3], r8b
cmp eax, 5
jb 0x1400abbf9
movzx r8d, byte [rbp]
shl r8b, 4
sar r8b, 7
and r8b, bl
mov byte [rsi + 4], r8b
cmp eax, 5
je 0x1400abbf9
movzx r8d, byte [rbp]
shl r8b, 5
sar r8b, 7
and r8b, bl
mov byte [rsi + 5], r8b
cmp eax, 7
jb 0x1400abbf9
movzx eax, byte [rbp]
shl al, 6
sar al, 7
and al, bl
mov byte [rsi + 6], al
jmp 0x1400abbf9
mov eax, dword [rsp + 0x54]
mov r8d, eax
cmp eax, 4
jl 0x1400abb4e
lea rbp, [r12 + r11]
mov r8d, dword [rsp + 0x54]
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 0x1400abaf0
add rbp, r14
add r12, r14
mov rsi, r12
test r8d, r8d
jle 0x1400abbf9
movzx eax, byte [rbp]
shr al, 6
mul bl
mov byte [rsi], al
cmp r8d, 1
je 0x1400abbf9
movzx eax, byte [rbp]
shr al, 4
and al, 3
mul bl
mov byte [rsi + 1], al
cmp r8d, 3
jb 0x1400abbf9
movzx eax, byte [rbp]
shr al, 2
and al, 3
mul bl
mov byte [rsi + 2], al
jmp 0x1400abbf9
mov r8d, dword [rsp + 0x54]
mov eax, r8d
cmp r8d, 2
mov r15, qword [rsp + 0x80]
jl 0x1400abbe9
lea rbp, [r12 + r11]
mov eax, dword [rsp + 0x54]
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 0x1400abbae
add rbp, r14
add r12, r14
mov rsi, r12
cmp eax, 1
jne 0x1400abbf9
movzx eax, byte [rbp]
shr al, 4
mul bl
mov byte [rsi], al
cmp r15d, dword [rsp + 0x60]
mov r12, qword [rsp + 0xb0]
je 0x1400ab8d9
mov rax, qword [r12 + 0x18]
add rdi, rax
cmp dword [rsp + 0x80], 1
jne 0x1400abc62
test r9d, r9d
js 0x1400ab8d9
add rax, r14
mov ebx, dword [rsp + 0x64]
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 0x1400abc36
jmp 0x1400ab8d9
test r9d, r9d
js 0x1400ab8d9
add rax, qword [rsp + 0x68]
add rax, r14
mov r8, qword [rsp + 0x28]
mov esi, dword [rsp + 0x48]
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 0x1400abc7f
jmp 0x1400ab8d9
mov ecx, 1
cmp r15d, 0x10
jne 0x1400a93a1
mov r10, qword [rsp + 0xc0]
imul r10d, r11d
mov ecx, 1
test r10d, r10d
je 0x1400a93a1
mov rax, qword [r12 + 0x18]
cmp r10d, 4
jb 0x1400abd3a
mov edx, r10d
and edx, 0xfffffffc
movzx r8d, word [rax]
movzx r9d, word [rax + 2]
movbe word [rax], r8w
movbe word [rax + 2], r9w
movzx r8d, word [rax + 4]
movbe word [rax + 4], r8w
movzx r8d, word [rax + 6]
movbe word [rax + 6], r8w
add rax, 8
add edx, 0xfffffffc
jne 0x1400abd03
test r10b, 3
je 0x1400a93a1
and r10d, 3
xor edx, edx
movzx r8d, word [rax + rdx*2]
movbe word [rax + rdx*2], r8w
inc rdx
cmp r10d, edx
jne 0x1400abd4a
jmp 0x1400a93a1
lea r8, str.invalid_width
jmp 0x1400a9385