495786:	66 3b c1             	cmp    %cx,%ax
495789:	77 b9                	ja     0x495744
49578b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
49578f:	8d 45 f8             	lea    -0x8(%ebp),%eax
495792:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
495796:	50                   	push   %eax
495797:	0f b7 c2             	movzwl %dx,%eax
49579a:	25 ff 23 ff ff       	and    $0xffff23ff,%eax
49579f:	03 06                	add    (%esi),%eax
4957a1:	50                   	push   %eax
4957a2:	ff 75 08             	push   0x8(%ebp)
4957a5:	e8 60 d4 ff ff       	call   0x492c0a
4957aa:	56                   	push   %esi
4957ab:	50                   	push   %eax
4957ac:	e8 eb f6 ff ff       	call   0x494e9c
4957b1:	83 c4 18             	add    $0x18,%esp
4957b4:	5f                   	pop    %edi
4957b5:	5e                   	pop    %esi
4957b6:	c9                   	leave
4957b7:	c3                   	ret
4957b8:	8b ff                	mov    %edi,%edi
4957ba:	55                   	push   %ebp
4957bb:	8b ec                	mov    %esp,%ebp
4957bd:	56                   	push   %esi
4957be:	8b 75 14             	mov    0x14(%ebp),%esi
4957c1:	85 f6                	test   %esi,%esi
4957c3:	7e 0d                	jle    0x4957d2
4957c5:	56                   	push   %esi
4957c6:	ff 75 10             	push   0x10(%ebp)
4957c9:	e8 4d d3 fe ff       	call   0x482b1b
4957ce:	59                   	pop    %ecx
4957cf:	59                   	pop    %ecx
4957d0:	8b f0                	mov    %eax,%esi
4957d2:	8b 45 1c             	mov    0x1c(%ebp),%eax
4957d5:	85 c0                	test   %eax,%eax
4957d7:	7e 0b                	jle    0x4957e4
4957d9:	50                   	push   %eax
4957da:	ff 75 18             	push   0x18(%ebp)
4957dd:	e8 39 d3 fe ff       	call   0x482b1b
4957e2:	59                   	pop    %ecx
4957e3:	59                   	pop    %ecx
4957e4:	85 f6                	test   %esi,%esi
4957e6:	74 1e                	je     0x495806
4957e8:	85 c0                	test   %eax,%eax
4957ea:	74 1a                	je     0x495806
4957ec:	33 c9                	xor    %ecx,%ecx
4957ee:	51                   	push   %ecx
4957ef:	51                   	push   %ecx
4957f0:	51                   	push   %ecx
4957f1:	50                   	push   %eax
4957f2:	ff 75 18             	push   0x18(%ebp)
4957f5:	56                   	push   %esi
4957f6:	ff 75 10             	push   0x10(%ebp)
4957f9:	ff 75 0c             	push   0xc(%ebp)
4957fc:	ff 75 08             	push   0x8(%ebp)
4957ff:	e8 25 2f ff ff       	call   0x488729
495804:	eb 14                	jmp    0x49581a
495806:	2b f0                	sub    %eax,%esi
495808:	75 05                	jne    0x49580f
49580a:	6a 02                	push   $0x2
49580c:	5e                   	pop    %esi
49580d:	eb 09                	jmp    0x495818
49580f:	c1 fe 1f             	sar    $0x1f,%esi
495812:	83 e6 fe             	and    $0xfffffffe,%esi
495815:	83 c6 03             	add    $0x3,%esi
495818:	8b c6                	mov    %esi,%eax
49581a:	5e                   	pop    %esi
49581b:	5d                   	pop    %ebp
49581c:	c3                   	ret
49581d:	cc                   	int3
49581e:	cc                   	int3
49581f:	cc                   	int3
495820:	56                   	push   %esi
495821:	8b 35 44 8c 4c 00    	mov    0x4c8c44,%esi
495827:	8b ce                	mov    %esi,%ecx
495829:	ff 15 d4 e2 49 00    	call   *0x49e2d4
49582f:	ff d6                	call   *%esi
495831:	33 c0                	xor    %eax,%eax
495833:	40                   	inc    %eax
495834:	5e                   	pop    %esi
495835:	c3                   	ret
495836:	55                   	push   %ebp
495837:	8b ec                	mov    %esp,%ebp
495839:	51                   	push   %ecx
49583a:	56                   	push   %esi
49583b:	6a 01                	push   $0x1
49583d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
495840:	e8 82 2f fd ff       	call   0x4687c7
495845:	8b 35 44 8c 4c 00    	mov    0x4c8c44,%esi
49584b:	8b 4d 08             	mov    0x8(%ebp),%ecx
49584e:	89 0d 44 8c 4c 00    	mov    %ecx,0x4c8c44
495854:	f7 d9                	neg    %ecx
495856:	1b c9                	sbb    %ecx,%ecx
495858:	81 e1 20 58 49 00    	and    $0x495820,%ecx
49585e:	51                   	push   %ecx
49585f:	e8 7b f9 fe ff       	call   0x4851df
495864:	59                   	pop    %ecx
495865:	8d 4d fc             	lea    -0x4(%ebp),%ecx
495868:	e8 b2 2f fd ff       	call   0x46881f
49586d:	8b c6                	mov    %esi,%eax
49586f:	5e                   	pop    %esi
495870:	c9                   	leave
495871:	c3                   	ret
495872:	cc                   	int3
495873:	cc                   	int3
495874:	cc                   	int3
495875:	cc                   	int3
495876:	cc                   	int3
495877:	cc                   	int3
495878:	cc                   	int3
495879:	cc                   	int3
49587a:	cc                   	int3
49587b:	cc                   	int3
49587c:	cc                   	int3
49587d:	cc                   	int3
49587e:	cc                   	int3
49587f:	cc                   	int3
495880:	55                   	push   %ebp
495881:	8b ec                	mov    %esp,%ebp
495883:	8b 45 08             	mov    0x8(%ebp),%eax
495886:	33 d2                	xor    %edx,%edx
495888:	53                   	push   %ebx
495889:	56                   	push   %esi
49588a:	57                   	push   %edi
49588b:	8b 48 3c             	mov    0x3c(%eax),%ecx
49588e:	03 c8                	add    %eax,%ecx
495890:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
495894:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
495898:	83 c0 18             	add    $0x18,%eax
49589b:	03 c1                	add    %ecx,%eax
49589d:	85 db                	test   %ebx,%ebx
49589f:	74 1b                	je     0x4958bc
4958a1:	8b 7d 0c             	mov    0xc(%ebp),%edi
4958a4:	8b 70 0c             	mov    0xc(%eax),%esi
4958a7:	3b fe                	cmp    %esi,%edi
4958a9:	72 09                	jb     0x4958b4
4958ab:	8b 48 08             	mov    0x8(%eax),%ecx
4958ae:	03 ce                	add    %esi,%ecx
4958b0:	3b f9                	cmp    %ecx,%edi
4958b2:	72 0a                	jb     0x4958be
4958b4:	42                   	inc    %edx
4958b5:	83 c0 28             	add    $0x28,%eax
4958b8:	3b d3                	cmp    %ebx,%edx
4958ba:	72 e8                	jb     0x4958a4
4958bc:	33 c0                	xor    %eax,%eax
4958be:	5f                   	pop    %edi
4958bf:	5e                   	pop    %esi
4958c0:	5b                   	pop    %ebx
4958c1:	5d                   	pop    %ebp
4958c2:	c3                   	ret
4958c3:	cc                   	int3
4958c4:	cc                   	int3
4958c5:	cc                   	int3
4958c6:	cc                   	int3
4958c7:	cc                   	int3
4958c8:	cc                   	int3
4958c9:	cc                   	int3
4958ca:	cc                   	int3
4958cb:	cc                   	int3
4958cc:	cc                   	int3
4958cd:	cc                   	int3
4958ce:	cc                   	int3
4958cf:	cc                   	int3
4958d0:	55                   	push   %ebp
4958d1:	8b ec                	mov    %esp,%ebp
4958d3:	6a fe                	push   $0xfffffffe
4958d5:	68 10 1c 4c 00       	push   $0x4c1c10
4958da:	68 10 b0 46 00       	push   $0x46b010
4958df:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4958e5:	50                   	push   %eax
4958e6:	83 ec 08             	sub    $0x8,%esp
4958e9:	53                   	push   %ebx
4958ea:	56                   	push   %esi
4958eb:	57                   	push   %edi
4958ec:	a1 14 40 4c 00       	mov    0x4c4014,%eax
4958f1:	31 45 f8             	xor    %eax,-0x8(%ebp)
4958f4:	33 c5                	xor    %ebp,%eax
4958f6:	50                   	push   %eax
4958f7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4958fa:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
495900:	89 65 e8             	mov    %esp,-0x18(%ebp)
495903:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
49590a:	68 00 00 40 00       	push   $0x400000
49590f:	e8 7c 00 00 00       	call   0x495990
495914:	83 c4 04             	add    $0x4,%esp
495917:	85 c0                	test   %eax,%eax
495919:	74 54                	je     0x49596f
49591b:	8b 45 08             	mov    0x8(%ebp),%eax
49591e:	2d 00 00 40 00       	sub    $0x400000,%eax
495923:	50                   	push   %eax
495924:	68 00 00 40 00       	push   $0x400000
495929:	e8 52 ff ff ff       	call   0x495880
49592e:	83 c4 08             	add    $0x8,%esp
495931:	85 c0                	test   %eax,%eax
495933:	74 3a                	je     0x49596f
495935:	8b 40 24             	mov    0x24(%eax),%eax
495938:	c1 e8 1f             	shr    $0x1f,%eax
49593b:	f7 d0                	not    %eax
49593d:	83 e0 01             	and    $0x1,%eax
495940:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
495947:	8b 4d f0             	mov    -0x10(%ebp),%ecx
49594a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
495951:	59                   	pop    %ecx
495952:	5f                   	pop    %edi
495953:	5e                   	pop    %esi
495954:	5b                   	pop    %ebx
495955:	8b e5                	mov    %ebp,%esp
495957:	5d                   	pop    %ebp
495958:	c3                   	ret
495959:	8b 45 ec             	mov    -0x14(%ebp),%eax
49595c:	8b 00                	mov    (%eax),%eax
49595e:	33 c9                	xor    %ecx,%ecx
495960:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
495966:	0f 94 c1             	sete   %cl
495969:	8b c1                	mov    %ecx,%eax
49596b:	c3                   	ret
49596c:	8b 65 e8             	mov    -0x18(%ebp),%esp
49596f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
495976:	33 c0                	xor    %eax,%eax
495978:	8b 4d f0             	mov    -0x10(%ebp),%ecx
49597b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
495982:	59                   	pop    %ecx
495983:	5f                   	pop    %edi
495984:	5e                   	pop    %esi
495985:	5b                   	pop    %ebx
495986:	8b e5                	mov    %ebp,%esp
495988:	5d                   	pop    %ebp
495989:	c3                   	ret
49598a:	cc                   	int3
49598b:	cc                   	int3
49598c:	cc                   	int3
49598d:	cc                   	int3
49598e:	cc                   	int3
49598f:	cc                   	int3
495990:	55                   	push   %ebp
495991:	8b ec                	mov    %esp,%ebp
495993:	8b 45 08             	mov    0x8(%ebp),%eax
495996:	b9 4d 5a 00 00       	mov    $0x5a4d,%ecx
49599b:	66 39 08             	cmp    %cx,(%eax)
49599e:	75 1d                	jne    0x4959bd
4959a0:	8b 48 3c             	mov    0x3c(%eax),%ecx
4959a3:	03 c8                	add    %eax,%ecx
4959a5:	81 39 50 45 00 00    	cmpl   $0x4550,(%ecx)
4959ab:	75 10                	jne    0x4959bd
4959ad:	ba 0b 01 00 00       	mov    $0x10b,%edx
4959b2:	33 c0                	xor    %eax,%eax
4959b4:	66 39 51 18          	cmp    %dx,0x18(%ecx)
4959b8:	0f 94 c0             	sete   %al
4959bb:	5d                   	pop    %ebp
4959bc:	c3                   	ret
4959bd:	33 c0                	xor    %eax,%eax
4959bf:	5d                   	pop    %ebp
4959c0:	c3                   	ret
4959c1:	cc                   	int3
4959c2:	cc                   	int3
4959c3:	cc                   	int3
4959c4:	cc                   	int3
4959c5:	cc                   	int3
4959c6:	cc                   	int3
4959c7:	cc                   	int3
4959c8:	cc                   	int3
4959c9:	cc                   	int3
4959ca:	cc                   	int3
4959cb:	cc                   	int3
4959cc:	cc                   	int3
4959cd:	cc                   	int3
4959ce:	cc                   	int3
4959cf:	cc                   	int3
4959d0:	53                   	push   %ebx
4959d1:	8b 44 24 14          	mov    0x14(%esp),%eax
4959d5:	0b c0                	or     %eax,%eax
4959d7:	75 18                	jne    0x4959f1
4959d9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4959dd:	8b 44 24 0c          	mov    0xc(%esp),%eax
4959e1:	33 d2                	xor    %edx,%edx
4959e3:	f7 f1                	div    %ecx
4959e5:	8b 44 24 08          	mov    0x8(%esp),%eax
4959e9:	f7 f1                	div    %ecx
4959eb:	8b c2                	mov    %edx,%eax
4959ed:	33 d2                	xor    %edx,%edx
4959ef:	eb 50                	jmp    0x495a41
4959f1:	8b c8                	mov    %eax,%ecx
4959f3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4959f7:	8b 54 24 0c          	mov    0xc(%esp),%edx
4959fb:	8b 44 24 08          	mov    0x8(%esp),%eax
4959ff:	d1 e9                	shr    $1,%ecx
495a01:	d1 db                	rcr    $1,%ebx
495a03:	d1 ea                	shr    $1,%edx
495a05:	d1 d8                	rcr    $1,%eax
495a07:	0b c9                	or     %ecx,%ecx
495a09:	75 f4                	jne    0x4959ff
495a0b:	f7 f3                	div    %ebx
495a0d:	8b c8                	mov    %eax,%ecx
495a0f:	f7 64 24 14          	mull   0x14(%esp)
495a13:	91                   	xchg   %eax,%ecx
495a14:	f7 64 24 10          	mull   0x10(%esp)
495a18:	03 d1                	add    %ecx,%edx
495a1a:	72 0e                	jb     0x495a2a
495a1c:	3b 54 24 0c          	cmp    0xc(%esp),%edx
495a20:	77 08                	ja     0x495a2a
495a22:	72 0e                	jb     0x495a32
495a24:	3b 44 24 08          	cmp    0x8(%esp),%eax
495a28:	76 08                	jbe    0x495a32
495a2a:	2b 44 24 10          	sub    0x10(%esp),%eax
495a2e:	1b 54 24 14          	sbb    0x14(%esp),%edx
495a32:	2b 44 24 08          	sub    0x8(%esp),%eax
495a36:	1b 54 24 0c          	sbb    0xc(%esp),%edx
495a3a:	f7 da                	neg    %edx
495a3c:	f7 d8                	neg    %eax
495a3e:	83 da 00             	sbb    $0x0,%edx
495a41:	5b                   	pop    %ebx
495a42:	c2 10 00             	ret    $0x10
495a45:	cc                   	int3
495a46:	cc                   	int3
495a47:	cc                   	int3
495a48:	cc                   	int3
495a49:	cc                   	int3
495a4a:	cc                   	int3
495a4b:	cc                   	int3
495a4c:	cc                   	int3
495a4d:	cc                   	int3
495a4e:	cc                   	int3
495a4f:	cc                   	int3
495a50:	80 f9 40             	cmp    $0x40,%cl
495a53:	73 15                	jae    0x495a6a
495a55:	80 f9 20             	cmp    $0x20,%cl
495a58:	73 06                	jae    0x495a60
495a5a:	0f a5 c2             	shld   %cl,%eax,%edx
495a5d:	d3 e0                	shl    %cl,%eax
495a5f:	c3                   	ret
495a60:	8b d0                	mov    %eax,%edx
495a62:	33 c0                	xor    %eax,%eax
495a64:	80 e1 1f             	and    $0x1f,%cl
495a67:	d3 e2                	shl    %cl,%edx
495a69:	c3                   	ret
495a6a:	33 c0                	xor    %eax,%eax
495a6c:	33 d2                	xor    %edx,%edx
495a6e:	c3                   	ret
495a6f:	cc                   	int3
495a70:	80 f9 40             	cmp    $0x40,%cl
495a73:	73 15                	jae    0x495a8a
495a75:	80 f9 20             	cmp    $0x20,%cl
495a78:	73 06                	jae    0x495a80
495a7a:	0f ad d0             	shrd   %cl,%edx,%eax
495a7d:	d3 ea                	shr    %cl,%edx
495a7f:	c3                   	ret
495a80:	8b c2                	mov    %edx,%eax
495a82:	33 d2                	xor    %edx,%edx
495a84:	80 e1 1f             	and    $0x1f,%cl
495a87:	d3 e8                	shr    %cl,%eax