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
50bac8:	68 89 00 00 00       	push   $0x89
50bacd:	68 b0 ae 62 00       	push   $0x62aeb0
50bad2:	50                   	push   %eax
50bad3:	68 bd 00 00 00       	push   $0xbd
50bad8:	6a 0d                	push   $0xd
50bada:	e8 a1 d4 fc ff       	call   0x4d8f80
50badf:	83 c4 14             	add    $0x14,%esp
50bae2:	85 ff                	test   %edi,%edi
50bae4:	74 04                	je     0x50baea
50bae6:	39 37                	cmp    %esi,(%edi)
50bae8:	74 09                	je     0x50baf3
50baea:	56                   	push   %esi
50baeb:	e8 90 fc fd ff       	call   0x4eb780
50baf0:	83 c4 04             	add    $0x4,%esp
50baf3:	5f                   	pop    %edi
50baf4:	5e                   	pop    %esi
50baf5:	5d                   	pop    %ebp
50baf6:	33 c0                	xor    %eax,%eax
50baf8:	5b                   	pop    %ebx
50baf9:	59                   	pop    %ecx
50bafa:	c3                   	ret
50bafb:	53                   	push   %ebx
50bafc:	55                   	push   %ebp
50bafd:	50                   	push   %eax
50bafe:	e8 cd 72 0c 00       	call   0x5d2dd0
50bb03:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
50bb07:	0c ff                	or     $0xff,%al
50bb09:	d2 e0                	shl    %cl,%al
50bb0b:	83 c4 0c             	add    $0xc,%esp
50bb0e:	8b 4c 24 20          	mov    0x20(%esp),%ecx
50bb12:	20 44 19 ff          	and    %al,-0x1(%ecx,%ebx,1)
50bb16:	03 eb                	add    %ebx,%ebp
50bb18:	eb 08                	jmp    0x50bb22
50bb1a:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
50bb21:	00
50bb22:	68 81 00 00 00       	push   $0x81
50bb27:	68 b0 ae 62 00       	push   $0x62aeb0
50bb2c:	ff 76 08             	push   0x8(%esi)
50bb2f:	89 1e                	mov    %ebx,(%esi)
50bb31:	e8 4a 4c fd ff       	call   0x4e0780
50bb36:	8b 44 24 2c          	mov    0x2c(%esp),%eax
50bb3a:	83 c4 0c             	add    $0xc,%esp
50bb3d:	89 46 08             	mov    %eax,0x8(%esi)
50bb40:	c7 46 04 03 00 00 00 	movl   $0x3,0x4(%esi)
50bb47:	85 ff                	test   %edi,%edi
50bb49:	74 02                	je     0x50bb4d
50bb4b:	89 37                	mov    %esi,(%edi)
50bb4d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50bb51:	5f                   	pop    %edi
50bb52:	89 28                	mov    %ebp,(%eax)
50bb54:	8b c6                	mov    %esi,%eax
50bb56:	5e                   	pop    %esi
50bb57:	5d                   	pop    %ebp
50bb58:	5b                   	pop    %ebx
50bb59:	59                   	pop    %ecx
50bb5a:	c3                   	ret
50bb5b:	cc                   	int3
50bb5c:	cc                   	int3
50bb5d:	cc                   	int3
50bb5e:	cc                   	int3
50bb5f:	cc                   	int3
50bb60:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50bb64:	85 c9                	test   %ecx,%ecx
50bb66:	75 03                	jne    0x50bb6b
50bb68:	33 c0                	xor    %eax,%eax
50bb6a:	c3                   	ret
50bb6b:	53                   	push   %ebx
50bb6c:	56                   	push   %esi
50bb6d:	8b 31                	mov    (%ecx),%esi
50bb6f:	85 f6                	test   %esi,%esi
50bb71:	7e 79                	jle    0x50bbec
50bb73:	8b 59 0c             	mov    0xc(%ecx),%ebx
50bb76:	f6 c3 08             	test   $0x8,%bl
50bb79:	74 05                	je     0x50bb80
50bb7b:	83 e3 07             	and    $0x7,%ebx
50bb7e:	eb 6e                	jmp    0x50bbee
50bb80:	8b 51 08             	mov    0x8(%ecx),%edx
50bb83:	8d 46 ff             	lea    -0x1(%esi),%eax
50bb86:	03 c2                	add    %edx,%eax
50bb88:	80 38 00             	cmpb   $0x0,(%eax)
50bb8b:	75 06                	jne    0x50bb93
50bb8d:	4e                   	dec    %esi
50bb8e:	48                   	dec    %eax
50bb8f:	85 f6                	test   %esi,%esi
50bb91:	7f f5                	jg     0x50bb88
50bb93:	0f b6 44 32 ff       	movzbl -0x1(%edx,%esi,1),%eax
50bb98:	a8 01                	test   $0x1,%al
50bb9a:	75 50                	jne    0x50bbec
50bb9c:	a8 02                	test   $0x2,%al
50bb9e:	74 07                	je     0x50bba7
50bba0:	bb 01 00 00 00       	mov    $0x1,%ebx
50bba5:	eb 47                	jmp    0x50bbee
50bba7:	a8 04                	test   $0x4,%al
50bba9:	74 07                	je     0x50bbb2
50bbab:	bb 02 00 00 00       	mov    $0x2,%ebx
50bbb0:	eb 3c                	jmp    0x50bbee
50bbb2:	a8 08                	test   $0x8,%al
50bbb4:	74 07                	je     0x50bbbd
50bbb6:	bb 03 00 00 00       	mov    $0x3,%ebx
50bbbb:	eb 31                	jmp    0x50bbee
50bbbd:	a8 10                	test   $0x10,%al
50bbbf:	74 07                	je     0x50bbc8
50bbc1:	bb 04 00 00 00       	mov    $0x4,%ebx
50bbc6:	eb 26                	jmp    0x50bbee
50bbc8:	a8 20                	test   $0x20,%al
50bbca:	74 07                	je     0x50bbd3
50bbcc:	bb 05 00 00 00       	mov    $0x5,%ebx
50bbd1:	eb 1b                	jmp    0x50bbee
50bbd3:	a8 40                	test   $0x40,%al
50bbd5:	74 07                	je     0x50bbde
50bbd7:	bb 06 00 00 00       	mov    $0x6,%ebx
50bbdc:	eb 10                	jmp    0x50bbee
50bbde:	24 80                	and    $0x80,%al
50bbe0:	0f b6 d8             	movzbl %al,%ebx
50bbe3:	f7 db                	neg    %ebx
50bbe5:	1b db                	sbb    %ebx,%ebx
50bbe7:	83 e3 07             	and    $0x7,%ebx
50bbea:	eb 02                	jmp    0x50bbee
50bbec:	33 db                	xor    %ebx,%ebx
50bbee:	55                   	push   %ebp
50bbef:	8b 6c 24 14          	mov    0x14(%esp),%ebp
50bbf3:	8d 46 01             	lea    0x1(%esi),%eax
50bbf6:	89 44 24 10          	mov    %eax,0x10(%esp)
50bbfa:	85 ed                	test   %ebp,%ebp
50bbfc:	74 2b                	je     0x50bc29
50bbfe:	57                   	push   %edi
50bbff:	8b 7d 00             	mov    0x0(%ebp),%edi
50bc02:	88 1f                	mov    %bl,(%edi)
50bc04:	47                   	inc    %edi
50bc05:	85 f6                	test   %esi,%esi
50bc07:	7e 1c                	jle    0x50bc25
50bc09:	56                   	push   %esi
50bc0a:	ff 71 08             	push   0x8(%ecx)
50bc0d:	57                   	push   %edi
50bc0e:	e8 bd 71 0c 00       	call   0x5d2dd0
50bc13:	0c ff                	or     $0xff,%al
50bc15:	03 fe                	add    %esi,%edi
50bc17:	8b cb                	mov    %ebx,%ecx
50bc19:	83 c4 0c             	add    $0xc,%esp
50bc1c:	d2 e0                	shl    %cl,%al
50bc1e:	20 47 ff             	and    %al,-0x1(%edi)
50bc21:	8b 44 24 14          	mov    0x14(%esp),%eax
50bc25:	89 7d 00             	mov    %edi,0x0(%ebp)
50bc28:	5f                   	pop    %edi
50bc29:	5d                   	pop    %ebp
50bc2a:	5e                   	pop    %esi
50bc2b:	5b                   	pop    %ebx
50bc2c:	c3                   	ret
50bc2d:	cc                   	int3
50bc2e:	cc                   	int3
50bc2f:	cc                   	int3
50bc30:	57                   	push   %edi
50bc31:	8b 7c 24 08          	mov    0x8(%esp),%edi
50bc35:	83 3f 04             	cmpl   $0x4,(%edi)
50bc38:	75 36                	jne    0x50bc70
50bc3a:	8b 47 04             	mov    0x4(%edi),%eax
50bc3d:	85 c0                	test   %eax,%eax
50bc3f:	74 2f                	je     0x50bc70
50bc41:	56                   	push   %esi
50bc42:	50                   	push   %eax
50bc43:	e8 08 b6 fd ff       	call   0x4e7250
50bc48:	ff 77 04             	push   0x4(%edi)
50bc4b:	8b f0                	mov    %eax,%esi
50bc4d:	e8 6e 44 fe ff       	call   0x4f00c0
50bc52:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
50bc56:	8b f8                	mov    %eax,%edi
50bc58:	3b f9                	cmp    %ecx,%edi
50bc5a:	0f 4c cf             	cmovl  %edi,%ecx
50bc5d:	51                   	push   %ecx
50bc5e:	56                   	push   %esi
50bc5f:	ff 74 24 20          	push   0x20(%esp)
50bc63:	e8 68 71 0c 00       	call   0x5d2dd0
50bc68:	83 c4 14             	add    $0x14,%esp
50bc6b:	8b c7                	mov    %edi,%eax
50bc6d:	5e                   	pop    %esi