Function at 0x1400943e0
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, 0x238
movdqa xmmword [rsp + 0x220], xmm15
movdqa xmmword [rsp + 0x210], xmm14
movdqa xmmword [rsp + 0x200], xmm13
movdqa xmmword [rsp + 0x1f0], xmm12
movdqa xmmword [rsp + 0x1e0], xmm11
movdqa xmmword [rsp + 0x1d0], xmm10
movdqa xmmword [rsp + 0x1c0], xmm9
movdqa xmmword [rsp + 0x1b0], xmm8
movdqa xmmword [rsp + 0x1a0], xmm7
movdqa xmmword [rsp + 0x190], xmm6
mov ebx, r8d
mov r12, rcx
mov edi, dword [rsp + 0x2b0]
mov r8d, dword [rsp + 0x2a8]
mov r13d, dword [rsp + 0x2a0]
xor esi, esi
cmp edi, 0x10
sete cl
mov eax, r8d
or eax, r13d
js 0x1400944d9
mov ebp, r9d
mov r14, rdx
mov rax, qword [r12]
movsxd r15, dword [rax + 8]
test r8d, r8d
je 0x1400944a4
mov eax, 0x7fffffff
xor edx, edx
div r8d
cmp eax, r13d
jl 0x1400944d9
mov sil, cl
inc esi
mov r9d, esi
imul r9d, ebp
mov ecx, r8d
imul ecx, r13d
mov eax, r9d
or eax, ecx
js 0x1400944d9
test r9d, r9d
je 0x140094573
mov eax, 0x7fffffff
xor edx, edx
div r9d
cmp eax, ecx
jge 0x140094573
mov qword [r12 + 0x18], 0
lea r8, str.outofmem
mov eax, dword [0x14020d230]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 8], r8
xor ecx, ecx
mov eax, ecx
movaps xmm6, xmmword [rsp + 0x190]
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm8, xmmword [rsp + 0x1b0]
movaps xmm9, xmmword [rsp + 0x1c0]
movaps xmm10, xmmword [rsp + 0x1d0]
movaps xmm11, xmmword [rsp + 0x1e0]
movaps xmm12, xmmword [rsp + 0x1f0]
movaps xmm13, xmmword [rsp + 0x200]
movaps xmm14, xmmword [rsp + 0x210]
movaps xmm15, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x4c], r9d
imul ecx, r9d
movsxd rcx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r12 + 0x18], rax
test rax, rax
je 0x1400944e2
lea r8, str.too_large
mov eax, r15d
or eax, r13d
js 0x1400944e9
test r13d, r13d
je 0x1400945be
mov eax, 0x7fffffff
xor edx, edx
div r13d
cmp eax, r15d
jl 0x1400944e9
mov ecx, r15d
imul ecx, r13d
mov eax, ecx
or eax, edi
js 0x1400944e9
test edi, edi
je 0x140094600
mov eax, 0x7fffffff
xor edx, edx
div edi
cmp eax, ecx
mov edx, dword [rsp + 0x2a8]
jl 0x1400944e9
mov r10d, ecx
imul r10d, edi
cmp r10d, 0x7ffffff8
jle 0x14009460a
jmp 0x1400944e9
xor r10d, r10d
mov edx, dword [rsp + 0x2a8]
add r10d, 7
shr r10d, 3
lea eax, [r10 + 1]
imul eax, edx
cmp eax, ebx
jbe 0x140094629
lea r8, str.not_enough_pixels
jmp 0x1400944e9
mov eax, r13d
imul eax, ebp
mov qword [rsp + 0xe8], rax
test edx, edx
je 0x140097105
mov dword [rsp + 0x48], ecx
cmp edi, 8
setl bl
cmp r15d, ebp
sete al
movzx r9d, byte [r14]
lea r8, str.invalid_filter
cmp r9b, 4
ja 0x1400944e9
mov ecx, esi
mov r8, qword [rsp + 0xe8]
imul ecx, r8d
mov r11d, r15d
imul r11d, esi
mov dword [rsp + 0x28], r11d
sub r8d, r10d
mov qword [rsp + 0x180], r8
mov dword [rsp + 0x40], ecx
mov ecx, ecx
mov r8, rcx
neg r8
mov qword [rsp + 0xa0], r8
movsxd r8, dword [rsp + 0x4c]
or bl, al
mov byte [rsp + 0x37], bl
mov eax, r13d
and eax, 7
mov dword [rsp + 0xc4], eax
mov eax, r13d
and eax, 0xfffffff8
mov dword [rsp + 0xfc], eax
mov eax, 0x10
mov r11d, 0x10
sub r11, r8
mov rbx, r8
mov qword [rsp + 0xc8], r11
neg r8
mov r11, r8
mov qword [rsp + 0xa8], r8
sub r8, rcx
mov qword [rsp + 0x160], r8
mov r8d, 3
sub r8, rcx
mov qword [rsp + 0x158], r8
sub rax, rcx
mov qword [rsp + 0x120], rax
mov eax, 1
sub rax, rcx
mov qword [rsp + 0x148], rax
pxor xmm13, xmm13
movdqa xmm14, xmmword [0x14010cbf0]
movdqa xmm15, xmmword [0x14011a5b0]
movsxd rax, ebp
mov qword [rsp + 0x188], rax
lea eax, [r13 - 1]
mov dword [rsp + 0x44], eax
mov eax, edx
mov qword [rsp + 0xf0], rax
mov rax, qword [r12 + 0x18]
mov qword [rsp + 0x150], rcx
mov rdx, rbx
movzx ebx, byte [rsp + 0x37]
mov qword [rsp + 0x38], rdx
add rcx, rdx
mov qword [rsp + 0x178], rcx
xor edx, edx
mov ecx, r13d
mov qword [rsp + 0x138], rcx
xor ecx, ecx
mov qword [rsp + 0xd0], r12
mov dword [rsp + 0x5c], ebp
mov dword [rsp + 0x8c], esi
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0x130], r10
cmp edi, 7
jg 0x1400947d1
cmp r10d, r13d
ja 0x140097181
add rax, qword [rsp + 0x180]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x138], r10
mov qword [rsp + 0xb8], rcx
test rcx, rcx
lea r12, [0x140097190]
jne 0x1400947f5
movzx ecx, r9b
lea r8, [0x14011a7fc]
movzx r9d, byte [rcx + r8]
lea r13, [r14 + 1]
mov rcx, qword [rsp + 0xa0]
lea r8, [rax + rcx]
movzx r11d, r9b
cmp dword [rsp + 0x28], 0
jle 0x14009485c
mov ecx, dword [rsp + 0x28]
xor r10d, r10d
jmp 0x140094832
movzx esi, byte [r13 + r10]
mov byte [rax + r10], sil
inc r10
cmp rcx, r10
je 0x14009485c
cmp r9b, 6
ja case.default.0x14009483f
movsxd rsi, dword [r12 + r11*4]
add rsi, r12
jmp rsi
movzx esi, byte [r8 + r10]
add sil, byte [r13 + r10]
jmp 0x140094826
movzx esi, byte [r8 + r10]
shr sil, 1
add sil, byte [r13 + r10]
jmp 0x140094826
cmp edi, 8
jne 0x140094878
cmp r15d, ebp
je 0x14009486b
mov byte [rax + r15], 0xff
add r13, r15
mov rbp, qword [rsp + 0x188]
jmp 0x1400948a9
cmp edi, 0x10
jne 0x14009489d
movsxd rcx, dword [rsp + 0x28]
cmp r15d, ebp
je 0x140094890
mov byte [rax + rcx], 0xff
mov byte [rcx + rax + 1], 0xff
add r13, rcx
mov r15, qword [rsp + 0x38]
mov rbp, r15
jmp 0x1400948ae
add r14, 2
mov ebp, 1
mov r13, r14
mov r15, qword [rsp + 0x38]
lea rcx, [rax + rbp]
add r8, rbp
test bl, bl
mov qword [rsp + 0x50], r13
je 0x1400948fd
mov rdx, qword [rsp + 0x138]
lea r10d, [rdx - 1]
imul r10d, dword [rsp + 0x28]
movsxd r14, r10d
cmp r9b, 6
ja case.default.0x1400948eb
lea r9, [0x1400971c8]
movsxd rdx, dword [r9 + r11*4]
add rdx, r9
jmp rdx
mov rdx, r13
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
jmp case.default.0x1400948eb
cmp r9b, 6
ja case.default.0x140094915
lea r10, [0x1400971ac]
movsxd r9, dword [r10 + r11*4]
add r9, r10
jmp r9
mov r12d, dword [rsp + 0x44]
test r12d, r12d
je case.default.0x140094915
mov r9d, dword [rsp + 0x28]
movsxd r8, r9d
mov r9d, r9d
add rax, rbp
mov r10d, r9d
and r10d, 0xffffffe0
mov r11d, r9d
and r11d, 0xfffffff8
mov esi, r9d
and esi, 3
xor edi, edi
mov r14, r13
jmp 0x140094966
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, r15
inc rdi
dec r12d
je 0x140095feb
cmp dword [rsp + 0x28], 0
jle 0x14009494f
cmp dword [rsp + 0x28], 8
jb 0x1400949af
mov rbx, rdi
imul rbx, r8
add rbx, qword [rsp + 0x50]
mov r15, rdi
imul r15, qword [rsp + 0x38]
add r15, rax
sub r15, rbx
mov r13d, 0
cmp r15, 0x20
mov r15, qword [rsp + 0x38]
jb 0x140094a22
cmp dword [rsp + 0x28], 0x20
jae 0x1400949b4
xor ebx, ebx
jmp 0x140094a00
xor r13d, r13d
jmp 0x140094a22
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r14 + rbx]
movdqu xmm1, xmmword [r14 + rbx + 0x10]
movdqu xmmword [rcx + rbx], xmm0
movdqu xmmword [rcx + rbx + 0x10], xmm1
add rbx, 0x20
cmp r10, rbx
jne 0x1400949c0
cmp r10, r9
je 0x14009494f
mov rbx, r10
mov r13, r10
test r9b, 0x18
je 0x140094a22
nop word cs:[rax + rax]
mov r15, qword [r14 + rbx]
mov qword [rcx + rbx], r15
add rbx, 8
cmp r11, rbx
jne 0x140094a00
mov r13, r11
cmp r11, r9
mov r15, qword [rsp + 0x38]
je 0x14009494f
mov r15, r13
not r15
add r15, r9
test rsi, rsi
je 0x140094a51
mov rbx, rsi
nop word cs:[rax + rax]
movzx ebp, byte [r14 + r13]
mov byte [rcx + r13], bpl
inc r13
dec rbx
jne 0x140094a40
cmp r15, 3
mov r15, qword [rsp + 0x38]
jb 0x14009494f
movzx ebx, byte [r14 + r13]
mov byte [rcx + r13], bl
movzx ebx, byte [r14 + r13 + 1]
mov byte [rcx + r13 + 1], bl
movzx ebx, byte [r14 + r13 + 2]
mov byte [rcx + r13 + 2], bl
movzx ebx, byte [r14 + r13 + 3]
mov byte [rcx + r13 + 3], bl
add r13, 4
cmp r9, r13
jne 0x140094a60
jmp 0x14009494f
test r10d, r10d
jle case.default.0x1400948eb
movsxd r8, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x1400961fe
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140094ad9
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
add r10b, byte [r13 + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400948eb
mov rcx, rbp
sub rcx, r8
add rcx, rax
inc rcx
add rax, rbp
inc rax
movzx r8d, byte [rcx + r10 - 1]
add r8b, byte [r13 + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
add r8b, byte [r13 + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x140094af7
jmp case.default.0x1400948eb
test r10d, r10d
jle case.default.0x1400948eb
mov edx, r10d
cmp r10d, 8
jae 0x140096167
xor r9d, r9d
mov rcx, r9
not rcx
add rcx, rdx
mov r8, rdx
and r8, 3
je 0x140094b88
mov r10, r9
neg r10
lea r11, [r9 + rbp]
add r11, rax
mov rsi, qword [rsp + 0xa0]
add rsi, r11
add r9, r13
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 0x140094b6b
neg r10
mov r9, r10
cmp rcx, 3
jb case.default.0x1400948eb
sub rdx, r9
add rbp, r9
add rax, rbp
add rax, 3
lea rcx, [r9 + r13]
add rcx, 3
mov r9, qword [rsp + 0xa0]
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 0x140094ba7
jmp case.default.0x1400948eb
test r10d, r10d
jle case.default.0x1400948eb
movsxd r9, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x140096238
xor r11d, r11d
mov r10, r11
test dl, 1
je 0x140094c43
movzx r8d, byte [r8 + r11]
mov r10, r11
sub r10, r9
movzx r10d, byte [rcx + r10]
add r10d, r8d
shr r10d, 1
add r10b, byte [r13 + r11]
mov byte [rcx + r11], r10b
mov r10, r11
or r10, 1
not r11
add r11, rdx
je case.default.0x1400948eb
mov rcx, rbp
sub rcx, r9
add rcx, rax
inc rcx
lea r8, [rax + rbp]
inc r8
add rax, qword [rsp + 0x148]
add rax, rbp
lea r9, [r13 + 1]
movzx r11d, byte [rax + r10 - 1]
movzx esi, byte [rcx + r10 - 1]
add esi, r11d
shr esi, 1
add sil, byte [r9 + r10 - 1]
mov byte [r8 + r10 - 1], sil
movzx r11d, byte [rax + r10]
movzx esi, byte [rcx + r10]
add esi, r11d
shr esi, 1
add sil, byte [r9 + r10]
mov byte [r8 + r10], sil
add rdx, 0xfffffffffffffffe
add rcx, 2
add r8, 2
add rax, 2
add r9, 2
cmp r10, rdx
jne 0x140094c71
jmp case.default.0x1400948eb
test r10d, r10d
jle case.default.0x1400948eb
movsxd rbx, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x1400961a4
xor r9d, r9d
sub rbp, rbx
add rax, rbp
mov r10, qword [rsp + 0xa0]
add r10, rax
mov r11, r13
jmp 0x140094d29
cmp r15d, r12d
cmova esi, edi
cmp r15d, ebx
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 r13, qword [rsp + 0x50]
je case.default.0x1400948eb
movzx edi, byte [r10 + r9]
movzx ebp, byte [r8 + r9]
movzx esi, byte [rax + r9]
mov ebx, ebp
sub ebx, edi
lea r13d, [rbx + rsi]
mov r15d, ebx
neg r15d
cmovs r15d, ebx
mov r12d, r13d
sub r12d, ebp
mov ebx, r12d
neg ebx
cmovs ebx, r12d
sub r13d, edi
mov r12d, r13d
neg r12d
cmovs r12d, r13d
cmp ebx, r12d
ja 0x140094cf5
mov edi, ebp
jmp 0x140094cf5
test r10d, r10d
jle case.default.0x1400948eb
movsxd r8, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x14009627d
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140094db3
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
shr r10b, 1
add r10b, byte [r13 + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400948eb
mov rcx, rbp
sub rcx, r8
add rcx, rax
inc rcx
add rax, rbp
inc rax
movzx r8d, byte [rcx + r10 - 1]
shr r8b, 1
add r8b, byte [r13 + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
shr r8b, 1
add r8b, byte [r13 + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x140094dd1
jmp case.default.0x1400948eb
test r10d, r10d
jle case.default.0x1400948eb
movsxd r8, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x1400962b7
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140094e3d
mov r10, r9
sub r10, r8
movzx r10d, byte [rcx + r10]
add r10b, byte [r13 + r9]
mov byte [rcx + r9], r10b
mov r10, r9
or r10, 1
not r9
add r9, rdx
je case.default.0x1400948eb
mov rcx, rbp
sub rcx, r8
add rcx, rax
inc rcx
add rax, rbp
inc rax
movzx r8d, byte [rcx + r10 - 1]
add r8b, byte [r13 + r10]
mov byte [rax + r10 - 1], r8b
movzx r8d, byte [rcx + r10]
add r8b, byte [r13 + r10 + 1]
mov byte [rax + r10], r8b
add r10, 2
cmp rdx, r10
jne 0x140094e57
add r13, r14
mov r14, r13
mov r12, qword [rsp + 0xd0]
mov edi, dword [rsp + 0x2b0]
mov ebp, dword [rsp + 0x5c]
mov r11d, dword [rsp + 0x8c]
mov r15, qword [rsp + 0xb0]
mov r13d, dword [rsp + 0x2a0]
movzx ebx, byte [rsp + 0x37]
pxor xmm13, xmm13
movdqa xmm14, xmmword [0x14010cbf0]
movdqa xmm15, xmmword [0x14011a5b0]
jmp 0x1400960fe
mov esi, dword [rsp + 0x44]
test esi, esi
je case.default.0x140094915
mov r9d, dword [rsp + 0x28]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + rbp]
mov qword [rsp + 0x70], r10
mov r11d, r9d
and r11d, 0xffffffe0
mov edi, r9d
and edi, 0xfffffff8
mov r10, r9
neg r10
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0xc8]
lea r12, [rax + r10]
add r12, rbp
add rax, qword [rsp + 0xa8]
add rax, rbp
mov r14, r13
xor r13d, r13d
mov r10d, esi
jmp 0x140094f4a
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, r15
inc r13
add r12, r15
add rax, r15
dec r10d
je 0x140095feb
cmp dword [rsp + 0x28], 0
jle 0x140094f2d
cmp dword [rsp + 0x28], 8
jae 0x140094fb7
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140094f7b
mov rbx, rsi
sub rbx, r15
movzx ebx, byte [rcx + rbx]
add bl, byte [r14 + rsi]
mov byte [rcx + rsi], bl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x140094f2d
nop word cs:[rax + rax]
movzx ebx, byte [rax + rbp]
add bl, byte [r14 + rbp]
mov byte [rcx + rbp], bl
movzx ebx, byte [rax + rbp + 1]
add bl, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], bl
add rbp, 2
cmp r9, rbp
jne 0x140094f90
jmp 0x140094f2d
mov rsi, r13
imul rsi, r15
add rsi, qword [rsp + 0x70]
mov rbx, r13
imul rbx, r8
add rbx, qword [rsp + 0x50]
sub rsi, rbx
cmp rsi, 0x20
jb 0x140094f58
jb 0x140094f58
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140094f5a
cmp dword [rsp + 0x28], 0x20
jae 0x140094ff9
xor ebx, ebx
jmp 0x14009504a
xor esi, esi
movdqu xmm0, xmmword [r14 + rsi]
movdqu xmm1, xmmword [r14 + rsi + 0x10]
movdqu xmm2, xmmword [r12 + rsi - 0x10]
paddb xmm2, xmm0
movdqu xmm0, xmmword [r12 + rsi]
paddb xmm0, xmm1
movdqu xmmword [rcx + rsi], xmm2
movdqu xmmword [rcx + rsi + 0x10], xmm0
add rsi, 0x20
cmp r11, rsi
jne 0x140094ffb
cmp r11, r9
je 0x140094f2d
mov rbx, r11
mov rsi, r11
test r9b, 0x18
je 0x140094f5a
movq xmm0, qword [r14 + rbx]
movq xmm1, qword [rax + rbx]
paddb xmm1, xmm0
movq qword [rcx + rbx], xmm1
add rbx, 8
cmp rdi, rbx
jne 0x14009504a
mov rsi, rdi
cmp rdi, r9
je 0x140094f2d
jmp 0x140094f5a
mov r11d, dword [rsp + 0x44]
test r11d, r11d
je case.default.0x140094915
mov r9d, dword [rsp + 0x28]
movsxd rsi, r9d
mov r10d, r9d
lea r9, [rax + rbp]
mov qword [rsp + 0x100], r9
mov r9d, r10d
and r9d, 0xffffffe0
mov qword [rsp + 0xe0], r9
mov r9d, r10d
and r9d, 0xfffffff8
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0x90], r10
and r10d, 3
lea r9, [rax + rbp]
add r9, 3
mov qword [rsp + 0x70], r9
add rax, qword [rsp + 0x158]
add rax, rbp
lea rdi, [r13 + 3]
xor r12d, r12d
mov r14, r13
mov qword [rsp + 0x110], rsi
jmp 0x140095121
mov byte [rcx + rsi], 0xff
add r14, rsi
mov r9, qword [rsp + 0x38]
add rcx, r9
add r8, r9
inc r12
add qword [rsp + 0x70], r9
add rax, r9
add rdi, rsi
mov r11d, dword [rsp + 0x60]
dec r11d
je 0x140095feb
mov dword [rsp + 0x60], r11d
cmp dword [rsp + 0x28], 0
jle 0x1400950f3
cmp dword [rsp + 0x28], 8
jae 0x14009520d
xor r13d, r13d
mov r9, r13
not r9
add r9, qword [rsp + 0x90]
test r10, r10
je 0x140095198
mov r15, r13
neg r15
lea rbx, [rcx + r13]
lea rbp, [r8 + r13]
add r13, r14
xor r11d, r11d
nop word cs:[rax + rax]
movzx esi, byte [rbp + r11]
add sil, byte [r13 + r11]
mov byte [rbx + r11], sil
inc r11
dec r15
cmp r10, r11
jne 0x140095170
neg r15
mov r13, r15
mov rsi, qword [rsp + 0x110]
cmp r9, 3
jb 0x1400950f3
mov r9, qword [rsp + 0x90]
sub r9, r13
mov r11, qword [rsp + 0x70]
lea r15, [r11 + r13]
lea rbp, [rax + r13]
add r13, rdi
xor ebx, ebx
nop
movzx r11d, byte [rbp + rbx - 3]
add r11b, byte [r13 + rbx - 3]
mov byte [r15 + rbx - 3], r11b
movzx r11d, byte [rbp + rbx - 2]
add r11b, byte [r13 + rbx - 2]
mov byte [r15 + rbx - 2], r11b
movzx r11d, byte [rbp + rbx - 1]
add r11b, byte [r13 + rbx - 1]
mov byte [r15 + rbx - 1], r11b
movzx r11d, byte [rbp + rbx]
add r11b, byte [r13 + rbx]
mov byte [r15 + rbx], r11b
add rbx, 4
cmp r9, rbx
jne 0x1400951c0
jmp 0x1400950f3
mov r9, r12
imul r9, qword [rsp + 0x38]
add r9, qword [rsp + 0x100]
mov r11, r12
imul r11, rsi
add r11, qword [rsp + 0x50]
sub r9, r11
cmp r9, 0x20
jb 0x140095138
jb 0x140095138
mov r13d, 0
cmp dword [rsp + 0x40], 0x20
jb 0x14009513b
cmp dword [rsp + 0x28], 0x20
jae 0x14009525a
xor r9d, r9d
jmp 0x1400952c4
xor r9d, r9d
mov r11, qword [rsp + 0xe0]
movdqu xmm0, xmmword [r14 + r9]
movdqu xmm1, xmmword [r14 + r9 + 0x10]
movdqu xmm2, xmmword [r8 + r9]
paddb xmm2, xmm0
movdqu xmm0, xmmword [r8 + r9 + 0x10]
paddb xmm0, xmm1
movdqu xmmword [rcx + r9], xmm2
movdqu xmmword [rcx + r9 + 0x10], xmm0
add r9, 0x20
cmp r11, r9
jne 0x140095265
cmp r11, qword [rsp + 0x90]
je 0x1400950f3
mov r13, qword [rsp + 0xe0]
mov r9, r13
test byte [rsp + 0x90], 0x18
je 0x14009513b
mov r11, qword [rsp + 0xd8]
movq xmm0, qword [r14 + r9]
movq xmm1, qword [r8 + r9]
paddb xmm1, xmm0
movq qword [rcx + r9], xmm1
add r9, 8
cmp r11, r9
jne 0x1400952cc
mov r13, r11
cmp r11, qword [rsp + 0x90]
je 0x1400950f3
jmp 0x14009513b
mov r13d, dword [rsp + 0x44]
test r13d, r13d
je 0x14009615d
mov r9d, dword [rsp + 0x28]
movsxd rsi, r9d
mov r10d, r9d
lea r9, [rax + rbp]
mov qword [rsp + 0x70], r9
mov r9d, r10d
and r9d, 0xffffffe0
mov qword [rsp + 0x90], r9
mov r11d, r10d
and r11d, 0xfffffff8
mov r9, r10
neg r9
mov qword [rsp + 0x60], r9
mov r9, qword [rsp + 0xc8]
add r9, rax
add r9, rbp
add rax, qword [rsp + 0xa8]
add rax, rbp
mov rbp, rsi
xor r12d, r12d
mov r14, qword [rsp + 0x50]
jmp 0x140095389
mov byte [rcx + rbp], 0xff
add r14, rbp
add rcx, r15
add r8, r15
inc r12
add r9, r15
add rax, r15
dec r13d
je 0x140095feb
cmp dword [rsp + 0x28], 0
jle 0x14009536a
cmp dword [rsp + 0x28], 8
jae 0x14009540a
xor esi, esi
mov rdi, rsi
test r10b, 1
je 0x1400953c3
movzx edi, byte [r8 + rsi]
mov rbx, rsi
sub rbx, r15
movzx ebx, byte [rcx + rbx]
add ebx, edi
shr ebx, 1
add bl, byte [r14 + rsi]
mov byte [rcx + rsi], bl
mov rdi, rsi
or rdi, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x14009536a
nop dword [rax]
movzx esi, byte [r8 + rdi]
movzx ebx, byte [rax + rdi]
add ebx, esi
shr ebx, 1
add bl, byte [r14 + rdi]
mov byte [rcx + rdi], bl
movzx esi, byte [r8 + rdi + 1]
movzx ebx, byte [rax + rdi + 1]
add ebx, esi
shr ebx, 1
add bl, byte [r14 + rdi + 1]
mov byte [rcx + rdi + 1], bl
add rdi, 2
cmp r10, rdi
jne 0x1400953d0
jmp 0x14009536a
mov rsi, r12
imul rsi, r15
add rsi, qword [rsp + 0x70]
mov rdi, r12
imul rdi, rbp
add rdi, qword [rsp + 0x50]
sub rsi, rdi
cmp rsi, 0x20
jb 0x140095397
jb 0x140095397
cmp dword [rsp + 0x40], 0x20
jb 0x140095397
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140095399
cmp dword [rsp + 0x28], 0x20
jae 0x14009545e
xor edi, edi
jmp 0x140095535
xor esi, esi
mov rdi, qword [rsp + 0x90]
movdqu xmm1, xmmword [r14 + rsi]
movdqu xmm0, xmmword [r14 + rsi + 0x10]
movdqu xmm4, xmmword [r8 + rsi]
movdqu xmm5, xmmword [r8 + rsi + 0x10]
movdqa xmm6, xmm4
punpckhbw xmm6, xmm13
punpcklbw xmm4, xmm13
movdqa xmm7, xmm5
punpckhbw xmm7, xmm13
punpcklbw xmm5, xmm13
movdqu xmm2, xmmword [r9 + rsi - 0x10]
movdqu xmm3, xmmword [r9 + rsi]
movdqa xmm8, xmm2
punpckhbw xmm8, xmm13
paddw xmm8, xmm6
punpcklbw xmm2, xmm13
paddw xmm2, xmm4
movdqa xmm4, xmm3
punpckhbw xmm4, xmm13
paddw xmm4, xmm7
punpcklbw xmm3, xmm13
paddw xmm3, xmm5
psrlw xmm8, 1
psrlw xmm2, 1
packuswb xmm2, xmm8
paddb xmm2, xmm1
psrlw xmm4, 1
psrlw xmm3, 1
packuswb xmm3, xmm4
paddb xmm3, xmm0
movdqu xmmword [rcx + rsi], xmm2
movdqu xmmword [rcx + rsi + 0x10], xmm3
add rsi, 0x20
cmp rdi, rsi
jne 0x140095468
cmp rdi, r10
je 0x14009536a
mov rsi, qword [rsp + 0x90]
mov rdi, rsi
test r10b, 0x18
je 0x140095399
movq xmm0, qword [r14 + rdi]
movq xmm1, qword [r8 + rdi]
punpcklbw xmm1, xmm13
movq xmm2, qword [rax + rdi]
punpcklbw xmm2, xmm13
paddw xmm2, xmm1
psrlw xmm2, 1
packuswb xmm2, xmm2
paddb xmm2, xmm0
movq qword [rcx + rdi], xmm2
add rdi, 8
cmp r11, rdi
jne 0x140095535
mov rsi, r11
cmp r11, r10
je 0x14009536a
jmp 0x140095399
mov r10d, dword [rsp + 0x44]
test r10d, r10d
je case.default.0x140094915
mov r9d, dword [rsp + 0x28]
movsxd r11, r9d
mov qword [rsp + 0xd8], r11
mov r11d, r9d
lea r9, [rax + rbp]
mov qword [rsp + 0x170], r9
mov r9d, r11d
and r9d, 0xfffffff0
mov qword [rsp + 0x128], r9
mov r9d, r11d
and r9d, 0xfffffff8
mov qword [rsp + 0x168], r9
mov r9, qword [rsp + 0xa8]
add r9, rax
add r9, rbp
add rax, qword [rsp + 0x160]
add rax, rbp
xor esi, esi
mov qword [rsp + 0x140], rsi
mov r14, r13
jmp 0x14009562d
mov r10, qword [rsp + 0xd8]
mov byte [rcx + r10], 0xff
add r14, r10
mov r10, qword [rsp + 0x38]
add rcx, r10
add r8, r10
inc qword [rsp + 0x140]
add r9, r10
add rax, r10
mov r10d, dword [rsp + 0xe0]
dec r10d
je 0x140095feb
mov dword [rsp + 0xe0], r10d
cmp dword [rsp + 0x28], 0
jle 0x1400955f3
cmp dword [rsp + 0x28], 8
jae 0x14009564a
xor edi, edi
jmp 0x140095c20
mov rdi, qword [rsp + 0x140]
mov rsi, rdi
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x170]
imul rdi, qword [rsp + 0xd8]
add rdi, qword [rsp + 0x50]
sub rsi, rdi
cmp rsi, 0x10
jb 0x140095bf5
jb 0x140095bf9
cmp qword [rsp + 0x178], 0x10
jb 0x140095bf1
cmp dword [rsp + 0x40], 0x10
jb 0x140095bed
mov edi, 0
cmp dword [rsp + 0x4c], 0x10
jb 0x140095c20
cmp dword [rsp + 0x28], 0x10
jae 0x140095875
xor esi, esi
mov r10, qword [rsp + 0x168]
movq xmm0, qword [r14 + rsi]
movq xmm1, qword [rax + rsi]
movdqa xmm11, xmm1
punpcklbw xmm11, xmm13
movdqa xmm10, xmm11
punpckhwd xmm10, xmm13
punpcklwd xmm11, xmm13
movq xmm2, qword [r8 + rsi]
movdqa xmm9, xmm2
punpcklbw xmm9, xmm13
movdqa xmm12, xmm9
punpckhwd xmm12, xmm13
punpcklwd xmm9, xmm13
movq xmm3, qword [r9 + rsi]
movdqa xmm5, xmm3
punpcklbw xmm5, xmm13
movdqa xmm6, xmm5
punpcklwd xmm6, xmm13
punpckhwd xmm5, xmm13
movdqa xmm4, xmm9
psubd xmm4, xmm11
movdqa xmm8, xmm12
psubd xmm8, xmm10
paddd xmm5, xmm8
paddd xmm6, xmm4
movdqa xmm7, xmm8
psrad xmm7, 0x1f
pxor xmm8, xmm7
psubd xmm8, xmm7
movdqa xmm7, xmm4
psrad xmm7, 0x1f
pxor xmm4, xmm7
psubd xmm4, xmm7
movdqa xmm7, xmm6
psubd xmm7, xmm9
movdqa xmm9, xmm5
psubd xmm9, xmm12
movdqa xmm12, xmm9
psrad xmm12, 0x1f
pxor xmm9, xmm12
psubd xmm9, xmm12
movdqa xmm12, xmm7
psrad xmm12, 0x1f
pxor xmm7, xmm12
psubd xmm7, xmm12
psubd xmm6, xmm11
psubd xmm5, xmm10
movdqa xmm10, xmm5
psrad xmm10, 0x1f
pxor xmm5, xmm10
psubd xmm5, xmm10
movdqa xmm10, xmm6
psrad xmm10, 0x1f
pxor xmm6, xmm10
psubd xmm6, xmm10
pxor xmm4, xmm14
pxor xmm7, xmm14
movdqa xmm10, xmm4
pcmpgtd xmm10, xmm7
pxor xmm8, xmm14
pxor xmm9, xmm14
movdqa xmm11, xmm8
pcmpgtd xmm11, xmm9
pxor xmm6, xmm14
pcmpgtd xmm4, xmm6
por xmm4, xmm10
pxor xmm5, xmm14
pcmpgtd xmm8, xmm5
por xmm8, xmm11
packssdw xmm4, xmm8
packsswb xmm4, xmm4
pcmpgtd xmm9, xmm5
pcmpgtd xmm7, xmm6
packssdw xmm7, xmm9
packsswb xmm7, xmm7
pand xmm1, xmm7
pandn xmm7, xmm2
por xmm7, xmm1
pand xmm7, xmm4
pandn xmm4, xmm3
por xmm4, xmm7
paddb xmm4, xmm0
movq qword [rcx + rsi], xmm4
add rsi, 8
cmp r10, rsi
jne 0x1400956c3
mov rdi, r10
cmp r10, r11
jne 0x140095c20
jmp 0x1400955f3
xor r12d, r12d
movdqa xmm6, xmm14
mov r10, qword [rsp + 0x128]
movdqu xmm1, xmmword [rax + r12]
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmm7, xmm1
punpckhbw xmm7, xmm13
movdqa xmm0, xmm7
punpckhwd xmm0, xmm13
movdqa xmm11, xmm0
movdqa xmmword [rsp + 0x100], xmm0
punpcklwd xmm7, xmm13
punpcklbw xmm1, xmm13
movdqa xmm0, xmm1
punpckhwd xmm0, xmm13
movdqa xmmword [rsp + 0x60], xmm0
movdqu xmm15, xmmword [r8 + r12]
movdqa xmmword [rsp + 0x90], xmm15
movdqa xmm8, xmm15
punpckhbw xmm8, xmm13
movdqa xmm2, xmm8
punpckhwd xmm2, xmm13
punpcklwd xmm8, xmm13
punpcklbw xmm15, xmm13
movdqa xmm14, xmm15
punpckhwd xmm14, xmm13
movdqu xmm0, xmmword [r9 + r12]
movdqa xmm3, xmm0
movdqa xmm9, xmm0
movdqa xmmword [rsp + 0x110], xmm0
punpckhbw xmm3, xmm13
movdqa xmm4, xmm3
punpcklwd xmm4, xmm13
punpckhwd xmm3, xmm13
movdqa xmm5, xmm8
psubd xmm5, xmm7
movdqa xmm10, xmm2
psubd xmm10, xmm11
paddd xmm3, xmm10
paddd xmm4, xmm5
movdqa xmm0, xmm10
psrad xmm0, 0x1f
pxor xmm10, xmm0
psubd xmm10, xmm0
movdqa xmm0, xmm5
psrad xmm0, 0x1f
pxor xmm5, xmm0
psubd xmm5, xmm0
pxor xmm11, xmm11
movdqa xmm13, xmm9
punpcklbw xmm13, xmm11
movdqa xmm12, xmm13
punpckhwd xmm13, xmm11
movdqa xmm0, xmm14
psubd xmm0, xmmword [rsp + 0x60]
paddd xmm13, xmm0
movdqa xmm9, xmm0
psrad xmm9, 0x1f
pxor xmm0, xmm9
psubd xmm0, xmm9
punpcklwd xmm1, xmm11
punpcklwd xmm15, xmm11
punpcklwd xmm12, xmm11
movdqa xmm9, xmm15
psubd xmm9, xmm1
paddd xmm12, xmm9
movdqa xmm11, xmm9
psrad xmm11, 0x1f
pxor xmm9, xmm11
psubd xmm9, xmm11
movdqa xmm11, xmm12
psubd xmm11, xmm15
movdqa xmm15, xmm13
psubd xmm15, xmm14
movdqa xmm14, xmm4
psubd xmm14, xmm8
movdqa xmm8, xmm3
psubd xmm8, xmm2
movdqa xmm2, xmm8
psrad xmm2, 0x1f
pxor xmm8, xmm2
psubd xmm8, xmm2
movdqa xmm2, xmm14
psrad xmm2, 0x1f
pxor xmm14, xmm2
psubd xmm14, xmm2
movdqa xmm2, xmm15
psrad xmm2, 0x1f
pxor xmm15, xmm2
psubd xmm15, xmm2
movdqa xmm2, xmm11
psrad xmm2, 0x1f
pxor xmm11, xmm2
psubd xmm11, xmm2
psubd xmm12, xmm1
psubd xmm13, xmmword [rsp + 0x60]
psubd xmm4, xmm7
psubd xmm3, xmmword [rsp + 0x100]
movdqa xmm1, xmm3
psrad xmm1, 0x1f
pxor xmm3, xmm1
psubd xmm3, xmm1
movdqa xmm1, xmm4
psrad xmm1, 0x1f
pxor xmm4, xmm1
psubd xmm4, xmm1
movdqa xmm1, xmm13
psrad xmm1, 0x1f
pxor xmm13, xmm1
psubd xmm13, xmm1
movdqa xmm1, xmm12
psrad xmm1, 0x1f
pxor xmm12, xmm1
psubd xmm12, xmm1
pxor xmm9, xmm6
pxor xmm11, xmm6
movdqa xmm1, xmm9
pcmpgtd xmm1, xmm11
pxor xmm0, xmm6
pxor xmm15, xmm6
pxor xmm12, xmm6
pcmpgtd xmm9, xmm12
por xmm9, xmm1
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm15
pxor xmm13, xmm6
pcmpgtd xmm0, xmm13
por xmm0, xmm1
pxor xmm5, xmm6
pxor xmm14, xmm6
packssdw xmm9, xmm0
movdqa xmm0, xmm5
pcmpgtd xmm0, xmm14
pxor xmm10, xmm6
pxor xmm8, xmm6
pxor xmm4, xmm6
pcmpgtd xmm5, xmm4
por xmm5, xmm0
movdqa xmm0, xmm10
pcmpgtd xmm0, xmm8
pxor xmm3, xmm6
pcmpgtd xmm10, xmm3
por xmm10, xmm0
packssdw xmm5, xmm10
packsswb xmm9, xmm5
pcmpgtd xmm8, xmm3
pcmpgtd xmm14, xmm4
packssdw xmm14, xmm8
pcmpgtd xmm15, xmm13
pxor xmm13, xmm13
pcmpgtd xmm11, xmm12
packssdw xmm11, xmm15
packsswb xmm11, xmm14
movdqa xmm0, xmmword [rsp + 0x70]
pand xmm0, xmm11
pandn xmm11, xmmword [rsp + 0x90]
por xmm11, xmm0
pand xmm11, xmm9
pandn xmm9, xmmword [rsp + 0x110]
por xmm9, xmm11
movdqu xmm0, xmmword [r14 + r12]
paddb xmm9, xmm0
movdqu xmmword [rcx + r12], xmm9
add r12, 0x10
cmp r10, r12
jne 0x140095885
cmp r10, r11
movdqa xmm14, xmm6
movdqa xmm15, xmmword [0x14011a5b0]
je 0x1400955f3
mov rdi, qword [rsp + 0x128]
mov rsi, rdi
test r11b, 8
je 0x140095c20
jmp 0x1400956bb
xor edi, edi
jmp 0x140095c20
xor edi, edi
jmp 0x140095c20
xor edi, edi
jmp 0x140095c20
xor edi, edi
jmp 0x140095c20
cmp r12d, r13d
cmova esi, ebp
cmp r12d, ebx
cmova esi, ebp
add sil, byte [r14 + rdi]
mov byte [rcx + rdi], sil
inc rdi
cmp r11, rdi
je 0x1400955f3
movzx ebp, byte [rax + rdi]
movzx r15d, byte [r8 + rdi]
movzx esi, byte [r9 + rdi]
mov ebx, r15d
sub ebx, ebp
lea r10d, [rbx + rsi]
mov r12d, ebx
neg r12d
cmovs r12d, ebx
mov r13d, r10d
sub r13d, r15d
mov ebx, r13d
neg ebx
cmovs ebx, r13d
sub r10d, ebp
mov r13d, r10d
neg r13d
cmovs r13d, r10d
cmp ebx, r13d
ja 0x140095c00
mov ebp, r15d
jmp 0x140095c00
mov esi, dword [rsp + 0x44]
test esi, esi
je case.default.0x140094915
mov r9d, dword [rsp + 0x28]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + rbp]
mov qword [rsp + 0x70], r10
mov r11d, r9d
and r11d, 0xffffffe0
mov edi, r9d
and edi, 0xfffffff8
mov r10, r9
neg r10
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0xc8]
lea r12, [rax + r10]
add r12, rbp
add rax, qword [rsp + 0xa8]
add rax, rbp
mov r14, r13
xor r13d, r13d
mov r10d, esi
jmp 0x140095ce6
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 0x140095feb
cmp dword [rsp + 0x28], 0
jle 0x140095cc4
cmp dword [rsp + 0x28], 8
jae 0x140095d5b
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140095d1b
mov rbx, rsi
sub rbx, qword [rsp + 0x38]
movzx ebx, byte [rcx + rbx]
shr bl, 1
add bl, byte [r14 + rsi]
mov byte [rcx + rsi], bl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x140095cc4
nop word cs:[rax + rax]
movzx ebx, byte [rax + rbp]
shr bl, 1
add bl, byte [r14 + rbp]
mov byte [rcx + rbp], bl
movzx ebx, byte [rax + rbp + 1]
shr bl, 1
add bl, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], bl
add rbp, 2
cmp r9, rbp
jne 0x140095d30
jmp 0x140095cc4
mov rsi, r13
imul rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x70]
mov rbx, r13
imul rbx, r8
add rbx, qword [rsp + 0x50]
sub rsi, rbx
cmp rsi, 0x20
jb 0x140095cf4
jb 0x140095cf4
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140095cf6
cmp dword [rsp + 0x28], 0x20
jae 0x140095da4
xor r15d, r15d
jmp 0x140095e09
xor esi, esi
movdqu xmm0, xmmword [r14 + rsi]
movdqu xmm1, xmmword [r14 + rsi + 0x10]
movdqu xmm2, xmmword [r12 + rsi - 0x10]
movdqu xmm3, xmmword [r12 + rsi]
psrlw xmm2, 1
pand xmm2, xmm15
paddb xmm2, xmm0
psrlw xmm3, 1
pand xmm3, xmm15
paddb xmm3, xmm1
movdqu xmmword [rcx + rsi], xmm2
movdqu xmmword [rcx + rsi + 0x10], xmm3
add rsi, 0x20
cmp r11, rsi
jne 0x140095da6
cmp r11, r9
je 0x140095cc4
mov r15, r11
mov rsi, r11
test r9b, 0x18
je 0x140095cf6
movq xmm0, qword [r14 + r15]
movq xmm1, qword [rax + r15]
psrlw xmm1, 1
pand xmm1, xmm15
paddb xmm1, xmm0
movq qword [rcx + r15], xmm1
add r15, 8
cmp rdi, r15
jne 0x140095e09
mov rsi, rdi
cmp rdi, r9
je 0x140095cc4
jmp 0x140095cf6
mov esi, dword [rsp + 0x44]
test esi, esi
je case.default.0x140094915
mov r9d, dword [rsp + 0x28]
movsxd r8, r9d
mov r9d, r9d
lea r10, [rax + rbp]
mov qword [rsp + 0x70], r10
mov r11d, r9d
and r11d, 0xffffffe0
mov edi, r9d
and edi, 0xfffffff8
mov r10, r9
neg r10
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0xc8]
lea r12, [rax + r10]
add r12, rbp
add rax, qword [rsp + 0xa8]
add rax, rbp
mov r14, r13
xor r13d, r13d
mov r10d, esi
jmp 0x140095ebd
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, r15
inc r13
add r12, r15
add rax, r15
dec r10d
je 0x140095feb
cmp dword [rsp + 0x28], 0
jle 0x140095ea0
cmp dword [rsp + 0x28], 8
jae 0x140095f27
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140095eee
mov rbx, rsi
sub rbx, r15
movzx ebx, byte [rcx + rbx]
add bl, byte [r14 + rsi]
mov byte [rcx + rsi], bl
mov rbp, rsi
or rbp, 1
not rsi
cmp rsi, qword [rsp + 0x60]
je 0x140095ea0
nop dword [rax + rax]
movzx ebx, byte [rax + rbp]
add bl, byte [r14 + rbp]
mov byte [rcx + rbp], bl
movzx ebx, byte [rax + rbp + 1]
add bl, byte [r14 + rbp + 1]
mov byte [rcx + rbp + 1], bl
add rbp, 2
cmp r9, rbp
jne 0x140095f00
jmp 0x140095ea0
mov rsi, r13
imul rsi, r15
add rsi, qword [rsp + 0x70]
mov rbx, r13
imul rbx, r8
add rbx, qword [rsp + 0x50]
sub rsi, rbx
cmp rsi, 0x20
jb 0x140095ecb
jb 0x140095ecb
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140095ecd
cmp dword [rsp + 0x28], 0x20
jae 0x140095f69
xor ebx, ebx
jmp 0x140095fba
xor esi, esi
movdqu xmm0, xmmword [r14 + rsi]
movdqu xmm1, xmmword [r14 + rsi + 0x10]
movdqu xmm2, xmmword [r12 + rsi - 0x10]
paddb xmm2, xmm0
movdqu xmm0, xmmword [r12 + rsi]
paddb xmm0, xmm1
movdqu xmmword [rcx + rsi], xmm2
movdqu xmmword [rcx + rsi + 0x10], xmm0
add rsi, 0x20
cmp r11, rsi
jne 0x140095f6b
cmp r11, r9
je 0x140095ea0
mov rbx, r11
mov rsi, r11
test r9b, 0x18
je 0x140095ecd
movq xmm0, qword [r14 + rbx]
movq xmm1, qword [rax + rbx]
paddb xmm1, xmm0
movq qword [rcx + rbx], xmm1
add rbx, 8
cmp rdi, rbx
jne 0x140095fba
mov rsi, rdi
cmp rdi, r9
je 0x140095ea0
jmp 0x140095ecd
mov r14, r13
mov edi, dword [rsp + 0x2b0]
cmp edi, 0x10
jne 0x1400960d5
mov r13d, dword [rsp + 0x2a0]
test r13d, r13d
mov r12, qword [rsp + 0xd0]
mov ebp, dword [rsp + 0x5c]
mov r11d, dword [rsp + 0x8c]
mov r15, qword [rsp + 0xb0]
movzx ebx, byte [rsp + 0x37]
mov ecx, dword [rsp + 0xc4]
je 0x140096143
add rdx, qword [r12 + 0x18]
movsxd rax, dword [rsp + 0x28]
inc rax
cmp r13d, 8
jb 0x1400960bb
mov rsi, qword [rsp + 0x38]
mov r8, rsi
sub r8, rax
mov r9d, dword [rsp + 0xfc]
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 0x14009605a
add rcx, rsi
add rcx, rsi
lea rdx, [rsi + rsi]
add rdx, rsi
add rcx, rdx
add rcx, rdx
mov rdx, rcx
mov ecx, dword [rsp + 0xc4]
test ecx, ecx
je 0x1400960fe
add rdx, rax
mov eax, ecx
mov rcx, qword [rsp + 0x38]
mov byte [rdx], 0xff
add rdx, rcx
dec eax
jne 0x1400960c9
jmp 0x1400960fe
mov r12, qword [rsp + 0xd0]
mov ebp, dword [rsp + 0x5c]
mov r11d, dword [rsp + 0x8c]
mov r15, qword [rsp + 0xb0]
mov r13d, dword [rsp + 0x2a0]
movzx ebx, byte [rsp + 0x37]
mov rcx, qword [rsp + 0xb8]
inc rcx
cmp rcx, qword [rsp + 0xf0]
je 0x140096c95
mov eax, dword [rsp + 0x40]
mov edx, eax
imul edx, ecx
mov rax, qword [r12 + 0x18]
add rax, rdx
movzx r9d, byte [r14]
cmp r9b, 4
mov r10, qword [rsp + 0x130]
jbe 0x1400947ab
jmp 0x140096c89
mov rcx, qword [rsp + 0xb8]
inc rcx
cmp rcx, qword [rsp + 0xf0]
jne 0x140096117
jmp 0x140097113
mov r14, qword [rsp + 0x50]
jmp 0x140095feb
lea r11, [rax + rbp]
mov r9, r11
sub r9, r13
cmp r9, 0x20
jb 0x140094b39
jb 0x140094b39
mov r9d, 0
cmp dword [rsp + 0x40], 0x20
jb 0x140094b3c
cmp r10d, 0x20
jae 0x1400962f1
xor r9d, r9d
jmp 0x140096355
lea r11, [rax + rbp]
sub r11, r13
mov r9, qword [rsp + 0x150]
add r9, rbx
cmp r11, 0x10
jb 0x140094cdc
jb 0x140094cdc
cmp r9, 0x10
jb 0x140094cdc
cmp dword [rsp + 0x40], 0x10
jb 0x140094cdc
mov r9d, 0
cmp dword [rsp + 0x28], 0x10
jb 0x140094cdf
cmp r10d, 0x10
jae 0x14009638d
xor r9d, r9d
jmp 0x140096706
lea r9, [rax + rbp]
sub r9, r13
cmp r9, 0x20
jb 0x140094ab3
jb 0x140094ab3
mov r9d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140094ab6
cmp r10d, 0x20
jae 0x14009690a
xor r9d, r9d
jmp 0x140096973
lea r11, [rax + rbp]
sub r11, r13
cmp r11, 0x20
jb 0x140094c12
jb 0x140094c12
cmp dword [rsp + 0x40], 0x20
jb 0x140094c12
mov r11d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140094c15
cmp r10d, 0x20
jae 0x1400969b4
xor r11d, r11d
jmp 0x140096aaa
lea r9, [rax + rbp]
sub r9, r13
cmp r9, 0x20
jb 0x140094d8a
jb 0x140094d8a
mov r9d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140094d8d
cmp r10d, 0x20
jae 0x140096b0a
xor r9d, r9d
jmp 0x140096b8d
lea r9, [rax + rbp]
sub r9, r13
cmp r9, 0x20
jb 0x140094e17
jb 0x140094e17
mov r9d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140094e1a
cmp r10d, 0x20
jae 0x140096bdf
xor r9d, r9d
jmp 0x140096c48
mov r9d, edx
and r9d, 0xffffffe0
add r11, qword [rsp + 0x120]
lea r10, [rax + rbp]
add r10, 0x10
xor esi, esi
movdqu xmm0, xmmword [r13 + rsi]
movdqu xmm1, xmmword [r13 + rsi + 0x10]
movdqu xmm2, xmmword [r11 + rsi - 0x10]
paddb xmm2, xmm0
movdqu xmm0, xmmword [r11 + rsi]
paddb xmm0, xmm1
movdqu xmmword [r10 + rsi - 0x10], xmm2
movdqu xmmword [r10 + rsi], xmm0
add rsi, 0x20
cmp r9, rsi
jne 0x14009630a
cmp r9, rdx
je case.default.0x1400948eb
test dl, 0x18
je 0x140094b3c
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff8
movq xmm0, qword [r13 + r10]
movq xmm1, qword [r8 + r10]
paddb xmm1, xmm0
movq qword [rcx + r10], xmm1
add r10, 8
cmp r9, r10
jne 0x14009635f
cmp r9, rdx
jne 0x140094b3c
jmp case.default.0x1400948eb
mov r9d, edx
and r9d, 0xfffffff0
mov r11, rbp
sub r11, rbx
add r11, rax
mov r12, r9
mov r10, r13
mov r13, rcx
mov rsi, qword [rsp + 0xa0]
movdqa xmm6, xmmword [0x14010cbf0]
movdqu xmm1, xmmword [r11 + rsi]
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmm7, xmm1
pxor xmm11, xmm11
punpckhbw xmm7, xmm11
movdqa xmm0, xmm7
punpckhwd xmm0, xmm11
movdqa xmm9, xmm0
movdqa xmmword [rsp + 0x100], xmm0
punpcklwd xmm7, xmm11
punpcklbw xmm1, xmm11
movdqa xmm0, xmm1
punpckhwd xmm0, xmm11
movdqa xmmword [rsp + 0x60], xmm0
movdqu xmm15, xmmword [r13 + rsi]
movdqa xmmword [rsp + 0x90], xmm15
movdqa xmm8, xmm15
punpckhbw xmm8, xmm11
movdqa xmm2, xmm8
punpckhwd xmm2, xmm11
punpcklwd xmm8, xmm11
punpcklbw xmm15, xmm11
movdqa xmm14, xmm15
punpckhwd xmm14, xmm11
movdqu xmm0, xmmword [r11]
movdqa xmm3, xmm0
movdqa xmm13, xmm0
movdqa xmmword [rsp + 0x110], xmm0
punpckhbw xmm3, xmm11
movdqa xmm4, xmm3
punpcklwd xmm4, xmm11
punpckhwd xmm3, xmm11
movdqa xmm5, xmm8
psubd xmm5, xmm7
movdqa xmm10, xmm2
psubd xmm10, xmm9
paddd xmm3, xmm10
paddd xmm4, xmm5
movdqa xmm0, xmm10
psrad xmm0, 0x1f
pxor xmm10, xmm0
psubd xmm10, xmm0
movdqa xmm0, xmm5
psrad xmm0, 0x1f
pxor xmm5, xmm0
psubd xmm5, xmm0
punpcklbw xmm13, xmm11
movdqa xmm12, xmm13
punpckhwd xmm13, xmm11
movdqa xmm0, xmm14
psubd xmm0, xmmword [rsp + 0x60]
paddd xmm13, xmm0
movdqa xmm9, xmm0
psrad xmm9, 0x1f
pxor xmm0, xmm9
psubd xmm0, xmm9
punpcklwd xmm1, xmm11
punpcklwd xmm15, xmm11
punpcklwd xmm12, xmm11
movdqa xmm9, xmm15
psubd xmm9, xmm1
paddd xmm12, xmm9
movdqa xmm11, xmm9
psrad xmm11, 0x1f
pxor xmm9, xmm11
psubd xmm9, xmm11
movdqa xmm11, xmm12
psubd xmm11, xmm15
movdqa xmm15, xmm13
psubd xmm15, xmm14
movdqa xmm14, xmm4
psubd xmm14, xmm8
movdqa xmm8, xmm3
psubd xmm8, xmm2
movdqa xmm2, xmm8
psrad xmm2, 0x1f
pxor xmm8, xmm2
psubd xmm8, xmm2
movdqa xmm2, xmm14
psrad xmm2, 0x1f
pxor xmm14, xmm2
psubd xmm14, xmm2
movdqa xmm2, xmm15
psrad xmm2, 0x1f
pxor xmm15, xmm2
psubd xmm15, xmm2
movdqa xmm2, xmm11
psrad xmm2, 0x1f
pxor xmm11, xmm2
psubd xmm11, xmm2
psubd xmm12, xmm1
psubd xmm13, xmmword [rsp + 0x60]
psubd xmm4, xmm7
psubd xmm3, xmmword [rsp + 0x100]
movdqa xmm1, xmm3
psrad xmm1, 0x1f
pxor xmm3, xmm1
psubd xmm3, xmm1
movdqa xmm1, xmm4
psrad xmm1, 0x1f
pxor xmm4, xmm1
psubd xmm4, xmm1
movdqa xmm1, xmm13
psrad xmm1, 0x1f
pxor xmm13, xmm1
psubd xmm13, xmm1
movdqa xmm1, xmm12
psrad xmm1, 0x1f
pxor xmm12, xmm1
psubd xmm12, xmm1
pxor xmm11, xmm6
pxor xmm9, xmm6
movdqa xmm1, xmm9
pcmpgtd xmm1, xmm11
pxor xmm15, xmm6
pxor xmm0, xmm6
pxor xmm12, xmm6
pcmpgtd xmm9, xmm12
por xmm9, xmm1
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm15
pxor xmm13, xmm6
pcmpgtd xmm0, xmm13
por xmm0, xmm1
pxor xmm14, xmm6
pxor xmm5, xmm6
packssdw xmm9, xmm0
movdqa xmm0, xmm5
pcmpgtd xmm0, xmm14
pxor xmm8, xmm6
pxor xmm10, xmm6
pxor xmm4, xmm6
pcmpgtd xmm5, xmm4
por xmm5, xmm0
movdqa xmm0, xmm10
pcmpgtd xmm0, xmm8
pxor xmm3, xmm6
pcmpgtd xmm10, xmm3
por xmm10, xmm0
packssdw xmm5, xmm10
packsswb xmm9, xmm5
pcmpgtd xmm8, xmm3
pcmpgtd xmm14, xmm4
packssdw xmm14, xmm8
pcmpgtd xmm15, xmm13
pcmpgtd xmm11, xmm12
packssdw xmm11, xmm15
packsswb xmm11, xmm14
movdqa xmm0, xmmword [rsp + 0x70]
pand xmm0, xmm11
pandn xmm11, xmmword [rsp + 0x90]
por xmm11, xmm0
pand xmm11, xmm9
pandn xmm9, xmmword [rsp + 0x110]
por xmm9, xmm11
movdqu xmm0, xmmword [r10]
paddb xmm9, xmm0
movdqu xmmword [r13], xmm9
add r10, 0x10
add r11, 0x10
add r13, 0x10
add r12, 0xfffffffffffffff0
jne 0x1400963b6
cmp r9, rdx
mov r13, qword [rsp + 0x50]
je case.default.0x1400948eb
test dl, 8
je 0x140094cdf
mov r15d, edx
and r15d, 0xfffffff8
mov r11, rbp
sub r11, rbx
add r11, rax
mov r10, qword [rsp + 0xa0]
lea rsi, [r11 + r10]
mov rdi, r15
mov r12, rcx
mov r10, r13
mov r13, r8
pxor xmm13, xmm13
movdqa xmm14, xmmword [0x14010cbf0]
movq xmm0, qword [r10 + r9]
movq xmm1, qword [rsi + r9]
movdqa xmm11, xmm1
punpcklbw xmm11, xmm13
movdqa xmm10, xmm11
punpckhwd xmm10, xmm13
punpcklwd xmm11, xmm13
movq xmm2, qword [r13 + r9]
movdqa xmm9, xmm2
punpcklbw xmm9, xmm13
movdqa xmm12, xmm9
punpckhwd xmm12, xmm13
punpcklwd xmm9, xmm13
movq xmm3, qword [r11 + r9]
movdqa xmm5, xmm3
punpcklbw xmm5, xmm13
movdqa xmm6, xmm5
punpcklwd xmm6, xmm13
punpckhwd xmm5, xmm13
movdqa xmm4, xmm9
psubd xmm4, xmm11
movdqa xmm8, xmm12
psubd xmm8, xmm10
paddd xmm5, xmm8
paddd xmm6, xmm4
movdqa xmm7, xmm8
psrad xmm7, 0x1f
pxor xmm8, xmm7
psubd xmm8, xmm7
movdqa xmm7, xmm4
psrad xmm7, 0x1f
pxor xmm4, xmm7
psubd xmm4, xmm7
movdqa xmm7, xmm6
psubd xmm7, xmm9
movdqa xmm9, xmm5
psubd xmm9, xmm12
movdqa xmm12, xmm9
psrad xmm12, 0x1f
pxor xmm9, xmm12
psubd xmm9, xmm12
movdqa xmm12, xmm7
psrad xmm12, 0x1f
pxor xmm7, xmm12
psubd xmm7, xmm12
psubd xmm6, xmm11
psubd xmm5, xmm10
movdqa xmm10, xmm5
psrad xmm10, 0x1f
pxor xmm5, xmm10
psubd xmm5, xmm10
movdqa xmm10, xmm6
psrad xmm10, 0x1f
pxor xmm6, xmm10
psubd xmm6, xmm10
pxor xmm4, xmm14
pxor xmm7, xmm14
movdqa xmm10, xmm4
pcmpgtd xmm10, xmm7
pxor xmm8, xmm14
pxor xmm9, xmm14
movdqa xmm11, xmm8
pcmpgtd xmm11, xmm9
pxor xmm6, xmm14
pcmpgtd xmm4, xmm6
por xmm4, xmm10
pxor xmm5, xmm14
pcmpgtd xmm8, xmm5
por xmm8, xmm11
packssdw xmm4, xmm8
packsswb xmm4, xmm4
pcmpgtd xmm9, xmm5
pcmpgtd xmm7, xmm6
packssdw xmm7, xmm9
packsswb xmm7, xmm7
pand xmm1, xmm7
pandn xmm7, xmm2
por xmm7, xmm1
pand xmm7, xmm4
pandn xmm4, xmm3
por xmm4, xmm7
paddb xmm4, xmm0
movq qword [r12 + r9], xmm4
add r10, 8
add r11, 8
add rsi, 8
add r13, 8
add r12, 8
add rdi, 0xfffffffffffffff8
cmp r9, rdi
jne 0x14009673c
mov r9, r15
cmp r15, rdx
mov r13, qword [rsp + 0x50]
je case.default.0x1400948eb
jmp 0x140094cdf
mov r9d, edx
and r9d, 0xffffffe0
mov r10, rbp
sub r10, r8
add r10, rax
add r10, 0x10
lea r11, [rax + rbp]
add r11, 0x10
xor esi, esi
movdqu xmm0, xmmword [r13 + rsi]
movdqu xmm1, xmmword [r13 + rsi + 0x10]
movdqu xmm2, xmmword [r10 + rsi - 0x10]
paddb xmm2, xmm0
movdqu xmm0, xmmword [r10 + rsi]
paddb xmm0, xmm1
movdqu xmmword [r11 + rsi - 0x10], xmm2
movdqu xmmword [r11 + rsi], xmm0
add rsi, 0x20
cmp r9, rsi
jne 0x140096928
cmp r9, rdx
je case.default.0x1400948eb
test dl, 0x18
je 0x140094ab6
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff8
mov r11, rbp
sub r11, r8
add r11, rax
movq xmm0, qword [r13 + r10]
movq xmm1, qword [r11 + r10]
paddb xmm1, xmm0
movq qword [rcx + r10], xmm1
add r10, 8
cmp r9, r10
jne 0x140096986
cmp r9, rdx
jne 0x140094ab6
jmp case.default.0x1400948eb
mov r11d, edx
and r11d, 0xffffffe0
mov r10, qword [rsp + 0x120]
add r10, rax
add r10, rbp
mov rsi, rbp
sub rsi, r9
add rsi, rax
add rsi, 0x10
lea rdi, [rax + rbp]
add rdi, 0x10
xor r12d, r12d
pxor xmm9, xmm9
movdqu xmm1, xmmword [r13 + r12]
movdqu xmm0, xmmword [r13 + r12 + 0x10]
movdqu xmm4, xmmword [r10 + r12 - 0x10]
movdqu xmm5, xmmword [r10 + r12]
movdqa xmm6, xmm4
punpckhbw xmm6, xmm9
punpcklbw xmm4, xmm9
movdqa xmm7, xmm5
punpckhbw xmm7, xmm9
punpcklbw xmm5, xmm9
movdqu xmm2, xmmword [rsi + r12 - 0x10]
movdqu xmm3, xmmword [rsi + r12]
movdqa xmm8, xmm2
punpckhbw xmm8, xmm9
paddw xmm8, xmm6
punpcklbw xmm2, xmm9
paddw xmm2, xmm4
movdqa xmm4, xmm3
punpckhbw xmm4, xmm9
paddw xmm4, xmm7
punpcklbw xmm3, xmm9
paddw xmm3, xmm5
psrlw xmm8, 1
psrlw xmm2, 1
packuswb xmm2, xmm8
paddb xmm2, xmm1
psrlw xmm4, 1
psrlw xmm3, 1
packuswb xmm3, xmm4
paddb xmm3, xmm0
movdqu xmmword [rdi + r12 - 0x10], xmm2
movdqu xmmword [rdi + r12], xmm3
add r12, 0x20
cmp r11, r12
jne 0x1400969e6
cmp r11, rdx
je case.default.0x1400948eb
test dl, 0x18
je 0x140094c15
mov r10, r11
mov r11d, edx
and r11d, 0xfffffff8
mov rsi, rbp
sub rsi, r9
add rsi, rax
pxor xmm3, xmm3
movq xmm0, qword [r13 + r10]
movq xmm1, qword [r8 + r10]
punpcklbw xmm1, xmm3
movq xmm2, qword [rsi + r10]
punpcklbw xmm2, xmm3
paddw xmm2, xmm1
psrlw xmm2, 1
packuswb xmm2, xmm2
paddb xmm2, xmm0
movq qword [rcx + r10], xmm2
add r10, 8
cmp r11, r10
jne 0x140096ac1
cmp r11, rdx
jne 0x140094c15
jmp case.default.0x1400948eb
mov r9d, edx
and r9d, 0xffffffe0
mov r10, rbp
sub r10, r8
add r10, rax
add r10, 0x10
lea r11, [rax + rbp]
add r11, 0x10
xor esi, esi
movdqa xmm4, xmmword [0x14011a5b0]
movdqu xmm0, xmmword [r13 + rsi]
movdqu xmm1, xmmword [r13 + rsi + 0x10]
movdqu xmm2, xmmword [r10 + rsi - 0x10]
movdqu xmm3, xmmword [r10 + rsi]
psrlw xmm2, 1
pand xmm2, xmm4
paddb xmm2, xmm0
psrlw xmm3, 1
pand xmm3, xmm4
paddb xmm3, xmm1
movdqu xmmword [r11 + rsi - 0x10], xmm2
movdqu xmmword [r11 + rsi], xmm3
add rsi, 0x20
cmp r9, rsi
jne 0x140096b30
cmp r9, rdx
je case.default.0x1400948eb
test dl, 0x18
je 0x140094d8d
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff8
mov r11, rbp
sub r11, r8
add r11, rax
movdqa xmm2, xmmword [0x14011a5b0]
movq xmm0, qword [r13 + r10]
movq xmm1, qword [r11 + r10]
psrlw xmm1, 1
pand xmm1, xmm2
paddb xmm1, xmm0
movq qword [rcx + r10], xmm1
add r10, 8
cmp r9, r10
jne 0x140096ba8
cmp r9, rdx
jne 0x140094d8d
jmp case.default.0x1400948eb
mov r9d, edx
and r9d, 0xffffffe0
mov r10, rbp
sub r10, r8
add r10, rax
add r10, 0x10
lea r11, [rax + rbp]
add r11, 0x10
xor esi, esi
movdqu xmm0, xmmword [r13 + rsi]
movdqu xmm1, xmmword [r13 + rsi + 0x10]
movdqu xmm2, xmmword [r10 + rsi - 0x10]
paddb xmm2, xmm0
movdqu xmm0, xmmword [r10 + rsi]
paddb xmm0, xmm1
movdqu xmmword [r11 + rsi - 0x10], xmm2
movdqu xmmword [r11 + rsi], xmm0
add rsi, 0x20
cmp r9, rsi
jne 0x140096bfd
cmp r9, rdx
je case.default.0x1400948eb
test dl, 0x18
je 0x140094e1a
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff8
mov r11, rbp
sub r11, r8
add r11, rax
movq xmm0, qword [r13 + r10]
movq xmm1, qword [r11 + r10]
paddb xmm1, xmm0
movq qword [rcx + r10], xmm1
add r10, 8
cmp r9, r10
jne 0x140096c5b
cmp r9, rdx
jne 0x140094e1a
jmp case.default.0x1400948eb
lea r8, str.invalid_filter
jmp 0x1400944e9
cmp edi, 8
jge 0x140097105
mov ecx, 1
cmp dword [rsp + 0x2a8], 0
je 0x140094505
mov eax, dword [rsp + 0xe8]
mov edx, dword [rsp + 0x130]
movsxd r8, edi
mov qword [rsp + 0x28], r8
lea r9d, [r13 - 1]
movsxd r8, r9d
imul r11d, r13d
imul r11d, ebp
mov r10d, r11d
mov r11, rax
sub r11, rdx
neg rdx
lea rsi, [r8 + r8*2]
add rsi, 2
mov qword [rsp + 0x38], rsi
lea esi, [r13*4 - 4]
mov dword [rsp + 0x70], esi
dec r8
mov qword [rsp + 0x60], r8
lea r8d, [r13 + r13 - 1]
mov dword [rsp + 0x90], r8d
xor r14d, r14d
add rdx, rax
xor r13d, r13d
jmp 0x140096d2f
inc r13
add r14d, r10d
cmp r13, qword [rsp + 0xf0]
je 0x140094505
mov r12, qword [r12 + 0x18]
mov eax, dword [rsp + 0x40]
mov edi, eax
imul edi, r13d
lea rsi, [r12 + rdi]
mov bl, 1
cmp dword [rsp + 0x2b8], 0
jne 0x140096d5f
mov rax, qword [rsp + 0x28]
lea r8, [0x14011a770]
movzx ebx, byte [rax + r8]
lea rbp, [rsi + rdx]
mov r14d, r14d
mov eax, dword [rsp + 0x2b0]
cmp eax, 4
je 0x140096fca
cmp eax, 2
je 0x140096f15
cmp eax, 1
jne 0x14009702b
mov r8d, dword [rsp + 0x48]
mov eax, r8d
cmp r8d, 8
jl 0x140096e51
lea rbp, [r12 + r11]
mov eax, dword [rsp + 0x48]
mov esi, eax
movzx eax, byte [rbp + r14]
sar al, 7
and al, bl
mov byte [r12 + r14], al
movzx eax, byte [rbp + r14]
add al, al
sar al, 7
and al, bl
mov byte [r12 + r14 + 1], al
movzx eax, byte [rbp + r14]
shl al, 2
sar al, 7
and al, bl
mov byte [r12 + r14 + 2], al
movzx eax, byte [rbp + r14]
shl al, 3
sar al, 7
and al, bl
mov byte [r12 + r14 + 3], al
movzx eax, byte [rbp + r14]
shl al, 4
sar al, 7
and al, bl
mov byte [r12 + r14 + 4], al
movzx eax, byte [rbp + r14]
shl al, 5
sar al, 7
and al, bl
mov byte [r12 + r14 + 5], al
movzx eax, byte [rbp + r14]
shl al, 6
sar al, 7
and al, bl
mov byte [r12 + r14 + 6], al
movzx eax, byte [rbp + r14]
and al, 1
neg al
and al, bl
mov byte [r12 + r14 + 7], al
lea eax, [rsi - 8]
inc rbp
add r12, 8
cmp esi, 0xf
ja 0x140096da2
add rbp, r14
add r12, r14
mov rsi, r12
test eax, eax
jle 0x14009702b
movzx r8d, byte [rbp]
sar r8b, 7
and r8b, bl
mov byte [rsi], r8b
cmp eax, 1
je 0x14009702b
movzx r8d, byte [rbp]
add r8b, r8b
sar r8b, 7
and r8b, bl
mov byte [rsi + 1], r8b
cmp eax, 3
jb 0x14009702b
movzx r8d, byte [rbp]
shl r8b, 2
sar r8b, 7
and r8b, bl
mov byte [rsi + 2], r8b
cmp eax, 3
je 0x14009702b
movzx r8d, byte [rbp]
shl r8b, 3
sar r8b, 7
and r8b, bl
mov byte [rsi + 3], r8b
cmp eax, 5
jb 0x14009702b
movzx r8d, byte [rbp]
shl r8b, 4
sar r8b, 7
and r8b, bl
mov byte [rsi + 4], r8b
cmp eax, 5
je 0x14009702b
movzx r8d, byte [rbp]
shl r8b, 5
sar r8b, 7
and r8b, bl
mov byte [rsi + 5], r8b
cmp eax, 7
jb 0x14009702b
movzx eax, byte [rbp]
shl al, 6
sar al, 7
and al, bl
mov byte [rsi + 6], al
jmp 0x14009702b
mov eax, dword [rsp + 0x48]
mov r8d, eax
cmp eax, 4
jl 0x140096f88
lea rbp, [r12 + r11]
mov r8d, dword [rsp + 0x48]
mov esi, r8d
movzx eax, byte [rbp + r14]
shr al, 6
mul bl
mov byte [r12 + r14], al
movzx eax, byte [rbp + r14]
shr al, 4
and al, 3
mul bl
mov byte [r12 + r14 + 1], al
movzx eax, byte [rbp + r14]
shr al, 2
and al, 3
mul bl
mov byte [r12 + r14 + 2], al
movzx eax, byte [rbp + r14]
and al, 3
mul bl
mov byte [r12 + r14 + 3], al
lea r8d, [rsi - 4]
inc rbp
add r12, 4
cmp esi, 7
ja 0x140096f2a
add rbp, r14
add r12, r14
mov rsi, r12
test r8d, r8d
jle 0x14009702b
movzx eax, byte [rbp]
shr al, 6
mul bl
mov byte [rsi], al
cmp r8d, 1
je 0x14009702b
movzx eax, byte [rbp]
shr al, 4
and al, 3
mul bl
mov byte [rsi + 1], al
cmp r8d, 3
jb 0x14009702b
movzx eax, byte [rbp]
shr al, 2
and al, 3
mul bl
mov byte [rsi + 2], al
jmp 0x14009702b
mov r8d, dword [rsp + 0x48]
mov eax, r8d
cmp r8d, 2
jl 0x14009701b
lea rbp, [r12 + r11]
mov eax, dword [rsp + 0x48]
mov r8d, eax
movzx eax, byte [rbp + r14]
shr al, 4
mul bl
mov byte [r12 + r14], al
movzx eax, byte [rbp + r14]
and al, 0xf
mul bl
mov byte [r12 + r14 + 1], al
lea eax, [r8 - 2]
inc rbp
add r12, 2
cmp r8d, 3
ja 0x140096fe0
add rbp, r14
add r12, r14
mov rsi, r12
cmp eax, 1
jne 0x14009702b
movzx eax, byte [rbp]
shr al, 4
mul bl
mov byte [rsi], al
mov rax, qword [rsp + 0xb0]
cmp eax, dword [rsp + 0x5c]
mov r12, qword [rsp + 0xd0]
je 0x140096d1b
mov rax, qword [r12 + 0x18]
add rdi, rax
cmp dword [rsp + 0xb0], 1
jne 0x14009709e
test r9d, r9d
js 0x140096d1b
add rax, r14
mov ebx, dword [rsp + 0x90]
mov rsi, qword [rsp + 0x60]
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 0x140097072
jmp 0x140096d1b
test r9d, r9d
js 0x140096d1b
add rax, qword [rsp + 0x38]
add rax, r14
mov r8, qword [rsp + 0x60]
mov esi, dword [rsp + 0x70]
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 0x1400970bb
jmp 0x140096d1b
mov ecx, 1
cmp edi, 0x10
jne 0x140094505
mov r8, qword [rsp + 0xe8]
imul r8d, dword [rsp + 0x2a8]
mov ecx, 1
test r8d, r8d
je 0x140094505
mov rax, qword [r12 + 0x18]
cmp r8d, 4
jb 0x14009715f
mov edx, r8d
and edx, 0xfffffffc
rol word [rax], 8
rol word [rax + 2], 8
rol word [rax + 4], 8
rol word [rax + 6], 8
add rax, 8
add edx, 0xfffffffc
jne 0x140097143
test r8b, 3
je 0x140094505
and r8d, 3
xor edx, edx
rol word [rax + rdx*2], 8
inc rdx
cmp r8d, edx
jne 0x14009716f
jmp 0x140094505
lea r8, str.invalid_width
jmp 0x1400944e9