40455e:	83 f8 ff             	cmp    $0xffffffff,%eax
404561:	75 16                	jne    0x404579
404563:	8b 06                	mov    (%esi),%eax
404565:	6a 00                	push   $0x0
404567:	8b 48 04             	mov    0x4(%eax),%ecx
40456a:	8b 44 31 0c          	mov    0xc(%ecx,%esi,1),%eax
40456e:	03 ce                	add    %esi,%ecx
404570:	83 c8 04             	or     $0x4,%eax
404573:	50                   	push   %eax
404574:	e8 27 d9 ff ff       	call   0x401ea0
404579:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40457c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404583:	59                   	pop    %ecx
404584:	5f                   	pop    %edi
404585:	5e                   	pop    %esi
404586:	5b                   	pop    %ebx
404587:	8b e5                	mov    %ebp,%esp
404589:	5d                   	pop    %ebp
40458a:	c3                   	ret
40458b:	b8 79 45 40 00       	mov    $0x404579,%eax
404590:	c3                   	ret
404591:	cc                   	int3
404592:	cc                   	int3
404593:	cc                   	int3
404594:	cc                   	int3
404595:	cc                   	int3
404596:	cc                   	int3
404597:	cc                   	int3
404598:	cc                   	int3
404599:	cc                   	int3
40459a:	cc                   	int3
40459b:	cc                   	int3
40459c:	cc                   	int3
40459d:	cc                   	int3
40459e:	cc                   	int3
40459f:	cc                   	int3
4045a0:	55                   	push   %ebp
4045a1:	8b ec                	mov    %esp,%ebp
4045a3:	56                   	push   %esi
4045a4:	57                   	push   %edi
4045a5:	8b 7d 08             	mov    0x8(%ebp),%edi
4045a8:	8b f1                	mov    %ecx,%esi
4045aa:	3b f7                	cmp    %edi,%esi
4045ac:	74 61                	je     0x40460f
4045ae:	8b 4e 14             	mov    0x14(%esi),%ecx
4045b1:	83 f9 10             	cmp    $0x10,%ecx
4045b4:	72 27                	jb     0x4045dd
4045b6:	8b 06                	mov    (%esi),%eax
4045b8:	41                   	inc    %ecx
4045b9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4045bf:	72 12                	jb     0x4045d3
4045c1:	8b 50 fc             	mov    -0x4(%eax),%edx
4045c4:	83 c1 23             	add    $0x23,%ecx
4045c7:	2b c2                	sub    %edx,%eax
4045c9:	83 c0 fc             	add    $0xfffffffc,%eax
4045cc:	83 f8 1f             	cmp    $0x1f,%eax
4045cf:	77 46                	ja     0x404617
4045d1:	8b c2                	mov    %edx,%eax
4045d3:	51                   	push   %ecx
4045d4:	50                   	push   %eax
4045d5:	e8 72 30 00 00       	call   0x40764c
4045da:	83 c4 08             	add    $0x8,%esp
4045dd:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4045e4:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4045eb:	c6 06 00             	movb   $0x0,(%esi)
4045ee:	0f 10 07             	movups (%edi),%xmm0
4045f1:	0f 11 06             	movups %xmm0,(%esi)
4045f4:	f3 0f 7e 47 10       	movq   0x10(%edi),%xmm0
4045f9:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
4045fe:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
404605:	c7 47 14 0f 00 00 00 	movl   $0xf,0x14(%edi)
40460c:	c6 07 00             	movb   $0x0,(%edi)
40460f:	5f                   	pop    %edi
404610:	8b c6                	mov    %esi,%eax
404612:	5e                   	pop    %esi
404613:	5d                   	pop    %ebp
404614:	c2 04 00             	ret    $0x4
404617:	e8 75 8a 00 00       	call   0x40d091
40461c:	cc                   	int3
40461d:	cc                   	int3
40461e:	cc                   	int3
40461f:	cc                   	int3
404620:	55                   	push   %ebp
404621:	8b ec                	mov    %esp,%ebp
404623:	56                   	push   %esi
404624:	8b f1                	mov    %ecx,%esi
404626:	ff 76 08             	push   0x8(%esi)
404629:	c7 06 04 50 42 00    	movl   $0x425004,(%esi)
40462f:	e8 df 85 00 00       	call   0x40cc13
404634:	ff 76 10             	push   0x10(%esi)
404637:	e8 d7 85 00 00       	call   0x40cc13
40463c:	ff 76 14             	push   0x14(%esi)
40463f:	e8 cf 85 00 00       	call   0x40cc13
404644:	83 c4 0c             	add    $0xc,%esp
404647:	c7 06 78 43 42 00    	movl   $0x424378,(%esi)
40464d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
404651:	74 0b                	je     0x40465e
404653:	6a 18                	push   $0x18
404655:	56                   	push   %esi
404656:	e8 f1 2f 00 00       	call   0x40764c
40465b:	83 c4 08             	add    $0x8,%esp
40465e:	8b c6                	mov    %esi,%eax
404660:	5e                   	pop    %esi
404661:	5d                   	pop    %ebp
404662:	c2 04 00             	ret    $0x4
404665:	cc                   	int3
404666:	cc                   	int3
404667:	cc                   	int3
404668:	cc                   	int3
404669:	cc                   	int3
40466a:	cc                   	int3
40466b:	cc                   	int3
40466c:	cc                   	int3
40466d:	cc                   	int3
40466e:	cc                   	int3
40466f:	cc                   	int3
404670:	55                   	push   %ebp
404671:	8b ec                	mov    %esp,%ebp
404673:	51                   	push   %ecx
404674:	53                   	push   %ebx
404675:	8b 5d 08             	mov    0x8(%ebp),%ebx
404678:	56                   	push   %esi
404679:	8b f1                	mov    %ecx,%esi
40467b:	57                   	push   %edi
40467c:	8b 4e 14             	mov    0x14(%esi),%ecx
40467f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
404682:	3b d9                	cmp    %ecx,%ebx
404684:	77 2a                	ja     0x4046b0
404686:	8b fe                	mov    %esi,%edi
404688:	83 f9 10             	cmp    $0x10,%ecx
40468b:	72 02                	jb     0x40468f
40468d:	8b 3e                	mov    (%esi),%edi
40468f:	0f be 45 0c          	movsbl 0xc(%ebp),%eax
404693:	53                   	push   %ebx
404694:	50                   	push   %eax
404695:	57                   	push   %edi
404696:	89 5e 10             	mov    %ebx,0x10(%esi)
404699:	e8 52 48 00 00       	call   0x408ef0
40469e:	83 c4 0c             	add    $0xc,%esp
4046a1:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
4046a5:	8b c6                	mov    %esi,%eax
4046a7:	5f                   	pop    %edi
4046a8:	5e                   	pop    %esi
4046a9:	5b                   	pop    %ebx
4046aa:	8b e5                	mov    %ebp,%esp
4046ac:	5d                   	pop    %ebp
4046ad:	c2 08 00             	ret    $0x8
4046b0:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
4046b6:	0f 87 d3 00 00 00    	ja     0x40478f
4046bc:	8b fb                	mov    %ebx,%edi
4046be:	83 cf 0f             	or     $0xf,%edi
4046c1:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
4046c7:	77 2f                	ja     0x4046f8
4046c9:	8b d1                	mov    %ecx,%edx
4046cb:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4046d0:	d1 ea                	shr    $1,%edx
4046d2:	2b c2                	sub    %edx,%eax
4046d4:	3b c8                	cmp    %eax,%ecx
4046d6:	77 20                	ja     0x4046f8
4046d8:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4046db:	3b f8                	cmp    %eax,%edi
4046dd:	0f 42 f8             	cmovb  %eax,%edi
4046e0:	8d 4f 01             	lea    0x1(%edi),%ecx
4046e3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4046e9:	72 2f                	jb     0x40471a
4046eb:	8d 41 23             	lea    0x23(%ecx),%eax
4046ee:	3b c1                	cmp    %ecx,%eax
4046f0:	0f 86 9e 00 00 00    	jbe    0x404794
4046f6:	eb 0a                	jmp    0x404702
4046f8:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
4046fd:	b8 23 00 00 80       	mov    $0x80000023,%eax
404702:	50                   	push   %eax
404703:	e8 14 2f 00 00       	call   0x40761c
404708:	83 c4 04             	add    $0x4,%esp
40470b:	85 c0                	test   %eax,%eax
40470d:	74 7b                	je     0x40478a
40470f:	8d 48 23             	lea    0x23(%eax),%ecx
404712:	83 e1 e0             	and    $0xffffffe0,%ecx
404715:	89 41 fc             	mov    %eax,-0x4(%ecx)
404718:	eb 13                	jmp    0x40472d
40471a:	85 c9                	test   %ecx,%ecx
40471c:	74 0d                	je     0x40472b
40471e:	51                   	push   %ecx
40471f:	e8 f8 2e 00 00       	call   0x40761c
404724:	83 c4 04             	add    $0x4,%esp
404727:	8b c8                	mov    %eax,%ecx
404729:	eb 02                	jmp    0x40472d
40472b:	33 c9                	xor    %ecx,%ecx
40472d:	0f be 45 0c          	movsbl 0xc(%ebp),%eax
404731:	53                   	push   %ebx
404732:	50                   	push   %eax
404733:	51                   	push   %ecx
404734:	89 4d 08             	mov    %ecx,0x8(%ebp)
404737:	89 5e 10             	mov    %ebx,0x10(%esi)
40473a:	89 7e 14             	mov    %edi,0x14(%esi)
40473d:	e8 ae 47 00 00       	call   0x408ef0
404742:	8b 7d 08             	mov    0x8(%ebp),%edi
404745:	83 c4 0c             	add    $0xc,%esp
404748:	8b 45 fc             	mov    -0x4(%ebp),%eax
40474b:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
40474f:	83 f8 10             	cmp    $0x10,%eax
404752:	72 29                	jb     0x40477d
404754:	8d 48 01             	lea    0x1(%eax),%ecx
404757:	8b 06                	mov    (%esi),%eax
404759:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40475f:	72 12                	jb     0x404773
404761:	8b 50 fc             	mov    -0x4(%eax),%edx
404764:	83 c1 23             	add    $0x23,%ecx
404767:	2b c2                	sub    %edx,%eax
404769:	83 c0 fc             	add    $0xfffffffc,%eax
40476c:	83 f8 1f             	cmp    $0x1f,%eax
40476f:	77 19                	ja     0x40478a
404771:	8b c2                	mov    %edx,%eax
404773:	51                   	push   %ecx
404774:	50                   	push   %eax
404775:	e8 d2 2e 00 00       	call   0x40764c
40477a:	83 c4 08             	add    $0x8,%esp
40477d:	89 3e                	mov    %edi,(%esi)
40477f:	8b c6                	mov    %esi,%eax
404781:	5f                   	pop    %edi
404782:	5e                   	pop    %esi
404783:	5b                   	pop    %ebx
404784:	8b e5                	mov    %ebp,%esp
404786:	5d                   	pop    %ebp
404787:	c2 08 00             	ret    $0x8
40478a:	e8 02 89 00 00       	call   0x40d091
40478f:	e8 1c cc ff ff       	call   0x4013b0
404794:	e8 47 cb ff ff       	call   0x4012e0
404799:	cc                   	int3
40479a:	cc                   	int3
40479b:	cc                   	int3
40479c:	cc                   	int3
40479d:	cc                   	int3
40479e:	cc                   	int3
40479f:	cc                   	int3
4047a0:	68 28 fc 42 00       	push   $0x42fc28
4047a5:	e8 3e 0e 00 00       	call   0x4055e8
4047aa:	cc                   	int3
4047ab:	cc                   	int3
4047ac:	cc                   	int3
4047ad:	cc                   	int3
4047ae:	cc                   	int3
4047af:	cc                   	int3
4047b0:	53                   	push   %ebx
4047b1:	8b dc                	mov    %esp,%ebx
4047b3:	83 ec 08             	sub    $0x8,%esp
4047b6:	83 e4 f8             	and    $0xfffffff8,%esp
4047b9:	83 c4 04             	add    $0x4,%esp
4047bc:	55                   	push   %ebp
4047bd:	8b 6b 04             	mov    0x4(%ebx),%ebp
4047c0:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4047c4:	8b ec                	mov    %esp,%ebp
4047c6:	6a ff                	push   $0xffffffff
4047c8:	68 e4 2c 42 00       	push   $0x422ce4
4047cd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4047d3:	50                   	push   %eax
4047d4:	53                   	push   %ebx
4047d5:	83 ec 58             	sub    $0x58,%esp
4047d8:	56                   	push   %esi
4047d9:	57                   	push   %edi
4047da:	a1 14 30 43 00       	mov    0x433014,%eax
4047df:	33 c5                	xor    %ebp,%eax
4047e1:	50                   	push   %eax
4047e2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4047e5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4047eb:	6a 00                	push   $0x0
4047ed:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4047f0:	e8 4c 0c 00 00       	call   0x405441
4047f5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4047fc:	8b 3d e8 40 43 00    	mov    0x4340e8,%edi
404802:	a1 f0 52 43 00       	mov    0x4352f0,%eax
404807:	89 45 e8             	mov    %eax,-0x18(%ebp)
40480a:	85 ff                	test   %edi,%edi
40480c:	75 2f                	jne    0x40483d
40480e:	57                   	push   %edi
40480f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404812:	e8 2a 0c 00 00       	call   0x405441
404817:	39 3d e8 40 43 00    	cmp    %edi,0x4340e8
40481d:	75 10                	jne    0x40482f
40481f:	a1 d0 40 43 00       	mov    0x4340d0,%eax
404824:	40                   	inc    %eax
404825:	a3 d0 40 43 00       	mov    %eax,0x4340d0
40482a:	a3 e8 40 43 00       	mov    %eax,0x4340e8
40482f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404832:	e8 62 0c 00 00       	call   0x405499
404837:	8b 3d e8 40 43 00    	mov    0x4340e8,%edi
40483d:	8b 4b 08             	mov    0x8(%ebx),%ecx
404840:	8b 49 04             	mov    0x4(%ecx),%ecx
404843:	3b 79 0c             	cmp    0xc(%ecx),%edi
404846:	73 10                	jae    0x404858
404848:	8b 41 08             	mov    0x8(%ecx),%eax
40484b:	8b 34 b8             	mov    (%eax,%edi,4),%esi
40484e:	85 f6                	test   %esi,%esi
404850:	0f 85 a9 00 00 00    	jne    0x4048ff
404856:	eb 02                	jmp    0x40485a
404858:	33 f6                	xor    %esi,%esi
40485a:	80 79 14 00          	cmpb   $0x0,0x14(%ecx)
40485e:	74 10                	je     0x404870
404860:	e8 6f 22 00 00       	call   0x406ad4
404865:	3b 78 0c             	cmp    0xc(%eax),%edi
404868:	73 0e                	jae    0x404878
40486a:	8b 40 08             	mov    0x8(%eax),%eax
40486d:	8b 34 b8             	mov    (%eax,%edi,4),%esi
404870:	85 f6                	test   %esi,%esi
404872:	0f 85 87 00 00 00    	jne    0x4048ff
404878:	8b 45 e8             	mov    -0x18(%ebp),%eax
40487b:	85 c0                	test   %eax,%eax
40487d:	74 04                	je     0x404883
40487f:	8b f0                	mov    %eax,%esi
404881:	eb 7c                	jmp    0x4048ff
404883:	6a 18                	push   $0x18
404885:	e8 92 2d 00 00       	call   0x40761c
40488a:	8b f0                	mov    %eax,%esi
40488c:	83 c4 04             	add    $0x4,%esp
40488f:	89 75 e8             	mov    %esi,-0x18(%ebp)
404892:	8b 43 08             	mov    0x8(%ebx),%eax
404895:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404899:	8b 48 04             	mov    0x4(%eax),%ecx
40489c:	85 c9                	test   %ecx,%ecx
40489e:	74 0c                	je     0x4048ac
4048a0:	8b 41 18             	mov    0x18(%ecx),%eax
4048a3:	85 c0                	test   %eax,%eax
4048a5:	75 0a                	jne    0x4048b1
4048a7:	8d 41 1c             	lea    0x1c(%ecx),%eax
4048aa:	eb 05                	jmp    0x4048b1
4048ac:	b8 db f6 42 00       	mov    $0x42f6db,%eax
4048b1:	50                   	push   %eax
4048b2:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4048b5:	e8 e6 d0 ff ff       	call   0x4019a0
4048ba:	8d 45 d0             	lea    -0x30(%ebp),%eax
4048bd:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4048c4:	50                   	push   %eax
4048c5:	c7 06 88 43 42 00    	movl   $0x424388,(%esi)
4048cb:	e8 49 24 00 00       	call   0x406d19
4048d0:	83 c4 04             	add    $0x4,%esp
4048d3:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4048d6:	0f 10 00             	movups (%eax),%xmm0
4048d9:	0f 11 46 08          	movups %xmm0,0x8(%esi)
4048dd:	e8 6e d1 ff ff       	call   0x401a50
4048e2:	89 75 e8             	mov    %esi,-0x18(%ebp)
4048e5:	56                   	push   %esi
4048e6:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4048ea:	e8 b9 21 00 00       	call   0x406aa8
4048ef:	8b 16                	mov    (%esi),%edx
4048f1:	83 c4 04             	add    $0x4,%esp
4048f4:	8b ce                	mov    %esi,%ecx
4048f6:	ff 52 04             	call   *0x4(%edx)
4048f9:	89 35 f0 52 43 00    	mov    %esi,0x4352f0
4048ff:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
404902:	e8 92 0b 00 00       	call   0x405499