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)
406f34:	ff 75 1c             	push   0x1c(%ebp)
406f37:	ff 15 20 11 40 00    	call   *0x401120
406f3d:	8b f8                	mov    %eax,%edi
406f3f:	3b f3                	cmp    %ebx,%esi
406f41:	74 07                	je     0x406f4a
406f43:	56                   	push   %esi
406f44:	e8 55 e8 ff ff       	call   0x40579e
406f49:	59                   	pop    %ecx
406f4a:	8b c7                	mov    %edi,%eax
406f4c:	8d 65 ec             	lea    -0x14(%ebp),%esp
406f4f:	5f                   	pop    %edi
406f50:	5e                   	pop    %esi
406f51:	5b                   	pop    %ebx
406f52:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f55:	33 cd                	xor    %ebp,%ecx
406f57:	e8 94 b4 ff ff       	call   0x4023f0
406f5c:	c9                   	leave
406f5d:	c3                   	ret
406f5e:	8b ff                	mov    %edi,%edi
406f60:	55                   	push   %ebp
406f61:	8b ec                	mov    %esp,%ebp
406f63:	83 ec 10             	sub    $0x10,%esp
406f66:	ff 75 08             	push   0x8(%ebp)
406f69:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406f6c:	e8 65 b7 ff ff       	call   0x4026d6
406f71:	ff 75 24             	push   0x24(%ebp)
406f74:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406f77:	ff 75 20             	push   0x20(%ebp)
406f7a:	ff 75 1c             	push   0x1c(%ebp)
406f7d:	ff 75 18             	push   0x18(%ebp)
406f80:	ff 75 14             	push   0x14(%ebp)
406f83:	ff 75 10             	push   0x10(%ebp)
406f86:	ff 75 0c             	push   0xc(%ebp)
406f89:	e8 16 fe ff ff       	call   0x406da4
406f8e:	83 c4 1c             	add    $0x1c,%esp
406f91:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
406f95:	74 07                	je     0x406f9e
406f97:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406f9a:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
406f9e:	c9                   	leave
406f9f:	c3                   	ret
406fa0:	8b ff                	mov    %edi,%edi
406fa2:	55                   	push   %ebp
406fa3:	8b ec                	mov    %esp,%ebp
406fa5:	56                   	push   %esi
406fa6:	8b 75 08             	mov    0x8(%ebp),%esi
406fa9:	85 f6                	test   %esi,%esi
406fab:	0f 84 81 01 00 00    	je     0x407132
406fb1:	ff 76 04             	push   0x4(%esi)
406fb4:	e8 e5 e7 ff ff       	call   0x40579e
406fb9:	ff 76 08             	push   0x8(%esi)
406fbc:	e8 dd e7 ff ff       	call   0x40579e
406fc1:	ff 76 0c             	push   0xc(%esi)
406fc4:	e8 d5 e7 ff ff       	call   0x40579e
406fc9:	ff 76 10             	push   0x10(%esi)
406fcc:	e8 cd e7 ff ff       	call   0x40579e
406fd1:	ff 76 14             	push   0x14(%esi)
406fd4:	e8 c5 e7 ff ff       	call   0x40579e
406fd9:	ff 76 18             	push   0x18(%esi)
406fdc:	e8 bd e7 ff ff       	call   0x40579e
406fe1:	ff 36                	push   (%esi)
406fe3:	e8 b6 e7 ff ff       	call   0x40579e
406fe8:	ff 76 20             	push   0x20(%esi)
406feb:	e8 ae e7 ff ff       	call   0x40579e
406ff0:	ff 76 24             	push   0x24(%esi)
406ff3:	e8 a6 e7 ff ff       	call   0x40579e
406ff8:	ff 76 28             	push   0x28(%esi)
406ffb:	e8 9e e7 ff ff       	call   0x40579e
407000:	ff 76 2c             	push   0x2c(%esi)
407003:	e8 96 e7 ff ff       	call   0x40579e
407008:	ff 76 30             	push   0x30(%esi)
40700b:	e8 8e e7 ff ff       	call   0x40579e
407010:	ff 76 34             	push   0x34(%esi)
407013:	e8 86 e7 ff ff       	call   0x40579e
407018:	ff 76 1c             	push   0x1c(%esi)
40701b:	e8 7e e7 ff ff       	call   0x40579e
407020:	ff 76 38             	push   0x38(%esi)
407023:	e8 76 e7 ff ff       	call   0x40579e
407028:	ff 76 3c             	push   0x3c(%esi)
40702b:	e8 6e e7 ff ff       	call   0x40579e
407030:	83 c4 40             	add    $0x40,%esp
407033:	ff 76 40             	push   0x40(%esi)
407036:	e8 63 e7 ff ff       	call   0x40579e
40703b:	ff 76 44             	push   0x44(%esi)
40703e:	e8 5b e7 ff ff       	call   0x40579e
407043:	ff 76 48             	push   0x48(%esi)
407046:	e8 53 e7 ff ff       	call   0x40579e
40704b:	ff 76 4c             	push   0x4c(%esi)
40704e:	e8 4b e7 ff ff       	call   0x40579e
407053:	ff 76 50             	push   0x50(%esi)
407056:	e8 43 e7 ff ff       	call   0x40579e
40705b:	ff 76 54             	push   0x54(%esi)
40705e:	e8 3b e7 ff ff       	call   0x40579e
407063:	ff 76 58             	push   0x58(%esi)
407066:	e8 33 e7 ff ff       	call   0x40579e
40706b:	ff 76 5c             	push   0x5c(%esi)
40706e:	e8 2b e7 ff ff       	call   0x40579e
407073:	ff 76 60             	push   0x60(%esi)
407076:	e8 23 e7 ff ff       	call   0x40579e
40707b:	ff 76 64             	push   0x64(%esi)
40707e:	e8 1b e7 ff ff       	call   0x40579e
407083:	ff 76 68             	push   0x68(%esi)
407086:	e8 13 e7 ff ff       	call   0x40579e
40708b:	ff 76 6c             	push   0x6c(%esi)
40708e:	e8 0b e7 ff ff       	call   0x40579e
407093:	ff 76 70             	push   0x70(%esi)
407096:	e8 03 e7 ff ff       	call   0x40579e
40709b:	ff 76 74             	push   0x74(%esi)
40709e:	e8 fb e6 ff ff       	call   0x40579e
4070a3:	ff 76 78             	push   0x78(%esi)
4070a6:	e8 f3 e6 ff ff       	call   0x40579e
4070ab:	ff 76 7c             	push   0x7c(%esi)
4070ae:	e8 eb e6 ff ff       	call   0x40579e
4070b3:	83 c4 40             	add    $0x40,%esp
4070b6:	ff b6 80 00 00 00    	push   0x80(%esi)
4070bc:	e8 dd e6 ff ff       	call   0x40579e
4070c1:	ff b6 84 00 00 00    	push   0x84(%esi)
4070c7:	e8 d2 e6 ff ff       	call   0x40579e
4070cc:	ff b6 88 00 00 00    	push   0x88(%esi)
4070d2:	e8 c7 e6 ff ff       	call   0x40579e
4070d7:	ff b6 8c 00 00 00    	push   0x8c(%esi)
4070dd:	e8 bc e6 ff ff       	call   0x40579e
4070e2:	ff b6 90 00 00 00    	push   0x90(%esi)
4070e8:	e8 b1 e6 ff ff       	call   0x40579e
4070ed:	ff b6 94 00 00 00    	push   0x94(%esi)
4070f3:	e8 a6 e6 ff ff       	call   0x40579e
4070f8:	ff b6 98 00 00 00    	push   0x98(%esi)
4070fe:	e8 9b e6 ff ff       	call   0x40579e
407103:	ff b6 9c 00 00 00    	push   0x9c(%esi)
407109:	e8 90 e6 ff ff       	call   0x40579e
40710e:	ff b6 a0 00 00 00    	push   0xa0(%esi)
407114:	e8 85 e6 ff ff       	call   0x40579e
407119:	ff b6 a4 00 00 00    	push   0xa4(%esi)
40711f:	e8 7a e6 ff ff       	call   0x40579e
407124:	ff b6 a8 00 00 00    	push   0xa8(%esi)
40712a:	e8 6f e6 ff ff       	call   0x40579e
40712f:	83 c4 2c             	add    $0x2c,%esp
407132:	5e                   	pop    %esi
407133:	5d                   	pop    %ebp
407134:	c3                   	ret
407135:	8b ff                	mov    %edi,%edi
407137:	55                   	push   %ebp
407138:	8b ec                	mov    %esp,%ebp
40713a:	56                   	push   %esi
40713b:	8b 75 08             	mov    0x8(%ebp),%esi
40713e:	85 f6                	test   %esi,%esi
407140:	74 35                	je     0x407177
407142:	8b 06                	mov    (%esi),%eax
407144:	3b 05 c8 ba 40 00    	cmp    0x40bac8,%eax
40714a:	74 07                	je     0x407153
40714c:	50                   	push   %eax
40714d:	e8 4c e6 ff ff       	call   0x40579e
407152:	59                   	pop    %ecx
407153:	8b 46 04             	mov    0x4(%esi),%eax
407156:	3b 05 cc ba 40 00    	cmp    0x40bacc,%eax
40715c:	74 07                	je     0x407165
40715e:	50                   	push   %eax
40715f:	e8 3a e6 ff ff       	call   0x40579e
407164:	59                   	pop    %ecx
407165:	8b 76 08             	mov    0x8(%esi),%esi
407168:	3b 35 d0 ba 40 00    	cmp    0x40bad0,%esi
40716e:	74 07                	je     0x407177
407170:	56                   	push   %esi
407171:	e8 28 e6 ff ff       	call   0x40579e
407176:	59                   	pop    %ecx
407177:	5e                   	pop    %esi
407178:	5d                   	pop    %ebp
407179:	c3                   	ret
40717a:	8b ff                	mov    %edi,%edi
40717c:	55                   	push   %ebp
40717d:	8b ec                	mov    %esp,%ebp
40717f:	56                   	push   %esi
407180:	8b 75 08             	mov    0x8(%ebp),%esi
407183:	85 f6                	test   %esi,%esi
407185:	74 7e                	je     0x407205