406d4b:	5f                   	pop    %edi
406d4c:	5e                   	pop    %esi
406d4d:	33 cd                	xor    %ebp,%ecx
406d4f:	5b                   	pop    %ebx
406d50:	e8 7b 1d 00 00       	call   0x408ad0
406d55:	c9                   	leave
406d56:	c3                   	ret
406d57:	8b ff                	mov    %edi,%edi
406d59:	55                   	push   %ebp
406d5a:	8b ec                	mov    %esp,%ebp
406d5c:	83 ec 14             	sub    $0x14,%esp
406d5f:	53                   	push   %ebx
406d60:	56                   	push   %esi
406d61:	57                   	push   %edi
406d62:	33 db                	xor    %ebx,%ebx
406d64:	8d 45 fc             	lea    -0x4(%ebp),%eax
406d67:	53                   	push   %ebx
406d68:	50                   	push   %eax
406d69:	8d 45 f8             	lea    -0x8(%ebp),%eax
406d6c:	89 5d f8             	mov    %ebx,-0x8(%ebp)
406d6f:	50                   	push   %eax
406d70:	ff 15 94 f0 40 00    	call   *0x40f094
406d76:	8b f0                	mov    %eax,%esi
406d78:	83 fe 7a             	cmp    $0x7a,%esi
406d7b:	75 5a                	jne    0x406dd7
406d7d:	ff 75 f8             	push   -0x8(%ebp)
406d80:	ff 15 a4 f0 40 00    	call   *0x40f0a4
406d86:	8b f8                	mov    %eax,%edi
406d88:	89 7d f0             	mov    %edi,-0x10(%ebp)
406d8b:	85 ff                	test   %edi,%edi
406d8d:	74 63                	je     0x406df2
406d8f:	57                   	push   %edi
406d90:	8d 45 fc             	lea    -0x4(%ebp),%eax
406d93:	50                   	push   %eax
406d94:	8d 45 f8             	lea    -0x8(%ebp),%eax
406d97:	50                   	push   %eax
406d98:	ff 15 94 f0 40 00    	call   *0x40f094
406d9e:	8b f0                	mov    %eax,%esi
406da0:	85 f6                	test   %esi,%esi
406da2:	75 2a                	jne    0x406dce
406da4:	ff 75 fc             	push   -0x4(%ebp)
406da7:	68 85 04 00 00       	push   $0x485
406dac:	e8 de bb ff ff       	call   0x40298f
406db1:	59                   	pop    %ecx
406db2:	59                   	pop    %ecx
406db3:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
406db6:	76 16                	jbe    0x406dce
406db8:	8b cf                	mov    %edi,%ecx
406dba:	e8 d1 c4 ff ff       	call   0x403290
406dbf:	81 c7 e8 05 00 00    	add    $0x5e8,%edi
406dc5:	43                   	inc    %ebx
406dc6:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
406dc9:	72 ed                	jb     0x406db8
406dcb:	8b 7d f0             	mov    -0x10(%ebp),%edi
406dce:	57                   	push   %edi
406dcf:	ff 15 b0 f0 40 00    	call   *0x40f0b0
406dd5:	eb 1b                	jmp    0x406df2
406dd7:	85 f6                	test   %esi,%esi
406dd9:	75 17                	jne    0x406df2
406ddb:	68 86 04 00 00       	push   $0x486
406de0:	e8 aa bb ff ff       	call   0x40298f
406de5:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
406dec:	e8 c9 ba ff ff       	call   0x4028ba
406df1:	59                   	pop    %ecx
406df2:	5f                   	pop    %edi
406df3:	8b c6                	mov    %esi,%eax
406df5:	5e                   	pop    %esi
406df6:	5b                   	pop    %ebx
406df7:	c9                   	leave
406df8:	c3                   	ret
406df9:	8b ff                	mov    %edi,%edi
406dfb:	55                   	push   %ebp
406dfc:	8b ec                	mov    %esp,%ebp
406dfe:	51                   	push   %ecx
406dff:	51                   	push   %ecx
406e00:	53                   	push   %ebx
406e01:	33 db                	xor    %ebx,%ebx
406e03:	57                   	push   %edi
406e04:	8b fb                	mov    %ebx,%edi
406e06:	83 f9 03             	cmp    $0x3,%ecx
406e09:	74 12                	je     0x406e1d
406e0b:	83 f9 02             	cmp    $0x2,%ecx
406e0e:	74 18                	je     0x406e28
406e10:	6a 06                	push   $0x6
406e12:	59                   	pop    %ecx
406e13:	e8 47 bc ff ff       	call   0x402a5f
406e18:	e9 a6 00 00 00       	jmp    0x406ec3
406e1d:	8b 42 08             	mov    0x8(%edx),%eax
406e20:	0f b7 00             	movzwl (%eax),%eax
406e23:	83 f8 2a             	cmp    $0x2a,%eax
406e26:	75 05                	jne    0x406e2d
406e28:	88 5d fc             	mov    %bl,-0x4(%ebp)
406e2b:	eb 11                	jmp    0x406e3e
406e2d:	83 f8 74             	cmp    $0x74,%eax
406e30:	74 08                	je     0x406e3a
406e32:	88 5d fc             	mov    %bl,-0x4(%ebp)
406e35:	83 f8 54             	cmp    $0x54,%eax
406e38:	75 04                	jne    0x406e3e
406e3a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
406e3e:	53                   	push   %ebx
406e3f:	8d 45 f8             	lea    -0x8(%ebp),%eax
406e42:	89 5d f8             	mov    %ebx,-0x8(%ebp)
406e45:	50                   	push   %eax
406e46:	ff 75 fc             	push   -0x4(%ebp)
406e49:	ff 15 74 f0 40 00    	call   *0x40f074
406e4f:	8b d8                	mov    %eax,%ebx
406e51:	83 fb 7a             	cmp    $0x7a,%ebx
406e54:	75 27                	jne    0x406e7d
406e56:	8b 45 f8             	mov    -0x8(%ebp),%eax
406e59:	03 c0                	add    %eax,%eax
406e5b:	50                   	push   %eax
406e5c:	ff 15 a4 f0 40 00    	call   *0x40f0a4
406e62:	8b f8                	mov    %eax,%edi
406e64:	85 ff                	test   %edi,%edi
406e66:	75 05                	jne    0x406e6d
406e68:	6a 08                	push   $0x8
406e6a:	58                   	pop    %eax
406e6b:	eb 58                	jmp    0x406ec5
406e6d:	57                   	push   %edi
406e6e:	8d 45 f8             	lea    -0x8(%ebp),%eax
406e71:	50                   	push   %eax
406e72:	ff 75 fc             	push   -0x4(%ebp)
406e75:	ff 15 74 f0 40 00    	call   *0x40f074
406e7b:	8b d8                	mov    %eax,%ebx
406e7d:	85 db                	test   %ebx,%ebx
406e7f:	75 37                	jne    0x406eb8
406e81:	68 87 04 00 00       	push   $0x487
406e86:	e8 04 bb ff ff       	call   0x40298f
406e8b:	33 c0                	xor    %eax,%eax
406e8d:	59                   	pop    %ecx
406e8e:	66 39 07             	cmp    %ax,(%edi)
406e91:	74 25                	je     0x406eb8
406e93:	56                   	push   %esi
406e94:	8b f7                	mov    %edi,%esi
406e96:	56                   	push   %esi
406e97:	68 18 1d 40 00       	push   $0x401d18
406e9c:	e8 19 ba ff ff       	call   0x4028ba
406ea1:	59                   	pop    %ecx
406ea2:	59                   	pop    %ecx
406ea3:	33 c0                	xor    %eax,%eax
406ea5:	eb 03                	jmp    0x406eaa
406ea7:	83 c6 02             	add    $0x2,%esi
406eaa:	66 39 06             	cmp    %ax,(%esi)
406ead:	75 f8                	jne    0x406ea7
406eaf:	83 c6 02             	add    $0x2,%esi
406eb2:	66 39 06             	cmp    %ax,(%esi)
406eb5:	75 df                	jne    0x406e96
406eb7:	5e                   	pop    %esi
406eb8:	85 ff                	test   %edi,%edi
406eba:	74 07                	je     0x406ec3
406ebc:	57                   	push   %edi
406ebd:	ff 15 b0 f0 40 00    	call   *0x40f0b0
406ec3:	8b c3                	mov    %ebx,%eax
406ec5:	5f                   	pop    %edi
406ec6:	5b                   	pop    %ebx
406ec7:	c9                   	leave
406ec8:	c3                   	ret
406ec9:	8b ff                	mov    %edi,%edi
406ecb:	55                   	push   %ebp
406ecc:	8b ec                	mov    %esp,%ebp
406ece:	81 ec 0c 04 00 00    	sub    $0x40c,%esp
406ed4:	a1 04 a0 40 00       	mov    0x40a004,%eax
406ed9:	33 c5                	xor    %ebp,%eax
406edb:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ede:	53                   	push   %ebx
406edf:	56                   	push   %esi
406ee0:	8b f1                	mov    %ecx,%esi
406ee2:	57                   	push   %edi
406ee3:	8d 46 fc             	lea    -0x4(%esi),%eax
406ee6:	83 f8 02             	cmp    $0x2,%eax
406ee9:	0f 87 8e 00 00 00    	ja     0x406f7d
406eef:	8b 42 08             	mov    0x8(%edx),%eax
406ef2:	33 db                	xor    %ebx,%ebx
406ef4:	8b c8                	mov    %eax,%ecx
406ef6:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
406efc:	8d 79 02             	lea    0x2(%ecx),%edi
406eff:	66 8b 01             	mov    (%ecx),%ax
406f02:	83 c1 02             	add    $0x2,%ecx
406f05:	66 3b c3             	cmp    %bx,%ax
406f08:	75 f5                	jne    0x406eff
406f0a:	2b cf                	sub    %edi,%ecx
406f0c:	d1 f9                	sar    $1,%ecx
406f0e:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
406f14:	76 05                	jbe    0x406f1b
406f16:	6a 57                	push   $0x57
406f18:	58                   	pop    %eax
406f19:	eb 6c                	jmp    0x406f87
406f1b:	8b 5a 0c             	mov    0xc(%edx),%ebx
406f1e:	83 fe 04             	cmp    $0x4,%esi
406f21:	7e 23                	jle    0x406f46
406f23:	8b 7a 10             	mov    0x10(%edx),%edi
406f26:	6a 2a                	push   $0x2a
406f28:	58                   	pop    %eax
406f29:	66 39 07             	cmp    %ax,(%edi)
406f2c:	75 02                	jne    0x406f30
406f2e:	33 ff                	xor    %edi,%edi
406f30:	83 fe 05             	cmp    $0x5,%esi
406f33:	7e 13                	jle    0x406f48
406f35:	8b 4a 14             	mov    0x14(%edx),%ecx
406f38:	66 39 01             	cmp    %ax,(%ecx)
406f3b:	74 0b                	je     0x406f48
406f3d:	e8 34 cd ff ff       	call   0x403c76
406f42:	8b f0                	mov    %eax,%esi
406f44:	eb 05                	jmp    0x406f4b
406f46:	33 ff                	xor    %edi,%edi
406f48:	83 ce ff             	or     $0xffffffff,%esi
406f4b:	ff b5 f4 fb ff ff    	push   -0x40c(%ebp)
406f51:	ba 00 01 00 00       	mov    $0x100,%edx
406f56:	8d 8d f8 fd ff ff    	lea    -0x208(%ebp),%ecx
406f5c:	e8 ff b7 ff ff       	call   0x402760
406f61:	8b cb                	mov    %ebx,%ecx
406f63:	e8 0e cd ff ff       	call   0x403c76
406f68:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
406f6c:	8d 85 f8 fb ff ff    	lea    -0x408(%ebp),%eax
406f72:	50                   	push   %eax
406f73:	56                   	push   %esi
406f74:	57                   	push   %edi
406f75:	ff 15 30 f0 40 00    	call   *0x40f030
406f7b:	eb 0a                	jmp    0x406f87
406f7d:	6a 05                	push   $0x5
406f7f:	59                   	pop    %ecx
406f80:	e8 da ba ff ff       	call   0x402a5f
406f85:	33 c0                	xor    %eax,%eax
406f87:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f8a:	5f                   	pop    %edi
406f8b:	5e                   	pop    %esi
406f8c:	33 cd                	xor    %ebp,%ecx
406f8e:	5b                   	pop    %ebx
406f8f:	e8 3c 1b 00 00       	call   0x408ad0
406f94:	c9                   	leave
406f95:	c3                   	ret
406f96:	8b ff                	mov    %edi,%edi
406f98:	55                   	push   %ebp
406f99:	8b ec                	mov    %esp,%ebp
406f9b:	81 ec dc 00 00 00    	sub    $0xdc,%esp
406fa1:	a1 04 a0 40 00       	mov    0x40a004,%eax
406fa6:	33 c5                	xor    %ebp,%eax
406fa8:	89 45 fc             	mov    %eax,-0x4(%ebp)
406fab:	53                   	push   %ebx
406fac:	56                   	push   %esi
406fad:	57                   	push   %edi
406fae:	6a 40                	push   $0x40
406fb0:	33 f6                	xor    %esi,%esi
406fb2:	8d 45 b8             	lea    -0x48(%ebp),%eax
406fb5:	56                   	push   %esi
406fb6:	50                   	push   %eax
406fb7:	e8 28 21 00 00       	call   0x4090e4
406fbc:	83 c4 0c             	add    $0xc,%esp
406fbf:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406fc5:	6a 40                	push   $0x40
406fc7:	56                   	push   %esi
406fc8:	50                   	push   %eax
406fc9:	e8 16 21 00 00       	call   0x4090e4
406fce:	83 c4 0c             	add    $0xc,%esp
406fd1:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
406fd7:	6a 40                	push   $0x40
406fd9:	56                   	push   %esi
406fda:	50                   	push   %eax
406fdb:	e8 04 21 00 00       	call   0x4090e4
406fe0:	83 c4 0c             	add    $0xc,%esp
406fe3:	89 b5 34 ff ff ff    	mov    %esi,-0xcc(%ebp)
406fe9:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
406fef:	56                   	push   %esi
406ff0:	50                   	push   %eax
406ff1:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
406ff7:	50                   	push   %eax
406ff8:	ff 15 60 f0 40 00    	call   *0x40f060
406ffe:	8b d8                	mov    %eax,%ebx
407000:	83 fb 7a             	cmp    $0x7a,%ebx
407003:	0f 85 c5 01 00 00    	jne    0x4071ce
407009:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
40700f:	ff 15 a4 f0 40 00    	call   *0x40f0a4
407015:	8b f8                	mov    %eax,%edi
407017:	89 bd 28 ff ff ff    	mov    %edi,-0xd8(%ebp)
40701d:	85 ff                	test   %edi,%edi
40701f:	0f 84 a9 01 00 00    	je     0x4071ce
407025:	57                   	push   %edi
407026:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
40702c:	50                   	push   %eax
40702d:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
407033:	50                   	push   %eax
407034:	ff 15 60 f0 40 00    	call   *0x40f060
40703a:	8b d8                	mov    %eax,%ebx
40703c:	85 db                	test   %ebx,%ebx
40703e:	0f 85 83 01 00 00    	jne    0x4071c7
407044:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
40704a:	68 88 04 00 00       	push   $0x488
40704f:	e8 3b b9 ff ff       	call   0x40298f
407054:	59                   	pop    %ecx
407055:	59                   	pop    %ecx
407056:	89 b5 2c ff ff ff    	mov    %esi,-0xd4(%ebp)
40705c:	39 b5 34 ff ff ff    	cmp    %esi,-0xcc(%ebp)
407062:	0f 86 5f 01 00 00    	jbe    0x4071c7
407068:	8d b7 04 06 00 00    	lea    0x604(%edi),%esi
40706e:	8b bd 2c ff ff ff    	mov    -0xd4(%ebp),%edi
407074:	6a 20                	push   $0x20
407076:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40707c:	50                   	push   %eax
40707d:	68 54 04 00 00       	push   $0x454
407082:	6a 00                	push   $0x0
407084:	ff 15 20 f1 40 00    	call   *0x40f120
40708a:	85 c0                	test   %eax,%eax
40708c:	75 07                	jne    0x407095
40708e:	66 89 85 38 ff ff ff 	mov    %ax,-0xc8(%ebp)
407095:	6a 20                	push   $0x20
407097:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40709d:	50                   	push   %eax
40709e:	68 6f 04 00 00       	push   $0x46f
4070a3:	6a 00                	push   $0x0
4070a5:	ff 15 20 f1 40 00    	call   *0x40f120
4070ab:	85 c0                	test   %eax,%eax
4070ad:	75 07                	jne    0x4070b6
4070af:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
4070b6:	6a 20                	push   $0x20
4070b8:	8d 45 b8             	lea    -0x48(%ebp),%eax
4070bb:	50                   	push   %eax
4070bc:	68 67 04 00 00       	push   $0x467
4070c1:	6a 00                	push   $0x0
4070c3:	ff 15 20 f1 40 00    	call   *0x40f120
4070c9:	85 c0                	test   %eax,%eax
4070cb:	75 04                	jne    0x4070d1
4070cd:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
4070d1:	8d 86 fc f9 ff ff    	lea    -0x604(%esi),%eax
4070d7:	50                   	push   %eax
4070d8:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
4070de:	50                   	push   %eax
4070df:	8d 86 00 fc ff ff    	lea    -0x400(%esi),%eax
4070e5:	50                   	push   %eax
4070e6:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
4070ec:	50                   	push   %eax
4070ed:	0f b7 06             	movzwl (%esi),%eax
4070f0:	50                   	push   %eax
4070f1:	8d 86 00 fe ff ff    	lea    -0x200(%esi),%eax
4070f7:	50                   	push   %eax
4070f8:	8d 45 b8             	lea    -0x48(%ebp),%eax
4070fb:	50                   	push   %eax
4070fc:	68 30 1d 40 00       	push   $0x401d30
407101:	e8 b4 b7 ff ff       	call   0x4028ba
407106:	83 c4 20             	add    $0x20,%esp
407109:	83 be fc fb ff ff ff 	cmpl   $0xffffffff,-0x404(%esi)
407110:	6a 20                	push   $0x20
407112:	75 4c                	jne    0x407160
407114:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40711a:	50                   	push   %eax
40711b:	68 6c 04 00 00       	push   $0x46c
407120:	6a 00                	push   $0x0
407122:	ff 15 20 f1 40 00    	call   *0x40f120
407128:	85 c0                	test   %eax,%eax
40712a:	75 07                	jne    0x407133
40712c:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)