406b8d:	74 09                	je     0x406b98
406b8f:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
406b95:	83 c0 08             	add    $0x8,%eax
406b98:	8b f0                	mov    %eax,%esi
406b9a:	eb 02                	jmp    0x406b9e
406b9c:	33 f6                	xor    %esi,%esi
406b9e:	3b f3                	cmp    %ebx,%esi
406ba0:	74 41                	je     0x406be3
406ba2:	ff 75 f8             	push   -0x8(%ebp)
406ba5:	56                   	push   %esi
406ba6:	57                   	push   %edi
406ba7:	ff 75 f4             	push   -0xc(%ebp)
406baa:	ff 75 0c             	push   0xc(%ebp)
406bad:	ff 75 08             	push   0x8(%ebp)
406bb0:	ff 15 1c 11 40 00    	call   *0x40111c
406bb6:	85 c0                	test   %eax,%eax
406bb8:	74 22                	je     0x406bdc
406bba:	53                   	push   %ebx
406bbb:	53                   	push   %ebx
406bbc:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
406bbf:	75 04                	jne    0x406bc5
406bc1:	53                   	push   %ebx
406bc2:	53                   	push   %ebx
406bc3:	eb 06                	jmp    0x406bcb
406bc5:	ff 75 1c             	push   0x1c(%ebp)
406bc8:	ff 75 18             	push   0x18(%ebp)
406bcb:	ff 75 f8             	push   -0x8(%ebp)
406bce:	56                   	push   %esi
406bcf:	53                   	push   %ebx
406bd0:	ff 75 20             	push   0x20(%ebp)
406bd3:	ff 15 14 11 40 00    	call   *0x401114
406bd9:	89 45 f8             	mov    %eax,-0x8(%ebp)
406bdc:	56                   	push   %esi
406bdd:	e8 b8 fd ff ff       	call   0x40699a
406be2:	59                   	pop    %ecx
406be3:	ff 75 f4             	push   -0xc(%ebp)
406be6:	e8 af fd ff ff       	call   0x40699a
406beb:	8b 45 f8             	mov    -0x8(%ebp),%eax
406bee:	59                   	pop    %ecx
406bef:	e9 59 01 00 00       	jmp    0x406d4d
406bf4:	89 5d f4             	mov    %ebx,-0xc(%ebp)
406bf7:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406bfa:	39 5d 08             	cmp    %ebx,0x8(%ebp)
406bfd:	75 08                	jne    0x406c07
406bff:	8b 06                	mov    (%esi),%eax
406c01:	8b 40 14             	mov    0x14(%eax),%eax
406c04:	89 45 08             	mov    %eax,0x8(%ebp)
406c07:	39 5d 20             	cmp    %ebx,0x20(%ebp)
406c0a:	75 08                	jne    0x406c14
406c0c:	8b 06                	mov    (%esi),%eax
406c0e:	8b 40 04             	mov    0x4(%eax),%eax
406c11:	89 45 20             	mov    %eax,0x20(%ebp)
406c14:	ff 75 08             	push   0x8(%ebp)
406c17:	e8 19 15 00 00       	call   0x408135
406c1c:	59                   	pop    %ecx
406c1d:	89 45 ec             	mov    %eax,-0x14(%ebp)
406c20:	83 f8 ff             	cmp    $0xffffffff,%eax
406c23:	75 07                	jne    0x406c2c
406c25:	33 c0                	xor    %eax,%eax
406c27:	e9 21 01 00 00       	jmp    0x406d4d
406c2c:	3b 45 20             	cmp    0x20(%ebp),%eax
406c2f:	0f 84 db 00 00 00    	je     0x406d10
406c35:	53                   	push   %ebx
406c36:	53                   	push   %ebx
406c37:	8d 4d 14             	lea    0x14(%ebp),%ecx
406c3a:	51                   	push   %ecx
406c3b:	ff 75 10             	push   0x10(%ebp)
406c3e:	50                   	push   %eax
406c3f:	ff 75 20             	push   0x20(%ebp)
406c42:	e8 37 15 00 00       	call   0x40817e
406c47:	83 c4 18             	add    $0x18,%esp
406c4a:	89 45 f4             	mov    %eax,-0xc(%ebp)
406c4d:	3b c3                	cmp    %ebx,%eax
406c4f:	74 d4                	je     0x406c25
406c51:	8b 35 34 10 40 00    	mov    0x401034,%esi
406c57:	53                   	push   %ebx
406c58:	53                   	push   %ebx
406c59:	ff 75 14             	push   0x14(%ebp)
406c5c:	50                   	push   %eax
406c5d:	ff 75 0c             	push   0xc(%ebp)
406c60:	ff 75 08             	push   0x8(%ebp)
406c63:	ff d6                	call   *%esi
406c65:	89 45 f8             	mov    %eax,-0x8(%ebp)
406c68:	3b c3                	cmp    %ebx,%eax
406c6a:	75 07                	jne    0x406c73
406c6c:	33 f6                	xor    %esi,%esi
406c6e:	e9 b7 00 00 00       	jmp    0x406d2a
406c73:	7e 3d                	jle    0x406cb2
406c75:	83 f8 e0             	cmp    $0xffffffe0,%eax
406c78:	77 38                	ja     0x406cb2
406c7a:	83 c0 08             	add    $0x8,%eax
406c7d:	3d 00 04 00 00       	cmp    $0x400,%eax
406c82:	77 16                	ja     0x406c9a
406c84:	e8 b7 16 00 00       	call   0x408340
406c89:	8b fc                	mov    %esp,%edi
406c8b:	3b fb                	cmp    %ebx,%edi
406c8d:	74 dd                	je     0x406c6c
406c8f:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
406c95:	83 c7 08             	add    $0x8,%edi
406c98:	eb 1a                	jmp    0x406cb4
406c9a:	50                   	push   %eax
406c9b:	e8 da 08 00 00       	call   0x40757a
406ca0:	59                   	pop    %ecx
406ca1:	3b c3                	cmp    %ebx,%eax
406ca3:	74 09                	je     0x406cae
406ca5:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
406cab:	83 c0 08             	add    $0x8,%eax
406cae:	8b f8                	mov    %eax,%edi
406cb0:	eb 02                	jmp    0x406cb4
406cb2:	33 ff                	xor    %edi,%edi
406cb4:	3b fb                	cmp    %ebx,%edi
406cb6:	74 b4                	je     0x406c6c
406cb8:	ff 75 f8             	push   -0x8(%ebp)
406cbb:	53                   	push   %ebx
406cbc:	57                   	push   %edi
406cbd:	e8 5e fc ff ff       	call   0x406920
406cc2:	83 c4 0c             	add    $0xc,%esp
406cc5:	ff 75 f8             	push   -0x8(%ebp)
406cc8:	57                   	push   %edi
406cc9:	ff 75 14             	push   0x14(%ebp)
406ccc:	ff 75 f4             	push   -0xc(%ebp)
406ccf:	ff 75 0c             	push   0xc(%ebp)
406cd2:	ff 75 08             	push   0x8(%ebp)
406cd5:	ff d6                	call   *%esi
406cd7:	89 45 f8             	mov    %eax,-0x8(%ebp)
406cda:	3b c3                	cmp    %ebx,%eax
406cdc:	75 04                	jne    0x406ce2
406cde:	33 f6                	xor    %esi,%esi
406ce0:	eb 25                	jmp    0x406d07
406ce2:	ff 75 1c             	push   0x1c(%ebp)
406ce5:	8d 45 f8             	lea    -0x8(%ebp),%eax
406ce8:	ff 75 18             	push   0x18(%ebp)
406ceb:	50                   	push   %eax
406cec:	57                   	push   %edi
406ced:	ff 75 20             	push   0x20(%ebp)
406cf0:	ff 75 ec             	push   -0x14(%ebp)
406cf3:	e8 86 14 00 00       	call   0x40817e
406cf8:	8b f0                	mov    %eax,%esi
406cfa:	89 75 f0             	mov    %esi,-0x10(%ebp)
406cfd:	83 c4 18             	add    $0x18,%esp
406d00:	f7 de                	neg    %esi
406d02:	1b f6                	sbb    %esi,%esi
406d04:	23 75 f8             	and    -0x8(%ebp),%esi
406d07:	57                   	push   %edi
406d08:	e8 8d fc ff ff       	call   0x40699a
406d0d:	59                   	pop    %ecx
406d0e:	eb 1a                	jmp    0x406d2a
406d10:	ff 75 1c             	push   0x1c(%ebp)
406d13:	ff 75 18             	push   0x18(%ebp)
406d16:	ff 75 14             	push   0x14(%ebp)
406d19:	ff 75 10             	push   0x10(%ebp)
406d1c:	ff 75 0c             	push   0xc(%ebp)
406d1f:	ff 75 08             	push   0x8(%ebp)
406d22:	ff 15 34 10 40 00    	call   *0x401034
406d28:	8b f0                	mov    %eax,%esi
406d2a:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
406d2d:	74 09                	je     0x406d38
406d2f:	ff 75 f4             	push   -0xc(%ebp)
406d32:	e8 67 ea ff ff       	call   0x40579e
406d37:	59                   	pop    %ecx
406d38:	8b 45 f0             	mov    -0x10(%ebp),%eax
406d3b:	3b c3                	cmp    %ebx,%eax
406d3d:	74 0c                	je     0x406d4b
406d3f:	39 45 18             	cmp    %eax,0x18(%ebp)
406d42:	74 07                	je     0x406d4b
406d44:	50                   	push   %eax
406d45:	e8 54 ea ff ff       	call   0x40579e
406d4a:	59                   	pop    %ecx
406d4b:	8b c6                	mov    %esi,%eax
406d4d:	8d 65 e0             	lea    -0x20(%ebp),%esp
406d50:	5f                   	pop    %edi
406d51:	5e                   	pop    %esi
406d52:	5b                   	pop    %ebx
406d53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406d56:	33 cd                	xor    %ebp,%ecx
406d58:	e8 93 b6 ff ff       	call   0x4023f0
406d5d:	c9                   	leave
406d5e:	c3                   	ret
406d5f:	8b ff                	mov    %edi,%edi
406d61:	55                   	push   %ebp
406d62:	8b ec                	mov    %esp,%ebp
406d64:	83 ec 10             	sub    $0x10,%esp
406d67:	ff 75 08             	push   0x8(%ebp)
406d6a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406d6d:	e8 64 b9 ff ff       	call   0x4026d6
406d72:	ff 75 28             	push   0x28(%ebp)
406d75:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406d78:	ff 75 24             	push   0x24(%ebp)
406d7b:	ff 75 20             	push   0x20(%ebp)
406d7e:	ff 75 1c             	push   0x1c(%ebp)
406d81:	ff 75 18             	push   0x18(%ebp)
406d84:	ff 75 14             	push   0x14(%ebp)
406d87:	ff 75 10             	push   0x10(%ebp)
406d8a:	ff 75 0c             	push   0xc(%ebp)
406d8d:	e8 28 fc ff ff       	call   0x4069ba
406d92:	83 c4 20             	add    $0x20,%esp
406d95:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
406d99:	74 07                	je     0x406da2
406d9b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406d9e:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
406da2:	c9                   	leave
406da3:	c3                   	ret
406da4:	8b ff                	mov    %edi,%edi
406da6:	55                   	push   %ebp
406da7:	8b ec                	mov    %esp,%ebp
406da9:	51                   	push   %ecx
406daa:	51                   	push   %ecx
406dab:	a1 04 b0 40 00       	mov    0x40b004,%eax
406db0:	33 c5                	xor    %ebp,%eax
406db2:	89 45 fc             	mov    %eax,-0x4(%ebp)
406db5:	a1 c4 cf 45 00       	mov    0x45cfc4,%eax
406dba:	53                   	push   %ebx
406dbb:	56                   	push   %esi
406dbc:	33 db                	xor    %ebx,%ebx
406dbe:	57                   	push   %edi
406dbf:	8b f9                	mov    %ecx,%edi
406dc1:	3b c3                	cmp    %ebx,%eax
406dc3:	75 3a                	jne    0x406dff
406dc5:	8d 45 f8             	lea    -0x8(%ebp),%eax
406dc8:	50                   	push   %eax
406dc9:	33 f6                	xor    %esi,%esi
406dcb:	46                   	inc    %esi
406dcc:	56                   	push   %esi
406dcd:	68 58 19 40 00       	push   $0x401958
406dd2:	56                   	push   %esi
406dd3:	ff 15 24 11 40 00    	call   *0x401124
406dd9:	85 c0                	test   %eax,%eax
406ddb:	74 08                	je     0x406de5
406ddd:	89 35 c4 cf 45 00    	mov    %esi,0x45cfc4
406de3:	eb 34                	jmp    0x406e19
406de5:	ff 15 c8 10 40 00    	call   *0x4010c8
406deb:	83 f8 78             	cmp    $0x78,%eax
406dee:	75 0a                	jne    0x406dfa
406df0:	6a 02                	push   $0x2
406df2:	58                   	pop    %eax
406df3:	a3 c4 cf 45 00       	mov    %eax,0x45cfc4
406df8:	eb 05                	jmp    0x406dff
406dfa:	a1 c4 cf 45 00       	mov    0x45cfc4,%eax
406dff:	83 f8 02             	cmp    $0x2,%eax
406e02:	0f 84 cf 00 00 00    	je     0x406ed7
406e08:	3b c3                	cmp    %ebx,%eax
406e0a:	0f 84 c7 00 00 00    	je     0x406ed7
406e10:	83 f8 01             	cmp    $0x1,%eax
406e13:	0f 85 e8 00 00 00    	jne    0x406f01
406e19:	89 5d f8             	mov    %ebx,-0x8(%ebp)
406e1c:	39 5d 18             	cmp    %ebx,0x18(%ebp)
406e1f:	75 08                	jne    0x406e29
406e21:	8b 07                	mov    (%edi),%eax
406e23:	8b 40 04             	mov    0x4(%eax),%eax
406e26:	89 45 18             	mov    %eax,0x18(%ebp)
406e29:	8b 35 18 11 40 00    	mov    0x401118,%esi
406e2f:	33 c0                	xor    %eax,%eax
406e31:	39 5d 20             	cmp    %ebx,0x20(%ebp)
406e34:	53                   	push   %ebx
406e35:	53                   	push   %ebx
406e36:	ff 75 10             	push   0x10(%ebp)
406e39:	0f 95 c0             	setne  %al
406e3c:	ff 75 0c             	push   0xc(%ebp)
406e3f:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
406e46:	50                   	push   %eax
406e47:	ff 75 18             	push   0x18(%ebp)
406e4a:	ff d6                	call   *%esi
406e4c:	8b f8                	mov    %eax,%edi
406e4e:	3b fb                	cmp    %ebx,%edi
406e50:	0f 84 ab 00 00 00    	je     0x406f01
406e56:	7e 3c                	jle    0x406e94
406e58:	81 ff f0 ff ff 7f    	cmp    $0x7ffffff0,%edi
406e5e:	77 34                	ja     0x406e94
406e60:	8d 44 3f 08          	lea    0x8(%edi,%edi,1),%eax
406e64:	3d 00 04 00 00       	cmp    $0x400,%eax
406e69:	77 13                	ja     0x406e7e
406e6b:	e8 d0 14 00 00       	call   0x408340
406e70:	8b c4                	mov    %esp,%eax
406e72:	3b c3                	cmp    %ebx,%eax
406e74:	74 1c                	je     0x406e92
406e76:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
406e7c:	eb 11                	jmp    0x406e8f
406e7e:	50                   	push   %eax
406e7f:	e8 f6 06 00 00       	call   0x40757a
406e84:	59                   	pop    %ecx
406e85:	3b c3                	cmp    %ebx,%eax
406e87:	74 09                	je     0x406e92
406e89:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
406e8f:	83 c0 08             	add    $0x8,%eax
406e92:	8b d8                	mov    %eax,%ebx
406e94:	85 db                	test   %ebx,%ebx
406e96:	74 69                	je     0x406f01
406e98:	8d 04 3f             	lea    (%edi,%edi,1),%eax
406e9b:	50                   	push   %eax
406e9c:	6a 00                	push   $0x0
406e9e:	53                   	push   %ebx
406e9f:	e8 7c fa ff ff       	call   0x406920
406ea4:	83 c4 0c             	add    $0xc,%esp
406ea7:	57                   	push   %edi
406ea8:	53                   	push   %ebx
406ea9:	ff 75 10             	push   0x10(%ebp)
406eac:	ff 75 0c             	push   0xc(%ebp)
406eaf:	6a 01                	push   $0x1
406eb1:	ff 75 18             	push   0x18(%ebp)
406eb4:	ff d6                	call   *%esi
406eb6:	85 c0                	test   %eax,%eax
406eb8:	74 11                	je     0x406ecb
406eba:	ff 75 14             	push   0x14(%ebp)
406ebd:	50                   	push   %eax
406ebe:	53                   	push   %ebx
406ebf:	ff 75 08             	push   0x8(%ebp)
406ec2:	ff 15 24 11 40 00    	call   *0x401124
406ec8:	89 45 f8             	mov    %eax,-0x8(%ebp)
406ecb:	53                   	push   %ebx
406ecc:	e8 c9 fa ff ff       	call   0x40699a
406ed1:	8b 45 f8             	mov    -0x8(%ebp),%eax
406ed4:	59                   	pop    %ecx
406ed5:	eb 75                	jmp    0x406f4c
406ed7:	33 f6                	xor    %esi,%esi
406ed9:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
406edc:	75 08                	jne    0x406ee6
406ede:	8b 07                	mov    (%edi),%eax
406ee0:	8b 40 14             	mov    0x14(%eax),%eax
406ee3:	89 45 1c             	mov    %eax,0x1c(%ebp)
406ee6:	39 5d 18             	cmp    %ebx,0x18(%ebp)
406ee9:	75 08                	jne    0x406ef3
406eeb:	8b 07                	mov    (%edi),%eax
406eed:	8b 40 04             	mov    0x4(%eax),%eax
406ef0:	89 45 18             	mov    %eax,0x18(%ebp)
406ef3:	ff 75 1c             	push   0x1c(%ebp)
406ef6:	e8 3a 12 00 00       	call   0x408135
406efb:	59                   	pop    %ecx
406efc:	83 f8 ff             	cmp    $0xffffffff,%eax
406eff:	75 04                	jne    0x406f05
406f01:	33 c0                	xor    %eax,%eax
406f03:	eb 47                	jmp    0x406f4c
406f05:	3b 45 18             	cmp    0x18(%ebp),%eax
406f08:	74 1e                	je     0x406f28
406f0a:	53                   	push   %ebx
406f0b:	53                   	push   %ebx
406f0c:	8d 4d 10             	lea    0x10(%ebp),%ecx
406f0f:	51                   	push   %ecx
406f10:	ff 75 0c             	push   0xc(%ebp)
406f13:	50                   	push   %eax
406f14:	ff 75 18             	push   0x18(%ebp)
406f17:	e8 62 12 00 00       	call   0x40817e
406f1c:	8b f0                	mov    %eax,%esi
406f1e:	83 c4 18             	add    $0x18,%esp
406f21:	3b f3                	cmp    %ebx,%esi
406f23:	74 dc                	je     0x406f01
406f25:	89 75 0c             	mov    %esi,0xc(%ebp)
406f28:	ff 75 14             	push   0x14(%ebp)
406f2b:	ff 75 10             	push   0x10(%ebp)
406f2e:	ff 75 0c             	push   0xc(%ebp)
406f31:	ff 75 08             	push   0x8(%ebp)