50b786:	6a 07                	push   $0x7
50b788:	e8 f3 d7 fc ff       	call   0x4d8f80
50b78d:	83 c4 14             	add    $0x14,%esp
50b790:	33 f6                	xor    %esi,%esi
50b792:	8b c6                	mov    %esi,%eax
50b794:	5b                   	pop    %ebx
50b795:	5f                   	pop    %edi
50b796:	5e                   	pop    %esi
50b797:	c3                   	ret
50b798:	8b 0f                	mov    (%edi),%ecx
50b79a:	8b c6                	mov    %esi,%eax
50b79c:	2b c1                	sub    %ecx,%eax
50b79e:	89 57 04             	mov    %edx,0x4(%edi)
50b7a1:	50                   	push   %eax
50b7a2:	6a 00                	push   $0x0
50b7a4:	8d 04 11             	lea    (%ecx,%edx,1),%eax
50b7a7:	89 5f 08             	mov    %ebx,0x8(%edi)
50b7aa:	50                   	push   %eax
50b7ab:	e8 c0 74 0c 00       	call   0x5d2c70
50b7b0:	83 c4 0c             	add    $0xc,%esp
50b7b3:	89 37                	mov    %esi,(%edi)
50b7b5:	8b c6                	mov    %esi,%eax
50b7b7:	5b                   	pop    %ebx
50b7b8:	5f                   	pop    %edi
50b7b9:	5e                   	pop    %esi
50b7ba:	c3                   	ret
50b7bb:	cc                   	int3
50b7bc:	cc                   	int3
50b7bd:	cc                   	int3
50b7be:	cc                   	int3
50b7bf:	cc                   	int3
50b7c0:	6a 23                	push   $0x23
50b7c2:	68 98 ae 62 00       	push   $0x62ae98
50b7c7:	6a 10                	push   $0x10
50b7c9:	e8 72 52 fd ff       	call   0x4e0a40
50b7ce:	83 c4 0c             	add    $0xc,%esp
50b7d1:	85 c0                	test   %eax,%eax
50b7d3:	75 17                	jne    0x50b7ec
50b7d5:	6a 25                	push   $0x25
50b7d7:	68 98 ae 62 00       	push   $0x62ae98
50b7dc:	6a 41                	push   $0x41
50b7de:	6a 65                	push   $0x65
50b7e0:	6a 07                	push   $0x7
50b7e2:	e8 99 d7 fc ff       	call   0x4d8f80
50b7e7:	83 c4 14             	add    $0x14,%esp
50b7ea:	33 c0                	xor    %eax,%eax
50b7ec:	c3                   	ret
50b7ed:	cc                   	int3
50b7ee:	cc                   	int3
50b7ef:	cc                   	int3
50b7f0:	6a 23                	push   $0x23
50b7f2:	68 98 ae 62 00       	push   $0x62ae98
50b7f7:	6a 10                	push   $0x10
50b7f9:	e8 42 52 fd ff       	call   0x4e0a40
50b7fe:	83 c4 0c             	add    $0xc,%esp
50b801:	85 c0                	test   %eax,%eax
50b803:	75 18                	jne    0x50b81d
50b805:	6a 25                	push   $0x25
50b807:	68 98 ae 62 00       	push   $0x62ae98
50b80c:	6a 41                	push   $0x41
50b80e:	6a 65                	push   $0x65
50b810:	6a 07                	push   $0x7
50b812:	e8 69 d7 fc ff       	call   0x4d8f80
50b817:	83 c4 14             	add    $0x14,%esp
50b81a:	33 c0                	xor    %eax,%eax
50b81c:	c3                   	ret
50b81d:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50b821:	89 48 0c             	mov    %ecx,0xc(%eax)
50b824:	c3                   	ret
50b825:	cc                   	int3
50b826:	cc                   	int3
50b827:	cc                   	int3
50b828:	cc                   	int3
50b829:	cc                   	int3
50b82a:	cc                   	int3
50b82b:	cc                   	int3
50b82c:	cc                   	int3
50b82d:	cc                   	int3
50b82e:	cc                   	int3
50b82f:	cc                   	int3
50b830:	8b 54 24 08          	mov    0x8(%esp),%edx
50b834:	56                   	push   %esi
50b835:	8b 74 24 10          	mov    0x10(%esp),%esi
50b839:	57                   	push   %edi
50b83a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
50b83e:	8d 46 ff             	lea    -0x1(%esi),%eax
50b841:	03 c7                	add    %edi,%eax
50b843:	85 d2                	test   %edx,%edx
50b845:	74 1c                	je     0x50b863
50b847:	85 f6                	test   %esi,%esi
50b849:	74 32                	je     0x50b87d
50b84b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
50b850:	8a 0a                	mov    (%edx),%cl
50b852:	8d 40 ff             	lea    -0x1(%eax),%eax
50b855:	88 48 01             	mov    %cl,0x1(%eax)
50b858:	8d 52 01             	lea    0x1(%edx),%edx
50b85b:	83 ee 01             	sub    $0x1,%esi
50b85e:	75 f0                	jne    0x50b850
50b860:	5f                   	pop    %edi
50b861:	5e                   	pop    %esi
50b862:	c3                   	ret
50b863:	d1 ee                	shr    $1,%esi
50b865:	74 16                	je     0x50b87d
50b867:	8a 0f                	mov    (%edi),%cl
50b869:	8d 40 ff             	lea    -0x1(%eax),%eax
50b86c:	8a 50 01             	mov    0x1(%eax),%dl
50b86f:	8d 7f 01             	lea    0x1(%edi),%edi
50b872:	88 48 01             	mov    %cl,0x1(%eax)
50b875:	88 57 ff             	mov    %dl,-0x1(%edi)
50b878:	83 ee 01             	sub    $0x1,%esi
50b87b:	75 ea                	jne    0x50b867
50b87d:	5f                   	pop    %edi
50b87e:	5e                   	pop    %esi
50b87f:	c3                   	ret
50b880:	56                   	push   %esi
50b881:	57                   	push   %edi
50b882:	6a 3e                	push   $0x3e
50b884:	68 98 ae 62 00       	push   $0x62ae98
50b889:	ff 74 24 18          	push   0x18(%esp)
50b88d:	e8 9e 88 fd ff       	call   0x4e4130
50b892:	8b 7c 24 18          	mov    0x18(%esp),%edi
50b896:	8b f0                	mov    %eax,%esi
50b898:	83 c4 0c             	add    $0xc,%esp
50b89b:	8b 47 04             	mov    0x4(%edi),%eax
50b89e:	85 c0                	test   %eax,%eax
50b8a0:	74 28                	je     0x50b8ca
50b8a2:	85 f6                	test   %esi,%esi
50b8a4:	74 24                	je     0x50b8ca
50b8a6:	ff 37                	push   (%edi)
50b8a8:	50                   	push   %eax
50b8a9:	56                   	push   %esi
50b8aa:	e8 21 75 0c 00       	call   0x5d2dd0
50b8af:	6a 42                	push   $0x42
50b8b1:	68 98 ae 62 00       	push   $0x62ae98
50b8b6:	ff 37                	push   (%edi)
50b8b8:	ff 77 04             	push   0x4(%edi)
50b8bb:	e8 30 88 fd ff       	call   0x4e40f0
50b8c0:	83 c4 1c             	add    $0x1c,%esp
50b8c3:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
50b8ca:	5f                   	pop    %edi
50b8cb:	8b c6                	mov    %esi,%eax
50b8cd:	5e                   	pop    %esi
50b8ce:	c3                   	ret
50b8cf:	cc                   	int3
50b8d0:	53                   	push   %ebx
50b8d1:	56                   	push   %esi
50b8d2:	8b 74 24 0c          	mov    0xc(%esp),%esi
50b8d6:	57                   	push   %edi
50b8d7:	85 f6                	test   %esi,%esi
50b8d9:	74 3e                	je     0x50b919
50b8db:	8b 7c 24 14          	mov    0x14(%esp),%edi
50b8df:	8b c7                	mov    %edi,%eax
50b8e1:	99                   	cltd
50b8e2:	83 e2 07             	and    $0x7,%edx
50b8e5:	8d 1c 02             	lea    (%edx,%eax,1),%ebx
50b8e8:	c1 fb 03             	sar    $0x3,%ebx
50b8eb:	8d 4b 01             	lea    0x1(%ebx),%ecx
50b8ee:	39 0e                	cmp    %ecx,(%esi)
50b8f0:	7c 27                	jl     0x50b919
50b8f2:	8b 56 08             	mov    0x8(%esi),%edx
50b8f5:	85 d2                	test   %edx,%edx
50b8f7:	74 20                	je     0x50b919
50b8f9:	83 e7 07             	and    $0x7,%edi
50b8fc:	b9 07 00 00 00       	mov    $0x7,%ecx
50b901:	2b cf                	sub    %edi,%ecx
50b903:	b8 01 00 00 00       	mov    $0x1,%eax
50b908:	d3 e0                	shl    %cl,%eax
50b90a:	84 04 1a             	test   %al,(%edx,%ebx,1)
50b90d:	b8 00 00 00 00       	mov    $0x0,%eax
50b912:	5f                   	pop    %edi
50b913:	5e                   	pop    %esi
50b914:	0f 95 c0             	setne  %al
50b917:	5b                   	pop    %ebx
50b918:	c3                   	ret
50b919:	5f                   	pop    %edi
50b91a:	5e                   	pop    %esi
50b91b:	33 c0                	xor    %eax,%eax
50b91d:	5b                   	pop    %ebx
50b91e:	c3                   	ret
50b91f:	cc                   	int3
50b920:	e9 1b e9 ff ff       	jmp    0x50a240
50b925:	cc                   	int3
50b926:	cc                   	int3
50b927:	cc                   	int3
50b928:	cc                   	int3
50b929:	cc                   	int3
50b92a:	cc                   	int3
50b92b:	cc                   	int3
50b92c:	cc                   	int3
50b92d:	cc                   	int3
50b92e:	cc                   	int3
50b92f:	cc                   	int3
50b930:	b8 04 00 00 00       	mov    $0x4,%eax
50b935:	e8 76 5e 0c 00       	call   0x5d17b0
50b93a:	56                   	push   %esi
50b93b:	8b 74 24 10          	mov    0x10(%esp),%esi
50b93f:	b9 07 00 00 00       	mov    $0x7,%ecx
50b944:	8b c6                	mov    %esi,%eax
50b946:	83 e6 07             	and    $0x7,%esi
50b949:	99                   	cltd
50b94a:	2b ce                	sub    %esi,%ecx
50b94c:	83 e2 07             	and    $0x7,%edx
50b94f:	03 c2                	add    %edx,%eax
50b951:	ba 01 00 00 00       	mov    $0x1,%edx
50b956:	d3 e2                	shl    %cl,%edx
50b958:	8b ca                	mov    %edx,%ecx
50b95a:	c1 f8 03             	sar    $0x3,%eax
50b95d:	f7 d1                	not    %ecx
50b95f:	89 4c 24 10          	mov    %ecx,0x10(%esp)
50b963:	33 c9                	xor    %ecx,%ecx
50b965:	39 4c 24 14          	cmp    %ecx,0x14(%esp)
50b969:	57                   	push   %edi
50b96a:	8b 7c 24 10          	mov    0x10(%esp),%edi
50b96e:	0f 45 ca             	cmovne %edx,%ecx
50b971:	89 44 24 10          	mov    %eax,0x10(%esp)
50b975:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50b979:	85 ff                	test   %edi,%edi
50b97b:	75 06                	jne    0x50b983
50b97d:	5f                   	pop    %edi
50b97e:	33 c0                	xor    %eax,%eax
50b980:	5e                   	pop    %esi
50b981:	59                   	pop    %ecx
50b982:	c3                   	ret
50b983:	83 67 0c f0          	andl   $0xfffffff0,0xc(%edi)
50b987:	8d 77 08             	lea    0x8(%edi),%esi
50b98a:	8b 0f                	mov    (%edi),%ecx
50b98c:	53                   	push   %ebx
50b98d:	55                   	push   %ebp
50b98e:	8d 68 01             	lea    0x1(%eax),%ebp
50b991:	3b cd                	cmp    %ebp,%ecx
50b993:	7c 06                	jl     0x50b99b
50b995:	8b 1e                	mov    (%esi),%ebx
50b997:	85 db                	test   %ebx,%ebx
50b999:	75 6e                	jne    0x50ba09
50b99b:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
50b9a0:	0f 84 8b 00 00 00    	je     0x50ba31
50b9a6:	68 a5 00 00 00       	push   $0xa5
50b9ab:	68 b0 ae 62 00       	push   $0x62aeb0
50b9b0:	55                   	push   %ebp
50b9b1:	51                   	push   %ecx
50b9b2:	ff 36                	push   (%esi)
50b9b4:	e8 d7 4e fd ff       	call   0x4e0890
50b9b9:	8b d8                	mov    %eax,%ebx
50b9bb:	83 c4 14             	add    $0x14,%esp
50b9be:	85 db                	test   %ebx,%ebx
50b9c0:	75 23                	jne    0x50b9e5
50b9c2:	68 a7 00 00 00       	push   $0xa7
50b9c7:	68 b0 ae 62 00       	push   $0x62aeb0
50b9cc:	6a 41                	push   $0x41
50b9ce:	68 b7 00 00 00       	push   $0xb7
50b9d3:	6a 0d                	push   $0xd
50b9d5:	e8 a6 d5 fc ff       	call   0x4d8f80
50b9da:	83 c4 14             	add    $0x14,%esp
50b9dd:	33 c0                	xor    %eax,%eax
50b9df:	5d                   	pop    %ebp
50b9e0:	5b                   	pop    %ebx
50b9e1:	5f                   	pop    %edi
50b9e2:	5e                   	pop    %esi
50b9e3:	59                   	pop    %ecx
50b9e4:	c3                   	ret
50b9e5:	8b 44 24 18          	mov    0x18(%esp),%eax
50b9e9:	8b 17                	mov    (%edi),%edx
50b9eb:	2b c2                	sub    %edx,%eax
50b9ed:	40                   	inc    %eax
50b9ee:	85 c0                	test   %eax,%eax
50b9f0:	7e 0f                	jle    0x50ba01
50b9f2:	50                   	push   %eax
50b9f3:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
50b9f6:	6a 00                	push   $0x0
50b9f8:	50                   	push   %eax
50b9f9:	e8 72 72 0c 00       	call   0x5d2c70
50b9fe:	83 c4 0c             	add    $0xc,%esp
50ba01:	8b 44 24 18          	mov    0x18(%esp),%eax
50ba05:	89 1e                	mov    %ebx,(%esi)
50ba07:	89 2f                	mov    %ebp,(%edi)
50ba09:	8a 04 03             	mov    (%ebx,%eax,1),%al
50ba0c:	22 44 24 1c          	and    0x1c(%esp),%al
50ba10:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50ba14:	0a 44 24 10          	or     0x10(%esp),%al
50ba18:	88 04 0b             	mov    %al,(%ebx,%ecx,1)
50ba1b:	8b 07                	mov    (%edi),%eax
50ba1d:	85 c0                	test   %eax,%eax
50ba1f:	7e 10                	jle    0x50ba31
50ba21:	8b 0e                	mov    (%esi),%ecx
50ba23:	80 7c 01 ff 00       	cmpb   $0x0,-0x1(%ecx,%eax,1)
50ba28:	75 07                	jne    0x50ba31
50ba2a:	48                   	dec    %eax
50ba2b:	89 07                	mov    %eax,(%edi)
50ba2d:	85 c0                	test   %eax,%eax
50ba2f:	7f f2                	jg     0x50ba23
50ba31:	5d                   	pop    %ebp
50ba32:	5b                   	pop    %ebx
50ba33:	5f                   	pop    %edi
50ba34:	b8 01 00 00 00       	mov    $0x1,%eax
50ba39:	5e                   	pop    %esi
50ba3a:	59                   	pop    %ecx
50ba3b:	c3                   	ret
50ba3c:	cc                   	int3
50ba3d:	cc                   	int3
50ba3e:	cc                   	int3
50ba3f:	cc                   	int3
50ba40:	b8 04 00 00 00       	mov    $0x4,%eax
50ba45:	e8 66 5d 0c 00       	call   0x5d17b0
50ba4a:	53                   	push   %ebx
50ba4b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
50ba4f:	55                   	push   %ebp
50ba50:	56                   	push   %esi
50ba51:	33 f6                	xor    %esi,%esi
50ba53:	57                   	push   %edi
50ba54:	8b 7c 24 18          	mov    0x18(%esp),%edi
50ba58:	83 fb 01             	cmp    $0x1,%ebx
50ba5b:	7d 07                	jge    0x50ba64
50ba5d:	b8 98 00 00 00       	mov    $0x98,%eax
50ba62:	eb 64                	jmp    0x50bac8
50ba64:	85 ff                	test   %edi,%edi
50ba66:	74 06                	je     0x50ba6e
50ba68:	8b 37                	mov    (%edi),%esi
50ba6a:	85 f6                	test   %esi,%esi
50ba6c:	75 0b                	jne    0x50ba79
50ba6e:	e8 2d fd fd ff       	call   0x4eb7a0
50ba73:	8b f0                	mov    %eax,%esi
50ba75:	85 f6                	test   %esi,%esi
50ba77:	74 7a                	je     0x50baf3
50ba79:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
50ba7d:	8b 6d 00             	mov    0x0(%ebp),%ebp
50ba80:	0f b6 4d 00          	movzbl 0x0(%ebp),%ecx
50ba84:	45                   	inc    %ebp
50ba85:	89 4c 24 10          	mov    %ecx,0x10(%esp)
50ba89:	83 f9 07             	cmp    $0x7,%ecx
50ba8c:	76 07                	jbe    0x50ba95
50ba8e:	b8 dc 00 00 00       	mov    $0xdc,%eax
50ba93:	eb 33                	jmp    0x50bac8
50ba95:	8b 46 0c             	mov    0xc(%esi),%eax
50ba98:	83 e0 f8             	and    $0xfffffff8,%eax
50ba9b:	0b c1                	or     %ecx,%eax
50ba9d:	83 c8 08             	or     $0x8,%eax
50baa0:	89 46 0c             	mov    %eax,0xc(%esi)
50baa3:	8b c3                	mov    %ebx,%eax
50baa5:	4b                   	dec    %ebx
50baa6:	83 f8 01             	cmp    $0x1,%eax
50baa9:	7e 6f                	jle    0x50bb1a
50baab:	6a 75                	push   $0x75
50baad:	68 b0 ae 62 00       	push   $0x62aeb0
50bab2:	53                   	push   %ebx
50bab3:	e8 98 4c fd ff       	call   0x4e0750
50bab8:	83 c4 0c             	add    $0xc,%esp
50babb:	89 44 24 20          	mov    %eax,0x20(%esp)
50babf:	85 c0                	test   %eax,%eax
50bac1:	75 38                	jne    0x50bafb
50bac3:	b8 41 00 00 00       	mov    $0x41,%eax