414e3a:	8b dc                	mov    %esp,%ebx
414e3c:	51                   	push   %ecx
414e3d:	51                   	push   %ecx
414e3e:	83 e4 f0             	and    $0xfffffff0,%esp
414e41:	83 c4 04             	add    $0x4,%esp
414e44:	55                   	push   %ebp
414e45:	8b 6b 04             	mov    0x4(%ebx),%ebp
414e48:	89 6c 24 04          	mov    %ebp,0x4(%esp)
414e4c:	8b ec                	mov    %esp,%ebp
414e4e:	81 ec 88 00 00 00    	sub    $0x88,%esp
414e54:	a1 90 08 42 00       	mov    0x420890,%eax
414e59:	33 c5                	xor    %ebp,%eax
414e5b:	89 45 fc             	mov    %eax,-0x4(%ebp)
414e5e:	8b 43 10             	mov    0x10(%ebx),%eax
414e61:	56                   	push   %esi
414e62:	8b 73 0c             	mov    0xc(%ebx),%esi
414e65:	0f b7 08             	movzwl (%eax),%ecx
414e68:	8b 06                	mov    (%esi),%eax
414e6a:	57                   	push   %edi
414e6b:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
414e71:	48                   	dec    %eax
414e72:	74 2b                	je     0x414e9f
414e74:	48                   	dec    %eax
414e75:	74 24                	je     0x414e9b
414e77:	48                   	dec    %eax
414e78:	74 1d                	je     0x414e97
414e7a:	48                   	dec    %eax
414e7b:	74 16                	je     0x414e93
414e7d:	48                   	dec    %eax
414e7e:	74 1f                	je     0x414e9f
414e80:	48                   	dec    %eax
414e81:	48                   	dec    %eax
414e82:	74 07                	je     0x414e8b
414e84:	48                   	dec    %eax
414e85:	75 7a                	jne    0x414f01
414e87:	6a 10                	push   $0x10
414e89:	eb 16                	jmp    0x414ea1
414e8b:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
414e91:	eb 6e                	jmp    0x414f01
414e93:	6a 12                	push   $0x12
414e95:	eb 0a                	jmp    0x414ea1
414e97:	6a 11                	push   $0x11
414e99:	eb 06                	jmp    0x414ea1
414e9b:	6a 04                	push   $0x4
414e9d:	eb 02                	jmp    0x414ea1
414e9f:	6a 08                	push   $0x8
414ea1:	5f                   	pop    %edi
414ea2:	51                   	push   %ecx
414ea3:	8d 46 18             	lea    0x18(%esi),%eax
414ea6:	50                   	push   %eax
414ea7:	57                   	push   %edi
414ea8:	e8 6b b1 ff ff       	call   0x410018
414ead:	83 c4 0c             	add    $0xc,%esp
414eb0:	85 c0                	test   %eax,%eax
414eb2:	75 47                	jne    0x414efb
414eb4:	8b 4b 08             	mov    0x8(%ebx),%ecx
414eb7:	83 f9 10             	cmp    $0x10,%ecx
414eba:	74 10                	je     0x414ecc
414ebc:	83 f9 16             	cmp    $0x16,%ecx
414ebf:	74 0b                	je     0x414ecc
414ec1:	83 f9 1d             	cmp    $0x1d,%ecx
414ec4:	74 06                	je     0x414ecc
414ec6:	83 65 c0 fe          	andl   $0xfffffffe,-0x40(%ebp)
414eca:	eb 12                	jmp    0x414ede
414ecc:	8b 45 c0             	mov    -0x40(%ebp),%eax
414ecf:	dd 46 10             	fldl   0x10(%esi)
414ed2:	83 e0 e3             	and    $0xffffffe3,%eax
414ed5:	dd 5d b0             	fstpl  -0x50(%ebp)
414ed8:	83 c8 03             	or     $0x3,%eax
414edb:	89 45 c0             	mov    %eax,-0x40(%ebp)
414ede:	8d 46 18             	lea    0x18(%esi),%eax
414ee1:	50                   	push   %eax
414ee2:	8d 46 08             	lea    0x8(%esi),%eax
414ee5:	50                   	push   %eax
414ee6:	51                   	push   %ecx
414ee7:	57                   	push   %edi
414ee8:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
414eee:	50                   	push   %eax
414eef:	8d 45 80             	lea    -0x80(%ebp),%eax
414ef2:	50                   	push   %eax
414ef3:	e8 fc b2 ff ff       	call   0x4101f4
414ef8:	83 c4 18             	add    $0x18,%esp
414efb:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
414f01:	68 ff ff 00 00       	push   $0xffff
414f06:	51                   	push   %ecx
414f07:	e8 a0 b6 ff ff       	call   0x4105ac
414f0c:	83 3e 08             	cmpl   $0x8,(%esi)
414f0f:	59                   	pop    %ecx
414f10:	59                   	pop    %ecx
414f11:	74 14                	je     0x414f27
414f13:	83 3d 90 13 42 00 00 	cmpl   $0x0,0x421390
414f1a:	75 0b                	jne    0x414f27
414f1c:	56                   	push   %esi
414f1d:	e8 f8 dc fe ff       	call   0x402c1a
414f22:	59                   	pop    %ecx
414f23:	85 c0                	test   %eax,%eax
414f25:	75 08                	jne    0x414f2f
414f27:	ff 36                	push   (%esi)
414f29:	e8 cc b5 ff ff       	call   0x4104fa
414f2e:	59                   	pop    %ecx
414f2f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414f32:	5f                   	pop    %edi
414f33:	33 cd                	xor    %ebp,%ecx
414f35:	5e                   	pop    %esi
414f36:	e8 fe f7 fe ff       	call   0x404739
414f3b:	8b e5                	mov    %ebp,%esp
414f3d:	5d                   	pop    %ebp
414f3e:	8b e3                	mov    %ebx,%esp
414f40:	5b                   	pop    %ebx
414f41:	c3                   	ret
414f42:	55                   	push   %ebp
414f43:	8b ec                	mov    %esp,%ebp
414f45:	83 7d 14 0a          	cmpl   $0xa,0x14(%ebp)
414f49:	8b 45 08             	mov    0x8(%ebp),%eax
414f4c:	75 0a                	jne    0x414f58
414f4e:	85 c0                	test   %eax,%eax
414f50:	79 06                	jns    0x414f58
414f52:	6a 01                	push   $0x1
414f54:	6a 0a                	push   $0xa
414f56:	eb 05                	jmp    0x414f5d
414f58:	6a 00                	push   $0x0
414f5a:	ff 75 14             	push   0x14(%ebp)
414f5d:	ff 75 10             	push   0x10(%ebp)
414f60:	ff 75 0c             	push   0xc(%ebp)
414f63:	50                   	push   %eax
414f64:	e8 02 00 00 00       	call   0x414f6b
414f69:	5d                   	pop    %ebp
414f6a:	c3                   	ret
414f6b:	55                   	push   %ebp
414f6c:	8b ec                	mov    %esp,%ebp
414f6e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414f71:	56                   	push   %esi
414f72:	85 c9                	test   %ecx,%ecx
414f74:	75 16                	jne    0x414f8c
414f76:	e8 02 32 ff ff       	call   0x40817d
414f7b:	6a 16                	push   $0x16
414f7d:	5e                   	pop    %esi
414f7e:	89 30                	mov    %esi,(%eax)
414f80:	e8 70 66 ff ff       	call   0x40b5f5
414f85:	8b c6                	mov    %esi,%eax
414f87:	e9 cd 00 00 00       	jmp    0x415059
414f8c:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
414f90:	53                   	push   %ebx
414f91:	57                   	push   %edi
414f92:	77 0d                	ja     0x414fa1
414f94:	e8 e4 31 ff ff       	call   0x40817d
414f99:	6a 16                	push   $0x16
414f9b:	5e                   	pop    %esi
414f9c:	e9 8b 00 00 00       	jmp    0x41502c
414fa1:	8b 55 18             	mov    0x18(%ebp),%edx
414fa4:	33 c0                	xor    %eax,%eax
414fa6:	85 d2                	test   %edx,%edx
414fa8:	66 89 01             	mov    %ax,(%ecx)
414fab:	0f 95 c0             	setne  %al
414fae:	40                   	inc    %eax
414faf:	39 45 10             	cmp    %eax,0x10(%ebp)
414fb2:	77 09                	ja     0x414fbd
414fb4:	e8 c4 31 ff ff       	call   0x40817d
414fb9:	6a 22                	push   $0x22
414fbb:	eb de                	jmp    0x414f9b
414fbd:	8b 45 14             	mov    0x14(%ebp),%eax
414fc0:	6a 22                	push   $0x22
414fc2:	83 c0 fe             	add    $0xfffffffe,%eax
414fc5:	5e                   	pop    %esi
414fc6:	3b c6                	cmp    %esi,%eax
414fc8:	77 ca                	ja     0x414f94
414fca:	33 c0                	xor    %eax,%eax
414fcc:	85 d2                	test   %edx,%edx
414fce:	8b 55 08             	mov    0x8(%ebp),%edx
414fd1:	89 45 18             	mov    %eax,0x18(%ebp)
414fd4:	8b f9                	mov    %ecx,%edi
414fd6:	74 11                	je     0x414fe9
414fd8:	6a 2d                	push   $0x2d
414fda:	58                   	pop    %eax
414fdb:	66 89 01             	mov    %ax,(%ecx)
414fde:	33 c0                	xor    %eax,%eax
414fe0:	40                   	inc    %eax
414fe1:	8d 79 02             	lea    0x2(%ecx),%edi
414fe4:	89 45 18             	mov    %eax,0x18(%ebp)
414fe7:	f7 da                	neg    %edx
414fe9:	8b 4d 18             	mov    0x18(%ebp),%ecx
414fec:	8b df                	mov    %edi,%ebx
414fee:	8b c2                	mov    %edx,%eax
414ff0:	33 d2                	xor    %edx,%edx
414ff2:	f7 75 14             	divl   0x14(%ebp)
414ff5:	89 55 08             	mov    %edx,0x8(%ebp)
414ff8:	8b d0                	mov    %eax,%edx
414ffa:	8b 45 08             	mov    0x8(%ebp),%eax
414ffd:	83 f8 09             	cmp    $0x9,%eax
415000:	76 05                	jbe    0x415007
415002:	83 c0 57             	add    $0x57,%eax
415005:	eb 03                	jmp    0x41500a
415007:	83 c0 30             	add    $0x30,%eax
41500a:	66 89 07             	mov    %ax,(%edi)
41500d:	83 c7 02             	add    $0x2,%edi
415010:	41                   	inc    %ecx
415011:	85 d2                	test   %edx,%edx
415013:	74 05                	je     0x41501a
415015:	3b 4d 10             	cmp    0x10(%ebp),%ecx
415018:	72 d4                	jb     0x414fee
41501a:	3b 4d 10             	cmp    0x10(%ebp),%ecx
41501d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415020:	72 15                	jb     0x415037
415022:	33 c0                	xor    %eax,%eax
415024:	66 89 01             	mov    %ax,(%ecx)
415027:	e8 51 31 ff ff       	call   0x40817d
41502c:	89 30                	mov    %esi,(%eax)
41502e:	e8 c2 65 ff ff       	call   0x40b5f5
415033:	8b c6                	mov    %esi,%eax
415035:	eb 20                	jmp    0x415057
415037:	33 c0                	xor    %eax,%eax
415039:	66 89 07             	mov    %ax,(%edi)
41503c:	83 ef 02             	sub    $0x2,%edi
41503f:	0f b7 0f             	movzwl (%edi),%ecx
415042:	66 8b 03             	mov    (%ebx),%ax
415045:	66 89 07             	mov    %ax,(%edi)
415048:	66 89 0b             	mov    %cx,(%ebx)
41504b:	83 ef 02             	sub    $0x2,%edi
41504e:	83 c3 02             	add    $0x2,%ebx
415051:	3b df                	cmp    %edi,%ebx
415053:	72 ea                	jb     0x41503f
415055:	33 c0                	xor    %eax,%eax
415057:	5f                   	pop    %edi
415058:	5b                   	pop    %ebx
415059:	5e                   	pop    %esi
41505a:	5d                   	pop    %ebp
41505b:	c2 14 00             	ret    $0x14
41505e:	55                   	push   %ebp
41505f:	8b ec                	mov    %esp,%ebp
415061:	6a 0a                	push   $0xa
415063:	6a 00                	push   $0x0
415065:	ff 75 08             	push   0x8(%ebp)
415068:	e8 d0 24 00 00       	call   0x41753d
41506d:	83 c4 0c             	add    $0xc,%esp
415070:	5d                   	pop    %ebp
415071:	c3                   	ret
415072:	53                   	push   %ebx
415073:	8b dc                	mov    %esp,%ebx
415075:	51                   	push   %ecx
415076:	51                   	push   %ecx
415077:	83 e4 f0             	and    $0xfffffff0,%esp
41507a:	83 c4 04             	add    $0x4,%esp
41507d:	55                   	push   %ebp
41507e:	8b 6b 04             	mov    0x4(%ebx),%ebp
415081:	89 6c 24 04          	mov    %ebp,0x4(%esp)
415085:	8b ec                	mov    %esp,%ebp
415087:	8b 4b 08             	mov    0x8(%ebx),%ecx
41508a:	66 8b 53 0c          	mov    0xc(%ebx),%dx
41508e:	83 ec 20             	sub    $0x20,%esp
415091:	83 3d d0 20 42 00 01 	cmpl   $0x1,0x4220d0
415098:	7c 48                	jl     0x4150e2
41509a:	0f b7 c2             	movzwl %dx,%eax
41509d:	66 0f 6e c0          	movd   %eax,%xmm0
4150a1:	f2 0f 70 c0 00       	pshuflw $0x0,%xmm0,%xmm0
4150a6:	66 0f 70 d0 00       	pshufd $0x0,%xmm0,%xmm2
4150ab:	8b c1                	mov    %ecx,%eax
4150ad:	25 ff 0f 00 00       	and    $0xfff,%eax
4150b2:	3d f0 0f 00 00       	cmp    $0xff0,%eax
4150b7:	77 3e                	ja     0x4150f7
4150b9:	f3 0f 6f 01          	movdqu (%ecx),%xmm0
4150bd:	66 0f ef c9          	pxor   %xmm1,%xmm1
4150c1:	66 0f 75 c8          	pcmpeqw %xmm0,%xmm1
4150c5:	66 0f 75 c2          	pcmpeqw %xmm2,%xmm0
4150c9:	66 0f eb c8          	por    %xmm0,%xmm1
4150cd:	66 0f d7 c1          	pmovmskb %xmm1,%eax
4150d1:	85 c0                	test   %eax,%eax
4150d3:	75 34                	jne    0x415109
4150d5:	83 c1 10             	add    $0x10,%ecx
4150d8:	eb d1                	jmp    0x4150ab
4150da:	66 3b c2             	cmp    %dx,%ax
4150dd:	74 0b                	je     0x4150ea
4150df:	83 c1 02             	add    $0x2,%ecx
4150e2:	0f b7 01             	movzwl (%ecx),%eax
4150e5:	66 85 c0             	test   %ax,%ax
4150e8:	75 f0                	jne    0x4150da
4150ea:	33 c0                	xor    %eax,%eax
4150ec:	66 39 11             	cmp    %dx,(%ecx)
4150ef:	0f 95 c0             	setne  %al
4150f2:	48                   	dec    %eax
4150f3:	23 c1                	and    %ecx,%eax
4150f5:	eb 22                	jmp    0x415119
4150f7:	0f b7 01             	movzwl (%ecx),%eax
4150fa:	66 3b c2             	cmp    %dx,%ax
4150fd:	74 18                	je     0x415117
4150ff:	66 85 c0             	test   %ax,%ax
415102:	74 0f                	je     0x415113
415104:	83 c1 02             	add    $0x2,%ecx
415107:	eb a2                	jmp    0x4150ab
415109:	0f bc c0             	bsf    %eax,%eax
41510c:	89 45 fc             	mov    %eax,-0x4(%ebp)
41510f:	03 c8                	add    %eax,%ecx
415111:	eb d7                	jmp    0x4150ea
415113:	33 c0                	xor    %eax,%eax
415115:	eb 02                	jmp    0x415119
415117:	8b c1                	mov    %ecx,%eax
415119:	8b e5                	mov    %ebp,%esp
41511b:	5d                   	pop    %ebp
41511c:	8b e3                	mov    %ebx,%esp
41511e:	5b                   	pop    %ebx
41511f:	c3                   	ret
415120:	55                   	push   %ebp
415121:	8b ec                	mov    %esp,%ebp
415123:	51                   	push   %ecx
415124:	83 3d 74 27 42 00 00 	cmpl   $0x0,0x422774
41512b:	57                   	push   %edi
41512c:	0f 85 8c 00 00 00    	jne    0x4151be
415132:	8b 7d 10             	mov    0x10(%ebp),%edi
415135:	33 c0                	xor    %eax,%eax
415137:	85 ff                	test   %edi,%edi
415139:	0f 84 92 00 00 00    	je     0x4151d1
41513f:	8b 55 08             	mov    0x8(%ebp),%edx
415142:	85 d2                	test   %edx,%edx
415144:	75 17                	jne    0x41515d
415146:	e8 32 30 ff ff       	call   0x40817d
41514b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
415151:	e8 9f 64 ff ff       	call   0x40b5f5
415156:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41515b:	eb 74                	jmp    0x4151d1
41515d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415160:	85 c9                	test   %ecx,%ecx
415162:	74 e2                	je     0x415146
415164:	53                   	push   %ebx
415165:	56                   	push   %esi
415166:	6a 41                	push   $0x41
415168:	5b                   	pop    %ebx
415169:	6a 5a                	push   $0x5a
41516b:	5e                   	pop    %esi
41516c:	2b d1                	sub    %ecx,%edx
41516e:	89 75 fc             	mov    %esi,-0x4(%ebp)
415171:	eb 03                	jmp    0x415176
415173:	6a 5a                	push   $0x5a
415175:	5e                   	pop    %esi
415176:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
41517a:	66 3b c3             	cmp    %bx,%ax
41517d:	72 0d                	jb     0x41518c
41517f:	66 3b c6             	cmp    %si,%ax
415182:	77 08                	ja     0x41518c
415184:	83 c0 20             	add    $0x20,%eax
415187:	0f b7 f0             	movzwl %ax,%esi
41518a:	eb 02                	jmp    0x41518e
41518c:	8b f0                	mov    %eax,%esi
41518e:	0f b7 01             	movzwl (%ecx),%eax
415191:	66 3b c3             	cmp    %bx,%ax
415194:	72 0c                	jb     0x4151a2
415196:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
41519a:	77 06                	ja     0x4151a2
41519c:	83 c0 20             	add    $0x20,%eax
41519f:	0f b7 c0             	movzwl %ax,%eax
4151a2:	83 c1 02             	add    $0x2,%ecx
4151a5:	4f                   	dec    %edi