408beb:	8b f9                	mov    %ecx,%edi
408bed:	33 c9                	xor    %ecx,%ecx
408bef:	66 89 4d e8          	mov    %cx,-0x18(%ebp)
408bf3:	66 8b 47 06          	mov    0x6(%edi),%ax
408bf7:	8b 4f 0c             	mov    0xc(%edi),%ecx
408bfa:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
408bfe:	8a 47 08             	mov    0x8(%edi),%al
408c01:	88 45 e2             	mov    %al,-0x1e(%ebp)
408c04:	33 c0                	xor    %eax,%eax
408c06:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408c09:	89 45 ec             	mov    %eax,-0x14(%ebp)
408c0c:	89 45 f0             	mov    %eax,-0x10(%ebp)
408c0f:	85 c9                	test   %ecx,%ecx
408c11:	74 64                	je     0x408c77
408c13:	8b 47 14             	mov    0x14(%edi),%eax
408c16:	33 d2                	xor    %edx,%edx
408c18:	2b 47 10             	sub    0x10(%edi),%eax
408c1b:	f7 f1                	div    %ecx
408c1d:	8b 56 04             	mov    0x4(%esi),%edx
408c20:	3b d0                	cmp    %eax,%edx
408c22:	76 0e                	jbe    0x408c32
408c24:	50                   	push   %eax
408c25:	8b ce                	mov    %esi,%ecx
408c27:	e8 a3 f9 ff ff       	call   0x4085cf
408c2c:	8b 56 04             	mov    0x4(%esi),%edx
408c2f:	8b 4f 0c             	mov    0xc(%edi),%ecx
408c32:	ff 75 14             	push   0x14(%ebp)
408c35:	8b f2                	mov    %edx,%esi
408c37:	ff 75 10             	push   0x10(%ebp)
408c3a:	0f af f1             	imul   %ecx,%esi
408c3d:	8b cf                	mov    %edi,%ecx
408c3f:	52                   	push   %edx
408c40:	ff 75 0c             	push   0xc(%ebp)
408c43:	03 75 0c             	add    0xc(%ebp),%esi
408c46:	e8 09 ff ff ff       	call   0x408b54
408c4b:	8b d8                	mov    %eax,%ebx
408c4d:	3b de                	cmp    %esi,%ebx
408c4f:	0f 83 ac 00 00 00    	jae    0x408d01
408c55:	ff 77 14             	push   0x14(%edi)
408c58:	8d 45 f4             	lea    -0xc(%ebp),%eax
408c5b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408c5e:	50                   	push   %eax
408c5f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c62:	e8 95 fa ff ff       	call   0x4086fc
408c67:	ff 75 14             	push   0x14(%ebp)
408c6a:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c6d:	ff 75 10             	push   0x10(%ebp)
408c70:	e8 33 f9 ff ff       	call   0x4085a8
408c75:	eb 55                	jmp    0x408ccc
408c77:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408c7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
408c7d:	39 46 04             	cmp    %eax,0x4(%esi)
408c80:	76 7f                	jbe    0x408d01
408c82:	ff 77 14             	push   0x14(%edi)
408c85:	8d 45 f4             	lea    -0xc(%ebp),%eax
408c88:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408c8b:	50                   	push   %eax
408c8c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c8f:	e8 68 fa ff ff       	call   0x4086fc
408c94:	84 c0                	test   %al,%al
408c96:	74 26                	je     0x408cbe
408c98:	ff 75 14             	push   0x14(%ebp)
408c9b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c9e:	ff 75 10             	push   0x10(%ebp)
408ca1:	e8 02 f9 ff ff       	call   0x4085a8
408ca6:	89 45 f8             	mov    %eax,-0x8(%ebp)
408ca9:	85 c0                	test   %eax,%eax
408cab:	7e 21                	jle    0x408cce
408cad:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cb0:	8b 5d f4             	mov    -0xc(%ebp),%ebx
408cb3:	40                   	inc    %eax
408cb4:	89 45 fc             	mov    %eax,-0x4(%ebp)
408cb7:	3b 46 04             	cmp    0x4(%esi),%eax
408cba:	72 c6                	jb     0x408c82
408cbc:	eb 0b                	jmp    0x408cc9
408cbe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408cc1:	51                   	push   %ecx
408cc2:	8b ce                	mov    %esi,%ecx
408cc4:	e8 06 f9 ff ff       	call   0x4085cf
408cc9:	8b 45 f8             	mov    -0x8(%ebp),%eax
408ccc:	85 c0                	test   %eax,%eax
408cce:	75 31                	jne    0x408d01
408cd0:	8a 45 e2             	mov    -0x1e(%ebp),%al
408cd3:	84 c0                	test   %al,%al
408cd5:	0f 95 c3             	setne  %bl
408cd8:	84 c0                	test   %al,%al
408cda:	74 0f                	je     0x408ceb
408cdc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408cdf:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408ce2:	03 45 18             	add    0x18(%ebp),%eax
408ce5:	50                   	push   %eax
408ce6:	e8 e4 f8 ff ff       	call   0x4085cf
408ceb:	84 db                	test   %bl,%bl
408ced:	75 09                	jne    0x408cf8
408cef:	38 5f 20             	cmp    %bl,0x20(%edi)
408cf2:	75 04                	jne    0x408cf8
408cf4:	33 c0                	xor    %eax,%eax
408cf6:	eb 02                	jmp    0x408cfa
408cf8:	b0 01                	mov    $0x1,%al
408cfa:	88 47 20             	mov    %al,0x20(%edi)
408cfd:	33 c0                	xor    %eax,%eax
408cff:	eb 02                	jmp    0x408d03
408d01:	8b c3                	mov    %ebx,%eax
408d03:	5f                   	pop    %edi
408d04:	5e                   	pop    %esi
408d05:	5b                   	pop    %ebx
408d06:	c9                   	leave
408d07:	c2 14 00             	ret    $0x14
408d0a:	8b ff                	mov    %edi,%edi
408d0c:	55                   	push   %ebp
408d0d:	8b ec                	mov    %esp,%ebp
408d0f:	83 ec 14             	sub    $0x14,%esp
408d12:	53                   	push   %ebx
408d13:	8b d9                	mov    %ecx,%ebx
408d15:	56                   	push   %esi
408d16:	57                   	push   %edi
408d17:	8b 7d 08             	mov    0x8(%ebp),%edi
408d1a:	8b 73 0c             	mov    0xc(%ebx),%esi
408d1d:	85 f6                	test   %esi,%esi
408d1f:	74 29                	je     0x408d4a
408d21:	8b 43 14             	mov    0x14(%ebx),%eax
408d24:	33 d2                	xor    %edx,%edx
408d26:	2b 43 10             	sub    0x10(%ebx),%eax
408d29:	f7 f6                	div    %esi
408d2b:	8b 4f 04             	mov    0x4(%edi),%ecx
408d2e:	3b c8                	cmp    %eax,%ecx
408d30:	76 0e                	jbe    0x408d40
408d32:	50                   	push   %eax
408d33:	8b cf                	mov    %edi,%ecx
408d35:	e8 95 f8 ff ff       	call   0x4085cf
408d3a:	8b 4f 04             	mov    0x4(%edi),%ecx
408d3d:	8b 73 0c             	mov    0xc(%ebx),%esi
408d40:	8b 45 0c             	mov    0xc(%ebp),%eax
408d43:	0f af f1             	imul   %ecx,%esi
408d46:	03 c6                	add    %esi,%eax
408d48:	eb 48                	jmp    0x408d92
408d4a:	66 8b 43 06          	mov    0x6(%ebx),%ax
408d4e:	33 f6                	xor    %esi,%esi
408d50:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
408d54:	8a 43 08             	mov    0x8(%ebx),%al
408d57:	88 45 ee             	mov    %al,-0x12(%ebp)
408d5a:	33 c0                	xor    %eax,%eax
408d5c:	89 75 f0             	mov    %esi,-0x10(%ebp)
408d5f:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
408d63:	89 75 f8             	mov    %esi,-0x8(%ebp)
408d66:	89 75 fc             	mov    %esi,-0x4(%ebp)
408d69:	39 77 04             	cmp    %esi,0x4(%edi)
408d6c:	76 19                	jbe    0x408d87
408d6e:	ff 73 14             	push   0x14(%ebx)
408d71:	8d 45 0c             	lea    0xc(%ebp),%eax
408d74:	50                   	push   %eax
408d75:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408d78:	e8 7f f9 ff ff       	call   0x4086fc
408d7d:	84 c0                	test   %al,%al
408d7f:	74 06                	je     0x408d87
408d81:	46                   	inc    %esi
408d82:	3b 77 04             	cmp    0x4(%edi),%esi
408d85:	72 e7                	jb     0x408d6e
408d87:	56                   	push   %esi
408d88:	8b cf                	mov    %edi,%ecx
408d8a:	e8 40 f8 ff ff       	call   0x4085cf
408d8f:	8b 45 0c             	mov    0xc(%ebp),%eax
408d92:	5f                   	pop    %edi
408d93:	5e                   	pop    %esi
408d94:	5b                   	pop    %ebx
408d95:	c9                   	leave
408d96:	c2 08 00             	ret    $0x8
408d99:	8b ff                	mov    %edi,%edi
408d9b:	55                   	push   %ebp
408d9c:	8b ec                	mov    %esp,%ebp
408d9e:	83 ec 34             	sub    $0x34,%esp
408da1:	53                   	push   %ebx
408da2:	56                   	push   %esi
408da3:	57                   	push   %edi
408da4:	8b f9                	mov    %ecx,%edi
408da6:	8b 77 10             	mov    0x10(%edi),%esi
408da9:	85 f6                	test   %esi,%esi
408dab:	0f 84 ac 01 00 00    	je     0x408f5d
408db1:	66 8b 47 02          	mov    0x2(%edi),%ax
408db5:	33 c9                	xor    %ecx,%ecx
408db7:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
408dbb:	83 c6 0a             	add    $0xa,%esi
408dbe:	8a 47 04             	mov    0x4(%edi),%al
408dc1:	8a f9                	mov    %cl,%bh
408dc3:	88 45 e2             	mov    %al,-0x1e(%ebp)
408dc6:	33 c0                	xor    %eax,%eax
408dc8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408dcb:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
408dcf:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408dd2:	89 4d f0             	mov    %ecx,-0x10(%ebp)
408dd5:	88 7d ff             	mov    %bh,-0x1(%ebp)
408dd8:	eb 2c                	jmp    0x408e06
408dda:	ff 75 0c             	push   0xc(%ebp)
408ddd:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408de0:	ff 75 08             	push   0x8(%ebp)
408de3:	e8 c0 f7 ff ff       	call   0x4085a8
408de8:	85 c0                	test   %eax,%eax
408dea:	0f 88 f3 00 00 00    	js     0x408ee3
408df0:	8d 45 e0             	lea    -0x20(%ebp),%eax
408df3:	8b cf                	mov    %edi,%ecx
408df5:	0f 84 bf 00 00 00    	je     0x408eba
408dfb:	ff 75 f8             	push   -0x8(%ebp)
408dfe:	50                   	push   %eax
408dff:	e8 06 ff ff ff       	call   0x408d0a
408e04:	8b f0                	mov    %eax,%esi
408e06:	ff 77 14             	push   0x14(%edi)
408e09:	8d 45 f8             	lea    -0x8(%ebp),%eax
408e0c:	89 75 f8             	mov    %esi,-0x8(%ebp)
408e0f:	50                   	push   %eax
408e10:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408e13:	e8 e4 f8 ff ff       	call   0x4086fc
408e18:	8a d8                	mov    %al,%bl
408e1a:	84 db                	test   %bl,%bl
408e1c:	75 bc                	jne    0x408dda
408e1e:	8b 75 f8             	mov    -0x8(%ebp),%esi
408e21:	89 77 14             	mov    %esi,0x14(%edi)
408e24:	33 d2                	xor    %edx,%edx
408e26:	84 ff                	test   %bh,%bh
408e28:	75 21                	jne    0x408e4b
408e2a:	8b 45 0c             	mov    0xc(%ebp),%eax
408e2d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408e30:	21 55 ec             	and    %edx,-0x14(%ebp)
408e33:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
408e37:	8b 45 08             	mov    0x8(%ebp),%eax
408e3a:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
408e41:	89 45 f0             	mov    %eax,-0x10(%ebp)
408e44:	e8 c6 f7 ff ff       	call   0x40860f
408e49:	8b d0                	mov    %eax,%edx
408e4b:	66 8b 47 06          	mov    0x6(%edi),%ax
408e4f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408e52:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
408e56:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
408e5a:	8a 47 08             	mov    0x8(%edi),%al
408e5d:	88 45 ce             	mov    %al,-0x32(%ebp)
408e60:	8b 45 18             	mov    0x18(%ebp),%eax
408e63:	89 45 d0             	mov    %eax,-0x30(%ebp)
408e66:	8b 45 14             	mov    0x14(%ebp),%eax
408e69:	66 89 45 d4          	mov    %ax,-0x2c(%ebp)
408e6d:	8b 45 10             	mov    0x10(%ebp),%eax
408e70:	89 45 dc             	mov    %eax,-0x24(%ebp)
408e73:	e8 97 f7 ff ff       	call   0x40860f
408e78:	8b 5f 18             	mov    0x18(%edi),%ebx
408e7b:	03 c2                	add    %edx,%eax
408e7d:	89 45 f4             	mov    %eax,-0xc(%ebp)
408e80:	8b d3                	mov    %ebx,%edx
408e82:	8b 47 14             	mov    0x14(%edi),%eax
408e85:	2b d0                	sub    %eax,%edx
408e87:	3b c3                	cmp    %ebx,%eax
408e89:	1b c9                	sbb    %ecx,%ecx
408e8b:	23 ca                	and    %edx,%ecx
408e8d:	8b 55 f4             	mov    -0xc(%ebp),%edx
408e90:	3b ca                	cmp    %edx,%ecx
408e92:	0f 82 c5 00 00 00    	jb     0x408f5d
408e98:	2b da                	sub    %edx,%ebx
408e9a:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
408e9d:	2b de                	sub    %esi,%ebx
408e9f:	2b c6                	sub    %esi,%eax
408ea1:	74 71                	je     0x408f14
408ea3:	85 c9                	test   %ecx,%ecx
408ea5:	75 4c                	jne    0x408ef3
408ea7:	ff 15 c0 63 42 00    	call   *0x4263c0
408ead:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
408eb3:	e8 36 99 01 00       	call   0x4227ee
408eb8:	eb 5a                	jmp    0x408f14
408eba:	ff 75 18             	push   0x18(%ebp)
408ebd:	ff 75 14             	push   0x14(%ebp)
408ec0:	ff 75 10             	push   0x10(%ebp)
408ec3:	ff 75 f8             	push   -0x8(%ebp)
408ec6:	50                   	push   %eax
408ec7:	e8 0d fd ff ff       	call   0x408bd9
408ecc:	8b f0                	mov    %eax,%esi
408ece:	89 75 f8             	mov    %esi,-0x8(%ebp)
408ed1:	85 f6                	test   %esi,%esi
408ed3:	75 07                	jne    0x408edc
408ed5:	b0 01                	mov    $0x1,%al
408ed7:	e9 83 00 00 00       	jmp    0x408f5f
408edc:	b7 01                	mov    $0x1,%bh
408ede:	88 7d ff             	mov    %bh,-0x1(%ebp)
408ee1:	eb 03                	jmp    0x408ee6
408ee3:	89 75 f8             	mov    %esi,-0x8(%ebp)
408ee6:	84 db                	test   %bl,%bl
408ee8:	0f 85 36 ff ff ff    	jne    0x408e24
408eee:	e9 2e ff ff ff       	jmp    0x408e21
408ef3:	85 f6                	test   %esi,%esi
408ef5:	74 b0                	je     0x408ea7
408ef7:	3b d8                	cmp    %eax,%ebx
408ef9:	73 0e                	jae    0x408f09
408efb:	ff 15 c0 63 42 00    	call   *0x4263c0
408f01:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
408f07:	eb aa                	jmp    0x408eb3
408f09:	50                   	push   %eax
408f0a:	56                   	push   %esi
408f0b:	51                   	push   %ecx
408f0c:	e8 78 9c 01 00       	call   0x422b89
408f11:	83 c4 0c             	add    $0xc,%esp
408f14:	8b 47 14             	mov    0x14(%edi),%eax
408f17:	03 45 f4             	add    -0xc(%ebp),%eax
408f1a:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
408f1e:	89 47 14             	mov    %eax,0x14(%edi)
408f21:	75 0f                	jne    0x408f32
408f23:	50                   	push   %eax
408f24:	8d 45 f8             	lea    -0x8(%ebp),%eax
408f27:	50                   	push   %eax
408f28:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408f2b:	e8 03 f7 ff ff       	call   0x408633
408f30:	eb 13                	jmp    0x408f45
408f32:	80 7d e2 00          	cmpb   $0x0,-0x1e(%ebp)
408f36:	74 0d                	je     0x408f45
408f38:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408f3b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408f3e:	40                   	inc    %eax
408f3f:	50                   	push   %eax
408f40:	e8 8a f6 ff ff       	call   0x4085cf
408f45:	ff 77 14             	push   0x14(%edi)
408f48:	8d 4d f8             	lea    -0x8(%ebp),%ecx
408f4b:	51                   	push   %ecx
408f4c:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408f4f:	e8 df f6 ff ff       	call   0x408633
408f54:	c6 47 20 01          	movb   $0x1,0x20(%edi)
408f58:	e9 78 ff ff ff       	jmp    0x408ed5
408f5d:	32 c0                	xor    %al,%al
408f5f:	5f                   	pop    %edi
408f60:	5e                   	pop    %esi
408f61:	5b                   	pop    %ebx
408f62:	c9                   	leave
408f63:	c2 14 00             	ret    $0x14
408f66:	8b ff                	mov    %edi,%edi
408f68:	55                   	push   %ebp
408f69:	8b ec                	mov    %esp,%ebp
408f6b:	b8 60 10 00 00       	mov    $0x1060,%eax
408f70:	e8 db 9b 01 00       	call   0x422b50
408f75:	a1 10 42 42 00       	mov    0x424210,%eax
408f7a:	33 c5                	xor    %ebp,%eax
408f7c:	89 45 f8             	mov    %eax,-0x8(%ebp)
408f7f:	83 a5 e8 ef ff ff 00 	andl   $0x0,-0x1018(%ebp)
408f86:	83 a5 dc ef ff ff 00 	andl   $0x0,-0x1024(%ebp)
408f8d:	53                   	push   %ebx
408f8e:	8b d9                	mov    %ecx,%ebx
408f90:	8b 4d 08             	mov    0x8(%ebp),%ecx
408f93:	56                   	push   %esi
408f94:	57                   	push   %edi
408f95:	89 8d d8 ef ff ff    	mov    %ecx,-0x1028(%ebp)
408f9b:	8d 04 d3             	lea    (%ebx,%edx,8),%eax
408f9e:	89 85 d4 ef ff ff    	mov    %eax,-0x102c(%ebp)
408fa4:	0f b6 41 08          	movzbl 0x8(%ecx),%eax
408fa8:	50                   	push   %eax
408fa9:	0f b7 41 06          	movzwl 0x6(%ecx),%eax
408fad:	50                   	push   %eax
408fae:	0f b6 41 04          	movzbl 0x4(%ecx),%eax
408fb2:	50                   	push   %eax