406b9c:	8d 45 f8             	lea    -0x8(%ebp),%eax
406b9f:	50                   	push   %eax
406ba0:	8d 4f 08             	lea    0x8(%edi),%ecx
406ba3:	e8 d9 f3 ff ff       	call   0x405f81
406ba8:	8b c8                	mov    %eax,%ecx
406baa:	e8 36 f3 ff ff       	call   0x405ee5
406baf:	8b c8                	mov    %eax,%ecx
406bb1:	e8 25 f9 ff ff       	call   0x4064db
406bb6:	50                   	push   %eax
406bb7:	6a 1c                	push   $0x1c
406bb9:	6a 57                	push   $0x57
406bbb:	e8 55 0a 00 00       	call   0x407615
406bc0:	cc                   	int3
406bc1:	8b ff                	mov    %edi,%edi
406bc3:	55                   	push   %ebp
406bc4:	8b ec                	mov    %esp,%ebp
406bc6:	8b 41 14             	mov    0x14(%ecx),%eax
406bc9:	2b 41 10             	sub    0x10(%ecx),%eax
406bcc:	6a 18                	push   $0x18
406bce:	99                   	cltd
406bcf:	59                   	pop    %ecx
406bd0:	f7 f9                	idiv   %ecx
406bd2:	3b 45 08             	cmp    0x8(%ebp),%eax
406bd5:	7c 0d                	jl     0x406be4
406bd7:	3b 45 0c             	cmp    0xc(%ebp),%eax
406bda:	7e 04                	jle    0x406be0
406bdc:	6a 1d                	push   $0x1d
406bde:	eb 06                	jmp    0x406be6
406be0:	5d                   	pop    %ebp
406be1:	c2 08 00             	ret    $0x8
406be4:	6a 1e                	push   $0x1e
406be6:	5a                   	pop    %edx
406be7:	6a 57                	push   $0x57
406be9:	59                   	pop    %ecx
406bea:	e8 f4 09 00 00       	call   0x4075e3
406bef:	cc                   	int3
406bf0:	6a 5c                	push   $0x5c
406bf2:	b8 d5 ed 40 00       	mov    $0x40edd5,%eax
406bf7:	e8 85 7a 00 00       	call   0x40e681
406bfc:	8b d9                	mov    %ecx,%ebx
406bfe:	8b 7d 08             	mov    0x8(%ebp),%edi
406c01:	8d 45 98             	lea    -0x68(%ebp),%eax
406c04:	57                   	push   %edi
406c05:	50                   	push   %eax
406c06:	89 7d 9c             	mov    %edi,-0x64(%ebp)
406c09:	e8 28 f3 ff ff       	call   0x405f36
406c0e:	8b 75 98             	mov    -0x68(%ebp),%esi
406c11:	3b 33                	cmp    (%ebx),%esi
406c13:	74 12                	je     0x406c27
406c15:	8d 46 10             	lea    0x10(%esi),%eax
406c18:	50                   	push   %eax
406c19:	57                   	push   %edi
406c1a:	e8 3c e7 ff ff       	call   0x40535b
406c1f:	84 c0                	test   %al,%al
406c21:	0f 84 89 00 00 00    	je     0x406cb0
406c27:	6a 07                	push   $0x7
406c29:	5a                   	pop    %edx
406c2a:	33 c0                	xor    %eax,%eax
406c2c:	8d 7d d4             	lea    -0x2c(%ebp),%edi
406c2f:	8b ca                	mov    %edx,%ecx
406c31:	f3 ab                	rep stos %eax,%es:(%edi)
406c33:	33 ff                	xor    %edi,%edi
406c35:	89 55 ec             	mov    %edx,-0x14(%ebp)
406c38:	89 7d e8             	mov    %edi,-0x18(%ebp)
406c3b:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
406c3f:	6a ff                	push   $0xffffffff
406c41:	89 7d fc             	mov    %edi,-0x4(%ebp)
406c44:	8d 4d a0             	lea    -0x60(%ebp),%ecx
406c47:	57                   	push   %edi
406c48:	ff 75 9c             	push   -0x64(%ebp)
406c4b:	89 55 b4             	mov    %edx,-0x4c(%ebp)
406c4e:	89 7d b0             	mov    %edi,-0x50(%ebp)
406c51:	66 89 45 a0          	mov    %ax,-0x60(%ebp)
406c55:	e8 bc f5 ff ff       	call   0x406216
406c5a:	8a 45 d4             	mov    -0x2c(%ebp),%al
406c5d:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406c60:	88 45 b8             	mov    %al,-0x48(%ebp)
406c63:	8d 45 d8             	lea    -0x28(%ebp),%eax
406c66:	50                   	push   %eax
406c67:	e8 11 06 00 00       	call   0x40727d
406c6c:	8d 45 a0             	lea    -0x60(%ebp),%eax
406c6f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
406c73:	50                   	push   %eax
406c74:	8b cb                	mov    %ebx,%ecx
406c76:	e8 9d 01 00 00       	call   0x406e18
406c7b:	50                   	push   %eax
406c7c:	83 c0 10             	add    $0x10,%eax
406c7f:	8b cb                	mov    %ebx,%ecx
406c81:	50                   	push   %eax
406c82:	56                   	push   %esi
406c83:	8d 45 9c             	lea    -0x64(%ebp),%eax
406c86:	50                   	push   %eax
406c87:	e8 c8 01 00 00       	call   0x406e54
406c8c:	8b 75 9c             	mov    -0x64(%ebp),%esi
406c8f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406c92:	57                   	push   %edi
406c93:	6a 01                	push   $0x1
406c95:	e8 56 f8 ff ff       	call   0x4064f0
406c9a:	57                   	push   %edi
406c9b:	6a 01                	push   $0x1
406c9d:	8d 4d a0             	lea    -0x60(%ebp),%ecx
406ca0:	e8 4b f8 ff ff       	call   0x4064f0
406ca5:	57                   	push   %edi
406ca6:	6a 01                	push   $0x1
406ca8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406cab:	e8 40 f8 ff ff       	call   0x4064f0
406cb0:	8d 46 28             	lea    0x28(%esi),%eax
406cb3:	e8 78 79 00 00       	call   0x40e630
406cb8:	c2 04 00             	ret    $0x4
406cbb:	8b ff                	mov    %edi,%edi
406cbd:	56                   	push   %esi
406cbe:	8b f1                	mov    %ecx,%esi
406cc0:	6a 00                	push   $0x0
406cc2:	6a 01                	push   $0x1
406cc4:	8d 4e 1c             	lea    0x1c(%esi),%ecx
406cc7:	e8 24 f8 ff ff       	call   0x4064f0
406ccc:	6a 00                	push   $0x0
406cce:	6a 01                	push   $0x1
406cd0:	8b ce                	mov    %esi,%ecx
406cd2:	e8 19 f8 ff ff       	call   0x4064f0
406cd7:	5e                   	pop    %esi
406cd8:	c3                   	ret
406cd9:	8b ff                	mov    %edi,%edi
406cdb:	55                   	push   %ebp
406cdc:	8b ec                	mov    %esp,%ebp
406cde:	51                   	push   %ecx
406cdf:	53                   	push   %ebx
406ce0:	56                   	push   %esi
406ce1:	8b f1                	mov    %ecx,%esi
406ce3:	57                   	push   %edi
406ce4:	6a 18                	push   $0x18
406ce6:	5b                   	pop    %ebx
406ce7:	8b 7e 08             	mov    0x8(%esi),%edi
406cea:	8b c7                	mov    %edi,%eax
406cec:	8b 4e 04             	mov    0x4(%esi),%ecx
406cef:	2b c1                	sub    %ecx,%eax
406cf1:	99                   	cltd
406cf2:	f7 fb                	idiv   %ebx
406cf4:	83 f8 01             	cmp    $0x1,%eax
406cf7:	73 44                	jae    0x406d3d
406cf9:	2b 0e                	sub    (%esi),%ecx
406cfb:	8b c1                	mov    %ecx,%eax
406cfd:	99                   	cltd
406cfe:	f7 fb                	idiv   %ebx
406d00:	bb aa aa aa 0a       	mov    $0xaaaaaaa,%ebx
406d05:	8b cb                	mov    %ebx,%ecx
406d07:	89 45 fc             	mov    %eax,-0x4(%ebp)
406d0a:	2b c8                	sub    %eax,%ecx
406d0c:	83 f9 01             	cmp    $0x1,%ecx
406d0f:	72 33                	jb     0x406d44
406d11:	2b 3e                	sub    (%esi),%edi
406d13:	8b c7                	mov    %edi,%eax
406d15:	99                   	cltd
406d16:	6a 18                	push   $0x18
406d18:	59                   	pop    %ecx
406d19:	f7 f9                	idiv   %ecx
406d1b:	8b c8                	mov    %eax,%ecx
406d1d:	d1 e9                	shr    $1,%ecx
406d1f:	2b d9                	sub    %ecx,%ebx
406d21:	03 c8                	add    %eax,%ecx
406d23:	3b d8                	cmp    %eax,%ebx
406d25:	1b c0                	sbb    %eax,%eax
406d27:	f7 d0                	not    %eax
406d29:	23 c1                	and    %ecx,%eax
406d2b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406d2e:	41                   	inc    %ecx
406d2f:	3b c1                	cmp    %ecx,%eax
406d31:	73 02                	jae    0x406d35
406d33:	8b c1                	mov    %ecx,%eax
406d35:	50                   	push   %eax
406d36:	8b ce                	mov    %esi,%ecx
406d38:	e8 18 00 00 00       	call   0x406d55
406d3d:	5f                   	pop    %edi
406d3e:	5e                   	pop    %esi
406d3f:	5b                   	pop    %ebx
406d40:	c9                   	leave
406d41:	c2 04 00             	ret    $0x4
406d44:	e8 01 00 00 00       	call   0x406d4a
406d49:	cc                   	int3
406d4a:	68 98 24 40 00       	push   $0x402498
406d4f:	e8 dc 72 00 00       	call   0x40e030
406d54:	cc                   	int3
406d55:	6a 10                	push   $0x10
406d57:	b8 fa ed 40 00       	mov    $0x40edfa,%eax
406d5c:	e8 56 79 00 00       	call   0x40e6b7
406d61:	8b f9                	mov    %ecx,%edi
406d63:	8b 45 08             	mov    0x8(%ebp),%eax
406d66:	33 f6                	xor    %esi,%esi
406d68:	89 75 ec             	mov    %esi,-0x14(%ebp)
406d6b:	85 c0                	test   %eax,%eax
406d6d:	74 22                	je     0x406d91
406d6f:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
406d74:	0f 87 98 00 00 00    	ja     0x406e12
406d7a:	6b c0 18             	imul   $0x18,%eax,%eax
406d7d:	50                   	push   %eax
406d7e:	e8 45 71 00 00       	call   0x40dec8
406d83:	8b f0                	mov    %eax,%esi
406d85:	89 75 ec             	mov    %esi,-0x14(%ebp)
406d88:	59                   	pop    %ecx
406d89:	85 f6                	test   %esi,%esi
406d8b:	0f 84 81 00 00 00    	je     0x406e12
406d91:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406d95:	ff 75 e4             	push   -0x1c(%ebp)
406d98:	8b 57 04             	mov    0x4(%edi),%edx
406d9b:	51                   	push   %ecx
406d9c:	51                   	push   %ecx
406d9d:	8b 0f                	mov    (%edi),%ecx
406d9f:	56                   	push   %esi
406da0:	e8 ac 04 00 00       	call   0x407251
406da5:	8b 4f 04             	mov    0x4(%edi),%ecx
406da8:	8b c1                	mov    %ecx,%eax
406daa:	8b 1f                	mov    (%edi),%ebx
406dac:	2b c3                	sub    %ebx,%eax
406dae:	99                   	cltd
406daf:	c7 45 ec 18 00 00 00 	movl   $0x18,-0x14(%ebp)
406db6:	f7 7d ec             	idivl  -0x14(%ebp)
406db9:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406dbc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406dbf:	85 db                	test   %ebx,%ebx
406dc1:	74 21                	je     0x406de4
406dc3:	3b d9                	cmp    %ecx,%ebx
406dc5:	74 15                	je     0x406ddc
406dc7:	6a 00                	push   $0x0
406dc9:	6a 01                	push   $0x1
406dcb:	8b cb                	mov    %ebx,%ecx
406dcd:	e8 1e f7 ff ff       	call   0x4064f0
406dd2:	03 5d ec             	add    -0x14(%ebp),%ebx
406dd5:	3b 5d e8             	cmp    -0x18(%ebp),%ebx
406dd8:	75 ed                	jne    0x406dc7
406dda:	8b 1f                	mov    (%edi),%ebx
406ddc:	53                   	push   %ebx
406ddd:	ff 15 e4 21 41 00    	call   *0x4121e4
406de3:	59                   	pop    %ecx
406de4:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
406de8:	89 37                	mov    %esi,(%edi)
406dea:	03 c6                	add    %esi,%eax
406dec:	89 47 08             	mov    %eax,0x8(%edi)
406def:	6b 45 e4 18          	imul   $0x18,-0x1c(%ebp),%eax
406df3:	03 c6                	add    %esi,%eax
406df5:	89 47 04             	mov    %eax,0x4(%edi)
406df8:	e8 1f 78 00 00       	call   0x40e61c
406dfd:	c2 04 00             	ret    $0x4
406e00:	51                   	push   %ecx
406e01:	ff 75 ec             	push   -0x14(%ebp)
406e04:	e8 65 f1 ff ff       	call   0x405f6e
406e09:	6a 00                	push   $0x0
406e0b:	6a 00                	push   $0x0
406e0d:	e8 04 78 00 00       	call   0x40e616
406e12:	e8 fa 71 00 00       	call   0x40e011
406e17:	cc                   	int3
406e18:	8b ff                	mov    %edi,%edi
406e1a:	55                   	push   %ebp
406e1b:	8b ec                	mov    %esp,%ebp
406e1d:	53                   	push   %ebx
406e1e:	56                   	push   %esi
406e1f:	57                   	push   %edi
406e20:	e8 f1 01 00 00       	call   0x407016
406e25:	8b 75 08             	mov    0x8(%ebp),%esi
406e28:	8b d8                	mov    %eax,%ebx
406e2a:	56                   	push   %esi
406e2b:	8d 4b 10             	lea    0x10(%ebx),%ecx
406e2e:	66 c7 43 0c 00 00    	movw   $0x0,0xc(%ebx)
406e34:	e8 44 04 00 00       	call   0x40727d
406e39:	8a 46 18             	mov    0x18(%esi),%al
406e3c:	8d 4b 2c             	lea    0x2c(%ebx),%ecx
406e3f:	88 43 28             	mov    %al,0x28(%ebx)
406e42:	8d 46 1c             	lea    0x1c(%esi),%eax
406e45:	50                   	push   %eax
406e46:	e8 32 04 00 00       	call   0x40727d
406e4b:	5f                   	pop    %edi
406e4c:	5e                   	pop    %esi
406e4d:	8b c3                	mov    %ebx,%eax
406e4f:	5b                   	pop    %ebx
406e50:	5d                   	pop    %ebp
406e51:	c2 04 00             	ret    $0x4
406e54:	6a 10                	push   $0x10
406e56:	b8 15 ee 40 00       	mov    $0x40ee15,%eax
406e5b:	e8 57 78 00 00       	call   0x40e6b7
406e60:	8b d9                	mov    %ecx,%ebx
406e62:	33 f6                	xor    %esi,%esi
406e64:	89 75 fc             	mov    %esi,-0x4(%ebp)
406e67:	8b 0b                	mov    (%ebx),%ecx
406e69:	89 75 ec             	mov    %esi,-0x14(%ebp)
406e6c:	39 73 04             	cmp    %esi,0x4(%ebx)
406e6f:	75 0a                	jne    0x406e7b
406e71:	ff 75 14             	push   0x14(%ebp)
406e74:	51                   	push   %ecx
406e75:	51                   	push   %ecx
406e76:	e9 ec 00 00 00       	jmp    0x406f67
406e7b:	8b 45 0c             	mov    0xc(%ebp),%eax
406e7e:	3b 01                	cmp    (%ecx),%eax
406e80:	75 20                	jne    0x406ea2
406e82:	83 c0 10             	add    $0x10,%eax
406e85:	50                   	push   %eax
406e86:	ff 75 10             	push   0x10(%ebp)
406e89:	e8 cd e4 ff ff       	call   0x40535b
406e8e:	84 c0                	test   %al,%al
406e90:	0f 84 e2 00 00 00    	je     0x406f78
406e96:	ff 75 14             	push   0x14(%ebp)
406e99:	51                   	push   %ecx
406e9a:	ff 75 0c             	push   0xc(%ebp)
406e9d:	e9 c5 00 00 00       	jmp    0x406f67
406ea2:	3b c1                	cmp    %ecx,%eax
406ea4:	75 26                	jne    0x406ecc
406ea6:	8b 41 08             	mov    0x8(%ecx),%eax
406ea9:	ff 75 10             	push   0x10(%ebp)
406eac:	83 c0 10             	add    $0x10,%eax
406eaf:	50                   	push   %eax
406eb0:	e8 a6 e4 ff ff       	call   0x40535b
406eb5:	84 c0                	test   %al,%al
406eb7:	0f 84 bb 00 00 00    	je     0x406f78
406ebd:	ff 75 14             	push   0x14(%ebp)
406ec0:	8b 03                	mov    (%ebx),%eax
406ec2:	51                   	push   %ecx
406ec3:	ff 70 08             	push   0x8(%eax)
406ec6:	56                   	push   %esi
406ec7:	e9 9d 00 00 00       	jmp    0x406f69
406ecc:	8b 7d 10             	mov    0x10(%ebp),%edi
406ecf:	83 c0 10             	add    $0x10,%eax
406ed2:	50                   	push   %eax
406ed3:	57                   	push   %edi
406ed4:	89 45 e8             	mov    %eax,-0x18(%ebp)
406ed7:	e8 7f e4 ff ff       	call   0x40535b
406edc:	84 c0                	test   %al,%al
406ede:	74 3b                	je     0x406f1b
406ee0:	8b 45 0c             	mov    0xc(%ebp),%eax
406ee3:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406ee6:	89 45 ec             	mov    %eax,-0x14(%ebp)
406ee9:	e8 c1 00 00 00       	call   0x406faf
406eee:	57                   	push   %edi
406eef:	8b 00                	mov    (%eax),%eax
406ef1:	83 c0 10             	add    $0x10,%eax
406ef4:	50                   	push   %eax
406ef5:	e8 61 e4 ff ff       	call   0x40535b
406efa:	84 c0                	test   %al,%al
406efc:	74 1d                	je     0x406f1b
406efe:	8b 45 ec             	mov    -0x14(%ebp),%eax
406f01:	ff 75 14             	push   0x14(%ebp)
406f04:	8b 48 08             	mov    0x8(%eax),%ecx
406f07:	51                   	push   %ecx
406f08:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
406f0c:	8b cb                	mov    %ebx,%ecx
406f0e:	74 04                	je     0x406f14
406f10:	50                   	push   %eax
406f11:	56                   	push   %esi
406f12:	eb 57                	jmp    0x406f6b
406f14:	ff 75 0c             	push   0xc(%ebp)
406f17:	6a 01                	push   $0x1
406f19:	eb 50                	jmp    0x406f6b
406f1b:	57                   	push   %edi