4655ce:	5e                   	pop    %esi
4655cf:	b0 01                	mov    $0x1,%al
4655d1:	5b                   	pop    %ebx
4655d2:	8b e5                	mov    %ebp,%esp
4655d4:	5d                   	pop    %ebp
4655d5:	c2 04 00             	ret    $0x4
4655d8:	8b ff                	mov    %edi,%edi
4655da:	55                   	push   %ebp
4655db:	8b ec                	mov    %esp,%ebp
4655dd:	51                   	push   %ecx
4655de:	51                   	push   %ecx
4655df:	53                   	push   %ebx
4655e0:	56                   	push   %esi
4655e1:	8b f1                	mov    %ecx,%esi
4655e3:	57                   	push   %edi
4655e4:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
4655e8:	75 56                	jne    0x465640
4655ea:	8b 46 38             	mov    0x38(%esi),%eax
4655ed:	85 c0                	test   %eax,%eax
4655ef:	7e 4f                	jle    0x465640
4655f1:	8b 5e 34             	mov    0x34(%esi),%ebx
4655f4:	33 ff                	xor    %edi,%edi
4655f6:	85 c0                	test   %eax,%eax
4655f8:	74 5f                	je     0x465659
4655fa:	33 c0                	xor    %eax,%eax
4655fc:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
465600:	8b 46 08             	mov    0x8(%esi),%eax
465603:	50                   	push   %eax
465604:	8b 00                	mov    (%eax),%eax
465606:	ff 70 04             	push   0x4(%eax)
465609:	8d 45 fc             	lea    -0x4(%ebp),%eax
46560c:	53                   	push   %ebx
46560d:	50                   	push   %eax
46560e:	e8 5d 1e 01 00       	call   0x477470
465613:	83 c4 10             	add    $0x10,%esp
465616:	89 45 f8             	mov    %eax,-0x8(%ebp)
465619:	85 c0                	test   %eax,%eax
46561b:	7e 1d                	jle    0x46563a
46561d:	8d 4e 18             	lea    0x18(%esi),%ecx
465620:	51                   	push   %ecx
465621:	ff 75 fc             	push   -0x4(%ebp)
465624:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
46562a:	e8 3e f9 ff ff       	call   0x464f6d
46562f:	03 5d f8             	add    -0x8(%ebp),%ebx
465632:	47                   	inc    %edi
465633:	3b 7e 38             	cmp    0x38(%esi),%edi
465636:	75 c2                	jne    0x4655fa
465638:	eb 1f                	jmp    0x465659
46563a:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
46563e:	eb 19                	jmp    0x465659
465640:	8d 46 0c             	lea    0xc(%esi),%eax
465643:	50                   	push   %eax
465644:	8d 46 18             	lea    0x18(%esi),%eax
465647:	50                   	push   %eax
465648:	ff 76 38             	push   0x38(%esi)
46564b:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
465651:	ff 76 34             	push   0x34(%esi)
465654:	e8 6d 02 00 00       	call   0x4658c6
465659:	5f                   	pop    %edi
46565a:	5e                   	pop    %esi
46565b:	b0 01                	mov    $0x1,%al
46565d:	5b                   	pop    %ebx
46565e:	8b e5                	mov    %ebp,%esp
465660:	5d                   	pop    %ebp
465661:	c2 04 00             	ret    $0x4
465664:	8b ff                	mov    %edi,%edi
465666:	55                   	push   %ebp
465667:	8b ec                	mov    %esp,%ebp
465669:	51                   	push   %ecx
46566a:	51                   	push   %ecx
46566b:	53                   	push   %ebx
46566c:	56                   	push   %esi
46566d:	8b f1                	mov    %ecx,%esi
46566f:	57                   	push   %edi
465670:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
465674:	75 56                	jne    0x4656cc
465676:	8b 46 38             	mov    0x38(%esi),%eax
465679:	85 c0                	test   %eax,%eax
46567b:	7e 4f                	jle    0x4656cc
46567d:	8b 5e 34             	mov    0x34(%esi),%ebx
465680:	33 ff                	xor    %edi,%edi
465682:	85 c0                	test   %eax,%eax
465684:	74 5f                	je     0x4656e5
465686:	33 c0                	xor    %eax,%eax
465688:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
46568c:	8b 46 08             	mov    0x8(%esi),%eax
46568f:	50                   	push   %eax
465690:	8b 00                	mov    (%eax),%eax
465692:	ff 70 04             	push   0x4(%eax)
465695:	8d 45 fc             	lea    -0x4(%ebp),%eax
465698:	53                   	push   %ebx
465699:	50                   	push   %eax
46569a:	e8 d1 1d 01 00       	call   0x477470
46569f:	83 c4 10             	add    $0x10,%esp
4656a2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4656a5:	85 c0                	test   %eax,%eax
4656a7:	7e 1d                	jle    0x4656c6
4656a9:	8d 4e 18             	lea    0x18(%esi),%ecx
4656ac:	51                   	push   %ecx
4656ad:	ff 75 fc             	push   -0x4(%ebp)
4656b0:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
4656b6:	e8 b2 f8 ff ff       	call   0x464f6d
4656bb:	03 5d f8             	add    -0x8(%ebp),%ebx
4656be:	47                   	inc    %edi
4656bf:	3b 7e 38             	cmp    0x38(%esi),%edi
4656c2:	75 c2                	jne    0x465686
4656c4:	eb 1f                	jmp    0x4656e5
4656c6:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
4656ca:	eb 19                	jmp    0x4656e5
4656cc:	8d 46 0c             	lea    0xc(%esi),%eax
4656cf:	50                   	push   %eax
4656d0:	8d 46 18             	lea    0x18(%esi),%eax
4656d3:	50                   	push   %eax
4656d4:	ff 76 38             	push   0x38(%esi)
4656d7:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
4656dd:	ff 76 34             	push   0x34(%esi)
4656e0:	e8 e1 01 00 00       	call   0x4658c6
4656e5:	5f                   	pop    %edi
4656e6:	5e                   	pop    %esi
4656e7:	b0 01                	mov    $0x1,%al
4656e9:	5b                   	pop    %ebx
4656ea:	8b e5                	mov    %ebp,%esp
4656ec:	5d                   	pop    %ebp
4656ed:	c2 04 00             	ret    $0x4
4656f0:	8b ff                	mov    %edi,%edi
4656f2:	55                   	push   %ebp
4656f3:	8b ec                	mov    %esp,%ebp
4656f5:	83 ec 10             	sub    $0x10,%esp
4656f8:	8b 01                	mov    (%ecx),%eax
4656fa:	57                   	push   %edi
4656fb:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4656fe:	8b 40 0c             	mov    0xc(%eax),%eax
465701:	c1 e8 0c             	shr    $0xc,%eax
465704:	33 ff                	xor    %edi,%edi
465706:	a8 01                	test   $0x1,%al
465708:	74 14                	je     0x46571e
46570a:	8b 01                	mov    (%ecx),%eax
46570c:	39 78 04             	cmp    %edi,0x4(%eax)
46570f:	75 0d                	jne    0x46571e
465711:	8b 4d 10             	mov    0x10(%ebp),%ecx
465714:	8b 45 0c             	mov    0xc(%ebp),%eax
465717:	01 01                	add    %eax,(%ecx)
465719:	e9 81 00 00 00       	jmp    0x46579f
46571e:	53                   	push   %ebx
46571f:	56                   	push   %esi
465720:	8b 75 14             	mov    0x14(%ebp),%esi
465723:	39 3e                	cmp    %edi,(%esi)
465725:	75 07                	jne    0x46572e
465727:	e8 03 77 fe ff       	call   0x44ce2f
46572c:	89 06                	mov    %eax,(%esi)
46572e:	8b 1e                	mov    (%esi),%ebx
465730:	8b 45 0c             	mov    0xc(%ebp),%eax
465733:	89 5d f4             	mov    %ebx,-0xc(%ebp)
465736:	8b 0b                	mov    (%ebx),%ecx
465738:	89 3b                	mov    %edi,(%ebx)
46573a:	8b 7d 08             	mov    0x8(%ebp),%edi
46573d:	03 c7                	add    %edi,%eax
46573f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
465742:	89 45 f8             	mov    %eax,-0x8(%ebp)
465745:	3b f8                	cmp    %eax,%edi
465747:	74 49                	je     0x465792
465749:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46574c:	8b 4d 10             	mov    0x10(%ebp),%ecx
46574f:	0f b6 07             	movzbl (%edi),%eax
465752:	51                   	push   %ecx
465753:	50                   	push   %eax
465754:	8b cb                	mov    %ebx,%ecx
465756:	e8 53 f7 ff ff       	call   0x464eae
46575b:	8b 4d 10             	mov    0x10(%ebp),%ecx
46575e:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
465761:	75 23                	jne    0x465786
465763:	83 3e 00             	cmpl   $0x0,(%esi)
465766:	75 0a                	jne    0x465772
465768:	e8 c2 76 fe ff       	call   0x44ce2f
46576d:	8b 4d 10             	mov    0x10(%ebp),%ecx
465770:	89 06                	mov    %eax,(%esi)
465772:	8b 06                	mov    (%esi),%eax
465774:	83 38 2a             	cmpl   $0x2a,(%eax)
465777:	75 13                	jne    0x46578c
465779:	51                   	push   %ecx
46577a:	6a 3f                	push   $0x3f
46577c:	8b cb                	mov    %ebx,%ecx
46577e:	e8 2b f7 ff ff       	call   0x464eae
465783:	8b 4d 10             	mov    0x10(%ebp),%ecx
465786:	47                   	inc    %edi
465787:	3b 7d f8             	cmp    -0x8(%ebp),%edi
46578a:	75 c3                	jne    0x46574f
46578c:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46578f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
465792:	83 3b 00             	cmpl   $0x0,(%ebx)
465795:	75 06                	jne    0x46579d
465797:	85 c9                	test   %ecx,%ecx
465799:	74 02                	je     0x46579d
46579b:	89 0b                	mov    %ecx,(%ebx)
46579d:	5e                   	pop    %esi
46579e:	5b                   	pop    %ebx
46579f:	5f                   	pop    %edi
4657a0:	8b e5                	mov    %ebp,%esp
4657a2:	5d                   	pop    %ebp
4657a3:	c2 10 00             	ret    $0x10
4657a6:	8b ff                	mov    %edi,%edi
4657a8:	55                   	push   %ebp
4657a9:	8b ec                	mov    %esp,%ebp
4657ab:	83 ec 10             	sub    $0x10,%esp
4657ae:	8b 01                	mov    (%ecx),%eax
4657b0:	57                   	push   %edi
4657b1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4657b4:	8b 40 0c             	mov    0xc(%eax),%eax
4657b7:	c1 e8 0c             	shr    $0xc,%eax
4657ba:	33 ff                	xor    %edi,%edi
4657bc:	a8 01                	test   $0x1,%al
4657be:	74 14                	je     0x4657d4
4657c0:	8b 01                	mov    (%ecx),%eax
4657c2:	39 78 04             	cmp    %edi,0x4(%eax)
4657c5:	75 0d                	jne    0x4657d4
4657c7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4657ca:	8b 45 0c             	mov    0xc(%ebp),%eax
4657cd:	01 01                	add    %eax,(%ecx)
4657cf:	e9 84 00 00 00       	jmp    0x465858
4657d4:	53                   	push   %ebx
4657d5:	56                   	push   %esi
4657d6:	8b 75 14             	mov    0x14(%ebp),%esi
4657d9:	39 3e                	cmp    %edi,(%esi)
4657db:	75 07                	jne    0x4657e4
4657dd:	e8 4d 76 fe ff       	call   0x44ce2f
4657e2:	89 06                	mov    %eax,(%esi)
4657e4:	8b 1e                	mov    (%esi),%ebx
4657e6:	8b 45 0c             	mov    0xc(%ebp),%eax
4657e9:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4657ec:	8b 0b                	mov    (%ebx),%ecx
4657ee:	89 3b                	mov    %edi,(%ebx)
4657f0:	8b 7d 08             	mov    0x8(%ebp),%edi
4657f3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4657f6:	8d 04 47             	lea    (%edi,%eax,2),%eax
4657f9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4657fc:	3b f8                	cmp    %eax,%edi
4657fe:	74 4b                	je     0x46584b
465800:	8b 5d fc             	mov    -0x4(%ebp),%ebx
465803:	8b 4d 10             	mov    0x10(%ebp),%ecx
465806:	0f b7 07             	movzwl (%edi),%eax
465809:	51                   	push   %ecx
46580a:	50                   	push   %eax
46580b:	8b cb                	mov    %ebx,%ecx
46580d:	e8 d9 f6 ff ff       	call   0x464eeb
465812:	8b 4d 10             	mov    0x10(%ebp),%ecx
465815:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
465818:	75 23                	jne    0x46583d
46581a:	83 3e 00             	cmpl   $0x0,(%esi)
46581d:	75 0a                	jne    0x465829
46581f:	e8 0b 76 fe ff       	call   0x44ce2f
465824:	8b 4d 10             	mov    0x10(%ebp),%ecx
465827:	89 06                	mov    %eax,(%esi)
465829:	8b 06                	mov    (%esi),%eax
46582b:	83 38 2a             	cmpl   $0x2a,(%eax)
46582e:	75 15                	jne    0x465845
465830:	51                   	push   %ecx
465831:	6a 3f                	push   $0x3f
465833:	8b cb                	mov    %ebx,%ecx
465835:	e8 b1 f6 ff ff       	call   0x464eeb
46583a:	8b 4d 10             	mov    0x10(%ebp),%ecx
46583d:	83 c7 02             	add    $0x2,%edi
465840:	3b 7d f8             	cmp    -0x8(%ebp),%edi
465843:	75 c1                	jne    0x465806
465845:	8b 5d f4             	mov    -0xc(%ebp),%ebx
465848:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46584b:	83 3b 00             	cmpl   $0x0,(%ebx)
46584e:	75 06                	jne    0x465856
465850:	85 c9                	test   %ecx,%ecx
465852:	74 02                	je     0x465856
465854:	89 0b                	mov    %ecx,(%ebx)
465856:	5e                   	pop    %esi
465857:	5b                   	pop    %ebx
465858:	5f                   	pop    %edi
465859:	8b e5                	mov    %ebp,%esp
46585b:	5d                   	pop    %ebp
46585c:	c2 10 00             	ret    $0x10
46585f:	8b ff                	mov    %edi,%edi
465861:	55                   	push   %ebp
465862:	8b ec                	mov    %esp,%ebp
465864:	53                   	push   %ebx
465865:	57                   	push   %edi
465866:	8b 7d 0c             	mov    0xc(%ebp),%edi
465869:	8b d9                	mov    %ecx,%ebx
46586b:	85 ff                	test   %edi,%edi
46586d:	74 51                	je     0x4658c0
46586f:	8b 03                	mov    (%ebx),%eax
465871:	56                   	push   %esi
465872:	8b 70 04             	mov    0x4(%eax),%esi
465875:	39 70 08             	cmp    %esi,0x8(%eax)
465878:	75 0b                	jne    0x465885
46587a:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
46587e:	8b 45 10             	mov    0x10(%ebp),%eax
465881:	74 35                	je     0x4658b8
465883:	eb 2b                	jmp    0x4658b0
465885:	2b 70 08             	sub    0x8(%eax),%esi
465888:	3b f7                	cmp    %edi,%esi
46588a:	72 02                	jb     0x46588e
46588c:	8b f7                	mov    %edi,%esi
46588e:	56                   	push   %esi
46588f:	ff 75 08             	push   0x8(%ebp)
465892:	ff 30                	push   (%eax)
465894:	e8 c7 da fd ff       	call   0x443360
465899:	8b 03                	mov    (%ebx),%eax
46589b:	83 c4 0c             	add    $0xc,%esp
46589e:	01 30                	add    %esi,(%eax)
4658a0:	8b 03                	mov    (%ebx),%eax
4658a2:	01 70 08             	add    %esi,0x8(%eax)
4658a5:	8b 03                	mov    (%ebx),%eax
4658a7:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
4658ab:	8b 45 10             	mov    0x10(%ebp),%eax
4658ae:	74 04                	je     0x4658b4
4658b0:	01 38                	add    %edi,(%eax)
4658b2:	eb 0b                	jmp    0x4658bf
4658b4:	3b f7                	cmp    %edi,%esi
4658b6:	74 05                	je     0x4658bd
4658b8:	83 08 ff             	orl    $0xffffffff,(%eax)
4658bb:	eb 02                	jmp    0x4658bf
4658bd:	01 30                	add    %esi,(%eax)
4658bf:	5e                   	pop    %esi
4658c0:	5f                   	pop    %edi
4658c1:	5b                   	pop    %ebx
4658c2:	5d                   	pop    %ebp
4658c3:	c2 10 00             	ret    $0x10
4658c6:	8b ff                	mov    %edi,%edi
4658c8:	55                   	push   %ebp
4658c9:	8b ec                	mov    %esp,%ebp
4658cb:	51                   	push   %ecx
4658cc:	53                   	push   %ebx
4658cd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4658d0:	8b c1                	mov    %ecx,%eax
4658d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4658d5:	85 db                	test   %ebx,%ebx
4658d7:	74 59                	je     0x465932
4658d9:	8b 00                	mov    (%eax),%eax
4658db:	57                   	push   %edi
4658dc:	8b 78 04             	mov    0x4(%eax),%edi
4658df:	39 78 08             	cmp    %edi,0x8(%eax)
4658e2:	75 0b                	jne    0x4658ef
4658e4:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
4658e8:	8b 45 10             	mov    0x10(%ebp),%eax
4658eb:	74 3d                	je     0x46592a
4658ed:	eb 33                	jmp    0x465922
4658ef:	2b 78 08             	sub    0x8(%eax),%edi
4658f2:	3b fb                	cmp    %ebx,%edi
4658f4:	72 02                	jb     0x4658f8
4658f6:	8b fb                	mov    %ebx,%edi
4658f8:	56                   	push   %esi
4658f9:	8d 34 3f             	lea    (%edi,%edi,1),%esi
4658fc:	56                   	push   %esi
4658fd:	ff 75 08             	push   0x8(%ebp)