408b73:	3b d0                	cmp    %eax,%edx
408b75:	76 e6                	jbe    0x408b5d
408b77:	83 c1 02             	add    $0x2,%ecx
408b7a:	80 39 00             	cmpb   $0x0,(%ecx)
408b7d:	75 c8                	jne    0x408b47
408b7f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408b82:	47                   	inc    %edi
408b83:	83 c0 08             	add    $0x8,%eax
408b86:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408b89:	83 ff 04             	cmp    $0x4,%edi
408b8c:	72 b2                	jb     0x408b40
408b8e:	8b 5d e0             	mov    -0x20(%ebp),%ebx
408b91:	53                   	push   %ebx
408b92:	89 5e 04             	mov    %ebx,0x4(%esi)
408b95:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
408b9c:	e8 3d f9 ff ff       	call   0x4084de
408ba1:	83 c4 04             	add    $0x4,%esp
408ba4:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
408baa:	8b 45 dc             	mov    -0x24(%ebp),%eax
408bad:	8d 4e 0c             	lea    0xc(%esi),%ecx
408bb0:	6a 06                	push   $0x6
408bb2:	8d 90 5c 65 41 00    	lea    0x41655c(%eax),%edx
408bb8:	5f                   	pop    %edi
408bb9:	66 8b 02             	mov    (%edx),%ax
408bbc:	8d 52 02             	lea    0x2(%edx),%edx
408bbf:	66 89 01             	mov    %ax,(%ecx)
408bc2:	8d 49 02             	lea    0x2(%ecx),%ecx
408bc5:	83 ef 01             	sub    $0x1,%edi
408bc8:	75 ef                	jne    0x408bb9
408bca:	56                   	push   %esi
408bcb:	e8 20 fa ff ff       	call   0x4085f0
408bd0:	eb 06                	jmp    0x408bd8
408bd2:	56                   	push   %esi
408bd3:	e8 b5 f9 ff ff       	call   0x40858d
408bd8:	33 c0                	xor    %eax,%eax
408bda:	59                   	pop    %ecx
408bdb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408bde:	5f                   	pop    %edi
408bdf:	5e                   	pop    %esi
408be0:	33 cd                	xor    %ebp,%ecx
408be2:	5b                   	pop    %ebx
408be3:	e8 4d aa ff ff       	call   0x403635
408be8:	c9                   	leave
408be9:	c3                   	ret
408bea:	8b ff                	mov    %edi,%edi
408bec:	55                   	push   %ebp
408bed:	8b ec                	mov    %esp,%ebp
408bef:	56                   	push   %esi
408bf0:	8b 75 14             	mov    0x14(%ebp),%esi
408bf3:	85 f6                	test   %esi,%esi
408bf5:	75 04                	jne    0x408bfb
408bf7:	33 c0                	xor    %eax,%eax
408bf9:	eb 6d                	jmp    0x408c68
408bfb:	8b 45 08             	mov    0x8(%ebp),%eax
408bfe:	85 c0                	test   %eax,%eax
408c00:	75 13                	jne    0x408c15
408c02:	e8 49 ed ff ff       	call   0x407950
408c07:	6a 16                	push   $0x16
408c09:	5e                   	pop    %esi
408c0a:	89 30                	mov    %esi,(%eax)
408c0c:	e8 0b d1 ff ff       	call   0x405d1c
408c11:	8b c6                	mov    %esi,%eax
408c13:	eb 53                	jmp    0x408c68
408c15:	57                   	push   %edi
408c16:	8b 7d 10             	mov    0x10(%ebp),%edi
408c19:	85 ff                	test   %edi,%edi
408c1b:	74 14                	je     0x408c31
408c1d:	39 75 0c             	cmp    %esi,0xc(%ebp)
408c20:	72 0f                	jb     0x408c31
408c22:	56                   	push   %esi
408c23:	57                   	push   %edi
408c24:	50                   	push   %eax
408c25:	e8 26 c8 ff ff       	call   0x405450
408c2a:	83 c4 0c             	add    $0xc,%esp
408c2d:	33 c0                	xor    %eax,%eax
408c2f:	eb 36                	jmp    0x408c67
408c31:	ff 75 0c             	push   0xc(%ebp)
408c34:	6a 00                	push   $0x0
408c36:	50                   	push   %eax
408c37:	e8 a4 b3 ff ff       	call   0x403fe0
408c3c:	83 c4 0c             	add    $0xc,%esp
408c3f:	85 ff                	test   %edi,%edi
408c41:	75 09                	jne    0x408c4c
408c43:	e8 08 ed ff ff       	call   0x407950
408c48:	6a 16                	push   $0x16
408c4a:	eb 0c                	jmp    0x408c58
408c4c:	39 75 0c             	cmp    %esi,0xc(%ebp)
408c4f:	73 13                	jae    0x408c64
408c51:	e8 fa ec ff ff       	call   0x407950
408c56:	6a 22                	push   $0x22
408c58:	5e                   	pop    %esi
408c59:	89 30                	mov    %esi,(%eax)
408c5b:	e8 bc d0 ff ff       	call   0x405d1c
408c60:	8b c6                	mov    %esi,%eax
408c62:	eb 03                	jmp    0x408c67
408c64:	6a 16                	push   $0x16
408c66:	58                   	pop    %eax
408c67:	5f                   	pop    %edi
408c68:	5e                   	pop    %esi
408c69:	5d                   	pop    %ebp
408c6a:	c3                   	ret
408c6b:	8b ff                	mov    %edi,%edi
408c6d:	55                   	push   %ebp
408c6e:	8b ec                	mov    %esp,%ebp
408c70:	83 ec 10             	sub    $0x10,%esp
408c73:	ff 75 08             	push   0x8(%ebp)
408c76:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408c79:	e8 a2 f3 ff ff       	call   0x408020
408c7e:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
408c82:	8b 45 f8             	mov    -0x8(%ebp),%eax
408c85:	8a 4d 14             	mov    0x14(%ebp),%cl
408c88:	84 4c 10 19          	test   %cl,0x19(%eax,%edx,1)
408c8c:	75 18                	jne    0x408ca6
408c8e:	8b 4d 10             	mov    0x10(%ebp),%ecx
408c91:	85 c9                	test   %ecx,%ecx
408c93:	74 0d                	je     0x408ca2
408c95:	8b 45 f4             	mov    -0xc(%ebp),%eax
408c98:	8b 00                	mov    (%eax),%eax
408c9a:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
408c9e:	85 c1                	test   %eax,%ecx
408ca0:	75 04                	jne    0x408ca6
408ca2:	33 c0                	xor    %eax,%eax
408ca4:	eb 03                	jmp    0x408ca9
408ca6:	33 c0                	xor    %eax,%eax
408ca8:	40                   	inc    %eax
408ca9:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
408cad:	74 0a                	je     0x408cb9
408caf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408cb2:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
408cb9:	c9                   	leave
408cba:	c3                   	ret
408cbb:	8b ff                	mov    %edi,%edi
408cbd:	55                   	push   %ebp
408cbe:	8b ec                	mov    %esp,%ebp
408cc0:	6a 04                	push   $0x4
408cc2:	6a 00                	push   $0x0
408cc4:	ff 75 08             	push   0x8(%ebp)
408cc7:	6a 00                	push   $0x0
408cc9:	e8 9d ff ff ff       	call   0x408c6b
408cce:	83 c4 10             	add    $0x10,%esp
408cd1:	5d                   	pop    %ebp
408cd2:	c3                   	ret
408cd3:	ff 15 c4 f0 40 00    	call   *0x40f0c4
408cd9:	a3 68 70 41 00       	mov    %eax,0x417068
408cde:	ff 15 08 f0 40 00    	call   *0x40f008
408ce4:	a3 6c 70 41 00       	mov    %eax,0x41706c
408ce9:	b0 01                	mov    $0x1,%al
408ceb:	c3                   	ret
408cec:	8b ff                	mov    %edi,%edi
408cee:	55                   	push   %ebp
408cef:	8b ec                	mov    %esp,%ebp
408cf1:	8b 45 08             	mov    0x8(%ebp),%eax
408cf4:	b9 ac de 00 00       	mov    $0xdeac,%ecx
408cf9:	3b c1                	cmp    %ecx,%eax
408cfb:	77 46                	ja     0x408d43
408cfd:	74 26                	je     0x408d25
408cff:	b9 33 c4 00 00       	mov    $0xc433,%ecx
408d04:	3b c1                	cmp    %ecx,%eax
408d06:	77 21                	ja     0x408d29
408d08:	74 1b                	je     0x408d25
408d0a:	83 e8 2a             	sub    $0x2a,%eax
408d0d:	74 16                	je     0x408d25
408d0f:	2d 02 c4 00 00       	sub    $0xc402,%eax
408d14:	74 0f                	je     0x408d25
408d16:	83 e8 01             	sub    $0x1,%eax
408d19:	74 0a                	je     0x408d25
408d1b:	83 e8 01             	sub    $0x1,%eax
408d1e:	74 05                	je     0x408d25
408d20:	83 e8 03             	sub    $0x3,%eax
408d23:	75 52                	jne    0x408d77
408d25:	33 c0                	xor    %eax,%eax
408d27:	5d                   	pop    %ebp
408d28:	c3                   	ret
408d29:	2d 35 c4 00 00       	sub    $0xc435,%eax
408d2e:	74 f5                	je     0x408d25
408d30:	2d 63 12 00 00       	sub    $0x1263,%eax
408d35:	74 45                	je     0x408d7c
408d37:	2d 12 08 00 00       	sub    $0x812,%eax
408d3c:	74 e7                	je     0x408d25
408d3e:	83 e8 01             	sub    $0x1,%eax
408d41:	eb e0                	jmp    0x408d23
408d43:	b9 b1 de 00 00       	mov    $0xdeb1,%ecx
408d48:	3b c1                	cmp    %ecx,%eax
408d4a:	77 13                	ja     0x408d5f
408d4c:	74 d7                	je     0x408d25
408d4e:	2d ad de 00 00       	sub    $0xdead,%eax
408d53:	74 d0                	je     0x408d25
408d55:	83 e8 01             	sub    $0x1,%eax
408d58:	74 cb                	je     0x408d25
408d5a:	83 e8 01             	sub    $0x1,%eax
408d5d:	eb dd                	jmp    0x408d3c
408d5f:	2d b2 de 00 00       	sub    $0xdeb2,%eax
408d64:	74 bf                	je     0x408d25
408d66:	83 e8 01             	sub    $0x1,%eax
408d69:	74 ba                	je     0x408d25
408d6b:	2d 35 1f 00 00       	sub    $0x1f35,%eax
408d70:	74 b3                	je     0x408d25
408d72:	83 e8 01             	sub    $0x1,%eax
408d75:	74 05                	je     0x408d7c
408d77:	8b 45 0c             	mov    0xc(%ebp),%eax
408d7a:	5d                   	pop    %ebp
408d7b:	c3                   	ret
408d7c:	8b 45 0c             	mov    0xc(%ebp),%eax
408d7f:	83 e0 08             	and    $0x8,%eax
408d82:	5d                   	pop    %ebp
408d83:	c3                   	ret
408d84:	8b ff                	mov    %edi,%edi
408d86:	55                   	push   %ebp
408d87:	8b ec                	mov    %esp,%ebp
408d89:	ff 75 1c             	push   0x1c(%ebp)
408d8c:	ff 75 18             	push   0x18(%ebp)
408d8f:	ff 75 14             	push   0x14(%ebp)
408d92:	ff 75 10             	push   0x10(%ebp)
408d95:	ff 75 0c             	push   0xc(%ebp)
408d98:	ff 75 08             	push   0x8(%ebp)
408d9b:	e8 4c ff ff ff       	call   0x408cec
408da0:	59                   	pop    %ecx
408da1:	59                   	pop    %ecx
408da2:	50                   	push   %eax
408da3:	ff 75 08             	push   0x8(%ebp)
408da6:	ff 15 c8 f0 40 00    	call   *0x40f0c8
408dac:	5d                   	pop    %ebp
408dad:	c3                   	ret
408dae:	8b ff                	mov    %edi,%edi
408db0:	55                   	push   %ebp
408db1:	8b ec                	mov    %esp,%ebp
408db3:	8b 45 08             	mov    0x8(%ebp),%eax
408db6:	b9 ac de 00 00       	mov    $0xdeac,%ecx
408dbb:	3b c1                	cmp    %ecx,%eax
408dbd:	77 3d                	ja     0x408dfc
408dbf:	74 79                	je     0x408e3a
408dc1:	b9 33 c4 00 00       	mov    $0xc433,%ecx
408dc6:	3b c1                	cmp    %ecx,%eax
408dc8:	77 1d                	ja     0x408de7
408dca:	74 6e                	je     0x408e3a
408dcc:	83 e8 2a             	sub    $0x2a,%eax
408dcf:	74 69                	je     0x408e3a
408dd1:	2d 02 c4 00 00       	sub    $0xc402,%eax
408dd6:	74 62                	je     0x408e3a
408dd8:	83 e8 01             	sub    $0x1,%eax
408ddb:	74 5d                	je     0x408e3a
408ddd:	83 e8 01             	sub    $0x1,%eax
408de0:	74 58                	je     0x408e3a
408de2:	83 e8 03             	sub    $0x3,%eax
408de5:	eb 47                	jmp    0x408e2e
408de7:	2d 35 c4 00 00       	sub    $0xc435,%eax
408dec:	74 4c                	je     0x408e3a
408dee:	2d 63 12 00 00       	sub    $0x1263,%eax
408df3:	74 45                	je     0x408e3a
408df5:	2d 12 08 00 00       	sub    $0x812,%eax
408dfa:	eb 2d                	jmp    0x408e29
408dfc:	b9 b1 de 00 00       	mov    $0xdeb1,%ecx
408e01:	3b c1                	cmp    %ecx,%eax
408e03:	77 13                	ja     0x408e18
408e05:	74 33                	je     0x408e3a
408e07:	2d ad de 00 00       	sub    $0xdead,%eax
408e0c:	74 2c                	je     0x408e3a
408e0e:	83 e8 01             	sub    $0x1,%eax
408e11:	74 27                	je     0x408e3a
408e13:	83 e8 01             	sub    $0x1,%eax
408e16:	eb 11                	jmp    0x408e29
408e18:	2d b2 de 00 00       	sub    $0xdeb2,%eax
408e1d:	74 1b                	je     0x408e3a
408e1f:	83 e8 01             	sub    $0x1,%eax
408e22:	74 16                	je     0x408e3a
408e24:	2d 35 1f 00 00       	sub    $0x1f35,%eax
408e29:	74 0f                	je     0x408e3a
408e2b:	83 e8 01             	sub    $0x1,%eax
408e2e:	74 0a                	je     0x408e3a
408e30:	8b 45 0c             	mov    0xc(%ebp),%eax
408e33:	25 7f ff ff ff       	and    $0xffffff7f,%eax
408e38:	5d                   	pop    %ebp
408e39:	c3                   	ret
408e3a:	33 c0                	xor    %eax,%eax
408e3c:	5d                   	pop    %ebp
408e3d:	c3                   	ret
408e3e:	8b ff                	mov    %edi,%edi
408e40:	55                   	push   %ebp
408e41:	8b ec                	mov    %esp,%ebp
408e43:	8b 55 08             	mov    0x8(%ebp),%edx
408e46:	53                   	push   %ebx
408e47:	56                   	push   %esi
408e48:	57                   	push   %edi
408e49:	81 fa e8 fd 00 00    	cmp    $0xfde8,%edx
408e4f:	74 0c                	je     0x408e5d
408e51:	81 fa e9 fd 00 00    	cmp    $0xfde9,%edx
408e57:	74 04                	je     0x408e5d
408e59:	32 db                	xor    %bl,%bl
408e5b:	eb 02                	jmp    0x408e5f
408e5d:	b3 01                	mov    $0x1,%bl
408e5f:	ff 75 0c             	push   0xc(%ebp)
408e62:	52                   	push   %edx
408e63:	e8 46 ff ff ff       	call   0x408dae
408e68:	8b 7d 24             	mov    0x24(%ebp),%edi
408e6b:	59                   	pop    %ecx
408e6c:	59                   	pop    %ecx
408e6d:	0f b6 cb             	movzbl %bl,%ecx
408e70:	f7 d9                	neg    %ecx
408e72:	0f b6 f3             	movzbl %bl,%esi
408e75:	1b c9                	sbb    %ecx,%ecx
408e77:	f7 d1                	not    %ecx
408e79:	23 cf                	and    %edi,%ecx
408e7b:	f7 de                	neg    %esi
408e7d:	1b f6                	sbb    %esi,%esi
408e7f:	f7 d6                	not    %esi
408e81:	23 75 20             	and    0x20(%ebp),%esi
408e84:	84 db                	test   %bl,%bl
408e86:	74 07                	je     0x408e8f
408e88:	85 ff                	test   %edi,%edi
408e8a:	74 03                	je     0x408e8f
408e8c:	83 27 00             	andl   $0x0,(%edi)
408e8f:	51                   	push   %ecx
408e90:	56                   	push   %esi
408e91:	ff 75 1c             	push   0x1c(%ebp)
408e94:	ff 75 18             	push   0x18(%ebp)
408e97:	ff 75 14             	push   0x14(%ebp)
408e9a:	ff 75 10             	push   0x10(%ebp)
408e9d:	50                   	push   %eax
408e9e:	52                   	push   %edx
408e9f:	ff 15 cc f0 40 00    	call   *0x40f0cc
408ea5:	5f                   	pop    %edi
408ea6:	5e                   	pop    %esi
408ea7:	5b                   	pop    %ebx
408ea8:	5d                   	pop    %ebp
408ea9:	c3                   	ret
408eaa:	8b ff                	mov    %edi,%edi
408eac:	55                   	push   %ebp
408ead:	8b ec                	mov    %esp,%ebp
408eaf:	8b 55 08             	mov    0x8(%ebp),%edx
408eb2:	57                   	push   %edi
408eb3:	33 ff                	xor    %edi,%edi
408eb5:	66 39 3a             	cmp    %di,(%edx)
408eb8:	74 21                	je     0x408edb
408eba:	56                   	push   %esi
408ebb:	8b ca                	mov    %edx,%ecx
408ebd:	8d 71 02             	lea    0x2(%ecx),%esi
408ec0:	66 8b 01             	mov    (%ecx),%ax
408ec3:	83 c1 02             	add    $0x2,%ecx
408ec6:	66 3b c7             	cmp    %di,%ax
408ec9:	75 f5                	jne    0x408ec0
408ecb:	2b ce                	sub    %esi,%ecx
408ecd:	d1 f9                	sar    $1,%ecx
408ecf:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
408ed2:	83 c2 02             	add    $0x2,%edx
408ed5:	66 39 3a             	cmp    %di,(%edx)
408ed8:	75 e1                	jne    0x408ebb
408eda:	5e                   	pop    %esi
408edb:	8d 42 02             	lea    0x2(%edx),%eax
408ede:	5f                   	pop    %edi
408edf:	5d                   	pop    %ebp