461646:	8b df                	mov    %edi,%ebx
461648:	ff 75 fc             	push   -0x4(%ebp)
46164b:	8b cf                	mov    %edi,%ecx
46164d:	e8 48 43 ff ff       	call   0x45599a
461652:	50                   	push   %eax
461653:	8d 46 38             	lea    0x38(%esi),%eax
461656:	53                   	push   %ebx
461657:	50                   	push   %eax
461658:	e8 cf 60 01 00       	call   0x47772c
46165d:	83 c4 10             	add    $0x10,%esp
461660:	5b                   	pop    %ebx
461661:	85 c0                	test   %eax,%eax
461663:	74 33                	je     0x461698
461665:	c6 46 30 01          	movb   $0x1,0x30(%esi)
461669:	eb 2d                	jmp    0x461698
46166b:	8d 7e 40             	lea    0x40(%esi),%edi
46166e:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
461674:	85 c0                	test   %eax,%eax
461676:	75 02                	jne    0x46167a
461678:	8b c7                	mov    %edi,%eax
46167a:	50                   	push   %eax
46167b:	8b ce                	mov    %esi,%ecx
46167d:	e8 cf 4b ff ff       	call   0x456251
461682:	84 c0                	test   %al,%al
461684:	74 a3                	je     0x461629
461686:	8b ce                	mov    %esi,%ecx
461688:	e8 0a a8 ff ff       	call   0x45be97
46168d:	84 c0                	test   %al,%al
46168f:	74 16                	je     0x4616a7
461691:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
461698:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
46169e:	85 c0                	test   %eax,%eax
4616a0:	74 02                	je     0x4616a4
4616a2:	8b f8                	mov    %eax,%edi
4616a4:	89 7e 34             	mov    %edi,0x34(%esi)
4616a7:	b0 01                	mov    $0x1,%al
4616a9:	5f                   	pop    %edi
4616aa:	5e                   	pop    %esi
4616ab:	8b e5                	mov    %ebp,%esp
4616ad:	5d                   	pop    %ebp
4616ae:	c2 04 00             	ret    $0x4
4616b1:	8b ff                	mov    %edi,%edi
4616b3:	56                   	push   %esi
4616b4:	8b f1                	mov    %ecx,%esi
4616b6:	57                   	push   %edi
4616b7:	ff 76 2c             	push   0x2c(%esi)
4616ba:	0f b6 46 31          	movzbl 0x31(%esi),%eax
4616be:	50                   	push   %eax
4616bf:	ff 76 04             	push   0x4(%esi)
4616c2:	ff 36                	push   (%esi)
4616c4:	e8 56 68 ff ff       	call   0x457f1f
4616c9:	83 c4 10             	add    $0x10,%esp
4616cc:	8d 7e 40             	lea    0x40(%esi),%edi
4616cf:	84 c0                	test   %al,%al
4616d1:	74 39                	je     0x46170c
4616d3:	83 46 14 04          	addl   $0x4,0x14(%esi)
4616d7:	8b 46 14             	mov    0x14(%esi),%eax
4616da:	53                   	push   %ebx
4616db:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
4616e1:	0f b7 40 fc          	movzwl -0x4(%eax),%eax
4616e5:	85 db                	test   %ebx,%ebx
4616e7:	75 02                	jne    0x4616eb
4616e9:	8b df                	mov    %edi,%ebx
4616eb:	50                   	push   %eax
4616ec:	8b cf                	mov    %edi,%ecx
4616ee:	e8 a7 42 ff ff       	call   0x45599a
4616f3:	50                   	push   %eax
4616f4:	8d 46 38             	lea    0x38(%esi),%eax
4616f7:	53                   	push   %ebx
4616f8:	50                   	push   %eax
4616f9:	e8 2e 60 01 00       	call   0x47772c
4616fe:	83 c4 10             	add    $0x10,%esp
461701:	5b                   	pop    %ebx
461702:	85 c0                	test   %eax,%eax
461704:	74 25                	je     0x46172b
461706:	c6 46 30 01          	movb   $0x1,0x30(%esi)
46170a:	eb 1f                	jmp    0x46172b
46170c:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
461712:	85 c9                	test   %ecx,%ecx
461714:	75 02                	jne    0x461718
461716:	8b cf                	mov    %edi,%ecx
461718:	83 46 14 04          	addl   $0x4,0x14(%esi)
46171c:	8b 46 14             	mov    0x14(%esi),%eax
46171f:	8a 40 fc             	mov    -0x4(%eax),%al
461722:	88 01                	mov    %al,(%ecx)
461724:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
46172b:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
461731:	85 c0                	test   %eax,%eax
461733:	74 02                	je     0x461737
461735:	8b f8                	mov    %eax,%edi
461737:	89 7e 34             	mov    %edi,0x34(%esi)
46173a:	b0 01                	mov    $0x1,%al
46173c:	5f                   	pop    %edi
46173d:	5e                   	pop    %esi
46173e:	c2 04 00             	ret    $0x4
461741:	8b ff                	mov    %edi,%edi
461743:	55                   	push   %ebp
461744:	8b ec                	mov    %esp,%ebp
461746:	51                   	push   %ecx
461747:	53                   	push   %ebx
461748:	56                   	push   %esi
461749:	8b f1                	mov    %ecx,%esi
46174b:	57                   	push   %edi
46174c:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
461750:	83 46 14 04          	addl   $0x4,0x14(%esi)
461754:	8b 46 14             	mov    0x14(%esi),%eax
461757:	ff 76 2c             	push   0x2c(%esi)
46175a:	0f b7 58 fc          	movzwl -0x4(%eax),%ebx
46175e:	0f b7 46 32          	movzwl 0x32(%esi),%eax
461762:	50                   	push   %eax
461763:	ff 76 04             	push   0x4(%esi)
461766:	ff 36                	push   (%esi)
461768:	e8 f2 67 ff ff       	call   0x457f5f
46176d:	83 c4 10             	add    $0x10,%esp
461770:	8d 7e 40             	lea    0x40(%esi),%edi
461773:	84 c0                	test   %al,%al
461775:	75 32                	jne    0x4617a9
461777:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
46177d:	88 5d fc             	mov    %bl,-0x4(%ebp)
461780:	88 45 fd             	mov    %al,-0x3(%ebp)
461783:	85 c9                	test   %ecx,%ecx
461785:	75 02                	jne    0x461789
461787:	8b cf                	mov    %edi,%ecx
461789:	8b 46 08             	mov    0x8(%esi),%eax
46178c:	50                   	push   %eax
46178d:	8b 00                	mov    (%eax),%eax
46178f:	ff 70 04             	push   0x4(%eax)
461792:	8d 45 fc             	lea    -0x4(%ebp),%eax
461795:	50                   	push   %eax
461796:	51                   	push   %ecx
461797:	e8 d4 5c 01 00       	call   0x477470
46179c:	83 c4 10             	add    $0x10,%esp
46179f:	85 c0                	test   %eax,%eax
4617a1:	79 15                	jns    0x4617b8
4617a3:	c6 46 30 01          	movb   $0x1,0x30(%esi)
4617a7:	eb 0f                	jmp    0x4617b8
4617a9:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
4617af:	85 c0                	test   %eax,%eax
4617b1:	75 02                	jne    0x4617b5
4617b3:	8b c7                	mov    %edi,%eax
4617b5:	66 89 18             	mov    %bx,(%eax)
4617b8:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
4617be:	85 c0                	test   %eax,%eax
4617c0:	74 02                	je     0x4617c4
4617c2:	8b f8                	mov    %eax,%edi
4617c4:	89 7e 34             	mov    %edi,0x34(%esi)
4617c7:	b0 01                	mov    $0x1,%al
4617c9:	5f                   	pop    %edi
4617ca:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
4617d1:	5e                   	pop    %esi
4617d2:	5b                   	pop    %ebx
4617d3:	8b e5                	mov    %ebp,%esp
4617d5:	5d                   	pop    %ebp
4617d6:	c2 04 00             	ret    $0x4
4617d9:	8b ff                	mov    %edi,%edi
4617db:	55                   	push   %ebp
4617dc:	8b ec                	mov    %esp,%ebp
4617de:	51                   	push   %ecx
4617df:	56                   	push   %esi
4617e0:	33 c0                	xor    %eax,%eax
4617e2:	8b f1                	mov    %ecx,%esi
4617e4:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
4617e8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4617eb:	50                   	push   %eax
4617ec:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
4617f0:	e8 9e 63 ff ff       	call   0x457b93
4617f5:	84 c0                	test   %al,%al
4617f7:	0f 84 84 00 00 00    	je     0x461881
4617fd:	8b ce                	mov    %esi,%ecx
4617ff:	e8 a9 a6 ff ff       	call   0x45bead
461804:	84 c0                	test   %al,%al
461806:	74 77                	je     0x46187f
461808:	0f b7 46 32          	movzwl 0x32(%esi),%eax
46180c:	57                   	push   %edi
46180d:	ff 76 2c             	push   0x2c(%esi)
461810:	50                   	push   %eax
461811:	ff 76 04             	push   0x4(%esi)
461814:	ff 36                	push   (%esi)
461816:	e8 44 67 ff ff       	call   0x457f5f
46181b:	83 c4 10             	add    $0x10,%esp
46181e:	8d 7e 40             	lea    0x40(%esi),%edi
461821:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
461827:	84 c0                	test   %al,%al
461829:	75 30                	jne    0x46185b
46182b:	8a 45 fc             	mov    -0x4(%ebp),%al
46182e:	88 45 fc             	mov    %al,-0x4(%ebp)
461831:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
461835:	85 c9                	test   %ecx,%ecx
461837:	75 02                	jne    0x46183b
461839:	8b cf                	mov    %edi,%ecx
46183b:	8b 46 08             	mov    0x8(%esi),%eax
46183e:	50                   	push   %eax
46183f:	8b 00                	mov    (%eax),%eax
461841:	ff 70 04             	push   0x4(%eax)
461844:	8d 45 fc             	lea    -0x4(%ebp),%eax
461847:	50                   	push   %eax
461848:	51                   	push   %ecx
461849:	e8 22 5c 01 00       	call   0x477470
46184e:	83 c4 10             	add    $0x10,%esp
461851:	85 c0                	test   %eax,%eax
461853:	79 13                	jns    0x461868
461855:	c6 46 30 01          	movb   $0x1,0x30(%esi)
461859:	eb 0d                	jmp    0x461868
46185b:	85 c9                	test   %ecx,%ecx
46185d:	75 02                	jne    0x461861
46185f:	8b cf                	mov    %edi,%ecx
461861:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
461865:	66 89 01             	mov    %ax,(%ecx)
461868:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
46186e:	85 c0                	test   %eax,%eax
461870:	74 02                	je     0x461874
461872:	8b f8                	mov    %eax,%edi
461874:	89 7e 34             	mov    %edi,0x34(%esi)
461877:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
46187e:	5f                   	pop    %edi
46187f:	b0 01                	mov    $0x1,%al
461881:	5e                   	pop    %esi
461882:	8b e5                	mov    %ebp,%esp
461884:	5d                   	pop    %ebp
461885:	c2 04 00             	ret    $0x4
461888:	8b ff                	mov    %edi,%edi
46188a:	55                   	push   %ebp
46188b:	8b ec                	mov    %esp,%ebp
46188d:	51                   	push   %ecx
46188e:	53                   	push   %ebx
46188f:	56                   	push   %esi
461890:	8b f1                	mov    %ecx,%esi
461892:	57                   	push   %edi
461893:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
461897:	83 46 14 04          	addl   $0x4,0x14(%esi)
46189b:	8b 46 14             	mov    0x14(%esi),%eax
46189e:	ff 76 2c             	push   0x2c(%esi)
4618a1:	0f b7 58 fc          	movzwl -0x4(%eax),%ebx
4618a5:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4618a9:	50                   	push   %eax
4618aa:	ff 76 04             	push   0x4(%esi)
4618ad:	ff 36                	push   (%esi)
4618af:	e8 ab 66 ff ff       	call   0x457f5f
4618b4:	83 c4 10             	add    $0x10,%esp
4618b7:	8d 7e 40             	lea    0x40(%esi),%edi
4618ba:	84 c0                	test   %al,%al
4618bc:	75 32                	jne    0x4618f0
4618be:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
4618c4:	88 5d fc             	mov    %bl,-0x4(%ebp)
4618c7:	88 45 fd             	mov    %al,-0x3(%ebp)
4618ca:	85 c9                	test   %ecx,%ecx
4618cc:	75 02                	jne    0x4618d0
4618ce:	8b cf                	mov    %edi,%ecx
4618d0:	8b 46 08             	mov    0x8(%esi),%eax
4618d3:	50                   	push   %eax
4618d4:	8b 00                	mov    (%eax),%eax
4618d6:	ff 70 04             	push   0x4(%eax)
4618d9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4618dc:	50                   	push   %eax
4618dd:	51                   	push   %ecx
4618de:	e8 8d 5b 01 00       	call   0x477470
4618e3:	83 c4 10             	add    $0x10,%esp
4618e6:	85 c0                	test   %eax,%eax
4618e8:	79 15                	jns    0x4618ff
4618ea:	c6 46 30 01          	movb   $0x1,0x30(%esi)
4618ee:	eb 0f                	jmp    0x4618ff
4618f0:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
4618f6:	85 c0                	test   %eax,%eax
4618f8:	75 02                	jne    0x4618fc
4618fa:	8b c7                	mov    %edi,%eax
4618fc:	66 89 18             	mov    %bx,(%eax)
4618ff:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
461905:	85 c0                	test   %eax,%eax
461907:	74 02                	je     0x46190b
461909:	8b f8                	mov    %eax,%edi
46190b:	89 7e 34             	mov    %edi,0x34(%esi)
46190e:	b0 01                	mov    $0x1,%al
461910:	5f                   	pop    %edi
461911:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
461918:	5e                   	pop    %esi
461919:	5b                   	pop    %ebx
46191a:	8b e5                	mov    %ebp,%esp
46191c:	5d                   	pop    %ebp
46191d:	c2 04 00             	ret    $0x4
461920:	8b ff                	mov    %edi,%edi
461922:	55                   	push   %ebp
461923:	8b ec                	mov    %esp,%ebp
461925:	51                   	push   %ecx
461926:	53                   	push   %ebx
461927:	56                   	push   %esi
461928:	8b f1                	mov    %ecx,%esi
46192a:	57                   	push   %edi
46192b:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
46192f:	83 46 14 04          	addl   $0x4,0x14(%esi)
461933:	8b 46 14             	mov    0x14(%esi),%eax
461936:	ff 76 2c             	push   0x2c(%esi)
461939:	0f b7 58 fc          	movzwl -0x4(%eax),%ebx
46193d:	0f b7 46 32          	movzwl 0x32(%esi),%eax
461941:	50                   	push   %eax
461942:	ff 76 04             	push   0x4(%esi)
461945:	ff 36                	push   (%esi)
461947:	e8 13 66 ff ff       	call   0x457f5f
46194c:	83 c4 10             	add    $0x10,%esp
46194f:	8d 7e 40             	lea    0x40(%esi),%edi
461952:	84 c0                	test   %al,%al
461954:	75 32                	jne    0x461988
461956:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
46195c:	88 5d fc             	mov    %bl,-0x4(%ebp)
46195f:	88 45 fd             	mov    %al,-0x3(%ebp)
461962:	85 c9                	test   %ecx,%ecx
461964:	75 02                	jne    0x461968
461966:	8b cf                	mov    %edi,%ecx
461968:	8b 46 08             	mov    0x8(%esi),%eax
46196b:	50                   	push   %eax
46196c:	8b 00                	mov    (%eax),%eax
46196e:	ff 70 04             	push   0x4(%eax)
461971:	8d 45 fc             	lea    -0x4(%ebp),%eax
461974:	50                   	push   %eax
461975:	51                   	push   %ecx
461976:	e8 f5 5a 01 00       	call   0x477470
46197b:	83 c4 10             	add    $0x10,%esp
46197e:	85 c0                	test   %eax,%eax
461980:	79 15                	jns    0x461997
461982:	c6 46 30 01          	movb   $0x1,0x30(%esi)
461986:	eb 0f                	jmp    0x461997
461988:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
46198e:	85 c0                	test   %eax,%eax
461990:	75 02                	jne    0x461994
461992:	8b c7                	mov    %edi,%eax
461994:	66 89 18             	mov    %bx,(%eax)
461997:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
46199d:	85 c0                	test   %eax,%eax
46199f:	74 02                	je     0x4619a3
4619a1:	8b f8                	mov    %eax,%edi
4619a3:	89 7e 34             	mov    %edi,0x34(%esi)
4619a6:	b0 01                	mov    $0x1,%al
4619a8:	5f                   	pop    %edi
4619a9:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
4619b0:	5e                   	pop    %esi
4619b1:	5b                   	pop    %ebx
4619b2:	8b e5                	mov    %ebp,%esp
4619b4:	5d                   	pop    %ebp
4619b5:	c2 04 00             	ret    $0x4
4619b8:	8b ff                	mov    %edi,%edi
4619ba:	55                   	push   %ebp
4619bb:	8b ec                	mov    %esp,%ebp
4619bd:	51                   	push   %ecx
4619be:	56                   	push   %esi
4619bf:	33 c0                	xor    %eax,%eax
4619c1:	8b f1                	mov    %ecx,%esi
4619c3:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
4619c7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4619ca:	50                   	push   %eax
4619cb:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
4619cf:	e8 41 62 ff ff       	call   0x457c15