40c73b:	c2 14 00             	ret    $0x14
40c73e:	53                   	push   %ebx
40c73f:	56                   	push   %esi
40c740:	e8 0b 0d 01 00       	call   0x41d450
40c745:	8b 45 14             	mov    0x14(%ebp),%eax
40c748:	83 c4 0c             	add    $0xc,%esp
40c74b:	85 c0                	test   %eax,%eax
40c74d:	74 1e                	je     0x40c76d
40c74f:	8b 7d fc             	mov    -0x4(%ebp),%edi
40c752:	8b c8                	mov    %eax,%ecx
40c754:	8b 45 18             	mov    0x18(%ebp),%eax
40c757:	0f b7 d0             	movzwl %ax,%edx
40c75a:	8b c2                	mov    %edx,%eax
40c75c:	c1 e2 10             	shl    $0x10,%edx
40c75f:	0b c2                	or     %edx,%eax
40c761:	d1 e9                	shr    $1,%ecx
40c763:	f3 ab                	rep stos %eax,%es:(%edi)
40c765:	13 c9                	adc    %ecx,%ecx
40c767:	66 f3 ab             	rep stos %ax,%es:(%edi)
40c76a:	8b 7d 10             	mov    0x10(%ebp),%edi
40c76d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c770:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40c773:	2b c7                	sub    %edi,%eax
40c775:	03 cb                	add    %ebx,%ecx
40c777:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
40c77e:	50                   	push   %eax
40c77f:	51                   	push   %ecx
40c780:	8b 4d 14             	mov    0x14(%ebp),%ecx
40c783:	03 cf                	add    %edi,%ecx
40c785:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
40c788:	51                   	push   %ecx
40c789:	e8 c2 0c 01 00       	call   0x41d450
40c78e:	83 c4 0c             	add    $0xc,%esp
40c791:	89 33                	mov    %esi,(%ebx)
40c793:	8b c3                	mov    %ebx,%eax
40c795:	5f                   	pop    %edi
40c796:	5e                   	pop    %esi
40c797:	5b                   	pop    %ebx
40c798:	8b e5                	mov    %ebp,%esp
40c79a:	5d                   	pop    %ebp
40c79b:	c2 14 00             	ret    $0x14
40c79e:	e8 5d 4a ff ff       	call   0x401200
40c7a3:	e8 f8 4a ff ff       	call   0x4012a0
40c7a8:	e8 d2 42 01 00       	call   0x420a7f
40c7ad:	cc                   	int3
40c7ae:	cc                   	int3
40c7af:	cc                   	int3
40c7b0:	55                   	push   %ebp
40c7b1:	8b ec                	mov    %esp,%ebp
40c7b3:	83 ec 10             	sub    $0x10,%esp
40c7b6:	53                   	push   %ebx
40c7b7:	8b d9                	mov    %ecx,%ebx
40c7b9:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40c7be:	8b c1                	mov    %ecx,%eax
40c7c0:	56                   	push   %esi
40c7c1:	8b 75 08             	mov    0x8(%ebp),%esi
40c7c4:	8b 53 10             	mov    0x10(%ebx),%edx
40c7c7:	2b c2                	sub    %edx,%eax
40c7c9:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c7cc:	57                   	push   %edi
40c7cd:	3b c6                	cmp    %esi,%eax
40c7cf:	0f 82 27 01 00 00    	jb     0x40c8fc
40c7d5:	8b 7b 14             	mov    0x14(%ebx),%edi
40c7d8:	8d 04 32             	lea    (%edx,%esi,1),%eax
40c7db:	8b f0                	mov    %eax,%esi
40c7dd:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c7e0:	83 ce 0f             	or     $0xf,%esi
40c7e3:	89 7d f4             	mov    %edi,-0xc(%ebp)
40c7e6:	3b f1                	cmp    %ecx,%esi
40c7e8:	76 29                	jbe    0x40c813
40c7ea:	8b f1                	mov    %ecx,%esi
40c7ec:	b8 00 00 00 80       	mov    $0x80000000,%eax
40c7f1:	83 c0 23             	add    $0x23,%eax
40c7f4:	50                   	push   %eax
40c7f5:	e8 e4 f0 00 00       	call   0x41b8de
40c7fa:	83 c4 04             	add    $0x4,%esp
40c7fd:	85 c0                	test   %eax,%eax
40c7ff:	0f 84 01 01 00 00    	je     0x40c906
40c805:	8b 55 fc             	mov    -0x4(%ebp),%edx
40c808:	8d 78 23             	lea    0x23(%eax),%edi
40c80b:	83 e7 e0             	and    $0xffffffe0,%edi
40c80e:	89 47 fc             	mov    %eax,-0x4(%edi)
40c811:	eb 46                	jmp    0x40c859
40c813:	8b c7                	mov    %edi,%eax
40c815:	d1 e8                	shr    $1,%eax
40c817:	2b c8                	sub    %eax,%ecx
40c819:	3b f9                	cmp    %ecx,%edi
40c81b:	76 07                	jbe    0x40c824
40c81d:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40c822:	eb c8                	jmp    0x40c7ec
40c824:	03 c7                	add    %edi,%eax
40c826:	3b f0                	cmp    %eax,%esi
40c828:	0f 42 f0             	cmovb  %eax,%esi
40c82b:	8d 4e 01             	lea    0x1(%esi),%ecx
40c82e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40c834:	72 0d                	jb     0x40c843
40c836:	8d 41 23             	lea    0x23(%ecx),%eax
40c839:	3b c1                	cmp    %ecx,%eax
40c83b:	0f 86 c0 00 00 00    	jbe    0x40c901
40c841:	eb b1                	jmp    0x40c7f4
40c843:	85 c9                	test   %ecx,%ecx
40c845:	74 10                	je     0x40c857
40c847:	51                   	push   %ecx
40c848:	e8 91 f0 00 00       	call   0x41b8de
40c84d:	8b 55 fc             	mov    -0x4(%ebp),%edx
40c850:	83 c4 04             	add    $0x4,%esp
40c853:	8b f8                	mov    %eax,%edi
40c855:	eb 02                	jmp    0x40c859
40c857:	33 ff                	xor    %edi,%edi
40c859:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c85c:	89 43 10             	mov    %eax,0x10(%ebx)
40c85f:	0f be 45 14          	movsbl 0x14(%ebp),%eax
40c863:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c866:	8b 45 10             	mov    0x10(%ebp),%eax
40c869:	89 73 14             	mov    %esi,0x14(%ebx)
40c86c:	8d 34 17             	lea    (%edi,%edx,1),%esi
40c86f:	03 c6                	add    %esi,%eax
40c871:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c874:	83 7d f4 10          	cmpl   $0x10,-0xc(%ebp)
40c878:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c87b:	52                   	push   %edx
40c87c:	72 55                	jb     0x40c8d3
40c87e:	8b 33                	mov    (%ebx),%esi
40c880:	56                   	push   %esi
40c881:	57                   	push   %edi
40c882:	e8 c9 0b 01 00       	call   0x41d450
40c887:	ff 75 10             	push   0x10(%ebp)
40c88a:	ff 75 fc             	push   -0x4(%ebp)
40c88d:	ff 75 f0             	push   -0x10(%ebp)
40c890:	e8 4b 11 01 00       	call   0x41d9e0
40c895:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c898:	83 c4 18             	add    $0x18,%esp
40c89b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c89e:	41                   	inc    %ecx
40c89f:	c6 00 00             	movb   $0x0,(%eax)
40c8a2:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40c8a8:	72 12                	jb     0x40c8bc
40c8aa:	8b 56 fc             	mov    -0x4(%esi),%edx
40c8ad:	83 c1 23             	add    $0x23,%ecx
40c8b0:	2b f2                	sub    %edx,%esi
40c8b2:	8d 46 fc             	lea    -0x4(%esi),%eax
40c8b5:	83 f8 1f             	cmp    $0x1f,%eax
40c8b8:	77 4c                	ja     0x40c906
40c8ba:	8b f2                	mov    %edx,%esi
40c8bc:	51                   	push   %ecx
40c8bd:	56                   	push   %esi
40c8be:	e8 4b f0 00 00       	call   0x41b90e
40c8c3:	83 c4 08             	add    $0x8,%esp
40c8c6:	89 3b                	mov    %edi,(%ebx)
40c8c8:	8b c3                	mov    %ebx,%eax
40c8ca:	5f                   	pop    %edi
40c8cb:	5e                   	pop    %esi
40c8cc:	5b                   	pop    %ebx
40c8cd:	8b e5                	mov    %ebp,%esp
40c8cf:	5d                   	pop    %ebp
40c8d0:	c2 10 00             	ret    $0x10
40c8d3:	53                   	push   %ebx
40c8d4:	57                   	push   %edi
40c8d5:	e8 76 0b 01 00       	call   0x41d450
40c8da:	ff 75 10             	push   0x10(%ebp)
40c8dd:	ff 75 fc             	push   -0x4(%ebp)
40c8e0:	56                   	push   %esi
40c8e1:	e8 fa 10 01 00       	call   0x41d9e0
40c8e6:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c8e9:	83 c4 18             	add    $0x18,%esp
40c8ec:	c6 00 00             	movb   $0x0,(%eax)
40c8ef:	8b c3                	mov    %ebx,%eax
40c8f1:	89 3b                	mov    %edi,(%ebx)
40c8f3:	5f                   	pop    %edi
40c8f4:	5e                   	pop    %esi
40c8f5:	5b                   	pop    %ebx
40c8f6:	8b e5                	mov    %ebp,%esp
40c8f8:	5d                   	pop    %ebp
40c8f9:	c2 10 00             	ret    $0x10
40c8fc:	e8 9f 49 ff ff       	call   0x4012a0
40c901:	e8 fa 48 ff ff       	call   0x401200
40c906:	e8 74 41 01 00       	call   0x420a7f
40c90b:	cc                   	int3
40c90c:	cc                   	int3
40c90d:	cc                   	int3
40c90e:	cc                   	int3
40c90f:	cc                   	int3
40c910:	57                   	push   %edi
40c911:	8b 39                	mov    (%ecx),%edi
40c913:	85 ff                	test   %edi,%edi
40c915:	74 14                	je     0x40c92b
40c917:	8b 07                	mov    (%edi),%eax
40c919:	56                   	push   %esi
40c91a:	6a 01                	push   $0x1
40c91c:	8b 30                	mov    (%eax),%esi
40c91e:	8b ce                	mov    %esi,%ecx
40c920:	ff 15 3c f2 43 00    	call   *0x43f23c
40c926:	8b cf                	mov    %edi,%ecx
40c928:	ff d6                	call   *%esi
40c92a:	5e                   	pop    %esi
40c92b:	5f                   	pop    %edi
40c92c:	c3                   	ret
40c92d:	cc                   	int3
40c92e:	cc                   	int3
40c92f:	cc                   	int3
40c930:	53                   	push   %ebx
40c931:	8b dc                	mov    %esp,%ebx
40c933:	83 ec 08             	sub    $0x8,%esp
40c936:	83 e4 f8             	and    $0xfffffff8,%esp
40c939:	83 c4 04             	add    $0x4,%esp
40c93c:	55                   	push   %ebp
40c93d:	8b 6b 04             	mov    0x4(%ebx),%ebp
40c940:	89 6c 24 04          	mov    %ebp,0x4(%esp)
40c944:	8b ec                	mov    %esp,%ebp
40c946:	6a ff                	push   $0xffffffff
40c948:	68 d1 dd 43 00       	push   $0x43ddd1
40c94d:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c953:	50                   	push   %eax
40c954:	53                   	push   %ebx
40c955:	81 ec e8 00 00 00    	sub    $0xe8,%esp
40c95b:	a1 14 40 45 00       	mov    0x454014,%eax
40c960:	33 c5                	xor    %ebp,%eax
40c962:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c965:	56                   	push   %esi
40c966:	57                   	push   %edi
40c967:	50                   	push   %eax
40c968:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c96b:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c971:	8b 43 08             	mov    0x8(%ebx),%eax
40c974:	8b 7b 0c             	mov    0xc(%ebx),%edi
40c977:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
40c97d:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40c984:	85 c0                	test   %eax,%eax
40c986:	0f 84 90 02 00 00    	je     0x40cc1c
40c98c:	83 38 00             	cmpl   $0x0,(%eax)
40c98f:	0f 85 87 02 00 00    	jne    0x40cc1c
40c995:	6a 18                	push   $0x18
40c997:	e8 42 ef 00 00       	call   0x41b8de
40c99c:	8b f0                	mov    %eax,%esi
40c99e:	83 c4 04             	add    $0x4,%esp
40c9a1:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c9a4:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40c9ab:	0f 57 c0             	xorps  %xmm0,%xmm0
40c9ae:	0f 11 06             	movups %xmm0,(%esi)
40c9b1:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
40c9b6:	8b 47 04             	mov    0x4(%edi),%eax
40c9b9:	85 c0                	test   %eax,%eax
40c9bb:	74 0c                	je     0x40c9c9
40c9bd:	8b 78 18             	mov    0x18(%eax),%edi
40c9c0:	85 ff                	test   %edi,%edi
40c9c2:	75 0a                	jne    0x40c9ce
40c9c4:	8d 78 1c             	lea    0x1c(%eax),%edi
40c9c7:	eb 05                	jmp    0x40c9ce
40c9c9:	bf d7 da 44 00       	mov    $0x44dad7,%edi
40c9ce:	6a 00                	push   $0x0
40c9d0:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
40c9d6:	e8 75 e6 00 00       	call   0x41b050
40c9db:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
40c9e2:	00 00 00
40c9e5:	c6 85 74 ff ff ff 00 	movb   $0x0,-0x8c(%ebp)
40c9ec:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
40c9f3:	00 00 00
40c9f6:	c6 85 7c ff ff ff 00 	movb   $0x0,-0x84(%ebp)
40c9fd:	33 c0                	xor    %eax,%eax
40c9ff:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%ebp)
40ca06:	66 89 45 84          	mov    %ax,-0x7c(%ebp)
40ca0a:	89 45 88             	mov    %eax,-0x78(%ebp)
40ca0d:	66 89 45 8c          	mov    %ax,-0x74(%ebp)
40ca11:	89 45 90             	mov    %eax,-0x70(%ebp)
40ca14:	88 45 94             	mov    %al,-0x6c(%ebp)
40ca17:	89 45 98             	mov    %eax,-0x68(%ebp)
40ca1a:	88 45 9c             	mov    %al,-0x64(%ebp)
40ca1d:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40ca21:	85 ff                	test   %edi,%edi
40ca23:	0f 84 16 02 00 00    	je     0x40cc3f
40ca29:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40ca2f:	57                   	push   %edi
40ca30:	50                   	push   %eax
40ca31:	e8 fe e8 00 00       	call   0x41b334
40ca36:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
40ca3d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40ca44:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
40ca4b:	c7 06 54 06 44 00    	movl   $0x440654,(%esi)
40ca51:	e8 30 83 01 00       	call   0x424d86
40ca56:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40ca5c:	50                   	push   %eax
40ca5d:	e8 0a ec 00 00       	call   0x41b66c
40ca62:	83 c4 0c             	add    $0xc,%esp
40ca65:	89 75 d8             	mov    %esi,-0x28(%ebp)
40ca68:	0f 10 00             	movups (%eax),%xmm0
40ca6b:	0f 11 45 a0          	movups %xmm0,-0x60(%ebp)
40ca6f:	0f 10 40 10          	movups 0x10(%eax),%xmm0
40ca73:	0f 11 45 b0          	movups %xmm0,-0x50(%ebp)
40ca77:	f3 0f 7e 40 20       	movq   0x20(%eax),%xmm0
40ca7c:	66 0f d6 45 c0       	movq   %xmm0,-0x40(%ebp)
40ca81:	8b 40 28             	mov    0x28(%eax),%eax
40ca84:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ca87:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40ca8e:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40ca95:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40ca9c:	8d 85 08 ff ff ff    	lea    -0xf8(%ebp),%eax
40caa2:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
40caa6:	50                   	push   %eax
40caa7:	e8 c0 eb 00 00       	call   0x41b66c
40caac:	83 c4 04             	add    $0x4,%esp
40caaf:	6a 01                	push   $0x1
40cab1:	6a 01                	push   $0x1
40cab3:	e8 18 40 01 00       	call   0x420ad0
40cab8:	83 c4 08             	add    $0x8,%esp
40cabb:	85 c0                	test   %eax,%eax
40cabd:	0f 84 86 01 00 00    	je     0x40cc49
40cac3:	c6 00 00             	movb   $0x0,(%eax)
40cac6:	89 46 08             	mov    %eax,0x8(%esi)
40cac9:	8d 45 a0             	lea    -0x60(%ebp),%eax
40cacc:	50                   	push   %eax
40cacd:	6a 00                	push   $0x0
40cacf:	68 00 db 44 00       	push   $0x44db00
40cad4:	e8 d7 78 ff ff       	call   0x4043b0
40cad9:	83 c4 0c             	add    $0xc,%esp
40cadc:	89 46 10             	mov    %eax,0x10(%esi)
40cadf:	8d 45 a0             	lea    -0x60(%ebp),%eax
40cae2:	50                   	push   %eax
40cae3:	6a 00                	push   $0x0
40cae5:	68 08 db 44 00       	push   $0x44db08
40caea:	e8 c1 78 ff ff       	call   0x4043b0
40caef:	89 46 14             	mov    %eax,0x14(%esi)
40caf2:	83 c4 0c             	add    $0xc,%esp
40caf5:	33 c0                	xor    %eax,%eax
40caf7:	c6 45 e8 2e          	movb   $0x2e,-0x18(%ebp)
40cafb:	66 89 45 dc          	mov    %ax,-0x24(%ebp)
40caff:	0f 57 c0             	xorps  %xmm0,%xmm0
40cb02:	8d 45 a0             	lea    -0x60(%ebp),%eax
40cb05:	66 0f 13 45 d4       	movlpd %xmm0,-0x2c(%ebp)
40cb0a:	50                   	push   %eax
40cb0b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40cb0e:	50                   	push   %eax
40cb0f:	6a 01                	push   $0x1
40cb11:	8d 45 e8             	lea    -0x18(%ebp),%eax
40cb14:	50                   	push   %eax
40cb15:	8d 45 dc             	lea    -0x24(%ebp),%eax
40cb18:	50                   	push   %eax
40cb19:	e8 7c e3 00 00       	call   0x41ae9a
40cb1e:	0f b7 45 dc          	movzwl -0x24(%ebp),%eax
40cb22:	83 c4 14             	add    $0x14,%esp
40cb25:	66 89 46 0c          	mov    %ax,0xc(%esi)
40cb29:	0f 57 c0             	xorps  %xmm0,%xmm0
40cb2c:	33 c0                	xor    %eax,%eax
40cb2e:	c6 45 e4 2c          	movb   $0x2c,-0x1c(%ebp)
40cb32:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40cb36:	8d 45 a0             	lea    -0x60(%ebp),%eax
40cb39:	50                   	push   %eax
40cb3a:	8d 45 cc             	lea    -0x34(%ebp),%eax
40cb3d:	66 0f 13 45 cc       	movlpd %xmm0,-0x34(%ebp)
40cb42:	50                   	push   %eax
40cb43:	6a 01                	push   $0x1