409cac:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
409cb2:	e8 35 95 ff ff       	call   0x4031ec
409cb7:	8b c8                	mov    %eax,%ecx
409cb9:	e8 0c 92 ff ff       	call   0x402eca
409cbe:	50                   	push   %eax
409cbf:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
409cc2:	e8 9d 95 ff ff       	call   0x403264
409cc7:	8b 4d c0             	mov    -0x40(%ebp),%ecx
409cca:	e8 5e bd ff ff       	call   0x405a2d
409ccf:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
409cd5:	89 5d c0             	mov    %ebx,-0x40(%ebp)
409cd8:	e8 50 bd ff ff       	call   0x405a2d
409cdd:	83 ec 10             	sub    $0x10,%esp
409ce0:	89 5d a0             	mov    %ebx,-0x60(%ebp)
409ce3:	8d 45 94             	lea    -0x6c(%ebp),%eax
409ce6:	8b cc                	mov    %esp,%ecx
409ce8:	50                   	push   %eax
409ce9:	e8 cb 81 ff ff       	call   0x401eb9
409cee:	8b cf                	mov    %edi,%ecx
409cf0:	e8 fa 81 ff ff       	call   0x401eef
409cf5:	8b 4d bc             	mov    -0x44(%ebp),%ecx
409cf8:	e8 30 bd ff ff       	call   0x405a2d
409cfd:	8b 4d b8             	mov    -0x48(%ebp),%ecx
409d00:	e8 28 bd ff ff       	call   0x405a2d
409d05:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
409d08:	e8 20 bd ff ff       	call   0x405a2d
409d0d:	8b 4d b0             	mov    -0x50(%ebp),%ecx
409d10:	e8 18 bd ff ff       	call   0x405a2d
409d15:	8b 4d ac             	mov    -0x54(%ebp),%ecx
409d18:	e8 10 bd ff ff       	call   0x405a2d
409d1d:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
409d20:	e8 6a 76 ff ff       	call   0x40138f
409d25:	83 ee 01             	sub    $0x1,%esi
409d28:	0f 85 43 fe ff ff    	jne    0x409b71
409d2e:	8b 75 f4             	mov    -0xc(%ebp),%esi
409d31:	8b 7d f0             	mov    -0x10(%ebp),%edi
409d34:	eb 02                	jmp    0x409d38
409d36:	33 db                	xor    %ebx,%ebx
409d38:	56                   	push   %esi
409d39:	ff 15 78 22 41 00    	call   *0x412278
409d3f:	85 c0                	test   %eax,%eax
409d41:	74 12                	je     0x409d55
409d43:	51                   	push   %ecx
409d44:	8d 45 f4             	lea    -0xc(%ebp),%eax
409d47:	8b cc                	mov    %esp,%ecx
409d49:	50                   	push   %eax
409d4a:	e8 0b 97 ff ff       	call   0x40345a
409d4f:	e8 55 41 00 00       	call   0x40dea9
409d54:	59                   	pop    %ecx
409d55:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409d58:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
409d5e:	ff 90 84 00 00 00    	call   *0x84(%eax)
409d64:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409d67:	59                   	pop    %ecx
409d68:	ff 50 6c             	call   *0x6c(%eax)
409d6b:	8d 4d d0             	lea    -0x30(%ebp),%ecx
409d6e:	e8 f3 90 ff ff       	call   0x402e66
409d73:	8d 8d 4c ff ff ff    	lea    -0xb4(%ebp),%ecx
409d79:	e8 0d 41 00 00       	call   0x40de8b
409d7e:	8b ce                	mov    %esi,%ecx
409d80:	e8 a8 bc ff ff       	call   0x405a2d
409d85:	8b cf                	mov    %edi,%ecx
409d87:	89 5d f4             	mov    %ebx,-0xc(%ebp)
409d8a:	e8 9e bc ff ff       	call   0x405a2d
409d8f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409d92:	89 5d f0             	mov    %ebx,-0x10(%ebp)
409d95:	e8 93 bc ff ff       	call   0x405a2d
409d9a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409d9d:	e8 8b bc ff ff       	call   0x405a2d
409da2:	8b 7d dc             	mov    -0x24(%ebp),%edi
409da5:	8b 75 e4             	mov    -0x1c(%ebp),%esi
409da8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
409dab:	ff 75 e0             	push   -0x20(%ebp)
409dae:	8d 85 3c fb ff ff    	lea    -0x4c4(%ebp),%eax
409db4:	68 04 01 00 00       	push   $0x104
409db9:	50                   	push   %eax
409dba:	53                   	push   %ebx
409dbb:	68 14 2c 41 00       	push   $0x412c14
409dc0:	ff 75 ec             	push   -0x14(%ebp)
409dc3:	ff 15 c0 20 41 00    	call   *0x4120c0
409dc9:	85 c0                	test   %eax,%eax
409dcb:	0f 85 f0 fb ff ff    	jne    0x4099c1
409dd1:	8b ce                	mov    %esi,%ecx
409dd3:	e8 77 08 00 00       	call   0x40a64f
409dd8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
409ddb:	33 db                	xor    %ebx,%ebx
409ddd:	43                   	inc    %ebx
409dde:	e8 4a bc ff ff       	call   0x405a2d
409de3:	8b 4d d8             	mov    -0x28(%ebp),%ecx
409de6:	e8 42 bc ff ff       	call   0x405a2d
409deb:	8b 4d ec             	mov    -0x14(%ebp),%ecx
409dee:	e8 3a bc ff ff       	call   0x405a2d
409df3:	8b 4d 08             	mov    0x8(%ebp),%ecx
409df6:	e8 32 bc ff ff       	call   0x405a2d
409dfb:	5f                   	pop    %edi
409dfc:	5e                   	pop    %esi
409dfd:	8b c3                	mov    %ebx,%eax
409dff:	5b                   	pop    %ebx
409e00:	c9                   	leave
409e01:	c2 04 00             	ret    $0x4
409e04:	55                   	push   %ebp
409e05:	8b ec                	mov    %esp,%ebp
409e07:	b8 bc 1f 00 00       	mov    $0x1fbc,%eax
409e0c:	e8 1f 73 ff ff       	call   0x401130
409e11:	53                   	push   %ebx
409e12:	56                   	push   %esi
409e13:	57                   	push   %edi
409e14:	ff 75 08             	push   0x8(%ebp)
409e17:	bb a0 1f 00 00       	mov    $0x1fa0,%ebx
409e1c:	8b f9                	mov    %ecx,%edi
409e1e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409e21:	ff 15 f4 21 41 00    	call   *0x4121f4
409e27:	53                   	push   %ebx
409e28:	8b f0                	mov    %eax,%esi
409e2a:	33 db                	xor    %ebx,%ebx
409e2c:	8d 85 44 e0 ff ff    	lea    -0x1fbc(%ebp),%eax
409e32:	53                   	push   %ebx
409e33:	50                   	push   %eax
409e34:	e8 19 72 ff ff       	call   0x401052
409e39:	83 c4 0c             	add    $0xc,%esp
409e3c:	8d 45 fc             	lea    -0x4(%ebp),%eax
409e3f:	53                   	push   %ebx
409e40:	53                   	push   %ebx
409e41:	50                   	push   %eax
409e42:	8d 85 44 e0 ff ff    	lea    -0x1fbc(%ebp),%eax
409e48:	50                   	push   %eax
409e49:	6a 01                	push   $0x1
409e4b:	56                   	push   %esi
409e4c:	ff 75 08             	push   0x8(%ebp)
409e4f:	ff 15 7c 20 41 00    	call   *0x41207c
409e55:	8d 85 44 e0 ff ff    	lea    -0x1fbc(%ebp),%eax
409e5b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
409e5e:	89 45 e8             	mov    %eax,-0x18(%ebp)
409e61:	8b 45 fc             	mov    -0x4(%ebp),%eax
409e64:	89 45 ec             	mov    %eax,-0x14(%ebp)
409e67:	8d 45 f0             	lea    -0x10(%ebp),%eax
409e6a:	53                   	push   %ebx
409e6b:	50                   	push   %eax
409e6c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409e6f:	89 5d f4             	mov    %ebx,-0xc(%ebp)
409e72:	50                   	push   %eax
409e73:	89 5d f8             	mov    %ebx,-0x8(%ebp)
409e76:	89 5d f0             	mov    %ebx,-0x10(%ebp)
409e79:	ff 57 70             	call   *0x70(%edi)
409e7c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409e7f:	83 c4 0c             	add    $0xc,%esp
409e82:	8b 45 f4             	mov    -0xc(%ebp),%eax
409e85:	88 1c 01             	mov    %bl,(%ecx,%eax,1)
409e88:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409e8b:	8d 49 01             	lea    0x1(%ecx),%ecx
409e8e:	e8 a9 bb ff ff       	call   0x405a3c
409e93:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409e96:	ff 75 f4             	push   -0xc(%ebp)
409e99:	50                   	push   %eax
409e9a:	89 01                	mov    %eax,(%ecx)
409e9c:	ff 15 e0 21 41 00    	call   *0x4121e0
409ea2:	5f                   	pop    %edi
409ea3:	5e                   	pop    %esi
409ea4:	5b                   	pop    %ebx
409ea5:	c9                   	leave
409ea6:	c2 08 00             	ret    $0x8
409ea9:	55                   	push   %ebp
409eaa:	8b ec                	mov    %esp,%ebp
409eac:	83 ec 64             	sub    $0x64,%esp
409eaf:	53                   	push   %ebx
409eb0:	56                   	push   %esi
409eb1:	33 f6                	xor    %esi,%esi
409eb3:	8b d9                	mov    %ecx,%ebx
409eb5:	57                   	push   %edi
409eb6:	8b fe                	mov    %esi,%edi
409eb8:	89 75 f4             	mov    %esi,-0xc(%ebp)
409ebb:	89 75 d8             	mov    %esi,-0x28(%ebp)
409ebe:	89 75 f0             	mov    %esi,-0x10(%ebp)
409ec1:	89 75 f8             	mov    %esi,-0x8(%ebp)
409ec4:	89 7d fc             	mov    %edi,-0x4(%ebp)
409ec7:	89 75 b0             	mov    %esi,-0x50(%ebp)
409eca:	e8 30 03 00 00       	call   0x40a1ff
409ecf:	85 c0                	test   %eax,%eax
409ed1:	0f 84 b0 02 00 00    	je     0x40a187
409ed7:	8d 45 f4             	lea    -0xc(%ebp),%eax
409eda:	50                   	push   %eax
409edb:	56                   	push   %esi
409edc:	68 40 61 41 00       	push   $0x416140
409ee1:	ff 93 8c 00 00 00    	call   *0x8c(%ebx)
409ee7:	85 c0                	test   %eax,%eax
409ee9:	0f 85 98 02 00 00    	jne    0x40a187
409eef:	8d 45 f0             	lea    -0x10(%ebp),%eax
409ef2:	50                   	push   %eax
409ef3:	8d 45 d8             	lea    -0x28(%ebp),%eax
409ef6:	50                   	push   %eax
409ef7:	68 00 02 00 00       	push   $0x200
409efc:	ff 75 f4             	push   -0xc(%ebp)
409eff:	ff 93 94 00 00 00    	call   *0x94(%ebx)
409f05:	85 c0                	test   %eax,%eax
409f07:	0f 85 7a 02 00 00    	jne    0x40a187
409f0d:	8b 45 d8             	mov    -0x28(%ebp),%eax
409f10:	85 c0                	test   %eax,%eax
409f12:	0f 84 6f 02 00 00    	je     0x40a187
409f18:	89 75 b4             	mov    %esi,-0x4c(%ebp)
409f1b:	89 75 dc             	mov    %esi,-0x24(%ebp)
409f1e:	89 75 e0             	mov    %esi,-0x20(%ebp)
409f21:	e8 a6 02 00 00       	call   0x40a1cc
409f26:	6a 10                	push   $0x10
409f28:	68 30 61 41 00       	push   $0x416130
409f2d:	85 c0                	test   %eax,%eax
409f2f:	0f 84 18 01 00 00    	je     0x40a04d
409f35:	8b 7d e0             	mov    -0x20(%ebp),%edi
409f38:	03 7d f0             	add    -0x10(%ebp),%edi
409f3b:	57                   	push   %edi
409f3c:	89 7d fc             	mov    %edi,-0x4(%ebp)
409f3f:	e8 bc 70 ff ff       	call   0x401000
409f44:	83 c4 0c             	add    $0xc,%esp
409f47:	85 c0                	test   %eax,%eax
409f49:	0f 85 1d 02 00 00    	jne    0x40a16c
409f4f:	ff 77 10             	push   0x10(%edi)
409f52:	8d 4d ec             	lea    -0x14(%ebp),%ecx
409f55:	e8 b8 94 ff ff       	call   0x403412
409f5a:	68 20 2e 41 00       	push   $0x412e20
409f5f:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
409f62:	e8 ab 94 ff ff       	call   0x403412
409f67:	50                   	push   %eax
409f68:	8d 4d ec             	lea    -0x14(%ebp),%ecx
409f6b:	e8 05 91 ff ff       	call   0x403075
409f70:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
409f73:	8b f8                	mov    %eax,%edi
409f75:	e8 b3 ba ff ff       	call   0x405a2d
409f7a:	89 75 d4             	mov    %esi,-0x2c(%ebp)
409f7d:	85 ff                	test   %edi,%edi
409f7f:	0f 84 b8 00 00 00    	je     0x40a03d
409f85:	8b 7d fc             	mov    -0x4(%ebp),%edi
409f88:	8d 4d d0             	lea    -0x30(%ebp),%ecx
409f8b:	0f 28 05 d0 49 41 00 	movaps 0x4149d0,%xmm0
409f92:	0f 11 45 a0          	movups %xmm0,-0x60(%ebp)
409f96:	8b 47 14             	mov    0x14(%edi),%eax
409f99:	83 c0 20             	add    $0x20,%eax
409f9c:	50                   	push   %eax
409f9d:	e8 70 94 ff ff       	call   0x403412
409fa2:	50                   	push   %eax
409fa3:	8d 4d a0             	lea    -0x60(%ebp),%ecx
409fa6:	e8 b9 92 ff ff       	call   0x403264
409fab:	8b 4d d0             	mov    -0x30(%ebp),%ecx
409fae:	e8 7a ba ff ff       	call   0x405a2d
409fb3:	8b 47 18             	mov    0x18(%edi),%eax
409fb6:	8d 4d cc             	lea    -0x34(%ebp),%ecx
409fb9:	83 c0 20             	add    $0x20,%eax
409fbc:	89 75 d0             	mov    %esi,-0x30(%ebp)
409fbf:	50                   	push   %eax
409fc0:	e8 4d 94 ff ff       	call   0x403412
409fc5:	50                   	push   %eax
409fc6:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
409fc9:	e8 96 92 ff ff       	call   0x403264
409fce:	8b 4d cc             	mov    -0x34(%ebp),%ecx
409fd1:	e8 57 ba ff ff       	call   0x405a2d
409fd6:	8d 45 f8             	lea    -0x8(%ebp),%eax
409fd9:	89 75 f8             	mov    %esi,-0x8(%ebp)
409fdc:	50                   	push   %eax
409fdd:	56                   	push   %esi
409fde:	56                   	push   %esi
409fdf:	56                   	push   %esi
409fe0:	ff 77 18             	push   0x18(%edi)
409fe3:	89 75 cc             	mov    %esi,-0x34(%ebp)
409fe6:	ff 77 14             	push   0x14(%edi)
409fe9:	57                   	push   %edi
409fea:	ff 75 f4             	push   -0xc(%ebp)
409fed:	ff 93 98 00 00 00    	call   *0x98(%ebx)
409ff3:	85 c0                	test   %eax,%eax
409ff5:	75 29                	jne    0x40a020
409ff7:	8b 7d f8             	mov    -0x8(%ebp),%edi
409ffa:	8d 4d c8             	lea    -0x38(%ebp),%ecx
409ffd:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a000:	8b 47 1c             	mov    0x1c(%edi),%eax
40a003:	83 c0 20             	add    $0x20,%eax
40a006:	50                   	push   %eax
40a007:	e8 06 94 ff ff       	call   0x403412
40a00c:	50                   	push   %eax
40a00d:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40a010:	e8 4f 92 ff ff       	call   0x403264
40a015:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40a018:	e8 10 ba ff ff       	call   0x405a2d
40a01d:	89 75 c8             	mov    %esi,-0x38(%ebp)
40a020:	83 ec 10             	sub    $0x10,%esp
40a023:	8d 45 a0             	lea    -0x60(%ebp),%eax
40a026:	8b cc                	mov    %esp,%ecx
40a028:	50                   	push   %eax
40a029:	e8 8b 7e ff ff       	call   0x401eb9
40a02e:	8b cb                	mov    %ebx,%ecx
40a030:	e8 ba 7e ff ff       	call   0x401eef
40a035:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40a038:	e8 52 73 ff ff       	call   0x40138f
40a03d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a040:	e8 e8 b9 ff ff       	call   0x405a2d
40a045:	89 75 ec             	mov    %esi,-0x14(%ebp)
40a048:	e9 1c 01 00 00       	jmp    0x40a169
40a04d:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a050:	03 45 dc             	add    -0x24(%ebp),%eax
40a053:	57                   	push   %edi
40a054:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a057:	e8 a4 6f ff ff       	call   0x401000
40a05c:	83 c4 0c             	add    $0xc,%esp
40a05f:	85 c0                	test   %eax,%eax
40a061:	0f 85 05 01 00 00    	jne    0x40a16c
40a067:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a06a:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40a06d:	ff 70 10             	push   0x10(%eax)
40a070:	e8 9d 93 ff ff       	call   0x403412
40a075:	68 20 2e 41 00       	push   $0x412e20
40a07a:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40a07d:	e8 90 93 ff ff       	call   0x403412
40a082:	50                   	push   %eax
40a083:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40a086:	e8 ea 8f ff ff       	call   0x403075
40a08b:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40a08e:	8b f8                	mov    %eax,%edi
40a090:	e8 98 b9 ff ff       	call   0x405a2d
40a095:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40a098:	85 ff                	test   %edi,%edi
40a09a:	0f 84 be 00 00 00    	je     0x40a15e
40a0a0:	8b 7d fc             	mov    -0x4(%ebp),%edi
40a0a3:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a0a6:	0f 28 05 d0 49 41 00 	movaps 0x4149d0,%xmm0
40a0ad:	0f 11 45 a0          	movups %xmm0,-0x60(%ebp)
40a0b1:	8b 47 14             	mov    0x14(%edi),%eax
40a0b4:	83 c0 20             	add    $0x20,%eax
40a0b7:	50                   	push   %eax
40a0b8:	e8 55 93 ff ff       	call   0x403412
40a0bd:	50                   	push   %eax
40a0be:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40a0c1:	e8 9e 91 ff ff       	call   0x403264
40a0c6:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40a0c9:	e8 5f b9 ff ff       	call   0x405a2d
40a0ce:	8b 47 18             	mov    0x18(%edi),%eax
40a0d1:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40a0d4:	83 c0 20             	add    $0x20,%eax
40a0d7:	89 75 c0             	mov    %esi,-0x40(%ebp)
40a0da:	50                   	push   %eax
40a0db:	e8 32 93 ff ff       	call   0x403412
40a0e0:	50                   	push   %eax
40a0e1:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40a0e4:	e8 7b 91 ff ff       	call   0x403264
40a0e9:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40a0ec:	e8 3c b9 ff ff       	call   0x405a2d
40a0f1:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a0f4:	89 75 f8             	mov    %esi,-0x8(%ebp)
40a0f7:	50                   	push   %eax
40a0f8:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a0fb:	56                   	push   %esi
40a0fc:	56                   	push   %esi
40a0fd:	56                   	push   %esi
40a0fe:	ff 70 18             	push   0x18(%eax)
40a101:	89 75 bc             	mov    %esi,-0x44(%ebp)