Function at 0x1400971a0
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 0x140097299
mov ebp, r9d
mov r14, rdx
mov rax, qword [r12]
movsxd r15, dword [rax + 8]
test r8d, r8d
je 0x140097264
mov eax, 0x7fffffff
xor edx, edx
div r8d
cmp eax, r13d
jl 0x140097299
mov sil, cl
inc esi
mov r9d, esi
imul r9d, ebp
mov ecx, r8d
imul ecx, r13d
mov eax, r9d
or eax, ecx
js 0x140097299
test r9d, r9d
je 0x140097333
mov eax, 0x7fffffff
xor edx, edx
div r9d
cmp eax, ecx
jge 0x140097333
mov qword [r12 + 0x18], 0
lea r8, str.outofmem
mov eax, dword [0x140212b68]
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 0x1400972a2
lea r8, str.too_large
mov eax, r15d
or eax, r13d
js 0x1400972a9
test r13d, r13d
je 0x14009737e
mov eax, 0x7fffffff
xor edx, edx
div r13d
cmp eax, r15d
jl 0x1400972a9
mov ecx, r15d
imul ecx, r13d
mov eax, ecx
or eax, edi
js 0x1400972a9
test edi, edi
je 0x1400973c0
mov eax, 0x7fffffff
xor edx, edx
div edi
cmp eax, ecx
mov edx, dword [rsp + 0x2a8]
jl 0x1400972a9
mov r10d, ecx
imul r10d, edi
cmp r10d, 0x7ffffff8
jle 0x1400973ca
jmp 0x1400972a9
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 0x1400973e9
lea r8, str.not_enough_pixels
jmp 0x1400972a9
mov eax, r13d
imul eax, ebp
mov qword [rsp + 0xe8], rax
test edx, edx
je 0x140099ec5
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 0x1400972a9
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 [0x140111e90]
movdqa xmm15, xmmword [0x14011f7c0]
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 0x140097591
cmp r10d, r13d
ja 0x140099f41
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, [0x140099f50]
jne 0x1400975b5
movzx ecx, r9b
lea r8, [0x14011fa0c]
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 0x14009761c
mov ecx, dword [rsp + 0x28]
xor r10d, r10d
jmp 0x1400975f2
movzx esi, byte [r13 + r10]
mov byte [rax + r10], sil
inc r10
cmp rcx, r10
je 0x14009761c
cmp r9b, 6
ja case.default.0x1400975ff
movsxd rsi, dword [r12 + r11*4]
add rsi, r12
jmp rsi
movzx esi, byte [r8 + r10]
add sil, byte [r13 + r10]
jmp 0x1400975e6
movzx esi, byte [r8 + r10]
shr sil, 1
add sil, byte [r13 + r10]
jmp 0x1400975e6
cmp edi, 8
jne 0x140097638
cmp r15d, ebp
je 0x14009762b
mov byte [rax + r15], 0xff
add r13, r15
mov rbp, qword [rsp + 0x188]
jmp 0x140097669
cmp edi, 0x10
jne 0x14009765d
movsxd rcx, dword [rsp + 0x28]
cmp r15d, ebp
je 0x140097650
mov byte [rax + rcx], 0xff
mov byte [rcx + rax + 1], 0xff
add r13, rcx
mov r15, qword [rsp + 0x38]
mov rbp, r15
jmp 0x14009766e
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 0x1400976bd
mov rdx, qword [rsp + 0x138]
lea r10d, [rdx - 1]
imul r10d, dword [rsp + 0x28]
movsxd r14, r10d
cmp r9b, 6
ja case.default.0x1400976ab
lea r9, [0x140099f88]
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.0x1400976ab
cmp r9b, 6
ja case.default.0x1400976d5
lea r10, [0x140099f6c]
movsxd r9, dword [r10 + r11*4]
add r9, r10
jmp r9
mov r12d, dword [rsp + 0x44]
test r12d, r12d
je case.default.0x1400976d5
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 0x140097726
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, r15
inc rdi
dec r12d
je 0x140098dab
cmp dword [rsp + 0x28], 0
jle 0x14009770f
cmp dword [rsp + 0x28], 8
jb 0x14009776f
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 0x1400977e2
cmp dword [rsp + 0x28], 0x20
jae 0x140097774
xor ebx, ebx
jmp 0x1400977c0
xor r13d, r13d
jmp 0x1400977e2
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 0x140097780
cmp r10, r9
je 0x14009770f
mov rbx, r10
mov r13, r10
test r9b, 0x18
je 0x1400977e2
nop word cs:[rax + rax]
mov r15, qword [r14 + rbx]
mov qword [rcx + rbx], r15
add rbx, 8
cmp r11, rbx
jne 0x1400977c0
mov r13, r11
cmp r11, r9
mov r15, qword [rsp + 0x38]
je 0x14009770f
mov r15, r13
not r15
add r15, r9
test rsi, rsi
je 0x140097811
mov rbx, rsi
nop word cs:[rax + rax]
movzx ebp, byte [r14 + r13]
mov byte [rcx + r13], bpl
inc r13
dec rbx
jne 0x140097800
cmp r15, 3
mov r15, qword [rsp + 0x38]
jb 0x14009770f
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 0x140097820
jmp 0x14009770f
test r10d, r10d
jle case.default.0x1400976ab
movsxd r8, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x140098fbe
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140097899
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.0x1400976ab
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 0x1400978b7
jmp case.default.0x1400976ab
test r10d, r10d
jle case.default.0x1400976ab
mov edx, r10d
cmp r10d, 8
jae 0x140098f27
xor r9d, r9d
mov rcx, r9
not rcx
add rcx, rdx
mov r8, rdx
and r8, 3
je 0x140097948
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 0x14009792b
neg r10
mov r9, r10
cmp rcx, 3
jb case.default.0x1400976ab
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 0x140097967
jmp case.default.0x1400976ab
test r10d, r10d
jle case.default.0x1400976ab
movsxd r9, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x140098ff8
xor r11d, r11d
mov r10, r11
test dl, 1
je 0x140097a03
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.0x1400976ab
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 0x140097a31
jmp case.default.0x1400976ab
test r10d, r10d
jle case.default.0x1400976ab
movsxd rbx, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x140098f64
xor r9d, r9d
sub rbp, rbx
add rax, rbp
mov r10, qword [rsp + 0xa0]
add r10, rax
mov r11, r13
jmp 0x140097ae9
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.0x1400976ab
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 0x140097ab5
mov edi, ebp
jmp 0x140097ab5
test r10d, r10d
jle case.default.0x1400976ab
movsxd r8, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x14009903d
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140097b73
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.0x1400976ab
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 0x140097b91
jmp case.default.0x1400976ab
test r10d, r10d
jle case.default.0x1400976ab
movsxd r8, dword [rsp + 0x28]
mov edx, r10d
cmp r10d, 8
jae 0x140099077
xor r9d, r9d
mov r10, r9
test dl, 1
je 0x140097bfd
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.0x1400976ab
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 0x140097c17
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 [0x140111e90]
movdqa xmm15, xmmword [0x14011f7c0]
jmp 0x140098ebe
mov esi, dword [rsp + 0x44]
test esi, esi
je case.default.0x1400976d5
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 0x140097d0a
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, r15
inc r13
add r12, r15
add rax, r15
dec r10d
je 0x140098dab
cmp dword [rsp + 0x28], 0
jle 0x140097ced
cmp dword [rsp + 0x28], 8
jae 0x140097d77
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140097d3b
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 0x140097ced
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 0x140097d50
jmp 0x140097ced
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 0x140097d18
jb 0x140097d18
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140097d1a
cmp dword [rsp + 0x28], 0x20
jae 0x140097db9
xor ebx, ebx
jmp 0x140097e0a
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 0x140097dbb
cmp r11, r9
je 0x140097ced
mov rbx, r11
mov rsi, r11
test r9b, 0x18
je 0x140097d1a
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 0x140097e0a
mov rsi, rdi
cmp rdi, r9
je 0x140097ced
jmp 0x140097d1a
mov r11d, dword [rsp + 0x44]
test r11d, r11d
je case.default.0x1400976d5
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 0x140097ee1
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 0x140098dab
mov dword [rsp + 0x60], r11d
cmp dword [rsp + 0x28], 0
jle 0x140097eb3
cmp dword [rsp + 0x28], 8
jae 0x140097fcd
xor r13d, r13d
mov r9, r13
not r9
add r9, qword [rsp + 0x90]
test r10, r10
je 0x140097f58
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 0x140097f30
neg r15
mov r13, r15
mov rsi, qword [rsp + 0x110]
cmp r9, 3
jb 0x140097eb3
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 0x140097f80
jmp 0x140097eb3
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 0x140097ef8
jb 0x140097ef8
mov r13d, 0
cmp dword [rsp + 0x40], 0x20
jb 0x140097efb
cmp dword [rsp + 0x28], 0x20
jae 0x14009801a
xor r9d, r9d
jmp 0x140098084
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 0x140098025
cmp r11, qword [rsp + 0x90]
je 0x140097eb3
mov r13, qword [rsp + 0xe0]
mov r9, r13
test byte [rsp + 0x90], 0x18
je 0x140097efb
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 0x14009808c
mov r13, r11
cmp r11, qword [rsp + 0x90]
je 0x140097eb3
jmp 0x140097efb
mov r13d, dword [rsp + 0x44]
test r13d, r13d
je 0x140098f1d
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 0x140098149
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 0x140098dab
cmp dword [rsp + 0x28], 0
jle 0x14009812a
cmp dword [rsp + 0x28], 8
jae 0x1400981ca
xor esi, esi
mov rdi, rsi
test r10b, 1
je 0x140098183
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 0x14009812a
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 0x140098190
jmp 0x14009812a
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 0x140098157
jb 0x140098157
cmp dword [rsp + 0x40], 0x20
jb 0x140098157
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140098159
cmp dword [rsp + 0x28], 0x20
jae 0x14009821e
xor edi, edi
jmp 0x1400982f5
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 0x140098228
cmp rdi, r10
je 0x14009812a
mov rsi, qword [rsp + 0x90]
mov rdi, rsi
test r10b, 0x18
je 0x140098159
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 0x1400982f5
mov rsi, r11
cmp r11, r10
je 0x14009812a
jmp 0x140098159
mov r10d, dword [rsp + 0x44]
test r10d, r10d
je case.default.0x1400976d5
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 0x1400983ed
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 0x140098dab
mov dword [rsp + 0xe0], r10d
cmp dword [rsp + 0x28], 0
jle 0x1400983b3
cmp dword [rsp + 0x28], 8
jae 0x14009840a
xor edi, edi
jmp 0x1400989e0
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 0x1400989b5
jb 0x1400989b9
cmp qword [rsp + 0x178], 0x10
jb 0x1400989b1
cmp dword [rsp + 0x40], 0x10
jb 0x1400989ad
mov edi, 0
cmp dword [rsp + 0x4c], 0x10
jb 0x1400989e0
cmp dword [rsp + 0x28], 0x10
jae 0x140098635
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 0x140098483
mov rdi, r10
cmp r10, r11
jne 0x1400989e0
jmp 0x1400983b3
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 0x140098645
cmp r10, r11
movdqa xmm14, xmm6
movdqa xmm15, xmmword [0x14011f7c0]
je 0x1400983b3
mov rdi, qword [rsp + 0x128]
mov rsi, rdi
test r11b, 8
je 0x1400989e0
jmp 0x14009847b
xor edi, edi
jmp 0x1400989e0
xor edi, edi
jmp 0x1400989e0
xor edi, edi
jmp 0x1400989e0
xor edi, edi
jmp 0x1400989e0
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 0x1400983b3
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 0x1400989c0
mov ebp, r15d
jmp 0x1400989c0
mov esi, dword [rsp + 0x44]
test esi, esi
je case.default.0x1400976d5
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 0x140098aa6
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 0x140098dab
cmp dword [rsp + 0x28], 0
jle 0x140098a84
cmp dword [rsp + 0x28], 8
jae 0x140098b1b
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140098adb
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 0x140098a84
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 0x140098af0
jmp 0x140098a84
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 0x140098ab4
jb 0x140098ab4
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140098ab6
cmp dword [rsp + 0x28], 0x20
jae 0x140098b64
xor r15d, r15d
jmp 0x140098bc9
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 0x140098b66
cmp r11, r9
je 0x140098a84
mov r15, r11
mov rsi, r11
test r9b, 0x18
je 0x140098ab6
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 0x140098bc9
mov rsi, rdi
cmp rdi, r9
je 0x140098a84
jmp 0x140098ab6
mov esi, dword [rsp + 0x44]
test esi, esi
je case.default.0x1400976d5
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 0x140098c7d
mov byte [rcx + r8], 0xff
add r14, r8
add rcx, r15
inc r13
add r12, r15
add rax, r15
dec r10d
je 0x140098dab
cmp dword [rsp + 0x28], 0
jle 0x140098c60
cmp dword [rsp + 0x28], 8
jae 0x140098ce7
xor esi, esi
mov rbp, rsi
test r9b, 1
je 0x140098cae
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 0x140098c60
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 0x140098cc0
jmp 0x140098c60
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 0x140098c8b
jb 0x140098c8b
mov esi, 0
cmp dword [rsp + 0x4c], 0x20
jb 0x140098c8d
cmp dword [rsp + 0x28], 0x20
jae 0x140098d29
xor ebx, ebx
jmp 0x140098d7a
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 0x140098d2b
cmp r11, r9
je 0x140098c60
mov rbx, r11
mov rsi, r11
test r9b, 0x18
je 0x140098c8d
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 0x140098d7a
mov rsi, rdi
cmp rdi, r9
je 0x140098c60
jmp 0x140098c8d
mov r14, r13
mov edi, dword [rsp + 0x2b0]
cmp edi, 0x10
jne 0x140098e95
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 0x140098f03
add rdx, qword [r12 + 0x18]
movsxd rax, dword [rsp + 0x28]
inc rax
cmp r13d, 8
jb 0x140098e7b
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 0x140098e1a
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 0x140098ebe
add rdx, rax
mov eax, ecx
mov rcx, qword [rsp + 0x38]
mov byte [rdx], 0xff
add rdx, rcx
dec eax
jne 0x140098e89
jmp 0x140098ebe
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 0x140099a55
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 0x14009756b
jmp 0x140099a49
mov rcx, qword [rsp + 0xb8]
inc rcx
cmp rcx, qword [rsp + 0xf0]
jne 0x140098ed7
jmp 0x140099ed3
mov r14, qword [rsp + 0x50]
jmp 0x140098dab
lea r11, [rax + rbp]
mov r9, r11
sub r9, r13
cmp r9, 0x20
jb 0x1400978f9
jb 0x1400978f9
mov r9d, 0
cmp dword [rsp + 0x40], 0x20
jb 0x1400978fc
cmp r10d, 0x20
jae 0x1400990b1
xor r9d, r9d
jmp 0x140099115
lea r11, [rax + rbp]
sub r11, r13
mov r9, qword [rsp + 0x150]
add r9, rbx
cmp r11, 0x10
jb 0x140097a9c
jb 0x140097a9c
cmp r9, 0x10
jb 0x140097a9c
cmp dword [rsp + 0x40], 0x10
jb 0x140097a9c
mov r9d, 0
cmp dword [rsp + 0x28], 0x10
jb 0x140097a9f
cmp r10d, 0x10
jae 0x14009914d
xor r9d, r9d
jmp 0x1400994c6
lea r9, [rax + rbp]
sub r9, r13
cmp r9, 0x20
jb 0x140097873
jb 0x140097873
mov r9d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140097876
cmp r10d, 0x20
jae 0x1400996ca
xor r9d, r9d
jmp 0x140099733
lea r11, [rax + rbp]
sub r11, r13
cmp r11, 0x20
jb 0x1400979d2
jb 0x1400979d2
cmp dword [rsp + 0x40], 0x20
jb 0x1400979d2
mov r11d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x1400979d5
cmp r10d, 0x20
jae 0x140099774
xor r11d, r11d
jmp 0x14009986a
lea r9, [rax + rbp]
sub r9, r13
cmp r9, 0x20
jb 0x140097b4a
jb 0x140097b4a
mov r9d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140097b4d
cmp r10d, 0x20
jae 0x1400998ca
xor r9d, r9d
jmp 0x14009994d
lea r9, [rax + rbp]
sub r9, r13
cmp r9, 0x20
jb 0x140097bd7
jb 0x140097bd7
mov r9d, 0
cmp dword [rsp + 0x28], 0x20
jb 0x140097bda
cmp r10d, 0x20
jae 0x14009999f
xor r9d, r9d
jmp 0x140099a08
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 0x1400990ca
cmp r9, rdx
je case.default.0x1400976ab
test dl, 0x18
je 0x1400978fc
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 0x14009911f
cmp r9, rdx
jne 0x1400978fc
jmp case.default.0x1400976ab
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 [0x140111e90]
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 0x140099176
cmp r9, rdx
mov r13, qword [rsp + 0x50]
je case.default.0x1400976ab
test dl, 8
je 0x140097a9f
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 [0x140111e90]
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 0x1400994fc
mov r9, r15
cmp r15, rdx
mov r13, qword [rsp + 0x50]
je case.default.0x1400976ab
jmp 0x140097a9f
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 0x1400996e8
cmp r9, rdx
je case.default.0x1400976ab
test dl, 0x18
je 0x140097876
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 0x140099746
cmp r9, rdx
jne 0x140097876
jmp case.default.0x1400976ab
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 0x1400997a6
cmp r11, rdx
je case.default.0x1400976ab
test dl, 0x18
je 0x1400979d5
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 0x140099881
cmp r11, rdx
jne 0x1400979d5
jmp case.default.0x1400976ab
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 [0x14011f7c0]
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 0x1400998f0
cmp r9, rdx
je case.default.0x1400976ab
test dl, 0x18
je 0x140097b4d
mov r10, r9
mov r9d, edx
and r9d, 0xfffffff8
mov r11, rbp
sub r11, r8
add r11, rax
movdqa xmm2, xmmword [0x14011f7c0]
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 0x140099968
cmp r9, rdx
jne 0x140097b4d
jmp case.default.0x1400976ab
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 0x1400999bd
cmp r9, rdx
je case.default.0x1400976ab
test dl, 0x18
je 0x140097bda
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 0x140099a1b
cmp r9, rdx
jne 0x140097bda
jmp case.default.0x1400976ab
lea r8, str.invalid_filter
jmp 0x1400972a9
cmp edi, 8
jge 0x140099ec5
mov ecx, 1
cmp dword [rsp + 0x2a8], 0
je 0x1400972c5
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 0x140099aef
inc r13
add r14d, r10d
cmp r13, qword [rsp + 0xf0]
je 0x1400972c5
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 0x140099b1f
mov rax, qword [rsp + 0x28]
lea r8, [0x14011f980]
movzx ebx, byte [rax + r8]
lea rbp, [rsi + rdx]
mov r14d, r14d
mov eax, dword [rsp + 0x2b0]
cmp eax, 4
je 0x140099d8a
cmp eax, 2
je 0x140099cd5
cmp eax, 1
jne 0x140099deb
mov r8d, dword [rsp + 0x48]
mov eax, r8d
cmp r8d, 8
jl 0x140099c11
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 0x140099b62
add rbp, r14
add r12, r14
mov rsi, r12
test eax, eax
jle 0x140099deb
movzx r8d, byte [rbp]
sar r8b, 7
and r8b, bl
mov byte [rsi], r8b
cmp eax, 1
je 0x140099deb
movzx r8d, byte [rbp]
add r8b, r8b
sar r8b, 7
and r8b, bl
mov byte [rsi + 1], r8b
cmp eax, 3
jb 0x140099deb
movzx r8d, byte [rbp]
shl r8b, 2
sar r8b, 7
and r8b, bl
mov byte [rsi + 2], r8b
cmp eax, 3
je 0x140099deb
movzx r8d, byte [rbp]
shl r8b, 3
sar r8b, 7
and r8b, bl
mov byte [rsi + 3], r8b
cmp eax, 5
jb 0x140099deb
movzx r8d, byte [rbp]
shl r8b, 4
sar r8b, 7
and r8b, bl
mov byte [rsi + 4], r8b
cmp eax, 5
je 0x140099deb
movzx r8d, byte [rbp]
shl r8b, 5
sar r8b, 7
and r8b, bl
mov byte [rsi + 5], r8b
cmp eax, 7
jb 0x140099deb
movzx eax, byte [rbp]
shl al, 6
sar al, 7
and al, bl
mov byte [rsi + 6], al
jmp 0x140099deb
mov eax, dword [rsp + 0x48]
mov r8d, eax
cmp eax, 4
jl 0x140099d48
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 0x140099cea
add rbp, r14
add r12, r14
mov rsi, r12
test r8d, r8d
jle 0x140099deb
movzx eax, byte [rbp]
shr al, 6
mul bl
mov byte [rsi], al
cmp r8d, 1
je 0x140099deb
movzx eax, byte [rbp]
shr al, 4
and al, 3
mul bl
mov byte [rsi + 1], al
cmp r8d, 3
jb 0x140099deb
movzx eax, byte [rbp]
shr al, 2
and al, 3
mul bl
mov byte [rsi + 2], al
jmp 0x140099deb
mov r8d, dword [rsp + 0x48]
mov eax, r8d
cmp r8d, 2
jl 0x140099ddb
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 0x140099da0
add rbp, r14
add r12, r14
mov rsi, r12
cmp eax, 1
jne 0x140099deb
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 0x140099adb
mov rax, qword [r12 + 0x18]
add rdi, rax
cmp dword [rsp + 0xb0], 1
jne 0x140099e5e
test r9d, r9d
js 0x140099adb
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 0x140099e32
jmp 0x140099adb
test r9d, r9d
js 0x140099adb
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 0x140099e7b
jmp 0x140099adb
mov ecx, 1
cmp edi, 0x10
jne 0x1400972c5
mov r8, qword [rsp + 0xe8]
imul r8d, dword [rsp + 0x2a8]
mov ecx, 1
test r8d, r8d
je 0x1400972c5
mov rax, qword [r12 + 0x18]
cmp r8d, 4
jb 0x140099f1f
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 0x140099f03
test r8b, 3
je 0x1400972c5
and r8d, 3
xor edx, edx
rol word [rax + rdx*2], 8
inc rdx
cmp r8d, edx
jne 0x140099f2f
jmp 0x1400972c5
lea r8, str.invalid_width
jmp 0x1400972a9