48f7cf:	50                   	push   %eax
48f7d0:	e8 ef fe ff ff       	call   0x48f6c4
48f7d5:	0f b7 c0             	movzwl %ax,%eax
48f7d8:	59                   	pop    %ecx
48f7d9:	59                   	pop    %ecx
48f7da:	66 85 c0             	test   %ax,%ax
48f7dd:	79 2b                	jns    0x48f80a
48f7df:	eb 20                	jmp    0x48f801
48f7e1:	d9 05 94 f0 40 00    	flds   0x40f094
48f7e7:	8d 45 08             	lea    0x8(%ebp),%eax
48f7ea:	51                   	push   %ecx
48f7eb:	d9 1c 24             	fstps  (%esp)
48f7ee:	50                   	push   %eax
48f7ef:	e8 d0 fe ff ff       	call   0x48f6c4
48f7f4:	59                   	pop    %ecx
48f7f5:	59                   	pop    %ecx
48f7f6:	0f b7 c0             	movzwl %ax,%eax
48f7f9:	33 c9                	xor    %ecx,%ecx
48f7fb:	66 3b c8             	cmp    %ax,%cx
48f7fe:	7e 0a                	jle    0x48f80a
48f800:	4b                   	dec    %ebx
48f801:	85 db                	test   %ebx,%ebx
48f803:	7f dc                	jg     0x48f7e1
48f805:	eb 03                	jmp    0x48f80a
48f807:	8b 45 fc             	mov    -0x4(%ebp),%eax
48f80a:	56                   	push   %esi
48f80b:	33 f6                	xor    %esi,%esi
48f80d:	46                   	inc    %esi
48f80e:	66 85 c0             	test   %ax,%ax
48f811:	74 05                	je     0x48f818
48f813:	66 3b c6             	cmp    %si,%ax
48f816:	75 15                	jne    0x48f82d
48f818:	ff 15 58 80 4a 00    	call   *0x4a8058
48f81e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
48f824:	8b 45 10             	mov    0x10(%ebp),%eax
48f827:	85 c0                	test   %eax,%eax
48f829:	74 02                	je     0x48f82d
48f82b:	09 30                	or     %esi,(%eax)
48f82d:	5e                   	pop    %esi
48f82e:	d9 45 08             	flds   0x8(%ebp)
48f831:	5b                   	pop    %ebx
48f832:	c9                   	leave
48f833:	c3                   	ret
48f834:	8b ff                	mov    %edi,%edi
48f836:	55                   	push   %ebp
48f837:	8b ec                	mov    %esp,%ebp
48f839:	5d                   	pop    %ebp
48f83a:	e9 96 01 00 00       	jmp    0x48f9d5
48f83f:	8b ff                	mov    %edi,%edi
48f841:	55                   	push   %ebp
48f842:	8b ec                	mov    %esp,%ebp
48f844:	83 ec 18             	sub    $0x18,%esp
48f847:	53                   	push   %ebx
48f848:	57                   	push   %edi
48f849:	8b 7d 08             	mov    0x8(%ebp),%edi
48f84c:	33 db                	xor    %ebx,%ebx
48f84e:	43                   	inc    %ebx
48f84f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48f852:	0f b7 47 06          	movzwl 0x6(%edi),%eax
48f856:	8b c8                	mov    %eax,%ecx
48f858:	83 e0 0f             	and    $0xf,%eax
48f85b:	81 e1 00 80 00 00    	and    $0x8000,%ecx
48f861:	8b d0                	mov    %eax,%edx
48f863:	89 4d e8             	mov    %ecx,-0x18(%ebp)
48f866:	8b c8                	mov    %eax,%ecx
48f868:	66 85 c9             	test   %cx,%cx
48f86b:	75 17                	jne    0x48f884
48f86d:	33 c0                	xor    %eax,%eax
48f86f:	66 39 47 04          	cmp    %ax,0x4(%edi)
48f873:	75 0f                	jne    0x48f884
48f875:	66 39 47 02          	cmp    %ax,0x2(%edi)
48f879:	75 09                	jne    0x48f884
48f87b:	66 39 07             	cmp    %ax,(%edi)
48f87e:	0f 84 43 01 00 00    	je     0x48f9c7
48f884:	c7 45 f4 10 00 00 00 	movl   $0x10,-0xc(%ebp)
48f88b:	8b c1                	mov    %ecx,%eax
48f88d:	56                   	push   %esi
48f88e:	66 85 c9             	test   %cx,%cx
48f891:	75 3b                	jne    0x48f8ce
48f893:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
48f897:	0f b7 57 02          	movzwl 0x2(%edi),%edx
48f89b:	0f b7 c1             	movzwl %cx,%eax
48f89e:	33 db                	xor    %ebx,%ebx
48f8a0:	0f b7 f1             	movzwl %cx,%esi
48f8a3:	8b ce                	mov    %esi,%ecx
48f8a5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48f8a8:	0f b7 ca             	movzwl %dx,%ecx
48f8ab:	0f b7 17             	movzwl (%edi),%edx
48f8ae:	66 89 1f             	mov    %bx,(%edi)
48f8b1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
48f8b4:	83 eb 10             	sub    $0x10,%ebx
48f8b7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48f8ba:	66 85 c0             	test   %ax,%ax
48f8bd:	74 dc                	je     0x48f89b
48f8bf:	66 89 4f 04          	mov    %cx,0x4(%edi)
48f8c3:	8b c6                	mov    %esi,%eax
48f8c5:	8b ce                	mov    %esi,%ecx
48f8c7:	66 89 57 02          	mov    %dx,0x2(%edi)
48f8cb:	0f b7 d1             	movzwl %cx,%edx
48f8ce:	0f b7 d2             	movzwl %dx,%edx
48f8d1:	8b f2                	mov    %edx,%esi
48f8d3:	0f b7 c8             	movzwl %ax,%ecx
48f8d6:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
48f8da:	0f 83 82 00 00 00    	jae    0x48f962
48f8e0:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48f8e4:	0f b7 57 04          	movzwl 0x4(%edi),%edx
48f8e8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48f8eb:	eb 03                	jmp    0x48f8f0
48f8ed:	8b 55 f8             	mov    -0x8(%ebp),%edx
48f8f0:	66 8b c2             	mov    %dx,%ax
48f8f3:	66 c1 e9 0f          	shr    $0xf,%cx
48f8f7:	66 c1 e8 0f          	shr    $0xf,%ax
48f8fb:	03 f6                	add    %esi,%esi
48f8fd:	66 0b f0             	or     %ax,%si
48f900:	0f b7 c6             	movzwl %si,%eax
48f903:	89 45 f0             	mov    %eax,-0x10(%ebp)
48f906:	0f b7 c6             	movzwl %si,%eax
48f909:	89 45 f4             	mov    %eax,-0xc(%ebp)
48f90c:	0f b7 c0             	movzwl %ax,%eax
48f90f:	89 45 ec             	mov    %eax,-0x14(%ebp)
48f912:	8d 04 12             	lea    (%edx,%edx,1),%eax
48f915:	0f b7 17             	movzwl (%edi),%edx
48f918:	66 0b c8             	or     %ax,%cx
48f91b:	0f b7 c1             	movzwl %cx,%eax
48f91e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48f921:	89 45 f8             	mov    %eax,-0x8(%ebp)
48f924:	03 c9                	add    %ecx,%ecx
48f926:	66 8b c2             	mov    %dx,%ax
48f929:	66 c1 e8 0f          	shr    $0xf,%ax
48f92d:	66 0b c8             	or     %ax,%cx
48f930:	8d 04 12             	lea    (%edx,%edx,1),%eax
48f933:	6a 10                	push   $0x10
48f935:	66 89 07             	mov    %ax,(%edi)
48f938:	4b                   	dec    %ebx
48f939:	58                   	pop    %eax
48f93a:	0f b7 c9             	movzwl %cx,%ecx
48f93d:	66 3b f0             	cmp    %ax,%si
48f940:	8b 75 f4             	mov    -0xc(%ebp),%esi
48f943:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48f946:	72 a5                	jb     0x48f8ed
48f948:	8b 45 f8             	mov    -0x8(%ebp),%eax
48f94b:	66 89 47 04          	mov    %ax,0x4(%edi)
48f94f:	8b 45 f0             	mov    -0x10(%ebp),%eax
48f952:	66 89 4f 02          	mov    %cx,0x2(%edi)
48f956:	0f b7 c8             	movzwl %ax,%ecx
48f959:	8b 45 ec             	mov    -0x14(%ebp),%eax
48f95c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48f95f:	0f b7 f0             	movzwl %ax,%esi
48f962:	6a 20                	push   $0x20
48f964:	0f b7 d6             	movzwl %si,%edx
48f967:	5e                   	pop    %esi
48f968:	0f b7 c1             	movzwl %cx,%eax
48f96b:	66 3b f1             	cmp    %cx,%si
48f96e:	77 53                	ja     0x48f9c3
48f970:	0f b7 77 02          	movzwl 0x2(%edi),%esi
48f974:	8b da                	mov    %edx,%ebx
48f976:	0f b7 57 04          	movzwl 0x4(%edi),%edx
48f97a:	66 8b 07             	mov    (%edi),%ax
48f97d:	8b ce                	mov    %esi,%ecx
48f97f:	66 d1 e8             	shr    $1,%ax
48f982:	c1 e1 0f             	shl    $0xf,%ecx
48f985:	66 0b c8             	or     %ax,%cx
48f988:	66 d1 ee             	shr    $1,%si
48f98b:	8b c2                	mov    %edx,%eax
48f98d:	66 89 0f             	mov    %cx,(%edi)
48f990:	c1 e0 0f             	shl    $0xf,%eax
48f993:	66 0b c6             	or     %si,%ax
48f996:	66 d1 ea             	shr    $1,%dx
48f999:	0f b7 f0             	movzwl %ax,%esi
48f99c:	8b c3                	mov    %ebx,%eax
48f99e:	c1 e0 0f             	shl    $0xf,%eax
48f9a1:	66 0b d0             	or     %ax,%dx
48f9a4:	66 d1 eb             	shr    $1,%bx
48f9a7:	ff 45 fc             	incl   -0x4(%ebp)
48f9aa:	6a 20                	push   $0x20
48f9ac:	58                   	pop    %eax
48f9ad:	0f b7 d2             	movzwl %dx,%edx
48f9b0:	66 3b c3             	cmp    %bx,%ax
48f9b3:	76 c5                	jbe    0x48f97a
48f9b5:	0f b7 c3             	movzwl %bx,%eax
48f9b8:	8b 5d fc             	mov    -0x4(%ebp),%ebx
48f9bb:	66 89 57 04          	mov    %dx,0x4(%edi)
48f9bf:	66 89 77 02          	mov    %si,0x2(%edi)
48f9c3:	83 e0 0f             	and    $0xf,%eax
48f9c6:	5e                   	pop    %esi
48f9c7:	0b 45 e8             	or     -0x18(%ebp),%eax
48f9ca:	66 89 47 06          	mov    %ax,0x6(%edi)
48f9ce:	66 8b c3             	mov    %bx,%ax
48f9d1:	5f                   	pop    %edi
48f9d2:	5b                   	pop    %ebx
48f9d3:	c9                   	leave
48f9d4:	c3                   	ret
48f9d5:	8b ff                	mov    %edi,%edi
48f9d7:	55                   	push   %ebp
48f9d8:	8b ec                	mov    %esp,%ebp
48f9da:	56                   	push   %esi
48f9db:	8b 75 0c             	mov    0xc(%ebp),%esi
48f9de:	ba ff 07 00 00       	mov    $0x7ff,%edx
48f9e3:	66 8b 46 06          	mov    0x6(%esi),%ax
48f9e7:	66 c1 e8 04          	shr    $0x4,%ax
48f9eb:	66 23 c2             	and    %dx,%ax
48f9ee:	0f b7 c8             	movzwl %ax,%ecx
48f9f1:	66 3b c2             	cmp    %dx,%ax
48f9f4:	75 29                	jne    0x48fa1f
48f9f6:	8b 45 08             	mov    0x8(%ebp),%eax
48f9f9:	33 c9                	xor    %ecx,%ecx
48f9fb:	66 89 08             	mov    %cx,(%eax)
48f9fe:	f6 46 06 0f          	testb  $0xf,0x6(%esi)
48fa02:	75 16                	jne    0x48fa1a
48fa04:	33 c0                	xor    %eax,%eax
48fa06:	66 39 46 04          	cmp    %ax,0x4(%esi)
48fa0a:	75 0e                	jne    0x48fa1a
48fa0c:	66 39 46 02          	cmp    %ax,0x2(%esi)
48fa10:	75 08                	jne    0x48fa1a
48fa12:	66 39 06             	cmp    %ax,(%esi)
48fa15:	75 03                	jne    0x48fa1a
48fa17:	40                   	inc    %eax
48fa18:	eb 4e                	jmp    0x48fa68
48fa1a:	6a 02                	push   $0x2
48fa1c:	58                   	pop    %eax
48fa1d:	eb 49                	jmp    0x48fa68
48fa1f:	33 d2                	xor    %edx,%edx
48fa21:	66 3b d0             	cmp    %ax,%dx
48fa24:	72 1b                	jb     0x48fa41
48fa26:	56                   	push   %esi
48fa27:	e8 13 fe ff ff       	call   0x48f83f
48fa2c:	59                   	pop    %ecx
48fa2d:	0f b7 c8             	movzwl %ax,%ecx
48fa30:	66 85 c9             	test   %cx,%cx
48fa33:	7e 0c                	jle    0x48fa41
48fa35:	8b 45 08             	mov    0x8(%ebp),%eax
48fa38:	33 c9                	xor    %ecx,%ecx
48fa3a:	66 89 08             	mov    %cx,(%eax)
48fa3d:	33 c0                	xor    %eax,%eax
48fa3f:	eb 27                	jmp    0x48fa68
48fa41:	66 8b 46 06          	mov    0x6(%esi),%ax
48fa45:	ba ef bf 00 00       	mov    $0xbfef,%edx
48fa4a:	66 23 c2             	and    %dx,%ax
48fa4d:	81 c1 02 fc ff ff    	add    $0xfffffc02,%ecx
48fa53:	ba e0 3f 00 00       	mov    $0x3fe0,%edx
48fa58:	66 0b c2             	or     %dx,%ax
48fa5b:	66 89 46 06          	mov    %ax,0x6(%esi)
48fa5f:	8b 45 08             	mov    0x8(%ebp),%eax
48fa62:	66 89 08             	mov    %cx,(%eax)
48fa65:	83 c8 ff             	or     $0xffffffff,%eax
48fa68:	5e                   	pop    %esi
48fa69:	5d                   	pop    %ebp
48fa6a:	c3                   	ret
48fa6b:	8b ff                	mov    %edi,%edi
48fa6d:	55                   	push   %ebp
48fa6e:	8b ec                	mov    %esp,%ebp
48fa70:	83 ec 10             	sub    $0x10,%esp
48fa73:	53                   	push   %ebx
48fa74:	56                   	push   %esi
48fa75:	8b 75 08             	mov    0x8(%ebp),%esi
48fa78:	57                   	push   %edi
48fa79:	33 ff                	xor    %edi,%edi
48fa7b:	47                   	inc    %edi
48fa7c:	0f b7 46 02          	movzwl 0x2(%esi),%eax
48fa80:	8b c8                	mov    %eax,%ecx
48fa82:	83 e0 7f             	and    $0x7f,%eax
48fa85:	81 e1 00 80 00 00    	and    $0x8000,%ecx
48fa8b:	8b d8                	mov    %eax,%ebx
48fa8d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
48fa90:	8b c8                	mov    %eax,%ecx
48fa92:	66 85 c9             	test   %cx,%cx
48fa95:	75 0b                	jne    0x48faa2
48fa97:	33 c0                	xor    %eax,%eax
48fa99:	66 39 06             	cmp    %ax,(%esi)
48fa9c:	0f 84 91 00 00 00    	je     0x48fb33
48faa2:	8b d1                	mov    %ecx,%edx
48faa4:	8b c3                	mov    %ebx,%eax
48faa6:	66 85 c9             	test   %cx,%cx
48faa9:	75 0d                	jne    0x48fab8
48faab:	0f b7 06             	movzwl (%esi),%eax
48faae:	33 c9                	xor    %ecx,%ecx
48fab0:	6a f1                	push   $0xfffffff1
48fab2:	66 89 0e             	mov    %cx,(%esi)
48fab5:	8b d0                	mov    %eax,%edx
48fab7:	5f                   	pop    %edi
48fab8:	c7 45 fc 80 00 00 00 	movl   $0x80,-0x4(%ebp)
48fabf:	0f b7 c0             	movzwl %ax,%eax
48fac2:	8b d8                	mov    %eax,%ebx
48fac4:	0f b7 ca             	movzwl %dx,%ecx
48fac7:	66 3b 55 fc          	cmp    -0x4(%ebp),%dx
48facb:	73 36                	jae    0x48fb03
48facd:	0f b7 0e             	movzwl (%esi),%ecx
48fad0:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
48fad3:	66 8b c1             	mov    %cx,%ax
48fad6:	66 c1 e8 0f          	shr    $0xf,%ax
48fada:	66 0b d0             	or     %ax,%dx
48fadd:	4f                   	dec    %edi
48fade:	0f b7 c2             	movzwl %dx,%eax
48fae1:	89 45 f8             	mov    %eax,-0x8(%ebp)
48fae4:	0f b7 da             	movzwl %dx,%ebx
48fae7:	8b c3                	mov    %ebx,%eax
48fae9:	89 45 f4             	mov    %eax,-0xc(%ebp)
48faec:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
48faef:	66 89 06             	mov    %ax,(%esi)
48faf2:	66 3b 55 fc          	cmp    -0x4(%ebp),%dx
48faf6:	72 d5                	jb     0x48facd
48faf8:	8b 45 f8             	mov    -0x8(%ebp),%eax
48fafb:	0f b7 c8             	movzwl %ax,%ecx
48fafe:	8b c3                	mov    %ebx,%eax
48fb00:	0f b7 d8             	movzwl %ax,%ebx
48fb03:	0f b7 d3             	movzwl %bx,%edx
48fb06:	bb 00 01 00 00       	mov    $0x100,%ebx
48fb0b:	0f b7 c1             	movzwl %cx,%eax
48fb0e:	66 3b d9             	cmp    %cx,%bx
48fb11:	77 1d                	ja     0x48fb30
48fb13:	66 8b 06             	mov    (%esi),%ax
48fb16:	8b ca                	mov    %edx,%ecx
48fb18:	c1 e1 0f             	shl    $0xf,%ecx
48fb1b:	66 d1 e8             	shr    $1,%ax
48fb1e:	66 0b c8             	or     %ax,%cx
48fb21:	66 d1 ea             	shr    $1,%dx
48fb24:	47                   	inc    %edi
48fb25:	66 89 0e             	mov    %cx,(%esi)
48fb28:	66 3b da             	cmp    %dx,%bx
48fb2b:	76 e6                	jbe    0x48fb13
48fb2d:	0f b7 c2             	movzwl %dx,%eax
48fb30:	83 e0 7f             	and    $0x7f,%eax
48fb33:	0b 45 f0             	or     -0x10(%ebp),%eax
48fb36:	66 89 46 02          	mov    %ax,0x2(%esi)
48fb3a:	66 8b c7             	mov    %di,%ax
48fb3d:	5f                   	pop    %edi
48fb3e:	5e                   	pop    %esi
48fb3f:	5b                   	pop    %ebx
48fb40:	c9                   	leave
48fb41:	c3                   	ret
48fb42:	8b ff                	mov    %edi,%edi
48fb44:	55                   	push   %ebp
48fb45:	8b ec                	mov    %esp,%ebp
48fb47:	56                   	push   %esi
48fb48:	8b 75 0c             	mov    0xc(%ebp),%esi
48fb4b:	ba ff 00 00 00       	mov    $0xff,%edx
48fb50:	66 8b 46 02          	mov    0x2(%esi),%ax
48fb54:	66 c1 e8 07          	shr    $0x7,%ax
48fb58:	66 23 c2             	and    %dx,%ax
48fb5b:	0f b7 c8             	movzwl %ax,%ecx
48fb5e:	66 3b c2             	cmp    %dx,%ax
48fb61:	75 1d                	jne    0x48fb80
48fb63:	8b 45 08             	mov    0x8(%ebp),%eax
48fb66:	33 c9                	xor    %ecx,%ecx
48fb68:	66 89 08             	mov    %cx,(%eax)
48fb6b:	f6 46 02 7f          	testb  $0x7f,0x2(%esi)
48fb6f:	75 0a                	jne    0x48fb7b
48fb71:	66 39 0e             	cmp    %cx,(%esi)
48fb74:	75 05                	jne    0x48fb7b
48fb76:	33 c0                	xor    %eax,%eax