407742:	e8 ea d5 ff ff       	call   0x404d31
407747:	59                   	pop    %ecx
407748:	c3                   	ret
407749:	3b df                	cmp    %edi,%ebx
40774b:	75 0d                	jne    0x40775a
40774d:	8b 45 10             	mov    0x10(%ebp),%eax
407750:	3b c7                	cmp    %edi,%eax
407752:	74 06                	je     0x40775a
407754:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40775a:	8b c3                	mov    %ebx,%eax
40775c:	e8 58 c5 ff ff       	call   0x403cb9
407761:	c3                   	ret
407762:	6a 10                	push   $0x10
407764:	68 f8 a6 40 00       	push   $0x40a6f8
407769:	e8 06 c5 ff ff       	call   0x403c74
40776e:	8b 5d 08             	mov    0x8(%ebp),%ebx
407771:	85 db                	test   %ebx,%ebx
407773:	75 0e                	jne    0x407783
407775:	ff 75 0c             	push   0xc(%ebp)
407778:	e8 fd fd ff ff       	call   0x40757a
40777d:	59                   	pop    %ecx
40777e:	e9 cc 01 00 00       	jmp    0x40794f
407783:	8b 75 0c             	mov    0xc(%ebp),%esi
407786:	85 f6                	test   %esi,%esi
407788:	75 0c                	jne    0x407796
40778a:	53                   	push   %ebx
40778b:	e8 0e e0 ff ff       	call   0x40579e
407790:	59                   	pop    %ecx
407791:	e9 b7 01 00 00       	jmp    0x40794d
407796:	83 3d e4 0a 89 00 03 	cmpl   $0x3,0x890ae4
40779d:	0f 85 93 01 00 00    	jne    0x407936
4077a3:	33 ff                	xor    %edi,%edi
4077a5:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4077a8:	83 fe e0             	cmp    $0xffffffe0,%esi
4077ab:	0f 87 8a 01 00 00    	ja     0x40793b
4077b1:	6a 04                	push   $0x4
4077b3:	e8 53 d6 ff ff       	call   0x404e0b
4077b8:	59                   	pop    %ecx
4077b9:	89 7d fc             	mov    %edi,-0x4(%ebp)
4077bc:	53                   	push   %ebx
4077bd:	e8 43 e5 ff ff       	call   0x405d05
4077c2:	59                   	pop    %ecx
4077c3:	89 45 e0             	mov    %eax,-0x20(%ebp)
4077c6:	3b c7                	cmp    %edi,%eax
4077c8:	0f 84 9e 00 00 00    	je     0x40786c
4077ce:	3b 35 cc 0a 89 00    	cmp    0x890acc,%esi
4077d4:	77 49                	ja     0x40781f
4077d6:	56                   	push   %esi
4077d7:	53                   	push   %ebx
4077d8:	50                   	push   %eax
4077d9:	e8 25 ea ff ff       	call   0x406203
4077de:	83 c4 0c             	add    $0xc,%esp
4077e1:	85 c0                	test   %eax,%eax
4077e3:	74 05                	je     0x4077ea
4077e5:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4077e8:	eb 35                	jmp    0x40781f
4077ea:	56                   	push   %esi
4077eb:	e8 f4 ec ff ff       	call   0x4064e4
4077f0:	59                   	pop    %ecx
4077f1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4077f4:	3b c7                	cmp    %edi,%eax
4077f6:	74 27                	je     0x40781f
4077f8:	8b 43 fc             	mov    -0x4(%ebx),%eax
4077fb:	48                   	dec    %eax
4077fc:	3b c6                	cmp    %esi,%eax
4077fe:	72 02                	jb     0x407802
407800:	8b c6                	mov    %esi,%eax
407802:	50                   	push   %eax
407803:	53                   	push   %ebx
407804:	ff 75 e4             	push   -0x1c(%ebp)
407807:	e8 94 e1 ff ff       	call   0x4059a0
40780c:	53                   	push   %ebx
40780d:	e8 f3 e4 ff ff       	call   0x405d05
407812:	89 45 e0             	mov    %eax,-0x20(%ebp)
407815:	53                   	push   %ebx
407816:	50                   	push   %eax
407817:	e8 19 e5 ff ff       	call   0x405d35
40781c:	83 c4 18             	add    $0x18,%esp
40781f:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
407822:	75 48                	jne    0x40786c
407824:	3b f7                	cmp    %edi,%esi
407826:	75 06                	jne    0x40782e
407828:	33 f6                	xor    %esi,%esi
40782a:	46                   	inc    %esi
40782b:	89 75 0c             	mov    %esi,0xc(%ebp)
40782e:	83 c6 0f             	add    $0xf,%esi
407831:	83 e6 f0             	and    $0xfffffff0,%esi
407834:	89 75 0c             	mov    %esi,0xc(%ebp)
407837:	56                   	push   %esi
407838:	57                   	push   %edi
407839:	ff 35 dc cd 45 00    	push   0x45cddc
40783f:	ff 15 04 11 40 00    	call   *0x401104
407845:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407848:	3b c7                	cmp    %edi,%eax
40784a:	74 20                	je     0x40786c
40784c:	8b 43 fc             	mov    -0x4(%ebx),%eax
40784f:	48                   	dec    %eax
407850:	3b c6                	cmp    %esi,%eax
407852:	72 02                	jb     0x407856
407854:	8b c6                	mov    %esi,%eax
407856:	50                   	push   %eax
407857:	53                   	push   %ebx
407858:	ff 75 e4             	push   -0x1c(%ebp)
40785b:	e8 40 e1 ff ff       	call   0x4059a0
407860:	53                   	push   %ebx
407861:	ff 75 e0             	push   -0x20(%ebp)
407864:	e8 cc e4 ff ff       	call   0x405d35
407869:	83 c4 14             	add    $0x14,%esp
40786c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407873:	e8 2e 00 00 00       	call   0x4078a6
407878:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
40787c:	75 31                	jne    0x4078af
40787e:	85 f6                	test   %esi,%esi
407880:	75 01                	jne    0x407883
407882:	46                   	inc    %esi
407883:	83 c6 0f             	add    $0xf,%esi
407886:	83 e6 f0             	and    $0xfffffff0,%esi
407889:	89 75 0c             	mov    %esi,0xc(%ebp)
40788c:	56                   	push   %esi
40788d:	53                   	push   %ebx
40788e:	6a 00                	push   $0x0
407890:	ff 35 dc cd 45 00    	push   0x45cddc
407896:	ff 15 0c 11 40 00    	call   *0x40110c
40789c:	8b f8                	mov    %eax,%edi
40789e:	eb 12                	jmp    0x4078b2
4078a0:	8b 75 0c             	mov    0xc(%ebp),%esi
4078a3:	8b 5d 08             	mov    0x8(%ebp),%ebx
4078a6:	6a 04                	push   $0x4
4078a8:	e8 84 d4 ff ff       	call   0x404d31
4078ad:	59                   	pop    %ecx
4078ae:	c3                   	ret
4078af:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4078b2:	85 ff                	test   %edi,%edi
4078b4:	0f 85 bf 00 00 00    	jne    0x407979
4078ba:	39 3d 88 d0 45 00    	cmp    %edi,0x45d088
4078c0:	74 2c                	je     0x4078ee
4078c2:	56                   	push   %esi
4078c3:	e8 d3 da ff ff       	call   0x40539b
4078c8:	59                   	pop    %ecx
4078c9:	85 c0                	test   %eax,%eax
4078cb:	0f 85 d2 fe ff ff    	jne    0x4077a3
4078d1:	e8 83 d2 ff ff       	call   0x404b59
4078d6:	39 7d e0             	cmp    %edi,-0x20(%ebp)
4078d9:	75 6c                	jne    0x407947
4078db:	8b f0                	mov    %eax,%esi
4078dd:	ff 15 c8 10 40 00    	call   *0x4010c8
4078e3:	50                   	push   %eax
4078e4:	e8 2e d2 ff ff       	call   0x404b17
4078e9:	59                   	pop    %ecx
4078ea:	89 06                	mov    %eax,(%esi)
4078ec:	eb 5f                	jmp    0x40794d
4078ee:	85 ff                	test   %edi,%edi
4078f0:	0f 85 83 00 00 00    	jne    0x407979
4078f6:	e8 5e d2 ff ff       	call   0x404b59
4078fb:	39 7d e0             	cmp    %edi,-0x20(%ebp)
4078fe:	74 68                	je     0x407968
407900:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407906:	eb 71                	jmp    0x407979
407908:	85 f6                	test   %esi,%esi
40790a:	75 01                	jne    0x40790d
40790c:	46                   	inc    %esi
40790d:	56                   	push   %esi
40790e:	53                   	push   %ebx
40790f:	6a 00                	push   $0x0
407911:	ff 35 dc cd 45 00    	push   0x45cddc
407917:	ff 15 0c 11 40 00    	call   *0x40110c
40791d:	8b f8                	mov    %eax,%edi
40791f:	85 ff                	test   %edi,%edi
407921:	75 56                	jne    0x407979
407923:	39 05 88 d0 45 00    	cmp    %eax,0x45d088
407929:	74 34                	je     0x40795f
40792b:	56                   	push   %esi
40792c:	e8 6a da ff ff       	call   0x40539b
407931:	59                   	pop    %ecx
407932:	85 c0                	test   %eax,%eax
407934:	74 1f                	je     0x407955
407936:	83 fe e0             	cmp    $0xffffffe0,%esi
407939:	76 cd                	jbe    0x407908
40793b:	56                   	push   %esi
40793c:	e8 5a da ff ff       	call   0x40539b
407941:	59                   	pop    %ecx
407942:	e8 12 d2 ff ff       	call   0x404b59
407947:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40794d:	33 c0                	xor    %eax,%eax
40794f:	e8 65 c3 ff ff       	call   0x403cb9
407954:	c3                   	ret
407955:	e8 ff d1 ff ff       	call   0x404b59
40795a:	e9 7c ff ff ff       	jmp    0x4078db
40795f:	85 ff                	test   %edi,%edi
407961:	75 16                	jne    0x407979
407963:	e8 f1 d1 ff ff       	call   0x404b59
407968:	8b f0                	mov    %eax,%esi
40796a:	ff 15 c8 10 40 00    	call   *0x4010c8
407970:	50                   	push   %eax
407971:	e8 a1 d1 ff ff       	call   0x404b17
407976:	89 06                	mov    %eax,(%esi)
407978:	59                   	pop    %ecx
407979:	8b c7                	mov    %edi,%eax
40797b:	eb d2                	jmp    0x40794f
40797d:	55                   	push   %ebp
40797e:	8b ec                	mov    %esp,%ebp
407980:	83 ec 08             	sub    $0x8,%esp
407983:	89 7d fc             	mov    %edi,-0x4(%ebp)
407986:	89 75 f8             	mov    %esi,-0x8(%ebp)
407989:	8b 75 0c             	mov    0xc(%ebp),%esi
40798c:	8b 7d 08             	mov    0x8(%ebp),%edi
40798f:	8b 4d 10             	mov    0x10(%ebp),%ecx
407992:	c1 e9 07             	shr    $0x7,%ecx
407995:	eb 06                	jmp    0x40799d
407997:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40799d:	66 0f 6f 06          	movdqa (%esi),%xmm0
4079a1:	66 0f 6f 4e 10       	movdqa 0x10(%esi),%xmm1
4079a6:	66 0f 6f 56 20       	movdqa 0x20(%esi),%xmm2
4079ab:	66 0f 6f 5e 30       	movdqa 0x30(%esi),%xmm3
4079b0:	66 0f 7f 07          	movdqa %xmm0,(%edi)
4079b4:	66 0f 7f 4f 10       	movdqa %xmm1,0x10(%edi)
4079b9:	66 0f 7f 57 20       	movdqa %xmm2,0x20(%edi)
4079be:	66 0f 7f 5f 30       	movdqa %xmm3,0x30(%edi)
4079c3:	66 0f 6f 66 40       	movdqa 0x40(%esi),%xmm4
4079c8:	66 0f 6f 6e 50       	movdqa 0x50(%esi),%xmm5
4079cd:	66 0f 6f 76 60       	movdqa 0x60(%esi),%xmm6
4079d2:	66 0f 6f 7e 70       	movdqa 0x70(%esi),%xmm7
4079d7:	66 0f 7f 67 40       	movdqa %xmm4,0x40(%edi)
4079dc:	66 0f 7f 6f 50       	movdqa %xmm5,0x50(%edi)
4079e1:	66 0f 7f 77 60       	movdqa %xmm6,0x60(%edi)
4079e6:	66 0f 7f 7f 70       	movdqa %xmm7,0x70(%edi)
4079eb:	8d b6 80 00 00 00    	lea    0x80(%esi),%esi
4079f1:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
4079f7:	49                   	dec    %ecx
4079f8:	75 a3                	jne    0x40799d
4079fa:	8b 75 f8             	mov    -0x8(%ebp),%esi
4079fd:	8b 7d fc             	mov    -0x4(%ebp),%edi
407a00:	8b e5                	mov    %ebp,%esp
407a02:	5d                   	pop    %ebp
407a03:	c3                   	ret
407a04:	55                   	push   %ebp
407a05:	8b ec                	mov    %esp,%ebp
407a07:	83 ec 1c             	sub    $0x1c,%esp
407a0a:	89 7d f4             	mov    %edi,-0xc(%ebp)
407a0d:	89 75 f8             	mov    %esi,-0x8(%ebp)
407a10:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407a13:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407a16:	8b c3                	mov    %ebx,%eax
407a18:	99                   	cltd
407a19:	8b c8                	mov    %eax,%ecx
407a1b:	8b 45 08             	mov    0x8(%ebp),%eax
407a1e:	33 ca                	xor    %edx,%ecx
407a20:	2b ca                	sub    %edx,%ecx
407a22:	83 e1 0f             	and    $0xf,%ecx
407a25:	33 ca                	xor    %edx,%ecx
407a27:	2b ca                	sub    %edx,%ecx
407a29:	99                   	cltd
407a2a:	8b f8                	mov    %eax,%edi
407a2c:	33 fa                	xor    %edx,%edi
407a2e:	2b fa                	sub    %edx,%edi
407a30:	83 e7 0f             	and    $0xf,%edi
407a33:	33 fa                	xor    %edx,%edi
407a35:	2b fa                	sub    %edx,%edi
407a37:	8b d1                	mov    %ecx,%edx
407a39:	0b d7                	or     %edi,%edx
407a3b:	75 4a                	jne    0x407a87
407a3d:	8b 75 10             	mov    0x10(%ebp),%esi
407a40:	8b ce                	mov    %esi,%ecx
407a42:	83 e1 7f             	and    $0x7f,%ecx
407a45:	89 4d e8             	mov    %ecx,-0x18(%ebp)
407a48:	3b f1                	cmp    %ecx,%esi
407a4a:	74 13                	je     0x407a5f
407a4c:	2b f1                	sub    %ecx,%esi
407a4e:	56                   	push   %esi
407a4f:	53                   	push   %ebx
407a50:	50                   	push   %eax
407a51:	e8 27 ff ff ff       	call   0x40797d
407a56:	83 c4 0c             	add    $0xc,%esp
407a59:	8b 45 08             	mov    0x8(%ebp),%eax
407a5c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407a5f:	85 c9                	test   %ecx,%ecx
407a61:	74 77                	je     0x407ada
407a63:	8b 5d 10             	mov    0x10(%ebp),%ebx
407a66:	8b 55 0c             	mov    0xc(%ebp),%edx
407a69:	03 d3                	add    %ebx,%edx
407a6b:	2b d1                	sub    %ecx,%edx
407a6d:	89 55 ec             	mov    %edx,-0x14(%ebp)
407a70:	03 d8                	add    %eax,%ebx
407a72:	2b d9                	sub    %ecx,%ebx
407a74:	89 5d f0             	mov    %ebx,-0x10(%ebp)
407a77:	8b 75 ec             	mov    -0x14(%ebp),%esi
407a7a:	8b 7d f0             	mov    -0x10(%ebp),%edi
407a7d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407a80:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
407a82:	8b 45 08             	mov    0x8(%ebp),%eax
407a85:	eb 53                	jmp    0x407ada
407a87:	3b cf                	cmp    %edi,%ecx
407a89:	75 35                	jne    0x407ac0
407a8b:	f7 d9                	neg    %ecx
407a8d:	83 c1 10             	add    $0x10,%ecx
407a90:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407a93:	8b 75 0c             	mov    0xc(%ebp),%esi
407a96:	8b 7d 08             	mov    0x8(%ebp),%edi
407a99:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407a9c:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
407a9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
407aa1:	03 4d e4             	add    -0x1c(%ebp),%ecx
407aa4:	8b 55 0c             	mov    0xc(%ebp),%edx
407aa7:	03 55 e4             	add    -0x1c(%ebp),%edx
407aaa:	8b 45 10             	mov    0x10(%ebp),%eax
407aad:	2b 45 e4             	sub    -0x1c(%ebp),%eax
407ab0:	50                   	push   %eax
407ab1:	52                   	push   %edx
407ab2:	51                   	push   %ecx
407ab3:	e8 4c ff ff ff       	call   0x407a04
407ab8:	83 c4 0c             	add    $0xc,%esp
407abb:	8b 45 08             	mov    0x8(%ebp),%eax
407abe:	eb 1a                	jmp    0x407ada
407ac0:	8b 75 0c             	mov    0xc(%ebp),%esi
407ac3:	8b 7d 08             	mov    0x8(%ebp),%edi
407ac6:	8b 4d 10             	mov    0x10(%ebp),%ecx
407ac9:	8b d1                	mov    %ecx,%edx
407acb:	c1 e9 02             	shr    $0x2,%ecx
407ace:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
407ad0:	8b ca                	mov    %edx,%ecx
407ad2:	83 e1 03             	and    $0x3,%ecx
407ad5:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
407ad7:	8b 45 08             	mov    0x8(%ebp),%eax
407ada:	8b 5d fc             	mov    -0x4(%ebp),%ebx
407add:	8b 75 f8             	mov    -0x8(%ebp),%esi
407ae0:	8b 7d f4             	mov    -0xc(%ebp),%edi
407ae3:	8b e5                	mov    %ebp,%esp
407ae5:	5d                   	pop    %ebp
407ae6:	c3                   	ret
407ae7:	6a 0c                	push   $0xc
407ae9:	68 18 a7 40 00       	push   $0x40a718
407aee:	e8 81 c1 ff ff       	call   0x403c74
407af3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407af7:	66 0f 28 c1          	movapd %xmm1,%xmm0
407afb:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
407b02:	eb 23                	jmp    0x407b27
407b04:	8b 45 ec             	mov    -0x14(%ebp),%eax
407b07:	8b 00                	mov    (%eax),%eax
407b09:	8b 00                	mov    (%eax),%eax
407b0b:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
407b10:	74 0a                	je     0x407b1c
407b12:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
407b17:	74 03                	je     0x407b1c
407b19:	33 c0                	xor    %eax,%eax
407b1b:	c3                   	ret
407b1c:	33 c0                	xor    %eax,%eax
407b1e:	40                   	inc    %eax
407b1f:	c3                   	ret
407b20:	8b 65 e8             	mov    -0x18(%ebp),%esp
407b23:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)