57566f:	e8 0c fc f6 ff       	call   0x4e5280
575674:	6a 00                	push   $0x0
575676:	8b d8                	mov    %eax,%ebx
575678:	6a ff                	push   $0xffffffff
57567a:	53                   	push   %ebx
57567b:	e8 90 6e fe ff       	call   0x55c510
575680:	83 c4 18             	add    $0x18,%esp
575683:	83 f8 01             	cmp    $0x1,%eax
575686:	74 04                	je     0x57568c
575688:	33 db                	xor    %ebx,%ebx
57568a:	eb 0c                	jmp    0x575698
57568c:	8b 9b 80 00 00 00    	mov    0x80(%ebx),%ebx
575692:	c1 eb 0d             	shr    $0xd,%ebx
575695:	83 e3 01             	and    $0x1,%ebx
575698:	83 7c 24 44 01       	cmpl   $0x1,0x44(%esp)
57569d:	bf 03 00 00 00       	mov    $0x3,%edi
5756a2:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
5756a9:	00
5756aa:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
5756b1:	00
5756b2:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
5756b9:	00
5756ba:	89 7c 24 20          	mov    %edi,0x20(%esp)
5756be:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
5756c5:	00
5756c6:	0f 85 fb 07 00 00    	jne    0x575ec7
5756cc:	83 7e 4c 01          	cmpl   $0x1,0x4c(%esi)
5756d0:	0f 85 f1 07 00 00    	jne    0x575ec7
5756d6:	8b 56 08             	mov    0x8(%esi),%edx
5756d9:	33 c9                	xor    %ecx,%ecx
5756db:	85 d2                	test   %edx,%edx
5756dd:	0f 95 c1             	setne  %cl
5756e0:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5756e4:	85 ed                	test   %ebp,%ebp
5756e6:	74 0b                	je     0x5756f3
5756e8:	8b 45 14             	mov    0x14(%ebp),%eax
5756eb:	a8 03                	test   $0x3,%al
5756ed:	75 04                	jne    0x5756f3
5756ef:	a8 0c                	test   $0xc,%al
5756f1:	75 31                	jne    0x575724
5756f3:	85 d2                	test   %edx,%edx
5756f5:	74 1e                	je     0x575715
5756f7:	8b 46 10             	mov    0x10(%esi),%eax
5756fa:	8b 40 14             	mov    0x14(%eax),%eax
5756fd:	a9 00 80 00 00       	test   $0x8000,%eax
575702:	75 11                	jne    0x575715
575704:	a9 00 00 10 00       	test   $0x100000,%eax
575709:	75 11                	jne    0x57571c
57570b:	c7 44 24 30 01 00 00 	movl   $0x1,0x30(%esp)
575712:	00
575713:	eb 07                	jmp    0x57571c
575715:	83 c9 02             	or     $0x2,%ecx
575718:	89 4c 24 10          	mov    %ecx,0x10(%esp)
57571c:	c7 44 24 34 01 00 00 	movl   $0x1,0x34(%esp)
575723:	00
575724:	85 d2                	test   %edx,%edx
575726:	74 3a                	je     0x575762
575728:	52                   	push   %edx
575729:	e8 a2 f6 f6 ff       	call   0x4e4dd0
57572e:	83 c4 04             	add    $0x4,%esp
575731:	89 44 24 18          	mov    %eax,0x18(%esp)
575735:	85 c0                	test   %eax,%eax
575737:	75 29                	jne    0x575762
575739:	68 9e 0b 00 00       	push   $0xb9e
57573e:	68 54 a7 65 00       	push   $0x65a754
575743:	6a 41                	push   $0x41
575745:	6a 6a                	push   $0x6a
575747:	6a 0b                	push   $0xb
575749:	e8 32 38 f6 ff       	call   0x4d8f80
57574e:	83 c4 14             	add    $0x14,%esp
575751:	c7 46 60 11 00 00 00 	movl   $0x11,0x60(%esi)
575758:	33 c0                	xor    %eax,%eax
57575a:	5f                   	pop    %edi
57575b:	5e                   	pop    %esi
57575c:	5d                   	pop    %ebp
57575d:	5b                   	pop    %ebx
57575e:	83 c4 30             	add    $0x30,%esp
575761:	c3                   	ret
575762:	85 ed                	test   %ebp,%ebp
575764:	74 7f                	je     0x5757e5
575766:	ff 75 04             	push   0x4(%ebp)
575769:	e8 52 f9 f6 ff       	call   0x4e50c0
57576e:	83 c4 04             	add    $0x4,%esp
575771:	85 c0                	test   %eax,%eax
575773:	7e 70                	jle    0x5757e5
575775:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
575779:	74 6a                	je     0x5757e5
57577b:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
575780:	75 14                	jne    0x575796
575782:	e8 99 f8 f6 ff       	call   0x4e5020
575787:	89 44 24 18          	mov    %eax,0x18(%esp)
57578b:	85 c0                	test   %eax,%eax
57578d:	75 07                	jne    0x575796
57578f:	68 af 0b 00 00       	push   $0xbaf
575794:	eb a8                	jmp    0x57573e
575796:	ff 75 08             	push   0x8(%ebp)
575799:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
5757a0:	00
5757a1:	e8 1a f9 f6 ff       	call   0x4e50c0
5757a6:	83 c4 04             	add    $0x4,%esp
5757a9:	85 c0                	test   %eax,%eax
5757ab:	7e 38                	jle    0x5757e5
5757ad:	33 c9                	xor    %ecx,%ecx
5757af:	90                   	nop
5757b0:	51                   	push   %ecx
5757b1:	ff 75 08             	push   0x8(%ebp)
5757b4:	e8 c7 fa f6 ff       	call   0x4e5280
5757b9:	50                   	push   %eax
5757ba:	ff 74 24 24          	push   0x24(%esp)
5757be:	e8 8d f9 f6 ff       	call   0x4e5150
5757c3:	83 c4 10             	add    $0x10,%esp
5757c6:	85 c0                	test   %eax,%eax
5757c8:	0f 84 7f 01 00 00    	je     0x57594d
5757ce:	ff 75 08             	push   0x8(%ebp)
5757d1:	ff 44 24 48          	incl   0x48(%esp)
5757d5:	e8 e6 f8 f6 ff       	call   0x4e50c0
5757da:	8b 4c 24 48          	mov    0x48(%esp),%ecx
5757de:	83 c4 04             	add    $0x4,%esp
5757e1:	3b c8                	cmp    %eax,%ecx
5757e3:	7c cb                	jl     0x5757b0
5757e5:	8b 46 10             	mov    0x10(%esi),%eax
5757e8:	81 78 20 ff ff ff 3f 	cmpl   $0x3fffffff,0x20(%eax)
5757ef:	7e 0a                	jle    0x5757fb
5757f1:	c7 40 20 ff ff ff 3f 	movl   $0x3fffffff,0x20(%eax)
5757f8:	8b 46 10             	mov    0x10(%esi),%eax
5757fb:	8b 40 20             	mov    0x20(%eax),%eax
5757fe:	8b 4c 24 10          	mov    0x10(%esp),%ecx
575802:	40                   	inc    %eax
575803:	89 44 24 28          	mov    %eax,0x28(%esp)
575807:	85 c9                	test   %ecx,%ecx
575809:	0f 84 29 04 00 00    	je     0x575c38
57580f:	90                   	nop
575810:	c7 44 24 44 00 00 00 	movl   $0x0,0x44(%esp)
575817:	00
575818:	f6 c1 02             	test   $0x2,%cl
57581b:	0f 84 2b 02 00 00    	je     0x575a4c
575821:	ff 76 50             	push   0x50(%esi)
575824:	e8 97 f8 f6 ff       	call   0x4e50c0
575829:	8b 6c 24 14          	mov    0x14(%esp),%ebp
57582d:	8b f8                	mov    %eax,%edi
57582f:	8b c5                	mov    %ebp,%eax
575831:	89 7c 24 20          	mov    %edi,0x20(%esp)
575835:	83 e0 04             	and    $0x4,%eax
575838:	89 44 24 3c          	mov    %eax,0x3c(%esp)
57583c:	8b c7                	mov    %edi,%eax
57583e:	0f 45 44 24 28       	cmovne 0x28(%esp),%eax
575843:	89 44 24 40          	mov    %eax,0x40(%esp)
575847:	8d 48 ff             	lea    -0x1(%eax),%ecx
57584a:	51                   	push   %ecx
57584b:	ff 76 50             	push   0x50(%esi)
57584e:	e8 2d fa f6 ff       	call   0x4e5280
575853:	83 c4 0c             	add    $0xc,%esp
575856:	89 44 24 2c          	mov    %eax,0x2c(%esp)
57585a:	39 7c 24 28          	cmp    %edi,0x28(%esp)
57585e:	0f 8c 96 01 00 00    	jl     0x5759fa
575864:	8b 7e 50             	mov    0x50(%esi),%edi
575867:	50                   	push   %eax
575868:	8d 44 24 48          	lea    0x48(%esp),%eax
57586c:	c7 46 50 00 00 00 00 	movl   $0x0,0x50(%esi)
575873:	56                   	push   %esi
575874:	50                   	push   %eax
575875:	8b 46 20             	mov    0x20(%esi),%eax
575878:	ff d0                	call   *%eax
57587a:	83 c4 0c             	add    $0xc,%esp
57587d:	89 7e 50             	mov    %edi,0x50(%esi)
575880:	85 c0                	test   %eax,%eax
575882:	0f 88 6c 03 00 00    	js     0x575bf4
575888:	0f 8e 6c 01 00 00    	jle    0x5759fa
57588e:	83 7c 24 38 00       	cmpl   $0x0,0x38(%esp)
575893:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
575897:	0f 84 e2 00 00 00    	je     0x57597f
57589d:	8b 44 24 3c          	mov    0x3c(%esp),%eax
5758a1:	3b f8                	cmp    %eax,%edi
5758a3:	0f 8e f7 02 00 00    	jle    0x575ba0
5758a9:	85 c0                	test   %eax,%eax
5758ab:	0f 8e ef 02 00 00    	jle    0x575ba0
5758b1:	85 db                	test   %ebx,%ebx
5758b3:	0f 85 e7 02 00 00    	jne    0x575ba0
5758b9:	83 e5 fb             	and    $0xfffffffb,%ebp
5758bc:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5758c0:	2b f8                	sub    %eax,%edi
5758c2:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
5758c6:	ff 76 50             	push   0x50(%esi)
5758c9:	e8 02 f8 f6 ff       	call   0x4e50d0
5758ce:	50                   	push   %eax
5758cf:	e8 0c 19 fe ff       	call   0x5571e0
5758d4:	83 c4 08             	add    $0x8,%esp
5758d7:	83 ef 01             	sub    $0x1,%edi
5758da:	75 ea                	jne    0x5758c6
5758dc:	8b 44 24 14          	mov    0x14(%esp),%eax
5758e0:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
5758e4:	89 7e 4c             	mov    %edi,0x4c(%esi)
5758e7:	85 c0                	test   %eax,%eax
5758e9:	0f 84 94 00 00 00    	je     0x575983
5758ef:	ff 70 04             	push   0x4(%eax)
5758f2:	e8 c9 f7 f6 ff       	call   0x4e50c0
5758f7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5758fb:	83 c4 04             	add    $0x4,%esp
5758fe:	85 c0                	test   %eax,%eax
575900:	7e 27                	jle    0x575929
575902:	8b 41 18             	mov    0x18(%ecx),%eax
575905:	3b 46 4c             	cmp    0x4c(%esi),%eax
575908:	7c 1f                	jl     0x575929
57590a:	8b c1                	mov    %ecx,%eax
57590c:	ff 70 10             	push   0x10(%eax)
57590f:	c7 40 18 ff ff ff ff 	movl   $0xffffffff,0x18(%eax)
575916:	e8 c5 18 fe ff       	call   0x5571e0
57591b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
57591f:	83 c4 04             	add    $0x4,%esp
575922:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
575929:	ff 71 04             	push   0x4(%ecx)
57592c:	e8 8f f7 f6 ff       	call   0x4e50c0
575931:	83 c4 04             	add    $0x4,%esp
575934:	85 c0                	test   %eax,%eax
575936:	7e 4b                	jle    0x575983
575938:	8b 4c 24 14          	mov    0x14(%esp),%ecx
57593c:	8b 41 1c             	mov    0x1c(%ecx),%eax
57593f:	3b 46 4c             	cmp    0x4c(%esi),%eax
575942:	7c 3f                	jl     0x575983
575944:	c7 41 1c ff ff ff ff 	movl   $0xffffffff,0x1c(%ecx)
57594b:	eb 36                	jmp    0x575983
57594d:	ff 74 24 18          	push   0x18(%esp)
575951:	e8 ca f5 f6 ff       	call   0x4e4f20
575956:	68 b6 0b 00 00       	push   $0xbb6
57595b:	68 54 a7 65 00       	push   $0x65a754
575960:	6a 41                	push   $0x41
575962:	6a 6a                	push   $0x6a
575964:	6a 0b                	push   $0xb
575966:	e8 15 36 f6 ff       	call   0x4d8f80
57596b:	83 c4 18             	add    $0x18,%esp
57596e:	c7 46 60 11 00 00 00 	movl   $0x11,0x60(%esi)
575975:	33 c0                	xor    %eax,%eax
575977:	5f                   	pop    %edi
575978:	5e                   	pop    %esi
575979:	5d                   	pop    %ebp
57597a:	5b                   	pop    %ebx
57597b:	83 c4 30             	add    $0x30,%esp
57597e:	c3                   	ret
57597f:	85 db                	test   %ebx,%ebx
575981:	75 4a                	jne    0x5759cd
575983:	8b 44 24 44          	mov    0x44(%esp),%eax
575987:	50                   	push   %eax
575988:	ff 76 50             	push   0x50(%esi)
57598b:	89 44 24 44          	mov    %eax,0x44(%esp)
57598f:	e8 bc f7 f6 ff       	call   0x4e5150
575994:	83 c4 08             	add    $0x8,%esp
575997:	85 c0                	test   %eax,%eax
575999:	0f 84 24 02 00 00    	je     0x575bc3
57599f:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
5759a3:	6a 00                	push   $0x0
5759a5:	6a ff                	push   $0xffffffff
5759a7:	53                   	push   %ebx
5759a8:	e8 63 6b fe ff       	call   0x55c510
5759ad:	83 c4 0c             	add    $0xc,%esp
5759b0:	83 f8 01             	cmp    $0x1,%eax
5759b3:	74 07                	je     0x5759bc
5759b5:	33 db                	xor    %ebx,%ebx
5759b7:	e9 57 01 00 00       	jmp    0x575b13
5759bc:	8b 9b 80 00 00 00    	mov    0x80(%ebx),%ebx
5759c2:	c1 eb 0d             	shr    $0xd,%ebx
5759c5:	83 e3 01             	and    $0x1,%ebx
5759c8:	e9 46 01 00 00       	jmp    0x575b13
5759cd:	39 7e 4c             	cmp    %edi,0x4c(%esi)
5759d0:	0f 85 40 01 00 00    	jne    0x575b16
5759d6:	ff 74 24 44          	push   0x44(%esp)
5759da:	ff 74 24 30          	push   0x30(%esp)
5759de:	e8 2d 26 fe ff       	call   0x558010
5759e3:	83 c4 08             	add    $0x8,%esp
5759e6:	85 c0                	test   %eax,%eax
5759e8:	0f 84 08 01 00 00    	je     0x575af6
5759ee:	ff 74 24 44          	push   0x44(%esp)
5759f2:	e8 e9 17 fe ff       	call   0x5571e0
5759f7:	83 c4 04             	add    $0x4,%esp
5759fa:	8b 7c 24 20          	mov    0x20(%esp),%edi
5759fe:	8b 4c 24 10          	mov    0x10(%esp),%ecx
575a02:	f6 c1 01             	test   $0x1,%cl
575a05:	75 4e                	jne    0x575a55
575a07:	8b c1                	mov    %ecx,%eax
575a09:	83 e0 04             	and    $0x4,%eax
575a0c:	74 11                	je     0x575a1f
575a0e:	8b 54 24 24          	mov    0x24(%esp),%edx
575a12:	4a                   	dec    %edx
575a13:	89 54 24 24          	mov    %edx,0x24(%esp)
575a17:	85 d2                	test   %edx,%edx
575a19:	0f 8f 2c 01 00 00    	jg     0x575b4b
575a1f:	83 7c 24 30 00       	cmpl   $0x0,0x30(%esp)
575a24:	0f 84 0e 02 00 00    	je     0x575c38
575a2a:	85 c0                	test   %eax,%eax
575a2c:	0f 85 06 02 00 00    	jne    0x575c38
575a32:	8b 46 4c             	mov    0x4c(%esi),%eax
575a35:	83 f8 02             	cmp    $0x2,%eax
575a38:	0f 8c fa 01 00 00    	jl     0x575c38
575a3e:	83 c9 04             	or     $0x4,%ecx
575a41:	48                   	dec    %eax
575a42:	89 4c 24 10          	mov    %ecx,0x10(%esp)
575a46:	33 db                	xor    %ebx,%ebx
575a48:	89 44 24 24          	mov    %eax,0x24(%esp)
575a4c:	f6 c1 01             	test   $0x1,%cl
575a4f:	0f 84 f6 00 00 00    	je     0x575b4b
575a55:	ff 76 50             	push   0x50(%esi)
575a58:	e8 63 f6 f6 ff       	call   0x4e50c0
575a5d:	8b e8                	mov    %eax,%ebp
575a5f:	83 c4 04             	add    $0x4,%esp
575a62:	3b 6e 4c             	cmp    0x4c(%esi),%ebp
575a65:	0f 85 a9 01 00 00    	jne    0x575c14
575a6b:	8d 4d ff             	lea    -0x1(%ebp),%ecx
575a6e:	51                   	push   %ecx
575a6f:	ff 76 50             	push   0x50(%esi)
575a72:	e8 09 f8 f6 ff       	call   0x4e5280
575a77:	83 c4 08             	add    $0x8,%esp
575a7a:	85 db                	test   %ebx,%ebx
575a7c:	0f 85 04 01 00 00    	jne    0x575b86
575a82:	39 6c 24 28          	cmp    %ebp,0x28(%esp)
575a86:	0f 8c fa 00 00 00    	jl     0x575b86
575a8c:	8b 6c 24 18          	mov    0x18(%esp),%ebp
575a90:	50                   	push   %eax
575a91:	55                   	push   %ebp
575a92:	56                   	push   %esi
575a93:	e8 e8 1f 00 00       	call   0x577a80
575a98:	83 c4 0c             	add    $0xc,%esp
575a9b:	89 44 24 44          	mov    %eax,0x44(%esp)
575a9f:	85 c0                	test   %eax,%eax
575aa1:	0f 84 df 00 00 00    	je     0x575b86
575aa7:	50                   	push   %eax
575aa8:	55                   	push   %ebp
575aa9:	e8 c2 f2 f6 ff       	call   0x4e4d70
575aae:	ff 74 24 4c          	push   0x4c(%esp)
575ab2:	e8 f9 b3 fa ff       	call   0x520eb0
575ab7:	83 c4 0c             	add    $0xc,%esp
575aba:	85 c0                	test   %eax,%eax
575abc:	0f 84 4b 01 00 00    	je     0x575c0d
575ac2:	ff 74 24 44          	push   0x44(%esp)
575ac6:	ff 76 50             	push   0x50(%esi)
575ac9:	e8 82 f6 f6 ff       	call   0x4e5150
575ace:	83 c4 08             	add    $0x8,%esp
575ad1:	85 c0                	test   %eax,%eax
575ad3:	0f 84 24 01 00 00    	je     0x575bfd
575ad9:	8b 5c 24 44          	mov    0x44(%esp),%ebx
575add:	ff 46 4c             	incl   0x4c(%esi)
575ae0:	6a 00                	push   $0x0
575ae2:	6a ff                	push   $0xffffffff
575ae4:	53                   	push   %ebx
575ae5:	e8 26 6a fe ff       	call   0x55c510
575aea:	83 c4 0c             	add    $0xc,%esp
575aed:	83 f8 01             	cmp    $0x1,%eax
575af0:	74 66                	je     0x575b58
575af2:	33 db                	xor    %ebx,%ebx
575af4:	eb 6e                	jmp    0x575b64
575af6:	ff 74 24 2c          	push   0x2c(%esp)
575afa:	e8 e1 16 fe ff       	call   0x5571e0