5775eb:	ff 76 1c             	push   0x1c(%esi)
5775ee:	e8 cd b7 f3 ff       	call   0x4b2dc0
5775f3:	83 c4 08             	add    $0x8,%esp
5775f6:	85 c0                	test   %eax,%eax
5775f8:	79 0c                	jns    0x577606
5775fa:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5775fd:	8b 46 20             	mov    0x20(%esi),%eax
577600:	89 46 1c             	mov    %eax,0x1c(%esi)
577603:	89 4e 20             	mov    %ecx,0x20(%esi)
577606:	55                   	push   %ebp
577607:	ff 76 20             	push   0x20(%esi)
57760a:	ff 76 1c             	push   0x1c(%esi)
57760d:	ff 76 10             	push   0x10(%esi)
577610:	e8 6b 0e f6 ff       	call   0x4d8480
577615:	83 c4 10             	add    $0x10,%esp
577618:	85 c0                	test   %eax,%eax
57761a:	0f 84 b6 fe ff ff    	je     0x5774d6
577620:	e8 7b bf f3 ff       	call   0x4b35a0
577625:	50                   	push   %eax
577626:	ff 76 1c             	push   0x1c(%esi)
577629:	53                   	push   %ebx
57762a:	e8 31 0b f6 ff       	call   0x4d8160
57762f:	83 c4 0c             	add    $0xc,%esp
577632:	85 c0                	test   %eax,%eax
577634:	0f 84 9c fe ff ff    	je     0x5774d6
57763a:	e8 61 bf f3 ff       	call   0x4b35a0
57763f:	50                   	push   %eax
577640:	ff 76 20             	push   0x20(%esi)
577643:	57                   	push   %edi
577644:	e8 17 0b f6 ff       	call   0x4d8160
577649:	83 c4 0c             	add    $0xc,%esp
57764c:	85 c0                	test   %eax,%eax
57764e:	0f 84 82 fe ff ff    	je     0x5774d6
577654:	55                   	push   %ebp
577655:	57                   	push   %edi
577656:	8b 7c 24 20          	mov    0x20(%esp),%edi
57765a:	53                   	push   %ebx
57765b:	57                   	push   %edi
57765c:	e8 1f 0e f6 ff       	call   0x4d8480
577661:	83 c4 10             	add    $0x10,%esp
577664:	85 c0                	test   %eax,%eax
577666:	0f 84 6a fe ff ff    	je     0x5774d6
57766c:	f7 46 3c 00 01 00 00 	testl  $0x100,0x3c(%esi)
577673:	75 37                	jne    0x5776ac
577675:	8b 07                	mov    (%edi),%eax
577677:	8d 54 24 1c          	lea    0x1c(%esp),%edx
57767b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
57767f:	8b 47 04             	mov    0x4(%edi),%eax
577682:	89 44 24 20          	mov    %eax,0x20(%esp)
577686:	8b 47 08             	mov    0x8(%edi),%eax
577689:	89 44 24 24          	mov    %eax,0x24(%esp)
57768d:	8b 47 0c             	mov    0xc(%edi),%eax
577690:	89 44 24 28          	mov    %eax,0x28(%esp)
577694:	8b 4f 10             	mov    0x10(%edi),%ecx
577697:	8b 44 24 2c          	mov    0x2c(%esp),%eax
57769b:	83 e1 fe             	and    $0xfffffffe,%ecx
57769e:	83 e0 01             	and    $0x1,%eax
5776a1:	0b c8                	or     %eax,%ecx
5776a3:	83 c9 06             	or     $0x6,%ecx
5776a6:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
5776aa:	eb 02                	jmp    0x5776ae
5776ac:	8b d7                	mov    %edi,%edx
5776ae:	55                   	push   %ebp
5776af:	52                   	push   %edx
5776b0:	ff 76 14             	push   0x14(%esi)
5776b3:	ff 76 18             	push   0x18(%esi)
5776b6:	e8 d5 1b f6 ff       	call   0x4d9290
5776bb:	83 c4 10             	add    $0x10,%esp
5776be:	85 c0                	test   %eax,%eax
5776c0:	0f 84 10 fe ff ff    	je     0x5774d6
5776c6:	f7 46 3c 00 01 00 00 	testl  $0x100,0x3c(%esi)
5776cd:	75 3a                	jne    0x577709
5776cf:	8b 4e 18             	mov    0x18(%esi),%ecx
5776d2:	8d 7c 24 30          	lea    0x30(%esp),%edi
5776d6:	8b 01                	mov    (%ecx),%eax
5776d8:	89 44 24 30          	mov    %eax,0x30(%esp)
5776dc:	8b 41 04             	mov    0x4(%ecx),%eax
5776df:	89 44 24 34          	mov    %eax,0x34(%esp)
5776e3:	8b 41 08             	mov    0x8(%ecx),%eax
5776e6:	89 44 24 38          	mov    %eax,0x38(%esp)
5776ea:	8b 41 0c             	mov    0xc(%ecx),%eax
5776ed:	89 44 24 3c          	mov    %eax,0x3c(%esp)
5776f1:	8b 49 10             	mov    0x10(%ecx),%ecx
5776f4:	8b 44 24 40          	mov    0x40(%esp),%eax
5776f8:	83 e1 fe             	and    $0xfffffffe,%ecx
5776fb:	83 e0 01             	and    $0x1,%eax
5776fe:	0b c8                	or     %eax,%ecx
577700:	83 c9 06             	or     $0x6,%ecx
577703:	89 4c 24 40          	mov    %ecx,0x40(%esp)
577707:	eb 03                	jmp    0x57770c
577709:	8b 7e 18             	mov    0x18(%esi),%edi
57770c:	55                   	push   %ebp
57770d:	53                   	push   %ebx
57770e:	57                   	push   %edi
57770f:	ff 76 24             	push   0x24(%esi)
577712:	6a 00                	push   $0x0
577714:	e8 87 8c ff ff       	call   0x5703a0
577719:	83 c4 14             	add    $0x14,%esp
57771c:	85 c0                	test   %eax,%eax
57771e:	0f 84 b2 fd ff ff    	je     0x5774d6
577724:	55                   	push   %ebp
577725:	ff 74 24 18          	push   0x18(%esp)
577729:	57                   	push   %edi
57772a:	ff 76 28             	push   0x28(%esi)
57772d:	6a 00                	push   $0x0
57772f:	e8 6c 8c ff ff       	call   0x5703a0
577734:	83 c4 14             	add    $0x14,%esp
577737:	85 c0                	test   %eax,%eax
577739:	0f 84 97 fd ff ff    	je     0x5774d6
57773f:	f7 46 3c 00 01 00 00 	testl  $0x100,0x3c(%esi)
577746:	75 3a                	jne    0x577782
577748:	8b 4e 1c             	mov    0x1c(%esi),%ecx
57774b:	8d 54 24 44          	lea    0x44(%esp),%edx
57774f:	8b 01                	mov    (%ecx),%eax
577751:	89 44 24 44          	mov    %eax,0x44(%esp)
577755:	8b 41 04             	mov    0x4(%ecx),%eax
577758:	89 44 24 48          	mov    %eax,0x48(%esp)
57775c:	8b 41 08             	mov    0x8(%ecx),%eax
57775f:	89 44 24 4c          	mov    %eax,0x4c(%esp)
577763:	8b 41 0c             	mov    0xc(%ecx),%eax
577766:	89 44 24 50          	mov    %eax,0x50(%esp)
57776a:	8b 49 10             	mov    0x10(%ecx),%ecx
57776d:	8b 44 24 54          	mov    0x54(%esp),%eax
577771:	83 e1 fe             	and    $0xfffffffe,%ecx
577774:	83 e0 01             	and    $0x1,%eax
577777:	0b c8                	or     %eax,%ecx
577779:	83 c9 06             	or     $0x6,%ecx
57777c:	89 4c 24 54          	mov    %ecx,0x54(%esp)
577780:	eb 03                	jmp    0x577785
577782:	8b 56 1c             	mov    0x1c(%esi),%edx
577785:	55                   	push   %ebp
577786:	52                   	push   %edx
577787:	ff 76 20             	push   0x20(%esi)
57778a:	ff 76 2c             	push   0x2c(%esi)
57778d:	e8 fe 1a f6 ff       	call   0x4d9290
577792:	83 c4 10             	add    $0x10,%esp
577795:	85 c0                	test   %eax,%eax
577797:	0f 84 39 fd ff ff    	je     0x5774d6
57779d:	be 01 00 00 00       	mov    $0x1,%esi
5777a2:	e9 4c fd ff ff       	jmp    0x5774f3
5777a7:	68 b0 00 00 00       	push   $0xb0
5777ac:	68 58 d3 6b 00       	push   $0x6bd358
5777b1:	6a 78                	push   $0x78
5777b3:	68 81 00 00 00       	push   $0x81
5777b8:	6a 04                	push   $0x4
5777ba:	33 f6                	xor    %esi,%esi
5777bc:	e8 df 9c f2 ff       	call   0x4a14a0
5777c1:	83 c4 14             	add    $0x14,%esp
5777c4:	e9 2a fd ff ff       	jmp    0x5774f3
5777c9:	cc                   	int3
5777ca:	cc                   	int3
5777cb:	cc                   	int3
5777cc:	cc                   	int3
5777cd:	cc                   	int3
5777ce:	cc                   	int3
5777cf:	cc                   	int3
5777d0:	b8 10 00 00 00       	mov    $0x10,%eax
5777d5:	e8 16 9d 06 00       	call   0x5e14f0
5777da:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5777de:	53                   	push   %ebx
5777df:	55                   	push   %ebp
5777e0:	89 44 24 08          	mov    %eax,0x8(%esp)
5777e4:	8b 44 24 20          	mov    0x20(%esp),%eax
5777e8:	57                   	push   %edi
5777e9:	89 44 24 14          	mov    %eax,0x14(%esp)
5777ed:	bf 01 00 00 00       	mov    $0x1,%edi
5777f2:	8d 44 24 0c          	lea    0xc(%esp),%eax
5777f6:	c7 44 24 10 04 00 00 	movl   $0x4,0x10(%esp)
5777fd:	00
5777fe:	6a 00                	push   $0x0
577800:	50                   	push   %eax
577801:	e8 ba c5 f3 ff       	call   0x4b3dc0
577806:	ff 74 24 3c          	push   0x3c(%esp)
57780a:	8b e8                	mov    %eax,%ebp
57780c:	e8 6f d2 f4 ff       	call   0x4c4a80
577811:	8b d8                	mov    %eax,%ebx
577813:	83 c4 0c             	add    $0xc,%esp
577816:	8d 43 f5             	lea    -0xb(%ebx),%eax
577819:	3b e8                	cmp    %eax,%ebp
57781b:	7e 1e                	jle    0x57783b
57781d:	6a 53                	push   $0x53
57781f:	68 70 d3 6b 00       	push   $0x6bd370
577824:	6a 70                	push   $0x70
577826:	6a 76                	push   $0x76
577828:	6a 04                	push   $0x4
57782a:	e8 71 9c f2 ff       	call   0x4a14a0
57782f:	83 c4 14             	add    $0x14,%esp
577832:	33 c0                	xor    %eax,%eax
577834:	5f                   	pop    %edi
577835:	5d                   	pop    %ebp
577836:	5b                   	pop    %ebx
577837:	83 c4 10             	add    $0x10,%esp
57783a:	c3                   	ret
57783b:	56                   	push   %esi
57783c:	6a 56                	push   $0x56
57783e:	43                   	inc    %ebx
57783f:	68 70 d3 6b 00       	push   $0x6bd370
577844:	53                   	push   %ebx
577845:	e8 66 89 f2 ff       	call   0x4a01b0
57784a:	8b f0                	mov    %eax,%esi
57784c:	83 c4 0c             	add    $0xc,%esp
57784f:	85 f6                	test   %esi,%esi
577851:	75 1f                	jne    0x577872
577853:	6a 58                	push   $0x58
577855:	68 70 d3 6b 00       	push   $0x6bd370
57785a:	6a 41                	push   $0x41
57785c:	6a 76                	push   $0x76
57785e:	6a 04                	push   $0x4
577860:	e8 3b 9c f2 ff       	call   0x4a14a0
577865:	83 c4 14             	add    $0x14,%esp
577868:	33 c0                	xor    %eax,%eax
57786a:	5e                   	pop    %esi
57786b:	5f                   	pop    %edi
57786c:	5d                   	pop    %ebp
57786d:	5b                   	pop    %ebx
57786e:	83 c4 10             	add    $0x10,%esp
577871:	c3                   	ret
577872:	8d 44 24 2c          	lea    0x2c(%esp),%eax
577876:	89 74 24 2c          	mov    %esi,0x2c(%esp)
57787a:	50                   	push   %eax
57787b:	8d 44 24 14          	lea    0x14(%esp),%eax
57787f:	50                   	push   %eax
577880:	e8 3b c5 f3 ff       	call   0x4b3dc0
577885:	6a 01                	push   $0x1
577887:	ff 74 24 44          	push   0x44(%esp)
57788b:	ff 74 24 40          	push   0x40(%esp)
57788f:	56                   	push   %esi
577890:	55                   	push   %ebp
577891:	e8 1a d0 f4 ff       	call   0x4c48b0
577896:	8b c8                	mov    %eax,%ecx
577898:	83 c4 1c             	add    $0x1c,%esp
57789b:	85 c9                	test   %ecx,%ecx
57789d:	7f 04                	jg     0x5778a3
57789f:	33 ff                	xor    %edi,%edi
5778a1:	eb 06                	jmp    0x5778a9
5778a3:	8b 44 24 34          	mov    0x34(%esp),%eax
5778a7:	89 08                	mov    %ecx,(%eax)
5778a9:	53                   	push   %ebx
5778aa:	56                   	push   %esi
5778ab:	e8 a0 8a f2 ff       	call   0x4a0350
5778b0:	56                   	push   %esi
5778b1:	e8 7a 88 f2 ff       	call   0x4a0130
5778b6:	83 c4 0c             	add    $0xc,%esp
5778b9:	8b c7                	mov    %edi,%eax
5778bb:	5e                   	pop    %esi
5778bc:	5f                   	pop    %edi
5778bd:	5d                   	pop    %ebp
5778be:	5b                   	pop    %ebx
5778bf:	83 c4 10             	add    $0x10,%esp
5778c2:	c3                   	ret
5778c3:	cc                   	int3
5778c4:	cc                   	int3
5778c5:	cc                   	int3
5778c6:	cc                   	int3
5778c7:	cc                   	int3
5778c8:	cc                   	int3
5778c9:	cc                   	int3
5778ca:	cc                   	int3
5778cb:	cc                   	int3
5778cc:	cc                   	int3
5778cd:	cc                   	int3
5778ce:	cc                   	int3
5778cf:	cc                   	int3
5778d0:	b8 2c 00 00 00       	mov    $0x2c,%eax
5778d5:	e8 16 9c 06 00       	call   0x5e14f0
5778da:	8b 44 24 40          	mov    0x40(%esp),%eax
5778de:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
5778e2:	53                   	push   %ebx
5778e3:	55                   	push   %ebp
5778e4:	33 ed                	xor    %ebp,%ebp
5778e6:	33 db                	xor    %ebx,%ebx
5778e8:	85 c0                	test   %eax,%eax
5778ea:	51                   	push   %ecx
5778eb:	0f 44 c1             	cmove  %ecx,%eax
5778ee:	89 44 24 4c          	mov    %eax,0x4c(%esp)
5778f2:	e8 f9 9b f1 ff       	call   0x4914f0
5778f7:	83 c4 04             	add    $0x4,%esp
5778fa:	89 44 24 0c          	mov    %eax,0xc(%esp)
5778fe:	85 c0                	test   %eax,%eax
577900:	0f 88 b1 02 00 00    	js     0x577bb7
577906:	57                   	push   %edi
577907:	8b 7c 24 50          	mov    0x50(%esp),%edi
57790b:	83 ff ff             	cmp    $0xffffffff,%edi
57790e:	75 3e                	jne    0x57794e
577910:	8b f8                	mov    %eax,%edi
577912:	56                   	push   %esi
577913:	8b 74 24 40          	mov    0x40(%esp),%esi
577917:	ff 76 10             	push   0x10(%esi)
57791a:	e8 51 ba f3 ff       	call   0x4b3370
57791f:	48                   	dec    %eax
577920:	83 e0 07             	and    $0x7,%eax
577923:	56                   	push   %esi
577924:	89 44 24 24          	mov    %eax,0x24(%esp)
577928:	e8 53 d1 f4 ff       	call   0x4c4a80
57792d:	83 c4 08             	add    $0x8,%esp
577930:	8b d0                	mov    %eax,%edx
577932:	89 54 24 20          	mov    %edx,0x20(%esp)
577936:	39 5c 24 1c          	cmp    %ebx,0x1c(%esp)
57793a:	75 42                	jne    0x57797e
57793c:	8b 4c 24 44          	mov    0x44(%esp),%ecx
577940:	88 19                	mov    %bl,(%ecx)
577942:	41                   	inc    %ecx
577943:	4a                   	dec    %edx
577944:	89 4c 24 10          	mov    %ecx,0x10(%esp)
577948:	89 54 24 20          	mov    %edx,0x20(%esp)
57794c:	eb 38                	jmp    0x577986
57794e:	83 ff fe             	cmp    $0xfffffffe,%edi
577951:	75 02                	jne    0x577955
577953:	eb bd                	jmp    0x577912
577955:	7d bb                	jge    0x577912
577957:	68 db 00 00 00       	push   $0xdb
57795c:	68 90 d3 6b 00       	push   $0x6bd390
577961:	68 88 00 00 00       	push   $0x88
577966:	68 94 00 00 00       	push   $0x94
57796b:	6a 04                	push   $0x4
57796d:	e8 2e 9b f2 ff       	call   0x4a14a0
577972:	83 c4 14             	add    $0x14,%esp
577975:	8b c5                	mov    %ebp,%eax
577977:	5f                   	pop    %edi
577978:	5d                   	pop    %ebp
577979:	5b                   	pop    %ebx
57797a:	83 c4 2c             	add    $0x2c,%esp
57797d:	c3                   	ret
57797e:	8b 44 24 44          	mov    0x44(%esp),%eax
577982:	89 44 24 10          	mov    %eax,0x10(%esp)
577986:	8b 4c 24 14          	mov    0x14(%esp),%ecx
57798a:	8d 41 02             	lea    0x2(%ecx),%eax
57798d:	3b d0                	cmp    %eax,%edx
57798f:	7d 25                	jge    0x5779b6
577991:	68 e7 00 00 00       	push   $0xe7
577996:	68 90 d3 6b 00       	push   $0x6bd390
57799b:	6a 6e                	push   $0x6e
57799d:	68 94 00 00 00       	push   $0x94
5779a2:	6a 04                	push   $0x4
5779a4:	e8 f7 9a f2 ff       	call   0x4a14a0
5779a9:	83 c4 14             	add    $0x14,%esp
5779ac:	8b c5                	mov    %ebp,%eax
5779ae:	5e                   	pop    %esi
5779af:	5f                   	pop    %edi
5779b0:	5d                   	pop    %ebp
5779b1:	5b                   	pop    %ebx
5779b2:	83 c4 2c             	add    $0x2c,%esp
5779b5:	c3                   	ret
5779b6:	8b f2                	mov    %edx,%esi
5779b8:	2b f1                	sub    %ecx,%esi
5779ba:	83 ff fe             	cmp    $0xfffffffe,%edi
5779bd:	75 45                	jne    0x577a04
5779bf:	8d 7e fe             	lea    -0x2(%esi),%edi
5779c2:	85 ff                	test   %edi,%edi
5779c4:	7e 65                	jle    0x577a2b