4b3695:	5e                   	pop    %esi
4b3696:	c3                   	ret
4b3697:	cc                   	int3
4b3698:	cc                   	int3
4b3699:	cc                   	int3
4b369a:	cc                   	int3
4b369b:	cc                   	int3
4b369c:	cc                   	int3
4b369d:	cc                   	int3
4b369e:	cc                   	int3
4b369f:	cc                   	int3
4b36a0:	53                   	push   %ebx
4b36a1:	56                   	push   %esi
4b36a2:	8b 74 24 0c          	mov    0xc(%esp),%esi
4b36a6:	57                   	push   %edi
4b36a7:	8b 7c 24 14          	mov    0x14(%esp),%edi
4b36ab:	3b 7e 08             	cmp    0x8(%esi),%edi
4b36ae:	7e 28                	jle    0x4b36d8
4b36b0:	57                   	push   %edi
4b36b1:	56                   	push   %esi
4b36b2:	e8 29 00 00 00       	call   0x4b36e0
4b36b7:	8b d8                	mov    %eax,%ebx
4b36b9:	83 c4 08             	add    $0x8,%esp
4b36bc:	85 db                	test   %ebx,%ebx
4b36be:	75 04                	jne    0x4b36c4
4b36c0:	5f                   	pop    %edi
4b36c1:	5e                   	pop    %esi
4b36c2:	5b                   	pop    %ebx
4b36c3:	c3                   	ret
4b36c4:	8b 0e                	mov    (%esi),%ecx
4b36c6:	85 c9                	test   %ecx,%ecx
4b36c8:	74 09                	je     0x4b36d3
4b36ca:	51                   	push   %ecx
4b36cb:	e8 60 ca fe ff       	call   0x4a0130
4b36d0:	83 c4 04             	add    $0x4,%esp
4b36d3:	89 1e                	mov    %ebx,(%esi)
4b36d5:	89 7e 08             	mov    %edi,0x8(%esi)
4b36d8:	5f                   	pop    %edi
4b36d9:	8b c6                	mov    %esi,%eax
4b36db:	5e                   	pop    %esi
4b36dc:	5b                   	pop    %ebx
4b36dd:	c3                   	ret
4b36de:	cc                   	int3
4b36df:	cc                   	int3
4b36e0:	8b 44 24 08          	mov    0x8(%esp),%eax
4b36e4:	3d ff ff ff 00       	cmp    $0xffffff,%eax
4b36e9:	7e 1b                	jle    0x4b3706
4b36eb:	68 28 01 00 00       	push   $0x128
4b36f0:	68 c0 a2 6a 00       	push   $0x6aa2c0
4b36f5:	6a 72                	push   $0x72
4b36f7:	6a 78                	push   $0x78
4b36f9:	6a 03                	push   $0x3
4b36fb:	e8 a0 dd fe ff       	call   0x4a14a0
4b3700:	83 c4 14             	add    $0x14,%esp
4b3703:	33 c0                	xor    %eax,%eax
4b3705:	c3                   	ret
4b3706:	56                   	push   %esi
4b3707:	8b 74 24 08          	mov    0x8(%esp),%esi
4b370b:	f6 46 10 02          	testb  $0x2,0x10(%esi)
4b370f:	74 1c                	je     0x4b372d
4b3711:	68 2c 01 00 00       	push   $0x12c
4b3716:	68 c0 a2 6a 00       	push   $0x6aa2c0
4b371b:	6a 69                	push   $0x69
4b371d:	6a 78                	push   $0x78
4b371f:	6a 03                	push   $0x3
4b3721:	e8 7a dd fe ff       	call   0x4a14a0
4b3726:	83 c4 14             	add    $0x14,%esp
4b3729:	33 c0                	xor    %eax,%eax
4b372b:	5e                   	pop    %esi
4b372c:	c3                   	ret
4b372d:	57                   	push   %edi
4b372e:	68 2f 01 00 00       	push   $0x12f
4b3733:	c1 e0 02             	shl    $0x2,%eax
4b3736:	68 c0 a2 6a 00       	push   $0x6aa2c0
4b373b:	50                   	push   %eax
4b373c:	e8 6f ca fe ff       	call   0x4a01b0
4b3741:	8b f8                	mov    %eax,%edi
4b3743:	83 c4 0c             	add    $0xc,%esp
4b3746:	8b d7                	mov    %edi,%edx
4b3748:	89 54 24 10          	mov    %edx,0x10(%esp)
4b374c:	85 ff                	test   %edi,%edi
4b374e:	75 1d                	jne    0x4b376d
4b3750:	68 31 01 00 00       	push   $0x131
4b3755:	68 c0 a2 6a 00       	push   $0x6aa2c0
4b375a:	6a 41                	push   $0x41
4b375c:	6a 78                	push   $0x78
4b375e:	6a 03                	push   $0x3
4b3760:	e8 3b dd fe ff       	call   0x4a14a0
4b3765:	83 c4 14             	add    $0x14,%esp
4b3768:	33 c0                	xor    %eax,%eax
4b376a:	5f                   	pop    %edi
4b376b:	5e                   	pop    %esi
4b376c:	c3                   	ret
4b376d:	53                   	push   %ebx
4b376e:	8b 1e                	mov    (%esi),%ebx
4b3770:	85 db                	test   %ebx,%ebx
4b3772:	74 5b                	je     0x4b37cf
4b3774:	55                   	push   %ebp
4b3775:	8b 6e 04             	mov    0x4(%esi),%ebp
4b3778:	c1 fd 02             	sar    $0x2,%ebp
4b377b:	85 ed                	test   %ebp,%ebp
4b377d:	7e 2a                	jle    0x4b37a9
4b377f:	90                   	nop
4b3780:	8b 4b 04             	mov    0x4(%ebx),%ecx
4b3783:	4d                   	dec    %ebp
4b3784:	8b 53 08             	mov    0x8(%ebx),%edx
4b3787:	8b 73 0c             	mov    0xc(%ebx),%esi
4b378a:	8b 03                	mov    (%ebx),%eax
4b378c:	83 c3 10             	add    $0x10,%ebx
4b378f:	89 07                	mov    %eax,(%edi)
4b3791:	89 4f 04             	mov    %ecx,0x4(%edi)
4b3794:	89 57 08             	mov    %edx,0x8(%edi)
4b3797:	89 77 0c             	mov    %esi,0xc(%edi)
4b379a:	83 c7 10             	add    $0x10,%edi
4b379d:	85 ed                	test   %ebp,%ebp
4b379f:	7f df                	jg     0x4b3780
4b37a1:	8b 74 24 14          	mov    0x14(%esp),%esi
4b37a5:	8b 54 24 18          	mov    0x18(%esp),%edx
4b37a9:	8b 46 04             	mov    0x4(%esi),%eax
4b37ac:	83 e0 03             	and    $0x3,%eax
4b37af:	5d                   	pop    %ebp
4b37b0:	83 e8 01             	sub    $0x1,%eax
4b37b3:	74 16                	je     0x4b37cb
4b37b5:	83 e8 01             	sub    $0x1,%eax
4b37b8:	74 0b                	je     0x4b37c5
4b37ba:	83 e8 01             	sub    $0x1,%eax
4b37bd:	75 10                	jne    0x4b37cf
4b37bf:	8b 43 08             	mov    0x8(%ebx),%eax
4b37c2:	89 47 08             	mov    %eax,0x8(%edi)
4b37c5:	8b 4b 04             	mov    0x4(%ebx),%ecx
4b37c8:	89 4f 04             	mov    %ecx,0x4(%edi)
4b37cb:	8b 0b                	mov    (%ebx),%ecx
4b37cd:	89 0f                	mov    %ecx,(%edi)
4b37cf:	5b                   	pop    %ebx
4b37d0:	5f                   	pop    %edi
4b37d1:	8b c2                	mov    %edx,%eax
4b37d3:	5e                   	pop    %esi
4b37d4:	c3                   	ret
4b37d5:	cc                   	int3
4b37d6:	cc                   	int3
4b37d7:	cc                   	int3
4b37d8:	cc                   	int3
4b37d9:	cc                   	int3
4b37da:	cc                   	int3
4b37db:	cc                   	int3
4b37dc:	cc                   	int3
4b37dd:	cc                   	int3
4b37de:	cc                   	int3
4b37df:	cc                   	int3
4b37e0:	57                   	push   %edi
4b37e1:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4b37e5:	85 ff                	test   %edi,%edi
4b37e7:	75 05                	jne    0x4b37ee
4b37e9:	8d 47 01             	lea    0x1(%edi),%eax
4b37ec:	5f                   	pop    %edi
4b37ed:	c3                   	ret
4b37ee:	56                   	push   %esi
4b37ef:	8b 74 24 0c          	mov    0xc(%esp),%esi
4b37f3:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4b37f7:	75 0d                	jne    0x4b3806
4b37f9:	57                   	push   %edi
4b37fa:	56                   	push   %esi
4b37fb:	e8 f0 fc ff ff       	call   0x4b34f0
4b3800:	83 c4 08             	add    $0x8,%esp
4b3803:	5e                   	pop    %esi
4b3804:	5f                   	pop    %edi
4b3805:	c3                   	ret
4b3806:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
4b380a:	74 25                	je     0x4b3831
4b380c:	57                   	push   %edi
4b380d:	56                   	push   %esi
4b380e:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
4b3815:	e8 16 02 00 00       	call   0x4b3a30
4b381a:	83 c4 08             	add    $0x8,%esp
4b381d:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4b3821:	74 67                	je     0x4b388a
4b3823:	33 c9                	xor    %ecx,%ecx
4b3825:	39 4e 0c             	cmp    %ecx,0xc(%esi)
4b3828:	0f 94 c1             	sete   %cl
4b382b:	89 4e 0c             	mov    %ecx,0xc(%esi)
4b382e:	5e                   	pop    %esi
4b382f:	5f                   	pop    %edi
4b3830:	c3                   	ret
4b3831:	53                   	push   %ebx
4b3832:	33 db                	xor    %ebx,%ebx
4b3834:	3b 5e 04             	cmp    0x4(%esi),%ebx
4b3837:	7d 1c                	jge    0x4b3855
4b3839:	8b 06                	mov    (%esi),%eax
4b383b:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
4b383e:	03 cf                	add    %edi,%ecx
4b3840:	3b cf                	cmp    %edi,%ecx
4b3842:	89 0c 98             	mov    %ecx,(%eax,%ebx,4)
4b3845:	1b ff                	sbb    %edi,%edi
4b3847:	43                   	inc    %ebx
4b3848:	f7 df                	neg    %edi
4b384a:	75 e8                	jne    0x4b3834
4b384c:	5b                   	pop    %ebx
4b384d:	5e                   	pop    %esi
4b384e:	b8 01 00 00 00       	mov    $0x1,%eax
4b3853:	5f                   	pop    %edi
4b3854:	c3                   	ret
4b3855:	85 ff                	test   %edi,%edi
4b3857:	74 2b                	je     0x4b3884
4b3859:	8b 46 04             	mov    0x4(%esi),%eax
4b385c:	3b d8                	cmp    %eax,%ebx
4b385e:	75 24                	jne    0x4b3884
4b3860:	40                   	inc    %eax
4b3861:	3b 46 08             	cmp    0x8(%esi),%eax
4b3864:	7f 04                	jg     0x4b386a
4b3866:	8b c6                	mov    %esi,%eax
4b3868:	eb 0a                	jmp    0x4b3874
4b386a:	50                   	push   %eax
4b386b:	56                   	push   %esi
4b386c:	e8 2f fe ff ff       	call   0x4b36a0
4b3871:	83 c4 08             	add    $0x8,%esp
4b3874:	85 c0                	test   %eax,%eax
4b3876:	75 04                	jne    0x4b387c
4b3878:	5b                   	pop    %ebx
4b3879:	5e                   	pop    %esi
4b387a:	5f                   	pop    %edi
4b387b:	c3                   	ret
4b387c:	8b 06                	mov    (%esi),%eax
4b387e:	ff 46 04             	incl   0x4(%esi)
4b3881:	89 3c 98             	mov    %edi,(%eax,%ebx,4)
4b3884:	b8 01 00 00 00       	mov    $0x1,%eax
4b3889:	5b                   	pop    %ebx
4b388a:	5e                   	pop    %esi
4b388b:	5f                   	pop    %edi
4b388c:	c3                   	ret
4b388d:	cc                   	int3
4b388e:	cc                   	int3
4b388f:	cc                   	int3
4b3890:	b8 04 00 00 00       	mov    $0x4,%eax
4b3895:	e8 56 dc 12 00       	call   0x5e14f0
4b389a:	53                   	push   %ebx
4b389b:	55                   	push   %ebp
4b389c:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4b38a0:	33 db                	xor    %ebx,%ebx
4b38a2:	85 ed                	test   %ebp,%ebp
4b38a4:	75 07                	jne    0x4b38ad
4b38a6:	5d                   	pop    %ebp
4b38a7:	83 c8 ff             	or     $0xffffffff,%eax
4b38aa:	5b                   	pop    %ebx
4b38ab:	59                   	pop    %ecx
4b38ac:	c3                   	ret
4b38ad:	57                   	push   %edi
4b38ae:	8b 7c 24 14          	mov    0x14(%esp),%edi
4b38b2:	39 5f 04             	cmp    %ebx,0x4(%edi)
4b38b5:	75 07                	jne    0x4b38be
4b38b7:	5f                   	pop    %edi
4b38b8:	5d                   	pop    %ebp
4b38b9:	33 c0                	xor    %eax,%eax
4b38bb:	5b                   	pop    %ebx
4b38bc:	59                   	pop    %ecx
4b38bd:	c3                   	ret
4b38be:	56                   	push   %esi
4b38bf:	55                   	push   %ebp
4b38c0:	e8 1b fb ff ff       	call   0x4b33e0
4b38c5:	be 20 00 00 00       	mov    $0x20,%esi
4b38ca:	2b f0                	sub    %eax,%esi
4b38cc:	56                   	push   %esi
4b38cd:	8b ce                	mov    %esi,%ecx
4b38cf:	89 74 24 18          	mov    %esi,0x18(%esp)
4b38d3:	57                   	push   %edi
4b38d4:	57                   	push   %edi
4b38d5:	d3 e5                	shl    %cl,%ebp
4b38d7:	e8 24 0c 00 00       	call   0x4b4500
4b38dc:	83 c4 10             	add    $0x10,%esp
4b38df:	85 c0                	test   %eax,%eax
4b38e1:	75 09                	jne    0x4b38ec
4b38e3:	5e                   	pop    %esi
4b38e4:	5f                   	pop    %edi
4b38e5:	5d                   	pop    %ebp
4b38e6:	83 c8 ff             	or     $0xffffffff,%eax
4b38e9:	5b                   	pop    %ebx
4b38ea:	59                   	pop    %ecx
4b38eb:	c3                   	ret
4b38ec:	8b 57 04             	mov    0x4(%edi),%edx
4b38ef:	83 ea 01             	sub    $0x1,%edx
4b38f2:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4b38f6:	78 2f                	js     0x4b3927
4b38f8:	8b 07                	mov    (%edi),%eax
4b38fa:	55                   	push   %ebp
4b38fb:	8b 34 90             	mov    (%eax,%edx,4),%esi
4b38fe:	56                   	push   %esi
4b38ff:	53                   	push   %ebx
4b3900:	e8 3b 70 01 00       	call   0x4ca940
4b3905:	8b 54 24 28          	mov    0x28(%esp),%edx
4b3909:	8b c8                	mov    %eax,%ecx
4b390b:	0f af c5             	imul   %ebp,%eax
4b390e:	8b de                	mov    %esi,%ebx
4b3910:	83 c4 0c             	add    $0xc,%esp
4b3913:	2b d8                	sub    %eax,%ebx
4b3915:	8b 07                	mov    (%edi),%eax
4b3917:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
4b391a:	83 ea 01             	sub    $0x1,%edx
4b391d:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4b3921:	79 d5                	jns    0x4b38f8
4b3923:	8b 74 24 10          	mov    0x10(%esp),%esi
4b3927:	8b 57 04             	mov    0x4(%edi),%edx
4b392a:	85 d2                	test   %edx,%edx
4b392c:	7e 0d                	jle    0x4b393b
4b392e:	8b 07                	mov    (%edi),%eax
4b3930:	83 7c 90 fc 00       	cmpl   $0x0,-0x4(%eax,%edx,4)
4b3935:	75 04                	jne    0x4b393b
4b3937:	4a                   	dec    %edx
4b3938:	89 57 04             	mov    %edx,0x4(%edi)
4b393b:	8b ce                	mov    %esi,%ecx
4b393d:	5e                   	pop    %esi
4b393e:	5f                   	pop    %edi
4b393f:	d3 eb                	shr    %cl,%ebx
4b3941:	5d                   	pop    %ebp
4b3942:	8b c3                	mov    %ebx,%eax
4b3944:	5b                   	pop    %ebx
4b3945:	59                   	pop    %ecx
4b3946:	c3                   	ret
4b3947:	cc                   	int3
4b3948:	cc                   	int3
4b3949:	cc                   	int3
4b394a:	cc                   	int3
4b394b:	cc                   	int3
4b394c:	cc                   	int3
4b394d:	cc                   	int3
4b394e:	cc                   	int3
4b394f:	cc                   	int3
4b3950:	b8 08 00 00 00       	mov    $0x8,%eax
4b3955:	e8 96 db 12 00       	call   0x5e14f0
4b395a:	53                   	push   %ebx
4b395b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4b395f:	0f 57 c0             	xorps  %xmm0,%xmm0
4b3962:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
4b3968:	85 db                	test   %ebx,%ebx
4b396a:	75 08                	jne    0x4b3974
4b396c:	83 c8 ff             	or     $0xffffffff,%eax
4b396f:	5b                   	pop    %ebx
4b3970:	83 c4 08             	add    $0x8,%esp
4b3973:	c3                   	ret
4b3974:	8b 44 24 10          	mov    0x10(%esp),%eax
4b3978:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4b397c:	56                   	push   %esi
4b397d:	8b 70 04             	mov    0x4(%eax),%esi
4b3980:	83 ee 01             	sub    $0x1,%esi
4b3983:	78 24                	js     0x4b39a9
4b3985:	8b 00                	mov    (%eax),%eax
4b3987:	57                   	push   %edi
4b3988:	8d 3c b0             	lea    (%eax,%esi,4),%edi
4b398b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4b3990:	6a 00                	push   $0x0
4b3992:	53                   	push   %ebx
4b3993:	33 c0                	xor    %eax,%eax