407b23:	8b c2                	mov    %edx,%eax
407b25:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407b2b:	72 14                	jb     0x407b41
407b2d:	8b 50 fc             	mov    -0x4(%eax),%edx
407b30:	83 c1 23             	add    $0x23,%ecx
407b33:	2b c2                	sub    %edx,%eax
407b35:	83 c0 fc             	add    $0xfffffffc,%eax
407b38:	83 f8 1f             	cmp    $0x1f,%eax
407b3b:	0f 87 89 01 00 00    	ja     0x407cca
407b41:	51                   	push   %ecx
407b42:	52                   	push   %edx
407b43:	e8 c6 3d 01 00       	call   0x41b90e
407b48:	83 c4 08             	add    $0x8,%esp
407b4b:	8b 4d bc             	mov    -0x44(%ebp),%ecx
407b4e:	83 f9 08             	cmp    $0x8,%ecx
407b51:	72 32                	jb     0x407b85
407b53:	8b 55 a8             	mov    -0x58(%ebp),%edx
407b56:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407b5d:	8b c2                	mov    %edx,%eax
407b5f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407b65:	72 14                	jb     0x407b7b
407b67:	8b 50 fc             	mov    -0x4(%eax),%edx
407b6a:	83 c1 23             	add    $0x23,%ecx
407b6d:	2b c2                	sub    %edx,%eax
407b6f:	83 c0 fc             	add    $0xfffffffc,%eax
407b72:	83 f8 1f             	cmp    $0x1f,%eax
407b75:	0f 87 4f 01 00 00    	ja     0x407cca
407b7b:	51                   	push   %ecx
407b7c:	52                   	push   %edx
407b7d:	e8 8c 3d 01 00       	call   0x41b90e
407b82:	83 c4 08             	add    $0x8,%esp
407b85:	8b 7d cc             	mov    -0x34(%ebp),%edi
407b88:	33 c0                	xor    %eax,%eax
407b8a:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
407b91:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
407b98:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
407b9c:	85 ff                	test   %edi,%edi
407b9e:	74 6a                	je     0x407c0a
407ba0:	8b 55 d0             	mov    -0x30(%ebp),%edx
407ba3:	51                   	push   %ecx
407ba4:	8b cf                	mov    %edi,%ecx
407ba6:	e8 15 47 00 00       	call   0x40c2c0
407bab:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
407bae:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
407bb3:	8b 75 cc             	mov    -0x34(%ebp),%esi
407bb6:	83 c4 04             	add    $0x4,%esp
407bb9:	2b ce                	sub    %esi,%ecx
407bbb:	f7 e9                	imul   %ecx
407bbd:	c1 fa 02             	sar    $0x2,%edx
407bc0:	8b c2                	mov    %edx,%eax
407bc2:	c1 e8 1f             	shr    $0x1f,%eax
407bc5:	03 c2                	add    %edx,%eax
407bc7:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
407bca:	8b c6                	mov    %esi,%eax
407bcc:	c1 e1 03             	shl    $0x3,%ecx
407bcf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407bd5:	72 14                	jb     0x407beb
407bd7:	8b 70 fc             	mov    -0x4(%eax),%esi
407bda:	83 c1 23             	add    $0x23,%ecx
407bdd:	2b c6                	sub    %esi,%eax
407bdf:	83 c0 fc             	add    $0xfffffffc,%eax
407be2:	83 f8 1f             	cmp    $0x1f,%eax
407be5:	0f 87 df 00 00 00    	ja     0x407cca
407beb:	51                   	push   %ecx
407bec:	56                   	push   %esi
407bed:	e8 1c 3d 01 00       	call   0x41b90e
407bf2:	83 c4 08             	add    $0x8,%esp
407bf5:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
407bfc:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
407c03:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
407c0a:	8b 4d c0             	mov    -0x40(%ebp),%ecx
407c0d:	85 c9                	test   %ecx,%ecx
407c0f:	74 64                	je     0x407c75
407c11:	8b 55 c4             	mov    -0x3c(%ebp),%edx
407c14:	51                   	push   %ecx
407c15:	e8 a6 46 00 00       	call   0x40c2c0
407c1a:	8b 4d c8             	mov    -0x38(%ebp),%ecx
407c1d:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
407c22:	8b 75 c0             	mov    -0x40(%ebp),%esi
407c25:	83 c4 04             	add    $0x4,%esp
407c28:	2b ce                	sub    %esi,%ecx
407c2a:	f7 e9                	imul   %ecx
407c2c:	c1 fa 02             	sar    $0x2,%edx
407c2f:	8b c2                	mov    %edx,%eax
407c31:	c1 e8 1f             	shr    $0x1f,%eax
407c34:	03 c2                	add    %edx,%eax
407c36:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
407c39:	8b c6                	mov    %esi,%eax
407c3b:	c1 e1 03             	shl    $0x3,%ecx
407c3e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407c44:	72 10                	jb     0x407c56
407c46:	8b 70 fc             	mov    -0x4(%eax),%esi
407c49:	83 c1 23             	add    $0x23,%ecx
407c4c:	2b c6                	sub    %esi,%eax
407c4e:	83 c0 fc             	add    $0xfffffffc,%eax
407c51:	83 f8 1f             	cmp    $0x1f,%eax
407c54:	77 74                	ja     0x407cca
407c56:	51                   	push   %ecx
407c57:	56                   	push   %esi
407c58:	e8 b1 3c 01 00       	call   0x41b90e
407c5d:	83 c4 08             	add    $0x8,%esp
407c60:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
407c67:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
407c6e:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
407c75:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
407c7b:	ff 70 04             	push   0x4(%eax)
407c7e:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
407c84:	50                   	push   %eax
407c85:	8b c8                	mov    %eax,%ecx
407c87:	e8 24 53 00 00       	call   0x40cfb0
407c8c:	6a 2c                	push   $0x2c
407c8e:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
407c94:	e8 75 3c 01 00       	call   0x41b90e
407c99:	83 c4 08             	add    $0x8,%esp
407c9c:	32 c0                	xor    %al,%al
407c9e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407ca1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407ca8:	59                   	pop    %ecx
407ca9:	5f                   	pop    %edi
407caa:	5e                   	pop    %esi
407cab:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407cae:	33 cd                	xor    %ebp,%ecx
407cb0:	e8 1b 3c 01 00       	call   0x41b8d0
407cb5:	8b e5                	mov    %ebp,%esp
407cb7:	5d                   	pop    %ebp
407cb8:	c2 04 00             	ret    $0x4
407cbb:	e8 10 3c 00 00       	call   0x40b8d0
407cc0:	e8 db 95 ff ff       	call   0x4012a0
407cc5:	e8 b5 8d 01 00       	call   0x420a7f
407cca:	e8 b0 8d 01 00       	call   0x420a7f
407ccf:	e8 fc 29 00 00       	call   0x40a6d0
407cd4:	cc                   	int3
407cd5:	cc                   	int3
407cd6:	cc                   	int3
407cd7:	cc                   	int3
407cd8:	cc                   	int3
407cd9:	cc                   	int3
407cda:	cc                   	int3
407cdb:	cc                   	int3
407cdc:	cc                   	int3
407cdd:	cc                   	int3
407cde:	cc                   	int3
407cdf:	cc                   	int3
407ce0:	56                   	push   %esi
407ce1:	8b f1                	mov    %ecx,%esi
407ce3:	8b 06                	mov    (%esi),%eax
407ce5:	ff 70 04             	push   0x4(%eax)
407ce8:	56                   	push   %esi
407ce9:	e8 c2 52 00 00       	call   0x40cfb0
407cee:	6a 2c                	push   $0x2c
407cf0:	ff 36                	push   (%esi)
407cf2:	e8 17 3c 01 00       	call   0x41b90e
407cf7:	83 c4 08             	add    $0x8,%esp
407cfa:	5e                   	pop    %esi
407cfb:	c3                   	ret
407cfc:	cc                   	int3
407cfd:	cc                   	int3
407cfe:	cc                   	int3
407cff:	cc                   	int3
407d00:	55                   	push   %ebp
407d01:	8b ec                	mov    %esp,%ebp
407d03:	6a ff                	push   $0xffffffff
407d05:	68 a5 d8 43 00       	push   $0x43d8a5
407d0a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407d10:	50                   	push   %eax
407d11:	83 ec 6c             	sub    $0x6c,%esp
407d14:	a1 14 40 45 00       	mov    0x454014,%eax
407d19:	33 c5                	xor    %ebp,%eax
407d1b:	89 45 f0             	mov    %eax,-0x10(%ebp)
407d1e:	53                   	push   %ebx
407d1f:	56                   	push   %esi
407d20:	57                   	push   %edi
407d21:	50                   	push   %eax
407d22:	8d 45 f4             	lea    -0xc(%ebp),%eax
407d25:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
407d2b:	8b f9                	mov    %ecx,%edi
407d2d:	8d 77 4c             	lea    0x4c(%edi),%esi
407d30:	56                   	push   %esi
407d31:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407d34:	e8 87 a5 ff ff       	call   0x4022c0
407d39:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407d3c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
407d43:	e8 e8 cc 00 00       	call   0x414a30
407d48:	33 c0                	xor    %eax,%eax
407d4a:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
407d51:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
407d58:	c7 45 d4 07 00 00 00 	movl   $0x7,-0x2c(%ebp)
407d5f:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
407d63:	8d 4d c0             	lea    -0x40(%ebp),%ecx
407d66:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407d6a:	e8 d1 c9 00 00       	call   0x414740
407d6f:	8b 4d d0             	mov    -0x30(%ebp),%ecx
407d72:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
407d77:	2b c1                	sub    %ecx,%eax
407d79:	83 f8 01             	cmp    $0x1,%eax
407d7c:	0f 82 41 02 00 00    	jb     0x407fc3
407d82:	83 7d d4 08          	cmpl   $0x8,-0x2c(%ebp)
407d86:	8d 45 c0             	lea    -0x40(%ebp),%eax
407d89:	51                   	push   %ecx
407d8a:	0f 43 45 c0          	cmovae -0x40(%ebp),%eax
407d8e:	50                   	push   %eax
407d8f:	6a 01                	push   $0x1
407d91:	68 08 dc 44 00       	push   $0x44dc08
407d96:	51                   	push   %ecx
407d97:	ff 75 a4             	push   -0x5c(%ebp)
407d9a:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
407d9d:	e8 ce 50 00 00       	call   0x40ce70
407da2:	8d 45 8c             	lea    -0x74(%ebp),%eax
407da5:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407da9:	50                   	push   %eax
407daa:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407dad:	e8 3e 29 00 00       	call   0x40a6f0
407db2:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407db6:	8b 4d a0             	mov    -0x60(%ebp),%ecx
407db9:	83 f9 08             	cmp    $0x8,%ecx
407dbc:	72 32                	jb     0x407df0
407dbe:	8b 55 8c             	mov    -0x74(%ebp),%edx
407dc1:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407dc8:	8b c2                	mov    %edx,%eax
407dca:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407dd0:	72 14                	jb     0x407de6
407dd2:	8b 50 fc             	mov    -0x4(%eax),%edx
407dd5:	83 c1 23             	add    $0x23,%ecx
407dd8:	2b c2                	sub    %edx,%eax
407dda:	83 c0 fc             	add    $0xfffffffc,%eax
407ddd:	83 f8 1f             	cmp    $0x1f,%eax
407de0:	0f 87 e2 01 00 00    	ja     0x407fc8
407de6:	51                   	push   %ecx
407de7:	52                   	push   %edx
407de8:	e8 21 3b 01 00       	call   0x41b90e
407ded:	83 c4 08             	add    $0x8,%esp
407df0:	33 c0                	xor    %eax,%eax
407df2:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
407df9:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
407e00:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
407e07:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
407e0b:	8d 55 a8             	lea    -0x58(%ebp),%edx
407e0e:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
407e12:	8b ce                	mov    %esi,%ecx
407e14:	e8 a7 cf 00 00       	call   0x414dc0
407e19:	8d 55 a8             	lea    -0x58(%ebp),%edx
407e1c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407e1f:	e8 dc cc 00 00       	call   0x414b00
407e24:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
407e28:	8d 45 d8             	lea    -0x28(%ebp),%eax
407e2b:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
407e2f:	50                   	push   %eax
407e30:	ff 15 ec f1 43 00    	call   *0x43f1ec
407e36:	83 f8 01             	cmp    $0x1,%eax
407e39:	0f 84 96 00 00 00    	je     0x407ed5
407e3f:	6a 00                	push   $0x0
407e41:	8b ce                	mov    %esi,%ecx
407e43:	e8 48 c2 00 00       	call   0x414090
407e48:	83 c4 04             	add    $0x4,%esp
407e4b:	85 c0                	test   %eax,%eax
407e4d:	0f 85 82 00 00 00    	jne    0x407ed5
407e53:	39 46 10             	cmp    %eax,0x10(%esi)
407e56:	74 7d                	je     0x407ed5
407e58:	39 45 e8             	cmp    %eax,-0x18(%ebp)
407e5b:	74 78                	je     0x407ed5
407e5d:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
407e61:	8d 45 d8             	lea    -0x28(%ebp),%eax
407e64:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
407e68:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
407e6c:	72 02                	jb     0x407e70
407e6e:	8b 36                	mov    (%esi),%esi
407e70:	50                   	push   %eax
407e71:	56                   	push   %esi
407e72:	e8 76 ea 01 00       	call   0x4268ed
407e77:	83 c4 08             	add    $0x8,%esp
407e7a:	85 c0                	test   %eax,%eax
407e7c:	75 57                	jne    0x407ed5
407e7e:	8d 8f d4 00 00 00    	lea    0xd4(%edi),%ecx
407e84:	8d 45 d8             	lea    -0x28(%ebp),%eax
407e87:	3b c8                	cmp    %eax,%ecx
407e89:	74 46                	je     0x407ed1
407e8b:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
407e8f:	8b d0                	mov    %eax,%edx
407e91:	8b 75 e8             	mov    -0x18(%ebp),%esi
407e94:	0f 43 55 d8          	cmovae -0x28(%ebp),%edx
407e98:	8b 41 14             	mov    0x14(%ecx),%eax
407e9b:	3b f0                	cmp    %eax,%esi
407e9d:	77 24                	ja     0x407ec3
407e9f:	8b f9                	mov    %ecx,%edi
407ea1:	83 f8 08             	cmp    $0x8,%eax
407ea4:	72 02                	jb     0x407ea8
407ea6:	8b 39                	mov    (%ecx),%edi
407ea8:	8d 04 36             	lea    (%esi,%esi,1),%eax
407eab:	89 71 10             	mov    %esi,0x10(%ecx)
407eae:	50                   	push   %eax
407eaf:	52                   	push   %edx
407eb0:	57                   	push   %edi
407eb1:	e8 9a 55 01 00       	call   0x41d450
407eb6:	83 c4 0c             	add    $0xc,%esp
407eb9:	b3 01                	mov    $0x1,%bl
407ebb:	33 c0                	xor    %eax,%eax
407ebd:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
407ec1:	eb 14                	jmp    0x407ed7
407ec3:	52                   	push   %edx
407ec4:	c6 45 a4 00          	movb   $0x0,-0x5c(%ebp)
407ec8:	ff 75 a4             	push   -0x5c(%ebp)
407ecb:	56                   	push   %esi
407ecc:	e8 3f a7 ff ff       	call   0x402610
407ed1:	b3 01                	mov    $0x1,%bl
407ed3:	eb 02                	jmp    0x407ed7
407ed5:	32 db                	xor    %bl,%bl
407ed7:	8b 4d bc             	mov    -0x44(%ebp),%ecx
407eda:	83 f9 08             	cmp    $0x8,%ecx
407edd:	72 32                	jb     0x407f11
407edf:	8b 55 a8             	mov    -0x58(%ebp),%edx
407ee2:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407ee9:	8b c2                	mov    %edx,%eax
407eeb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407ef1:	72 14                	jb     0x407f07
407ef3:	8b 50 fc             	mov    -0x4(%eax),%edx
407ef6:	83 c1 23             	add    $0x23,%ecx
407ef9:	2b c2                	sub    %edx,%eax
407efb:	83 c0 fc             	add    $0xfffffffc,%eax
407efe:	83 f8 1f             	cmp    $0x1f,%eax
407f01:	0f 87 c1 00 00 00    	ja     0x407fc8
407f07:	51                   	push   %ecx
407f08:	52                   	push   %edx
407f09:	e8 00 3a 01 00       	call   0x41b90e
407f0e:	83 c4 08             	add    $0x8,%esp
407f11:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
407f14:	33 c0                	xor    %eax,%eax
407f16:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
407f1d:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
407f24:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
407f28:	83 f9 08             	cmp    $0x8,%ecx
407f2b:	72 2e                	jb     0x407f5b
407f2d:	8b 55 c0             	mov    -0x40(%ebp),%edx
407f30:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407f37:	8b c2                	mov    %edx,%eax
407f39:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407f3f:	72 10                	jb     0x407f51
407f41:	8b 50 fc             	mov    -0x4(%eax),%edx
407f44:	83 c1 23             	add    $0x23,%ecx
407f47:	2b c2                	sub    %edx,%eax
407f49:	83 c0 fc             	add    $0xfffffffc,%eax
407f4c:	83 f8 1f             	cmp    $0x1f,%eax
407f4f:	77 77                	ja     0x407fc8
407f51:	51                   	push   %ecx
407f52:	52                   	push   %edx
407f53:	e8 b6 39 01 00       	call   0x41b90e
407f58:	83 c4 08             	add    $0x8,%esp
407f5b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407f5e:	33 c0                	xor    %eax,%eax
407f60:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
407f67:	c7 45 d4 07 00 00 00 	movl   $0x7,-0x2c(%ebp)