402b86:	43                   	inc    %ebx
402b87:	83 44 24 14 01       	addl   $0x1,0x14(%esp)
402b8c:	89 5d 08             	mov    %ebx,0x8(%ebp)
402b8f:	83 d1 00             	adc    $0x0,%ecx
402b92:	83 c6 ff             	add    $0xffffffff,%esi
402b95:	83 d7 ff             	adc    $0xffffffff,%edi
402b98:	89 4c 24 10          	mov    %ecx,0x10(%esp)
402b9c:	85 ff                	test   %edi,%edi
402b9e:	0f 8f 53 ff ff ff    	jg     0x402af7
402ba4:	7c 08                	jl     0x402bae
402ba6:	85 f6                	test   %esi,%esi
402ba8:	0f 85 49 ff ff ff    	jne    0x402af7
402bae:	8b 54 24 10          	mov    0x10(%esp),%edx
402bb2:	8b 44 24 14          	mov    0x14(%esp),%eax
402bb6:	5f                   	pop    %edi
402bb7:	5e                   	pop    %esi
402bb8:	5b                   	pop    %ebx
402bb9:	8b e5                	mov    %ebp,%esp
402bbb:	5d                   	pop    %ebp
402bbc:	c2 0c 00             	ret    $0xc
402bbf:	8b 54 24 24          	mov    0x24(%esp),%edx
402bc3:	8b 44 24 20          	mov    0x20(%esp),%eax
402bc7:	eb ed                	jmp    0x402bb6
402bc9:	55                   	push   %ebp
402bca:	8b ec                	mov    %esp,%ebp
402bcc:	8b 45 08             	mov    0x8(%ebp),%eax
402bcf:	8b 0d 58 a1 41 00    	mov    0x41a158,%ecx
402bd5:	89 08                	mov    %ecx,(%eax)
402bd7:	8b 0d 5c a1 41 00    	mov    0x41a15c,%ecx
402bdd:	89 48 04             	mov    %ecx,0x4(%eax)
402be0:	33 c9                	xor    %ecx,%ecx
402be2:	89 48 08             	mov    %ecx,0x8(%eax)
402be5:	89 48 0c             	mov    %ecx,0xc(%eax)
402be8:	89 48 10             	mov    %ecx,0x10(%eax)
402beb:	5d                   	pop    %ebp
402bec:	c2 14 00             	ret    $0x14
402bef:	55                   	push   %ebp
402bf0:	8b ec                	mov    %esp,%ebp
402bf2:	8b 45 08             	mov    0x8(%ebp),%eax
402bf5:	8b 0d 58 a1 41 00    	mov    0x41a158,%ecx
402bfb:	89 08                	mov    %ecx,(%eax)
402bfd:	8b 0d 5c a1 41 00    	mov    0x41a15c,%ecx
402c03:	89 48 04             	mov    %ecx,0x4(%eax)
402c06:	33 c9                	xor    %ecx,%ecx
402c08:	89 48 08             	mov    %ecx,0x8(%eax)
402c0b:	89 48 0c             	mov    %ecx,0xc(%eax)
402c0e:	89 48 10             	mov    %ecx,0x10(%eax)
402c11:	5d                   	pop    %ebp
402c12:	c2 20 00             	ret    $0x20
402c15:	8b c1                	mov    %ecx,%eax
402c17:	c2 0c 00             	ret    $0xc
402c1a:	33 c0                	xor    %eax,%eax
402c1c:	c3                   	ret
402c1d:	c2 04 00             	ret    $0x4
402c20:	55                   	push   %ebp
402c21:	8b ec                	mov    %esp,%ebp
402c23:	56                   	push   %esi
402c24:	8d 71 f8             	lea    -0x8(%ecx),%esi
402c27:	8b ce                	mov    %esi,%ecx
402c29:	e8 66 fb ff ff       	call   0x402794
402c2e:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402c32:	74 07                	je     0x402c3b
402c34:	56                   	push   %esi
402c35:	e8 be 22 00 00       	call   0x404ef8
402c3a:	59                   	pop    %ecx
402c3b:	8b c6                	mov    %esi,%eax
402c3d:	5e                   	pop    %esi
402c3e:	5d                   	pop    %ebp
402c3f:	c2 04 00             	ret    $0x4
402c42:	55                   	push   %ebp
402c43:	8b ec                	mov    %esp,%ebp
402c45:	56                   	push   %esi
402c46:	8b f1                	mov    %ecx,%esi
402c48:	e8 02 fd ff ff       	call   0x40294f
402c4d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402c51:	74 07                	je     0x402c5a
402c53:	56                   	push   %esi
402c54:	e8 9f 22 00 00       	call   0x404ef8
402c59:	59                   	pop    %ecx
402c5a:	8b c6                	mov    %esi,%eax
402c5c:	5e                   	pop    %esi
402c5d:	5d                   	pop    %ebp
402c5e:	c2 04 00             	ret    $0x4
402c61:	55                   	push   %ebp
402c62:	8b ec                	mov    %esp,%ebp
402c64:	8b 55 08             	mov    0x8(%ebp),%edx
402c67:	83 ec 0c             	sub    $0xc,%esp
402c6a:	56                   	push   %esi
402c6b:	8b f1                	mov    %ecx,%esi
402c6d:	57                   	push   %edi
402c6e:	8b 7e 10             	mov    0x10(%esi),%edi
402c71:	3b fa                	cmp    %edx,%edi
402c73:	0f 82 2c 03 00 00    	jb     0x402fa5
402c79:	53                   	push   %ebx
402c7a:	8b 5d 10             	mov    0x10(%ebp),%ebx
402c7d:	8b 43 10             	mov    0x10(%ebx),%eax
402c80:	3b 45 14             	cmp    0x14(%ebp),%eax
402c83:	0f 82 1c 03 00 00    	jb     0x402fa5
402c89:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402c8c:	8b cf                	mov    %edi,%ecx
402c8e:	2b ca                	sub    %edx,%ecx
402c90:	3b cb                	cmp    %ebx,%ecx
402c92:	0f 42 d9             	cmovb  %ecx,%ebx
402c95:	2b 45 14             	sub    0x14(%ebp),%eax
402c98:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402c9b:	8b 4d 18             	mov    0x18(%ebp),%ecx
402c9e:	3b c1                	cmp    %ecx,%eax
402ca0:	0f 42 c8             	cmovb  %eax,%ecx
402ca3:	89 5d 0c             	mov    %ebx,0xc(%ebp)
402ca6:	8b df                	mov    %edi,%ebx
402ca8:	2b 5d 0c             	sub    0xc(%ebp),%ebx
402cab:	83 c8 ff             	or     $0xffffffff,%eax
402cae:	2b c1                	sub    %ecx,%eax
402cb0:	89 4d 18             	mov    %ecx,0x18(%ebp)
402cb3:	3b c3                	cmp    %ebx,%eax
402cb5:	0f 86 e0 02 00 00    	jbe    0x402f9b
402cbb:	8b 45 fc             	mov    -0x4(%ebp),%eax
402cbe:	2b 45 0c             	sub    0xc(%ebp),%eax
402cc1:	03 d9                	add    %ecx,%ebx
402cc3:	89 5d f4             	mov    %ebx,-0xc(%ebp)
402cc6:	3b fb                	cmp    %ebx,%edi
402cc8:	8b 5d 10             	mov    0x10(%ebp),%ebx
402ccb:	89 45 fc             	mov    %eax,-0x4(%ebp)
402cce:	73 15                	jae    0x402ce5
402cd0:	6a 00                	push   $0x0
402cd2:	ff 75 f4             	push   -0xc(%ebp)
402cd5:	8b ce                	mov    %esi,%ecx
402cd7:	e8 32 e6 ff ff       	call   0x40130e
402cdc:	8b 4d 18             	mov    0x18(%ebp),%ecx
402cdf:	8b 55 08             	mov    0x8(%ebp),%edx
402ce2:	8b 45 fc             	mov    -0x4(%ebp),%eax
402ce5:	6a 10                	push   $0x10
402ce7:	3b f3                	cmp    %ebx,%esi
402ce9:	74 7c                	je     0x402d67
402ceb:	5f                   	pop    %edi
402cec:	39 7e 14             	cmp    %edi,0x14(%esi)
402cef:	72 0a                	jb     0x402cfb
402cf1:	8b 0e                	mov    (%esi),%ecx
402cf3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402cf6:	8b 4d 18             	mov    0x18(%ebp),%ecx
402cf9:	eb 03                	jmp    0x402cfe
402cfb:	89 75 fc             	mov    %esi,-0x4(%ebp)
402cfe:	39 7e 14             	cmp    %edi,0x14(%esi)
402d01:	72 0a                	jb     0x402d0d
402d03:	8b 1e                	mov    (%esi),%ebx
402d05:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402d08:	8b 5d 10             	mov    0x10(%ebp),%ebx
402d0b:	eb 03                	jmp    0x402d10
402d0d:	89 75 f8             	mov    %esi,-0x8(%ebp)
402d10:	85 c0                	test   %eax,%eax
402d12:	74 1a                	je     0x402d2e
402d14:	50                   	push   %eax
402d15:	8b 45 fc             	mov    -0x4(%ebp),%eax
402d18:	03 c2                	add    %edx,%eax
402d1a:	03 45 0c             	add    0xc(%ebp),%eax
402d1d:	50                   	push   %eax
402d1e:	8b 45 f8             	mov    -0x8(%ebp),%eax
402d21:	03 c2                	add    %edx,%eax
402d23:	03 c1                	add    %ecx,%eax
402d25:	50                   	push   %eax
402d26:	e8 25 1a 00 00       	call   0x404750
402d2b:	83 c4 0c             	add    $0xc,%esp
402d2e:	39 7b 14             	cmp    %edi,0x14(%ebx)
402d31:	72 02                	jb     0x402d35
402d33:	8b 1b                	mov    (%ebx),%ebx
402d35:	39 7e 14             	cmp    %edi,0x14(%esi)
402d38:	72 07                	jb     0x402d41
402d3a:	8b 06                	mov    (%esi),%eax
402d3c:	89 45 0c             	mov    %eax,0xc(%ebp)
402d3f:	eb 03                	jmp    0x402d44
402d41:	89 75 0c             	mov    %esi,0xc(%ebp)
402d44:	8b 4d 18             	mov    0x18(%ebp),%ecx
402d47:	85 c9                	test   %ecx,%ecx
402d49:	0f 84 2e 02 00 00    	je     0x402f7d
402d4f:	8b 45 14             	mov    0x14(%ebp),%eax
402d52:	03 c3                	add    %ebx,%eax
402d54:	51                   	push   %ecx
402d55:	50                   	push   %eax
402d56:	8b 45 0c             	mov    0xc(%ebp),%eax
402d59:	03 45 08             	add    0x8(%ebp),%eax
402d5c:	50                   	push   %eax
402d5d:	e8 3e 29 00 00       	call   0x4056a0
402d62:	e9 13 02 00 00       	jmp    0x402f7a
402d67:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402d6a:	3b cb                	cmp    %ebx,%ecx
402d6c:	77 6b                	ja     0x402dd9
402d6e:	5f                   	pop    %edi
402d6f:	39 7e 14             	cmp    %edi,0x14(%esi)
402d72:	72 04                	jb     0x402d78
402d74:	8b 06                	mov    (%esi),%eax
402d76:	eb 02                	jmp    0x402d7a
402d78:	8b c6                	mov    %esi,%eax
402d7a:	39 7e 14             	cmp    %edi,0x14(%esi)
402d7d:	72 04                	jb     0x402d83
402d7f:	8b 1e                	mov    (%esi),%ebx
402d81:	eb 02                	jmp    0x402d85
402d83:	8b de                	mov    %esi,%ebx
402d85:	85 c9                	test   %ecx,%ecx
402d87:	74 14                	je     0x402d9d
402d89:	03 45 14             	add    0x14(%ebp),%eax
402d8c:	51                   	push   %ecx
402d8d:	50                   	push   %eax
402d8e:	8d 04 13             	lea    (%ebx,%edx,1),%eax
402d91:	50                   	push   %eax
402d92:	e8 b9 19 00 00       	call   0x404750
402d97:	8b 4d 18             	mov    0x18(%ebp),%ecx
402d9a:	83 c4 0c             	add    $0xc,%esp
402d9d:	39 7e 14             	cmp    %edi,0x14(%esi)
402da0:	72 07                	jb     0x402da9
402da2:	8b 06                	mov    (%esi),%eax
402da4:	89 45 18             	mov    %eax,0x18(%ebp)
402da7:	eb 03                	jmp    0x402dac
402da9:	89 75 18             	mov    %esi,0x18(%ebp)
402dac:	39 7e 14             	cmp    %edi,0x14(%esi)
402daf:	72 04                	jb     0x402db5
402db1:	8b 1e                	mov    (%esi),%ebx
402db3:	eb 02                	jmp    0x402db7
402db5:	8b de                	mov    %esi,%ebx
402db7:	8b 45 fc             	mov    -0x4(%ebp),%eax
402dba:	85 c0                	test   %eax,%eax
402dbc:	0f 84 bb 01 00 00    	je     0x402f7d
402dc2:	8b 55 08             	mov    0x8(%ebp),%edx
402dc5:	50                   	push   %eax
402dc6:	8b 45 18             	mov    0x18(%ebp),%eax
402dc9:	03 c2                	add    %edx,%eax
402dcb:	03 45 0c             	add    0xc(%ebp),%eax
402dce:	50                   	push   %eax
402dcf:	8d 04 13             	lea    (%ebx,%edx,1),%eax
402dd2:	03 c1                	add    %ecx,%eax
402dd4:	e9 9b 01 00 00       	jmp    0x402f74
402dd9:	8b 7d 14             	mov    0x14(%ebp),%edi
402ddc:	3b fa                	cmp    %edx,%edi
402dde:	77 73                	ja     0x402e53
402de0:	5f                   	pop    %edi
402de1:	39 7e 14             	cmp    %edi,0x14(%esi)
402de4:	72 0a                	jb     0x402df0
402de6:	8b 1e                	mov    (%esi),%ebx
402de8:	89 5d 10             	mov    %ebx,0x10(%ebp)
402deb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402dee:	eb 03                	jmp    0x402df3
402df0:	89 75 10             	mov    %esi,0x10(%ebp)
402df3:	39 7e 14             	cmp    %edi,0x14(%esi)
402df6:	72 0a                	jb     0x402e02
402df8:	8b 0e                	mov    (%esi),%ecx
402dfa:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402dfd:	8b 4d 18             	mov    0x18(%ebp),%ecx
402e00:	eb 03                	jmp    0x402e05
402e02:	89 75 0c             	mov    %esi,0xc(%ebp)
402e05:	85 c0                	test   %eax,%eax
402e07:	74 1f                	je     0x402e28
402e09:	50                   	push   %eax
402e0a:	8b 45 10             	mov    0x10(%ebp),%eax
402e0d:	03 c2                	add    %edx,%eax
402e0f:	03 c3                	add    %ebx,%eax
402e11:	50                   	push   %eax
402e12:	8b 45 0c             	mov    0xc(%ebp),%eax
402e15:	03 c2                	add    %edx,%eax
402e17:	03 c1                	add    %ecx,%eax
402e19:	50                   	push   %eax
402e1a:	e8 31 19 00 00       	call   0x404750
402e1f:	8b 4d 18             	mov    0x18(%ebp),%ecx
402e22:	8b 55 08             	mov    0x8(%ebp),%edx
402e25:	83 c4 0c             	add    $0xc,%esp
402e28:	39 7e 14             	cmp    %edi,0x14(%esi)
402e2b:	72 04                	jb     0x402e31
402e2d:	8b 06                	mov    (%esi),%eax
402e2f:	eb 02                	jmp    0x402e33
402e31:	8b c6                	mov    %esi,%eax
402e33:	39 7e 14             	cmp    %edi,0x14(%esi)
402e36:	72 04                	jb     0x402e3c
402e38:	8b 1e                	mov    (%esi),%ebx
402e3a:	eb 02                	jmp    0x402e3e
402e3c:	8b de                	mov    %esi,%ebx
402e3e:	85 c9                	test   %ecx,%ecx
402e40:	0f 84 37 01 00 00    	je     0x402f7d
402e46:	03 45 14             	add    0x14(%ebp),%eax
402e49:	51                   	push   %ecx
402e4a:	50                   	push   %eax
402e4b:	8d 04 13             	lea    (%ebx,%edx,1),%eax
402e4e:	e9 21 01 00 00       	jmp    0x402f74
402e53:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
402e56:	3b c7                	cmp    %edi,%eax
402e58:	5f                   	pop    %edi
402e59:	77 6c                	ja     0x402ec7
402e5b:	39 7e 14             	cmp    %edi,0x14(%esi)
402e5e:	72 07                	jb     0x402e67
402e60:	8b 06                	mov    (%esi),%eax
402e62:	89 45 10             	mov    %eax,0x10(%ebp)
402e65:	eb 03                	jmp    0x402e6a
402e67:	89 75 10             	mov    %esi,0x10(%ebp)
402e6a:	39 7e 14             	cmp    %edi,0x14(%esi)
402e6d:	72 07                	jb     0x402e76
402e6f:	8b 06                	mov    (%esi),%eax
402e71:	89 45 f8             	mov    %eax,-0x8(%ebp)
402e74:	eb 03                	jmp    0x402e79
402e76:	89 75 f8             	mov    %esi,-0x8(%ebp)
402e79:	8b 45 fc             	mov    -0x4(%ebp),%eax
402e7c:	85 c0                	test   %eax,%eax
402e7e:	74 1f                	je     0x402e9f
402e80:	50                   	push   %eax
402e81:	8b 45 10             	mov    0x10(%ebp),%eax
402e84:	03 c2                	add    %edx,%eax
402e86:	03 c3                	add    %ebx,%eax
402e88:	50                   	push   %eax
402e89:	8b 45 f8             	mov    -0x8(%ebp),%eax
402e8c:	03 c2                	add    %edx,%eax
402e8e:	03 c1                	add    %ecx,%eax
402e90:	50                   	push   %eax
402e91:	e8 ba 18 00 00       	call   0x404750
402e96:	8b 4d 18             	mov    0x18(%ebp),%ecx
402e99:	8b 55 08             	mov    0x8(%ebp),%edx
402e9c:	83 c4 0c             	add    $0xc,%esp
402e9f:	39 7e 14             	cmp    %edi,0x14(%esi)
402ea2:	72 04                	jb     0x402ea8
402ea4:	8b 06                	mov    (%esi),%eax
402ea6:	eb 02                	jmp    0x402eaa
402ea8:	8b c6                	mov    %esi,%eax
402eaa:	39 7e 14             	cmp    %edi,0x14(%esi)
402ead:	72 04                	jb     0x402eb3
402eaf:	8b 1e                	mov    (%esi),%ebx
402eb1:	eb 02                	jmp    0x402eb5
402eb3:	8b de                	mov    %esi,%ebx
402eb5:	85 c9                	test   %ecx,%ecx
402eb7:	0f 84 c0 00 00 00    	je     0x402f7d
402ebd:	2b 45 0c             	sub    0xc(%ebp),%eax
402ec0:	03 45 14             	add    0x14(%ebp),%eax
402ec3:	03 c1                	add    %ecx,%eax
402ec5:	eb 82                	jmp    0x402e49
402ec7:	39 7e 14             	cmp    %edi,0x14(%esi)
402eca:	72 07                	jb     0x402ed3
402ecc:	8b 06                	mov    (%esi),%eax
402ece:	89 45 10             	mov    %eax,0x10(%ebp)
402ed1:	eb 03                	jmp    0x402ed6
402ed3:	89 75 10             	mov    %esi,0x10(%ebp)
402ed6:	39 7e 14             	cmp    %edi,0x14(%esi)
402ed9:	72 07                	jb     0x402ee2
402edb:	8b 06                	mov    (%esi),%eax
402edd:	89 45 f8             	mov    %eax,-0x8(%ebp)
402ee0:	eb 03                	jmp    0x402ee5
402ee2:	89 75 f8             	mov    %esi,-0x8(%ebp)
402ee5:	85 db                	test   %ebx,%ebx
402ee7:	74 1c                	je     0x402f05
402ee9:	8b 45 10             	mov    0x10(%ebp),%eax
402eec:	03 45 14             	add    0x14(%ebp),%eax
402eef:	53                   	push   %ebx
402ef0:	50                   	push   %eax
402ef1:	8b 45 f8             	mov    -0x8(%ebp),%eax
402ef4:	03 c2                	add    %edx,%eax
402ef6:	50                   	push   %eax
402ef7:	e8 54 18 00 00       	call   0x404750