56b574:	ff 74 24 0c          	push   0xc(%esp)
56b578:	ff 74 24 0c          	push   0xc(%esp)
56b57c:	6a 00                	push   $0x0
56b57e:	e8 4d 03 00 00       	call   0x56b8d0
56b583:	83 c4 10             	add    $0x10,%esp
56b586:	c3                   	ret
56b587:	cc                   	int3
56b588:	cc                   	int3
56b589:	cc                   	int3
56b58a:	cc                   	int3
56b58b:	cc                   	int3
56b58c:	cc                   	int3
56b58d:	cc                   	int3
56b58e:	cc                   	int3
56b58f:	cc                   	int3
56b590:	56                   	push   %esi
56b591:	8b 74 24 08          	mov    0x8(%esp),%esi
56b595:	8b 06                	mov    (%esi),%eax
56b597:	85 c0                	test   %eax,%eax
56b599:	74 34                	je     0x56b5cf
56b59b:	57                   	push   %edi
56b59c:	8b 7c 24 10          	mov    0x10(%esp),%edi
56b5a0:	50                   	push   %eax
56b5a1:	8d 46 08             	lea    0x8(%esi),%eax
56b5a4:	50                   	push   %eax
56b5a5:	57                   	push   %edi
56b5a6:	56                   	push   %esi
56b5a7:	e8 24 03 00 00       	call   0x56b8d0
56b5ac:	83 c4 10             	add    $0x10,%esp
56b5af:	8b c8                	mov    %eax,%ecx
56b5b1:	f6 46 5c 01          	testb  $0x1,0x5c(%esi)
56b5b5:	75 05                	jne    0x56b5bc
56b5b7:	c6 04 39 0a          	movb   $0xa,(%ecx,%edi,1)
56b5bb:	41                   	inc    %ecx
56b5bc:	8b 44 24 14          	mov    0x14(%esp),%eax
56b5c0:	c6 04 39 00          	movb   $0x0,(%ecx,%edi,1)
56b5c4:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
56b5ca:	5f                   	pop    %edi
56b5cb:	89 08                	mov    %ecx,(%eax)
56b5cd:	5e                   	pop    %esi
56b5ce:	c3                   	ret
56b5cf:	8b 44 24 10          	mov    0x10(%esp),%eax
56b5d3:	5e                   	pop    %esi
56b5d4:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
56b5da:	c3                   	ret
56b5db:	cc                   	int3
56b5dc:	cc                   	int3
56b5dd:	cc                   	int3
56b5de:	cc                   	int3
56b5df:	cc                   	int3
56b5e0:	8b 44 24 04          	mov    0x4(%esp),%eax
56b5e4:	c7 40 04 30 00 00 00 	movl   $0x30,0x4(%eax)
56b5eb:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
56b5f1:	c7 40 58 00 00 00 00 	movl   $0x0,0x58(%eax)
56b5f8:	c7 40 5c 00 00 00 00 	movl   $0x0,0x5c(%eax)
56b5ff:	c3                   	ret
56b600:	8b 44 24 0c          	mov    0xc(%esp),%eax
56b604:	53                   	push   %ebx
56b605:	55                   	push   %ebp
56b606:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56b60a:	33 db                	xor    %ebx,%ebx
56b60c:	89 18                	mov    %ebx,(%eax)
56b60e:	85 ed                	test   %ebp,%ebp
56b610:	7f 05                	jg     0x56b617
56b612:	5d                   	pop    %ebp
56b613:	33 c0                	xor    %eax,%eax
56b615:	5b                   	pop    %ebx
56b616:	c3                   	ret
56b617:	57                   	push   %edi
56b618:	8b 7c 24 10          	mov    0x10(%esp),%edi
56b61c:	8b 47 04             	mov    0x4(%edi),%eax
56b61f:	83 f8 50             	cmp    $0x50,%eax
56b622:	7e 1a                	jle    0x56b63e
56b624:	68 ab 00 00 00       	push   $0xab
56b629:	68 88 88 65 00       	push   $0x658888
56b62e:	68 9c 88 65 00       	push   $0x65889c
56b633:	e8 f8 6e f8 ff       	call   0x4f2530
56b638:	8b 47 04             	mov    0x4(%edi),%eax
56b63b:	83 c4 0c             	add    $0xc,%esp
56b63e:	8b 17                	mov    (%edi),%edx
56b640:	8b c8                	mov    %eax,%ecx
56b642:	2b ca                	sub    %edx,%ecx
56b644:	89 4c 24 20          	mov    %ecx,0x20(%esp)
56b648:	3b cd                	cmp    %ebp,%ecx
56b64a:	7e 1e                	jle    0x56b66a
56b64c:	55                   	push   %ebp
56b64d:	ff 74 24 20          	push   0x20(%esp)
56b651:	8d 47 08             	lea    0x8(%edi),%eax
56b654:	03 c2                	add    %edx,%eax
56b656:	50                   	push   %eax
56b657:	e8 74 77 06 00       	call   0x5d2dd0
56b65c:	83 c4 0c             	add    $0xc,%esp
56b65f:	b8 01 00 00 00       	mov    $0x1,%eax
56b664:	01 2f                	add    %ebp,(%edi)
56b666:	5f                   	pop    %edi
56b667:	5d                   	pop    %ebp
56b668:	5b                   	pop    %ebx
56b669:	c3                   	ret
56b66a:	56                   	push   %esi
56b66b:	85 d2                	test   %edx,%edx
56b66d:	74 53                	je     0x56b6c2
56b66f:	8b 74 24 20          	mov    0x20(%esp),%esi
56b673:	8d 47 08             	lea    0x8(%edi),%eax
56b676:	51                   	push   %ecx
56b677:	03 c2                	add    %edx,%eax
56b679:	56                   	push   %esi
56b67a:	50                   	push   %eax
56b67b:	e8 50 77 06 00       	call   0x5d2dd0
56b680:	8b 44 24 30          	mov    0x30(%esp),%eax
56b684:	03 f0                	add    %eax,%esi
56b686:	ff 77 04             	push   0x4(%edi)
56b689:	2b e8                	sub    %eax,%ebp
56b68b:	89 74 24 34          	mov    %esi,0x34(%esp)
56b68f:	8b 74 24 28          	mov    0x28(%esp),%esi
56b693:	8d 47 08             	lea    0x8(%edi),%eax
56b696:	50                   	push   %eax
56b697:	56                   	push   %esi
56b698:	57                   	push   %edi
56b699:	e8 32 02 00 00       	call   0x56b8d0
56b69e:	8b d8                	mov    %eax,%ebx
56b6a0:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
56b6a6:	83 c4 1c             	add    $0x1c,%esp
56b6a9:	03 f3                	add    %ebx,%esi
56b6ab:	f6 47 5c 01          	testb  $0x1,0x5c(%edi)
56b6af:	75 05                	jne    0x56b6b6
56b6b1:	c6 06 0a             	movb   $0xa,(%esi)
56b6b4:	46                   	inc    %esi
56b6b5:	43                   	inc    %ebx
56b6b6:	8b 54 24 24          	mov    0x24(%esp),%edx
56b6ba:	c6 06 00             	movb   $0x0,(%esi)
56b6bd:	8b 47 04             	mov    0x4(%edi),%eax
56b6c0:	eb 0c                	jmp    0x56b6ce
56b6c2:	8b 54 24 20          	mov    0x20(%esp),%edx
56b6c6:	8b 74 24 18          	mov    0x18(%esp),%esi
56b6ca:	89 54 24 24          	mov    %edx,0x24(%esp)
56b6ce:	3b e8                	cmp    %eax,%ebp
56b6d0:	7c 3b                	jl     0x56b70d
56b6d2:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
56b6d8:	77 3b                	ja     0x56b715
56b6da:	50                   	push   %eax
56b6db:	52                   	push   %edx
56b6dc:	56                   	push   %esi
56b6dd:	57                   	push   %edi
56b6de:	e8 ed 01 00 00       	call   0x56b8d0
56b6e3:	8b 54 24 34          	mov    0x34(%esp),%edx
56b6e7:	83 c4 10             	add    $0x10,%esp
56b6ea:	03 57 04             	add    0x4(%edi),%edx
56b6ed:	03 f0                	add    %eax,%esi
56b6ef:	2b 6f 04             	sub    0x4(%edi),%ebp
56b6f2:	03 d8                	add    %eax,%ebx
56b6f4:	f6 47 5c 01          	testb  $0x1,0x5c(%edi)
56b6f8:	89 54 24 24          	mov    %edx,0x24(%esp)
56b6fc:	75 05                	jne    0x56b703
56b6fe:	c6 06 0a             	movb   $0xa,(%esi)
56b701:	46                   	inc    %esi
56b702:	43                   	inc    %ebx
56b703:	c6 06 00             	movb   $0x0,(%esi)
56b706:	8b 47 04             	mov    0x4(%edi),%eax
56b709:	3b e8                	cmp    %eax,%ebp
56b70b:	7d c5                	jge    0x56b6d2
56b70d:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
56b713:	76 11                	jbe    0x56b726
56b715:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56b719:	5e                   	pop    %esi
56b71a:	5f                   	pop    %edi
56b71b:	5d                   	pop    %ebp
56b71c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
56b722:	33 c0                	xor    %eax,%eax
56b724:	5b                   	pop    %ebx
56b725:	c3                   	ret
56b726:	85 ed                	test   %ebp,%ebp
56b728:	74 0e                	je     0x56b738
56b72a:	55                   	push   %ebp
56b72b:	52                   	push   %edx
56b72c:	8d 47 08             	lea    0x8(%edi),%eax
56b72f:	50                   	push   %eax
56b730:	e8 9b 76 06 00       	call   0x5d2dd0
56b735:	83 c4 0c             	add    $0xc,%esp
56b738:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56b73c:	5e                   	pop    %esi
56b73d:	89 2f                	mov    %ebp,(%edi)
56b73f:	5f                   	pop    %edi
56b740:	89 18                	mov    %ebx,(%eax)
56b742:	b8 01 00 00 00       	mov    $0x1,%eax
56b747:	5d                   	pop    %ebp
56b748:	5b                   	pop    %ebx
56b749:	c3                   	ret
56b74a:	cc                   	int3
56b74b:	cc                   	int3
56b74c:	cc                   	int3
56b74d:	cc                   	int3
56b74e:	cc                   	int3
56b74f:	cc                   	int3
56b750:	b8 10 00 00 00       	mov    $0x10,%eax
56b755:	e8 56 60 06 00       	call   0x5d17b0
56b75a:	8b 44 24 14          	mov    0x14(%esp),%eax
56b75e:	53                   	push   %ebx
56b75f:	55                   	push   %ebp
56b760:	33 db                	xor    %ebx,%ebx
56b762:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
56b766:	56                   	push   %esi
56b767:	57                   	push   %edi
56b768:	85 c0                	test   %eax,%eax
56b76a:	74 0b                	je     0x56b777
56b76c:	f6 40 5c 02          	testb  $0x2,0x5c(%eax)
56b770:	bf 08 88 65 00       	mov    $0x658808,%edi
56b775:	75 05                	jne    0x56b77c
56b777:	bf 88 87 65 00       	mov    $0x658788,%edi
56b77c:	8b 74 24 30          	mov    0x30(%esp),%esi
56b780:	8b 44 24 2c          	mov    0x2c(%esp),%eax
56b784:	85 f6                	test   %esi,%esi
56b786:	7e 17                	jle    0x56b79f
56b788:	8a 08                	mov    (%eax),%cl
56b78a:	84 c9                	test   %cl,%cl
56b78c:	78 11                	js     0x56b79f
56b78e:	0f b6 c9             	movzbl %cl,%ecx
56b791:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
56b794:	80 f9 e0             	cmp    $0xe0,%cl
56b797:	75 06                	jne    0x56b79f
56b799:	4e                   	dec    %esi
56b79a:	40                   	inc    %eax
56b79b:	85 f6                	test   %esi,%esi
56b79d:	7f e9                	jg     0x56b788
56b79f:	83 fe 03             	cmp    $0x3,%esi
56b7a2:	7e 1c                	jle    0x56b7c0
56b7a4:	8a 4c 30 ff          	mov    -0x1(%eax,%esi,1),%cl
56b7a8:	84 c9                	test   %cl,%cl
56b7aa:	78 14                	js     0x56b7c0
56b7ac:	0f b6 c9             	movzbl %cl,%ecx
56b7af:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
56b7b2:	80 c9 13             	or     $0x13,%cl
56b7b5:	80 f9 f3             	cmp    $0xf3,%cl
56b7b8:	75 06                	jne    0x56b7c0
56b7ba:	4e                   	dec    %esi
56b7bb:	83 fe 03             	cmp    $0x3,%esi
56b7be:	7f e4                	jg     0x56b7a4
56b7c0:	8b ce                	mov    %esi,%ecx
56b7c2:	81 e1 03 00 00 80    	and    $0x80000003,%ecx
56b7c8:	79 07                	jns    0x56b7d1
56b7ca:	49                   	dec    %ecx
56b7cb:	83 c9 fc             	or     $0xfffffffc,%ecx
56b7ce:	83 c1 01             	add    $0x1,%ecx
56b7d1:	0f 85 e3 00 00 00    	jne    0x56b8ba
56b7d7:	89 5c 24 18          	mov    %ebx,0x18(%esp)
56b7db:	85 f6                	test   %esi,%esi
56b7dd:	0f 8e cd 00 00 00    	jle    0x56b8b0
56b7e3:	8b 6c 24 28          	mov    0x28(%esp),%ebp
56b7e7:	8a 08                	mov    (%eax),%cl
56b7e9:	84 c9                	test   %cl,%cl
56b7eb:	79 05                	jns    0x56b7f2
56b7ed:	80 c9 ff             	or     $0xff,%cl
56b7f0:	eb 06                	jmp    0x56b7f8
56b7f2:	0f b6 c9             	movzbl %cl,%ecx
56b7f5:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
56b7f8:	88 4c 24 24          	mov    %cl,0x24(%esp)
56b7fc:	0f b6 d9             	movzbl %cl,%ebx
56b7ff:	8a 48 01             	mov    0x1(%eax),%cl
56b802:	84 c9                	test   %cl,%cl
56b804:	79 05                	jns    0x56b80b
56b806:	80 ca ff             	or     $0xff,%dl
56b809:	eb 06                	jmp    0x56b811
56b80b:	0f b6 c9             	movzbl %cl,%ecx
56b80e:	8a 14 39             	mov    (%ecx,%edi,1),%dl
56b811:	0f b6 ca             	movzbl %dl,%ecx
56b814:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
56b818:	8a 48 02             	mov    0x2(%eax),%cl
56b81b:	84 c9                	test   %cl,%cl
56b81d:	79 05                	jns    0x56b824
56b81f:	80 c9 ff             	or     $0xff,%cl
56b822:	eb 06                	jmp    0x56b82a
56b824:	0f b6 c9             	movzbl %cl,%ecx
56b827:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
56b82a:	0f b6 c9             	movzbl %cl,%ecx
56b82d:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56b831:	8a 48 03             	mov    0x3(%eax),%cl
56b834:	84 c9                	test   %cl,%cl
56b836:	79 07                	jns    0x56b83f
56b838:	c6 44 24 30 ff       	movb   $0xff,0x30(%esp)
56b83d:	eb 0a                	jmp    0x56b849
56b83f:	0f b6 c9             	movzbl %cl,%ecx
56b842:	8a 0c 39             	mov    (%ecx,%edi,1),%cl
56b845:	88 4c 24 30          	mov    %cl,0x30(%esp)
56b849:	0f b6 4c 24 24       	movzbl 0x24(%esp),%ecx
56b84e:	83 c0 04             	add    $0x4,%eax
56b851:	0f b6 d2             	movzbl %dl,%edx
56b854:	0b d1                	or     %ecx,%edx
56b856:	84 d2                	test   %dl,%dl
56b858:	78 60                	js     0x56b8ba
56b85a:	0f b6 54 24 30       	movzbl 0x30(%esp),%edx
56b85f:	8b ca                	mov    %edx,%ecx
56b861:	0b 4c 24 10          	or     0x10(%esp),%ecx
56b865:	84 c9                	test   %cl,%cl
56b867:	78 51                	js     0x56b8ba
56b869:	c1 e3 06             	shl    $0x6,%ebx
56b86c:	0b 5c 24 1c          	or     0x1c(%esp),%ebx
56b870:	c1 e3 06             	shl    $0x6,%ebx
56b873:	0b 5c 24 10          	or     0x10(%esp),%ebx
56b877:	c1 e3 06             	shl    $0x6,%ebx
56b87a:	0b da                	or     %edx,%ebx
56b87c:	8b 54 24 18          	mov    0x18(%esp),%edx
56b880:	8b cb                	mov    %ebx,%ecx
56b882:	83 c2 04             	add    $0x4,%edx
56b885:	c1 e9 10             	shr    $0x10,%ecx
56b888:	88 4d 00             	mov    %cl,0x0(%ebp)
56b88b:	8b cb                	mov    %ebx,%ecx
56b88d:	88 5d 02             	mov    %bl,0x2(%ebp)
56b890:	8b 5c 24 14          	mov    0x14(%esp),%ebx
56b894:	c1 e9 08             	shr    $0x8,%ecx
56b897:	83 c3 03             	add    $0x3,%ebx
56b89a:	88 4d 01             	mov    %cl,0x1(%ebp)
56b89d:	83 c5 03             	add    $0x3,%ebp
56b8a0:	89 5c 24 14          	mov    %ebx,0x14(%esp)
56b8a4:	89 54 24 18          	mov    %edx,0x18(%esp)
56b8a8:	3b d6                	cmp    %esi,%edx
56b8aa:	0f 8c 37 ff ff ff    	jl     0x56b7e7
56b8b0:	5f                   	pop    %edi
56b8b1:	5e                   	pop    %esi
56b8b2:	5d                   	pop    %ebp
56b8b3:	8b c3                	mov    %ebx,%eax
56b8b5:	5b                   	pop    %ebx
56b8b6:	83 c4 10             	add    $0x10,%esp
56b8b9:	c3                   	ret
56b8ba:	5f                   	pop    %edi
56b8bb:	5e                   	pop    %esi
56b8bc:	5d                   	pop    %ebp
56b8bd:	83 c8 ff             	or     $0xffffffff,%eax
56b8c0:	5b                   	pop    %ebx
56b8c1:	83 c4 10             	add    $0x10,%esp
56b8c4:	c3                   	ret
56b8c5:	cc                   	int3
56b8c6:	cc                   	int3
56b8c7:	cc                   	int3
56b8c8:	cc                   	int3
56b8c9:	cc                   	int3
56b8ca:	cc                   	int3
56b8cb:	cc                   	int3
56b8cc:	cc                   	int3
56b8cd:	cc                   	int3
56b8ce:	cc                   	int3
56b8cf:	cc                   	int3
56b8d0:	8b 44 24 04          	mov    0x4(%esp),%eax
56b8d4:	53                   	push   %ebx
56b8d5:	55                   	push   %ebp
56b8d6:	33 ed                	xor    %ebp,%ebp
56b8d8:	56                   	push   %esi
56b8d9:	85 c0                	test   %eax,%eax
56b8db:	74 0b                	je     0x56b8e8
56b8dd:	f6 40 5c 02          	testb  $0x2,0x5c(%eax)
56b8e1:	bb 40 87 65 00       	mov    $0x658740,%ebx
56b8e6:	75 05                	jne    0x56b8ed