417c48:	d1 eb                	shr    $1,%ebx
417c4a:	d1 d9                	rcr    $1,%ecx
417c4c:	d1 ea                	shr    $1,%edx
417c4e:	d1 d8                	rcr    $1,%eax
417c50:	0b db                	or     %ebx,%ebx
417c52:	75 f4                	jne    0x417c48
417c54:	f7 f1                	div    %ecx
417c56:	8b c8                	mov    %eax,%ecx
417c58:	f7 64 24 18          	mull   0x18(%esp)
417c5c:	91                   	xchg   %eax,%ecx
417c5d:	f7 64 24 14          	mull   0x14(%esp)
417c61:	03 d1                	add    %ecx,%edx
417c63:	72 0e                	jb     0x417c73
417c65:	3b 54 24 10          	cmp    0x10(%esp),%edx
417c69:	77 08                	ja     0x417c73
417c6b:	72 0e                	jb     0x417c7b
417c6d:	3b 44 24 0c          	cmp    0xc(%esp),%eax
417c71:	76 08                	jbe    0x417c7b
417c73:	2b 44 24 14          	sub    0x14(%esp),%eax
417c77:	1b 54 24 18          	sbb    0x18(%esp),%edx
417c7b:	2b 44 24 0c          	sub    0xc(%esp),%eax
417c7f:	1b 54 24 10          	sbb    0x10(%esp),%edx
417c83:	4f                   	dec    %edi
417c84:	79 07                	jns    0x417c8d
417c86:	f7 da                	neg    %edx
417c88:	f7 d8                	neg    %eax
417c8a:	83 da 00             	sbb    $0x0,%edx
417c8d:	5f                   	pop    %edi
417c8e:	5b                   	pop    %ebx
417c8f:	c2 10 00             	ret    $0x10
417c92:	cc                   	int3
417c93:	cc                   	int3
417c94:	cc                   	int3
417c95:	cc                   	int3
417c96:	cc                   	int3
417c97:	cc                   	int3
417c98:	cc                   	int3
417c99:	cc                   	int3
417c9a:	cc                   	int3
417c9b:	cc                   	int3
417c9c:	cc                   	int3
417c9d:	cc                   	int3
417c9e:	cc                   	int3
417c9f:	cc                   	int3
417ca0:	80 f9 40             	cmp    $0x40,%cl
417ca3:	73 15                	jae    0x417cba
417ca5:	80 f9 20             	cmp    $0x20,%cl
417ca8:	73 06                	jae    0x417cb0
417caa:	0f a5 c2             	shld   %cl,%eax,%edx
417cad:	d3 e0                	shl    %cl,%eax
417caf:	c3                   	ret
417cb0:	8b d0                	mov    %eax,%edx
417cb2:	33 c0                	xor    %eax,%eax
417cb4:	80 e1 1f             	and    $0x1f,%cl
417cb7:	d3 e2                	shl    %cl,%edx
417cb9:	c3                   	ret
417cba:	33 c0                	xor    %eax,%eax
417cbc:	33 d2                	xor    %edx,%edx
417cbe:	c3                   	ret
417cbf:	cc                   	int3
417cc0:	80 f9 40             	cmp    $0x40,%cl
417cc3:	73 15                	jae    0x417cda
417cc5:	80 f9 20             	cmp    $0x20,%cl
417cc8:	73 06                	jae    0x417cd0
417cca:	0f ad d0             	shrd   %cl,%edx,%eax
417ccd:	d3 ea                	shr    %cl,%edx
417ccf:	c3                   	ret
417cd0:	8b c2                	mov    %edx,%eax
417cd2:	33 d2                	xor    %edx,%edx
417cd4:	80 e1 1f             	and    $0x1f,%cl
417cd7:	d3 e8                	shr    %cl,%eax
417cd9:	c3                   	ret
417cda:	33 c0                	xor    %eax,%eax
417cdc:	33 d2                	xor    %edx,%edx
417cde:	c3                   	ret
417cdf:	cc                   	int3
417ce0:	51                   	push   %ecx
417ce1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
417ce5:	2b c8                	sub    %eax,%ecx
417ce7:	83 e1 0f             	and    $0xf,%ecx
417cea:	03 c1                	add    %ecx,%eax
417cec:	1b c9                	sbb    %ecx,%ecx
417cee:	0b c1                	or     %ecx,%eax
417cf0:	59                   	pop    %ecx
417cf1:	e9 ca b8 fe ff       	jmp    0x4035c0
417cf6:	51                   	push   %ecx
417cf7:	8d 4c 24 08          	lea    0x8(%esp),%ecx
417cfb:	2b c8                	sub    %eax,%ecx
417cfd:	83 e1 07             	and    $0x7,%ecx
417d00:	03 c1                	add    %ecx,%eax
417d02:	1b c9                	sbb    %ecx,%ecx
417d04:	0b c1                	or     %ecx,%eax
417d06:	59                   	pop    %ecx
417d07:	e9 b4 b8 fe ff       	jmp    0x4035c0
417d0c:	cc                   	int3
417d0d:	cc                   	int3
417d0e:	cc                   	int3
417d0f:	cc                   	int3
417d10:	e9 0b 00 00 00       	jmp    0x417d20
417d15:	cc                   	int3
417d16:	cc                   	int3
417d17:	cc                   	int3
417d18:	cc                   	int3
417d19:	cc                   	int3
417d1a:	cc                   	int3
417d1b:	cc                   	int3
417d1c:	cc                   	int3
417d1d:	cc                   	int3
417d1e:	cc                   	int3
417d1f:	cc                   	int3
417d20:	83 3d 6c 1a 42 00 02 	cmpl   $0x2,0x421a6c
417d27:	7c 08                	jl     0x417d31
417d29:	83 ec 04             	sub    $0x4,%esp
417d2c:	db 0c 24             	fisttpl (%esp)
417d2f:	58                   	pop    %eax
417d30:	c3                   	ret
417d31:	55                   	push   %ebp
417d32:	8b ec                	mov    %esp,%ebp
417d34:	83 c4 f0             	add    $0xfffffff0,%esp
417d37:	83 e4 f0             	and    $0xfffffff0,%esp
417d3a:	d9 c0                	fld    %st(0)
417d3c:	db 3c 24             	fstpt  (%esp)
417d3f:	8b 44 24 04          	mov    0x4(%esp),%eax
417d43:	0f b7 4c 24 08       	movzwl 0x8(%esp),%ecx
417d48:	0f ba f1 0f          	btr    $0xf,%ecx
417d4c:	1b d2                	sbb    %edx,%edx
417d4e:	66 81 f9 ff 3f       	cmp    $0x3fff,%cx
417d53:	72 1f                	jb     0x417d74
417d55:	85 c0                	test   %eax,%eax
417d57:	79 36                	jns    0x417d8f
417d59:	66 81 f9 1e 40       	cmp    $0x401e,%cx
417d5e:	73 1c                	jae    0x417d7c
417d60:	66 f7 d9             	neg    %cx
417d63:	66 81 c1 3e 40       	add    $0x403e,%cx
417d68:	d9 fc                	frndint
417d6a:	dd d8                	fstp   %st(0)
417d6c:	d3 e8                	shr    %cl,%eax
417d6e:	33 c2                	xor    %edx,%eax
417d70:	2b c2                	sub    %edx,%eax
417d72:	c9                   	leave
417d73:	c3                   	ret
417d74:	d9 fc                	frndint
417d76:	dd d8                	fstp   %st(0)
417d78:	33 c0                	xor    %eax,%eax
417d7a:	c9                   	leave
417d7b:	c3                   	ret
417d7c:	77 11                	ja     0x417d8f
417d7e:	85 d2                	test   %edx,%edx
417d80:	79 0d                	jns    0x417d8f
417d82:	3d 00 00 00 80       	cmp    $0x80000000,%eax
417d87:	75 06                	jne    0x417d8f
417d89:	d9 fc                	frndint
417d8b:	dd d8                	fstp   %st(0)
417d8d:	c9                   	leave
417d8e:	c3                   	ret
417d8f:	d8 1d d8 ee 41 00    	fcomps 0x41eed8
417d95:	c9                   	leave
417d96:	b8 00 00 00 80       	mov    $0x80000000,%eax
417d9b:	c3                   	ret
417d9c:	cc                   	int3
417d9d:	cc                   	int3
417d9e:	cc                   	int3
417d9f:	cc                   	int3
417da0:	55                   	push   %ebp
417da1:	8b ec                	mov    %esp,%ebp
417da3:	57                   	push   %edi
417da4:	83 3d 6c 1a 42 00 01 	cmpl   $0x1,0x421a6c
417dab:	0f 82 fd 00 00 00    	jb     0x417eae
417db1:	8b 7d 08             	mov    0x8(%ebp),%edi
417db4:	77 77                	ja     0x417e2d
417db6:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
417dba:	8b c2                	mov    %edx,%eax
417dbc:	c1 e2 08             	shl    $0x8,%edx
417dbf:	0b d0                	or     %eax,%edx
417dc1:	66 0f 6e da          	movd   %edx,%xmm3
417dc5:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
417dca:	0f 16 db             	movlhps %xmm3,%xmm3
417dcd:	b9 0f 00 00 00       	mov    $0xf,%ecx
417dd2:	23 cf                	and    %edi,%ecx
417dd4:	83 c8 ff             	or     $0xffffffff,%eax
417dd7:	d3 e0                	shl    %cl,%eax
417dd9:	2b f9                	sub    %ecx,%edi
417ddb:	33 d2                	xor    %edx,%edx
417ddd:	f3 0f 6f 0f          	movdqu (%edi),%xmm1
417de1:	66 0f ef d2          	pxor   %xmm2,%xmm2
417de5:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
417de9:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
417ded:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
417df1:	23 c8                	and    %eax,%ecx
417df3:	75 18                	jne    0x417e0d
417df5:	66 0f d7 c9          	pmovmskb %xmm1,%ecx
417df9:	23 c8                	and    %eax,%ecx
417dfb:	0f bd c1             	bsr    %ecx,%eax
417dfe:	03 c7                	add    %edi,%eax
417e00:	85 c9                	test   %ecx,%ecx
417e02:	0f 45 d0             	cmovne %eax,%edx
417e05:	83 c8 ff             	or     $0xffffffff,%eax
417e08:	83 c7 10             	add    $0x10,%edi
417e0b:	eb d0                	jmp    0x417ddd
417e0d:	53                   	push   %ebx
417e0e:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
417e12:	23 d8                	and    %eax,%ebx
417e14:	d1 e1                	shl    $1,%ecx
417e16:	33 c0                	xor    %eax,%eax
417e18:	2b c1                	sub    %ecx,%eax
417e1a:	23 c8                	and    %eax,%ecx
417e1c:	49                   	dec    %ecx
417e1d:	23 cb                	and    %ebx,%ecx
417e1f:	5b                   	pop    %ebx
417e20:	0f bd c1             	bsr    %ecx,%eax
417e23:	03 c7                	add    %edi,%eax
417e25:	85 c9                	test   %ecx,%ecx
417e27:	0f 44 c2             	cmove  %edx,%eax
417e2a:	5f                   	pop    %edi
417e2b:	c9                   	leave
417e2c:	c3                   	ret
417e2d:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
417e31:	85 d2                	test   %edx,%edx
417e33:	74 39                	je     0x417e6e
417e35:	33 c0                	xor    %eax,%eax
417e37:	f7 c7 0f 00 00 00    	test   $0xf,%edi
417e3d:	74 15                	je     0x417e54
417e3f:	0f b6 0f             	movzbl (%edi),%ecx
417e42:	3b ca                	cmp    %edx,%ecx
417e44:	0f 44 c7             	cmove  %edi,%eax
417e47:	85 c9                	test   %ecx,%ecx
417e49:	74 20                	je     0x417e6b
417e4b:	47                   	inc    %edi
417e4c:	f7 c7 0f 00 00 00    	test   $0xf,%edi
417e52:	75 eb                	jne    0x417e3f
417e54:	66 0f 6e c2          	movd   %edx,%xmm0
417e58:	83 c7 10             	add    $0x10,%edi
417e5b:	66 0f 3a 63 47 f0 40 	pcmpistri $0x40,-0x10(%edi),%xmm0
417e62:	8d 4c 39 f0          	lea    -0x10(%ecx,%edi,1),%ecx
417e66:	0f 42 c1             	cmovb  %ecx,%eax
417e69:	75 ed                	jne    0x417e58
417e6b:	5f                   	pop    %edi
417e6c:	c9                   	leave
417e6d:	c3                   	ret
417e6e:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
417e73:	23 c7                	and    %edi,%eax
417e75:	66 0f ef c0          	pxor   %xmm0,%xmm0
417e79:	66 0f 74 00          	pcmpeqb (%eax),%xmm0
417e7d:	b9 0f 00 00 00       	mov    $0xf,%ecx
417e82:	23 cf                	and    %edi,%ecx
417e84:	ba ff ff ff ff       	mov    $0xffffffff,%edx
417e89:	d3 e2                	shl    %cl,%edx
417e8b:	66 0f d7 f8          	pmovmskb %xmm0,%edi
417e8f:	23 fa                	and    %edx,%edi
417e91:	75 14                	jne    0x417ea7
417e93:	66 0f ef c0          	pxor   %xmm0,%xmm0
417e97:	66 0f 74 40 10       	pcmpeqb 0x10(%eax),%xmm0
417e9c:	83 c0 10             	add    $0x10,%eax
417e9f:	66 0f d7 f8          	pmovmskb %xmm0,%edi
417ea3:	85 ff                	test   %edi,%edi
417ea5:	74 ec                	je     0x417e93
417ea7:	0f bc d7             	bsf    %edi,%edx
417eaa:	03 c2                	add    %edx,%eax
417eac:	eb bd                	jmp    0x417e6b
417eae:	8b 7d 08             	mov    0x8(%ebp),%edi
417eb1:	33 c0                	xor    %eax,%eax
417eb3:	83 c9 ff             	or     $0xffffffff,%ecx
417eb6:	f2 ae                	repnz scas %es:(%edi),%al
417eb8:	83 c1 01             	add    $0x1,%ecx
417ebb:	f7 d9                	neg    %ecx
417ebd:	83 ef 01             	sub    $0x1,%edi
417ec0:	8a 45 0c             	mov    0xc(%ebp),%al
417ec3:	fd                   	std
417ec4:	f2 ae                	repnz scas %es:(%edi),%al
417ec6:	83 c7 01             	add    $0x1,%edi
417ec9:	38 07                	cmp    %al,(%edi)
417ecb:	74 04                	je     0x417ed1
417ecd:	33 c0                	xor    %eax,%eax
417ecf:	eb 02                	jmp    0x417ed3
417ed1:	8b c7                	mov    %edi,%eax
417ed3:	fc                   	cld
417ed4:	5f                   	pop    %edi
417ed5:	c9                   	leave
417ed6:	c3                   	ret
417ed7:	cc                   	int3
417ed8:	cc                   	int3
417ed9:	cc                   	int3
417eda:	cc                   	int3
417edb:	cc                   	int3
417edc:	cc                   	int3
417edd:	cc                   	int3
417ede:	cc                   	int3
417edf:	cc                   	int3
417ee0:	55                   	push   %ebp
417ee1:	8b ec                	mov    %esp,%ebp
417ee3:	83 3d 6c 1a 42 00 01 	cmpl   $0x1,0x421a6c
417eea:	8b 4d 08             	mov    0x8(%ebp),%ecx
417eed:	7d 34                	jge    0x417f23
417eef:	0f b7 01             	movzwl (%ecx),%eax
417ef2:	8b d0                	mov    %eax,%edx
417ef4:	66 85 c0             	test   %ax,%ax
417ef7:	74 1c                	je     0x417f15
417ef9:	56                   	push   %esi
417efa:	8b f0                	mov    %eax,%esi
417efc:	0f b7 d6             	movzwl %si,%edx
417eff:	66 3b 75 0c          	cmp    0xc(%ebp),%si
417f03:	74 0f                	je     0x417f14
417f05:	83 c1 02             	add    $0x2,%ecx
417f08:	0f b7 01             	movzwl (%ecx),%eax
417f0b:	8b f0                	mov    %eax,%esi
417f0d:	8b d0                	mov    %eax,%edx
417f0f:	66 85 c0             	test   %ax,%ax
417f12:	75 e8                	jne    0x417efc
417f14:	5e                   	pop    %esi
417f15:	33 c0                	xor    %eax,%eax
417f17:	66 3b 55 0c          	cmp    0xc(%ebp),%dx
417f1b:	0f 95 c0             	setne  %al
417f1e:	48                   	dec    %eax
417f1f:	23 c1                	and    %ecx,%eax
417f21:	5d                   	pop    %ebp
417f22:	c3                   	ret
417f23:	66 8b 55 0c          	mov    0xc(%ebp),%dx
417f27:	0f b7 c2             	movzwl %dx,%eax
417f2a:	66 0f 6e c0          	movd   %eax,%xmm0
417f2e:	f2 0f 70 c0 00       	pshuflw $0x0,%xmm0,%xmm0
417f33:	66 0f 70 d0 00       	pshufd $0x0,%xmm0,%xmm2
417f38:	8b c1                	mov    %ecx,%eax
417f3a:	25 ff 0f 00 00       	and    $0xfff,%eax
417f3f:	3d f0 0f 00 00       	cmp    $0xff0,%eax
417f44:	77 21                	ja     0x417f67
417f46:	0f 10 09             	movups (%ecx),%xmm1
417f49:	0f 28 05 b0 91 41 00 	movaps 0x4191b0,%xmm0
417f50:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
417f54:	66 0f 75 ca          	pcmpeqw %xmm2,%xmm1
417f58:	0f 56 c1             	orps   %xmm1,%xmm0
417f5b:	66 0f d7 c0          	pmovmskb %xmm0,%eax
417f5f:	85 c0                	test   %eax,%eax
417f61:	75 18                	jne    0x417f7b
417f63:	6a 10                	push   $0x10
417f65:	eb 0f                	jmp    0x417f76
417f67:	0f b7 01             	movzwl (%ecx),%eax
417f6a:	66 3b c2             	cmp    %dx,%ax
417f6d:	74 1c                	je     0x417f8b
417f6f:	66 85 c0             	test   %ax,%ax
417f72:	74 13                	je     0x417f87
417f74:	6a 02                	push   $0x2
417f76:	58                   	pop    %eax
417f77:	03 c8                	add    %eax,%ecx
417f79:	eb bd                	jmp    0x417f38
417f7b:	0f bc c0             	bsf    %eax,%eax
417f7e:	03 c8                	add    %eax,%ecx
417f80:	33 c0                	xor    %eax,%eax
417f82:	66 39 11             	cmp    %dx,(%ecx)
417f85:	eb 94                	jmp    0x417f1b
417f87:	33 c0                	xor    %eax,%eax