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
567957:	0b c8                	or     %eax,%ecx
567959:	8b c2                	mov    %edx,%eax
56795b:	25 00 00 00 20       	and    $0x20000000,%eax
567960:	d1 e9                	shr    $1,%ecx
567962:	0b c8                	or     %eax,%ecx
567964:	8b c2                	mov    %edx,%eax
567966:	25 00 00 00 40       	and    $0x40000000,%eax
56796b:	d1 e9                	shr    $1,%ecx
56796d:	0b c8                	or     %eax,%ecx
56796f:	81 e2 01 00 00 80    	and    $0x80000001,%edx
567975:	8b 06                	mov    (%esi),%eax
567977:	d1 e9                	shr    $1,%ecx
567979:	0b ca                	or     %edx,%ecx
56797b:	d1 e9                	shr    $1,%ecx
56797d:	89 4c e8 04          	mov    %ecx,0x4(%eax,%ebp,8)
567981:	8b 03                	mov    (%ebx),%eax
567983:	8b 0c a8             	mov    (%eax,%ebp,4),%ecx
567986:	8b d1                	mov    %ecx,%edx
567988:	81 e2 00 80 00 00    	and    $0x8000,%edx
56798e:	8b c1                	mov    %ecx,%eax
567990:	03 d2                	add    %edx,%edx
567992:	25 00 40 00 00       	and    $0x4000,%eax
567997:	0b d0                	or     %eax,%edx
567999:	8b c1                	mov    %ecx,%eax
56799b:	03 d2                	add    %edx,%edx
56799d:	25 00 20 00 00       	and    $0x2000,%eax
5679a2:	0b d0                	or     %eax,%edx
5679a4:	8b c1                	mov    %ecx,%eax
5679a6:	03 d2                	add    %edx,%edx
5679a8:	25 00 10 00 00       	and    $0x1000,%eax
5679ad:	0b d0                	or     %eax,%edx
5679af:	8b c1                	mov    %ecx,%eax
5679b1:	03 d2                	add    %edx,%edx
5679b3:	25 00 08 00 00       	and    $0x800,%eax
5679b8:	0b d0                	or     %eax,%edx
5679ba:	8b c1                	mov    %ecx,%eax
5679bc:	03 d2                	add    %edx,%edx
5679be:	25 00 04 00 00       	and    $0x400,%eax
5679c3:	0b d0                	or     %eax,%edx
5679c5:	8b c1                	mov    %ecx,%eax
5679c7:	03 d2                	add    %edx,%edx
5679c9:	25 00 02 00 00       	and    $0x200,%eax
5679ce:	0b d0                	or     %eax,%edx
5679d0:	8b c1                	mov    %ecx,%eax
5679d2:	03 d2                	add    %edx,%edx
5679d4:	25 00 01 00 00       	and    $0x100,%eax
5679d9:	0b d0                	or     %eax,%edx
5679db:	8b c1                	mov    %ecx,%eax
5679dd:	03 d2                	add    %edx,%edx
5679df:	25 80 00 00 00       	and    $0x80,%eax
5679e4:	0b d0                	or     %eax,%edx
5679e6:	8b c1                	mov    %ecx,%eax
5679e8:	03 d2                	add    %edx,%edx
5679ea:	83 e0 40             	and    $0x40,%eax
5679ed:	0b d0                	or     %eax,%edx
5679ef:	8b c1                	mov    %ecx,%eax
5679f1:	03 d2                	add    %edx,%edx
5679f3:	83 e0 20             	and    $0x20,%eax
5679f6:	0b d0                	or     %eax,%edx
5679f8:	8b c1                	mov    %ecx,%eax
5679fa:	03 d2                	add    %edx,%edx
5679fc:	83 e0 10             	and    $0x10,%eax
5679ff:	0b d0                	or     %eax,%edx
567a01:	8b c1                	mov    %ecx,%eax
567a03:	03 d2                	add    %edx,%edx
567a05:	83 e0 08             	and    $0x8,%eax
567a08:	0b d0                	or     %eax,%edx
567a0a:	8b c1                	mov    %ecx,%eax
567a0c:	03 d2                	add    %edx,%edx
567a0e:	83 e0 04             	and    $0x4,%eax
567a11:	0b d0                	or     %eax,%edx
567a13:	8b c1                	mov    %ecx,%eax
567a15:	03 d2                	add    %edx,%edx
567a17:	83 e0 02             	and    $0x2,%eax
567a1a:	0b d0                	or     %eax,%edx
567a1c:	83 e1 01             	and    $0x1,%ecx
567a1f:	8b 06                	mov    (%esi),%eax
567a21:	03 d2                	add    %edx,%edx
567a23:	0b d1                	or     %ecx,%edx
567a25:	89 14 e8             	mov    %edx,(%eax,%ebp,8)
567a28:	83 ed 01             	sub    $0x1,%ebp
567a2b:	0f 89 97 fe ff ff    	jns    0x5678c8
567a31:	8b 43 04             	mov    0x4(%ebx),%eax
567a34:	8b 6c 24 24          	mov    0x24(%esp),%ebp
567a38:	03 c0                	add    %eax,%eax
567a3a:	56                   	push   %esi
567a3b:	89 46 04             	mov    %eax,0x4(%esi)
567a3e:	e8 0d 2a f7 ff       	call   0x4da450
567a43:	ff 74 24 24          	push   0x24(%esp)
567a47:	56                   	push   %esi
567a48:	ff 74 24 24          	push   0x24(%esp)
567a4c:	e8 6f ee ff ff       	call   0x5668c0
567a51:	83 c4 10             	add    $0x10,%esp
567a54:	b9 01 00 00 00       	mov    $0x1,%ecx
567a59:	85 c0                	test   %eax,%eax
567a5b:	0f 45 f9             	cmovne %ecx,%edi
567a5e:	5b                   	pop    %ebx
567a5f:	55                   	push   %ebp
567a60:	e8 6b 00 f8 ff       	call   0x4e7ad0
567a65:	83 c4 04             	add    $0x4,%esp
567a68:	8b c7                	mov    %edi,%eax
567a6a:	5f                   	pop    %edi
567a6b:	5e                   	pop    %esi
567a6c:	5d                   	pop    %ebp
567a6d:	59                   	pop    %ecx
567a6e:	c3                   	ret
567a6f:	cc                   	int3
567a70:	55                   	push   %ebp
567a71:	57                   	push   %edi
567a72:	8b 7c 24 14          	mov    0x14(%esp),%edi
567a76:	33 ed                	xor    %ebp,%ebp
567a78:	39 2f                	cmp    %ebp,(%edi)
567a7a:	75 13                	jne    0x567a8f
567a7c:	55                   	push   %ebp
567a7d:	ff 74 24 10          	push   0x10(%esp)
567a81:	e8 5a 26 f7 ff       	call   0x4da0e0
567a86:	83 c4 08             	add    $0x8,%esp
567a89:	8d 45 01             	lea    0x1(%ebp),%eax
567a8c:	5f                   	pop    %edi
567a8d:	5d                   	pop    %ebp
567a8e:	c3                   	ret
567a8f:	53                   	push   %ebx
567a90:	56                   	push   %esi
567a91:	8b 74 24 20          	mov    0x20(%esp),%esi
567a95:	56                   	push   %esi
567a96:	e8 75 03 f8 ff       	call   0x4e7e10
567a9b:	56                   	push   %esi
567a9c:	e8 2f 01 f8 ff       	call   0x4e7bd0
567aa1:	8b d8                	mov    %eax,%ebx
567aa3:	83 c4 08             	add    $0x8,%esp
567aa6:	85 db                	test   %ebx,%ebx
567aa8:	74 26                	je     0x567ad0
567aaa:	8b 07                	mov    (%edi),%eax
567aac:	48                   	dec    %eax
567aad:	50                   	push   %eax
567aae:	53                   	push   %ebx
567aaf:	e8 7c 25 f7 ff       	call   0x4da030
567ab4:	83 c4 08             	add    $0x8,%esp
567ab7:	85 c0                	test   %eax,%eax
567ab9:	74 15                	je     0x567ad0
567abb:	56                   	push   %esi
567abc:	57                   	push   %edi
567abd:	53                   	push   %ebx
567abe:	ff 74 24 24          	push   0x24(%esp)
567ac2:	ff 74 24 24          	push   0x24(%esp)
567ac6:	e8 95 f0 ff ff       	call   0x566b60
567acb:	83 c4 14             	add    $0x14,%esp
567ace:	8b e8                	mov    %eax,%ebp
567ad0:	56                   	push   %esi
567ad1:	e8 fa ff f7 ff       	call   0x4e7ad0
567ad6:	83 c4 04             	add    $0x4,%esp
567ad9:	8b c5                	mov    %ebp,%eax
567adb:	5e                   	pop    %esi
567adc:	5b                   	pop    %ebx
567add:	5f                   	pop    %edi
567ade:	5d                   	pop    %ebp
567adf:	c3                   	ret
567ae0:	55                   	push   %ebp
567ae1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
567ae5:	56                   	push   %esi
567ae6:	55                   	push   %ebp
567ae7:	33 f6                	xor    %esi,%esi
567ae9:	e8 72 22 f7 ff       	call   0x4d9d60
567aee:	83 c4 04             	add    $0x4,%esp
567af1:	85 c0                	test   %eax,%eax
567af3:	74 05                	je     0x567afa
567af5:	5e                   	pop    %esi
567af6:	33 c0                	xor    %eax,%eax
567af8:	5d                   	pop    %ebp
567af9:	c3                   	ret
567afa:	53                   	push   %ebx
567afb:	8b 5d 04             	mov    0x4(%ebp),%ebx
567afe:	83 eb 01             	sub    $0x1,%ebx
567b01:	78 4e                	js     0x567b51
567b03:	57                   	push   %edi