4a365f:	83 c3 10             	add    $0x10,%ebx
4a3662:	83 c5 10             	add    $0x10,%ebp
4a3665:	33 f6                	xor    %esi,%esi
4a3667:	83 6c 24 18 01       	subl   $0x1,0x18(%esp)
4a366c:	75 b2                	jne    0x4a3620
4a366e:	85 ff                	test   %edi,%edi
4a3670:	0f 84 89 01 00 00    	je     0x4a37ff
4a3676:	ff 74 24 30          	push   0x30(%esp)
4a367a:	8b 6c 24 38          	mov    0x38(%esp),%ebp
4a367e:	55                   	push   %ebp
4a367f:	55                   	push   %ebp
4a3680:	ff 54 24 4c          	call   *0x4c(%esp)
4a3684:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
4a3688:	8d 14 2e             	lea    (%esi,%ebp,1),%edx
4a368b:	29 6c 24 48          	sub    %ebp,0x48(%esp)
4a368f:	83 c4 0c             	add    $0xc,%esp
4a3692:	2b dd                	sub    %ebp,%ebx
4a3694:	03 f7                	add    %edi,%esi
4a3696:	89 74 24 18          	mov    %esi,0x18(%esp)
4a369a:	8b 74 24 3c          	mov    0x3c(%esp),%esi
4a369e:	66 90                	xchg   %ax,%ax
4a36a0:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
4a36a4:	8d 52 01             	lea    0x1(%edx),%edx
4a36a7:	0f b6 42 ff          	movzbl -0x1(%edx),%eax
4a36ab:	33 c8                	xor    %eax,%ecx
4a36ad:	88 4a ff             	mov    %cl,-0x1(%edx)
4a36b0:	88 4c 1a ff          	mov    %cl,-0x1(%edx,%ebx,1)
4a36b4:	83 ef 01             	sub    $0x1,%edi
4a36b7:	75 e7                	jne    0x4a36a0
4a36b9:	8b 44 24 38          	mov    0x38(%esp),%eax
4a36bd:	8b 74 24 18          	mov    0x18(%esp),%esi
4a36c1:	5f                   	pop    %edi
4a36c2:	89 30                	mov    %esi,(%eax)
4a36c4:	5e                   	pop    %esi
4a36c5:	5d                   	pop    %ebp
4a36c6:	5b                   	pop    %ebx
4a36c7:	83 c4 10             	add    $0x10,%esp
4a36ca:	c3                   	ret
4a36cb:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
4a36cf:	8b 6c 24 28          	mov    0x28(%esp),%ebp
4a36d3:	8b 7c 24 24          	mov    0x24(%esp),%edi
4a36d7:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4a36db:	89 6c 24 14          	mov    %ebp,0x14(%esp)
4a36df:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
4a36e3:	85 f6                	test   %esi,%esi
4a36e5:	74 2f                	je     0x4a3716
4a36e7:	8b 54 24 34          	mov    0x34(%esp),%edx
4a36eb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4a36f0:	85 db                	test   %ebx,%ebx
4a36f2:	74 22                	je     0x4a3716
4a36f4:	8a 04 16             	mov    (%esi,%edx,1),%al
4a36f7:	4b                   	dec    %ebx
4a36f8:	8a 0f                	mov    (%edi),%cl
4a36fa:	47                   	inc    %edi
4a36fb:	32 c1                	xor    %cl,%al
4a36fd:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
4a3701:	88 45 00             	mov    %al,0x0(%ebp)
4a3704:	45                   	inc    %ebp
4a3705:	88 0c 16             	mov    %cl,(%esi,%edx,1)
4a3708:	46                   	inc    %esi
4a3709:	89 6c 24 14          	mov    %ebp,0x14(%esp)
4a370d:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4a3711:	83 e6 0f             	and    $0xf,%esi
4a3714:	75 da                	jne    0x4a36f0
4a3716:	8b 54 24 40          	mov    0x40(%esp),%edx
4a371a:	83 fb 10             	cmp    $0x10,%ebx
4a371d:	0f 82 97 00 00 00    	jb     0x4a37ba
4a3723:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a3727:	8b c5                	mov    %ebp,%eax
4a3729:	2b c1                	sub    %ecx,%eax
4a372b:	89 44 24 18          	mov    %eax,0x18(%esp)
4a372f:	8b c3                	mov    %ebx,%eax
4a3731:	c1 e8 04             	shr    $0x4,%eax
4a3734:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4a3738:	eb 0a                	jmp    0x4a3744
4a373a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4a3740:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a3744:	ff 74 24 30          	push   0x30(%esp)
4a3748:	51                   	push   %ecx
4a3749:	51                   	push   %ecx
4a374a:	ff d2                	call   *%edx
4a374c:	83 c4 0c             	add    $0xc,%esp
4a374f:	83 fe 10             	cmp    $0x10,%esi
4a3752:	73 3f                	jae    0x4a3793
4a3754:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
4a3758:	8b 7c 24 34          	mov    0x34(%esp),%edi
4a375c:	2b dd                	sub    %ebp,%ebx
4a375e:	bd 0f 00 00 00       	mov    $0xf,%ebp
4a3763:	03 fe                	add    %esi,%edi
4a3765:	2b ee                	sub    %esi,%ebp
4a3767:	8b 74 24 18          	mov    0x18(%esp),%esi
4a376b:	c1 ed 02             	shr    $0x2,%ebp
4a376e:	45                   	inc    %ebp
4a376f:	90                   	nop
4a3770:	8b 07                	mov    (%edi),%eax
4a3772:	8d 0c 3e             	lea    (%esi,%edi,1),%ecx
4a3775:	8b 14 19             	mov    (%ecx,%ebx,1),%edx
4a3778:	8d 7f 04             	lea    0x4(%edi),%edi
4a377b:	33 c2                	xor    %edx,%eax
4a377d:	89 01                	mov    %eax,(%ecx)
4a377f:	89 57 fc             	mov    %edx,-0x4(%edi)
4a3782:	83 ed 01             	sub    $0x1,%ebp
4a3785:	75 e9                	jne    0x4a3770
4a3787:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4a378b:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4a378f:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
4a3793:	83 44 24 18 10       	addl   $0x10,0x18(%esp)
4a3798:	83 eb 10             	sub    $0x10,%ebx
4a379b:	8b 54 24 40          	mov    0x40(%esp),%edx
4a379f:	83 c5 10             	add    $0x10,%ebp
4a37a2:	83 c7 10             	add    $0x10,%edi
4a37a5:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4a37a9:	33 f6                	xor    %esi,%esi
4a37ab:	89 6c 24 14          	mov    %ebp,0x14(%esp)
4a37af:	83 6c 24 1c 01       	subl   $0x1,0x1c(%esp)
4a37b4:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
4a37b8:	75 86                	jne    0x4a3740
4a37ba:	85 db                	test   %ebx,%ebx
4a37bc:	74 41                	je     0x4a37ff
4a37be:	ff 74 24 30          	push   0x30(%esp)
4a37c2:	8b 44 24 38          	mov    0x38(%esp),%eax
4a37c6:	50                   	push   %eax
4a37c7:	50                   	push   %eax
4a37c8:	ff d2                	call   *%edx
4a37ca:	8b 4c 24 40          	mov    0x40(%esp),%ecx
4a37ce:	2b fd                	sub    %ebp,%edi
4a37d0:	83 c4 0c             	add    $0xc,%esp
4a37d3:	2b e9                	sub    %ecx,%ebp
4a37d5:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
4a37d8:	03 f3                	add    %ebx,%esi
4a37da:	89 74 24 18          	mov    %esi,0x18(%esp)
4a37de:	8b f0                	mov    %eax,%esi
4a37e0:	89 44 24 3c          	mov    %eax,0x3c(%esp)
4a37e4:	8a 06                	mov    (%esi),%al
4a37e6:	8d 0c 2e             	lea    (%esi,%ebp,1),%ecx
4a37e9:	8a 14 39             	mov    (%ecx,%edi,1),%dl
4a37ec:	8d 76 01             	lea    0x1(%esi),%esi
4a37ef:	32 c2                	xor    %dl,%al
4a37f1:	88 01                	mov    %al,(%ecx)
4a37f3:	88 56 ff             	mov    %dl,-0x1(%esi)
4a37f6:	83 eb 01             	sub    $0x1,%ebx
4a37f9:	75 e9                	jne    0x4a37e4
4a37fb:	8b 74 24 18          	mov    0x18(%esp),%esi
4a37ff:	8b 44 24 38          	mov    0x38(%esp),%eax
4a3803:	5f                   	pop    %edi
4a3804:	89 30                	mov    %esi,(%eax)
4a3806:	5e                   	pop    %esi
4a3807:	5d                   	pop    %ebp
4a3808:	5b                   	pop    %ebx
4a3809:	83 c4 10             	add    $0x10,%esp
4a380c:	c3                   	ret
4a380d:	cc                   	int3
4a380e:	cc                   	int3
4a380f:	cc                   	int3
4a3810:	53                   	push   %ebx
4a3811:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4a3815:	8b 43 38             	mov    0x38(%ebx),%eax
4a3818:	0b 43 3c             	or     0x3c(%ebx),%eax
4a381b:	74 07                	je     0x4a3824
4a381d:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
4a3822:	5b                   	pop    %ebx
4a3823:	c3                   	ret
4a3824:	56                   	push   %esi
4a3825:	8b 74 24 14          	mov    0x14(%esp),%esi
4a3829:	33 c9                	xor    %ecx,%ecx
4a382b:	8b c6                	mov    %esi,%eax
4a382d:	03 43 30             	add    0x30(%ebx),%eax
4a3830:	13 4b 34             	adc    0x34(%ebx),%ecx
4a3833:	81 f9 00 00 00 20    	cmp    $0x20000000,%ecx
4a3839:	0f 87 9a 00 00 00    	ja     0x4a38d9
4a383f:	72 08                	jb     0x4a3849
4a3841:	85 c0                	test   %eax,%eax
4a3843:	0f 85 90 00 00 00    	jne    0x4a38d9
4a3849:	55                   	push   %ebp
4a384a:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4a384e:	57                   	push   %edi
4a384f:	8b bb 6c 01 00 00    	mov    0x16c(%ebx),%edi
4a3855:	89 43 30             	mov    %eax,0x30(%ebx)
4a3858:	89 4b 34             	mov    %ecx,0x34(%ebx)
4a385b:	85 ff                	test   %edi,%edi
4a385d:	74 2a                	je     0x4a3889
4a385f:	90                   	nop
4a3860:	85 f6                	test   %esi,%esi
4a3862:	74 11                	je     0x4a3875
4a3864:	8a 45 00             	mov    0x0(%ebp),%al
4a3867:	4e                   	dec    %esi
4a3868:	30 44 1f 40          	xor    %al,0x40(%edi,%ebx,1)
4a386c:	45                   	inc    %ebp
4a386d:	47                   	inc    %edi
4a386e:	83 e7 0f             	and    $0xf,%edi
4a3871:	75 ed                	jne    0x4a3860
4a3873:	eb 04                	jmp    0x4a3879
4a3875:	85 ff                	test   %edi,%edi
4a3877:	75 53                	jne    0x4a38cc
4a3879:	8d 43 60             	lea    0x60(%ebx),%eax
4a387c:	50                   	push   %eax
4a387d:	8d 43 40             	lea    0x40(%ebx),%eax
4a3880:	50                   	push   %eax
4a3881:	e8 da 11 00 00       	call   0x4a4a60
4a3886:	83 c4 08             	add    $0x8,%esp
4a3889:	8b c6                	mov    %esi,%eax
4a388b:	83 e0 f0             	and    $0xfffffff0,%eax
4a388e:	89 44 24 14          	mov    %eax,0x14(%esp)
4a3892:	74 1a                	je     0x4a38ae
4a3894:	50                   	push   %eax
4a3895:	55                   	push   %ebp
4a3896:	8d 43 60             	lea    0x60(%ebx),%eax
4a3899:	50                   	push   %eax
4a389a:	8d 43 40             	lea    0x40(%ebx),%eax
4a389d:	50                   	push   %eax
4a389e:	e8 7d 0f 00 00       	call   0x4a4820
4a38a3:	03 6c 24 24          	add    0x24(%esp),%ebp
4a38a7:	83 c4 10             	add    $0x10,%esp
4a38aa:	2b 74 24 14          	sub    0x14(%esp),%esi
4a38ae:	85 f6                	test   %esi,%esi
4a38b0:	74 1a                	je     0x4a38cc
4a38b2:	33 c9                	xor    %ecx,%ecx
4a38b4:	8b fe                	mov    %esi,%edi
4a38b6:	85 f6                	test   %esi,%esi
4a38b8:	74 12                	je     0x4a38cc
4a38ba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4a38c0:	8a 04 29             	mov    (%ecx,%ebp,1),%al
4a38c3:	30 44 0b 40          	xor    %al,0x40(%ebx,%ecx,1)
4a38c7:	41                   	inc    %ecx
4a38c8:	3b ce                	cmp    %esi,%ecx
4a38ca:	72 f4                	jb     0x4a38c0
4a38cc:	89 bb 6c 01 00 00    	mov    %edi,0x16c(%ebx)
4a38d2:	33 c0                	xor    %eax,%eax
4a38d4:	5f                   	pop    %edi
4a38d5:	5d                   	pop    %ebp
4a38d6:	5e                   	pop    %esi
4a38d7:	5b                   	pop    %ebx
4a38d8:	c3                   	ret
4a38d9:	5e                   	pop    %esi
4a38da:	83 c8 ff             	or     $0xffffffff,%eax
4a38dd:	5b                   	pop    %ebx
4a38de:	c3                   	ret
4a38df:	cc                   	int3
4a38e0:	b8 14 00 00 00       	mov    $0x14,%eax
4a38e5:	e8 06 dc 13 00       	call   0x5e14f0
4a38ea:	8b 4c 24 24          	mov    0x24(%esp),%ecx
4a38ee:	33 d2                	xor    %edx,%edx
4a38f0:	56                   	push   %esi
4a38f1:	8b 74 24 1c          	mov    0x1c(%esp),%esi
4a38f5:	8b 86 70 01 00 00    	mov    0x170(%esi),%eax
4a38fb:	89 44 24 08          	mov    %eax,0x8(%esp)
4a38ff:	8b 86 74 01 00 00    	mov    0x174(%esi),%eax
4a3905:	89 44 24 04          	mov    %eax,0x4(%esp)
4a3909:	8b c1                	mov    %ecx,%eax
4a390b:	03 46 38             	add    0x38(%esi),%eax
4a390e:	13 56 3c             	adc    0x3c(%esi),%edx
4a3911:	83 fa 0f             	cmp    $0xf,%edx
4a3914:	0f 87 8a 02 00 00    	ja     0x4a3ba4
4a391a:	72 09                	jb     0x4a3925
4a391c:	83 f8 e0             	cmp    $0xffffffe0,%eax
4a391f:	0f 87 7f 02 00 00    	ja     0x4a3ba4
4a3925:	83 be 6c 01 00 00 00 	cmpl   $0x0,0x16c(%esi)
4a392c:	89 46 38             	mov    %eax,0x38(%esi)
4a392f:	89 56 3c             	mov    %edx,0x3c(%esi)
4a3932:	74 1e                	je     0x4a3952
4a3934:	8d 46 60             	lea    0x60(%esi),%eax
4a3937:	50                   	push   %eax
4a3938:	8d 46 40             	lea    0x40(%esi),%eax
4a393b:	50                   	push   %eax
4a393c:	e8 1f 11 00 00       	call   0x4a4a60
4a3941:	8b 4c 24 30          	mov    0x30(%esp),%ecx
4a3945:	83 c4 08             	add    $0x8,%esp
4a3948:	c7 86 6c 01 00 00 00 	movl   $0x0,0x16c(%esi)
4a394f:	00 00 00
4a3952:	0f b6 46 0d          	movzbl 0xd(%esi),%eax
4a3956:	8b 96 68 01 00 00    	mov    0x168(%esi),%edx
4a395c:	53                   	push   %ebx
4a395d:	0f b6 5e 0c          	movzbl 0xc(%esi),%ebx
4a3961:	c1 e3 08             	shl    $0x8,%ebx
4a3964:	0b d8                	or     %eax,%ebx
4a3966:	89 54 24 10          	mov    %edx,0x10(%esp)
4a396a:	0f b6 46 0e          	movzbl 0xe(%esi),%eax
4a396e:	c1 e3 08             	shl    $0x8,%ebx
4a3971:	0b d8                	or     %eax,%ebx
4a3973:	0f b6 46 0f          	movzbl 0xf(%esi),%eax
4a3977:	c1 e3 08             	shl    $0x8,%ebx
4a397a:	55                   	push   %ebp
4a397b:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
4a397f:	0b d8                	or     %eax,%ebx
4a3981:	57                   	push   %edi
4a3982:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
4a3986:	85 d2                	test   %edx,%edx
4a3988:	74 48                	je     0x4a39d2
4a398a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4a3990:	85 c9                	test   %ecx,%ecx
4a3992:	74 26                	je     0x4a39ba
4a3994:	8a 0f                	mov    (%edi),%cl
4a3996:	47                   	inc    %edi
4a3997:	8a 44 32 10          	mov    0x10(%edx,%esi,1),%al
4a399b:	32 c1                	xor    %cl,%al
4a399d:	88 45 00             	mov    %al,0x0(%ebp)
4a39a0:	45                   	inc    %ebp
4a39a1:	30 4c 32 40          	xor    %cl,0x40(%edx,%esi,1)
4a39a5:	42                   	inc    %edx
4a39a6:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a39aa:	49                   	dec    %ecx
4a39ab:	83 e2 0f             	and    $0xf,%edx
4a39ae:	89 4c 24 34          	mov    %ecx,0x34(%esp)
4a39b2:	89 54 24 18          	mov    %edx,0x18(%esp)
4a39b6:	75 d8                	jne    0x4a3990
4a39b8:	eb 08                	jmp    0x4a39c2
4a39ba:	85 d2                	test   %edx,%edx
4a39bc:	0f 85 d2 01 00 00    	jne    0x4a3b94
4a39c2:	8d 46 60             	lea    0x60(%esi),%eax
4a39c5:	50                   	push   %eax
4a39c6:	8d 46 40             	lea    0x40(%esi),%eax
4a39c9:	50                   	push   %eax
4a39ca:	e8 91 10 00 00       	call   0x4a4a60
4a39cf:	83 c4 08             	add    $0x8,%esp
4a39d2:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4a39d6:	81 f9 00 0c 00 00    	cmp    $0xc00,%ecx
4a39dc:	0f 82 a3 00 00 00    	jb     0x4a3a85
4a39e2:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
4a39e7:	f7 e1                	mul    %ecx
4a39e9:	c1 ea 0b             	shr    $0xb,%edx
4a39ec:	89 54 24 20          	mov    %edx,0x20(%esp)
4a39f0:	68 00 0c 00 00       	push   $0xc00
4a39f5:	57                   	push   %edi
4a39f6:	8d 46 60             	lea    0x60(%esi),%eax
4a39f9:	50                   	push   %eax
4a39fa:	8d 46 40             	lea    0x40(%esi),%eax
4a39fd:	50                   	push   %eax
4a39fe:	e8 1d 0e 00 00       	call   0x4a4820
4a3a03:	83 c4 10             	add    $0x10,%esp
4a3a06:	c7 44 24 1c c0 00 00 	movl   $0xc0,0x1c(%esp)
4a3a0d:	00
4a3a0e:	66 90                	xchg   %ax,%ax
4a3a10:	ff 74 24 10          	push   0x10(%esp)
4a3a14:	8d 46 10             	lea    0x10(%esi),%eax
4a3a17:	50                   	push   %eax
4a3a18:	56                   	push   %esi
4a3a19:	ff 54 24 20          	call   *0x20(%esp)
4a3a1d:	43                   	inc    %ebx
4a3a1e:	83 c4 0c             	add    $0xc,%esp
4a3a21:	8b c3                	mov    %ebx,%eax
4a3a23:	88 5e 0f             	mov    %bl,0xf(%esi)
4a3a26:	c1 e8 18             	shr    $0x18,%eax
4a3a29:	88 46 0c             	mov    %al,0xc(%esi)
4a3a2c:	8b c3                	mov    %ebx,%eax
4a3a2e:	c1 e8 10             	shr    $0x10,%eax
4a3a31:	88 46 0d             	mov    %al,0xd(%esi)
4a3a34:	8b c3                	mov    %ebx,%eax
4a3a36:	c1 e8 08             	shr    $0x8,%eax
4a3a39:	88 46 0e             	mov    %al,0xe(%esi)
4a3a3c:	8b 07                	mov    (%edi),%eax