40566f:	ff 75 e4             	push   -0x1c(%ebp)
405672:	e8 09 01 00 00       	call   0x405780
405677:	8b 45 e0             	mov    -0x20(%ebp),%eax
40567a:	83 c4 08             	add    $0x8,%esp
40567d:	40                   	inc    %eax
40567e:	8b cb                	mov    %ebx,%ecx
405680:	57                   	push   %edi
405681:	50                   	push   %eax
405682:	56                   	push   %esi
405683:	e8 68 00 00 00       	call   0x4056f0
405688:	8b 45 dc             	mov    -0x24(%ebp),%eax
40568b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40568e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405695:	59                   	pop    %ecx
405696:	5f                   	pop    %edi
405697:	5e                   	pop    %esi
405698:	5b                   	pop    %ebx
405699:	8b e5                	mov    %ebp,%esp
40569b:	5d                   	pop    %ebp
40569c:	c2 08 00             	ret    $0x8
40569f:	e8 1c bc ff ff       	call   0x4012c0
4056a4:	e8 37 00 00 00       	call   0x4056e0
4056a9:	e8 e5 a2 01 00       	call   0x41f993
4056ae:	51                   	push   %ecx
4056af:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4056b2:	8b d1                	mov    %ecx,%edx
4056b4:	e8 57 f9 ff ff       	call   0x405010
4056b9:	83 c4 04             	add    $0x4,%esp
4056bc:	ff 75 ec             	push   -0x14(%ebp)
4056bf:	ff 75 e8             	push   -0x18(%ebp)
4056c2:	e8 f9 f8 ff ff       	call   0x404fc0
4056c7:	6a 00                	push   $0x0
4056c9:	6a 00                	push   $0x0
4056cb:	e8 3e 5f 01 00       	call   0x41b60e
4056d0:	cc                   	int3
4056d1:	cc                   	int3
4056d2:	cc                   	int3
4056d3:	cc                   	int3
4056d4:	cc                   	int3
4056d5:	cc                   	int3
4056d6:	cc                   	int3
4056d7:	cc                   	int3
4056d8:	cc                   	int3
4056d9:	cc                   	int3
4056da:	cc                   	int3
4056db:	cc                   	int3
4056dc:	cc                   	int3
4056dd:	cc                   	int3
4056de:	cc                   	int3
4056df:	cc                   	int3
4056e0:	68 54 ed 44 00       	push   $0x44ed54
4056e5:	e8 b0 37 01 00       	call   0x418e9a
4056ea:	cc                   	int3
4056eb:	cc                   	int3
4056ec:	cc                   	int3
4056ed:	cc                   	int3
4056ee:	cc                   	int3
4056ef:	cc                   	int3
4056f0:	55                   	push   %ebp
4056f1:	8b ec                	mov    %esp,%ebp
4056f3:	57                   	push   %edi
4056f4:	8b f9                	mov    %ecx,%edi
4056f6:	8b 0f                	mov    (%edi),%ecx
4056f8:	85 c9                	test   %ecx,%ecx
4056fa:	74 50                	je     0x40574c
4056fc:	8b 57 04             	mov    0x4(%edi),%edx
4056ff:	56                   	push   %esi
405700:	51                   	push   %ecx
405701:	e8 0a f9 ff ff       	call   0x405010
405706:	8b 4f 08             	mov    0x8(%edi),%ecx
405709:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40570e:	8b 37                	mov    (%edi),%esi
405710:	83 c4 04             	add    $0x4,%esp
405713:	2b ce                	sub    %esi,%ecx
405715:	f7 e9                	imul   %ecx
405717:	c1 fa 02             	sar    $0x2,%edx
40571a:	8b c2                	mov    %edx,%eax
40571c:	c1 e8 1f             	shr    $0x1f,%eax
40571f:	03 c2                	add    %edx,%eax
405721:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
405724:	c1 e1 03             	shl    $0x3,%ecx
405727:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40572d:	72 12                	jb     0x405741
40572f:	8b 56 fc             	mov    -0x4(%esi),%edx
405732:	83 c1 23             	add    $0x23,%ecx
405735:	2b f2                	sub    %edx,%esi
405737:	8d 46 fc             	lea    -0x4(%esi),%eax
40573a:	83 f8 1f             	cmp    $0x1f,%eax
40573d:	77 2f                	ja     0x40576e
40573f:	8b f2                	mov    %edx,%esi
405741:	51                   	push   %ecx
405742:	56                   	push   %esi
405743:	e8 70 44 01 00       	call   0x419bb8
405748:	83 c4 08             	add    $0x8,%esp
40574b:	5e                   	pop    %esi
40574c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40574f:	8b 45 0c             	mov    0xc(%ebp),%eax
405752:	89 0f                	mov    %ecx,(%edi)
405754:	8d 04 40             	lea    (%eax,%eax,2),%eax
405757:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
40575a:	89 47 04             	mov    %eax,0x4(%edi)
40575d:	8b 45 10             	mov    0x10(%ebp),%eax
405760:	8d 04 40             	lea    (%eax,%eax,2),%eax
405763:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
405766:	89 47 08             	mov    %eax,0x8(%edi)
405769:	5f                   	pop    %edi
40576a:	5d                   	pop    %ebp
40576b:	c2 0c 00             	ret    $0xc
40576e:	e8 20 a2 01 00       	call   0x41f993
405773:	cc                   	int3
405774:	cc                   	int3
405775:	cc                   	int3
405776:	cc                   	int3
405777:	cc                   	int3
405778:	cc                   	int3
405779:	cc                   	int3
40577a:	cc                   	int3
40577b:	cc                   	int3
40577c:	cc                   	int3
40577d:	cc                   	int3
40577e:	cc                   	int3
40577f:	cc                   	int3
405780:	55                   	push   %ebp
405781:	8b ec                	mov    %esp,%ebp
405783:	56                   	push   %esi
405784:	8b 75 08             	mov    0x8(%ebp),%esi
405787:	3b ca                	cmp    %edx,%ecx
405789:	74 48                	je     0x4057d3
40578b:	8b c6                	mov    %esi,%eax
40578d:	2b c1                	sub    %ecx,%eax
40578f:	57                   	push   %edi
405790:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
405796:	33 ff                	xor    %edi,%edi
405798:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40579f:	c7 44 08 14 00 00 00 	movl   $0x0,0x14(%eax,%ecx,1)
4057a6:	00
4057a7:	0f 10 01             	movups (%ecx),%xmm0
4057aa:	0f 11 06             	movups %xmm0,(%esi)
4057ad:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
4057b2:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
4057b7:	83 c6 18             	add    $0x18,%esi
4057ba:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
4057c1:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
4057c8:	66 89 39             	mov    %di,(%ecx)
4057cb:	83 c1 18             	add    $0x18,%ecx
4057ce:	3b ca                	cmp    %edx,%ecx
4057d0:	75 be                	jne    0x405790
4057d2:	5f                   	pop    %edi
4057d3:	51                   	push   %ecx
4057d4:	8b d6                	mov    %esi,%edx
4057d6:	8b ce                	mov    %esi,%ecx
4057d8:	e8 33 f8 ff ff       	call   0x405010
4057dd:	83 c4 04             	add    $0x4,%esp
4057e0:	8b c6                	mov    %esi,%eax
4057e2:	5e                   	pop    %esi
4057e3:	5d                   	pop    %ebp
4057e4:	c3                   	ret
4057e5:	cc                   	int3
4057e6:	cc                   	int3
4057e7:	cc                   	int3
4057e8:	cc                   	int3
4057e9:	cc                   	int3
4057ea:	cc                   	int3
4057eb:	cc                   	int3
4057ec:	cc                   	int3
4057ed:	cc                   	int3
4057ee:	cc                   	int3
4057ef:	cc                   	int3
4057f0:	55                   	push   %ebp
4057f1:	8b ec                	mov    %esp,%ebp
4057f3:	83 ec 0c             	sub    $0xc,%esp
4057f6:	a1 14 50 45 00       	mov    0x455014,%eax
4057fb:	33 c5                	xor    %ebp,%eax
4057fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
405800:	8b 55 08             	mov    0x8(%ebp),%edx
405803:	8d 45 f4             	lea    -0xc(%ebp),%eax
405806:	56                   	push   %esi
405807:	8b f1                	mov    %ecx,%esi
405809:	89 55 f4             	mov    %edx,-0xc(%ebp)
40580c:	8d 4e 04             	lea    0x4(%esi),%ecx
40580f:	c6 45 f8 01          	movb   $0x1,-0x8(%ebp)
405813:	51                   	push   %ecx
405814:	0f 57 c0             	xorps  %xmm0,%xmm0
405817:	c7 06 e4 e8 43 00    	movl   $0x43e8e4,(%esi)
40581d:	50                   	push   %eax
40581e:	66 0f d6 01          	movq   %xmm0,(%ecx)
405822:	e8 97 5a 01 00       	call   0x41b2be
405827:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40582a:	83 c4 08             	add    $0x8,%esp
40582d:	8b c6                	mov    %esi,%eax
40582f:	33 cd                	xor    %ebp,%ecx
405831:	5e                   	pop    %esi
405832:	e8 73 43 01 00       	call   0x419baa
405837:	8b e5                	mov    %ebp,%esp
405839:	5d                   	pop    %ebp
40583a:	c2 04 00             	ret    $0x4
40583d:	cc                   	int3
40583e:	cc                   	int3
40583f:	cc                   	int3
405840:	55                   	push   %ebp
405841:	8b ec                	mov    %esp,%ebp
405843:	56                   	push   %esi
405844:	8b f1                	mov    %ecx,%esi
405846:	0f 57 c0             	xorps  %xmm0,%xmm0
405849:	8d 46 04             	lea    0x4(%esi),%eax
40584c:	50                   	push   %eax
40584d:	c7 06 e4 e8 43 00    	movl   $0x43e8e4,(%esi)
405853:	66 0f d6 00          	movq   %xmm0,(%eax)
405857:	8b 45 08             	mov    0x8(%ebp),%eax
40585a:	83 c0 04             	add    $0x4,%eax
40585d:	50                   	push   %eax
40585e:	e8 5b 5a 01 00       	call   0x41b2be
405863:	83 c4 08             	add    $0x8,%esp
405866:	c7 06 20 e9 43 00    	movl   $0x43e920,(%esi)
40586c:	8b c6                	mov    %esi,%eax
40586e:	5e                   	pop    %esi
40586f:	5d                   	pop    %ebp
405870:	c2 04 00             	ret    $0x4
405873:	cc                   	int3
405874:	cc                   	int3
405875:	cc                   	int3
405876:	cc                   	int3
405877:	cc                   	int3
405878:	cc                   	int3
405879:	cc                   	int3
40587a:	cc                   	int3
40587b:	cc                   	int3
40587c:	cc                   	int3
40587d:	cc                   	int3
40587e:	cc                   	int3
40587f:	cc                   	int3
405880:	55                   	push   %ebp
405881:	8b ec                	mov    %esp,%ebp
405883:	8b 45 08             	mov    0x8(%ebp),%eax
405886:	8b 55 0c             	mov    0xc(%ebp),%edx
405889:	89 10                	mov    %edx,(%eax)
40588b:	89 48 04             	mov    %ecx,0x4(%eax)
40588e:	5d                   	pop    %ebp
40588f:	c2 08 00             	ret    $0x8
405892:	cc                   	int3
405893:	cc                   	int3
405894:	cc                   	int3
405895:	cc                   	int3
405896:	cc                   	int3
405897:	cc                   	int3
405898:	cc                   	int3
405899:	cc                   	int3
40589a:	cc                   	int3
40589b:	cc                   	int3
40589c:	cc                   	int3
40589d:	cc                   	int3
40589e:	cc                   	int3
40589f:	cc                   	int3
4058a0:	55                   	push   %ebp
4058a1:	8b ec                	mov    %esp,%ebp
4058a3:	83 ec 08             	sub    $0x8,%esp
4058a6:	56                   	push   %esi
4058a7:	57                   	push   %edi
4058a8:	ff 75 08             	push   0x8(%ebp)
4058ab:	8b f9                	mov    %ecx,%edi
4058ad:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4058b0:	51                   	push   %ecx
4058b1:	8b 07                	mov    (%edi),%eax
4058b3:	8b 70 0c             	mov    0xc(%eax),%esi
4058b6:	8b ce                	mov    %esi,%ecx
4058b8:	ff 15 5c e2 43 00    	call   *0x43e25c
4058be:	8b cf                	mov    %edi,%ecx
4058c0:	ff d6                	call   *%esi
4058c2:	8b 75 0c             	mov    0xc(%ebp),%esi
4058c5:	8b 48 04             	mov    0x4(%eax),%ecx
4058c8:	8b 56 04             	mov    0x4(%esi),%edx
4058cb:	8b 49 04             	mov    0x4(%ecx),%ecx
4058ce:	3b 4a 04             	cmp    0x4(%edx),%ecx
4058d1:	75 10                	jne    0x4058e3
4058d3:	8b 00                	mov    (%eax),%eax
4058d5:	3b 06                	cmp    (%esi),%eax
4058d7:	75 0a                	jne    0x4058e3
4058d9:	5f                   	pop    %edi
4058da:	b0 01                	mov    $0x1,%al
4058dc:	5e                   	pop    %esi
4058dd:	8b e5                	mov    %ebp,%esp
4058df:	5d                   	pop    %ebp
4058e0:	c2 08 00             	ret    $0x8
4058e3:	5f                   	pop    %edi
4058e4:	32 c0                	xor    %al,%al
4058e6:	5e                   	pop    %esi
4058e7:	8b e5                	mov    %ebp,%esp
4058e9:	5d                   	pop    %ebp
4058ea:	c2 08 00             	ret    $0x8
4058ed:	cc                   	int3
4058ee:	cc                   	int3
4058ef:	cc                   	int3
4058f0:	55                   	push   %ebp
4058f1:	8b ec                	mov    %esp,%ebp
4058f3:	8b 41 04             	mov    0x4(%ecx),%eax
4058f6:	56                   	push   %esi
4058f7:	8b 75 08             	mov    0x8(%ebp),%esi
4058fa:	8b 56 04             	mov    0x4(%esi),%edx
4058fd:	3b 42 04             	cmp    0x4(%edx),%eax
405900:	75 0e                	jne    0x405910
405902:	8b 06                	mov    (%esi),%eax
405904:	3b 45 0c             	cmp    0xc(%ebp),%eax
405907:	75 07                	jne    0x405910
405909:	b0 01                	mov    $0x1,%al
40590b:	5e                   	pop    %esi
40590c:	5d                   	pop    %ebp
40590d:	c2 08 00             	ret    $0x8
405910:	32 c0                	xor    %al,%al
405912:	5e                   	pop    %esi
405913:	5d                   	pop    %ebp
405914:	c2 08 00             	ret    $0x8
405917:	cc                   	int3
405918:	cc                   	int3
405919:	cc                   	int3
40591a:	cc                   	int3
40591b:	cc                   	int3
40591c:	cc                   	int3
40591d:	cc                   	int3
40591e:	cc                   	int3
40591f:	cc                   	int3
405920:	55                   	push   %ebp
405921:	8b ec                	mov    %esp,%ebp
405923:	8b 45 08             	mov    0x8(%ebp),%eax
405926:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405929:	89 08                	mov    %ecx,(%eax)
40592b:	c7 40 04 00 5d 45 00 	movl   $0x455d00,0x4(%eax)
405932:	5d                   	pop    %ebp
405933:	c3                   	ret
405934:	cc                   	int3
405935:	cc                   	int3
405936:	cc                   	int3
405937:	cc                   	int3
405938:	cc                   	int3
405939:	cc                   	int3
40593a:	cc                   	int3
40593b:	cc                   	int3
40593c:	cc                   	int3
40593d:	cc                   	int3
40593e:	cc                   	int3
40593f:	cc                   	int3
405940:	53                   	push   %ebx
405941:	8b dc                	mov    %esp,%ebx
405943:	83 ec 08             	sub    $0x8,%esp
405946:	83 e4 f8             	and    $0xfffffff8,%esp
405949:	83 c4 04             	add    $0x4,%esp
40594c:	55                   	push   %ebp
40594d:	8b 6b 04             	mov    0x4(%ebx),%ebp
405950:	89 6c 24 04          	mov    %ebp,0x4(%esp)
405954:	8b ec                	mov    %esp,%ebp
405956:	6a ff                	push   $0xffffffff