40cb45:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40cb48:	50                   	push   %eax
40cb49:	8d 45 e0             	lea    -0x20(%ebp),%eax
40cb4c:	50                   	push   %eax
40cb4d:	e8 48 e3 00 00       	call   0x41ae9a
40cb52:	0f b7 45 e0          	movzwl -0x20(%ebp),%eax
40cb56:	83 c4 14             	add    $0x14,%esp
40cb59:	66 89 46 0e          	mov    %ax,0xe(%esi)
40cb5d:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
40cb63:	89 30                	mov    %esi,(%eax)
40cb65:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40cb6b:	c7 45 fc 0c 00 00 00 	movl   $0xc,-0x4(%ebp)
40cb72:	50                   	push   %eax
40cb73:	e8 07 e8 00 00       	call   0x41b37f
40cb78:	8b 45 98             	mov    -0x68(%ebp),%eax
40cb7b:	83 c4 04             	add    $0x4,%esp
40cb7e:	85 c0                	test   %eax,%eax
40cb80:	74 09                	je     0x40cb8b
40cb82:	50                   	push   %eax
40cb83:	e8 c5 94 01 00       	call   0x42604d
40cb88:	83 c4 04             	add    $0x4,%esp
40cb8b:	8b 45 90             	mov    -0x70(%ebp),%eax
40cb8e:	c7 45 98 00 00 00 00 	movl   $0x0,-0x68(%ebp)
40cb95:	85 c0                	test   %eax,%eax
40cb97:	74 09                	je     0x40cba2
40cb99:	50                   	push   %eax
40cb9a:	e8 ae 94 01 00       	call   0x42604d
40cb9f:	83 c4 04             	add    $0x4,%esp
40cba2:	8b 45 88             	mov    -0x78(%ebp),%eax
40cba5:	c7 45 90 00 00 00 00 	movl   $0x0,-0x70(%ebp)
40cbac:	85 c0                	test   %eax,%eax
40cbae:	74 09                	je     0x40cbb9
40cbb0:	50                   	push   %eax
40cbb1:	e8 97 94 01 00       	call   0x42604d
40cbb6:	83 c4 04             	add    $0x4,%esp
40cbb9:	8b 45 80             	mov    -0x80(%ebp),%eax
40cbbc:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
40cbc3:	85 c0                	test   %eax,%eax
40cbc5:	74 09                	je     0x40cbd0
40cbc7:	50                   	push   %eax
40cbc8:	e8 80 94 01 00       	call   0x42604d
40cbcd:	83 c4 04             	add    $0x4,%esp
40cbd0:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
40cbd6:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%ebp)
40cbdd:	85 c0                	test   %eax,%eax
40cbdf:	74 09                	je     0x40cbea
40cbe1:	50                   	push   %eax
40cbe2:	e8 66 94 01 00       	call   0x42604d
40cbe7:	83 c4 04             	add    $0x4,%esp
40cbea:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
40cbf0:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
40cbf7:	00 00 00
40cbfa:	85 c0                	test   %eax,%eax
40cbfc:	74 09                	je     0x40cc07
40cbfe:	50                   	push   %eax
40cbff:	e8 49 94 01 00       	call   0x42604d
40cc04:	83 c4 04             	add    $0x4,%esp
40cc07:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
40cc0d:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
40cc14:	00 00 00
40cc17:	e8 8c e4 00 00       	call   0x41b0a8
40cc1c:	b8 04 00 00 00       	mov    $0x4,%eax
40cc21:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cc24:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cc2b:	59                   	pop    %ecx
40cc2c:	5f                   	pop    %edi
40cc2d:	5e                   	pop    %esi
40cc2e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40cc31:	33 cd                	xor    %ebp,%ecx
40cc33:	e8 98 ec 00 00       	call   0x41b8d0
40cc38:	8b e5                	mov    %ebp,%esp
40cc3a:	5d                   	pop    %ebp
40cc3b:	8b e3                	mov    %ebx,%esp
40cc3d:	5b                   	pop    %ebx
40cc3e:	c3                   	ret
40cc3f:	68 f0 da 44 00       	push   $0x44daf0
40cc44:	e8 31 e2 00 00       	call   0x41ae7a
40cc49:	e8 cf e1 00 00       	call   0x41ae1d
40cc4e:	cc                   	int3
40cc4f:	cc                   	int3
40cc50:	55                   	push   %ebp
40cc51:	8b ec                	mov    %esp,%ebp
40cc53:	83 ec 14             	sub    $0x14,%esp
40cc56:	53                   	push   %ebx
40cc57:	8b 5d 10             	mov    0x10(%ebp),%ebx
40cc5a:	56                   	push   %esi
40cc5b:	8b 75 0c             	mov    0xc(%ebp),%esi
40cc5e:	57                   	push   %edi
40cc5f:	8b f9                	mov    %ecx,%edi
40cc61:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40cc67:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40cc6e:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40cc75:	8b 46 10             	mov    0x10(%esi),%eax
40cc78:	8b 4b 10             	mov    0x10(%ebx),%ecx
40cc7b:	8b 53 14             	mov    0x14(%ebx),%edx
40cc7e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cc81:	03 c1                	add    %ecx,%eax
40cc83:	89 45 f4             	mov    %eax,-0xc(%ebp)
40cc86:	8b 46 14             	mov    0x14(%esi),%eax
40cc89:	2b 45 fc             	sub    -0x4(%ebp),%eax
40cc8c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40cc8f:	3b c8                	cmp    %eax,%ecx
40cc91:	77 63                	ja     0x40ccf6
40cc93:	3b 56 14             	cmp    0x14(%esi),%edx
40cc96:	77 5e                	ja     0x40ccf6
40cc98:	0f 10 06             	movups (%esi),%xmm0
40cc9b:	33 c0                	xor    %eax,%eax
40cc9d:	8b d7                	mov    %edi,%edx
40cc9f:	0f 11 07             	movups %xmm0,(%edi)
40cca2:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
40cca7:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40ccac:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40ccb3:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40ccba:	66 89 06             	mov    %ax,(%esi)
40ccbd:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40ccc1:	72 02                	jb     0x40ccc5
40ccc3:	8b 17                	mov    (%edi),%edx
40ccc5:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
40ccc9:	72 02                	jb     0x40cccd
40cccb:	8b 1b                	mov    (%ebx),%ebx
40cccd:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
40ccd4:	50                   	push   %eax
40ccd5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ccd8:	53                   	push   %ebx
40ccd9:	8d 04 42             	lea    (%edx,%eax,2),%eax
40ccdc:	50                   	push   %eax
40ccdd:	e8 6e 07 01 00       	call   0x41d450
40cce2:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cce5:	83 c4 0c             	add    $0xc,%esp
40cce8:	89 47 10             	mov    %eax,0x10(%edi)
40cceb:	8b c7                	mov    %edi,%eax
40cced:	5f                   	pop    %edi
40ccee:	5e                   	pop    %esi
40ccef:	5b                   	pop    %ebx
40ccf0:	8b e5                	mov    %ebp,%esp
40ccf2:	5d                   	pop    %ebp
40ccf3:	c2 0c 00             	ret    $0xc
40ccf6:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ccf9:	2b d1                	sub    %ecx,%edx
40ccfb:	3b c2                	cmp    %edx,%eax
40ccfd:	77 66                	ja     0x40cd65
40ccff:	0f 10 03             	movups (%ebx),%xmm0
40cd02:	33 d2                	xor    %edx,%edx
40cd04:	0f 11 07             	movups %xmm0,(%edi)
40cd07:	f3 0f 7e 43 10       	movq   0x10(%ebx),%xmm0
40cd0c:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40cd11:	66 89 13             	mov    %dx,(%ebx)
40cd14:	8d 14 00             	lea    (%eax,%eax,1),%edx
40cd17:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
40cd1e:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
40cd25:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
40cd2c:	8b 1f                	mov    (%edi),%ebx
40cd2e:	50                   	push   %eax
40cd2f:	53                   	push   %ebx
40cd30:	89 55 f8             	mov    %edx,-0x8(%ebp)
40cd33:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
40cd36:	50                   	push   %eax
40cd37:	e8 14 07 01 00       	call   0x41d450
40cd3c:	83 c4 0c             	add    $0xc,%esp
40cd3f:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40cd43:	72 02                	jb     0x40cd47
40cd45:	8b 36                	mov    (%esi),%esi
40cd47:	ff 75 f8             	push   -0x8(%ebp)
40cd4a:	56                   	push   %esi
40cd4b:	53                   	push   %ebx
40cd4c:	e8 ff 06 01 00       	call   0x41d450
40cd51:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cd54:	83 c4 0c             	add    $0xc,%esp
40cd57:	89 47 10             	mov    %eax,0x10(%edi)
40cd5a:	8b c7                	mov    %edi,%eax
40cd5c:	5f                   	pop    %edi
40cd5d:	5e                   	pop    %esi
40cd5e:	5b                   	pop    %ebx
40cd5f:	8b e5                	mov    %ebp,%esp
40cd61:	5d                   	pop    %ebp
40cd62:	c2 0c 00             	ret    $0xc
40cd65:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cd68:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40cd6d:	2b c2                	sub    %edx,%eax
40cd6f:	3b c1                	cmp    %ecx,%eax
40cd71:	0f 82 e3 00 00 00    	jb     0x40ce5a
40cd77:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cd7a:	83 c8 07             	or     $0x7,%eax
40cd7d:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
40cd82:	76 07                	jbe    0x40cd8b
40cd84:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40cd89:	eb 0a                	jmp    0x40cd95
40cd8b:	b9 0a 00 00 00       	mov    $0xa,%ecx
40cd90:	3b c1                	cmp    %ecx,%eax
40cd92:	0f 42 c1             	cmovb  %ecx,%eax
40cd95:	33 c9                	xor    %ecx,%ecx
40cd97:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cd9a:	83 c0 01             	add    $0x1,%eax
40cd9d:	0f 92 c1             	setb   %cl
40cda0:	f7 d9                	neg    %ecx
40cda2:	0b c8                	or     %eax,%ecx
40cda4:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
40cdaa:	0f 87 a5 00 00 00    	ja     0x40ce55
40cdb0:	03 c9                	add    %ecx,%ecx
40cdb2:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40cdb8:	72 2a                	jb     0x40cde4
40cdba:	8d 41 23             	lea    0x23(%ecx),%eax
40cdbd:	3b c1                	cmp    %ecx,%eax
40cdbf:	0f 86 90 00 00 00    	jbe    0x40ce55
40cdc5:	50                   	push   %eax
40cdc6:	e8 13 eb 00 00       	call   0x41b8de
40cdcb:	83 c4 04             	add    $0x4,%esp
40cdce:	85 c0                	test   %eax,%eax
40cdd0:	0f 84 89 00 00 00    	je     0x40ce5f
40cdd6:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cdd9:	8d 48 23             	lea    0x23(%eax),%ecx
40cddc:	83 e1 e0             	and    $0xffffffe0,%ecx
40cddf:	89 41 fc             	mov    %eax,-0x4(%ecx)
40cde2:	eb 19                	jmp    0x40cdfd
40cde4:	85 c9                	test   %ecx,%ecx
40cde6:	74 13                	je     0x40cdfb
40cde8:	51                   	push   %ecx
40cde9:	e8 f0 ea 00 00       	call   0x41b8de
40cdee:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cdf1:	83 c4 04             	add    $0x4,%esp
40cdf4:	8b c8                	mov    %eax,%ecx
40cdf6:	89 45 f0             	mov    %eax,-0x10(%ebp)
40cdf9:	eb 05                	jmp    0x40ce00
40cdfb:	33 c9                	xor    %ecx,%ecx
40cdfd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ce00:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ce03:	89 47 10             	mov    %eax,0x10(%edi)
40ce06:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ce09:	89 0f                	mov    %ecx,(%edi)
40ce0b:	89 47 14             	mov    %eax,0x14(%edi)
40ce0e:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40ce12:	72 02                	jb     0x40ce16
40ce14:	8b 36                	mov    (%esi),%esi
40ce16:	8d 04 12             	lea    (%edx,%edx,1),%eax
40ce19:	50                   	push   %eax
40ce1a:	56                   	push   %esi
40ce1b:	51                   	push   %ecx
40ce1c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ce1f:	e8 2c 06 01 00       	call   0x41d450
40ce24:	83 c4 0c             	add    $0xc,%esp
40ce27:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
40ce2b:	72 02                	jb     0x40ce2f
40ce2d:	8b 1b                	mov    (%ebx),%ebx
40ce2f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40ce32:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40ce39:	51                   	push   %ecx
40ce3a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ce3d:	03 4d f0             	add    -0x10(%ebp),%ecx
40ce40:	53                   	push   %ebx
40ce41:	51                   	push   %ecx
40ce42:	e8 09 06 01 00       	call   0x41d450
40ce47:	83 c4 0c             	add    $0xc,%esp
40ce4a:	8b c7                	mov    %edi,%eax
40ce4c:	5f                   	pop    %edi
40ce4d:	5e                   	pop    %esi
40ce4e:	5b                   	pop    %ebx
40ce4f:	8b e5                	mov    %ebp,%esp
40ce51:	5d                   	pop    %ebp
40ce52:	c2 0c 00             	ret    $0xc
40ce55:	e8 a6 43 ff ff       	call   0x401200
40ce5a:	e8 41 44 ff ff       	call   0x4012a0
40ce5f:	e8 1b 3c 01 00       	call   0x420a7f
40ce64:	cc                   	int3
40ce65:	cc                   	int3
40ce66:	cc                   	int3
40ce67:	cc                   	int3
40ce68:	cc                   	int3
40ce69:	cc                   	int3
40ce6a:	cc                   	int3
40ce6b:	cc                   	int3
40ce6c:	cc                   	int3
40ce6d:	cc                   	int3
40ce6e:	cc                   	int3
40ce6f:	cc                   	int3
40ce70:	55                   	push   %ebp
40ce71:	8b ec                	mov    %esp,%ebp
40ce73:	83 ec 10             	sub    $0x10,%esp
40ce76:	8b 45 10             	mov    0x10(%ebp),%eax
40ce79:	8b 55 1c             	mov    0x1c(%ebp),%edx
40ce7c:	53                   	push   %ebx
40ce7d:	8b d9                	mov    %ecx,%ebx
40ce7f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ce82:	8b 45 14             	mov    0x14(%ebp),%eax
40ce85:	03 d0                	add    %eax,%edx
40ce87:	8b 4d 18             	mov    0x18(%ebp),%ecx
40ce8a:	56                   	push   %esi
40ce8b:	be 07 00 00 00       	mov    $0x7,%esi
40ce90:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ce93:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ce96:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40ce9c:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
40cea3:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)
40ceaa:	89 55 fc             	mov    %edx,-0x4(%ebp)
40cead:	57                   	push   %edi
40ceae:	8b fb                	mov    %ebx,%edi
40ceb0:	3b d6                	cmp    %esi,%edx
40ceb2:	76 7f                	jbe    0x40cf33
40ceb4:	8b f2                	mov    %edx,%esi
40ceb6:	83 ce 07             	or     $0x7,%esi
40ceb9:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
40cebf:	76 07                	jbe    0x40cec8
40cec1:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40cec6:	eb 0a                	jmp    0x40ced2
40cec8:	b8 0a 00 00 00       	mov    $0xa,%eax
40cecd:	3b f0                	cmp    %eax,%esi
40cecf:	0f 42 f0             	cmovb  %eax,%esi
40ced2:	33 c9                	xor    %ecx,%ecx
40ced4:	8b c6                	mov    %esi,%eax
40ced6:	83 c0 01             	add    $0x1,%eax
40ced9:	0f 92 c1             	setb   %cl
40cedc:	f7 d9                	neg    %ecx
40cede:	0b c8                	or     %eax,%ecx
40cee0:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
40cee6:	0f 87 84 00 00 00    	ja     0x40cf70
40ceec:	03 c9                	add    %ecx,%ecx
40ceee:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40cef4:	72 22                	jb     0x40cf18
40cef6:	8d 41 23             	lea    0x23(%ecx),%eax
40cef9:	3b c1                	cmp    %ecx,%eax
40cefb:	76 73                	jbe    0x40cf70
40cefd:	50                   	push   %eax
40cefe:	e8 db e9 00 00       	call   0x41b8de
40cf03:	83 c4 04             	add    $0x4,%esp
40cf06:	85 c0                	test   %eax,%eax
40cf08:	74 6b                	je     0x40cf75
40cf0a:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cf0d:	8d 78 23             	lea    0x23(%eax),%edi
40cf10:	83 e7 e0             	and    $0xffffffe0,%edi
40cf13:	89 47 fc             	mov    %eax,-0x4(%edi)
40cf16:	eb 16                	jmp    0x40cf2e
40cf18:	85 c9                	test   %ecx,%ecx
40cf1a:	74 10                	je     0x40cf2c
40cf1c:	51                   	push   %ecx
40cf1d:	e8 bc e9 00 00       	call   0x41b8de
40cf22:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cf25:	83 c4 04             	add    $0x4,%esp
40cf28:	8b f8                	mov    %eax,%edi
40cf2a:	eb 02                	jmp    0x40cf2e
40cf2c:	33 ff                	xor    %edi,%edi
40cf2e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cf31:	89 3b                	mov    %edi,(%ebx)
40cf33:	89 73 14             	mov    %esi,0x14(%ebx)
40cf36:	8d 34 00             	lea    (%eax,%eax,1),%esi
40cf39:	56                   	push   %esi
40cf3a:	ff 75 f4             	push   -0xc(%ebp)
40cf3d:	89 53 10             	mov    %edx,0x10(%ebx)
40cf40:	57                   	push   %edi
40cf41:	e8 0a 05 01 00       	call   0x41d450
40cf46:	8b 45 1c             	mov    0x1c(%ebp),%eax
40cf49:	8d 0c 00             	lea    (%eax,%eax,1),%ecx