423caf:	0f b7 02             	movzwl (%edx),%eax
423cb2:	33 ff                	xor    %edi,%edi
423cb4:	66 3b f8             	cmp    %ax,%di
423cb7:	0f 84 85 01 00 00    	je     0x423e42
423cbd:	66 3b c1             	cmp    %cx,%ax
423cc0:	74 ac                	je     0x423c6e
423cc2:	03 d6                	add    %esi,%edx
423cc4:	e9 74 ff ff ff       	jmp    0x423c3d
423cc9:	0f b7 01             	movzwl (%ecx),%eax
423ccc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
423cd0:	66 39 45 fc          	cmp    %ax,-0x4(%ebp)
423cd4:	74 12                	je     0x423ce8
423cd6:	66 39 07             	cmp    %ax,(%edi)
423cd9:	75 06                	jne    0x423ce1
423cdb:	03 fe                	add    %esi,%edi
423cdd:	03 ce                	add    %esi,%ecx
423cdf:	eb 92                	jmp    0x423c73
423ce1:	03 d6                	add    %esi,%edx
423ce3:	e9 72 ff ff ff       	jmp    0x423c5a
423ce8:	8b c2                	mov    %edx,%eax
423cea:	e9 55 01 00 00       	jmp    0x423e44
423cef:	0f 85 e8 00 00 00    	jne    0x423ddd
423cf5:	0f b7 c1             	movzwl %cx,%eax
423cf8:	66 0f ef db          	pxor   %xmm3,%xmm3
423cfc:	8b 4b 08             	mov    0x8(%ebx),%ecx
423cff:	6a 02                	push   $0x2
423d01:	5e                   	pop    %esi
423d02:	66 0f 6e c0          	movd   %eax,%xmm0
423d06:	f2 0f 70 c0 00       	pshuflw $0x0,%xmm0,%xmm0
423d0b:	66 0f 70 e0 00       	pshufd $0x0,%xmm0,%xmm4
423d10:	8b c1                	mov    %ecx,%eax
423d12:	25 ff 0f 00 00       	and    $0xfff,%eax
423d17:	3d f0 0f 00 00       	cmp    $0xff0,%eax
423d1c:	77 2c                	ja     0x423d4a
423d1e:	f3 0f 6f 09          	movdqu (%ecx),%xmm1
423d22:	66 0f 6f c3          	movdqa %xmm3,%xmm0
423d26:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
423d2a:	66 0f 75 cc          	pcmpeqw %xmm4,%xmm1
423d2e:	66 0f eb c1          	por    %xmm1,%xmm0
423d32:	66 0f d7 c0          	pmovmskb %xmm0,%eax
423d36:	85 c0                	test   %eax,%eax
423d38:	75 05                	jne    0x423d3f
423d3a:	83 c1 10             	add    $0x10,%ecx
423d3d:	eb d1                	jmp    0x423d10
423d3f:	0f bc c0             	bsf    %eax,%eax
423d42:	89 45 f8             	mov    %eax,-0x8(%ebp)
423d45:	d1 e8                	shr    $1,%eax
423d47:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
423d4a:	0f b7 01             	movzwl (%ecx),%eax
423d4d:	33 d2                	xor    %edx,%edx
423d4f:	66 3b d0             	cmp    %ax,%dx
423d52:	0f 84 ea 00 00 00    	je     0x423e42
423d58:	0f b7 17             	movzwl (%edi),%edx
423d5b:	66 3b d0             	cmp    %ax,%dx
423d5e:	75 72                	jne    0x423dd2
423d60:	8b d1                	mov    %ecx,%edx
423d62:	8b c7                	mov    %edi,%eax
423d64:	25 ff 0f 00 00       	and    $0xfff,%eax
423d69:	3d f0 0f 00 00       	cmp    $0xff0,%eax
423d6e:	77 47                	ja     0x423db7
423d70:	8b c2                	mov    %edx,%eax
423d72:	25 ff 0f 00 00       	and    $0xfff,%eax
423d77:	3d f0 0f 00 00       	cmp    $0xff0,%eax
423d7c:	77 39                	ja     0x423db7
423d7e:	f3 0f 6f 17          	movdqu (%edi),%xmm2
423d82:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
423d86:	66 0f 6f c3          	movdqa %xmm3,%xmm0
423d8a:	66 0f 75 ca          	pcmpeqw %xmm2,%xmm1
423d8e:	66 0f 75 c2          	pcmpeqw %xmm2,%xmm0
423d92:	66 0f 75 cb          	pcmpeqw %xmm3,%xmm1
423d96:	66 0f eb c8          	por    %xmm0,%xmm1
423d9a:	66 0f d7 c1          	pmovmskb %xmm1,%eax
423d9e:	85 c0                	test   %eax,%eax
423da0:	75 08                	jne    0x423daa
423da2:	83 c2 10             	add    $0x10,%edx
423da5:	83 c7 10             	add    $0x10,%edi
423da8:	eb b8                	jmp    0x423d62
423daa:	0f bc c0             	bsf    %eax,%eax
423dad:	89 45 f8             	mov    %eax,-0x8(%ebp)
423db0:	83 e0 fe             	and    $0xfffffffe,%eax
423db3:	03 d0                	add    %eax,%edx
423db5:	03 f8                	add    %eax,%edi
423db7:	0f b7 07             	movzwl (%edi),%eax
423dba:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
423dbe:	66 39 45 f8          	cmp    %ax,-0x8(%ebp)
423dc2:	74 15                	je     0x423dd9
423dc4:	66 39 02             	cmp    %ax,(%edx)
423dc7:	75 06                	jne    0x423dcf
423dc9:	03 d6                	add    %esi,%edx
423dcb:	03 fe                	add    %esi,%edi
423dcd:	eb 93                	jmp    0x423d62
423dcf:	8b 7b 0c             	mov    0xc(%ebx),%edi
423dd2:	03 ce                	add    %esi,%ecx
423dd4:	e9 37 ff ff ff       	jmp    0x423d10
423dd9:	8b c1                	mov    %ecx,%eax
423ddb:	eb 67                	jmp    0x423e44
423ddd:	8b 53 08             	mov    0x8(%ebx),%edx
423de0:	0f b7 02             	movzwl (%edx),%eax
423de3:	66 85 c0             	test   %ax,%ax
423de6:	74 5a                	je     0x423e42
423de8:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
423dec:	8b c8                	mov    %eax,%ecx
423dee:	8b c2                	mov    %edx,%eax
423df0:	2b c7                	sub    %edi,%eax
423df2:	89 45 fc             	mov    %eax,-0x4(%ebp)
423df5:	6a 02                	push   $0x2
423df7:	5e                   	pop    %esi
423df8:	66 85 c9             	test   %cx,%cx
423dfb:	74 27                	je     0x423e24
423dfd:	0f b7 0f             	movzwl (%edi),%ecx
423e00:	66 85 c9             	test   %cx,%cx
423e03:	0f 84 df fe ff ff    	je     0x423ce8
423e09:	0f b7 0c 38          	movzwl (%eax,%edi,1),%ecx
423e0d:	0f b7 07             	movzwl (%edi),%eax
423e10:	2b c8                	sub    %eax,%ecx
423e12:	8b 45 fc             	mov    -0x4(%ebp),%eax
423e15:	8b 4d f8             	mov    -0x8(%ebp),%ecx
423e18:	75 0d                	jne    0x423e27
423e1a:	03 fe                	add    %esi,%edi
423e1c:	66 39 0c 38          	cmp    %cx,(%eax,%edi,1)
423e20:	75 db                	jne    0x423dfd
423e22:	eb 03                	jmp    0x423e27
423e24:	8b 4d f8             	mov    -0x8(%ebp),%ecx
423e27:	66 39 0f             	cmp    %cx,(%edi)
423e2a:	0f 84 b8 fe ff ff    	je     0x423ce8
423e30:	8b 7b 0c             	mov    0xc(%ebx),%edi
423e33:	03 d6                	add    %esi,%edx
423e35:	03 c6                	add    %esi,%eax
423e37:	89 45 fc             	mov    %eax,-0x4(%ebp)
423e3a:	0f b7 0a             	movzwl (%edx),%ecx
423e3d:	66 85 c9             	test   %cx,%cx
423e40:	75 bb                	jne    0x423dfd
423e42:	33 c0                	xor    %eax,%eax
423e44:	5f                   	pop    %edi
423e45:	5e                   	pop    %esi
423e46:	8b e5                	mov    %ebp,%esp
423e48:	5d                   	pop    %ebp
423e49:	8b e3                	mov    %ebx,%esp
423e4b:	5b                   	pop    %ebx
423e4c:	c3                   	ret
423e4d:	55                   	push   %ebp
423e4e:	8b ec                	mov    %esp,%ebp
423e50:	83 ec 10             	sub    $0x10,%esp
423e53:	ff 75 0c             	push   0xc(%ebp)
423e56:	8d 4d f0             	lea    -0x10(%ebp),%ecx
423e59:	e8 57 f2 ff ff       	call   0x4230b5
423e5e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
423e61:	83 79 74 01          	cmpl   $0x1,0x74(%ecx)
423e65:	7e 15                	jle    0x423e7c
423e67:	8d 45 f0             	lea    -0x10(%ebp),%eax
423e6a:	50                   	push   %eax
423e6b:	6a 04                	push   $0x4
423e6d:	ff 75 08             	push   0x8(%ebp)
423e70:	e8 17 80 00 00       	call   0x42be8c
423e75:	83 c4 0c             	add    $0xc,%esp
423e78:	8b c8                	mov    %eax,%ecx
423e7a:	eb 10                	jmp    0x423e8c
423e7c:	8b 89 90 00 00 00    	mov    0x90(%ecx),%ecx
423e82:	8b 45 08             	mov    0x8(%ebp),%eax
423e85:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
423e89:	83 e1 04             	and    $0x4,%ecx
423e8c:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
423e90:	74 07                	je     0x423e99
423e92:	8b 45 f8             	mov    -0x8(%ebp),%eax
423e95:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
423e99:	8b c1                	mov    %ecx,%eax
423e9b:	8b e5                	mov    %ebp,%esp
423e9d:	5d                   	pop    %ebp
423e9e:	c3                   	ret
423e9f:	55                   	push   %ebp
423ea0:	8b ec                	mov    %esp,%ebp
423ea2:	83 3d 28 42 4c 00 00 	cmpl   $0x0,0x4c4228
423ea9:	75 11                	jne    0x423ebc
423eab:	8b 4d 08             	mov    0x8(%ebp),%ecx
423eae:	a1 c8 fb 4b 00       	mov    0x4bfbc8,%eax
423eb3:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
423eb7:	83 e0 04             	and    $0x4,%eax
423eba:	5d                   	pop    %ebp
423ebb:	c3                   	ret
423ebc:	6a 00                	push   $0x0
423ebe:	ff 75 08             	push   0x8(%ebp)
423ec1:	e8 87 ff ff ff       	call   0x423e4d
423ec6:	59                   	pop    %ecx
423ec7:	59                   	pop    %ecx
423ec8:	5d                   	pop    %ebp
423ec9:	c3                   	ret
423eca:	6a 0c                	push   $0xc
423ecc:	68 90 bb 4b 00       	push   $0x4bbb90
423ed1:	e8 6a 4c 00 00       	call   0x428b40
423ed6:	33 ff                	xor    %edi,%edi
423ed8:	89 7d e4             	mov    %edi,-0x1c(%ebp)
423edb:	33 c0                	xor    %eax,%eax
423edd:	39 45 08             	cmp    %eax,0x8(%ebp)
423ee0:	0f 95 c0             	setne  %al
423ee3:	85 c0                	test   %eax,%eax
423ee5:	75 15                	jne    0x423efc
423ee7:	e8 7c 4e 00 00       	call   0x428d68
423eec:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
423ef2:	e8 ff 50 00 00       	call   0x428ff6
423ef7:	83 c8 ff             	or     $0xffffffff,%eax
423efa:	eb 61                	jmp    0x423f5d
423efc:	e8 47 2f 00 00       	call   0x426e48
423f01:	83 c0 20             	add    $0x20,%eax
423f04:	50                   	push   %eax
423f05:	6a 01                	push   $0x1
423f07:	e8 81 2f 00 00       	call   0x426e8d
423f0c:	59                   	pop    %ecx
423f0d:	59                   	pop    %ecx
423f0e:	89 7d fc             	mov    %edi,-0x4(%ebp)
423f11:	e8 32 2f 00 00       	call   0x426e48
423f16:	83 c0 20             	add    $0x20,%eax
423f19:	50                   	push   %eax
423f1a:	e8 b2 6a 00 00       	call   0x42a9d1
423f1f:	59                   	pop    %ecx
423f20:	8b f0                	mov    %eax,%esi
423f22:	8d 45 0c             	lea    0xc(%ebp),%eax
423f25:	50                   	push   %eax
423f26:	57                   	push   %edi
423f27:	ff 75 08             	push   0x8(%ebp)
423f2a:	e8 19 2f 00 00       	call   0x426e48
423f2f:	83 c0 20             	add    $0x20,%eax
423f32:	50                   	push   %eax
423f33:	e8 75 72 00 00       	call   0x42b1ad
423f38:	8b f8                	mov    %eax,%edi
423f3a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
423f3d:	e8 06 2f 00 00       	call   0x426e48
423f42:	83 c0 20             	add    $0x20,%eax
423f45:	50                   	push   %eax
423f46:	56                   	push   %esi
423f47:	e8 54 6a 00 00       	call   0x42a9a0
423f4c:	83 c4 18             	add    $0x18,%esp
423f4f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
423f56:	e8 0b 00 00 00       	call   0x423f66
423f5b:	8b c7                	mov    %edi,%eax
423f5d:	e8 23 4c 00 00       	call   0x428b85
423f62:	c3                   	ret
423f63:	8b 7d e4             	mov    -0x1c(%ebp),%edi
423f66:	e8 dd 2e 00 00       	call   0x426e48
423f6b:	83 c0 20             	add    $0x20,%eax
423f6e:	50                   	push   %eax
423f6f:	6a 01                	push   $0x1
423f71:	e8 81 2f 00 00       	call   0x426ef7
423f76:	59                   	pop    %ecx
423f77:	59                   	pop    %ecx
423f78:	c3                   	ret
423f79:	55                   	push   %ebp
423f7a:	8b ec                	mov    %esp,%ebp
423f7c:	6a 00                	push   $0x0
423f7e:	ff 75 08             	push   0x8(%ebp)
423f81:	e8 04 00 00 00       	call   0x423f8a
423f86:	59                   	pop    %ecx
423f87:	59                   	pop    %ecx
423f88:	5d                   	pop    %ebp
423f89:	c3                   	ret
423f8a:	55                   	push   %ebp
423f8b:	8b ec                	mov    %esp,%ebp
423f8d:	83 ec 2c             	sub    $0x2c,%esp
423f90:	a1 50 fd 4b 00       	mov    0x4bfd50,%eax
423f95:	33 c5                	xor    %ebp,%eax
423f97:	89 45 fc             	mov    %eax,-0x4(%ebp)
423f9a:	56                   	push   %esi
423f9b:	ff 75 0c             	push   0xc(%ebp)
423f9e:	8b 75 08             	mov    0x8(%ebp),%esi
423fa1:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
423fa4:	e8 0c f1 ff ff       	call   0x4230b5
423fa9:	85 f6                	test   %esi,%esi
423fab:	75 17                	jne    0x423fc4
423fad:	e8 b6 4d 00 00       	call   0x428d68
423fb2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
423fb8:	e8 39 50 00 00       	call   0x428ff6
423fbd:	d9 ee                	fldz
423fbf:	eb 28                	jmp    0x423fe9
423fc1:	83 c6 02             	add    $0x2,%esi
423fc4:	0f b7 06             	movzwl (%esi),%eax
423fc7:	6a 08                	push   $0x8
423fc9:	50                   	push   %eax
423fca:	e8 39 70 00 00       	call   0x42b008
423fcf:	59                   	pop    %ecx
423fd0:	59                   	pop    %ecx
423fd1:	85 c0                	test   %eax,%eax
423fd3:	75 ec                	jne    0x423fc1
423fd5:	8d 45 d4             	lea    -0x2c(%ebp),%eax
423fd8:	50                   	push   %eax
423fd9:	8d 45 e4             	lea    -0x1c(%ebp),%eax
423fdc:	56                   	push   %esi
423fdd:	50                   	push   %eax
423fde:	e8 5a 7f 00 00       	call   0x42bf3d
423fe3:	83 c4 0c             	add    $0xc,%esp
423fe6:	dd 40 10             	fldl   0x10(%eax)
423fe9:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
423fed:	5e                   	pop    %esi
423fee:	74 07                	je     0x423ff7
423ff0:	8b 45 dc             	mov    -0x24(%ebp),%eax
423ff3:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
423ff7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
423ffa:	33 cd                	xor    %ebp,%ecx
423ffc:	e8 35 88 00 00       	call   0x42c836
424001:	8b e5                	mov    %ebp,%esp
424003:	5d                   	pop    %ebp
424004:	c3                   	ret
424005:	55                   	push   %ebp
424006:	8b ec                	mov    %esp,%ebp
424008:	ff 75 10             	push   0x10(%ebp)
42400b:	6a 00                	push   $0x0
42400d:	ff 75 0c             	push   0xc(%ebp)
424010:	ff 75 08             	push   0x8(%ebp)
424013:	e8 05 00 00 00       	call   0x42401d
424018:	83 c4 10             	add    $0x10,%esp
42401b:	5d                   	pop    %ebp
42401c:	c3                   	ret
42401d:	55                   	push   %ebp
42401e:	8b ec                	mov    %esp,%ebp
424020:	83 ec 20             	sub    $0x20,%esp
424023:	53                   	push   %ebx
424024:	57                   	push   %edi
424025:	33 db                	xor    %ebx,%ebx
424027:	8d 7d e4             	lea    -0x1c(%ebp),%edi
42402a:	6a 07                	push   $0x7
42402c:	33 c0                	xor    %eax,%eax
42402e:	89 5d e0             	mov    %ebx,-0x20(%ebp)
424031:	59                   	pop    %ecx
424032:	f3 ab                	rep stos %eax,%es:(%edi)
424034:	39 45 0c             	cmp    %eax,0xc(%ebp)
424037:	75 15                	jne    0x42404e
424039:	e8 2a 4d 00 00       	call   0x428d68
42403e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
424044:	e8 ad 4f 00 00       	call   0x428ff6
424049:	83 c8 ff             	or     $0xffffffff,%eax
42404c:	eb 6d                	jmp    0x4240bb
42404e:	8b 45 08             	mov    0x8(%ebp),%eax
424051:	85 c0                	test   %eax,%eax
424053:	74 e4                	je     0x424039
424055:	56                   	push   %esi
424056:	ff 75 14             	push   0x14(%ebp)
424059:	89 45 e8             	mov    %eax,-0x18(%ebp)
42405c:	ff 75 10             	push   0x10(%ebp)
42405f:	89 45 e0             	mov    %eax,-0x20(%ebp)
424062:	8d 45 e0             	lea    -0x20(%ebp),%eax
424065:	ff 75 0c             	push   0xc(%ebp)
424068:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
42406f:	50                   	push   %eax
424070:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
424077:	e8 31 71 00 00       	call   0x42b1ad
42407c:	83 c4 10             	add    $0x10,%esp
42407f:	8b f0                	mov    %eax,%esi
424081:	ff 4d e4             	decl   -0x1c(%ebp)
424084:	78 0e                	js     0x424094
424086:	8b 4d e0             	mov    -0x20(%ebp),%ecx
424089:	88 19                	mov    %bl,(%ecx)
42408b:	8b 4d e0             	mov    -0x20(%ebp),%ecx