Function at 0x22daf0d50
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2b8
movaps xmmword [rsp + 0x210], xmm6
movaps xmmword [rsp + 0x220], xmm7
movaps xmmword [rsp + 0x230], xmm8
movaps xmmword [rsp + 0x240], xmm9
movaps xmmword [rsp + 0x250], xmm10
movaps xmmword [rsp + 0x260], xmm11
movaps xmmword [rsp + 0x270], xmm12
movaps xmmword [rsp + 0x280], xmm13
movaps xmmword [rsp + 0x290], xmm14
movaps xmmword [rsp + 0x2a0], xmm15
cmp dword [rsp + 0x330], 0x10
mov qword [rsp + 0x300], rcx
mov ebx, r8d
mov eax, r9d
mov qword [rsp + 0x308], rdx
mov dword [rsp + 0x318], r9d
je 0x22daf409e
mov dword [rsp + 0x88], r9d
mov edi, 1
mov r14d, 1
mov rax, rcx
mov rax, qword [rax]
mov eax, dword [rax + 8]
mov dword [rsp + 0xa8], eax
cmp dword [rsp + 0x318], eax
je 0x22daf0e1f
add eax, 1
cmp eax, dword [rsp + 0x318]
jne 0x22daf0e90
mov eax, dword [rsp + 0x320]
or eax, dword [rsp + 0x328]
js 0x22daf0e5e
mov eax, dword [rsp + 0x320]
mov dword [rsp + 0xac], eax
mov eax, dword [rsp + 0x328]
test eax, eax
je 0x22daf0eb0
mov eax, 0x7fffffff
cdq
idiv dword [rsp + 0x328]
cmp dword [rsp + 0x320], eax
jle 0x22daf0eb0
mov rax, qword [rsp + 0x300]
mov qword [rax + 0x18], 0
lea rcx, [0x22dd0c480]
lea rbx, [0x22dd76af6]
call fcn.22dcfcd40
mov qword [rax], rbx
xor eax, eax
jmp 0x22daf0f49
mov r8d, 0x11ff
lea rdx, [0x22dd76a38]
lea rcx, str.out_n__s__img_n__out_n__s__img_n1
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22daf0e1f
mov esi, dword [rsp + 0x88]
test esi, esi
js 0x22daf0e5e
mov ecx, dword [rsp + 0x328]
imul ecx, dword [rsp + 0x320]
test esi, esi
je 0x22daf0eda
mov eax, 0x7fffffff
cdq
idiv esi
cmp ecx, eax
jg 0x22daf0e5e
imul ecx, dword [rsp + 0x88]
movsxd rcx, ecx
call sub.msvcrt.dll_malloc
mov r12, rax
mov rax, qword [rsp + 0x300]
mov qword [rax + 0x18], r12
test r12, r12
je 0x22daf0e6e
mov esi, dword [rsp + 0xa8]
test esi, esi
js 0x22daf0f31
mov eax, dword [rsp + 0x320]
test eax, eax
je 0x22daf0fb8
mov eax, 0x7fffffff
cdq
idiv dword [rsp + 0x320]
cmp esi, eax
jle 0x22daf0fb8
lea rcx, [0x22dd0c480]
lea rbx, [0x22dd76b29]
call fcn.22dcfcd40
mov qword [rax], rbx
xor eax, eax
movaps xmm6, xmmword [rsp + 0x210]
movaps xmm7, xmmword [rsp + 0x220]
movaps xmm8, xmmword [rsp + 0x230]
movaps xmm9, xmmword [rsp + 0x240]
movaps xmm10, xmmword [rsp + 0x250]
movaps xmm11, xmmword [rsp + 0x260]
movaps xmm12, xmmword [rsp + 0x270]
movaps xmm13, xmmword [rsp + 0x280]
movaps xmm14, xmmword [rsp + 0x290]
movaps xmm15, xmmword [rsp + 0x2a0]
add rsp, 0x2b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x330]
test eax, eax
js 0x22daf0f31
mov esi, dword [rsp + 0xa8]
imul esi, dword [rsp + 0x320]
mov r15d, dword [rsp + 0x330]
mov dword [rsp + 0x18c], esi
test r15d, r15d
je 0x22daf1014
mov eax, 0x7fffffff
cdq
idiv dword [rsp + 0x330]
cmp esi, eax
jg 0x22daf0f31
mov eax, dword [rsp + 0x330]
imul eax, esi
cmp eax, 0x7ffffff8
jg 0x22daf0f31
mov eax, dword [rsp + 0x330]
imul eax, dword [rsp + 0x320]
imul eax, dword [rsp + 0xa8]
add eax, 7
shr eax, 3
mov dword [rsp + 0xa0], eax
add eax, 1
imul eax, dword [rsp + 0x328]
cmp eax, ebx
ja 0x22daf40c4
mov r13d, dword [rsp + 0x328]
test r13d, r13d
je 0x22daf4116
mov eax, dword [rsp + 0x318]
imul eax, dword [rsp + 0x320]
mov dword [rsp + 0x80], 0
mov ebx, dword [rsp + 0xa8]
mov dword [rsp + 0x78], 0
imul edi, eax
mov dword [rsp + 0xe4], eax
imul r14d, ebx
cmp dword [rsp + 0x330], 7
setle dl
cmp dword [rsp + 0x318], ebx
sete al
mov dword [rsp + 0x7c], edi
or edx, eax
lea eax, [rbx + 1]
mov r15d, r14d
mov r14, qword [rsp + 0x308]
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0x320]
mov byte [rsp + 0xc0], dl
sub eax, 1
mov dword [rsp + 0xe0], eax
nop dword [rax + rax]
mov eax, dword [rsp + 0x80]
movzx esi, byte [r14]
lea r11, [r14 + 1]
mov qword [rsp + 0x90], rax
add r12, rax
cmp esi, 4
jg 0x22daf4120
cmp dword [rsp + 0x330], 7
jg 0x22daf2350
mov eax, dword [rsp + 0xa0]
cmp dword [rsp + 0x320], eax
jb 0x22daf4bc9
mov edi, eax
mov eax, dword [rsp + 0xe4]
mov ebp, dword [rsp + 0x78]
mov r15d, 1
mov dword [rsp + 0xac], edi
sub eax, edi
add r12, rax
mov eax, dword [rsp + 0x7c]
mov rbx, r12
sub rbx, rax
test ebp, ebp
jne 0x22daf115d
lea rax, [0x22dd774b1]
movzx esi, byte [rax + rsi]
mov r8, r11
mov rcx, r12
xor edx, edx
mov r10d, esi
lea r9, [0x22dd76b80]
nop
cmp esi, 6
ja case.default.0x22daf117c
movsxd rax, dword [r9 + r10*4]
add rax, r9
jmp rax
movzx eax, byte [r8]
mov byte [rcx], al
add rdx, 1
add r8, 1
add rcx, 1
cmp r15d, edx
jg 0x22daf1170
cmp dword [rsp + 0x330], 8
je 0x22daf2388
cmp dword [rsp + 0x330], 0x10
je 0x22daf3f60
add r14, 2
add r12, 1
add rbx, 1
cmp byte [rsp + 0xc0], 0
je 0x22daf23be
mov eax, dword [rsp + 0xac]
sub eax, 1
imul eax, r15d
mov r13d, eax
cdqe
mov qword [rsp + 0x20], rax
cmp esi, 6
ja case.default.0x22daf11fe
lea rdx, [0x22dd76b9c]
mov esi, esi
movsxd rax, dword [rdx + rsi*4]
add rax, rdx
jmp rax
movzx eax, byte [rbx + rdx]
add al, byte [r8]
mov byte [rcx], al
jmp case.default.0x22daf117c
movzx eax, byte [rbx + rdx]
shr al, 1
add al, byte [r8]
mov byte [rcx], al
jmp case.default.0x22daf117c
test r13d, r13d
jle case.default.0x22daf11fe
mov ecx, r15d
neg ecx
movsxd rcx, ecx
mov rax, rcx
not rax
cmp rax, 0xe
lea eax, [r13 - 1]
seta dl
cmp eax, 0xe
seta al
test dl, al
je 0x22daf51db
lea rdx, [r14 + 1]
mov rax, r12
sub rax, rdx
cmp rax, 0xe
jbe 0x22daf51db
mov edx, r13d
movdqa xmm3, xmmword [0x22dd77850]
add rcx, r12
xor eax, eax
shr edx, 4
shl rdx, 4
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm5, xmmword [r14 + rax]
psrlw xmm0, 1
pand xmm0, xmm3
paddb xmm0, xmm5
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x22daf1280
mov ecx, r13d
and ecx, 0xfffffff0
test r13b, 0xf
je case.default.0x22daf11fe
mov eax, ecx
mov edx, ecx
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 1]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 2]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 3]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 4]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 5]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 6]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 7]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 8]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 9]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 0xa]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 0xb]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 0xc]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 0xd]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [rcx + 0xe]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx eax, byte [r12 + rax]
shr al, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
jmp case.default.0x22daf11fe
test r13d, r13d
jle case.default.0x22daf11fe
mov eax, r15d
lea edx, [r13 - 1]
neg eax
cmp edx, 0xe
cdqe
seta cl
mov rdx, rax
lea r8, [rbx + rax + 1]
not rdx
cmp rdx, 0xe
seta dl
and ecx, edx
mov rdx, r12
sub rdx, r8
lea r8, [r14 + 1]
cmp rdx, 0xe
seta dl
and edx, ecx
mov rcx, r12
sub rcx, r8
cmp rcx, 0xe
seta cl
test dl, cl
je 0x22daf22af
lea rcx, [rbx + 1]
mov rdx, r12
sub rdx, rcx
cmp rdx, 0xe
jbe 0x22daf22af
lea rbp, [rbx + rax]
lea rdi, [r12 + rax]
mov eax, r13d
movdqa xmm4, xmmword [0x22dd77860]
shr eax, 4
pxor xmm14, xmm14
pxor xmm13, xmm13
shl rax, 4
mov rdx, rax
xor eax, eax
movdqu xmm0, xmmword [rbp + rax]
pxor xmm5, xmm5
movdqu xmm7, xmmword [rdi + rax]
movdqu xmm8, xmmword [rdi + rax]
movdqa xmm3, xmm5
movdqu xmm1, xmmword [rbp + rax]
punpckhbw xmm0, xmm5
punpckhbw xmm7, xmm3
movdqa xmm6, xmm0
punpcklbw xmm8, xmm3
punpcklbw xmm1, xmm5
punpckhwd xmm6, xmm14
movdqa xmm15, xmm8
movdqa xmm2, xmm1
movaps xmmword [rsp + 0x60], xmm6
movdqu xmm6, xmmword [rbx + rax]
punpcklwd xmm15, xmm14
punpcklwd xmm2, xmm14
movaps xmmword [rsp + 0x30], xmm2
movdqa xmm9, xmm0
punpckhwd xmm8, xmm14
punpckhwd xmm1, xmm14
punpcklbw xmm6, xmm5
movdqu xmm5, xmmword [rbx + rax]
punpcklwd xmm9, xmm14
movdqa xmm2, xmm8
movdqa xmm11, xmm6
movaps xmmword [rsp + 0x50], xmm9
punpckhwd xmm6, xmm14
movdqa xmm12, xmm7
punpckhbw xmm5, xmm3
punpcklwd xmm11, xmm14
movdqa xmm3, xmm15
movaps xmmword [rsp + 0x40], xmm1
paddd xmm3, xmm11
psubd xmm3, xmmword [rsp + 0x30]
punpcklwd xmm12, xmm14
paddd xmm2, xmm6
psubd xmm2, xmmword [rsp + 0x40]
movdqa xmm10, xmm5
movdqa xmm9, xmm3
punpcklwd xmm10, xmm14
movdqa xmm1, xmm12
psubd xmm9, xmm15
paddd xmm1, xmm10
punpckhwd xmm7, xmm14
movdqa xmm15, xmm9
psubd xmm1, xmmword [rsp + 0x50]
punpckhwd xmm5, xmm14
psrad xmm15, 0x1f
movdqa xmm0, xmm7
pxor xmm9, xmm15
paddd xmm0, xmm5
psubd xmm0, xmmword [rsp + 0x60]
psubd xmm9, xmm15
movdqa xmm15, xmm2
movaps xmmword [rsp + 0x90], xmm9
psubd xmm15, xmm8
movdqa xmm8, xmm15
movdqa xmm9, xmm15
psrad xmm8, 0x1f
pxor xmm9, xmm8
movdqa xmm15, xmm9
psubd xmm15, xmm8
movdqa xmm8, xmm1
psubd xmm8, xmm12
movdqa xmm12, xmm8
psrad xmm12, 0x1f
pxor xmm8, xmm12
movdqa xmm9, xmm12
movdqa xmm12, xmm8
movdqa xmm8, xmm0
psubd xmm8, xmm7
psubd xmm12, xmm9
movdqa xmm7, xmm8
psrad xmm7, 0x1f
pxor xmm8, xmm7
psubd xmm8, xmm7
movdqa xmm7, xmm3
psubd xmm3, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0xb0], xmm8
psubd xmm7, xmm11
movdqa xmm11, xmm7
psrad xmm11, 0x1f
pxor xmm7, xmm11
psubd xmm7, xmm11
movdqa xmm11, xmm2
psubd xmm2, xmmword [rsp + 0x40]
psubd xmm11, xmm6
movdqa xmm6, xmm11
movdqa xmm8, xmm11
psrad xmm6, 0x1f
pxor xmm8, xmm6
psubd xmm8, xmm6
movdqa xmm6, xmm1
psubd xmm1, xmmword [rsp + 0x50]
psubd xmm6, xmm10
movdqa xmm11, xmm6
psrad xmm11, 0x1f
pxor xmm6, xmm11
psubd xmm6, xmm11
movdqa xmm11, xmm0
psubd xmm0, xmmword [rsp + 0x60]
psubd xmm11, xmm5
movdqa xmm5, xmm11
movdqa xmm9, xmm11
psrad xmm5, 0x1f
pxor xmm9, xmm5
psubd xmm9, xmm5
movdqa xmm5, xmm3
psrad xmm5, 0x1f
pxor xmm3, xmm5
psubd xmm3, xmm5
movdqa xmm5, xmm2
psrad xmm5, 0x1f
pxor xmm2, xmm5
psubd xmm2, xmm5
movdqa xmm5, xmm1
psrad xmm5, 0x1f
pxor xmm1, xmm5
psubd xmm1, xmm5
movdqa xmm5, xmm0
psrad xmm5, 0x1f
pxor xmm0, xmm5
psubd xmm0, xmm5
movdqa xmm5, xmm7
pcmpgtd xmm5, xmm3
movdqa xmm10, xmm5
pand xmm3, xmm5
pandn xmm10, xmm7
por xmm3, xmm10
movdqa xmm10, xmm8
pcmpgtd xmm10, xmm2
movdqa xmm7, xmm10
pand xmm2, xmm10
pandn xmm7, xmm8
por xmm2, xmm7
movdqa xmm7, xmm6
pcmpgtd xmm7, xmm1
movdqa xmm11, xmm7
pand xmm1, xmm7
pandn xmm11, xmm6
movdqa xmm6, xmm9
pcmpgtd xmm6, xmm0
por xmm1, xmm11
movdqa xmm11, xmm6
pand xmm0, xmm6
pandn xmm11, xmm9
movdqa xmm9, xmmword [rsp + 0xb0]
movdqa xmm8, xmm11
movdqa xmm11, xmm6
por xmm8, xmm0
pcmpeqd xmm11, xmm13
movdqa xmm0, xmmword [rsp + 0x90]
pcmpgtd xmm9, xmm8
movdqa xmm8, xmm7
pcmpgtd xmm0, xmm3
pcmpeqd xmm8, xmm13
movdqa xmm3, xmm15
pcmpgtd xmm3, xmm2
movdqa xmm2, xmm12
movdqa xmm12, xmm10
pcmpgtd xmm2, xmm1
movdqa xmm1, xmm5
pand xmm11, xmm9
pcmpeqd xmm1, xmm13
pcmpeqd xmm12, xmm13
pand xmm5, xmm0
pand xmm10, xmm3
pand xmm6, xmm9
pand xmm8, xmm2
pcmpeqd xmm9, xmm13
pand xmm7, xmm2
pand xmm1, xmm0
pcmpeqd xmm0, xmm13
pand xmm12, xmm3
pcmpeqd xmm3, xmm13
pcmpeqd xmm2, xmm13
movdqa xmm15, xmm0
punpcklwd xmm0, xmm3
punpckhwd xmm15, xmm3
movdqa xmm3, xmm0
punpcklwd xmm0, xmm15
punpckhwd xmm3, xmm15
punpcklwd xmm0, xmm3
movdqa xmm3, xmm2
punpcklwd xmm2, xmm9
punpckhwd xmm3, xmm9
movdqa xmm9, xmm2
pand xmm0, xmm4
punpckhwd xmm9, xmm3
punpcklwd xmm2, xmm3
movdqu xmm3, xmmword [rbp + rax]
punpcklwd xmm2, xmm9
pand xmm2, xmm4
packuswb xmm0, xmm2
movdqu xmm2, xmmword [rdi + rax]
pand xmm2, xmm0
pandn xmm0, xmm3
por xmm0, xmm2
movdqa xmm2, xmm5
punpcklwd xmm5, xmm10
punpckhwd xmm2, xmm10
movdqa xmm3, xmm5
punpckhwd xmm3, xmm2
punpcklwd xmm5, xmm2
movdqa xmm2, xmm7
punpcklwd xmm7, xmm6
punpckhwd xmm2, xmm6
punpcklwd xmm5, xmm3
movdqa xmm3, xmm7
punpcklwd xmm7, xmm2
pand xmm5, xmm4
punpckhwd xmm3, xmm2
movdqu xmm2, xmmword [rbp + rax]
punpcklwd xmm7, xmm3
pand xmm7, xmm4
packuswb xmm5, xmm7
pand xmm2, xmm5
pandn xmm5, xmm0
movdqa xmm0, xmm1
punpcklwd xmm1, xmm12
punpckhwd xmm0, xmm12
por xmm5, xmm2
movdqa xmm2, xmm1
punpcklwd xmm1, xmm0
punpckhwd xmm2, xmm0
movdqa xmm0, xmm8
punpcklwd xmm8, xmm11
punpckhwd xmm0, xmm11
punpcklwd xmm1, xmm2
movdqa xmm2, xmm8
punpckhwd xmm2, xmm0
punpcklwd xmm8, xmm0
pand xmm1, xmm4
movdqu xmm0, xmmword [rbx + rax]
punpcklwd xmm8, xmm2
pand xmm8, xmm4
packuswb xmm1, xmm8
pand xmm0, xmm1
pandn xmm1, xmm5
por xmm1, xmm0
movdqu xmm0, xmmword [r14 + rax]
paddb xmm0, xmm1
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x22daf1550
mov edx, r13d
and edx, 0xfffffff0
test r13b, 0xf
je case.default.0x22daf11fe
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x30], r13d
jmp 0x22daf1a33
cmp r9d, r8d
cmovle ecx, esi
add ecx, r15d
mov byte [r12 + rdx], cl
add rdx, 1
cmp dword [rsp + 0x30], edx
jle 0x22daf40ba
movzx r9d, byte [rbx + rdx]
movzx r11d, byte [rdi + rdx]
movzx r8d, byte [rbp + rdx]
movzx r15d, byte [r14 + rdx]
lea eax, [r9 + r11]
mov esi, r9d
sub eax, r8d
mov ecx, r8d
mov r10d, eax
sub r10d, r9d
mov r9d, r10d
neg r9d
cmovs r9d, r10d
mov r10d, eax
sub r10d, r8d
mov r8d, r10d
neg r8d
cmovs r8d, r10d
sub eax, r11d
mov r10d, eax
neg r10d
cmovns eax, r10d
cmp r9d, r8d
mov r10d, r8d
cmovle r10d, r9d
cmp eax, r10d
jg 0x22daf1a18
mov ecx, r11d
jmp 0x22daf1a1e
test r13d, r13d
jle case.default.0x22daf11fe
mov eax, r15d
lea ecx, [r13 - 1]
lea r8, [r14 + 1]
neg eax
cdqe
mov rdx, rax
not rdx
cmp rdx, 0xe
seta dl
cmp ecx, 0xe
seta cl
and edx, ecx
mov rcx, r12
sub rcx, r8
cmp rcx, 0xe
seta cl
test dl, cl
je 0x22daf5253
lea rcx, [rbx + 1]
mov rdx, r12
sub rdx, rcx
cmp rdx, 0xe
jbe 0x22daf5253
mov ecx, r13d
movdqa xmm4, xmmword [0x22dd77840]
add rax, r12
xor edx, edx
shr ecx, 4
movdqa xmm3, xmmword [0x22dd77850]
shl rcx, 4
nop dword [rax + rax]
movdqu xmm0, xmmword [rbx + rdx]
movdqu xmm5, xmmword [rax + rdx]
movdqu xmm1, xmmword [r14 + rdx]
movdqu xmm2, xmmword [rax + rdx]
pand xmm0, xmm5
pand xmm0, xmm4
psrlw xmm2, 1
paddb xmm1, xmm0
movdqu xmm0, xmmword [rbx + rdx]
pand xmm2, xmm3
psrlw xmm0, 1
pand xmm0, xmm3
paddb xmm0, xmm2
paddb xmm0, xmm1
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rcx, rdx
jne 0x22daf1b10
mov r8d, r13d
and r8d, 0xfffffff0
test r13b, 0xf
je case.default.0x22daf11fe
mov eax, r8d
mov edx, r8d
sub eax, r15d
movzx ecx, byte [rbx + rdx]
cdqe
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 1]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 2]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 3]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 4]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 5]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 6]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 7]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 8]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 9]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 0xa]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 0xb]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 0xc]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 0xd]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
lea eax, [r8 + 0xe]
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rdx, eax
sub eax, r15d
cdqe
movzx ecx, byte [rbx + rdx]
movzx eax, byte [r12 + rax]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
jmp case.default.0x22daf11fe
test r13d, r13d
jle case.default.0x22daf11fe
lea r8, [r14 + 1]
mov rcx, r12
lea r9, [rbx + 1]
mov eax, r13d
sub rcx, r8
mov r8, r12
lea edx, [r13 - 1]
cmp rcx, 0xe
seta cl
sub r8, r9
cmp r8, 0xe
seta r8b
test cl, r8b
je 0x22daf5204
cmp edx, 6
jbe 0x22daf5204
cmp edx, 0xe
jbe 0x22daf52c5
mov edx, r13d
xor eax, eax
shr edx, 4
shl rdx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [r14 + rax]
movdqu xmm5, xmmword [rbx + rax]
paddb xmm0, xmm5
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x22daf1e40
mov edx, r13d
and edx, 0xfffffff0
mov ecx, edx
cmp r13d, edx
je case.default.0x22daf11fe
mov eax, r13d
sub eax, edx
lea r8d, [rax - 1]
cmp r8d, 6
jbe 0x22daf1ea1
movq xmm0, qword [r14 + rdx]
movq xmm1, qword [rbx + rdx]
paddb xmm0, xmm1
movq qword [r12 + rdx], xmm0
mov edx, eax
and edx, 0xfffffff8
add ecx, edx
cmp edx, eax
je case.default.0x22daf11fe
movsxd rax, ecx
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
lea eax, [rcx + 1]
cmp r13d, eax
jle case.default.0x22daf11fe
cdqe
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
lea eax, [rcx + 2]
cmp r13d, eax
jle case.default.0x22daf11fe
cdqe
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
lea eax, [rcx + 3]
cmp r13d, eax
jle case.default.0x22daf11fe
cdqe
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
lea eax, [rcx + 4]
cmp eax, r13d
jge case.default.0x22daf11fe
cdqe
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
lea eax, [rcx + 5]
cmp eax, r13d
jge case.default.0x22daf11fe
cdqe
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
lea eax, [rcx + 6]
cmp eax, r13d
jge case.default.0x22daf11fe
cdqe
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
jmp case.default.0x22daf11fe
test r13d, r13d
jle case.default.0x22daf11fe
mov eax, r15d
lea edx, [r13 - 1]
mov r8d, r13d
neg eax
cdqe
mov rcx, rax
not rcx
cmp rcx, 0xe
seta r9b
cmp edx, 6
seta cl
test r9b, cl
je 0x22daf51b8
lea r9, [r14 + 1]
mov rcx, r12
sub rcx, r9
cmp rcx, 0xe
jbe 0x22daf51b8
cmp edx, 0xe
jbe 0x22daf52ce
mov ecx, r13d
add rax, r12
xor edx, edx
shr ecx, 4
shl rcx, 4
nop dword [rax]
movdqu xmm0, xmmword [r14 + rdx]
movdqu xmm5, xmmword [rax + rdx]
paddb xmm0, xmm5
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rcx, rdx
jne 0x22daf1fb8
mov ecx, r13d
and ecx, 0xfffffff0
mov edx, ecx
cmp r13d, ecx
je case.default.0x22daf11fe
mov r8d, r13d
sub r8d, ecx
lea r9d, [r8 - 1]
cmp r9d, 6
jbe 0x22daf201c
movq xmm0, qword [rax + rcx]
movq xmm1, qword [r14 + rcx]
mov eax, r8d
and eax, 0xfffffff8
paddb xmm0, xmm1
add edx, eax
movq qword [r12 + rcx], xmm0
cmp eax, r8d
je case.default.0x22daf11fe
mov eax, edx
movsxd rcx, edx
sub eax, r15d
movzx r8d, byte [r14 + rcx]
cdqe
add r8b, byte [r12 + rax]
lea eax, [rdx + 1]
mov byte [r12 + rcx], r8b
cmp eax, r13d
jge case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 2]
mov byte [r12 + rcx], r8b
cmp eax, r13d
jge case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 3]
mov byte [r12 + rcx], r8b
cmp eax, r13d
jge case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 4]
mov byte [r12 + rcx], r8b
cmp eax, r13d
jge case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 5]
mov byte [r12 + rcx], r8b
cmp eax, r13d
jl 0x22daf2273
jmp case.default.0x22daf11fe
mov r8, qword [rsp + 0x20]
mov rdx, r14
mov rcx, r12
call sub.msvcrt.dll_memcpy
add r14, qword [rsp + 0x20]
mov eax, dword [rsp + 0x78]
mov esi, dword [rsp + 0x7c]
add dword [rsp + 0x80], esi
add eax, 1
cmp dword [rsp + 0x328], eax
je 0x22daf413d
mov rdi, qword [rsp + 0x300]
mov dword [rsp + 0x78], eax
mov r12, qword [rdi + 0x18]
jmp 0x22daf10e0
test r13d, r13d
jle case.default.0x22daf11fe
mov eax, r15d
lea edx, [r13 - 1]
mov r8d, r13d
neg eax
cdqe
mov rcx, rax
not rcx
cmp rcx, 0xe
seta r9b
cmp edx, 6
seta cl
test r9b, cl
je 0x22daf522a
lea r9, [r14 + 1]
mov rcx, r12
sub rcx, r9
cmp rcx, 0xe
jbe 0x22daf522a
cmp edx, 0xe
jbe 0x22daf5283
mov ecx, r13d
add rax, r12
xor edx, edx
shr ecx, 4
shl rcx, 4
nop dword [rax]
movdqu xmm0, xmmword [r14 + rdx]
movdqu xmm6, xmmword [rax + rdx]
paddb xmm0, xmm6
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rcx, rdx
jne 0x22daf2168
mov ecx, r13d
and ecx, 0xfffffff0
mov edx, ecx
cmp r13d, ecx
je case.default.0x22daf11fe
mov r8d, r13d
sub r8d, ecx
lea r9d, [r8 - 1]
cmp r9d, 6
jbe 0x22daf21cc
movq xmm0, qword [rax + rcx]
movq xmm1, qword [r14 + rcx]
mov eax, r8d
and eax, 0xfffffff8
paddb xmm0, xmm1
add edx, eax
movq qword [r12 + rcx], xmm0
cmp eax, r8d
je case.default.0x22daf11fe
mov eax, edx
movsxd rcx, edx
sub eax, r15d
movzx r8d, byte [r14 + rcx]
cdqe
add r8b, byte [r12 + rax]
lea eax, [rdx + 1]
mov byte [r12 + rcx], r8b
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 2]
mov byte [r12 + rcx], r8b
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 3]
mov byte [r12 + rcx], r8b
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 4]
mov byte [r12 + rcx], r8b
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
lea eax, [rdx + 5]
mov byte [r12 + rcx], r8b
cmp r13d, eax
jle case.default.0x22daf11fe
movsxd rcx, eax
sub eax, r15d
add edx, 6
cdqe
movzx r8d, byte [r14 + rcx]
add r8b, byte [r12 + rax]
mov byte [r12 + rcx], r8b
cmp r13d, edx
jle case.default.0x22daf11fe
movsxd rax, edx
sub edx, r15d
movsxd rdx, edx
movzx ecx, byte [r14 + rax]
add cl, byte [r12 + rdx]
mov byte [r12 + rax], cl
jmp case.default.0x22daf11fe
mov edi, r13d
xor edx, edx
lea r13, [r12 + rax]
mov qword [rsp + 0x30], rdi
lea rdi, [rbx + rax]
mov qword [rsp + 0x40], rdi
jmp 0x22daf22e3
cmp r9d, r8d
cmovle ecx, esi
add ecx, ebp
mov byte [r12 + rdx], cl
add rdx, 1
cmp qword [rsp + 0x30], rdx
je case.default.0x22daf11fe
mov rax, qword [rsp + 0x40]
movzx r9d, byte [rbx + rdx]
movzx r11d, byte [r13 + rdx]
movzx ebp, byte [r14 + rdx]
movzx r8d, byte [rax + rdx]
mov esi, r9d
lea eax, [r11 + r9]
sub eax, r8d
mov ecx, r8d
mov r10d, eax
sub r10d, r9d
mov r9d, r10d
neg r9d
cmovs r9d, r10d
mov r10d, eax
sub r10d, r8d
mov r8d, r10d
neg r8d
cmovs r8d, r10d
sub eax, r11d
mov r10d, eax
neg r10d
cmovns eax, r10d
cmp r9d, r8d
mov r10d, r8d
cmovle r10d, r9d
cmp eax, r10d
jg 0x22daf22c8
mov ecx, r11d
jmp 0x22daf22ce
mov eax, dword [rsp + 0x7c]
mov edi, dword [rsp + 0x78]
mov rbx, r12
sub rbx, rax
test edi, edi
jne 0x22daf236d
lea rax, [0x22dd774b1]
movzx esi, byte [rax + rsi]
test r15d, r15d
jne 0x22daf115d
cmp dword [rsp + 0x330], 8
jne 0x22daf11a5
nop dword [rax]
movsxd rax, dword [rsp + 0xa8]
cmp dword [rsp + 0x318], eax
je 0x22daf239e
mov byte [r12 + rax], 0xff
lea r14, [r11 + rax]
movsxd rax, dword [rsp + 0x318]
add r12, rax
add rbx, rax
cmp byte [rsp + 0xc0], 0
jne 0x22daf11cd
mov eax, dword [rsp + 0xe8]
cmp eax, dword [rsp + 0x318]
je 0x22daf23e8
mov r8d, 0x1253
lea rdx, [0x22dd76a38]
lea rcx, str.img_n1__out_n
call qword [sym.imp.msvcrt.dll__assert]
cmp esi, 6
ja case.default.0x22daf2401
lea rdx, [0x22dd76bb8]
mov eax, esi
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov r10d, dword [rsp + 0xe0]
test r10d, r10d
je 0x22daf40e1
movsxd rax, dword [rsp + 0x88]
mov r11d, r15d
movsxd rbx, r15d
and r11d, 0xfffffff0
mov rsi, rax
mov qword [rsp + 0x20], rax
neg eax
lea ebp, [r11 + 1]
movsxd rdx, eax
mov eax, r15d
lea r8d, [r11 + 2]
mov r13d, r11d
shr eax, 4
mov dword [rsp + 0xb0], ebp
sub r13d, esi
add r12, rdx
lea r9d, [rax - 1]
mov rax, rbp
not rdx
mov edi, r11d
sub eax, esi
mov dword [rsp + 0xc8], r8d
add r9, 1
movsxd r13, r13d
movsxd rcx, eax
mov rax, r8
shl r9, 4
sub eax, esi
mov qword [rsp + 0x30], rcx
lea ecx, [r11 + 3]
cdqe
mov dword [rsp + 0xd0], ecx
mov qword [rsp + 0xd8], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0xf0], rcx
lea ecx, [r11 + 4]
cdqe
mov dword [rsp + 0x148], ecx
mov qword [rsp + 0xf8], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x108], rcx
lea ecx, [r11 + 5]
cdqe
mov dword [rsp + 0x100], ecx
mov qword [rsp + 0x110], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x120], rcx
lea ecx, [r11 + 6]
cdqe
mov dword [rsp + 0x118], ecx
mov qword [rsp + 0x128], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x138], rcx
lea ecx, [r11 + 7]
cdqe
mov dword [rsp + 0x130], ecx
mov qword [rsp + 0x140], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x150], rcx
lea ecx, [r11 + 8]
cdqe
mov dword [rsp + 0x14c], ecx
mov qword [rsp + 0x158], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x168], rcx
lea ecx, [r11 + 9]
cdqe
mov dword [rsp + 0x160], ecx
mov qword [rsp + 0x170], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x178], rcx
lea ecx, [r11 + 0xa]
cdqe
mov dword [rsp + 0x188], ecx
mov qword [rsp + 0x180], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x198], rcx
lea ecx, [r11 + 0xb]
cdqe
mov dword [rsp + 0x190], ecx
mov qword [rsp + 0x1a0], rax
mov rax, rcx
sub eax, esi
mov qword [rsp + 0x1b0], rcx
lea ecx, [r11 + 0xc]
cdqe
mov qword [rsp + 0x1b8], rax
mov rax, rcx
sub eax, esi
mov dword [rsp + 0x1a8], ecx
cdqe
mov qword [rsp + 0x1c8], rcx
lea ecx, [r11 + 0xd]
mov qword [rsp + 0x1d0], rax
mov rax, rcx
sub eax, esi
mov dword [rsp + 0x1c0], ecx
cdqe
mov qword [rsp + 0x1e0], rcx
lea ecx, [r11 + 0xe]
mov qword [rsp + 0x1e8], rax
mov rax, rcx
sub eax, esi
lea esi, [r15 - 1]
mov qword [rsp + 0x50], rdx
cdqe
mov dword [rsp + 0x1d8], ecx
mov qword [rsp + 0x1f0], rcx
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x1f8], rax
mov rax, r14
mov qword [rsp + 0x308], r14
mov r14, qword [rsp + 0x30]
mov dword [rsp + 0x60], r11d
mov r11, r8
nop word [rax + rax]
mov r8, r12
add r12, qword [rsp + 0x20]
test r15d, r15d
je 0x22daf2978
cmp qword [rsp + 0x50], 0xe
seta cl
cmp dword [rsp + 0x40], 0xe
seta dl
test cl, dl
je 0x22daf3fba
lea rcx, [rax + 1]
mov rdx, r12
sub rdx, rcx
cmp rdx, 0xe
jbe 0x22daf3fba
add r8, 0
xor edx, edx
nop dword [rax]
movdqu xmm0, xmmword [r8 + rdx]
movdqu xmm5, xmmword [rax + rdx]
psrlw xmm0, 1
pand xmm0, xmmword [0x22dd77850]
paddb xmm0, xmm5
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp r9, rdx
jne 0x22daf2698
cmp r15d, dword [rsp + 0x60]
je 0x22daf2978
movzx edx, byte [r12 + r13]
shr dl, 1
add dl, byte [rax + rdi]
mov byte [r12 + rdi], dl
cmp r15d, dword [rsp + 0xb0]
jle 0x22daf2978
movzx edx, byte [r12 + r14]
shr dl, 1
add dl, byte [rax + rbp]
mov byte [r12 + rbp], dl
cmp r15d, dword [rsp + 0xc8]
jle 0x22daf2978
mov rcx, qword [rsp + 0xd8]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
shr dl, 1
add dl, byte [rax + r11]
mov byte [r12 + r11], dl
cmp r15d, dword [rsp + 0xd0]
jle 0x22daf2978
mov rcx, qword [rsp + 0xf8]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0xf0]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x148]
jle 0x22daf2978
mov rcx, qword [rsp + 0x110]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x108]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x100]
jle 0x22daf2978
mov rcx, qword [rsp + 0x128]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x120]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x118]
jle 0x22daf2978
mov rcx, qword [rsp + 0x140]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x138]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x130]
jle 0x22daf2978
mov rcx, qword [rsp + 0x158]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x150]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x14c]
jle 0x22daf2978
mov rcx, qword [rsp + 0x170]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x168]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x160]
jle 0x22daf2978
mov rcx, qword [rsp + 0x180]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x178]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x188]
jle 0x22daf2978
mov rcx, qword [rsp + 0x1a0]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x198]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x190]
jle 0x22daf2978
mov rcx, qword [rsp + 0x1b8]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x1b0]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x1a8]
jle 0x22daf2978
mov rcx, qword [rsp + 0x1d0]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x1c8]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x1c0]
jle 0x22daf2978
mov rcx, qword [rsp + 0x1e8]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x1e0]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
cmp r15d, dword [rsp + 0x1d8]
jle 0x22daf2978
mov rcx, qword [rsp + 0x1f8]
movzx ecx, byte [r12 + rcx]
mov edx, ecx
mov byte [rsp + 0x30], cl
mov rcx, qword [rsp + 0x1f0]
shr dl, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
nop word [rax + rax]
mov byte [r12 + rbx], 0xff
add rax, rbx
sub r10d, 1
jne 0x22daf2650
mov eax, dword [rsp + 0xe0]
mov r14, qword [rsp + 0x308]
imul rax, rbx
add r14, rax
cmp dword [rsp + 0x330], 0x10
jne 0x22daf20d5
mov rdi, qword [rsp + 0x300]
mov r10d, dword [rsp + 0x320]
mov rax, qword [rsp + 0x90]
add rax, qword [rdi + 0x18]
test r10d, r10d
je 0x22daf20d5
movsxd rdx, r15d
movsxd rcx, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x320]
lea rdx, [rax + rdx + 1]
xor eax, eax
nop dword [rax]
add eax, 1
mov byte [rdx], 0xff
add rdx, rcx
cmp r8d, eax
ja 0x22daf29f0
jmp 0x22daf20d5
mov ecx, dword [rsp + 0xe0]
test ecx, ecx
je 0x22daf40e1
movsxd rsi, dword [rsp + 0x88]
movsxd rax, r15d
mov dword [rsp + 0x148], ecx
lea ecx, [r15 - 1]
mov qword [rsp + 0xd8], rax
pxor xmm14, xmm14
mov rax, rsi
mov qword [rsp + 0xf0], rsi
neg eax
mov dword [rsp + 0x108], ecx
movsxd rdi, eax
mov rax, rbx
mov dword [rsp + 0x60], r15d
sub rax, rsi
lea rdx, [rbx + rdi]
mov qword [rsp + 0xc8], rdi
not rdi
mov qword [rsp + 0xb0], rax
mov rax, r12
sub rax, rsi
mov qword [rsp + 0x110], rdi
mov edi, ecx
mov rsi, rax
mov eax, r15d
mov qword [rsp + 0xd0], rdi
shr eax, 4
mov qword [rsp + 0x308], r14
sub eax, 1
add rax, 1
shl rax, 4
mov qword [rsp + 0x100], rax
mov eax, r15d
mov r15, rsi
and eax, 0xfffffff0
mov dword [rsp + 0xf8], eax
mov qword [rsp + 0x118], rax
mov rax, r14
mov r14, rdx
nop dword [rax + rax]
mov r11d, dword [rsp + 0x60]
test r11d, r11d
je 0x22daf3e55
cmp qword [rsp + 0x110], 0xe
lea r8, [r14 + 1]
seta cl
cmp dword [rsp + 0x108], 0xe
seta dl
and ecx, edx
mov rdx, r12
sub rdx, r8
lea r8, [rax + 1]
cmp rdx, 0xe
seta dl
and edx, ecx
mov rcx, r12
sub rcx, r8
cmp rcx, 0xe
seta cl
test dl, cl
je 0x22daf3e99
lea rcx, [rbx + 1]
mov rdx, r12
sub rdx, rcx
cmp rdx, 0xe
jbe 0x22daf3e99
mov rsi, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x100]
xor edx, edx
pxor xmm13, xmm13
lea rcx, [r12 + rsi]
nop word [rax + rax]
movdqu xmm0, xmmword [r14 + rdx]
pxor xmm7, xmm7
movdqu xmm1, xmmword [r14 + rdx]
movdqu xmm4, xmmword [rbx + rdx]
movdqa xmm6, xmm7
punpckhbw xmm0, xmm7
punpcklbw xmm1, xmm7
movdqa xmm3, xmm6
movdqa xmm5, xmm0
punpckhbw xmm4, xmm7
movdqa xmm9, xmm1
punpckhwd xmm5, xmm14
punpcklwd xmm9, xmm14
movdqa xmm8, xmm0
movaps xmmword [rsp + 0x40], xmm5
movdqu xmm5, xmmword [rbx + rdx]
punpcklwd xmm8, xmm14
punpckhwd xmm1, xmm14
movaps xmmword [rsp + 0x30], xmm8
movdqa xmm10, xmm4
punpckhwd xmm4, xmm14
punpcklbw xmm5, xmm7
movdqu xmm7, xmmword [rcx + rdx]
movaps xmmword [rsp + 0x20], xmm1
punpcklwd xmm10, xmm14
movdqa xmm11, xmm5
punpckhwd xmm5, xmm14
punpcklbw xmm7, xmm6
movdqu xmm6, xmmword [rcx + rdx]
punpcklwd xmm11, xmm14
movdqa xmm15, xmm7
punpckhwd xmm7, xmm14
punpcklwd xmm15, xmm14
punpckhbw xmm6, xmm3
movdqa xmm2, xmm7
movdqa xmm3, xmm15
paddd xmm2, xmm5
psubd xmm2, xmmword [rsp + 0x20]
paddd xmm3, xmm11
movdqa xmm12, xmm6
punpckhwd xmm6, xmm14
psubd xmm3, xmm9
punpcklwd xmm12, xmm14
movdqa xmm0, xmm6
movdqa xmm8, xmm3
movdqa xmm1, xmm12
paddd xmm0, xmm4
psubd xmm8, xmm15
paddd xmm1, xmm10
movdqa xmm15, xmm8
psubd xmm1, xmmword [rsp + 0x30]
psubd xmm0, xmmword [rsp + 0x40]
psrad xmm15, 0x1f
pxor xmm8, xmm15
psubd xmm8, xmm15
movdqa xmm15, xmm2
psubd xmm15, xmm7
movaps xmmword [rsp + 0x50], xmm8
movdqa xmm7, xmm15
movdqa xmm8, xmm15
psrad xmm7, 0x1f
pxor xmm8, xmm7
movdqa xmm15, xmm8
psubd xmm15, xmm7
movdqa xmm7, xmm1
psubd xmm7, xmm12
movdqa xmm12, xmm7
psrad xmm12, 0x1f
pxor xmm7, xmm12
psubd xmm7, xmm12
movdqa xmm12, xmm7
movdqa xmm7, xmm0
psubd xmm7, xmm6
movdqa xmm6, xmm7
psrad xmm6, 0x1f
pxor xmm7, xmm6
psubd xmm7, xmm6
movdqa xmm6, xmm3
psubd xmm3, xmm9
psubd xmm6, xmm11
movdqa xmm11, xmm6
psrad xmm11, 0x1f
pxor xmm6, xmm11
psubd xmm6, xmm11
movdqa xmm11, xmm2
psubd xmm2, xmmword [rsp + 0x20]
psubd xmm11, xmm5
movdqa xmm5, xmm11
movdqa xmm8, xmm11
psrad xmm5, 0x1f
pxor xmm8, xmm5
psubd xmm8, xmm5
movdqa xmm5, xmm1
psubd xmm1, xmmword [rsp + 0x30]
psubd xmm5, xmm10
movdqa xmm10, xmm5
psrad xmm10, 0x1f
pxor xmm5, xmm10
psubd xmm5, xmm10
movdqa xmm10, xmm0
psubd xmm0, xmmword [rsp + 0x40]
psubd xmm10, xmm4
movdqa xmm4, xmm10
psrad xmm4, 0x1f
pxor xmm10, xmm4
psubd xmm10, xmm4
movdqa xmm4, xmm3
psrad xmm4, 0x1f
pxor xmm3, xmm4
psubd xmm3, xmm4
movdqa xmm4, xmm2
psrad xmm4, 0x1f
pxor xmm2, xmm4
psubd xmm2, xmm4
movdqa xmm4, xmm1
psrad xmm4, 0x1f
pxor xmm1, xmm4
psubd xmm1, xmm4
movdqa xmm4, xmm0
psrad xmm4, 0x1f
pxor xmm0, xmm4
psubd xmm0, xmm4
movdqa xmm4, xmm6
pcmpgtd xmm4, xmm3
movdqa xmm9, xmm4
pand xmm3, xmm4
pandn xmm9, xmm6
por xmm3, xmm9
movdqa xmm9, xmm8
pcmpgtd xmm9, xmm2
movdqa xmm6, xmm9
pand xmm2, xmm9
pandn xmm6, xmm8
por xmm2, xmm6
movdqa xmm6, xmm5
pcmpgtd xmm6, xmm1
movdqa xmm11, xmm6
pand xmm1, xmm6
pandn xmm11, xmm5
movdqa xmm5, xmm10
pcmpgtd xmm5, xmm0
por xmm1, xmm11
movdqa xmm11, xmm5
pand xmm0, xmm5
pandn xmm11, xmm10
movdqa xmm10, xmm5
movdqa xmm8, xmm11
pcmpeqd xmm10, xmm13
movdqa xmm11, xmm9
por xmm8, xmm0
movdqa xmm0, xmmword [rsp + 0x50]
pcmpeqd xmm11, xmm13
pcmpgtd xmm7, xmm8
movdqa xmm8, xmm6
pcmpgtd xmm0, xmm3
pcmpeqd xmm8, xmm13
movdqa xmm3, xmm15
pcmpgtd xmm3, xmm2
movdqa xmm2, xmm12
pcmpgtd xmm2, xmm1
movdqa xmm1, xmm4
pand xmm10, xmm7
pcmpeqd xmm1, xmm13
pand xmm4, xmm0
pand xmm5, xmm7
pand xmm11, xmm3
pcmpeqd xmm7, xmm13
pand xmm9, xmm3
pcmpeqd xmm3, xmm13
pand xmm8, xmm2
pand xmm6, xmm2
pand xmm1, xmm0
pcmpeqd xmm0, xmm13
pcmpeqd xmm2, xmm13
movdqa xmm12, xmm0
punpcklwd xmm0, xmm3
punpckhwd xmm12, xmm3
movdqa xmm3, xmm0
punpckhwd xmm3, xmm12
punpcklwd xmm0, xmm12
punpcklwd xmm0, xmm3
movdqa xmm3, xmm2
punpcklwd xmm2, xmm7
punpckhwd xmm3, xmm7
movdqa xmm7, xmm2
pand xmm0, xmmword [0x22dd77860]
punpckhwd xmm7, xmm3
punpcklwd xmm2, xmm3
movdqu xmm3, xmmword [r14 + rdx]
punpcklwd xmm2, xmm7
pand xmm2, xmmword [0x22dd77860]
packuswb xmm0, xmm2
movdqu xmm2, xmmword [rcx + rdx]
pand xmm2, xmm0
pandn xmm0, xmm3
por xmm0, xmm2
movdqa xmm2, xmm4
punpcklwd xmm4, xmm9
punpckhwd xmm2, xmm9
movdqa xmm3, xmm4
punpckhwd xmm3, xmm2
punpcklwd xmm4, xmm2
movdqa xmm2, xmm6
punpcklwd xmm6, xmm5
punpckhwd xmm2, xmm5
punpcklwd xmm4, xmm3
movdqa xmm3, xmm6
punpcklwd xmm6, xmm2
pand xmm4, xmmword [0x22dd77860]
punpckhwd xmm3, xmm2
movdqu xmm2, xmmword [r14 + rdx]
punpcklwd xmm6, xmm3
pand xmm6, xmmword [0x22dd77860]
packuswb xmm4, xmm6
pand xmm2, xmm4
pandn xmm4, xmm0
movdqa xmm0, xmm1
punpcklwd xmm1, xmm11
punpckhwd xmm0, xmm11
por xmm4, xmm2
movdqa xmm2, xmm1
punpcklwd xmm1, xmm0
punpckhwd xmm2, xmm0
movdqa xmm0, xmm8
punpcklwd xmm8, xmm10
punpckhwd xmm0, xmm10
punpcklwd xmm1, xmm2
movdqa xmm2, xmm8
punpckhwd xmm2, xmm0
punpcklwd xmm8, xmm0
pand xmm1, xmmword [0x22dd77860]
movdqu xmm0, xmmword [rbx + rdx]
punpcklwd xmm8, xmm2
pand xmm8, xmmword [0x22dd77860]
packuswb xmm1, xmm8
pand xmm0, xmm1
pandn xmm1, xmm4
por xmm1, xmm0
movdqu xmm0, xmmword [rax + rdx]
paddb xmm0, xmm1
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp r8, rdx
jne 0x22daf2b58
mov esi, dword [rsp + 0xf8]
cmp dword [rsp + 0x60], esi
je 0x22daf3e55
mov qword [rsp + 0x20], r14
mov rcx, qword [rsp + 0x118]
mov r14, qword [rsp + 0xb0]
jmp 0x22daf302c
cmp r10d, r9d
cmovle r8d, edi
add r8d, r13d
mov byte [r12 + rcx], r8b
add rcx, 1
cmp dword [rsp + 0x60], ecx
jle 0x22daf3e50
movzx r10d, byte [rbx + rcx]
movzx esi, byte [r15 + rcx]
movzx r9d, byte [r14 + rcx]
movzx r13d, byte [rax + rcx]
lea edx, [r10 + rsi]
mov edi, r10d
sub edx, r9d
mov r8d, r9d
mov r11d, edx
sub r11d, r10d
mov r10d, r11d
neg r10d
cmovs r10d, r11d
mov r11d, edx
sub r11d, r9d
mov r9d, r11d
neg r9d
cmovs r9d, r11d
sub edx, esi
mov r11d, edx
neg r11d
cmovns edx, r11d
cmp r10d, r9d
mov r11d, r9d
cmovle r11d, r10d
cmp edx, r11d
jg 0x22daf3010
mov r8d, esi
jmp 0x22daf3017
mov r9d, dword [rsp + 0xe0]
test r9d, r9d
je 0x22daf40e1
mov edx, r15d
mov eax, r15d
lea ebp, [r15 - 1]
mov edi, r15d
and edx, 0xf
shr eax, 4
movsxd r11, r15d
mov r13, rbp
lea r10d, [rdx - 1]
lea ecx, [rax - 1]
and edi, 0xfffffff0
movsxd rsi, dword [rsp + 0x88]
mov dword [rsp + 0x20], r10d
add rcx, 1
mov rax, r14
mov qword [rsp + 0x308], r14
shl rcx, 4
mov r14d, edx
nop dword [rax]
test r15d, r15d
je 0x22daf3242
lea r8, [rbx + 1]
mov rdx, r12
lea r10, [rax + 1]
sub rdx, r8
mov r8, r12
cmp rdx, 0xe
seta dl
sub r8, r10
cmp r8, 0xe
seta r8b
test dl, r8b
je 0x22daf4076
cmp r13d, 6
jbe 0x22daf4076
cmp r13d, 0xe
jbe 0x22daf4506
xor edx, edx
nop dword [rax + rax]
movdqu xmm0, xmmword [rax + rdx]
movdqu xmm5, xmmword [rbx + rdx]
paddb xmm0, xmm5
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rcx, rdx
jne 0x22daf3138
cmp r15d, edi
je 0x22daf3242
cmp dword [rsp + 0x20], 6
mov r10d, r14d
jbe 0x22daf4535
mov r8d, edi
mov edx, edi
movq xmm0, qword [rax + r8]
movq xmm1, qword [rbx + r8]
paddb xmm0, xmm1
movq qword [r12 + r8], xmm0
mov r8d, r10d
and r8d, 0xfffffff8
add edx, r8d
cmp r8d, r10d
je 0x22daf3242
movsxd r8, edx
movzx r10d, byte [rbx + r8]
add r10b, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 1]
cmp r15d, r8d
jle 0x22daf3242
movsxd r8, r8d
movzx r10d, byte [rbx + r8]
add r10b, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 2]
cmp r15d, r8d
jle 0x22daf3242
movsxd r8, r8d
movzx r10d, byte [rbx + r8]
add r10b, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 3]
cmp r15d, r8d
jle 0x22daf3242
movsxd r8, r8d
movzx r10d, byte [rbx + r8]
add r10b, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 4]
cmp r15d, r8d
jle 0x22daf3242
movsxd r8, r8d
movzx r10d, byte [rbx + r8]
add r10b, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 5]
cmp r15d, r8d
jle 0x22daf3242
movsxd r8, r8d
add edx, 6
movzx r10d, byte [rbx + r8]
add r10b, byte [rax + r8]
mov byte [r12 + r8], r10b
cmp r15d, edx
jle 0x22daf3242
movsxd rdx, edx
movzx r8d, byte [rbx + rdx]
add r8b, byte [rax + rdx]
mov byte [r12 + rdx], r8b
mov byte [r12 + r11], 0xff
add rax, r11
add r12, rsi
add rbx, rsi
sub r9d, 1
jne 0x22daf30e8
mov eax, dword [rsp + 0xe0]
mov r14, qword [rsp + 0x308]
imul rax, r11
add r14, rax
cmp dword [rsp + 0x330], 0x10
jne 0x22daf20d5
jmp 0x22daf29ae
mov r9d, dword [rsp + 0xe0]
test r9d, r9d
je 0x22daf40e1
mov eax, r15d
mov edi, r15d
lea r11d, [r15 - 1]
movsxd r10, r15d
movsxd rsi, dword [rsp + 0x88]
shr eax, 4
mov qword [rsp + 0x308], r14
and edi, 0xfffffff0
lea r8d, [rax - 1]
mov rax, r14
mov ebx, esi
add r8, 1
mov rbp, rsi
neg ebx
shl r8, 4
movsxd rbx, ebx
mov rcx, rbx
add r12, rbx
not rcx
mov qword [rsp + 0x20], rcx
mov ecx, r15d
and ecx, 0xf
mov dword [rsp + 0x30], ecx
sub ecx, 1
mov dword [rsp + 0x40], ecx
nop
mov rcx, r12
add r12, rsi
test r15d, r15d
je 0x22daf3470
cmp qword [rsp + 0x20], 0xe
seta r13b
cmp r11d, 6
seta dl
test r13b, dl
je 0x22daf404e
lea r13, [rax + 1]
mov rdx, r12
sub rdx, r13
cmp rdx, 0xe
jbe 0x22daf404e
cmp r11d, 0xe
jbe 0x22daf44fa
add rcx, 0
xor edx, edx
nop dword [rax]
movdqu xmm0, xmmword [rax + rdx]
movdqu xmm5, xmmword [rcx + rdx]
paddb xmm0, xmm5
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp r8, rdx
jne 0x22daf3340
cmp r15d, edi
je 0x22daf3470
cmp dword [rsp + 0x40], 6
mov r13d, dword [rsp + 0x30]
jbe 0x22daf452e
mov ecx, edi
mov edx, edi
lea r14, [r12 + rcx]
movq xmm1, qword [rax + rcx]
movq xmm0, qword [r14 + rbx]
paddb xmm0, xmm1
movq qword [r12 + rcx], xmm0
mov ecx, r13d
and ecx, 0xfffffff8
add edx, ecx
cmp ecx, r13d
je 0x22daf3470
mov ecx, edx
movsxd r13, edx
sub ecx, ebp
movzx r14d, byte [rax + r13]
movsxd rcx, ecx
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 1]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3470
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 2]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3470
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 3]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3470
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 4]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3470
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 5]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3470
movsxd r13, ecx
sub ecx, ebp
add edx, 6
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
mov byte [r12 + r13], r14b
cmp r15d, edx
jle 0x22daf3470
movsxd rcx, edx
sub edx, ebp
movsxd rdx, edx
movzx r13d, byte [rax + rcx]
add r13b, byte [r12 + rdx]
mov byte [r12 + rcx], r13b
mov byte [r12 + r10], 0xff
add rax, r10
sub r9d, 1
jne 0x22daf32f0
mov eax, dword [rsp + 0xe0]
mov r14, qword [rsp + 0x308]
imul rax, r10
add r14, rax
jmp case.default.0x22daf2401
mov r9d, dword [rsp + 0xe0]
test r9d, r9d
je 0x22daf40e1
mov eax, r15d
mov edx, r15d
lea edi, [r15 - 1]
mov ebx, r15d
shr eax, 4
and edx, 0xf
mov dword [rsp + 0x20], esi
movsxd r11, r15d
lea ecx, [rax - 1]
lea r10d, [rdx - 1]
mov rax, r14
mov rbp, rdi
add rcx, 1
movsxd r13, dword [rsp + 0x88]
and ebx, 0xfffffff0
mov esi, edx
mov qword [rsp + 0x308], r14
shl rcx, 4
mov r14d, r10d
nop dword [rax]
test r15d, r15d
je 0x22daf3606
lea r8, [rax + 1]
mov rdx, r12
sub rdx, r8
cmp rdx, 0xe
jbe 0x22daf3f95
cmp ebp, 6
jbe 0x22daf3f95
cmp ebp, 0xe
jbe 0x22daf451f
xor edx, edx
nop dword [rax]
movdqu xmm5, xmmword [rax + rdx]
movups xmmword [r12 + rdx], xmm5
add rdx, 0x10
cmp rcx, rdx
jne 0x22daf3530
cmp r15d, ebx
je 0x22daf3606
mov r10d, esi
cmp r14d, 6
jbe 0x22daf4543
mov r8d, ebx
mov edx, ebx
movq xmm0, qword [rax + r8]
movq qword [r12 + r8], xmm0
mov r8d, r10d
and r8d, 0xfffffff8
add edx, r8d
cmp r8d, r10d
je 0x22daf3606
movsxd r8, edx
movzx r10d, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 1]
cmp r15d, r8d
jle 0x22daf3606
movsxd r8, r8d
movzx r10d, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 2]
cmp r15d, r8d
jle 0x22daf3606
movsxd r8, r8d
movzx r10d, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 3]
cmp r15d, r8d
jle 0x22daf3606
movsxd r8, r8d
movzx r10d, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 4]
cmp r15d, r8d
jle 0x22daf3606
movsxd r8, r8d
movzx r10d, byte [rax + r8]
mov byte [r12 + r8], r10b
lea r8d, [rdx + 5]
cmp r15d, r8d
jle 0x22daf3606
movsxd r8, r8d
add edx, 6
movzx r10d, byte [rax + r8]
mov byte [r12 + r8], r10b
cmp r15d, edx
jle 0x22daf3606
movsxd rdx, edx
movzx r8d, byte [rax + rdx]
mov byte [r12 + rdx], r8b
mov byte [r12 + r11], 0xff
add rax, r11
add r12, r13
sub r9d, 1
jne 0x22daf34f8
jmp 0x22daf325a
mov r10d, dword [rsp + 0xe0]
test r10d, r10d
je 0x22daf40e1
movsxd rbp, dword [rsp + 0x88]
mov r11d, r15d
lea ecx, [r15 - 1]
movsxd rsi, r15d
and r11d, 0xfffffff0
mov eax, ebp
lea r13d, [r11 + 1]
lea r8d, [r11 + 2]
mov edi, r11d
neg eax
mov dword [rsp + 0xb0], r8d
movsxd rdx, eax
mov eax, r15d
mov dword [rsp + 0x50], r13d
shr eax, 4
mov qword [rsp + 0x190], r8
add r12, rdx
not rdx
lea r9d, [rax - 1]
mov eax, r11d
sub eax, ebp
add r9, 1
cdqe
shl r9, 4
mov qword [rsp + 0x60], rax
mov rax, r13
sub eax, ebp
cdqe
mov qword [rsp + 0xc8], rax
mov rax, r8
lea r8d, [r11 + 3]
sub eax, ebp
mov dword [rsp + 0xd0], r8d
cdqe
mov qword [rsp + 0xf0], r8
mov qword [rsp + 0xd8], rax
mov rax, r8
lea r8d, [r11 + 4]
sub eax, ebp
mov dword [rsp + 0x148], r8d
cdqe
mov qword [rsp + 0x108], r8
mov qword [rsp + 0xf8], rax
mov rax, r8
lea r8d, [r11 + 5]
sub eax, ebp
mov dword [rsp + 0x100], r8d
cdqe
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x110], rax
mov rax, r8
lea r8d, [r11 + 6]
sub eax, ebp
mov dword [rsp + 0x118], r8d
cdqe
mov qword [rsp + 0x138], r8
mov qword [rsp + 0x128], rax
mov rax, r8
lea r8d, [r11 + 7]
sub eax, ebp
mov dword [rsp + 0x130], r8d
cdqe
mov qword [rsp + 0x150], r8
mov qword [rsp + 0x140], rax
mov rax, r8
lea r8d, [r11 + 8]
sub eax, ebp
mov dword [rsp + 0x14c], r8d
cdqe
mov qword [rsp + 0x168], r8
mov qword [rsp + 0x158], rax
mov rax, r8
lea r8d, [r11 + 9]
sub eax, ebp
mov dword [rsp + 0x160], r8d
cdqe
mov qword [rsp + 0x178], r8
mov qword [rsp + 0x170], rax
mov rax, r8
lea r8d, [r11 + 0xa]
sub eax, ebp
mov dword [rsp + 0x188], r8d
cdqe
mov qword [rsp + 0x1a0], r8
mov qword [rsp + 0x180], rax
mov rax, r8
lea r8d, [r11 + 0xb]
sub eax, ebp
mov dword [rsp + 0x198], r8d
cdqe
mov qword [rsp + 0x1a8], rax
mov rax, r8
sub eax, ebp
mov qword [rsp + 0x1b8], r8
lea r8d, [r11 + 0xc]
cdqe
mov dword [rsp + 0x1b0], r8d
mov qword [rsp + 0x1c0], rax
mov rax, r8
sub eax, ebp
mov qword [rsp + 0x1d0], r8
lea r8d, [r11 + 0xd]
cdqe
mov dword [rsp + 0x1c8], r8d
mov qword [rsp + 0x1d8], rax
mov rax, r8
sub eax, ebp
mov qword [rsp + 0x1f0], r8
lea r8d, [r11 + 0xe]
cdqe
mov dword [rsp + 0x1e8], r8d
mov qword [rsp + 0x1f8], rax
mov rax, r8
sub eax, ebp
mov qword [rsp + 0x200], r8
mov dword [rsp + 0x20], ecx
cdqe
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x308], r14
mov dword [rsp + 0x40], r11d
mov r11, qword [rsp + 0x190]
mov qword [rsp + 0x208], rax
mov rax, r14
nop dword [rax]
mov r8, r12
add r12, rbp
test r15d, r15d
je 0x22daf3c18
cmp qword [rsp + 0x30], 0xe
lea r14, [rbx + 1]
seta dl
cmp dword [rsp + 0x20], 0xe
seta cl
and edx, ecx
mov rcx, r12
sub rcx, r14
cmp rcx, 0xe
seta cl
test dl, cl
je 0x22daf4006
lea rcx, [rax + 1]
mov rdx, r12
sub rdx, rcx
cmp rdx, 0xe
jbe 0x22daf4006
add r8, 0
xor edx, edx
nop dword [rax]
movdqu xmm0, xmmword [rbx + rdx]
movdqu xmm5, xmmword [r8 + rdx]
movdqu xmm1, xmmword [rax + rdx]
movdqu xmm2, xmmword [r8 + rdx]
pand xmm0, xmm5
pand xmm0, xmmword [0x22dd77840]
psrlw xmm2, 1
pand xmm2, xmmword [0x22dd77850]
paddb xmm1, xmm0
movdqu xmm0, xmmword [rbx + rdx]
psrlw xmm0, 1
pand xmm0, xmmword [0x22dd77850]
paddb xmm0, xmm2
paddb xmm0, xmm1
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp r9, rdx
jne 0x22daf38d8
cmp r15d, dword [rsp + 0x40]
je 0x22daf3c18
mov rcx, qword [rsp + 0x60]
movzx edx, byte [rbx + rdi]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + rdi]
mov byte [r12 + rdi], dl
cmp r15d, dword [rsp + 0x50]
jle 0x22daf3c18
mov rcx, qword [rsp + 0xc8]
movzx edx, byte [rbx + r13]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r13]
mov byte [r12 + r13], dl
cmp r15d, dword [rsp + 0xb0]
jle 0x22daf3c18
mov rcx, qword [rsp + 0xd8]
movzx edx, byte [rbx + r11]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r11]
mov byte [r12 + r11], dl
cmp r15d, dword [rsp + 0xd0]
jle 0x22daf3c18
mov r14, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xf8]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x148]
jle 0x22daf3c18
mov r14, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x100]
jle 0x22daf3c18
mov r14, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x128]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x118]
jle 0x22daf3c18
mov r14, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x130]
jle 0x22daf3c18
mov r14, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x158]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x14c]
jle 0x22daf3c18
mov r14, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x170]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x160]
jle 0x22daf3c18
mov r14, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x180]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x188]
jle 0x22daf3c18
mov r14, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x1a8]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x198]
jle 0x22daf3c18
mov r14, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x1b0]
jle 0x22daf3c18
mov r14, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0x1d8]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x1c8]
jle 0x22daf3c18
mov r14, qword [rsp + 0x1f0]
mov rcx, qword [rsp + 0x1f8]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
cmp r15d, dword [rsp + 0x1e8]
jle 0x22daf3c18
mov r14, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x208]
movzx edx, byte [rbx + r14]
movzx ecx, byte [r12 + rcx]
add edx, ecx
sar edx, 1
add dl, byte [rax + r14]
mov byte [r12 + r14], dl
nop dword [rax]
mov byte [r12 + rsi], 0xff
add rax, rsi
add rbx, rbp
sub r10d, 1
jne 0x22daf3880
mov eax, dword [rsp + 0xe0]
mov r14, qword [rsp + 0x308]
imul rax, rsi
add r14, rax
jmp case.default.0x22daf2401
mov r9d, dword [rsp + 0xe0]
test r9d, r9d
je 0x22daf40e1
mov eax, r15d
mov edi, r15d
lea r11d, [r15 - 1]
movsxd r10, r15d
movsxd rsi, dword [rsp + 0x88]
shr eax, 4
mov qword [rsp + 0x308], r14
and edi, 0xfffffff0
lea r8d, [rax - 1]
mov rax, r14
mov ebx, esi
add r8, 1
mov rbp, rsi
neg ebx
shl r8, 4
movsxd rbx, ebx
mov rcx, rbx
add r12, rbx
not rcx
mov qword [rsp + 0x20], rcx
mov ecx, r15d
and ecx, 0xf
mov dword [rsp + 0x30], ecx
sub ecx, 1
mov dword [rsp + 0x40], ecx
nop dword [rax]
mov rcx, r12
add r12, rsi
test r15d, r15d
je 0x22daf3e38
cmp qword [rsp + 0x20], 0xe
seta r13b
cmp r11d, 6
seta dl
test r13b, dl
je 0x22daf3fdf
lea r13, [rax + 1]
mov rdx, r12
sub rdx, r13
cmp rdx, 0xe
jbe 0x22daf3fdf
cmp r11d, 0xe
jbe 0x22daf4513
add rcx, 0
xor edx, edx
nop dword [rax]
movdqu xmm0, xmmword [rax + rdx]
movdqu xmm5, xmmword [rcx + rdx]
paddb xmm0, xmm5
movups xmmword [r12 + rdx], xmm0
add rdx, 0x10
cmp rdx, r8
jne 0x22daf3d08
cmp r15d, edi
je 0x22daf3e38
cmp dword [rsp + 0x40], 6
mov r13d, dword [rsp + 0x30]
jbe 0x22daf453c
mov ecx, edi
mov edx, edi
lea r14, [r12 + rcx]
movq xmm1, qword [rax + rcx]
movq xmm0, qword [r14 + rbx]
paddb xmm0, xmm1
movq qword [r12 + rcx], xmm0
mov ecx, r13d
and ecx, 0xfffffff8
add edx, ecx
cmp ecx, r13d
je 0x22daf3e38
mov ecx, edx
movsxd r13, edx
sub ecx, ebp
movzx r14d, byte [rax + r13]
movsxd rcx, ecx
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 1]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3e38
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 2]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3e38
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 3]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3e38
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 4]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3e38
movsxd r13, ecx
sub ecx, ebp
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
lea ecx, [rdx + 5]
mov byte [r12 + r13], r14b
cmp r15d, ecx
jle 0x22daf3e38
movsxd r13, ecx
sub ecx, ebp
add edx, 6
movsxd rcx, ecx
movzx r14d, byte [rax + r13]
add r14b, byte [r12 + rcx]
mov byte [r12 + r13], r14b
cmp r15d, edx
jle 0x22daf3e38
movsxd rcx, edx
sub edx, ebp
movsxd rdx, edx
movzx r13d, byte [rax + rcx]
add r13b, byte [r12 + rdx]
mov byte [r12 + rcx], r13b
mov byte [r12 + r10], 0xff
add rax, r10
sub r9d, 1
jne 0x22daf3cb8
jmp 0x22daf3482
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xd8]
add qword [rsp + 0xb0], rdi
mov byte [r12 + rsi], 0xff
add rax, rsi
add r12, rdi
add rbx, rdi
add r14, rdi
add r15, rdi
sub dword [rsp + 0x148], 1
jne 0x22daf2ad0
mov r15d, dword [rsp + 0x60]
jmp 0x22daf3c2d
mov rsi, qword [rsp + 0xc8]
xor ecx, ecx
lea rdi, [rbx + rsi]
add rsi, r12
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x20], rsi
jmp 0x22daf3ee3
cmp r10d, r9d
cmovge r8d, esi
add r8d, ebp
lea rdx, [rcx + 1]
mov byte [r12 + rcx], r8b
cmp qword [rsp + 0xd0], rcx
je 0x22daf3e55
mov rcx, rdx
mov rdi, qword [rsp + 0x30]
movzx r9d, byte [rbx + rcx]
movzx ebp, byte [rax + rcx]
movzx r10d, byte [rdi + rcx]
mov rdi, qword [rsp + 0x20]
mov esi, r9d
movzx r11d, byte [rdi + rcx]
mov r8d, r10d
lea edx, [r11 + r9]
mov edi, r11d
sub edx, r10d
mov r13d, edx
sub r13d, r9d
mov r9d, r13d
neg r9d
cmovs r9d, r13d
mov r13d, edx
sub r13d, r10d
mov r10d, r13d
neg r10d
cmovs r10d, r13d
mov r13d, r9d
cmp r10d, r9d
cmovle r13d, r10d
sub edx, r11d
mov r11d, edx
neg r11d
cmovs r11d, edx
cmp r13d, r11d
jl 0x22daf3ec0
mov r8d, edi
jmp 0x22daf3ec7
mov edi, dword [rsp + 0xa8]
movsxd rax, r15d
cmp dword [rsp + 0x318], edi
je 0x22daf3f7e
mov byte [r12 + rax], 0xff
mov byte [r12 + rax + 1], 0xff
lea r14, [r11 + rax]
movsxd rax, dword [rsp + 0x88]
add r12, rax
add rbx, rax
jmp 0x22daf11bf
xor edx, edx
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
mov byte [r12 + rdx], r8b
mov r8, rdx
add rdx, 1
cmp rdi, r8
jne 0x22daf3fa0
jmp 0x22daf3606
xor edx, edx
nop dword [rax]
movzx ecx, byte [r8 + rdx]
shr cl, 1
add cl, byte [rax + rdx]
mov byte [r12 + rdx], cl
mov rcx, rdx
add rdx, 1
cmp rsi, rcx
jne 0x22daf3fc0
jmp 0x22daf2978
mov r14d, r11d
xor edx, edx
nop dword [rax]
movzx r13d, byte [rcx + rdx]
add r13b, byte [rax + rdx]
mov byte [r12 + rdx], r13b
mov r13, rdx
add rdx, 1
cmp r14, r13
jne 0x22daf3fe8
jmp 0x22daf3e38
mov dword [rsp + 0x190], r15d
mov r15, qword [rsp + 0x1e0]
xor ecx, ecx
nop dword [rax + rax]
movzx edx, byte [rbx + rcx]
movzx r14d, byte [r8 + rcx]
add edx, r14d
sar edx, 1
add dl, byte [rax + rcx]
mov byte [r12 + rcx], dl
mov rdx, rcx
add rcx, 1
cmp r15, rdx
jne 0x22daf4020
mov r15d, dword [rsp + 0x190]
jmp 0x22daf3c18
mov r14d, r11d
xor edx, edx
nop dword [rax + rax]
movzx r13d, byte [rcx + rdx]
add r13b, byte [rax + rdx]
mov byte [r12 + rdx], r13b
mov r13, rdx
add rdx, 1
cmp r14, r13
jne 0x22daf4058
jmp 0x22daf3470
xor edx, edx
nop dword [rax + rax]
movzx r8d, byte [rbx + rdx]
add r8b, byte [rax + rdx]
mov byte [r12 + rdx], r8b
mov r8, rdx
add rdx, 1
cmp rbp, r8
jne 0x22daf4080
jmp 0x22daf3242
add eax, eax
mov edi, 2
mov r14d, 2
mov dword [rsp + 0x88], eax
mov rax, rcx
jmp 0x22daf0dfd
mov r15d, dword [rsp + 0x40]
jmp case.default.0x22daf11fe
lea rcx, [0x22dd0c480]
lea rbx, str.not_enough_pixels
call fcn.22dcfcd40
mov qword [rax], rbx
xor eax, eax
jmp 0x22daf0f49
cmp dword [rsp + 0x330], 0x10
jne 0x22daf20d5
mov rdi, qword [rsp + 0x300]
mov rax, qword [rsp + 0x90]
add rax, qword [rdi + 0x18]
jmp 0x22daf29d3
cmp dword [rsp + 0x330], 0x10
je 0x22daf50bf
mov eax, 1
jmp 0x22daf0f49
lea rcx, [0x22dd0c480]
lea rbx, str.invalid_filter
call fcn.22dcfcd40
mov qword [rax], rbx
xor eax, eax
jmp 0x22daf0f49
cmp dword [rsp + 0x330], 7
jg 0x22daf4108
mov edi, dword [rsp + 0x18c]
mov eax, dword [rsp + 0xa0]
mov edx, dword [rsp + 0xe4]
lea esi, [rdi - 8]
sub rdx, rax
mov eax, esi
mov dword [rsp + 0x150], esi
shr eax, 3
mov r12, rdx
lea ecx, [rax + 1]
neg eax
mov rbx, rcx
mov dword [rsp + 0x14c], ecx
lea eax, [rsi + rax*8]
mov esi, edi
mov edx, ebx
mov qword [rsp + 0x60], rcx
and ebx, 0xfffffff0
shl rcx, 3
shr edx, 4
mov qword [rsp + 0xc0], rcx
lea ecx, [rdx - 1]
mov edx, ebx
mov dword [rsp + 0x190], eax
neg edx
mov qword [rsp + 0x1c0], rcx
lea ecx, [rdi + rdx*8]
mov dword [rsp + 0x140], ebx
mov dword [rsp + 0x110], ecx
lea ecx, [rdi - 4]
mov eax, ecx
mov qword [rsp + 0x138], rbx
shl rbx, 3
shr eax, 2
mov qword [rsp + 0x130], rbx
lea r14d, [rax + 1]
neg eax
mov dword [rsp + 0x188], ecx
mov edx, r14d
lea rdi, [r14*4]
mov rbx, r14
mov dword [rsp + 0x170], r14d
shr edx, 4
mov qword [rsp + 0x80], rdi
and ebx, 0xfffffff0
lea eax, [rcx + rax*4]
lea edi, [rdx - 1]
mov dword [rsp + 0xac], eax
mov qword [rsp + 0x1c8], rdi
mov edi, ebx
mov edx, edi
mov dword [rsp + 0x168], edi
mov qword [rsp + 0x160], rdi
neg edx
shl rdi, 2
lea ebx, [rsi + rdx*4]
mov qword [rsp + 0x158], rdi
mov edi, esi
lea esi, [rsi - 2]
mov edx, esi
mov dword [rsp + 0x118], ebx
shr edx, 1
mov dword [rsp + 0xd8], esi
lea ebp, [rdx + 1]
neg edx
lea rax, [rbp + rbp]
mov ebx, ebp
mov qword [rsp + 0x88], rax
mov eax, ebp
and ebx, 0xfffffff0
shr eax, 4
mov dword [rsp + 0xd0], ebx
sub eax, 1
add rax, 1
shl rax, 4
mov r13, rax
mov eax, ebx
neg eax
lea eax, [rdi + rax*2]
mov edi, ebx
lea rbx, [rdi + rdi]
mov qword [rsp + 0xc8], rdi
lea edi, [rax - 2]
mov qword [rsp + 0xb0], rbx
lea ebx, [rax - 4]
mov dword [rsp + 0x198], edi
lea edi, [rax - 6]
mov dword [rsp + 0xf0], ebx
lea ebx, [rax - 8]
mov dword [rsp + 0xf8], edi
lea edi, [rax - 0xa]
mov dword [rsp + 0x180], ebx
lea ebx, [rax - 0xc]
mov dword [rsp + 0x100], edi
lea edi, [rax - 0xe]
mov dword [rsp + 0x148], ebx
lea ebx, [rax - 0x10]
movsxd rcx, dword [rsp + 0xe0]
mov dword [rsp + 0x1b0], edi
lea edi, [rax - 0x12]
movdqa xmm14, xmmword [0x22dd77840]
mov dword [rsp + 0x1a0], ebx
lea ebx, [rax - 0x14]
movdqa xmm13, xmmword [0x22dd77860]
mov dword [rsp + 0x1a8], edi
lea edi, [rax - 0x16]
mov dword [rsp + 0x1b8], ebx
lea ebx, [rax - 0x18]
mov dword [rsp + 0x128], edi
lea edi, [rax - 0x1a]
sub eax, 0x1c
mov dword [rsp + 0x108], eax
lea eax, [rsi + rdx*2]
xor esi, esi
mov dword [rsp + 0x90], eax
lea eax, [rcx*4]
cdqe
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x320]
mov dword [rsp + 0xe4], ebp
lea eax, [rax + rax*2 - 3]
mov dword [rsp + 0x120], ebx
mov ebx, dword [rsp + 0x330]
cdqe
mov qword [rsp + 0x50], r14
mov r14, qword [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov eax, ecx
sub rcx, rax
mov qword [rsp + 0xe8], r13
mov r13d, dword [rsp + 0xa8]
lea rax, [rcx*4 - 4]
mov dword [rsp + 0x178], edi
xor edi, edi
mov qword [rsp + 0x40], rax
nop dword [rax]
mov r8, qword [r14 + 0x18]
mov edx, edi
mov ecx, 1
mov r9d, dword [rsp + 0x338]
lea rax, [rdx + r12]
lea r11, [r8 + rdx]
add r8, rax
test r9d, r9d
jne 0x22daf4402
movsxd rcx, ebx
lea r9, [0x22dd774a8]
movzx ecx, byte [r9 + rcx]
cmp ebx, 4
je 0x22daf454a
cmp ebx, 2
je 0x22daf4917
cmp ebx, 1
je 0x22daf4be6
cmp dword [rsp + 0x318], r13d
je 0x22daf44ac
add rdx, qword [r14 + 0x18]
mov r15, rdx
cmp r13d, 1
je 0x22daf44c4
cmp r13d, 3
je 0x22daf445c
mov r8d, 0x12ac
lea rdx, [0x22dd76a38]
lea rcx, str.img_n__3
call qword [sym.imp.msvcrt.dll__assert]
cmp dword [rsp + 0xe0], 0xffffffff
je 0x22daf44ac
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
add rax, r15
add rcx, r15
add rdx, r15
nop
mov byte [rax + 3], 0xff
movzx r8d, byte [rcx + 2]
sub rax, 4
sub rcx, 3
mov byte [rax + 6], r8b
movzx r8d, byte [rcx + 4]
mov byte [rax + 5], r8b
movzx r8d, byte [rcx + 3]
mov byte [rax + 4], r8b
cmp rdx, rax
jne 0x22daf4480
lea eax, [rsi + 1]
add edi, dword [rsp + 0x7c]
cmp dword [rsp + 0x78], esi
je 0x22daf4116
mov esi, eax
jmp 0x22daf43d0
cmp dword [rsp + 0xe0], 0xffffffff
je 0x22daf44ac
mov rax, qword [rsp + 0xa0]
nop word cs:[rax + rax]
mov byte [r15 + rax*2 + 1], 0xff
movzx edx, byte [r15 + rax]
mov byte [r15 + rax*2], dl
sub rax, 1
cmp eax, 0xffffffff
jne 0x22daf44e0
jmp 0x22daf44ac
mov r13d, r15d
xor ecx, ecx
xor edx, edx
jmp 0x22daf3379
mov r10d, r15d
xor r8d, r8d
xor edx, edx
jmp 0x22daf3170
mov r13d, r15d
xor ecx, ecx
xor edx, edx
jmp 0x22daf3d41
mov edx, dword [rsp + 0x20]
mov r10d, r15d
xor r8d, r8d
jmp 0x22daf355e
mov edx, edi
jmp 0x22daf33a3
mov edx, edi
jmp 0x22daf3199
mov edx, edi
jmp 0x22daf3d6b
mov edx, ebx
jmp 0x22daf357d
cmp dword [rsp + 0x18c], 1
jle 0x22daf53f0
mov r15, qword [rsp + 0x88]
lea r9, [rdx + r15]
cmp rax, r9
setge r9b
add rax, rbp
cmp rdx, rax
setge al
or al, r9b
je 0x22daf528f
cmp dword [rsp + 0xd8], 0x1d
jbe 0x22daf528f
movd xmm3, ecx
movdqa xmm1, xmmword [0x22dd77860]
xor eax, eax
movdqa xmm11, xmmword [0x22dd77870]
punpcklbw xmm3, xmm3
mov r9, qword [rsp + 0xe8]
punpcklwd xmm3, xmm3
pshufd xmm3, xmm3, 0
movdqa xmm4, xmm3
punpcklbw xmm4, xmm3
punpckhbw xmm3, xmm3
nop dword [rax + rax]
movdqu xmm0, xmmword [r8 + rax]
movdqa xmm2, xmm0
pand xmm0, xmm11
psrlw xmm2, 4
pand xmm2, xmm11
movdqa xmm5, xmm2
punpcklbw xmm5, xmm2
punpckhbw xmm2, xmm2
pmullw xmm5, xmm4
pmullw xmm2, xmm3
pand xmm5, xmm1
pand xmm2, xmm1
packuswb xmm5, xmm2
movdqa xmm2, xmm0
punpcklbw xmm2, xmm0
punpckhbw xmm0, xmm0
pmullw xmm2, xmm4
pmullw xmm0, xmm3
pand xmm2, xmm1
pand xmm0, xmm1
packuswb xmm2, xmm0
movdqa xmm0, xmm5
punpcklbw xmm0, xmm2
punpckhbw xmm5, xmm2
movups xmmword [r11 + rax*2], xmm0
movups xmmword [r11 + rax*2 + 0x10], xmm5
add rax, 0x10
cmp r9, rax
jne 0x22daf45c8
mov rax, qword [rsp + 0xb0]
mov r15d, dword [rsp + 0xe4]
lea r9, [r11 + rax]
mov rax, qword [rsp + 0xc8]
lea r10, [r8 + rax]
cmp dword [rsp + 0xd0], r15d
je 0x22daf48e6
movzx eax, byte [r10]
shr al, 4
imul eax, ecx
mov byte [r9], al
movzx eax, byte [r10]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x198], 1
mov byte [r9 + 1], al
jle 0x22daf48e6
movzx eax, byte [r10 + 1]
shr al, 4
imul eax, ecx
mov byte [r9 + 2], al
movzx eax, byte [r10 + 1]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0xf0], 1
mov byte [r9 + 3], al
jle 0x22daf48e6
movzx eax, byte [r10 + 2]
shr al, 4
imul eax, ecx
mov byte [r9 + 4], al
movzx eax, byte [r10 + 2]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0xf8], 1
mov byte [r9 + 5], al
jle 0x22daf48e6
movzx eax, byte [r10 + 3]
shr al, 4
imul eax, ecx
mov byte [r9 + 6], al
movzx eax, byte [r10 + 3]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x180], 1
mov byte [r9 + 7], al
jle 0x22daf48e6
movzx eax, byte [r10 + 4]
shr al, 4
imul eax, ecx
mov byte [r9 + 8], al
movzx eax, byte [r10 + 4]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x100], 1
mov byte [r9 + 9], al
jle 0x22daf48e6
movzx eax, byte [r10 + 5]
shr al, 4
imul eax, ecx
mov byte [r9 + 0xa], al
movzx eax, byte [r10 + 5]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x148], 1
mov byte [r9 + 0xb], al
jle 0x22daf48e6
movzx eax, byte [r10 + 6]
shr al, 4
imul eax, ecx
mov byte [r9 + 0xc], al
movzx eax, byte [r10 + 6]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x1b0], 1
mov byte [r9 + 0xd], al
jle 0x22daf48e6
movzx eax, byte [r10 + 7]
shr al, 4
imul eax, ecx
mov byte [r9 + 0xe], al
movzx eax, byte [r10 + 7]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x1a0], 1
mov byte [r9 + 0xf], al
jle 0x22daf48e6
movzx eax, byte [r10 + 8]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x10], al
movzx eax, byte [r10 + 8]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x1a8], 1
mov byte [r9 + 0x11], al
jle 0x22daf48e6
movzx eax, byte [r10 + 9]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x12], al
movzx eax, byte [r10 + 9]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x1b8], 1
mov byte [r9 + 0x13], al
jle 0x22daf48e6
movzx eax, byte [r10 + 0xa]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x14], al
movzx eax, byte [r10 + 0xa]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x128], 1
mov byte [r9 + 0x15], al
jle 0x22daf48e6
movzx eax, byte [r10 + 0xb]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x16], al
movzx eax, byte [r10 + 0xb]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x120], 1
mov byte [r9 + 0x17], al
jle 0x22daf48e6
movzx eax, byte [r10 + 0xc]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x18], al
movzx eax, byte [r10 + 0xc]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x178], 1
mov byte [r9 + 0x19], al
jle 0x22daf48e6
movzx eax, byte [r10 + 0xd]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x1a], al
movzx eax, byte [r10 + 0xd]
and eax, 0xf
imul eax, ecx
cmp dword [rsp + 0x108], 1
mov byte [r9 + 0x1b], al
jle 0x22daf48e6
movzx eax, byte [r10 + 0xe]
shr al, 4
imul eax, ecx
mov byte [r9 + 0x1c], al
movzx eax, byte [r10 + 0xe]
and eax, 0xf
imul eax, ecx
mov byte [r9 + 0x1d], al
lea r9, [r8 + rbp]
mov eax, dword [rsp + 0x90]
add r11, qword [rsp + 0x88]
mov r8, r9
cmp eax, 1
jne 0x22daf441d
movzx eax, byte [r8]
shr al, 4
imul eax, ecx
mov byte [r11], al
jmp 0x22daf441d
cmp dword [rsp + 0x18c], 3
jle 0x22daf53e3
mov r15, qword [rsp + 0x80]
lea r9, [rdx + r15]
cmp rax, r9
setge r9b
add rax, qword [rsp + 0x50]
cmp rdx, rax
setge al
or al, r9b
je 0x22daf52da
cmp dword [rsp + 0x188], 0x3b
jbe 0x22daf52da
movd xmm0, ecx
mov rax, r11
mov r9, r8
mov r15, qword [rsp + 0x1c8]
punpcklbw xmm0, xmm0
movdqa xmm1, xmmword [0x22dd77860]
movdqa xmm11, xmmword [0x22dd77870]
movdqa xmm5, xmm0
lea r10, [r15 + 1]
movdqa xmm10, xmmword [0x22dd77880]
movdqa xmm12, xmmword [str._________________a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a]
punpcklwd xmm5, xmm0
shl r10, 6
pshufd xmm5, xmm5, 0
add r10, r11
movdqa xmm6, xmm5
punpcklbw xmm6, xmm5
punpckhbw xmm5, xmm5
nop word [rax + rax]
movdqu xmm0, xmmword [r9]
add rax, 0x40
add r9, 0x10
movdqa xmm2, xmm0
psrlw xmm2, 6
pand xmm2, xmm10
movdqa xmm3, xmm2
punpcklbw xmm3, xmm2
punpckhbw xmm2, xmm2
pmullw xmm3, xmm6
pmullw xmm2, xmm5
pand xmm3, xmm1
pand xmm2, xmm1
packuswb xmm3, xmm2
movdqa xmm2, xmm0
psrlw xmm2, 4
pand xmm2, xmm11
pand xmm2, xmm10
movdqa xmm4, xmm2
punpcklbw xmm4, xmm2
punpckhbw xmm2, xmm2
pmullw xmm4, xmm6
pmullw xmm2, xmm5
pand xmm4, xmm1
pand xmm2, xmm1
packuswb xmm4, xmm2
movdqa xmm2, xmm0
pand xmm0, xmm10
psrlw xmm2, 2
pand xmm2, xmm12
pand xmm2, xmm10
movdqa xmm7, xmm2
punpcklbw xmm7, xmm2
punpckhbw xmm2, xmm2
pmullw xmm7, xmm6
pmullw xmm2, xmm5
pand xmm7, xmm1
pand xmm2, xmm1
packuswb xmm7, xmm2
movdqa xmm2, xmm0
punpcklbw xmm2, xmm0
punpckhbw xmm0, xmm0
pmullw xmm2, xmm6
pmullw xmm0, xmm5
pand xmm2, xmm1
pand xmm0, xmm1
packuswb xmm2, xmm0
movdqa xmm0, xmm3
punpckhbw xmm3, xmm7
punpcklbw xmm0, xmm7
movdqa xmm7, xmm4
punpckhbw xmm4, xmm2
punpcklbw xmm7, xmm2
movdqa xmm2, xmm0
punpckhbw xmm0, xmm7
punpcklbw xmm2, xmm7
movups xmmword [rax - 0x30], xmm0
movdqa xmm0, xmm3
punpckhbw xmm3, xmm4
punpcklbw xmm0, xmm4
movups xmmword [rax - 0x40], xmm2
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm3
cmp r10, rax
jne 0x22daf49c0
mov rax, qword [rsp + 0x158]
mov r15d, dword [rsp + 0x170]
lea r9, [r11 + rax]
mov rax, qword [rsp + 0x160]
lea r10, [r8 + rax]
cmp dword [rsp + 0x168], r15d
je 0x22daf4b5c
mov eax, dword [rsp + 0x118]
lea r15d, [rax + r9]
nop dword [rax]
movzx eax, byte [r10]
add r9, 4
add r10, 1
shr al, 6
imul eax, ecx
mov byte [r9 - 4], al
movzx eax, byte [r10 - 1]
shr al, 4
and eax, 3
imul eax, ecx
mov byte [r9 - 3], al
movzx eax, byte [r10 - 1]
shr al, 2
and eax, 3
imul eax, ecx
mov byte [r9 - 2], al
movzx eax, byte [r10 - 1]
and eax, 3
imul eax, ecx
mov byte [r9 - 1], al
mov eax, r15d
sub eax, r9d
cmp eax, 3
jg 0x22daf4b08
mov rax, qword [rsp + 0x50]
lea r10, [r8 + rax]
mov r9d, dword [rsp + 0xac]
add r11, qword [rsp + 0x80]
mov r8, r10
test r9d, r9d
jle 0x22daf441d
movzx eax, byte [r8]
shr al, 6
imul eax, ecx
mov byte [r11], al
cmp r9d, 1
je 0x22daf441d
movzx eax, byte [r8]
shr al, 4
and eax, 3
imul eax, ecx
mov byte [r11 + 1], al
cmp r9d, 3
jne 0x22daf441d
movzx eax, byte [r8]
shr al, 2
and eax, 3
imul eax, ecx
mov byte [r11 + 2], al
jmp 0x22daf441d
lea rcx, [0x22dd0c480]
lea rbx, str.invalid_width
call fcn.22dcfcd40
mov qword [rax], rbx
xor eax, eax
jmp 0x22daf0f49
cmp dword [rsp + 0x18c], 7
jle 0x22daf53fc
mov r15, qword [rsp + 0xc0]
lea r9, [rdx + r15]
cmp rax, r9
setge r9b
add rax, qword [rsp + 0x60]
cmp rdx, rax
setge al
or al, r9b
je 0x22daf5339
cmp dword [rsp + 0x150], 0x77
jbe 0x22daf5339
movd xmm0, ecx
mov rax, r11
mov r9, r8
mov r15, qword [rsp + 0x1c0]
movdqa xmm11, xmmword [0x22dd77870]
punpcklbw xmm0, xmm0
movdqa xmm10, xmmword [0x22dd77880]
movdqa xmm5, xmm0
lea r10, [r15 + 1]
movdqa xmm12, xmmword [str._________________a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a]
punpcklwd xmm5, xmm0
shl r10, 7
pshufd xmm5, xmm5, 0
add r10, r11
movdqa xmm9, xmm5
punpcklbw xmm9, xmm5
punpckhbw xmm5, xmm5
movdqu xmm0, xmmword [r9]
sub rax, 0xffffffffffffff80
add r9, 0x10
movdqa xmm2, xmm0
movdqa xmm3, xmm0
movdqa xmm15, xmm0
psrlw xmm2, 7
psrlw xmm3, 6
pand xmm2, xmm14
psrlw xmm15, 1
pand xmm3, xmm10
movdqa xmm1, xmm2
pand xmm3, xmm14
pand xmm15, xmmword [0x22dd77850]
punpcklbw xmm1, xmm2
punpckhbw xmm2, xmm2
pmullw xmm1, xmm9
pmullw xmm2, xmm5
pand xmm15, xmm14
pand xmm2, xmm13
pand xmm1, xmm13
packuswb xmm1, xmm2
movdqa xmm2, xmm3
punpcklbw xmm2, xmm3
punpckhbw xmm3, xmm3
pmullw xmm2, xmm9
pmullw xmm3, xmm5
pand xmm2, xmm13
pand xmm3, xmm13
packuswb xmm2, xmm3
movdqa xmm3, xmm0
psrlw xmm3, 5
pand xmm3, xmmword [0x22dd778a0]
pand xmm3, xmm14
movdqa xmm6, xmm3
punpcklbw xmm6, xmm3
punpckhbw xmm3, xmm3
pmullw xmm6, xmm9
pmullw xmm3, xmm5
pand xmm6, xmm13
pand xmm3, xmm13
packuswb xmm6, xmm3
movdqa xmm3, xmm0
psrlw xmm3, 4
pand xmm3, xmm11
pand xmm3, xmm14
movdqa xmm4, xmm3
punpcklbw xmm4, xmm3
punpckhbw xmm3, xmm3
pmullw xmm4, xmm9
pmullw xmm3, xmm5
pand xmm4, xmm13
pand xmm3, xmm13
packuswb xmm4, xmm3
movdqa xmm3, xmm0
psrlw xmm3, 3
pand xmm3, xmmword [0x22dd778b0]
pand xmm3, xmm14
movdqa xmm7, xmm3
punpcklbw xmm7, xmm3
punpckhbw xmm3, xmm3
pmullw xmm7, xmm9
pmullw xmm3, xmm5
pand xmm7, xmm13
pand xmm3, xmm13
packuswb xmm7, xmm3
movdqa xmm3, xmm0
pand xmm0, xmm14
psrlw xmm3, 2
pand xmm3, xmm12
pand xmm3, xmm14
movdqa xmm8, xmm3
punpcklbw xmm8, xmm3
punpckhbw xmm3, xmm3
pmullw xmm8, xmm9
pmullw xmm3, xmm5
pand xmm8, xmm13
pand xmm3, xmm13
packuswb xmm8, xmm3
movdqa xmm3, xmm15
punpcklbw xmm3, xmm15
punpckhbw xmm15, xmm15
pmullw xmm3, xmm9
pmullw xmm15, xmm5
pand xmm3, xmm13
pand xmm15, xmm13
packuswb xmm3, xmm15
movdqa xmm15, xmm0
punpcklbw xmm15, xmm0
punpckhbw xmm0, xmm0
pmullw xmm15, xmm9
pmullw xmm0, xmm5
pand xmm15, xmm13
pand xmm0, xmm13
packuswb xmm15, xmm0
movdqa xmm0, xmm1
punpckhbw xmm1, xmm7
punpcklbw xmm0, xmm7
movdqa xmm7, xmm2
punpckhbw xmm2, xmm8
punpcklbw xmm7, xmm8
movdqa xmm8, xmm6
punpckhbw xmm6, xmm3
punpcklbw xmm8, xmm3
movdqa xmm3, xmm4
punpckhbw xmm4, xmm15
punpcklbw xmm3, xmm15
movdqa xmm15, xmm0
punpckhbw xmm0, xmm8
punpcklbw xmm15, xmm8
movdqa xmm8, xmm1
punpckhbw xmm1, xmm6
punpcklbw xmm8, xmm6
movdqa xmm6, xmm7
punpckhbw xmm7, xmm3
punpcklbw xmm6, xmm3
movdqa xmm3, xmm2
punpckhbw xmm2, xmm4
punpcklbw xmm3, xmm4
movdqa xmm4, xmm15
punpckhbw xmm15, xmm6
punpcklbw xmm4, xmm6
movups xmmword [rax - 0x70], xmm15
movups xmmword [rax - 0x80], xmm4
movdqa xmm4, xmm0
punpckhbw xmm0, xmm7
movups xmmword [rax - 0x50], xmm0
movdqa xmm0, xmm8
punpcklbw xmm4, xmm7
punpckhbw xmm8, xmm3
punpcklbw xmm0, xmm3
movups xmmword [rax - 0x60], xmm4
movups xmmword [rax - 0x40], xmm0
movdqa xmm0, xmm1
punpckhbw xmm1, xmm2
punpcklbw xmm0, xmm2
movups xmmword [rax - 0x30], xmm8
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
cmp r10, rax
jne 0x22daf4c80
mov rax, qword [rsp + 0x130]
mov r15d, dword [rsp + 0x14c]
lea r9, [r11 + rax]
mov rax, qword [rsp + 0x138]
lea r10, [r8 + rax]
cmp dword [rsp + 0x140], r15d
je 0x22daf4fe7
mov eax, dword [rsp + 0x110]
lea r15d, [rax + r9]
nop dword [rax]
movzx eax, byte [r10]
add r9, 8
add r10, 1
shr al, 7
imul eax, ecx
mov byte [r9 - 8], al
movzx eax, byte [r10 - 1]
shr al, 6
and eax, 1
imul eax, ecx
mov byte [r9 - 7], al
movzx eax, byte [r10 - 1]
shr al, 5
and eax, 1
imul eax, ecx
mov byte [r9 - 6], al
movzx eax, byte [r10 - 1]
shr al, 4
and eax, 1
imul eax, ecx
mov byte [r9 - 5], al
movzx eax, byte [r10 - 1]
shr al, 3
and eax, 1
imul eax, ecx
mov byte [r9 - 4], al
movzx eax, byte [r10 - 1]
shr al, 2
and eax, 1
imul eax, ecx
mov byte [r9 - 3], al
movzx eax, byte [r10 - 1]
shr al, 1
and eax, 1
imul eax, ecx
mov byte [r9 - 2], al
movzx eax, byte [r10 - 1]
and eax, 1
imul eax, ecx
mov byte [r9 - 1], al
mov eax, r15d
sub eax, r9d
cmp eax, 7
jg 0x22daf4f48
mov rax, qword [rsp + 0x60]
lea r10, [r8 + rax]
mov r9d, dword [rsp + 0x190]
add r11, qword [rsp + 0xc0]
mov r8, r10
test r9d, r9d
jle 0x22daf441d
movzx eax, byte [r8]
shr al, 7
imul eax, ecx
mov byte [r11], al
cmp r9d, 1
je 0x22daf441d
movzx eax, byte [r8]
shr al, 6
and eax, 1
imul eax, ecx
mov byte [r11 + 1], al
cmp r9d, 2
je 0x22daf441d
movzx eax, byte [r8]
shr al, 5
and eax, 1
imul eax, ecx
mov byte [r11 + 2], al
cmp r9d, 3
je 0x22daf441d
movzx eax, byte [r8]
shr al, 4
and eax, 1
imul eax, ecx
mov byte [r11 + 3], al
cmp r9d, 4
je 0x22daf441d
movzx eax, byte [r8]
shr al, 3
and eax, 1
imul eax, ecx
mov byte [r11 + 4], al
cmp r9d, 5
je 0x22daf441d
movzx eax, byte [r8]
shr al, 2
and eax, 1
imul eax, ecx
mov byte [r11 + 5], al
cmp r9d, 7
jne 0x22daf441d
movzx eax, byte [r8]
shr al, 1
and eax, 1
imul eax, ecx
mov byte [r11 + 6], al
jmp 0x22daf441d
mov edx, dword [rsp + 0x320]
imul edx, dword [rsp + 0x328]
imul edx, dword [rsp + 0x318]
mov rax, qword [rsp + 0x300]
mov r8, qword [rax + 0x18]
test edx, edx
je 0x22daf4116
lea eax, [rdx - 1]
cmp eax, 6
jbe 0x22daf5409
mov ecx, edx
mov rax, r8
shr ecx, 3
sub ecx, 1
shl rcx, 4
lea rcx, [r8 + rcx + 0x10]
movdqu xmm0, xmmword [rax]
add rax, 0x10
movdqa xmm1, xmm0
psrlw xmm0, 8
psllw xmm1, 8
por xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rcx, rax
jne 0x22daf510a
mov eax, edx
and eax, 0xfffffff8
mov ecx, eax
lea rcx, [r8 + rcx*2]
cmp edx, eax
je 0x22daf4116
mov r9d, edx
sub r9d, eax
lea r10d, [r9 - 1]
cmp r10d, 2
jbe 0x22daf518d
mov r10d, eax
lea r8, [r8 + r10*2]
movq xmm0, qword [r8]
movdqa xmm1, xmm0
psllw xmm0, 8
psrlw xmm1, 8
por xmm0, xmm1
movq qword [r8], xmm0
mov r8d, r9d
and r8d, 0xfffffffc
mov r10d, r8d
add eax, r8d
lea rcx, [rcx + r10*2]
cmp r9d, r8d
je 0x22daf4116
lea r8d, [rax + 1]
rol word [rcx], 8
cmp r8d, edx
jae 0x22daf4116
add eax, 2
rol word [rcx + 2], 8
cmp eax, edx
jae 0x22daf4116
rol word [rcx + 4], 8
jmp 0x22daf4116
mov ecx, r13d
xor edx, edx
add rax, r12
movzx r8d, byte [r14 + rdx]
add r8b, byte [rax + rdx]
mov byte [r12 + rdx], r8b
add rdx, 1
cmp rcx, rdx
jne 0x22daf51c0
jmp case.default.0x22daf11fe
mov r8d, r13d
xor eax, eax
add rcx, r12
nop dword [rax + rax]
movzx edx, byte [rcx + rax]
shr dl, 1
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
add rax, 1
cmp rax, r8
jne 0x22daf51e8
jmp case.default.0x22daf11fe
mov ecx, r13d
xor eax, eax
nop dword [rax]
movzx edx, byte [rbx + rax]
add dl, byte [r14 + rax]
mov byte [r12 + rax], dl
add rax, 1
cmp rcx, rax
jne 0x22daf5210
jmp case.default.0x22daf11fe
mov ecx, r13d
xor edx, edx
add rax, r12
nop word [rax + rax]
movzx r8d, byte [r14 + rdx]
add r8b, byte [rax + rdx]
mov byte [r12 + rdx], r8b
add rdx, 1
cmp rdx, rcx
jne 0x22daf5238
jmp case.default.0x22daf11fe
mov r8d, r13d
xor edx, edx
lea r9, [r12 + rax]
nop dword [rax]
movzx eax, byte [r9 + rdx]
movzx ecx, byte [rbx + rdx]
add eax, ecx
sar eax, 1
add al, byte [r14 + rdx]
mov byte [r12 + rdx], al
add rdx, 1
cmp r8, rdx
jne 0x22daf5260
jmp case.default.0x22daf11fe
xor ecx, ecx
xor edx, edx
add rax, r12
jmp 0x22daf21a6
lea r9, [r8 + rbp]
mov r10, r11
movzx eax, byte [r8]
add r10, 2
add r8, 1
shr al, 4
imul eax, ecx
mov byte [r10 - 2], al
movzx eax, byte [r8 - 1]
and eax, 0xf
imul eax, ecx
mov byte [r10 - 1], al
cmp r8, r9
jne 0x22daf5296
jmp 0x22daf48ea
xor edx, edx
xor ecx, ecx
jmp 0x22daf1e7d
xor ecx, ecx
xor edx, edx
add rax, r12
jmp 0x22daf1ff6
mov rax, qword [rsp + 0x50]
mov r9, r11
lea r10, [r8 + rax]
movzx eax, byte [r8]
add r9, 4
add r8, 1
shr al, 6
imul eax, ecx
mov byte [r9 - 4], al
movzx eax, byte [r8 - 1]
shr al, 4
and eax, 3
imul eax, ecx
mov byte [r9 - 3], al
movzx eax, byte [r8 - 1]
shr al, 2
and eax, 3
imul eax, ecx
mov byte [r9 - 2], al
movzx eax, byte [r8 - 1]
and eax, 3
imul eax, ecx
mov byte [r9 - 1], al
cmp r8, r10
jne 0x22daf52e6
jmp 0x22daf4b65
mov rax, qword [rsp + 0x60]
mov r9, r11
lea r10, [r8 + rax]
movzx eax, byte [r8]
add r9, 8
add r8, 1
shr al, 7
imul eax, ecx
mov byte [r9 - 8], al
movzx eax, byte [r8 - 1]
shr al, 6
and eax, 1
imul eax, ecx
mov byte [r9 - 7], al
movzx eax, byte [r8 - 1]
shr al, 5
and eax, 1
imul eax, ecx
mov byte [r9 - 6], al
movzx eax, byte [r8 - 1]
shr al, 4
and eax, 1
imul eax, ecx
mov byte [r9 - 5], al
movzx eax, byte [r8 - 1]
shr al, 3
and eax, 1
imul eax, ecx
mov byte [r9 - 4], al
movzx eax, byte [r8 - 1]
shr al, 2
and eax, 1
imul eax, ecx
mov byte [r9 - 3], al
movzx eax, byte [r8 - 1]
shr al, 1
and eax, 1
imul eax, ecx
mov byte [r9 - 2], al
movzx eax, byte [r8 - 1]
and eax, 1
imul eax, ecx
mov byte [r9 - 1], al
cmp r8, r10
jne 0x22daf5345
jmp 0x22daf4ff0
mov r9d, dword [rsp + 0x18c]
jmp 0x22daf4b78
mov eax, dword [rsp + 0x18c]
jmp 0x22daf48fc
mov r9d, dword [rsp + 0x18c]
jmp 0x22daf5003
mov rcx, r8
xor eax, eax
jmp 0x22daf5140