Function at 0x140096280
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 rsi, rcx
mov r13d, dword [rsp + 0x250]
mov ecx, dword [rsp + 0x248]
mov r12d, dword [rsp + 0x240]
cmp r13d, 0x10
sete dil
mov eax, ecx
or eax, r12d
js 0x140096363
mov r15d, r9d
mov ebx, r8d
mov r14, rdx
mov rax, qword [rsi]
movsxd rbp, dword [rax + 8]
test ecx, ecx
je 0x140096338
mov eax, 0x7fffffff
xor edx, edx
div ecx
cmp eax, r12d
jl 0x140096363
shlx r8d, r15d, edi
imul ecx, r12d
mov eax, r8d
or eax, ecx
js 0x140096363
test r8d, r8d
je 0x140096401
mov eax, 0x7fffffff
xor edx, edx
div r8d
cmp eax, ecx
jge 0x140096401
mov qword [rsi + 0x18], 0
lea r8, str.outofmem
mov eax, dword [0x140210b70]
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 + 0x60], r8d
imul ecx, r8d
movsxd rcx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsi + 0x18], rax
test rax, rax
je 0x14009636b
lea r8, str.too_large
mov eax, ebp
or eax, r12d
js 0x140096372
test r12d, r12d
je 0x140096449
mov eax, 0x7fffffff
xor edx, edx
div r12d
cmp eax, ebp
jl 0x140096372
mov ecx, ebp
imul ecx, r12d
mov eax, ecx
or eax, r13d
js 0x140096372
test r13d, r13d
je 0x14009648e
mov eax, 0x7fffffff
xor edx, edx
div r13d
cmp eax, ecx
mov r11d, dword [rsp + 0x248]
jl 0x140096372
mov r10d, ecx
imul r10d, r13d
cmp r10d, 0x7ffffff8
jle 0x140096499
jmp 0x140096372
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 0x1400964b9
lea r8, str.not_enough_pixels
jmp 0x140096372
mov eax, r12d
imul eax, r15d
mov qword [rsp + 0xc0], rax
test r11d, r11d
je 0x1400964f9
mov dword [rsp + 0x44], ecx
cmp r13d, 8
setl r8b
cmp ebp, r15d
sete al
movzx r9d, byte [r14]
cmp r9b, 4
jbe 0x14009659c
lea r8, str.invalid_filter
jmp 0x140096372
mov ecx, 1
cmp r13d, 8
jl 0x14009638e
cmp r13d, 0x10
jne 0x14009638e
mov r10, qword [rsp + 0xc0]
imul r10d, r11d
mov ecx, 1
test r10d, r10d
je 0x14009638e
mov rax, qword [rsi + 0x18]
cmp r10d, 4
jb 0x140096573
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 0x14009653c
test r10b, 3
je 0x14009638e
and r10d, 3
xor edx, edx
movzx r8d, word [rax + rdx*2]
movbe word [rax + rdx*2], r8w
inc rdx
cmp r10d, edx
jne 0x140096583
jmp 0x14009638e
mov rdx, qword [rsp + 0xc0]
shlx ecx, edx, edi
shlx edi, ebp, edi
mov dword [rsp + 0x20], edi
sub edx, r10d
mov qword [rsp + 0x120], rdx
mov dword [rsp + 0x40], ecx
mov ecx, ecx
mov rdx, rcx
neg rdx
mov qword [rsp + 0x68], rdx
movsxd rdx, dword [rsp + 0x60]
or r8b, al
mov eax, r12d
and eax, 7
mov dword [rsp + 0x98], eax
mov eax, r12d
and eax, 0xfffffff8
mov dword [rsp + 0xdc], eax
mov eax, 0x60
mov edi, 0x60
sub rdi, rdx
mov qword [rsp + 0xb8], rdi
mov rbx, rdx
neg rbx
mov rdi, rbx
mov qword [rsp + 0x70], rbx
sub rbx, rcx
mov qword [rsp + 0x108], rbx
mov edi, 3
sub rdi, rcx
mov qword [rsp + 0x100], rdi
mov edi, 1
sub rdi, rcx
mov qword [rsp + 0xf0], rdi
sub rax, rcx
mov qword [rsp + 0xe8], rax
vpcmpeqd ymm11, ymm11, ymm11
vpbroadcastb xmm12, byte [0x14011a6aa]
vpbroadcastb ymm13, byte [0x14011a6aa]
movsxd rax, r15d
mov qword [rsp + 0x128], rax
lea eax, [r12 - 1]
mov dword [rsp + 0x9c], eax
mov eax, r11d
mov qword [rsp + 0xd0], rax
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x38], rdx
add rcx, rdx
mov qword [rsp + 0x118], rcx
xor edx, edx
mov ecx, r12d
mov qword [rsp + 0xe0], rcx
xor ecx, ecx
mov qword [rsp + 0x80], rsi
mov dword [rsp + 0x54], r15d
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0xb0], r10
mov edi, r8d
mov byte [rsp + 0x37], r8b
cmp r13d, 7
jg 0x1400966f6
cmp r10d, r12d
ja 0x140098cad
add rax, qword [rsp + 0x120]
mov dword [rsp + 0x20], 1
mov qword [rsp + 0xe0], r10
mov qword [rsp + 0x90], rcx
test rcx, rcx
mov r8, qword [rsp + 0x68]
lea r12, [0x14011b350]
mov rdi, rbp
jne 0x140096722
movzx ecx, r9b
lea r9, [0x14011a76c]
movzx r9d, byte [rcx + r9]
lea rbp, [r14 + 1]
add r8, rax
movzx r10d, r9b
cmp dword [rsp + 0x20], 0
jle 0x14009677b
mov ecx, dword [rsp + 0x20]
xor r11d, r11d
jmp 0x140096752
movzx ebx, byte [rbp + r11]
mov byte [rax + r11], bl
inc r11
cmp rcx, r11
je 0x14009677b
cmp r9b, 6
ja case.default.0x14009675f
movsxd rsi, dword [r12 + r10*4]
add rsi, r12
jmp rsi
movzx ebx, byte [r8 + r11]
add bl, byte [rbp + r11]
jmp 0x140096746
movzx ebx, byte [r8 + r11]
shr bl, 1
add bl, byte [rbp + r11]
jmp 0x140096746
cmp r13d, 8
jne 0x140096797
cmp edi, r15d
je 0x14009678a
mov byte [rax + rdi], 0xff
add rbp, rdi
mov r13, qword [rsp + 0x128]
jmp 0x1400967c7
cmp r13d, 0x10
jne 0x1400967ba
movsxd rcx, dword [rsp + 0x20]
cmp edi, r15d
je 0x1400967b0
mov byte [rax + rcx], 0xff
mov byte [rcx + rax + 1], 0xff
add rbp, rcx
mov r13, qword [rsp + 0x38]
jmp 0x1400967c7
add r14, 2
mov r13d, 1
mov rbp, r14
movzx r11d, byte [rsp + 0x37]
lea rcx, [rax + r13]
add r8, r13
test r11b, r11b
mov qword [rsp + 0x48], rbp
je 0x140096825
mov qword [rsp + 0x28], r13
mov rdx, qword [rsp + 0xe0]
lea r11d, [rdx - 1]
imul r11d, dword [rsp + 0x20]
movsxd r14, r11d
cmp r9b, 6
ja case.default.0x140096810
lea r9, [0x14011b388]
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.0x140096810
cmp r9b, 6
mov esi, dword [rsp + 0x9c]
ja case.default.0x140096844
lea r11, [0x14011b36c]
movsxd r9, dword [r11 + r10*4]
add r9, r11
jmp r9
test esi, esi
je case.default.0x140096844
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
add rax, r13
mov r10d, r9d
and r10d, 0xffffff80
mov r11d, r9d
and r11d, 0xfffffff0
mov ebx, r9d
and ebx, 3
xor r15d, r15d
mov r12d, esi
mov r14, rbp
jmp 0x140096895
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, qword [rsp + 0x38]
inc r15
dec r12d
je 0x140097d48
cmp dword [rsp + 0x20], 0
jle 0x14009687c
cmp dword [rsp + 0x20], 0x10
jb 0x1400968df
mov rsi, r15
imul rsi, r8
add rsi, qword [rsp + 0x48]
mov rdi, r15
imul rdi, qword [rsp + 0x38]
add rdi, rax
sub rdi, rsi
mov r13d, 0
cmp rdi, 0x80
jb 0x140096960
cmp dword [rsp + 0x20], 0x80
jae 0x1400968e4
xor esi, esi
jmp 0x140096940
xor r13d, r13d
jmp 0x140096960
xor esi, esi
nop word cs:[rax + rax]
vmovdqu ymm0, ymmword [r14 + rsi]
vmovdqu ymm1, ymmword [r14 + rsi + 0x20]
vmovdqu ymm2, ymmword [r14 + rsi + 0x40]
vmovdqu 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 r10, rsi
jne 0x1400968f0
cmp r10, r9
je 0x14009687c
mov rsi, r10
mov r13, r10
test r9b, 0x70
je 0x140096960
vmovdqu xmm0, xmmword [r14 + rsi]
vmovdqu xmmword [rcx + rsi], xmm0
add rsi, 0x10
cmp r11, rsi
jne 0x140096940
mov r13, r11
cmp r11, r9
je 0x14009687c
mov rsi, r13
test rbx, rbx
je 0x140096981
mov rdi, rbx
mov rsi, r13
nop
movzx ebp, byte [r14 + rsi]
mov byte [rcx + rsi], bpl
inc rsi
dec rdi
jne 0x140096970
not r13
add r13, r9
cmp r13, 3
jb 0x14009687c
nop word cs:[rax + rax]
movzx edi, byte [r14 + rsi]
mov byte [rcx + rsi], dil
movzx edi, byte [r14 + rsi + 1]
mov byte [rcx + rsi + 1], dil
movzx edi, byte [r14 + rsi + 2]
mov byte [rcx + rsi + 2], dil
movzx edi, byte [r14 + rsi + 3]
mov byte [rcx + rsi + 3], dil
add rsi, 4
cmp r9, rsi
jne 0x1400969a0
jmp 0x14009687c
test r11d, r11d
jle case.default.0x140096810
movsxd r8, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x140097f61
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140096a19
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.0x140096810
mov r9, qword [rsp + 0x28]
mov rcx, r9
sub rcx, r8
add rcx, rax
inc rcx
add rax, r9
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 0x140096a3c
jmp case.default.0x140096810
test r11d, r11d
jle case.default.0x140096810
mov edx, r11d
cmp r11d, 0x10
jae 0x140097eb7
xor r9d, r9d
mov r8, rdx
mov rcx, r9
and r8, 3
je 0x140096ac6
mov rcx, r9
neg rcx
mov r10, qword [rsp + 0x28]
add r10, r9
add r10, rax
mov r11, qword [rsp + 0x68]
add r11, r10
lea rsi, [r9 + rbp]
xor edi, edi
movzx ebx, byte [r11 + rdi]
add bl, byte [rsi + rdi]
mov byte [r10 + rdi], bl
inc rdi
dec rcx
cmp r8, rdi
jne 0x140096aac
neg rcx
not r9
add r9, rdx
cmp r9, 3
jb case.default.0x140096810
sub rdx, rcx
mov r8, qword [rsp + 0x28]
add r8, rcx
add rax, r8
add rax, 3
add rcx, rbp
add rcx, 3
mov r9, qword [rsp + 0x68]
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 0x140096aef
jmp case.default.0x140096810
test r11d, r11d
jle case.default.0x140096810
movsxd r9, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x140097fa8
xor r10d, r10d
mov r11, r10
test dl, 1
je 0x140096b88
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.0x140096810
mov r10, qword [rsp + 0x28]
mov rcx, r10
sub rcx, r9
add rcx, rax
inc rcx
lea r8, [rax + r10]
inc r8
add rax, qword [rsp + 0xf0]
add rax, r10
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 0x140096bbb
jmp case.default.0x140096810
test r11d, r11d
jle case.default.0x140096810
movsxd rsi, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x140097f02
xor r9d, r9d
mov r10, qword [rsp + 0x28]
sub r10, rsi
add rax, r10
mov r10, qword [rsp + 0x68]
add r10, rax
mov r11, rbp
jmp 0x140096c79
movzx edi, dil
cmp edi, r12d
cmova esi, ebx
cmp edi, r15d
cmova esi, ebx
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 + 0x48]
je case.default.0x140096810
movzx ebx, byte [r10 + r9]
movzx ebp, byte [r8 + r9]
movzx esi, byte [rax + r9]
mov r13d, ebp
sub r13d, ebx
add r13d, esi
movzx edi, bl
movzx r15d, bpl
sub r15d, edi
mov edi, r15d
neg edi
cmovs edi, r15d
mov r12d, r13d
sub r12d, ebp
mov r15d, r12d
neg r15d
cmovs r15d, r12d
sub r13d, ebx
mov r12d, r13d
neg r12d
cmovs r12d, r13d
cmp r15d, r12d
ja 0x140096c41
mov ebx, ebp
jmp 0x140096c41
test r11d, r11d
jle case.default.0x140096810
movsxd r8, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x140098044
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140096d15
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.0x140096810
mov r9, qword [rsp + 0x28]
mov rcx, r9
sub rcx, r8
add rcx, rax
inc rcx
add rax, r9
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 0x140096d38
jmp case.default.0x140096810
test r11d, r11d
jle case.default.0x140096810
movsxd r8, dword [rsp + 0x20]
mov edx, r11d
cmp r11d, 0x10
jae 0x14009808b
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140096da7
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.0x140096810
mov r9, qword [rsp + 0x28]
mov rcx, r9
sub rcx, r8
add rcx, rax
inc rcx
add rax, r9
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 0x140096dc6
add rbp, r14
mov r14, rbp
mov rsi, qword [rsp + 0x80]
mov r13d, dword [rsp + 0x250]
mov r15d, dword [rsp + 0x54]
mov r12d, dword [rsp + 0x240]
mov rbp, qword [rsp + 0x78]
mov r11d, dword [rsp + 0x248]
mov r10, qword [rsp + 0xb0]
vpcmpeqd ymm11, ymm11, ymm11
vpbroadcastb xmm12, byte [0x14011a6aa]
vpbroadcastb ymm13, byte [0x14011a6aa]
jmp 0x140097e61
test esi, esi
je case.default.0x140096844
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + r13]
mov qword [rsp + 0x28], r10
mov r11d, r9d
and r11d, 0xffffff80
mov ebx, r9d
and ebx, 0xfffffff0
mov r15, r9
neg r15
mov r10, qword [rsp + 0xb8]
lea r12, [rax + r10]
add r12, r13
add rax, qword [rsp + 0x70]
add rax, r13
xor r13d, r13d
mov r10d, esi
mov r14, rbp
jmp 0x140096eb4
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x38]
add rcx, rsi
inc r13
add r12, rsi
add rax, rsi
dec r10d
je 0x140097d48
cmp dword [rsp + 0x20], 0
jle 0x140096e92
cmp dword [rsp + 0x20], 0x10
jae 0x140096f19
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140096ee8
mov rdi, rsi
sub rdi, qword [rsp + 0x38]
movzx edi, byte [rcx + rdi]
add dil, byte [r14 + rsi]
mov byte [rcx + rsi], dil
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, r15
je 0x140096e92
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 0x140096ef0
jmp 0x140096e92
mov rsi, r13
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x28]
mov rdi, r13
imul rdi, r8
add rdi, qword [rsp + 0x48]
sub rsi, rdi
cmp rsi, 0x80
jb 0x140096ec2
jb 0x140096ec2
mov esi, 0
cmp dword [rsp + 0x60], 0x80
jb 0x140096ec4
cmp dword [rsp + 0x20], 0x80
jae 0x140096f66
xor edi, edi
jmp 0x140096fd7
xor esi, esi
vmovdqu ymm0, ymmword [r12 + rsi - 0x60]
vmovdqu ymm1, ymmword [r12 + rsi - 0x40]
vmovdqu ymm2, ymmword [r12 + rsi - 0x20]
vmovdqu ymm3, ymmword [r12 + 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 0x140096f68
cmp r11, r9
je 0x140096e92
mov rdi, r11
mov rsi, r11
test r9b, 0x70
je 0x140096ec4
vmovdqu xmm0, xmmword [rax + rdi]
vpaddb xmm0, xmm0, xmmword [r14 + rdi]
vmovdqu xmmword [rcx + rdi], xmm0
add rdi, 0x10
cmp rbx, rdi
jne 0x140096fd7
mov rsi, rbx
cmp rbx, r9
je 0x140096e92
jmp 0x140096ec4
test esi, esi
je case.default.0x140096844
mov r9d, dword [rsp + 0x20]
movsxd r15, r9d
mov r10d, r9d
lea r9, [rax + r13]
mov qword [rsp + 0xa8], r9
mov r9d, r10d
and r9d, 0xffffff80
mov qword [rsp + 0xa0], r9
mov r9d, r10d
and r9d, 0xfffffff0
mov qword [rsp + 0x110], r9
mov qword [rsp + 0x58], r10
and r10d, 3
lea r9, [rax + r13]
add r9, 3
mov qword [rsp + 0x88], r9
add rax, qword [rsp + 0x100]
add rax, r13
lea rbx, [rbp + 3]
xor r13d, r13d
mov r14, rbp
mov qword [rsp + 0xc8], r15
jmp 0x1400970a6
mov byte [rcx + r15], 0xff
add r14, r15
mov r9, qword [rsp + 0x38]
add rcx, r9
add r8, r9
inc r13
add qword [rsp + 0x88], r9
add rax, r9
add rbx, r15
mov esi, dword [rsp + 0x28]
dec esi
je 0x140097d48
mov dword [rsp + 0x28], esi
cmp dword [rsp + 0x20], 0
jle 0x140097076
cmp dword [rsp + 0x20], 0x10
jae 0x14009718c
xor r12d, r12d
mov rbp, r12
test r10, r10
je 0x140097103
mov rbp, r12
neg rbp
lea r9, [rcx + r12]
lea rsi, [r8 + r12]
lea rdi, [r14 + r12]
xor r11d, r11d
nop dword [rax]
movzx r15d, byte [rsi + r11]
add r15b, byte [rdi + r11]
mov byte [r9 + r11], r15b
inc r11
dec rbp
cmp r10, r11
jne 0x1400970e0
neg rbp
mov r15, qword [rsp + 0xc8]
not r12
add r12, qword [rsp + 0x58]
cmp r12, 3
jb 0x140097076
mov r12, qword [rsp + 0x58]
sub r12, rbp
mov r9, qword [rsp + 0x88]
add r9, rbp
lea rsi, [rax + rbp]
add rbp, rbx
xor edi, edi
nop word cs:[rax + rax]
movzx r11d, byte [rsi + rdi - 3]
add r11b, byte [rbp + rdi - 3]
mov byte [r9 + rdi - 3], r11b
movzx r11d, byte [rsi + rdi - 2]
add r11b, byte [rbp + rdi - 2]
mov byte [r9 + rdi - 2], r11b
movzx r11d, byte [rsi + rdi - 1]
add r11b, byte [rbp + rdi - 1]
mov byte [r9 + rdi - 1], r11b
movzx r11d, byte [rsi + rdi]
add r11b, byte [rbp + rdi]
mov byte [r9 + rdi], r11b
add rdi, 4
cmp r12, rdi
jne 0x140097140
jmp 0x140097076
mov r9, r13
imul r9, qword [rsp + 0x38]
add r9, qword [rsp + 0xa8]
mov r11, r13
imul r11, r15
add r11, qword [rsp + 0x48]
sub r9, r11
cmp r9, 0x80
jb 0x1400970bc
jb 0x1400970bc
mov r12d, 0
cmp dword [rsp + 0x40], 0x80
jb 0x1400970bf
cmp dword [rsp + 0x20], 0x80
jae 0x1400971e5
xor r9d, r9d
jmp 0x14009726b
xor r9d, r9d
mov r11, qword [rsp + 0xa0]
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 r11, r9
jne 0x1400971f0
cmp r11, qword [rsp + 0x58]
je 0x140097076
mov r12, qword [rsp + 0xa0]
mov r9, r12
test byte [rsp + 0x58], 0x70
je 0x1400970bf
mov r11, qword [rsp + 0x110]
vmovdqu xmm0, xmmword [r8 + r9]
vpaddb xmm0, xmm0, xmmword [r14 + r9]
vmovdqu xmmword [rcx + r9], xmm0
add r9, 0x10
cmp r11, r9
jne 0x140097273
mov r12, r11
cmp r11, qword [rsp + 0x58]
je 0x140097076
jmp 0x1400970bf
test esi, esi
je case.default.0x140096844
mov r10d, dword [rsp + 0x20]
movsxd r9, r10d
mov r10d, r10d
lea r11, [rax + r13]
mov qword [rsp + 0x28], r11
mov ebx, r10d
and ebx, 0xffffffe0
mov r15d, r10d
and r15d, 0xfffffff0
mov r12, r10
neg r12
add rax, qword [rsp + 0x70]
add rax, r13
xor r13d, r13d
mov r11d, esi
mov r14, rbp
jmp 0x140097305
mov byte [rcx + r9], 0xff
add r14, r9
mov rsi, qword [rsp + 0x38]
add rcx, rsi
add r8, rsi
inc r13
add rax, rsi
dec r11d
je 0x140097d48
cmp dword [rsp + 0x20], 0
jle 0x1400972e3
cmp dword [rsp + 0x20], 0x10
jae 0x14009738c
xor esi, esi
mov rbp, rsi
test r10b, 1
je 0x140097342
movzx edi, byte [r8 + rsi]
mov rbp, rsi
sub rbp, qword [rsp + 0x38]
movzx ebp, byte [rcx + rbp]
add ebp, edi
shr ebp, 1
add bpl, byte [r14 + rsi]
mov byte [rcx + rsi], bpl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, r12
je 0x1400972e3
nop word [rax + rax]
movzx esi, byte [r8 + rbp]
movzx edi, byte [rax + rbp]
add edi, esi
shr edi, 1
add dil, byte [r14 + rbp]
mov byte [rcx + rbp], dil
movzx esi, byte [r8 + rbp + 1]
movzx edi, byte [rax + rbp + 1]
add edi, esi
shr edi, 1
add dil, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], dil
add rbp, 2
cmp r10, rbp
jne 0x140097350
jmp 0x1400972e3
mov rsi, r13
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x28]
mov rdi, r13
imul rdi, r9
add rdi, qword [rsp + 0x48]
sub rsi, rdi
cmp rsi, 0x20
jb 0x140097313
jb 0x140097313
cmp dword [rsp + 0x40], 0x20
jb 0x140097313
mov esi, 0
cmp dword [rsp + 0x60], 0x20
jb 0x140097315
cmp dword [rsp + 0x20], 0x20
jae 0x1400973df
xor ebp, ebp
jmp 0x140097444
xor esi, esi
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 rbx, rsi
jne 0x1400973e1
cmp rbx, r10
je 0x1400972e3
mov rbp, rbx
mov rsi, rbx
test r10b, 0x10
je 0x140097315
vpmovzxbw ymm0, xmmword [r8 + rbp]
vpmovzxbw ymm1, xmmword [rax + rbp]
vpaddw ymm0, ymm1, ymm0
vpsrlw ymm0, ymm0, 1
vextracti128 xmm1, ymm0, 1
vpackuswb xmm0, xmm0, xmm1
vpaddb xmm0, xmm0, xmmword [r14 + rbp]
vmovdqu xmmword [rcx + rbp], xmm0
add rbp, 0x10
cmp r15, rbp
jne 0x140097444
mov rsi, r15
cmp r15, r10
je 0x1400972e3
jmp 0x140097315
test esi, esi
je case.default.0x140096844
mov r9d, dword [rsp + 0x20]
movsxd r10, r9d
mov qword [rsp + 0x88], r10
mov r11d, r9d
lea r9, [rax + r13]
mov qword [rsp + 0xc8], r9
mov r9d, r11d
and r9d, 0xffffffe0
mov qword [rsp + 0xa8], r9
mov r9d, r11d
and r9d, 0xfffffff0
mov qword [rsp + 0xa0], r9
mov r9, qword [rsp + 0x70]
add r9, rax
add r9, r13
add rax, qword [rsp + 0x108]
add rax, r13
xor r10d, r10d
mov qword [rsp + 0x58], r10
mov r14, rbp
jmp 0x140097522
mov r10, qword [rsp + 0x88]
mov byte [rcx + r10], 0xff
add r14, r10
mov r10, qword [rsp + 0x38]
add rcx, r10
add r8, r10
inc qword [rsp + 0x58]
add r9, r10
add rax, r10
mov esi, dword [rsp + 0x28]
dec esi
je 0x140097d48
mov dword [rsp + 0x28], esi
cmp dword [rsp + 0x20], 0
jle 0x1400974f0
cmp dword [rsp + 0x20], 0x10
jae 0x14009753b
xor ebx, ebx
jmp 0x140097924
mov rsi, qword [rsp + 0x58]
mov r10, rsi
imul r10, qword [rsp + 0x38]
add r10, qword [rsp + 0xc8]
imul rsi, qword [rsp + 0x88]
add rsi, qword [rsp + 0x48]
sub r10, rsi
cmp r10, 0x20
jb 0x1400978ee
jb 0x1400978f2
cmp qword [rsp + 0x118], 0x20
jb 0x1400978ea
cmp dword [rsp + 0x40], 0x20
jb 0x1400978e6
mov ebx, 0
cmp dword [rsp + 0x60], 0x20
jb 0x140097924
cmp dword [rsp + 0x20], 0x20
jae 0x1400976d2
xor r13d, r13d
mov r10, qword [rsp + 0xa0]
vmovdqu xmm0, xmmword [rax + r13]
vpmovzxbd ymm3, xmm0
vpbroadcastq xmm1, qword [rax + r13 + 8]
vpmovzxbd ymm4, xmm1
vmovdqu xmm1, xmmword [r8 + r13]
vpmovzxbd ymm5, xmm1
vpbroadcastq xmm2, qword [r8 + r13 + 8]
vpmovzxbd ymm6, xmm2
vmovdqu xmm2, xmmword [r9 + r13]
vpbroadcastq xmm7, qword [r9 + r13 + 8]
vpmovzxbd ymm7, xmm7
vpmovzxbd ymm8, xmm2
vpsubd ymm9, ymm6, ymm4
vpaddd ymm7, ymm9, ymm7
vpsubd ymm9, ymm5, ymm3
vpaddd ymm8, ymm9, ymm8
vpminub xmm9, xmm1, xmm0
vpmaxub xmm10, xmm1, xmm0
vpsubb xmm9, xmm10, xmm9
vpmovzxbd ymm10, xmm9
vpshufd xmm9, xmm9, 0xee
vpmovzxbd ymm9, xmm9
vpsubd ymm6, ymm7, ymm6
vpsubd ymm5, ymm8, ymm5
vpabsd ymm5, ymm5
vpabsd ymm6, ymm6
vpsubd ymm4, ymm7, ymm4
vpsubd ymm3, ymm8, ymm3
vpabsd ymm3, ymm3
vpabsd ymm4, ymm4
vpminud ymm4, ymm6, ymm4
vpmaxud ymm7, ymm4, ymm9
vpcmpeqd ymm7, ymm4, ymm7
vpminud ymm3, ymm5, ymm3
vpmaxud ymm8, ymm3, ymm10
vpcmpeqd ymm8, ymm8, ymm3
vpackssdw ymm7, ymm8, ymm7
vpxor ymm7, ymm11, ymm7
vextracti128 xmm8, ymm7, 1
vpacksswb xmm7, xmm7, xmm8
vpshufd xmm7, xmm7, 0xd8
vpcmpeqd ymm4, ymm6, ymm4
vpcmpeqd ymm3, ymm5, ymm3
vpackssdw ymm3, ymm3, ymm4
vpxor ymm3, ymm11, ymm3
vextracti128 xmm4, ymm3, 1
vpacksswb xmm3, xmm3, xmm4
vpshufd xmm3, xmm3, 0xd8
vpblendvb xmm0, xmm1, xmm0, xmm3
vpblendvb xmm0, xmm2, xmm0, xmm7
vpaddb xmm0, xmm0, xmmword [r14 + r13]
vmovdqu xmmword [rcx + r13], xmm0
add r13, 0x10
cmp r10, r13
jne 0x1400975b2
mov rbx, r10
cmp r10, r11
jne 0x140097924
jmp 0x1400974f0
xor ebx, ebx
mov r10, qword [rsp + 0xa8]
vmovdqu ymm0, ymmword [rax + rbx]
vpbroadcastq xmm1, qword [rax + rbx + 8]
vpmovzxbd ymm4, qword [rax + rbx]
vpmovzxbd ymm3, xmm1
vpbroadcastq xmm1, qword [rax + rbx + 0x18]
vpmovzxbd ymm5, xmm1
vpmovzxbd ymm7, qword [rax + rbx + 0x10]
vpbroadcastq xmm2, qword [r8 + rbx + 8]
vmovdqu ymm1, ymmword [r8 + rbx]
vpmovzxbd ymm8, xmm2
vpmovzxbd ymm9, qword [r8 + rbx]
vpbroadcastq xmm2, qword [r8 + rbx + 0x18]
vpmovzxbd ymm6, qword [r8 + rbx + 0x10]
vpmovzxbd ymm10, qword [r9 + rbx + 0x10]
vpbroadcastq xmm11, qword [r9 + rbx + 0x18]
vpmovzxbd ymm12, xmm2
vpmovzxbd ymm2, xmm11
vpmovzxbd ymm11, qword [r9 + rbx]
vpbroadcastq xmm13, qword [r9 + rbx + 8]
vpmovzxbd ymm13, xmm13
vpsubd ymm14, ymm6, ymm7
vpaddd ymm10, ymm14, ymm10
vpsubd ymm14, ymm12, ymm5
vpaddd ymm14, ymm14, ymm2
vpsubd ymm2, ymm9, ymm4
vpaddd ymm11, ymm11, ymm2
vpsubd ymm2, ymm8, ymm3
vpaddd ymm13, ymm13, ymm2
vpminub ymm2, ymm1, ymm0
vpmaxub ymm15, ymm1, ymm0
vpsubb ymm2, ymm15, ymm2
vpsubd ymm6, ymm10, ymm6
vpsubd ymm7, ymm10, ymm7
vpsubd ymm10, ymm14, ymm12
vpsubd ymm5, ymm14, ymm5
vpsubd ymm9, ymm11, ymm9
vpsubd ymm4, ymm11, ymm4
vpsubd ymm8, ymm13, ymm8
vpsubd ymm11, ymm13, ymm3
vpabsd ymm10, ymm10
vpabsd ymm6, ymm6
vpabsd ymm5, ymm5
vpabsd ymm3, ymm7
vpminud ymm3, ymm6, ymm3
vpminud ymm5, ymm10, ymm5
vpcmpeqd ymm6, ymm6, ymm3
vpcmpeqd ymm7, ymm10, ymm5
vpackssdw ymm6, ymm6, ymm7
vpabsd ymm7, ymm8
vpabsd ymm8, ymm9
vpabsd ymm9, ymm11
vpcmpeqd ymm11, ymm11, ymm11
vpabsd ymm4, ymm4
vpminud ymm4, ymm8, ymm4
vpminud ymm9, ymm7, ymm9
vpcmpeqd ymm8, ymm8, ymm4
vpcmpeqd ymm7, ymm9, ymm7
vpackssdw ymm7, ymm8, ymm7
vpermq ymm6, ymm6, 0xd8
vpxor ymm6, ymm11, ymm6
vpermq ymm7, ymm7, 0xd8
vpxor ymm7, ymm11, ymm7
vpacksswb ymm6, ymm7, ymm6
vpermq ymm6, ymm6, 0xd8
vpblendvb ymm0, ymm1, ymm0, ymm6
vextracti128 xmm1, ymm2, 1
vpmovzxbd ymm6, xmm1
vpmaxud ymm6, ymm3, ymm6
vpcmpeqd ymm3, ymm3, ymm6
vpshufd xmm1, xmm1, 0xee
vpmovzxbd ymm1, xmm1
vpmaxud ymm1, ymm5, ymm1
vpcmpeqd ymm1, ymm5, ymm1
vpackssdw ymm1, ymm3, ymm1
vpmovzxbd ymm3, xmm2
vpmaxud ymm3, ymm4, ymm3
vpcmpeqd ymm3, ymm4, ymm3
vpshufd xmm2, xmm2, 0xee
vpmovzxbd ymm2, xmm2
vpmaxud ymm2, ymm9, ymm2
vpcmpeqd ymm2, ymm9, ymm2
vpackssdw ymm2, ymm3, ymm2
vpermq ymm1, ymm1, 0xd8
vpxor ymm1, ymm11, ymm1
vpermq ymm2, ymm2, 0xd8
vpxor ymm2, ymm11, ymm2
vpacksswb ymm1, ymm2, ymm1
vmovdqu ymm2, ymmword [r9 + rbx]
vpermq ymm1, ymm1, 0xd8
vpblendvb ymm0, ymm2, ymm0, ymm1
vpaddb ymm0, ymm0, ymmword [r14 + rbx]
vmovdqu ymmword [rcx + rbx], ymm0
add rbx, 0x20
cmp r10, rbx
jne 0x1400976dc
cmp r10, r11
vpbroadcastb xmm12, byte [0x14011a6aa]
vpbroadcastb ymm13, byte [0x14011a6aa]
je 0x1400974f0
mov rbx, qword [rsp + 0xa8]
mov r13, rbx
test r11b, 0x10
je 0x140097924
jmp 0x1400975aa
xor ebx, ebx
jmp 0x140097924
xor ebx, ebx
jmp 0x140097924
xor ebx, ebx
jmp 0x140097924
xor ebx, ebx
jmp 0x140097924
movzx edi, dil
cmp edi, r12d
cmova esi, ebp
cmp edi, r10d
cmova esi, ebp
add sil, byte [r14 + rbx]
mov byte [rcx + rbx], sil
inc rbx
cmp r11, rbx
je 0x1400974f0
movzx ebp, byte [rax + rbx]
movzx r15d, byte [r8 + rbx]
movzx esi, byte [r9 + rbx]
mov r13d, r15d
sub r13d, ebp
add r13d, esi
movzx r10d, bpl
movzx r12d, r15b
sub r12d, r10d
mov edi, r12d
neg edi
cmovs edi, r12d
mov r12d, r13d
sub r12d, r15d
mov r10d, r12d
neg r10d
cmovs r10d, r12d
sub r13d, ebp
mov r12d, r13d
neg r12d
cmovs r12d, r13d
cmp r10d, r12d
ja 0x140097900
mov ebp, r15d
jmp 0x140097900
test esi, esi
je case.default.0x140096844
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + r13]
mov qword [rsp + 0x28], r10
mov r11d, r9d
and r11d, 0xffffff80
mov ebx, r9d
and ebx, 0xfffffff0
mov r15, r9
neg r15
mov r10, qword [rsp + 0xb8]
lea r12, [rax + r10]
add r12, r13
add rax, qword [rsp + 0x70]
add rax, r13
xor r13d, r13d
mov r10d, esi
mov r14, rbp
jmp 0x1400979e9
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x38]
add rcx, rsi
inc r13
add r12, rsi
add rax, rsi
dec r10d
je 0x140097d48
cmp dword [rsp + 0x20], 0
jle 0x1400979c7
cmp dword [rsp + 0x20], 0x10
jae 0x140097a5f
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140097a20
mov rdi, rsi
sub rdi, qword [rsp + 0x38]
movzx edi, byte [rcx + rdi]
shr dil, 1
add dil, byte [r14 + rsi]
mov byte [rcx + rsi], dil
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, r15
je 0x1400979c7
nop dword [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 0x140097a30
jmp 0x1400979c7
mov rsi, r13
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x28]
mov rdi, r13
imul rdi, r8
add rdi, qword [rsp + 0x48]
sub rsi, rdi
cmp rsi, 0x80
jb 0x1400979f7
jb 0x1400979f7
mov esi, 0
cmp dword [rsp + 0x60], 0x80
jb 0x1400979f9
cmp dword [rsp + 0x20], 0x80
jae 0x140097ab3
xor edi, edi
jmp 0x140097b48
xor esi, esi
vmovdqu ymm0, ymmword [r12 + rsi - 0x60]
vmovdqu ymm1, ymmword [r12 + rsi - 0x40]
vmovdqu ymm2, ymmword [r12 + rsi - 0x20]
vmovdqu ymm3, ymmword [r12 + rsi]
vpsrlw ymm0, ymm0, 1
vpand ymm0, ymm13, ymm0
vpsrlw ymm1, ymm1, 1
vpand ymm1, ymm13, ymm1
vpsrlw ymm2, ymm2, 1
vpand ymm2, ymm13, ymm2
vpsrlw ymm3, ymm3, 1
vpand ymm3, ymm13, 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 0x140097ab5
cmp r11, r9
je 0x1400979c7
mov rdi, r11
mov rsi, r11
test r9b, 0x70
je 0x1400979f9
vmovdqu xmm0, xmmword [rax + rdi]
vpsrlw xmm0, xmm0, 1
vpand xmm0, xmm12, xmm0
vpaddb xmm0, xmm0, xmmword [r14 + rdi]
vmovdqu xmmword [rcx + rdi], xmm0
add rdi, 0x10
cmp rbx, rdi
jne 0x140097b48
mov rsi, rbx
cmp rbx, r9
je 0x1400979c7
jmp 0x1400979f9
test esi, esi
je case.default.0x140096844
mov r9d, dword [rsp + 0x20]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + r13]
mov qword [rsp + 0x28], r10
mov r11d, r9d
and r11d, 0xffffff80
mov ebx, r9d
and ebx, 0xfffffff0
mov r15, r9
neg r15
mov r10, qword [rsp + 0xb8]
lea r12, [rax + r10]
add r12, r13
add rax, qword [rsp + 0x70]
add rax, r13
xor r13d, r13d
mov r10d, esi
mov r14, rbp
jmp 0x140097bee
mov byte [rcx + r8], 0xff
add r14, r8
mov rsi, qword [rsp + 0x38]
add rcx, rsi
inc r13
add r12, rsi
add rax, rsi
dec r10d
je 0x140097d48
cmp dword [rsp + 0x20], 0
jle 0x140097bcc
cmp dword [rsp + 0x20], 0x10
jae 0x140097c59
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140097c22
mov rdi, rsi
sub rdi, qword [rsp + 0x38]
movzx edi, byte [rcx + rdi]
add dil, byte [r14 + rsi]
mov byte [rcx + rsi], dil
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, r15
je 0x140097bcc
nop word [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 0x140097c30
jmp 0x140097bcc
mov rsi, r13
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x28]
mov rdi, r13
imul rdi, r8
add rdi, qword [rsp + 0x48]
sub rsi, rdi
cmp rsi, 0x80
jb 0x140097bfc
jb 0x140097bfc
mov esi, 0
cmp dword [rsp + 0x60], 0x80
jb 0x140097bfe
cmp dword [rsp + 0x20], 0x80
jae 0x140097caa
xor edi, edi
jmp 0x140097d1b
xor esi, esi
vmovdqu ymm0, ymmword [r12 + rsi - 0x60]
vmovdqu ymm1, ymmword [r12 + rsi - 0x40]
vmovdqu ymm2, ymmword [r12 + rsi - 0x20]
vmovdqu ymm3, ymmword [r12 + 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 0x140097cac
cmp r11, r9
je 0x140097bcc
mov rdi, r11
mov rsi, r11
test r9b, 0x70
je 0x140097bfe
vmovdqu xmm0, xmmword [rax + rdi]
vpaddb xmm0, xmm0, xmmword [r14 + rdi]
vmovdqu xmmword [rcx + rdi], xmm0
add rdi, 0x10
cmp rbx, rdi
jne 0x140097d1b
mov rsi, rbx
cmp rbx, r9
je 0x140097bcc
jmp 0x140097bfe
mov r14, rbp
mov r13d, dword [rsp + 0x250]
cmp r13d, 0x10
jne 0x140097e37
mov r12d, dword [rsp + 0x240]
test r12d, r12d
mov rsi, qword [rsp + 0x80]
mov r15d, dword [rsp + 0x54]
mov rbp, qword [rsp + 0x78]
mov r11d, dword [rsp + 0x248]
mov r10, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x98]
je 0x140097e9d
add rdx, qword [rsi + 0x18]
movsxd rax, dword [rsp + 0x20]
inc rax
cmp r12d, 8
jb 0x140097e22
mov r8, rbx
sub r8, rax
mov r9d, dword [rsp + 0xdc]
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 0x140097db9
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 + 0xb0]
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x140097e61
add rdx, rax
mov eax, ecx
mov byte [rdx], 0xff
add rdx, rbx
dec eax
jne 0x140097e2b
jmp 0x140097e61
mov rsi, qword [rsp + 0x80]
mov r15d, dword [rsp + 0x54]
mov r12d, dword [rsp + 0x240]
mov rbp, qword [rsp + 0x78]
mov r11d, dword [rsp + 0x248]
mov r10, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x90]
inc rcx
cmp rcx, qword [rsp + 0xd0]
je 0x14009880f
mov eax, dword [rsp + 0x40]
mov edx, eax
imul edx, ecx
mov rax, qword [rsi + 0x18]
add rax, rdx
movzx r9d, byte [r14]
cmp r9b, 4
jbe 0x1400966cf
jmp 0x1400964ed
mov rcx, qword [rsp + 0x90]
inc rcx
cmp rcx, qword [rsp + 0xd0]
jne 0x140097e7a
jmp 0x140096512
mov r9, qword [rsp + 0x28]
lea r10, [rax + r9]
mov r9, r10
sub r9, rbp
cmp r9, 0x80
jb 0x140096a7e
jb 0x140096a7e
mov r9d, 0
cmp dword [rsp + 0x40], 0x80
jb 0x140096a81
cmp r11d, 0x80
jae 0x1400980d2
xor r9d, r9d
jmp 0x140098158
mov r9, qword [rsp + 0x28]
lea r10, [rax + r9]
sub r10, rbp
mov r9, qword [rsp + 0xf8]
add r9, rsi
cmp r10, 0x20
jb 0x140096c26
jb 0x140096c26
cmp r9, 0x20
jb 0x140096c26
cmp dword [rsp + 0x40], 0x20
jb 0x140096c26
mov r9d, 0
cmp dword [rsp + 0x20], 0x20
jb 0x140096c29
cmp r11d, 0x20
jae 0x14009818c
xor r9d, r9d
jmp 0x14009839e
mov r9, qword [rsp + 0x28]
add r9, rax
sub r9, rbp
cmp r9, 0x80
jb 0x1400969f3
jb 0x1400969f3
mov r9d, 0
cmp dword [rsp + 0x20], 0x80
jb 0x1400969f6
cmp r11d, 0x80
jae 0x1400984fd
xor r9d, r9d
jmp 0x140098588
mov r10, qword [rsp + 0x28]
add r10, rax
sub r10, rbp
cmp r10, 0x20
jb 0x140096b57
jb 0x140096b57
cmp dword [rsp + 0x40], 0x20
jb 0x140096b57
mov r10d, 0
cmp dword [rsp + 0x20], 0x20
jb 0x140096b5a
cmp r11d, 0x20
jae 0x1400985c7
xor r10d, r10d
mov r11, r10
mov r10d, edx
and r10d, 0xfffffff0
mov rsi, qword [rsp + 0x28]
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 [rbp + r11]
vmovdqu xmmword [rcx + r11], xmm0
add r11, 0x10
cmp r10, r11
jne 0x140098001
cmp r10, rdx
jne 0x140096b5a
jmp case.default.0x140096810
mov r9, qword [rsp + 0x28]
add r9, rax
sub r9, rbp
cmp r9, 0x80
jb 0x140096cec
jb 0x140096cec
mov r9d, 0
cmp dword [rsp + 0x20], 0x80
jb 0x140096cef
cmp r11d, 0x80
jae 0x14009863c
xor r9d, r9d
jmp 0x1400986f4
mov r9, qword [rsp + 0x28]
add r9, rax
sub r9, rbp
cmp r9, 0x80
jb 0x140096d81
jb 0x140096d81
mov r9d, 0
cmp dword [rsp + 0x20], 0x80
jb 0x140096d84
cmp r11d, 0x80
jae 0x140098745
xor r9d, r9d
jmp 0x1400987d0
mov r9d, edx
and r9d, 0xffffff80
add r10, qword [rsp + 0xe8]
mov r11, qword [rsp + 0x28]
add r11, rax
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 [rbp + rsi]
vpaddb ymm1, ymm1, ymmword [rbp + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rbp + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rbp + 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 0x1400980ef
cmp r9, rdx
je case.default.0x140096810
test dl, 0x70
je 0x140096a81
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 0x140098162
cmp r9, rdx
jne 0x140096a81
jmp case.default.0x140096810
mov r9d, edx
and r9d, 0xffffffe0
mov r11, qword [rsp + 0x28]
sub r11, rsi
add r11, rax
mov rbx, r9
mov r15, rcx
mov r12, rbp
mov r10, qword [rsp + 0x68]
vmovdqu ymm0, ymmword [r11 + r10]
vpbroadcastq xmm1, qword [r11 + r10 + 8]
vpmovzxbd ymm3, qword [r11 + r10]
vpbroadcastq xmm2, qword [r11 + r10 + 0x18]
vpmovzxbd ymm4, xmm1
vpmovzxbd ymm5, xmm2
vpmovzxbd ymm7, qword [r11 + r10 + 0x10]
vmovdqu ymm1, ymmword [r15 + r10]
vpbroadcastq xmm2, qword [r15 + r10 + 8]
vpmovzxbd ymm8, xmm2
vpmovzxbd ymm9, qword [r15 + r10]
vpbroadcastq xmm2, qword [r15 + r10 + 0x18]
vpmovzxbd ymm11, qword [r15 + r10 + 0x10]
vpmovzxbd ymm12, qword [r11 + 0x10]
vpmovzxbd ymm10, xmm2
vpbroadcastq xmm2, qword [r11 + 0x18]
vpmovzxbd ymm2, xmm2
vpmovzxbd ymm13, qword [r11]
vpbroadcastq xmm14, qword [r11 + 8]
vpmovzxbd ymm14, xmm14
vpsubd ymm15, ymm11, ymm7
vpaddd ymm12, ymm15, ymm12
vpsubd ymm15, ymm10, ymm5
vpaddd ymm15, ymm15, ymm2
vpsubd ymm2, ymm9, ymm3
vpaddd ymm13, ymm13, ymm2
vpsubd ymm2, ymm8, ymm4
vpaddd ymm14, ymm14, ymm2
vpminub ymm2, ymm1, ymm0
vpmaxub ymm6, ymm1, ymm0
vpsubb ymm2, ymm6, ymm2
vpsubd ymm6, ymm12, ymm11
vpsubd ymm7, ymm12, ymm7
vpsubd ymm10, ymm15, ymm10
vpsubd ymm5, ymm15, ymm5
vpsubd ymm9, ymm13, ymm9
vpsubd ymm11, ymm13, ymm3
vpsubd ymm8, ymm14, ymm8
vpsubd ymm4, ymm14, ymm4
vpabsd ymm10, ymm10
vpabsd ymm6, ymm6
vpabsd ymm5, ymm5
vpabsd ymm3, ymm7
vpminud ymm3, ymm6, ymm3
vpminud ymm5, ymm10, ymm5
vpcmpeqd ymm6, ymm6, ymm3
vpcmpeqd ymm7, ymm10, ymm5
vpackssdw ymm6, ymm6, ymm7
vpabsd ymm7, ymm8
vpabsd ymm8, ymm9
vpabsd ymm4, ymm4
vpabsd ymm9, ymm11
vpminud ymm9, ymm8, ymm9
vpminud ymm4, ymm7, ymm4
vpcmpeqd ymm8, ymm8, ymm9
vpcmpeqd ymm7, ymm7, ymm4
vpackssdw ymm7, ymm8, ymm7
vpermq ymm6, ymm6, 0xd8
vpcmpeqd ymm8, ymm8, ymm8
vpxor ymm6, ymm8, ymm6
vpermq ymm7, ymm7, 0xd8
vpxor ymm7, ymm8, ymm7
vpacksswb ymm6, ymm7, ymm6
vpermq ymm6, ymm6, 0xd8
vpblendvb ymm0, ymm1, ymm0, ymm6
vextracti128 xmm1, ymm2, 1
vpmovzxbd ymm6, xmm1
vpmaxud ymm6, ymm3, ymm6
vpcmpeqd ymm3, ymm3, ymm6
vpshufd xmm1, xmm1, 0xee
vpmovzxbd ymm1, xmm1
vpmaxud ymm1, ymm5, ymm1
vpcmpeqd ymm1, ymm5, ymm1
vpackssdw ymm1, ymm3, ymm1
vpmovzxbd ymm3, xmm2
vpmaxud ymm3, ymm9, ymm3
vpcmpeqd ymm3, ymm9, ymm3
vpshufd xmm2, xmm2, 0xee
vpmovzxbd ymm2, xmm2
vpmaxud ymm2, ymm4, ymm2
vpcmpeqd ymm2, ymm4, ymm2
vpackssdw ymm2, ymm3, ymm2
vpermq ymm1, ymm1, 0xd8
vpxor ymm1, ymm8, ymm1
vpermq ymm2, ymm2, 0xd8
vpxor ymm2, ymm8, ymm2
vpacksswb ymm1, ymm2, ymm1
vmovdqu ymm2, ymmword [r11]
vpermq ymm1, ymm1, 0xd8
vpblendvb ymm0, ymm2, ymm0, ymm1
vpaddb ymm0, ymm0, ymmword [r12]
vmovdqu ymmword [r15], ymm0
add r12, 0x20
add r11, 0x20
add r15, 0x20
add rbx, 0xffffffffffffffe0
jne 0x1400981ac
cmp r9, rdx
je case.default.0x140096810
test dl, 0x10
je 0x140096c29
mov edi, edx
and edi, 0xfffffff0
mov rbx, qword [rsp + 0x28]
sub rbx, rsi
add rbx, rax
mov r10, qword [rsp + 0x68]
lea r15, [rbx + r10]
mov r12, rdi
mov r13, rcx
mov r11, r8
mov r10, rbp
vpcmpeqd ymm11, ymm11, ymm11
vmovdqu xmm0, xmmword [r15 + r9]
vpmovzxbd ymm3, xmm0
vpbroadcastq xmm1, qword [r15 + r9 + 8]
vpmovzxbd ymm4, xmm1
vmovdqu xmm1, xmmword [r11 + r9]
vpmovzxbd ymm5, xmm1
vpbroadcastq xmm2, qword [r11 + r9 + 8]
vpmovzxbd ymm6, xmm2
vmovdqu xmm2, xmmword [rbx + r9]
vpbroadcastq xmm7, qword [rbx + r9 + 8]
vpmovzxbd ymm7, xmm7
vpmovzxbd ymm8, xmm2
vpsubd ymm9, ymm6, ymm4
vpaddd ymm7, ymm9, ymm7
vpsubd ymm9, ymm5, ymm3
vpaddd ymm8, ymm9, ymm8
vpminub xmm9, xmm1, xmm0
vpmaxub xmm10, xmm1, xmm0
vpsubb xmm9, xmm10, xmm9
vpmovzxbd ymm10, xmm9
vpshufd xmm9, xmm9, 0xee
vpmovzxbd ymm9, xmm9
vpsubd ymm6, ymm7, ymm6
vpsubd ymm5, ymm8, ymm5
vpabsd ymm5, ymm5
vpabsd ymm6, ymm6
vpsubd ymm4, ymm7, ymm4
vpsubd ymm3, ymm8, ymm3
vpabsd ymm3, ymm3
vpabsd ymm4, ymm4
vpminud ymm4, ymm6, ymm4
vpmaxud ymm7, ymm4, ymm9
vpcmpeqd ymm7, ymm4, ymm7
vpminud ymm3, ymm5, ymm3
vpmaxud ymm8, ymm3, ymm10
vpcmpeqd ymm8, ymm8, ymm3
vpackssdw ymm7, ymm8, ymm7
vpxor ymm7, ymm11, ymm7
vextracti128 xmm8, ymm7, 1
vpacksswb xmm7, xmm7, xmm8
vpshufd xmm7, xmm7, 0xd8
vpcmpeqd ymm4, ymm6, ymm4
vpcmpeqd ymm3, ymm5, ymm3
vpackssdw ymm3, ymm3, ymm4
vpxor ymm3, ymm11, ymm3
vextracti128 xmm4, ymm3, 1
vpacksswb xmm3, xmm3, xmm4
vpshufd xmm3, xmm3, 0xd8
vpblendvb xmm0, xmm1, xmm0, xmm3
vpblendvb xmm0, xmm2, xmm0, xmm7
vpaddb xmm0, xmm0, xmmword [r10 + r9]
vmovdqu xmmword [r13 + r9], xmm0
add r10, 0x10
add rbx, 0x10
add r15, 0x10
add r11, 0x10
add r13, 0x10
add r12, 0xfffffffffffffff0
cmp r9, r12
jne 0x1400983c8
mov r9, rdi
cmp rdi, rdx
je case.default.0x140096810
jmp 0x140096c29
mov r9d, edx
and r9d, 0xffffff80
mov r11, qword [rsp + 0x28]
mov r10, r11
sub r10, r8
add r10, rax
add r10, 0x60
add r11, rax
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 [rbp + rsi]
vpaddb ymm1, ymm1, ymmword [rbp + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rbp + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rbp + 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 0x14009851f
cmp r9, rdx
je case.default.0x140096810
test dl, 0x70
je 0x1400969f6
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, qword [rsp + 0x28]
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 0x14009859d
cmp r9, rdx
jne 0x1400969f6
jmp case.default.0x140096810
mov r10d, edx
and r10d, 0xffffffe0
mov r11, qword [rsp + 0x28]
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 [rbp + rsi]
vmovdqu ymmword [rcx + rsi], ymm0
add rsi, 0x20
cmp r10, rsi
jne 0x1400985db
cmp r10, rdx
je case.default.0x140096810
test dl, 0x10
je 0x140096b5a
jmp 0x140097fec
mov r9d, edx
and r9d, 0xffffff80
mov r11, qword [rsp + 0x28]
mov r10, r11
sub r10, r8
add r10, rax
add r10, 0x60
add r11, rax
add r11, 0x60
xor esi, esi
vpbroadcastb ymm4, byte [0x14011a6aa]
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 [rbp + rsi]
vpaddb ymm1, ymm1, ymmword [rbp + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rbp + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rbp + 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 0x140098667
cmp r9, rdx
je case.default.0x140096810
test dl, 0x70
je 0x140096cef
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, qword [rsp + 0x28]
sub r11, r8
add r11, rax
vpbroadcastb xmm1, byte [0x14011a6aa]
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 0x140098712
cmp r9, rdx
jne 0x140096cef
jmp case.default.0x140096810
mov r9d, edx
and r9d, 0xffffff80
mov r11, qword [rsp + 0x28]
mov r10, r11
sub r10, r8
add r10, rax
add r10, 0x60
add r11, rax
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 [rbp + rsi]
vpaddb ymm1, ymm1, ymmword [rbp + rsi + 0x20]
vpaddb ymm2, ymm2, ymmword [rbp + rsi + 0x40]
vpaddb ymm3, ymm3, ymmword [rbp + 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 0x140098767
cmp r9, rdx
je case.default.0x140096810
test dl, 0x70
je 0x140096d84
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff0
mov r11, qword [rsp + 0x28]
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 0x1400987e5
cmp r9, rdx
jne 0x140096d84
jmp case.default.0x140096810
mov ecx, 1
cmp r13d, 8
jge 0x140096508
test r11d, r11d
je 0x14009638e
mov eax, dword [rsp + 0xc0]
mov edx, r10d
movsxd r8, r13d
lea r9d, [r12 - 1]
movsxd r10, r9d
lea rdi, [r9 + r9]
mov r11, rdi
mov qword [rsp + 0x60], rdi
lea r11d, [rdi + 1]
mov qword [rsp + 0x48], r11
lea r11d, [r12 - 2]
mov dword [rsp + 0x28], r11d
mov r14, rax
sub r14, rdx
neg rdx
lea r11, [r10 + r10*2]
add r11, 2
mov qword [rsp + 0x20], r11
inc r10
lea r11d, [r12*4 - 4]
mov dword [rsp + 0x38], r11d
xor r13d, r13d
add rdx, rax
xor ebx, ebx
jmp 0x1400988a9
inc rbx
add r13d, dword [rsp + 0x40]
cmp rbx, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0x80]
je 0x14009638e
mov r12b, 1
cmp dword [rsp + 0x258], 0
jne 0x1400988c2
lea rax, [0x14011a6e0]
movzx r12d, byte [r8 + rax]
mov r15, qword [rsi + 0x18]
mov eax, dword [rsp + 0x40]
mov r11d, eax
imul r11d, ebx
lea rdi, [r15 + r11]
lea rbp, [rdi + rdx]
mov r13d, r13d
mov eax, dword [rsp + 0x250]
cmp eax, 4
je 0x140098b40
cmp eax, 2
je 0x140098a8b
cmp eax, 1
jne 0x140098b9e
mov esi, dword [rsp + 0x44]
mov eax, esi
cmp esi, 8
jl 0x1400989cc
lea rbp, [r15 + r14]
mov eax, dword [rsp + 0x44]
mov edi, eax
movzx eax, byte [rbp + r13]
sar al, 7
and al, r12b
mov byte [r15 + r13], al
movzx eax, byte [rbp + r13]
add al, al
sar al, 7
and al, r12b
mov byte [r15 + r13 + 1], al
movzx eax, byte [rbp + r13]
shl al, 2
sar al, 7
and al, r12b
mov byte [r15 + r13 + 2], al
movzx eax, byte [rbp + r13]
shl al, 3
sar al, 7
and al, r12b
mov byte [r15 + r13 + 3], al
movzx eax, byte [rbp + r13]
shl al, 4
sar al, 7
and al, r12b
mov byte [r15 + r13 + 4], al
movzx eax, byte [rbp + r13]
shl al, 5
sar al, 7
and al, r12b
mov byte [r15 + r13 + 5], al
movzx eax, byte [rbp + r13]
shl al, 6
sar al, 7
and al, r12b
mov byte [r15 + r13 + 6], al
movzx eax, byte [rbp + r13]
and al, 1
neg al
and al, r12b
mov byte [r15 + r13 + 7], al
lea eax, [rdi - 8]
inc rbp
add r15, 8
cmp edi, 0xf
ja 0x140098915
add rbp, r13
add r15, r13
mov rdi, r15
test eax, eax
jle 0x140098b9e
movzx esi, byte [rbp]
sar sil, 7
and sil, r12b
mov byte [rdi], sil
cmp eax, 1
je 0x140098b9e
movzx esi, byte [rbp]
add sil, sil
sar sil, 7
and sil, r12b
mov byte [rdi + 1], sil
cmp eax, 3
jb 0x140098b9e
movzx esi, byte [rbp]
shl sil, 2
sar sil, 7
and sil, r12b
mov byte [rdi + 2], sil
cmp eax, 3
je 0x140098b9e
movzx esi, byte [rbp]
shl sil, 3
sar sil, 7
and sil, r12b
mov byte [rdi + 3], sil
cmp eax, 5
jb 0x140098b9e
movzx esi, byte [rbp]
shl sil, 4
sar sil, 7
and sil, r12b
mov byte [rdi + 4], sil
cmp eax, 5
je 0x140098b9e
movzx esi, byte [rbp]
shl sil, 5
sar sil, 7
and sil, r12b
mov byte [rdi + 5], sil
cmp eax, 7
jb 0x140098b9e
movzx eax, byte [rbp]
shl al, 6
sar al, 7
and al, r12b
mov byte [rdi + 6], al
jmp 0x140098b9e
mov eax, dword [rsp + 0x44]
mov esi, eax
cmp eax, 4
jl 0x140098afe
lea rbp, [r15 + r14]
mov esi, dword [rsp + 0x44]
mov edi, esi
movzx eax, byte [rbp + r13]
shr al, 6
mul r12b
mov byte [r15 + r13], al
movzx eax, byte [rbp + r13]
shr al, 4
and al, 3
mul r12b
mov byte [r15 + r13 + 1], al
movzx eax, byte [rbp + r13]
shr al, 2
and al, 3
mul r12b
mov byte [r15 + r13 + 2], al
movzx eax, byte [rbp + r13]
and al, 3
mul r12b
mov byte [r15 + r13 + 3], al
lea esi, [rdi - 4]
inc rbp
add r15, 4
cmp edi, 7
ja 0x140098a9e
add rbp, r13
add r15, r13
mov rdi, r15
test esi, esi
jle 0x140098b9e
movzx eax, byte [rbp]
shr al, 6
mul r12b
mov byte [rdi], al
cmp esi, 1
je 0x140098b9e
movzx eax, byte [rbp]
shr al, 4
and al, 3
mul r12b
mov byte [rdi + 1], al
cmp esi, 3
jb 0x140098b9e
movzx eax, byte [rbp]
shr al, 2
and al, 3
mul r12b
mov byte [rdi + 2], al
jmp 0x140098b9e
mov esi, dword [rsp + 0x44]
mov eax, esi
cmp esi, 2
jl 0x140098b8d
lea rbp, [r15 + r14]
mov eax, dword [rsp + 0x44]
mov esi, eax
movzx eax, byte [rbp + r13]
shr al, 4
mul r12b
mov byte [r15 + r13], al
movzx eax, byte [rbp + r13]
and al, 0xf
mul r12b
mov byte [r15 + r13 + 1], al
lea eax, [rsi - 2]
inc rbp
add r15, 2
cmp esi, 3
ja 0x140098b53
add rbp, r13
add r15, r13
mov rdi, r15
cmp eax, 1
jne 0x140098b9e
movzx eax, byte [rbp]
shr al, 4
mul r12b
mov byte [rdi], al
mov rax, qword [rsp + 0x78]
cmp eax, dword [rsp + 0x54]
je 0x14009888b
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x18]
add r11, rax
cmp dword [rsp + 0x78], 1
jne 0x140098c51
test r9d, r9d
js 0x14009888b
mov eax, r9d
mov esi, dword [rsp + 0x240]
test sil, 1
je 0x140098bfc
mov rax, qword [rsp + 0x48]
mov byte [r11 + rax], 0xff
movzx eax, byte [r11 + r9]
mov rsi, qword [rsp + 0x60]
mov byte [r11 + rsi], al
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x9c], 0
je 0x14009888b
lea esi, [rax*2 - 2]
lea edi, [rsi + 2]
lea r15d, [rsi + 3]
mov byte [r11 + r15], 0xff
mov r15d, eax
movzx ebp, byte [r11 + r15]
mov byte [r11 + rdi], bpl
lea edi, [rax - 1]
lea r15d, [rsi + 1]
mov byte [r11 + r15], 0xff
movzx edi, byte [r11 + rdi]
mov r15d, esi
mov byte [r11 + r15], dil
add eax, 0xfffffffe
add esi, 0xfffffffc
cmp eax, 0xffffffff
jne 0x140098c11
jmp 0x14009888b
test r9d, r9d
js 0x14009888b
add rax, qword [rsp + 0x20]
add rax, r13
mov esi, dword [rsp + 0x38]
mov rdi, r10
lea ebp, [rsi + 3]
movsxd r15, ebp
mov byte [r11 + r15], 0xff
movzx ebp, byte [rax]
lea r15d, [rsi + 2]
movsxd r15, r15d
mov byte [r11 + r15], bpl
movzx ebp, byte [rax - 1]
lea r15d, [rsi + 1]
movsxd r15, r15d
mov byte [r11 + r15], bpl
movzx ebp, byte [rax - 2]
movsxd rsi, esi
mov byte [r11 + rsi], bpl
add rax, 0xfffffffffffffffd
add esi, 0xfffffffc
dec rdi
jg 0x140098c69
jmp 0x14009888b
lea r8, str.invalid_width
jmp 0x140096372