406d6e:	83 e2 1f             	and    $0x1f,%edx
406d71:	6a 20                	push   $0x20
406d73:	58                   	pop    %eax
406d74:	2b c2                	sub    %edx,%eax
406d76:	f7 da                	neg    %edx
406d78:	1b d2                	sbb    %edx,%edx
406d7a:	23 d0                	and    %eax,%edx
406d7c:	3b fa                	cmp    %edx,%edi
406d7e:	73 02                	jae    0x406d82
406d80:	8b d7                	mov    %edi,%edx
406d82:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
406d85:	8b c6                	mov    %esi,%eax
406d87:	3b f1                	cmp    %ecx,%esi
406d89:	74 0a                	je     0x406d95
406d8b:	80 38 00             	cmpb   $0x0,(%eax)
406d8e:	74 05                	je     0x406d95
406d90:	40                   	inc    %eax
406d91:	3b c1                	cmp    %ecx,%eax
406d93:	75 f6                	jne    0x406d8b
406d95:	8b c8                	mov    %eax,%ecx
406d97:	2b ce                	sub    %esi,%ecx
406d99:	3b ca                	cmp    %edx,%ecx
406d9b:	0f 85 d0 00 00 00    	jne    0x406e71
406da1:	2b fa                	sub    %edx,%edi
406da3:	8b c8                	mov    %eax,%ecx
406da5:	83 e7 e0             	and    $0xffffffe0,%edi
406da8:	03 f8                	add    %eax,%edi
406daa:	c5 f1 ef c9          	vpxor  %xmm1,%xmm1,%xmm1
406dae:	3b c7                	cmp    %edi,%eax
406db0:	74 13                	je     0x406dc5
406db2:	c5 f5 74 01          	vpcmpeqb (%ecx),%ymm1,%ymm0
406db6:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
406dba:	85 c0                	test   %eax,%eax
406dbc:	75 07                	jne    0x406dc5
406dbe:	83 c1 20             	add    $0x20,%ecx
406dc1:	3b cf                	cmp    %edi,%ecx
406dc3:	75 ed                	jne    0x406db2
406dc5:	8b 45 0c             	mov    0xc(%ebp),%eax
406dc8:	03 c6                	add    %esi,%eax
406dca:	eb 06                	jmp    0x406dd2
406dcc:	80 39 00             	cmpb   $0x0,(%ecx)
406dcf:	74 05                	je     0x406dd6
406dd1:	41                   	inc    %ecx
406dd2:	3b c8                	cmp    %eax,%ecx
406dd4:	75 f6                	jne    0x406dcc
406dd6:	2b ce                	sub    %esi,%ecx
406dd8:	c5 f8 77             	vzeroupper
406ddb:	e9 91 00 00 00       	jmp    0x406e71
406de0:	83 f8 01             	cmp    $0x1,%eax
406de3:	7c 72                	jl     0x406e57
406de5:	8b 75 08             	mov    0x8(%ebp),%esi
406de8:	8b d6                	mov    %esi,%edx
406dea:	8b 7d 0c             	mov    0xc(%ebp),%edi
406ded:	83 e2 0f             	and    $0xf,%edx
406df0:	6a 10                	push   $0x10
406df2:	58                   	pop    %eax
406df3:	2b c2                	sub    %edx,%eax
406df5:	f7 da                	neg    %edx
406df7:	1b d2                	sbb    %edx,%edx
406df9:	23 d0                	and    %eax,%edx
406dfb:	3b fa                	cmp    %edx,%edi
406dfd:	73 02                	jae    0x406e01
406dff:	8b d7                	mov    %edi,%edx
406e01:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
406e04:	8b c6                	mov    %esi,%eax
406e06:	3b f1                	cmp    %ecx,%esi
406e08:	74 0a                	je     0x406e14
406e0a:	80 38 00             	cmpb   $0x0,(%eax)
406e0d:	74 05                	je     0x406e14
406e0f:	40                   	inc    %eax
406e10:	3b c1                	cmp    %ecx,%eax
406e12:	75 f6                	jne    0x406e0a
406e14:	8b c8                	mov    %eax,%ecx
406e16:	2b ce                	sub    %esi,%ecx
406e18:	3b ca                	cmp    %edx,%ecx
406e1a:	75 55                	jne    0x406e71
406e1c:	2b fa                	sub    %edx,%edi
406e1e:	8b c8                	mov    %eax,%ecx
406e20:	83 e7 f0             	and    $0xfffffff0,%edi
406e23:	0f 57 c9             	xorps  %xmm1,%xmm1
406e26:	03 f8                	add    %eax,%edi
406e28:	3b c7                	cmp    %edi,%eax
406e2a:	74 16                	je     0x406e42
406e2c:	0f 28 c1             	movaps %xmm1,%xmm0
406e2f:	66 0f 74 01          	pcmpeqb (%ecx),%xmm0
406e33:	66 0f d7 c0          	pmovmskb %xmm0,%eax
406e37:	85 c0                	test   %eax,%eax
406e39:	75 07                	jne    0x406e42
406e3b:	83 c1 10             	add    $0x10,%ecx
406e3e:	3b cf                	cmp    %edi,%ecx
406e40:	75 ea                	jne    0x406e2c
406e42:	8b 45 0c             	mov    0xc(%ebp),%eax
406e45:	03 c6                	add    %esi,%eax
406e47:	eb 06                	jmp    0x406e4f
406e49:	80 39 00             	cmpb   $0x0,(%ecx)
406e4c:	74 05                	je     0x406e53
406e4e:	41                   	inc    %ecx
406e4f:	3b c8                	cmp    %eax,%ecx
406e51:	75 f6                	jne    0x406e49
406e53:	2b ce                	sub    %esi,%ecx
406e55:	eb 1a                	jmp    0x406e71
406e57:	8b 55 08             	mov    0x8(%ebp),%edx
406e5a:	8b ca                	mov    %edx,%ecx
406e5c:	8b 45 0c             	mov    0xc(%ebp),%eax
406e5f:	03 c2                	add    %edx,%eax
406e61:	3b d0                	cmp    %eax,%edx
406e63:	74 0a                	je     0x406e6f
406e65:	80 39 00             	cmpb   $0x0,(%ecx)
406e68:	74 05                	je     0x406e6f
406e6a:	41                   	inc    %ecx
406e6b:	3b c8                	cmp    %eax,%ecx
406e6d:	75 f6                	jne    0x406e65
406e6f:	2b ca                	sub    %edx,%ecx
406e71:	5f                   	pop    %edi
406e72:	8b c1                	mov    %ecx,%eax
406e74:	5e                   	pop    %esi
406e75:	5d                   	pop    %ebp
406e76:	c3                   	ret
406e77:	8b ff                	mov    %edi,%edi
406e79:	55                   	push   %ebp
406e7a:	8b ec                	mov    %esp,%ebp
406e7c:	a1 6c 1a 42 00       	mov    0x421a6c,%eax
406e81:	56                   	push   %esi
406e82:	57                   	push   %edi
406e83:	83 f8 05             	cmp    $0x5,%eax
406e86:	0f 8c 83 00 00 00    	jl     0x406f0f
406e8c:	8b 45 08             	mov    0x8(%ebp),%eax
406e8f:	a8 01                	test   $0x1,%al
406e91:	74 15                	je     0x406ea8
406e93:	8b c8                	mov    %eax,%ecx
406e95:	33 d2                	xor    %edx,%edx
406e97:	66 39 11             	cmp    %dx,(%ecx)
406e9a:	74 05                	je     0x406ea1
406e9c:	83 c1 02             	add    $0x2,%ecx
406e9f:	eb f6                	jmp    0x406e97
406ea1:	2b c8                	sub    %eax,%ecx
406ea3:	e9 ef 00 00 00       	jmp    0x406f97
406ea8:	8b f0                	mov    %eax,%esi
406eaa:	83 e6 1f             	and    $0x1f,%esi
406ead:	6a 20                	push   $0x20
406eaf:	58                   	pop    %eax
406eb0:	2b c6                	sub    %esi,%eax
406eb2:	f7 de                	neg    %esi
406eb4:	1b f6                	sbb    %esi,%esi
406eb6:	33 d2                	xor    %edx,%edx
406eb8:	23 f0                	and    %eax,%esi
406eba:	8b 45 08             	mov    0x8(%ebp),%eax
406ebd:	d1 ee                	shr    $1,%esi
406ebf:	8b c8                	mov    %eax,%ecx
406ec1:	8d 3c 70             	lea    (%eax,%esi,2),%edi
406ec4:	3b c7                	cmp    %edi,%eax
406ec6:	74 0c                	je     0x406ed4
406ec8:	66 39 11             	cmp    %dx,(%ecx)
406ecb:	74 07                	je     0x406ed4
406ecd:	83 c1 02             	add    $0x2,%ecx
406ed0:	3b cf                	cmp    %edi,%ecx
406ed2:	75 f4                	jne    0x406ec8
406ed4:	2b c8                	sub    %eax,%ecx
406ed6:	d1 f9                	sar    $1,%ecx
406ed8:	3b ce                	cmp    %esi,%ecx
406eda:	0f 85 b9 00 00 00    	jne    0x406f99
406ee0:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
406ee3:	c5 f1 ef c9          	vpxor  %xmm1,%xmm1,%xmm1
406ee7:	c5 f5 75 01          	vpcmpeqw (%ecx),%ymm1,%ymm0
406eeb:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
406eef:	85 c0                	test   %eax,%eax
406ef1:	75 05                	jne    0x406ef8
406ef3:	83 c1 20             	add    $0x20,%ecx
406ef6:	eb ef                	jmp    0x406ee7
406ef8:	66 39 11             	cmp    %dx,(%ecx)
406efb:	74 05                	je     0x406f02
406efd:	83 c1 02             	add    $0x2,%ecx
406f00:	eb f6                	jmp    0x406ef8
406f02:	2b 4d 08             	sub    0x8(%ebp),%ecx
406f05:	d1 f9                	sar    $1,%ecx
406f07:	c5 f8 77             	vzeroupper
406f0a:	e9 8a 00 00 00       	jmp    0x406f99
406f0f:	83 f8 01             	cmp    $0x1,%eax
406f12:	7c 71                	jl     0x406f85
406f14:	8b 45 08             	mov    0x8(%ebp),%eax
406f17:	a8 01                	test   $0x1,%al
406f19:	74 12                	je     0x406f2d
406f1b:	8b c8                	mov    %eax,%ecx
406f1d:	33 d2                	xor    %edx,%edx
406f1f:	66 39 11             	cmp    %dx,(%ecx)
406f22:	0f 84 79 ff ff ff    	je     0x406ea1
406f28:	83 c1 02             	add    $0x2,%ecx
406f2b:	eb f2                	jmp    0x406f1f
406f2d:	8b f0                	mov    %eax,%esi
406f2f:	83 e6 0f             	and    $0xf,%esi
406f32:	6a 10                	push   $0x10
406f34:	58                   	pop    %eax
406f35:	2b c6                	sub    %esi,%eax
406f37:	f7 de                	neg    %esi
406f39:	1b f6                	sbb    %esi,%esi
406f3b:	33 d2                	xor    %edx,%edx
406f3d:	23 f0                	and    %eax,%esi
406f3f:	8b 45 08             	mov    0x8(%ebp),%eax
406f42:	d1 ee                	shr    $1,%esi
406f44:	8b c8                	mov    %eax,%ecx
406f46:	8d 3c 70             	lea    (%eax,%esi,2),%edi
406f49:	3b c7                	cmp    %edi,%eax
406f4b:	74 0c                	je     0x406f59
406f4d:	66 39 11             	cmp    %dx,(%ecx)
406f50:	74 07                	je     0x406f59
406f52:	83 c1 02             	add    $0x2,%ecx
406f55:	3b cf                	cmp    %edi,%ecx
406f57:	75 f4                	jne    0x406f4d
406f59:	2b c8                	sub    %eax,%ecx
406f5b:	d1 f9                	sar    $1,%ecx
406f5d:	3b ce                	cmp    %esi,%ecx
406f5f:	75 38                	jne    0x406f99
406f61:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
406f64:	0f 57 c9             	xorps  %xmm1,%xmm1
406f67:	0f 28 c1             	movaps %xmm1,%xmm0
406f6a:	66 0f 75 01          	pcmpeqw (%ecx),%xmm0
406f6e:	66 0f d7 c0          	pmovmskb %xmm0,%eax
406f72:	85 c0                	test   %eax,%eax
406f74:	75 05                	jne    0x406f7b
406f76:	83 c1 10             	add    $0x10,%ecx
406f79:	eb ec                	jmp    0x406f67
406f7b:	66 39 11             	cmp    %dx,(%ecx)
406f7e:	74 14                	je     0x406f94
406f80:	83 c1 02             	add    $0x2,%ecx
406f83:	eb f6                	jmp    0x406f7b
406f85:	8b 4d 08             	mov    0x8(%ebp),%ecx
406f88:	33 d2                	xor    %edx,%edx
406f8a:	66 39 11             	cmp    %dx,(%ecx)
406f8d:	74 05                	je     0x406f94
406f8f:	83 c1 02             	add    $0x2,%ecx
406f92:	eb f6                	jmp    0x406f8a
406f94:	2b 4d 08             	sub    0x8(%ebp),%ecx
406f97:	d1 f9                	sar    $1,%ecx
406f99:	5f                   	pop    %edi
406f9a:	8b c1                	mov    %ecx,%eax
406f9c:	5e                   	pop    %esi
406f9d:	5d                   	pop    %ebp
406f9e:	c3                   	ret
406f9f:	8b ff                	mov    %edi,%edi
406fa1:	55                   	push   %ebp
406fa2:	8b ec                	mov    %esp,%ebp
406fa4:	a1 6c 1a 42 00       	mov    0x421a6c,%eax
406fa9:	56                   	push   %esi
406faa:	57                   	push   %edi
406fab:	83 f8 05             	cmp    $0x5,%eax
406fae:	0f 8c b7 00 00 00    	jl     0x40706b
406fb4:	8b 4d 08             	mov    0x8(%ebp),%ecx
406fb7:	f6 c1 01             	test   $0x1,%cl
406fba:	74 21                	je     0x406fdd
406fbc:	8b 45 0c             	mov    0xc(%ebp),%eax
406fbf:	8b f1                	mov    %ecx,%esi
406fc1:	8d 14 41             	lea    (%ecx,%eax,2),%edx
406fc4:	3b f2                	cmp    %edx,%esi
406fc6:	74 0e                	je     0x406fd6
406fc8:	33 c0                	xor    %eax,%eax
406fca:	66 39 01             	cmp    %ax,(%ecx)
406fcd:	74 07                	je     0x406fd6
406fcf:	83 c1 02             	add    $0x2,%ecx
406fd2:	3b ca                	cmp    %edx,%ecx
406fd4:	75 f4                	jne    0x406fca
406fd6:	2b ce                	sub    %esi,%ecx
406fd8:	e9 6a 01 00 00       	jmp    0x407147
406fdd:	8b d1                	mov    %ecx,%edx
406fdf:	83 e2 1f             	and    $0x1f,%edx
406fe2:	6a 20                	push   $0x20
406fe4:	58                   	pop    %eax
406fe5:	2b c2                	sub    %edx,%eax
406fe7:	f7 da                	neg    %edx
406fe9:	1b d2                	sbb    %edx,%edx
406feb:	23 d0                	and    %eax,%edx
406fed:	8b 45 0c             	mov    0xc(%ebp),%eax
406ff0:	d1 ea                	shr    $1,%edx
406ff2:	3b c2                	cmp    %edx,%eax
406ff4:	73 02                	jae    0x406ff8
406ff6:	8b d0                	mov    %eax,%edx
406ff8:	8b 75 08             	mov    0x8(%ebp),%esi
406ffb:	8d 3c 51             	lea    (%ecx,%edx,2),%edi
406ffe:	33 c0                	xor    %eax,%eax
407000:	3b f7                	cmp    %edi,%esi
407002:	74 0c                	je     0x407010
407004:	66 39 01             	cmp    %ax,(%ecx)
407007:	74 07                	je     0x407010
407009:	83 c1 02             	add    $0x2,%ecx
40700c:	3b cf                	cmp    %edi,%ecx
40700e:	75 f4                	jne    0x407004
407010:	2b ce                	sub    %esi,%ecx
407012:	d1 f9                	sar    $1,%ecx
407014:	3b ca                	cmp    %edx,%ecx
407016:	0f 85 2d 01 00 00    	jne    0x407149
40701c:	8b 45 0c             	mov    0xc(%ebp),%eax
40701f:	8d 3c 4e             	lea    (%esi,%ecx,2),%edi
407022:	2b c2                	sub    %edx,%eax
407024:	83 e0 e0             	and    $0xffffffe0,%eax
407027:	03 c1                	add    %ecx,%eax
407029:	c5 f1 ef c9          	vpxor  %xmm1,%xmm1,%xmm1
40702d:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
407030:	eb 0f                	jmp    0x407041
407032:	c5 f5 75 07          	vpcmpeqw (%edi),%ymm1,%ymm0
407036:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
40703a:	85 c0                	test   %eax,%eax
40703c:	75 07                	jne    0x407045
40703e:	83 c7 20             	add    $0x20,%edi
407041:	3b f9                	cmp    %ecx,%edi
407043:	75 ed                	jne    0x407032
407045:	8b 45 0c             	mov    0xc(%ebp),%eax
407048:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40704b:	3b f9                	cmp    %ecx,%edi
40704d:	74 0e                	je     0x40705d
40704f:	33 c0                	xor    %eax,%eax
407051:	66 39 07             	cmp    %ax,(%edi)
407054:	74 07                	je     0x40705d
407056:	83 c7 02             	add    $0x2,%edi
407059:	3b f9                	cmp    %ecx,%edi
40705b:	75 f4                	jne    0x407051
40705d:	8b cf                	mov    %edi,%ecx
40705f:	2b ce                	sub    %esi,%ecx
407061:	d1 f9                	sar    $1,%ecx
407063:	c5 f8 77             	vzeroupper
407066:	e9 de 00 00 00       	jmp    0x407149
40706b:	83 f8 01             	cmp    $0x1,%eax
40706e:	0f 8c b4 00 00 00    	jl     0x407128
407074:	8b 4d 08             	mov    0x8(%ebp),%ecx
407077:	f6 c1 01             	test   $0x1,%cl
40707a:	74 27                	je     0x4070a3
40707c:	8b 45 0c             	mov    0xc(%ebp),%eax
40707f:	8b f1                	mov    %ecx,%esi
407081:	8d 14 41             	lea    (%ecx,%eax,2),%edx
407084:	3b f2                	cmp    %edx,%esi
407086:	0f 84 4a ff ff ff    	je     0x406fd6
40708c:	33 c0                	xor    %eax,%eax
40708e:	66 39 01             	cmp    %ax,(%ecx)
407091:	0f 84 3f ff ff ff    	je     0x406fd6
407097:	83 c1 02             	add    $0x2,%ecx
40709a:	3b ca                	cmp    %edx,%ecx
40709c:	75 f0                	jne    0x40708e
40709e:	e9 33 ff ff ff       	jmp    0x406fd6
4070a3:	8b d1                	mov    %ecx,%edx
4070a5:	83 e2 0f             	and    $0xf,%edx
4070a8:	6a 10                	push   $0x10
4070aa:	58                   	pop    %eax
4070ab:	2b c2                	sub    %edx,%eax
4070ad:	f7 da                	neg    %edx
4070af:	1b d2                	sbb    %edx,%edx
4070b1:	23 d0                	and    %eax,%edx
4070b3:	8b 45 0c             	mov    0xc(%ebp),%eax
4070b6:	d1 ea                	shr    $1,%edx
4070b8:	3b c2                	cmp    %edx,%eax
4070ba:	73 02                	jae    0x4070be
4070bc:	8b d0                	mov    %eax,%edx
4070be:	8b 75 08             	mov    0x8(%ebp),%esi