567556:	e8 75 06 f8 ff       	call   0x4e7bd0
56755b:	53                   	push   %ebx
56755c:	89 44 24 40          	mov    %eax,0x40(%esp)
567560:	e8 6b 06 f8 ff       	call   0x4e7bd0
567565:	53                   	push   %ebx
567566:	8b f0                	mov    %eax,%esi
567568:	e8 63 06 f8 ff       	call   0x4e7bd0
56756d:	8b e8                	mov    %eax,%ebp
56756f:	83 c4 10             	add    $0x10,%esp
567572:	89 6c 24 18          	mov    %ebp,0x18(%esp)
567576:	85 ed                	test   %ebp,%ebp
567578:	0f 84 da 02 00 00    	je     0x567858
56757e:	57                   	push   %edi
56757f:	ff 74 24 34          	push   0x34(%esp)
567583:	ff 74 24 3c          	push   0x3c(%esp)
567587:	e8 34 f3 ff ff       	call   0x5668c0
56758c:	83 c4 0c             	add    $0xc,%esp
56758f:	85 c0                	test   %eax,%eax
567591:	0f 84 c1 02 00 00    	je     0x567858
567597:	ff 74 24 34          	push   0x34(%esp)
56759b:	e8 c0 27 f7 ff       	call   0x4d9d60
5675a0:	83 c4 04             	add    $0x4,%esp
5675a3:	85 c0                	test   %eax,%eax
5675a5:	74 2b                	je     0x5675d2
5675a7:	6a 00                	push   $0x0
5675a9:	ff 74 24 30          	push   0x30(%esp)
5675ad:	e8 2e 2b f7 ff       	call   0x4da0e0
5675b2:	83 c4 08             	add    $0x8,%esp
5675b5:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%esp)
5675bc:	00
5675bd:	53                   	push   %ebx
5675be:	e8 0d 05 f8 ff       	call   0x4e7ad0
5675c3:	8b 44 24 24          	mov    0x24(%esp),%eax
5675c7:	83 c4 04             	add    $0x4,%esp
5675ca:	5e                   	pop    %esi
5675cb:	5d                   	pop    %ebp
5675cc:	5b                   	pop    %ebx
5675cd:	5f                   	pop    %edi
5675ce:	83 c4 18             	add    $0x18,%esp
5675d1:	c3                   	ret
5675d2:	f6 07 01             	testb  $0x1,(%edi)
5675d5:	0f 84 e9 00 00 00    	je     0x5676c4
5675db:	ff 74 24 34          	push   0x34(%esp)
5675df:	56                   	push   %esi
5675e0:	e8 fb 24 f7 ff       	call   0x4d9ae0
5675e5:	83 c4 08             	add    $0x8,%esp
5675e8:	85 c0                	test   %eax,%eax
5675ea:	0f 84 68 02 00 00    	je     0x567858
5675f0:	8b 07                	mov    (%edi),%eax
5675f2:	48                   	dec    %eax
5675f3:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
5675fa:	00
5675fb:	99                   	cltd
5675fc:	2b c2                	sub    %edx,%eax
5675fe:	d1 f8                	sar    $1,%eax
567600:	83 f8 01             	cmp    $0x1,%eax
567603:	7c 53                	jl     0x567658
567605:	53                   	push   %ebx
567606:	57                   	push   %edi
567607:	56                   	push   %esi
567608:	56                   	push   %esi
567609:	e8 62 02 00 00       	call   0x567870
56760e:	83 c4 10             	add    $0x10,%esp
567611:	85 c0                	test   %eax,%eax
567613:	0f 84 3f 02 00 00    	je     0x567858
567619:	53                   	push   %ebx
56761a:	57                   	push   %edi
56761b:	56                   	push   %esi
56761c:	56                   	push   %esi
56761d:	e8 4e 02 00 00       	call   0x567870
567622:	83 c4 10             	add    $0x10,%esp
567625:	85 c0                	test   %eax,%eax
567627:	0f 84 2b 02 00 00    	je     0x567858
56762d:	ff 74 24 34          	push   0x34(%esp)
567631:	56                   	push   %esi
567632:	56                   	push   %esi
567633:	e8 f8 f1 ff ff       	call   0x566830
567638:	83 c4 0c             	add    $0xc,%esp
56763b:	85 c0                	test   %eax,%eax
56763d:	0f 84 15 02 00 00    	je     0x567858
567643:	8b 07                	mov    (%edi),%eax
567645:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
567649:	48                   	dec    %eax
56764a:	99                   	cltd
56764b:	41                   	inc    %ecx
56764c:	2b c2                	sub    %edx,%eax
56764e:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
567652:	d1 f8                	sar    $1,%eax
567654:	3b c8                	cmp    %eax,%ecx
567656:	7e ad                	jle    0x567605
567658:	53                   	push   %ebx
567659:	57                   	push   %edi
56765a:	56                   	push   %esi
56765b:	55                   	push   %ebp
56765c:	e8 0f 02 00 00       	call   0x567870
567661:	83 c4 10             	add    $0x10,%esp
567664:	85 c0                	test   %eax,%eax
567666:	0f 84 ec 01 00 00    	je     0x567858
56766c:	55                   	push   %ebp
56766d:	56                   	push   %esi
56766e:	55                   	push   %ebp
56766f:	e8 bc f1 ff ff       	call   0x566830
567674:	83 c4 0c             	add    $0xc,%esp
567677:	85 c0                	test   %eax,%eax
567679:	0f 84 d9 01 00 00    	je     0x567858
56767f:	ff 74 24 34          	push   0x34(%esp)
567683:	55                   	push   %ebp
567684:	e8 b7 2a f7 ff       	call   0x4da140
567689:	83 c4 08             	add    $0x8,%esp
56768c:	85 c0                	test   %eax,%eax
56768e:	0f 84 a7 01 00 00    	je     0x56783b
567694:	68 2a 04 00 00       	push   $0x42a
567699:	68 e8 7e 65 00       	push   $0x657ee8
56769e:	6a 74                	push   $0x74
5676a0:	68 87 00 00 00       	push   $0x87
5676a5:	6a 03                	push   $0x3
5676a7:	e8 d4 18 f7 ff       	call   0x4d8f80
5676ac:	83 c4 14             	add    $0x14,%esp
5676af:	53                   	push   %ebx
5676b0:	e8 1b 04 f8 ff       	call   0x4e7ad0
5676b5:	8b 44 24 24          	mov    0x24(%esp),%eax
5676b9:	83 c4 04             	add    $0x4,%esp
5676bc:	5e                   	pop    %esi
5676bd:	5d                   	pop    %ebp
5676be:	5b                   	pop    %ebx
5676bf:	5f                   	pop    %edi
5676c0:	83 c4 18             	add    $0x18,%esp
5676c3:	c3                   	ret
5676c4:	53                   	push   %ebx
5676c5:	e8 06 05 f8 ff       	call   0x4e7bd0
5676ca:	53                   	push   %ebx
5676cb:	89 44 24 18          	mov    %eax,0x18(%esp)
5676cf:	e8 fc 04 f8 ff       	call   0x4e7bd0
5676d4:	53                   	push   %ebx
5676d5:	89 44 24 20          	mov    %eax,0x20(%esp)
5676d9:	e8 f2 04 f8 ff       	call   0x4e7bd0
5676de:	83 c4 0c             	add    $0xc,%esp
5676e1:	89 44 24 24          	mov    %eax,0x24(%esp)
5676e5:	85 c0                	test   %eax,%eax
5676e7:	0f 84 6b 01 00 00    	je     0x567858
5676ed:	0f 1f 00             	nopl   (%eax)
5676f0:	6a 00                	push   $0x0
5676f2:	6a 00                	push   $0x0
5676f4:	ff 37                	push   (%edi)
5676f6:	ff 74 24 1c          	push   0x1c(%esp)
5676fa:	e8 11 5a f9 ff       	call   0x4fd110
5676ff:	83 c4 10             	add    $0x10,%esp
567702:	85 c0                	test   %eax,%eax
567704:	0f 84 4e 01 00 00    	je     0x567858
56770a:	8b 44 24 10          	mov    0x10(%esp),%eax
56770e:	57                   	push   %edi
56770f:	50                   	push   %eax
567710:	50                   	push   %eax
567711:	e8 aa f1 ff ff       	call   0x5668c0
567716:	83 c4 0c             	add    $0xc,%esp
567719:	85 c0                	test   %eax,%eax
56771b:	0f 84 37 01 00 00    	je     0x567858
567721:	6a 00                	push   $0x0
567723:	56                   	push   %esi
567724:	e8 b7 29 f7 ff       	call   0x4da0e0
567729:	ff 74 24 18          	push   0x18(%esp)
56772d:	55                   	push   %ebp
56772e:	e8 ad 23 f7 ff       	call   0x4d9ae0
567733:	83 c4 10             	add    $0x10,%esp
567736:	85 c0                	test   %eax,%eax
567738:	0f 84 1a 01 00 00    	je     0x567858
56773e:	8b 07                	mov    (%edi),%eax
567740:	bd 01 00 00 00       	mov    $0x1,%ebp
567745:	48                   	dec    %eax
567746:	3b c5                	cmp    %ebp,%eax
567748:	0f 8c 8c 00 00 00    	jl     0x5677da
56774e:	66 90                	xchg   %ax,%ax
567750:	53                   	push   %ebx
567751:	57                   	push   %edi
567752:	56                   	push   %esi
567753:	56                   	push   %esi
567754:	e8 17 01 00 00       	call   0x567870
567759:	83 c4 10             	add    $0x10,%esp
56775c:	85 c0                	test   %eax,%eax
56775e:	0f 84 f4 00 00 00    	je     0x567858
567764:	53                   	push   %ebx
567765:	57                   	push   %edi
567766:	ff 74 24 20          	push   0x20(%esp)
56776a:	ff 74 24 20          	push   0x20(%esp)
56776e:	e8 fd 00 00 00       	call   0x567870
567773:	83 c4 10             	add    $0x10,%esp
567776:	85 c0                	test   %eax,%eax
567778:	0f 84 da 00 00 00    	je     0x567858
56777e:	53                   	push   %ebx
56777f:	57                   	push   %edi
567780:	ff 74 24 3c          	push   0x3c(%esp)
567784:	ff 74 24 20          	push   0x20(%esp)
567788:	ff 74 24 34          	push   0x34(%esp)
56778c:	e8 3f fb ff ff       	call   0x5672d0
567791:	83 c4 14             	add    $0x14,%esp
567794:	85 c0                	test   %eax,%eax
567796:	0f 84 bc 00 00 00    	je     0x567858
56779c:	ff 74 24 24          	push   0x24(%esp)
5677a0:	56                   	push   %esi
5677a1:	56                   	push   %esi
5677a2:	e8 89 f0 ff ff       	call   0x566830
5677a7:	83 c4 0c             	add    $0xc,%esp
5677aa:	85 c0                	test   %eax,%eax
5677ac:	0f 84 a6 00 00 00    	je     0x567858
5677b2:	ff 74 24 10          	push   0x10(%esp)
5677b6:	ff 74 24 18          	push   0x18(%esp)
5677ba:	ff 74 24 20          	push   0x20(%esp)
5677be:	e8 6d f0 ff ff       	call   0x566830
5677c3:	83 c4 0c             	add    $0xc,%esp
5677c6:	85 c0                	test   %eax,%eax
5677c8:	0f 84 8a 00 00 00    	je     0x567858
5677ce:	8b 07                	mov    (%edi),%eax
5677d0:	45                   	inc    %ebp
5677d1:	48                   	dec    %eax
5677d2:	3b e8                	cmp    %eax,%ebp
5677d4:	0f 8e 76 ff ff ff    	jle    0x567750
5677da:	8b 6c 24 18          	mov    0x18(%esp),%ebp
5677de:	ff 44 24 1c          	incl   0x1c(%esp)
5677e2:	55                   	push   %ebp
5677e3:	e8 78 25 f7 ff       	call   0x4d9d60
5677e8:	83 c4 04             	add    $0x4,%esp
5677eb:	85 c0                	test   %eax,%eax
5677ed:	74 0b                	je     0x5677fa
5677ef:	83 7c 24 1c 32       	cmpl   $0x32,0x1c(%esp)
5677f4:	0f 8c f6 fe ff ff    	jl     0x5676f0
5677fa:	55                   	push   %ebp
5677fb:	e8 60 25 f7 ff       	call   0x4d9d60
567800:	83 c4 04             	add    $0x4,%esp
567803:	85 c0                	test   %eax,%eax
567805:	0f 84 4d fe ff ff    	je     0x567658
56780b:	68 20 04 00 00       	push   $0x420
567810:	68 e8 7e 65 00       	push   $0x657ee8
567815:	6a 71                	push   $0x71
567817:	68 87 00 00 00       	push   $0x87
56781c:	6a 03                	push   $0x3
56781e:	e8 5d 17 f7 ff       	call   0x4d8f80
567823:	83 c4 14             	add    $0x14,%esp
567826:	53                   	push   %ebx
567827:	e8 a4 02 f8 ff       	call   0x4e7ad0
56782c:	8b 44 24 24          	mov    0x24(%esp),%eax
567830:	83 c4 04             	add    $0x4,%esp
567833:	5e                   	pop    %esi
567834:	5d                   	pop    %ebp
567835:	5b                   	pop    %ebx
567836:	5f                   	pop    %edi
567837:	83 c4 18             	add    $0x18,%esp
56783a:	c3                   	ret
56783b:	56                   	push   %esi
56783c:	ff 74 24 30          	push   0x30(%esp)
567840:	e8 9b 22 f7 ff       	call   0x4d9ae0
567845:	33 c9                	xor    %ecx,%ecx
567847:	83 c4 08             	add    $0x8,%esp
56784a:	85 c0                	test   %eax,%eax
56784c:	ba 01 00 00 00       	mov    $0x1,%edx
567851:	0f 45 ca             	cmovne %edx,%ecx
567854:	89 4c 24 20          	mov    %ecx,0x20(%esp)
567858:	53                   	push   %ebx
567859:	e8 72 02 f8 ff       	call   0x4e7ad0
56785e:	8b 44 24 24          	mov    0x24(%esp),%eax
567862:	83 c4 04             	add    $0x4,%esp
567865:	5e                   	pop    %esi
567866:	5d                   	pop    %ebp
567867:	5b                   	pop    %ebx
567868:	5f                   	pop    %edi
567869:	83 c4 18             	add    $0x18,%esp
56786c:	c3                   	ret
56786d:	cc                   	int3
56786e:	cc                   	int3
56786f:	cc                   	int3
567870:	b8 04 00 00 00       	mov    $0x4,%eax
567875:	e8 36 9f 06 00       	call   0x5d17b0
56787a:	55                   	push   %ebp
56787b:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56787f:	56                   	push   %esi
567880:	57                   	push   %edi
567881:	55                   	push   %ebp
567882:	33 ff                	xor    %edi,%edi
567884:	e8 87 05 f8 ff       	call   0x4e7e10
567889:	55                   	push   %ebp
56788a:	e8 41 03 f8 ff       	call   0x4e7bd0
56788f:	8b f0                	mov    %eax,%esi
567891:	83 c4 08             	add    $0x8,%esp
567894:	85 f6                	test   %esi,%esi
567896:	0f 84 c3 01 00 00    	je     0x567a5f
56789c:	53                   	push   %ebx
56789d:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
5678a1:	8b 43 04             	mov    0x4(%ebx),%eax
5678a4:	03 c0                	add    %eax,%eax
5678a6:	50                   	push   %eax
5678a7:	56                   	push   %esi
5678a8:	e8 f3 2c f7 ff       	call   0x4da5a0
5678ad:	83 c4 08             	add    $0x8,%esp
5678b0:	85 c0                	test   %eax,%eax
5678b2:	0f 84 a6 01 00 00    	je     0x567a5e
5678b8:	8b 43 04             	mov    0x4(%ebx),%eax
5678bb:	8d 48 ff             	lea    -0x1(%eax),%ecx
5678be:	85 c9                	test   %ecx,%ecx
5678c0:	0f 88 72 01 00 00    	js     0x567a38
5678c6:	8b e9                	mov    %ecx,%ebp
5678c8:	8b 03                	mov    (%ebx),%eax
5678ca:	8b 14 a8             	mov    (%eax,%ebp,4),%edx
5678cd:	8b ca                	mov    %edx,%ecx
5678cf:	d1 e9                	shr    $1,%ecx
5678d1:	8b c2                	mov    %edx,%eax
5678d3:	25 00 00 02 00       	and    $0x20000,%eax
5678d8:	81 e1 00 80 00 00    	and    $0x8000,%ecx
5678de:	0b c8                	or     %eax,%ecx
5678e0:	8b c2                	mov    %edx,%eax
5678e2:	25 00 00 04 00       	and    $0x40000,%eax
5678e7:	d1 e9                	shr    $1,%ecx
5678e9:	0b c8                	or     %eax,%ecx
5678eb:	8b c2                	mov    %edx,%eax
5678ed:	25 00 00 08 00       	and    $0x80000,%eax
5678f2:	d1 e9                	shr    $1,%ecx
5678f4:	0b c8                	or     %eax,%ecx
5678f6:	8b c2                	mov    %edx,%eax
5678f8:	25 00 00 10 00       	and    $0x100000,%eax
5678fd:	d1 e9                	shr    $1,%ecx
5678ff:	0b c8                	or     %eax,%ecx
567901:	8b c2                	mov    %edx,%eax
567903:	25 00 00 20 00       	and    $0x200000,%eax
567908:	d1 e9                	shr    $1,%ecx
56790a:	0b c8                	or     %eax,%ecx
56790c:	8b c2                	mov    %edx,%eax
56790e:	25 00 00 40 00       	and    $0x400000,%eax
567913:	d1 e9                	shr    $1,%ecx
567915:	0b c8                	or     %eax,%ecx
567917:	8b c2                	mov    %edx,%eax
567919:	25 00 00 80 00       	and    $0x800000,%eax
56791e:	d1 e9                	shr    $1,%ecx
567920:	0b c8                	or     %eax,%ecx
567922:	8b c2                	mov    %edx,%eax
567924:	25 00 00 00 01       	and    $0x1000000,%eax
567929:	d1 e9                	shr    $1,%ecx
56792b:	0b c8                	or     %eax,%ecx
56792d:	8b c2                	mov    %edx,%eax
56792f:	25 00 00 00 02       	and    $0x2000000,%eax
567934:	d1 e9                	shr    $1,%ecx
567936:	0b c8                	or     %eax,%ecx
567938:	8b c2                	mov    %edx,%eax
56793a:	25 00 00 00 04       	and    $0x4000000,%eax
56793f:	d1 e9                	shr    $1,%ecx
567941:	0b c8                	or     %eax,%ecx
567943:	8b c2                	mov    %edx,%eax
567945:	25 00 00 00 08       	and    $0x8000000,%eax
56794a:	d1 e9                	shr    $1,%ecx
56794c:	0b c8                	or     %eax,%ecx
56794e:	8b c2                	mov    %edx,%eax
567950:	25 00 00 00 10       	and    $0x10000000,%eax
567955:	d1 e9                	shr    $1,%ecx