406bc2:	33 c0                	xor    %eax,%eax
406bc4:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
406bc8:	8b 8d 3c ff ff ff    	mov    -0xc4(%ebp),%ecx
406bce:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
406bd5:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
406bdc:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
406be0:	83 f9 08             	cmp    $0x8,%ecx
406be3:	72 35                	jb     0x406c1a
406be5:	8b 95 28 ff ff ff    	mov    -0xd8(%ebp),%edx
406beb:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406bf2:	8b c2                	mov    %edx,%eax
406bf4:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406bfa:	72 14                	jb     0x406c10
406bfc:	8b 50 fc             	mov    -0x4(%eax),%edx
406bff:	83 c1 23             	add    $0x23,%ecx
406c02:	2b c2                	sub    %edx,%eax
406c04:	83 c0 fc             	add    $0xfffffffc,%eax
406c07:	83 f8 1f             	cmp    $0x1f,%eax
406c0a:	0f 87 b5 10 00 00    	ja     0x407cc5
406c10:	51                   	push   %ecx
406c11:	52                   	push   %edx
406c12:	e8 f7 4c 01 00       	call   0x41b90e
406c17:	83 c4 08             	add    $0x8,%esp
406c1a:	6a 00                	push   $0x0
406c1c:	68 2c af 44 00       	push   $0x44af2c
406c21:	8d 8d e0 fe ff ff    	lea    -0x120(%ebp),%ecx
406c27:	c7 85 e0 fe ff ff 00 	movl   $0x0,-0x120(%ebp)
406c2e:	00 00 00
406c31:	c7 85 f0 fe ff ff 00 	movl   $0x0,-0x110(%ebp)
406c38:	00 00 00
406c3b:	c7 85 f4 fe ff ff 00 	movl   $0x0,-0x10c(%ebp)
406c42:	00 00 00
406c45:	e8 c6 b8 ff ff       	call   0x402510
406c4a:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
406c4e:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
406c54:	83 bd 6c ff ff ff 08 	cmpl   $0x8,-0x94(%ebp)
406c5b:	8b b5 68 ff ff ff    	mov    -0x98(%ebp),%esi
406c61:	8b d6                	mov    %esi,%edx
406c63:	0f 43 8d 58 ff ff ff 	cmovae -0xa8(%ebp),%ecx
406c6a:	0f 93 85 5f fc ff ff 	setae  -0x3a1(%ebp)
406c71:	6a 01                	push   $0x1
406c73:	68 0c dc 44 00       	push   $0x44dc0c
406c78:	51                   	push   %ecx
406c79:	e8 f2 50 00 00       	call   0x40bd70
406c7e:	83 c4 0c             	add    $0xc,%esp
406c81:	89 85 54 fc ff ff    	mov    %eax,-0x3ac(%ebp)
406c87:	3b f0                	cmp    %eax,%esi
406c89:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
406c90:	8b d0                	mov    %eax,%edx
406c92:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
406c99:	0f 42 d6             	cmovb  %esi,%edx
406c9c:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
406ca3:	80 bd 5f fc ff ff 00 	cmpb   $0x0,-0x3a1(%ebp)
406caa:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
406cb0:	52                   	push   %edx
406cb1:	0f 45 8d 58 ff ff ff 	cmovne -0xa8(%ebp),%ecx
406cb8:	51                   	push   %ecx
406cb9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406cbc:	e8 4f b8 ff ff       	call   0x402510
406cc1:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
406cc7:	83 f9 08             	cmp    $0x8,%ecx
406cca:	72 35                	jb     0x406d01
406ccc:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
406cd2:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406cd9:	8b c2                	mov    %edx,%eax
406cdb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406ce1:	72 14                	jb     0x406cf7
406ce3:	8b 50 fc             	mov    -0x4(%eax),%edx
406ce6:	83 c1 23             	add    $0x23,%ecx
406ce9:	2b c2                	sub    %edx,%eax
406ceb:	83 c0 fc             	add    $0xfffffffc,%eax
406cee:	83 f8 1f             	cmp    $0x1f,%eax
406cf1:	0f 87 ce 0f 00 00    	ja     0x407cc5
406cf7:	51                   	push   %ecx
406cf8:	52                   	push   %edx
406cf9:	e8 10 4c 01 00       	call   0x41b90e
406cfe:	83 c4 08             	add    $0x8,%esp
406d01:	0f 10 45 d8          	movups -0x28(%ebp),%xmm0
406d05:	8b 95 54 fc ff ff    	mov    -0x3ac(%ebp),%edx
406d0b:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
406d11:	42                   	inc    %edx
406d12:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
406d19:	0f 11 85 40 ff ff ff 	movups %xmm0,-0xc0(%ebp)
406d20:	f3 0f 7e 45 e8       	movq   -0x18(%ebp),%xmm0
406d25:	66 0f d6 85 50 ff ff 	movq   %xmm0,-0xb0(%ebp)
406d2c:	ff
406d2d:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
406d34:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
406d3b:	3b c2                	cmp    %edx,%eax
406d3d:	0f 82 78 0f 00 00    	jb     0x407cbb
406d43:	2b c2                	sub    %edx,%eax
406d45:	83 c9 ff             	or     $0xffffffff,%ecx
406d48:	83 f8 ff             	cmp    $0xffffffff,%eax
406d4b:	0f 42 c8             	cmovb  %eax,%ecx
406d4e:	83 bd 6c ff ff ff 08 	cmpl   $0x8,-0x94(%ebp)
406d55:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
406d5b:	0f 43 85 58 ff ff ff 	cmovae -0xa8(%ebp),%eax
406d62:	51                   	push   %ecx
406d63:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406d66:	8d 04 50             	lea    (%eax,%edx,2),%eax
406d69:	50                   	push   %eax
406d6a:	e8 a1 b7 ff ff       	call   0x402510
406d6f:	8b 8d f4 fe ff ff    	mov    -0x10c(%ebp),%ecx
406d75:	83 f9 08             	cmp    $0x8,%ecx
406d78:	72 35                	jb     0x406daf
406d7a:	8b 95 e0 fe ff ff    	mov    -0x120(%ebp),%edx
406d80:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406d87:	8b c2                	mov    %edx,%eax
406d89:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406d8f:	72 14                	jb     0x406da5
406d91:	8b 50 fc             	mov    -0x4(%eax),%edx
406d94:	83 c1 23             	add    $0x23,%ecx
406d97:	2b c2                	sub    %edx,%eax
406d99:	83 c0 fc             	add    $0xfffffffc,%eax
406d9c:	83 f8 1f             	cmp    $0x1f,%eax
406d9f:	0f 87 20 0f 00 00    	ja     0x407cc5
406da5:	51                   	push   %ecx
406da6:	52                   	push   %edx
406da7:	e8 62 4b 01 00       	call   0x41b90e
406dac:	83 c4 08             	add    $0x8,%esp
406daf:	0f 10 45 d8          	movups -0x28(%ebp),%xmm0
406db3:	83 bd 0c ff ff ff 08 	cmpl   $0x8,-0xf4(%ebp)
406dba:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
406dc0:	8b bd f8 fe ff ff    	mov    -0x108(%ebp),%edi
406dc6:	8b b5 08 ff ff ff    	mov    -0xf8(%ebp),%esi
406dcc:	0f 43 cf             	cmovae %edi,%ecx
406dcf:	6a 01                	push   $0x1
406dd1:	0f 11 85 e0 fe ff ff 	movups %xmm0,-0x120(%ebp)
406dd8:	8b d6                	mov    %esi,%edx
406dda:	f3 0f 7e 45 e8       	movq   -0x18(%ebp),%xmm0
406ddf:	0f 93 85 5f fc ff ff 	setae  -0x3a1(%ebp)
406de6:	68 0c dc 44 00       	push   $0x44dc0c
406deb:	51                   	push   %ecx
406dec:	66 0f d6 85 f0 fe ff 	movq   %xmm0,-0x110(%ebp)
406df3:	ff
406df4:	e8 77 4f 00 00       	call   0x40bd70
406df9:	83 c4 0c             	add    $0xc,%esp
406dfc:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
406e03:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
406e0a:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
406e11:	8d 50 01             	lea    0x1(%eax),%edx
406e14:	3b f2                	cmp    %edx,%esi
406e16:	0f 82 9f 0e 00 00    	jb     0x407cbb
406e1c:	2b f2                	sub    %edx,%esi
406e1e:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
406e24:	83 c9 ff             	or     $0xffffffff,%ecx
406e27:	83 fe ff             	cmp    $0xffffffff,%esi
406e2a:	0f 42 ce             	cmovb  %esi,%ecx
406e2d:	80 bd 5f fc ff ff 00 	cmpb   $0x0,-0x3a1(%ebp)
406e34:	51                   	push   %ecx
406e35:	0f 45 c7             	cmovne %edi,%eax
406e38:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406e3b:	8d 04 50             	lea    (%eax,%edx,2),%eax
406e3e:	50                   	push   %eax
406e3f:	e8 cc b6 ff ff       	call   0x402510
406e44:	8b bd 58 fc ff ff    	mov    -0x3a8(%ebp),%edi
406e4a:	8b 45 8c             	mov    -0x74(%ebp),%eax
406e4d:	81 cf e0 00 00 00    	or     $0xe0,%edi
406e53:	83 f8 08             	cmp    $0x8,%eax
406e56:	72 35                	jb     0x406e8d
406e58:	8b 95 78 ff ff ff    	mov    -0x88(%ebp),%edx
406e5e:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
406e65:	8b c2                	mov    %edx,%eax
406e67:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406e6d:	72 14                	jb     0x406e83
406e6f:	8b 50 fc             	mov    -0x4(%eax),%edx
406e72:	83 c1 23             	add    $0x23,%ecx
406e75:	2b c2                	sub    %edx,%eax
406e77:	83 c0 fc             	add    $0xfffffffc,%eax
406e7a:	83 f8 1f             	cmp    $0x1f,%eax
406e7d:	0f 87 42 0e 00 00    	ja     0x407cc5
406e83:	51                   	push   %ecx
406e84:	52                   	push   %edx
406e85:	e8 84 4a 01 00       	call   0x41b90e
406e8a:	83 c4 08             	add    $0x8,%esp
406e8d:	0f 10 45 d8          	movups -0x28(%ebp),%xmm0
406e91:	8b 45 c4             	mov    -0x3c(%ebp),%eax
406e94:	8d 8d e0 fe ff ff    	lea    -0x120(%ebp),%ecx
406e9a:	51                   	push   %ecx
406e9b:	0f 11 85 78 ff ff ff 	movups %xmm0,-0x88(%ebp)
406ea2:	f3 0f 7e 45 e8       	movq   -0x18(%ebp),%xmm0
406ea7:	66 0f d6 45 88       	movq   %xmm0,-0x78(%ebp)
406eac:	3b 45 c8             	cmp    -0x38(%ebp),%eax
406eaf:	74 0d                	je     0x406ebe
406eb1:	8b c8                	mov    %eax,%ecx
406eb3:	e8 08 b4 ff ff       	call   0x4022c0
406eb8:	83 45 c4 18          	addl   $0x18,-0x3c(%ebp)
406ebc:	eb 09                	jmp    0x406ec7
406ebe:	50                   	push   %eax
406ebf:	8d 4d c0             	lea    -0x40(%ebp),%ecx
406ec2:	e8 89 61 00 00       	call   0x40d050
406ec7:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
406ecb:	8b 8d f4 fe ff ff    	mov    -0x10c(%ebp),%ecx
406ed1:	83 f9 08             	cmp    $0x8,%ecx
406ed4:	72 35                	jb     0x406f0b
406ed6:	8b 95 e0 fe ff ff    	mov    -0x120(%ebp),%edx
406edc:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406ee3:	8b c2                	mov    %edx,%eax
406ee5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406eeb:	72 14                	jb     0x406f01
406eed:	8b 50 fc             	mov    -0x4(%eax),%edx
406ef0:	83 c1 23             	add    $0x23,%ecx
406ef3:	2b c2                	sub    %edx,%eax
406ef5:	83 c0 fc             	add    $0xfffffffc,%eax
406ef8:	83 f8 1f             	cmp    $0x1f,%eax
406efb:	0f 87 c4 0d 00 00    	ja     0x407cc5
406f01:	51                   	push   %ecx
406f02:	52                   	push   %edx
406f03:	e8 06 4a 01 00       	call   0x41b90e
406f08:	83 c4 08             	add    $0x8,%esp
406f0b:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
406f0f:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
406f12:	83 f9 08             	cmp    $0x8,%ecx
406f15:	72 32                	jb     0x406f49
406f17:	8b 55 90             	mov    -0x70(%ebp),%edx
406f1a:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406f21:	8b c2                	mov    %edx,%eax
406f23:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406f29:	72 14                	jb     0x406f3f
406f2b:	8b 50 fc             	mov    -0x4(%eax),%edx
406f2e:	83 c1 23             	add    $0x23,%ecx
406f31:	2b c2                	sub    %edx,%eax
406f33:	83 c0 fc             	add    $0xfffffffc,%eax
406f36:	83 f8 1f             	cmp    $0x1f,%eax
406f39:	0f 87 86 0d 00 00    	ja     0x407cc5
406f3f:	51                   	push   %ecx
406f40:	52                   	push   %edx
406f41:	e8 c8 49 01 00       	call   0x41b90e
406f46:	83 c4 08             	add    $0x8,%esp
406f49:	33 c0                	xor    %eax,%eax
406f4b:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
406f4f:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
406f55:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
406f5c:	c7 45 a4 07 00 00 00 	movl   $0x7,-0x5c(%ebp)
406f63:	66 89 45 90          	mov    %ax,-0x70(%ebp)
406f67:	83 f9 08             	cmp    $0x8,%ecx
406f6a:	72 35                	jb     0x406fa1
406f6c:	8b 95 58 ff ff ff    	mov    -0xa8(%ebp),%edx
406f72:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
406f79:	8b c2                	mov    %edx,%eax
406f7b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406f81:	72 14                	jb     0x406f97
406f83:	8b 50 fc             	mov    -0x4(%eax),%edx
406f86:	83 c1 23             	add    $0x23,%ecx
406f89:	2b c2                	sub    %edx,%eax
406f8b:	83 c0 fc             	add    $0xfffffffc,%eax
406f8e:	83 f8 1f             	cmp    $0x1f,%eax
406f91:	0f 87 2e 0d 00 00    	ja     0x407cc5
406f97:	51                   	push   %ecx
406f98:	52                   	push   %edx
406f99:	e8 70 49 01 00       	call   0x41b90e
406f9e:	83 c4 08             	add    $0x8,%esp
406fa1:	8b b5 50 fc ff ff    	mov    -0x3b0(%ebp),%esi
406fa7:	4e                   	dec    %esi
406fa8:	89 b5 50 fc ff ff    	mov    %esi,-0x3b0(%ebp)
406fae:	83 fe fc             	cmp    $0xfffffffc,%esi
406fb1:	0f 8f 89 fa ff ff    	jg     0x406a40
406fb7:	83 7d 8c 08          	cmpl   $0x8,-0x74(%ebp)
406fbb:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406fc1:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
406fc7:	0f 43 85 78 ff ff ff 	cmovae -0x88(%ebp),%eax
406fce:	8b 55 88             	mov    -0x78(%ebp),%edx
406fd1:	3b d1                	cmp    %ecx,%edx
406fd3:	77 2c                	ja     0x407001
406fd5:	8d 34 12             	lea    (%edx,%edx,1),%esi
406fd8:	89 95 20 ff ff ff    	mov    %edx,-0xe0(%ebp)
406fde:	83 f9 08             	cmp    $0x8,%ecx
406fe1:	8d bd 10 ff ff ff    	lea    -0xf0(%ebp),%edi
406fe7:	56                   	push   %esi
406fe8:	0f 43 bd 10 ff ff ff 	cmovae -0xf0(%ebp),%edi
406fef:	50                   	push   %eax
406ff0:	57                   	push   %edi
406ff1:	e8 5a 64 01 00       	call   0x41d450
406ff6:	83 c4 0c             	add    $0xc,%esp
406ff9:	33 c0                	xor    %eax,%eax
406ffb:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
406fff:	eb 1a                	jmp    0x40701b
407001:	50                   	push   %eax
407002:	c6 85 54 fc ff ff 00 	movb   $0x0,-0x3ac(%ebp)
407009:	8d 8d 10 ff ff ff    	lea    -0xf0(%ebp),%ecx
40700f:	ff b5 54 fc ff ff    	push   -0x3ac(%ebp)
407015:	52                   	push   %edx
407016:	e8 f5 b5 ff ff       	call   0x402610
40701b:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
407021:	8d 95 c8 fe ff ff    	lea    -0x138(%ebp),%edx
407027:	8d 8d 10 ff ff ff    	lea    -0xf0(%ebp),%ecx
40702d:	e8 ce da 00 00       	call   0x414b00
407032:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
407038:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40703d:	2b c1                	sub    %ecx,%eax
40703f:	83 f8 01             	cmp    $0x1,%eax
407042:	0f 82 78 0c 00 00    	jb     0x407cc0
407048:	83 bd 54 ff ff ff 08 	cmpl   $0x8,-0xac(%ebp)
40704f:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
407055:	6a 01                	push   $0x1
407057:	0f 43 85 40 ff ff ff 	cmovae -0xc0(%ebp),%eax
40705e:	68 0c dc 44 00       	push   $0x44dc0c
407063:	51                   	push   %ecx
407064:	50                   	push   %eax
407065:	51                   	push   %ecx
407066:	ff b5 4c fc ff ff    	push   -0x3b4(%ebp)
40706c:	8d 4d 90             	lea    -0x70(%ebp),%ecx
40706f:	e8 fc 5d 00 00       	call   0x40ce70
407074:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
407078:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
40707e:	83 7d 8c 08          	cmpl   $0x8,-0x74(%ebp)
407082:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
407085:	8b c1                	mov    %ecx,%eax
407087:	8b 7d a0             	mov    -0x60(%ebp),%edi
40708a:	0f 43 d6             	cmovae %esi,%edx
40708d:	8b 75 88             	mov    -0x78(%ebp),%esi
407090:	2b c7                	sub    %edi,%eax
407092:	3b f0                	cmp    %eax,%esi
407094:	77 33                	ja     0x4070c9
407096:	8d 04 37             	lea    (%edi,%esi,1),%eax
407099:	83 f9 08             	cmp    $0x8,%ecx
40709c:	89 45 a0             	mov    %eax,-0x60(%ebp)
40709f:	8d 75 90             	lea    -0x70(%ebp),%esi
4070a2:	0f 43 75 90          	cmovae -0x70(%ebp),%esi
4070a6:	8b 45 88             	mov    -0x78(%ebp),%eax
4070a9:	03 c0                	add    %eax,%eax
4070ab:	50                   	push   %eax
4070ac:	8d 0c 7e             	lea    (%esi,%edi,2),%ecx
4070af:	52                   	push   %edx
4070b0:	51                   	push   %ecx
4070b1:	e8 9a 63 01 00       	call   0x41d450
4070b6:	8b 45 88             	mov    -0x78(%ebp),%eax
4070b9:	83 c4 0c             	add    $0xc,%esp
4070bc:	03 c7                	add    %edi,%eax
4070be:	33 c9                	xor    %ecx,%ecx
4070c0:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
4070c4:	8d 45 90             	lea    -0x70(%ebp),%eax
4070c7:	eb 18                	jmp    0x4070e1
4070c9:	56                   	push   %esi
4070ca:	52                   	push   %edx
4070cb:	c6 85 54 fc ff ff 00 	movb   $0x0,-0x3ac(%ebp)
4070d2:	8d 4d 90             	lea    -0x70(%ebp),%ecx
4070d5:	ff b5 54 fc ff ff    	push   -0x3ac(%ebp)
4070db:	56                   	push   %esi
4070dc:	e8 5f b6 ff ff       	call   0x402740
4070e1:	c7 85 28 fc ff ff 00 	movl   $0x0,-0x3d8(%ebp)
4070e8:	00 00 00
4070eb:	33 c9                	xor    %ecx,%ecx
4070ed:	c7 85 38 fc ff ff 00 	movl   $0x0,-0x3c8(%ebp)
4070f4:	00 00 00
4070f7:	c7 85 3c fc ff ff 00 	movl   $0x0,-0x3c4(%ebp)
4070fe:	00 00 00
407101:	0f 10 00             	movups (%eax),%xmm0
407104:	0f 11 85 28 fc ff ff 	movups %xmm0,-0x3d8(%ebp)
40710b:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0