4109a7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4109aa:	8d 51 02             	lea    0x2(%ecx),%edx
4109ad:	66 8b 01             	mov    (%ecx),%ax
4109b0:	83 c1 02             	add    $0x2,%ecx
4109b3:	66 3b c3             	cmp    %bx,%ax
4109b6:	75 f5                	jne    0x4109ad
4109b8:	2b ca                	sub    %edx,%ecx
4109ba:	d1 f9                	sar    $1,%ecx
4109bc:	75 15                	jne    0x4109d3
4109be:	bb 57 00 07 80       	mov    $0x80070057,%ebx
4109c3:	53                   	push   %ebx
4109c4:	68 78 44 40 00       	push   $0x404478
4109c9:	68 7b 04 00 00       	push   $0x47b
4109ce:	e9 21 01 00 00       	jmp    0x410af4
4109d3:	ff 75 ec             	push   -0x14(%ebp)
4109d6:	ff 15 a4 62 41 00    	call   *0x4162a4
4109dc:	59                   	pop    %ecx
4109dd:	83 f8 09             	cmp    $0x9,%eax
4109e0:	74 0e                	je     0x4109f0
4109e2:	83 f8 11             	cmp    $0x11,%eax
4109e5:	74 09                	je     0x4109f0
4109e7:	83 f8 01             	cmp    $0x1,%eax
4109ea:	0f 85 0f 01 00 00    	jne    0x410aff
4109f0:	8b 4f 04             	mov    0x4(%edi),%ecx
4109f3:	85 c9                	test   %ecx,%ecx
4109f5:	0f 84 e9 00 00 00    	je     0x410ae4
4109fb:	8b 01                	mov    (%ecx),%eax
4109fd:	8d 55 e8             	lea    -0x18(%ebp),%edx
410a00:	52                   	push   %edx
410a01:	51                   	push   %ecx
410a02:	8b 78 14             	mov    0x14(%eax),%edi
410a05:	8b cf                	mov    %edi,%ecx
410a07:	ff 15 28 63 41 00    	call   *0x416328
410a0d:	ff d7                	call   *%edi
410a0f:	8b d8                	mov    %eax,%ebx
410a11:	85 db                	test   %ebx,%ebx
410a13:	79 10                	jns    0x410a25
410a15:	53                   	push   %ebx
410a16:	68 78 44 40 00       	push   $0x404478
410a1b:	68 8c 04 00 00       	push   $0x48c
410a20:	e9 cf 00 00 00       	jmp    0x410af4
410a25:	8b 45 f0             	mov    -0x10(%ebp),%eax
410a28:	8d 55 e4             	lea    -0x1c(%ebp),%edx
410a2b:	52                   	push   %edx
410a2c:	8b 40 04             	mov    0x4(%eax),%eax
410a2f:	50                   	push   %eax
410a30:	8b 08                	mov    (%eax),%ecx
410a32:	8b 79 30             	mov    0x30(%ecx),%edi
410a35:	8b cf                	mov    %edi,%ecx
410a37:	ff 15 28 63 41 00    	call   *0x416328
410a3d:	ff d7                	call   *%edi
410a3f:	8b d8                	mov    %eax,%ebx
410a41:	85 db                	test   %ebx,%ebx
410a43:	79 10                	jns    0x410a55
410a45:	53                   	push   %ebx
410a46:	68 78 44 40 00       	push   $0x404478
410a4b:	68 8e 04 00 00       	push   $0x48e
410a50:	e9 9f 00 00 00       	jmp    0x410af4
410a55:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
410a59:	0f 84 a0 00 00 00    	je     0x410aff
410a5f:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
410a63:	0f 84 96 00 00 00    	je     0x410aff
410a69:	8b 7d f0             	mov    -0x10(%ebp),%edi
410a6c:	8b 4f 04             	mov    0x4(%edi),%ecx
410a6f:	85 c9                	test   %ecx,%ecx
410a71:	0f 84 88 00 00 00    	je     0x410aff
410a77:	8b 01                	mov    (%ecx),%eax
410a79:	56                   	push   %esi
410a7a:	6a 00                	push   $0x0
410a7c:	51                   	push   %ecx
410a7d:	8b 78 20             	mov    0x20(%eax),%edi
410a80:	8b cf                	mov    %edi,%ecx
410a82:	ff 15 28 63 41 00    	call   *0x416328
410a88:	ff d7                	call   *%edi
410a8a:	8b 7d f0             	mov    -0x10(%ebp),%edi
410a8d:	8b d8                	mov    %eax,%ebx
410a8f:	8b 4f 04             	mov    0x4(%edi),%ecx
410a92:	85 c9                	test   %ecx,%ecx
410a94:	74 69                	je     0x410aff
410a96:	e8 34 cf ff ff       	call   0x40d9cf
410a9b:	8b 4f 04             	mov    0x4(%edi),%ecx
410a9e:	85 c9                	test   %ecx,%ecx
410aa0:	74 5d                	je     0x410aff
410aa2:	8b 51 08             	mov    0x8(%ecx),%edx
410aa5:	85 d2                	test   %edx,%edx
410aa7:	74 1d                	je     0x410ac6
410aa9:	8b 02                	mov    (%edx),%eax
410aab:	52                   	push   %edx
410aac:	8b 78 08             	mov    0x8(%eax),%edi
410aaf:	8b cf                	mov    %edi,%ecx
410ab1:	ff 15 28 63 41 00    	call   *0x416328
410ab7:	ff d7                	call   *%edi
410ab9:	8b 7d f0             	mov    -0x10(%ebp),%edi
410abc:	8b 47 04             	mov    0x4(%edi),%eax
410abf:	83 60 08 00          	andl   $0x0,0x8(%eax)
410ac3:	8b 4f 04             	mov    0x4(%edi),%ecx
410ac6:	85 c9                	test   %ecx,%ecx
410ac8:	74 35                	je     0x410aff
410aca:	8b 01                	mov    (%ecx),%eax
410acc:	51                   	push   %ecx
410acd:	8b 78 08             	mov    0x8(%eax),%edi
410ad0:	8b cf                	mov    %edi,%ecx
410ad2:	ff 15 28 63 41 00    	call   *0x416328
410ad8:	ff d7                	call   *%edi
410ada:	8b 45 f0             	mov    -0x10(%ebp),%eax
410add:	33 ff                	xor    %edi,%edi
410adf:	89 78 04             	mov    %edi,0x4(%eax)
410ae2:	eb 1d                	jmp    0x410b01
410ae4:	bb 03 40 00 80       	mov    $0x80004003,%ebx
410ae9:	53                   	push   %ebx
410aea:	68 78 44 40 00       	push   $0x404478
410aef:	68 92 04 00 00       	push   $0x492
410af4:	68 20 41 40 00       	push   $0x404120
410af9:	51                   	push   %ecx
410afa:	e8 d3 04 00 00       	call   0x410fd2
410aff:	33 ff                	xor    %edi,%edi
410b01:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
410b05:	74 11                	je     0x410b18
410b07:	ff 75 ec             	push   -0x14(%ebp)
410b0a:	57                   	push   %edi
410b0b:	ff 15 e0 60 41 00    	call   *0x4160e0
410b11:	50                   	push   %eax
410b12:	ff 15 e4 60 41 00    	call   *0x4160e4
410b18:	56                   	push   %esi
410b19:	ff 15 b8 61 41 00    	call   *0x4161b8
410b1f:	57                   	push   %edi
410b20:	ff 15 b8 61 41 00    	call   *0x4161b8
410b26:	8b c3                	mov    %ebx,%eax
410b28:	e8 ff 19 00 00       	call   0x41252c
410b2d:	c2 04 00             	ret    $0x4
410b30:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
410b35:	e8 b5 40 ff ff       	call   0x404bef
410b3a:	cc                   	int3
410b3b:	68 10 02 00 00       	push   $0x210
410b40:	b8 d6 31 41 00       	mov    $0x4131d6,%eax
410b45:	e8 47 1a 00 00       	call   0x412591
410b4a:	8b d9                	mov    %ecx,%ebx
410b4c:	33 f6                	xor    %esi,%esi
410b4e:	89 b5 e4 fd ff ff    	mov    %esi,-0x21c(%ebp)
410b54:	8b 45 08             	mov    0x8(%ebp),%eax
410b57:	8b ce                	mov    %esi,%ecx
410b59:	89 75 fc             	mov    %esi,-0x4(%ebp)
410b5c:	eb 07                	jmp    0x410b65
410b5e:	6a 0a                	push   $0xa
410b60:	99                   	cltd
410b61:	41                   	inc    %ecx
410b62:	5f                   	pop    %edi
410b63:	f7 ff                	idiv   %edi
410b65:	83 f8 01             	cmp    $0x1,%eax
410b68:	7d f4                	jge    0x410b5e
410b6a:	ff 75 08             	push   0x8(%ebp)
410b6d:	8d 41 07             	lea    0x7(%ecx),%eax
410b70:	50                   	push   %eax
410b71:	68 bc 44 40 00       	push   $0x4044bc
410b76:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
410b7c:	68 04 01 00 00       	push   $0x104
410b81:	50                   	push   %eax
410b82:	e8 4b a5 ff ff       	call   0x40b0d2
410b87:	8b f8                	mov    %eax,%edi
410b89:	83 c4 14             	add    $0x14,%esp
410b8c:	85 ff                	test   %edi,%edi
410b8e:	79 0d                	jns    0x410b9d
410b90:	57                   	push   %edi
410b91:	68 d8 44 40 00       	push   $0x4044d8
410b96:	68 fa 04 00 00       	push   $0x4fa
410b9b:	eb 5e                	jmp    0x410bfb
410b9d:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
410ba3:	50                   	push   %eax
410ba4:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
410baa:	e8 f1 8c ff ff       	call   0x4098a0
410baf:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
410bb5:	56                   	push   %esi
410bb6:	ff 15 7c 61 41 00    	call   *0x41617c
410bbc:	85 c0                	test   %eax,%eax
410bbe:	74 46                	je     0x410c06
410bc0:	8b 4b 04             	mov    0x4(%ebx),%ecx
410bc3:	85 c9                	test   %ecx,%ecx
410bc5:	74 24                	je     0x410beb
410bc7:	8b 01                	mov    (%ecx),%eax
410bc9:	56                   	push   %esi
410bca:	51                   	push   %ecx
410bcb:	8b 78 1c             	mov    0x1c(%eax),%edi
410bce:	8b cf                	mov    %edi,%ecx
410bd0:	ff 15 28 63 41 00    	call   *0x416328
410bd6:	ff d7                	call   *%edi
410bd8:	8b f8                	mov    %eax,%edi
410bda:	85 ff                	test   %edi,%edi
410bdc:	79 28                	jns    0x410c06
410bde:	57                   	push   %edi
410bdf:	68 d8 44 40 00       	push   $0x4044d8
410be4:	68 06 05 00 00       	push   $0x506
410be9:	eb 10                	jmp    0x410bfb
410beb:	bf 03 40 00 80       	mov    $0x80004003,%edi
410bf0:	57                   	push   %edi
410bf1:	68 d8 44 40 00       	push   $0x4044d8
410bf6:	68 0b 05 00 00       	push   $0x50b
410bfb:	68 20 41 40 00       	push   $0x404120
410c00:	51                   	push   %ecx
410c01:	e8 cc 03 00 00       	call   0x410fd2
410c06:	56                   	push   %esi
410c07:	ff 15 b8 61 41 00    	call   *0x4161b8
410c0d:	8b c7                	mov    %edi,%eax
410c0f:	e8 2c 19 00 00       	call   0x412540
410c14:	c2 04 00             	ret    $0x4
410c17:	8b ff                	mov    %edi,%edi
410c19:	55                   	push   %ebp
410c1a:	8b ec                	mov    %esp,%ebp
410c1c:	51                   	push   %ecx
410c1d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
410c21:	53                   	push   %ebx
410c22:	56                   	push   %esi
410c23:	57                   	push   %edi
410c24:	8b f1                	mov    %ecx,%esi
410c26:	0f 84 89 00 00 00    	je     0x410cb5
410c2c:	83 3e 00             	cmpl   $0x0,(%esi)
410c2f:	8b 7d 0c             	mov    0xc(%ebp),%edi
410c32:	74 04                	je     0x410c38
410c34:	85 ff                	test   %edi,%edi
410c36:	74 7d                	je     0x410cb5
410c38:	ff 36                	push   (%esi)
410c3a:	ff 15 7c 61 41 00    	call   *0x41617c
410c40:	8b d8                	mov    %eax,%ebx
410c42:	03 fb                	add    %ebx,%edi
410c44:	3b fb                	cmp    %ebx,%edi
410c46:	7c 76                	jl     0x410cbe
410c48:	57                   	push   %edi
410c49:	6a 00                	push   $0x0
410c4b:	ff 15 80 61 41 00    	call   *0x416180
410c51:	89 45 fc             	mov    %eax,-0x4(%ebp)
410c54:	85 c0                	test   %eax,%eax
410c56:	74 66                	je     0x410cbe
410c58:	ff 36                	push   (%esi)
410c5a:	ff 15 7c 61 41 00    	call   *0x41617c
410c60:	85 c0                	test   %eax,%eax
410c62:	74 1d                	je     0x410c81
410c64:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
410c67:	50                   	push   %eax
410c68:	ff 36                	push   (%esi)
410c6a:	8d 04 3f             	lea    (%edi,%edi,1),%eax
410c6d:	50                   	push   %eax
410c6e:	ff 75 fc             	push   -0x4(%ebp)
410c71:	ff 15 c4 62 41 00    	call   *0x4162c4
410c77:	83 c4 10             	add    $0x10,%esp
410c7a:	8b c8                	mov    %eax,%ecx
410c7c:	e8 8b 3f ff ff       	call   0x404c0c
410c81:	8b 45 0c             	mov    0xc(%ebp),%eax
410c84:	03 c0                	add    %eax,%eax
410c86:	50                   	push   %eax
410c87:	ff 75 08             	push   0x8(%ebp)
410c8a:	50                   	push   %eax
410c8b:	8b 45 fc             	mov    -0x4(%ebp),%eax
410c8e:	8d 04 58             	lea    (%eax,%ebx,2),%eax
410c91:	50                   	push   %eax
410c92:	ff 15 c4 62 41 00    	call   *0x4162c4
410c98:	83 c4 10             	add    $0x10,%esp
410c9b:	8b c8                	mov    %eax,%ecx
410c9d:	e8 6a 3f ff ff       	call   0x404c0c
410ca2:	8b 5d fc             	mov    -0x4(%ebp),%ebx
410ca5:	33 c0                	xor    %eax,%eax
410ca7:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
410cab:	ff 36                	push   (%esi)
410cad:	ff 15 b8 61 41 00    	call   *0x4161b8
410cb3:	89 1e                	mov    %ebx,(%esi)
410cb5:	33 c0                	xor    %eax,%eax
410cb7:	5f                   	pop    %edi
410cb8:	5e                   	pop    %esi
410cb9:	5b                   	pop    %ebx
410cba:	c9                   	leave
410cbb:	c2 08 00             	ret    $0x8
410cbe:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
410cc3:	eb f2                	jmp    0x410cb7
410cc5:	8b ff                	mov    %edi,%edi
410cc7:	57                   	push   %edi
410cc8:	33 c0                	xor    %eax,%eax
410cca:	ba 20 56 41 00       	mov    $0x415620,%edx
410ccf:	6a 06                	push   $0x6
410cd1:	59                   	pop    %ecx
410cd2:	8b fa                	mov    %edx,%edi
410cd4:	f3 ab                	rep stos %eax,%es:(%edi)
410cd6:	a3 38 56 41 00       	mov    %eax,0x415638
410cdb:	8b ca                	mov    %edx,%ecx
410cdd:	a3 3c 56 41 00       	mov    %eax,0x41563c
410ce2:	a3 40 56 41 00       	mov    %eax,0x415640
410ce7:	b8 00 00 40 00       	mov    $0x400000,%eax
410cec:	c7 05 08 56 41 00 3c 	movl   $0x3c,0x415608
410cf3:	00 00 00
410cf6:	a3 10 56 41 00       	mov    %eax,0x415610
410cfb:	a3 0c 56 41 00       	mov    %eax,0x41560c
410d00:	c6 05 14 56 41 00 01 	movb   $0x1,0x415614
410d07:	c7 05 18 56 41 00 00 	movl   $0x800,0x415618
410d0e:	08 00 00
410d11:	c7 05 1c 56 41 00 0c 	movl   $0x40450c,0x41561c
410d18:	45 40 00
410d1b:	e8 1f 3f ff ff       	call   0x404c3f
410d20:	5f                   	pop    %edi
410d21:	85 c0                	test   %eax,%eax
410d23:	79 07                	jns    0x410d2c
410d25:	c6 05 50 56 41 00 01 	movb   $0x1,0x415650
410d2c:	b8 08 56 41 00       	mov    $0x415608,%eax
410d31:	c3                   	ret
410d32:	a1 38 56 41 00       	mov    0x415638,%eax
410d37:	85 c0                	test   %eax,%eax
410d39:	74 0f                	je     0x410d4a
410d3b:	50                   	push   %eax
410d3c:	ff 15 bc 62 41 00    	call   *0x4162bc
410d42:	83 25 38 56 41 00 00 	andl   $0x0,0x415638
410d49:	59                   	pop    %ecx
410d4a:	83 25 3c 56 41 00 00 	andl   $0x0,0x41563c
410d51:	83 25 40 56 41 00 00 	andl   $0x0,0x415640
410d58:	c3                   	ret
410d59:	a1 fc 51 41 00       	mov    0x4151fc,%eax
410d5e:	57                   	push   %edi
410d5f:	8b fa                	mov    %edx,%edi
410d61:	85 c0                	test   %eax,%eax
410d63:	74 74                	je     0x410dd9
410d65:	83 f8 2c             	cmp    $0x2c,%eax
410d68:	74 07                	je     0x410d71
410d6a:	b8 57 00 07 80       	mov    $0x80070057,%eax
410d6f:	5f                   	pop    %edi
410d70:	c3                   	ret
410d71:	a1 20 52 41 00       	mov    0x415220,%eax
410d76:	53                   	push   %ebx
410d77:	33 db                	xor    %ebx,%ebx
410d79:	56                   	push   %esi
410d7a:	8b f3                	mov    %ebx,%esi
410d7c:	85 c0                	test   %eax,%eax
410d7e:	7e 23                	jle    0x410da3
410d80:	85 f6                	test   %esi,%esi
410d82:	78 59                	js     0x410ddd
410d84:	3b f0                	cmp    %eax,%esi
410d86:	7d 55                	jge    0x410ddd
410d88:	a1 1c 52 41 00       	mov    0x41521c,%eax
410d8d:	57                   	push   %edi
410d8e:	0f b7 04 70          	movzwl (%eax,%esi,2),%eax
410d92:	50                   	push   %eax
410d93:	ff 15 e8 61 41 00    	call   *0x4161e8
410d99:	a1 20 52 41 00       	mov    0x415220,%eax
410d9e:	46                   	inc    %esi
410d9f:	3b f0                	cmp    %eax,%esi
410da1:	7c dd                	jl     0x410d80
410da3:	a1 1c 52 41 00       	mov    0x41521c,%eax
410da8:	85 c0                	test   %eax,%eax
410daa:	74 0e                	je     0x410dba
410dac:	50                   	push   %eax
410dad:	ff 15 bc 62 41 00    	call   *0x4162bc
410db3:	59                   	pop    %ecx
410db4:	89 1d 1c 52 41 00    	mov    %ebx,0x41521c
410dba:	68 00 52 41 00       	push   $0x415200
410dbf:	89 1d 20 52 41 00    	mov    %ebx,0x415220
410dc5:	89 1d 24 52 41 00    	mov    %ebx,0x415224