4539ed:	2b 45 0c             	sub    0xc(%ebp),%eax
4539f0:	0f b7 c0             	movzwl %ax,%eax
4539f3:	57                   	push   %edi
4539f4:	66 8b f8             	mov    %ax,%di
4539f7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4539fa:	66 85 ff             	test   %di,%di
4539fd:	7f 04                	jg     0x453a03
4539ff:	33 c0                	xor    %eax,%eax
453a01:	eb 5d                	jmp    0x453a60
453a03:	6a 18                	push   $0x18
453a05:	5a                   	pop    %edx
453a06:	66 3b d7             	cmp    %di,%dx
453a09:	7f 14                	jg     0x453a1f
453a0b:	33 c0                	xor    %eax,%eax
453a0d:	81 e1 00 80 00 00    	and    $0x8000,%ecx
453a13:	66 89 06             	mov    %ax,(%esi)
453a16:	83 c8 ff             	or     $0xffffffff,%eax
453a19:	66 89 4e 02          	mov    %cx,0x2(%esi)
453a1d:	eb 41                	jmp    0x453a60
453a1f:	83 e0 0f             	and    $0xf,%eax
453a22:	66 c1 ff 04          	sar    $0x4,%di
453a26:	0f b7 14 45 0c ca 49 	movzwl 0x49ca0c(,%eax,2),%edx
453a2d:	00
453a2e:	0f bf c7             	movswl %di,%eax
453a31:	8b 0c 85 2c ca 49 00 	mov    0x49ca2c(,%eax,4),%ecx
453a38:	0f b7 04 4e          	movzwl (%esi,%ecx,2),%eax
453a3c:	23 d0                	and    %eax,%edx
453a3e:	33 c2                	xor    %edx,%eax
453a40:	89 55 fc             	mov    %edx,-0x4(%ebp)
453a43:	66 89 04 4e          	mov    %ax,(%esi,%ecx,2)
453a47:	33 c0                	xor    %eax,%eax
453a49:	66 8b ca             	mov    %dx,%cx
453a4c:	66 3b c7             	cmp    %di,%ax
453a4f:	7d 06                	jge    0x453a57
453a51:	66 0b 0e             	or     (%esi),%cx
453a54:	66 89 06             	mov    %ax,(%esi)
453a57:	33 c0                	xor    %eax,%eax
453a59:	66 85 c9             	test   %cx,%cx
453a5c:	0f 94 c0             	sete   %al
453a5f:	48                   	dec    %eax
453a60:	5f                   	pop    %edi
453a61:	5e                   	pop    %esi
453a62:	8b e5                	mov    %ebp,%esp
453a64:	5d                   	pop    %ebp
453a65:	c3                   	ret
453a66:	8b ff                	mov    %edi,%edi
453a68:	55                   	push   %ebp
453a69:	8b ec                	mov    %esp,%ebp
453a6b:	8b 4d 08             	mov    0x8(%ebp),%ecx
453a6e:	56                   	push   %esi
453a6f:	be 80 7f 00 00       	mov    $0x7f80,%esi
453a74:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
453a78:	8b d0                	mov    %eax,%edx
453a7a:	23 d6                	and    %esi,%edx
453a7c:	66 3b d6             	cmp    %si,%dx
453a7f:	5e                   	pop    %esi
453a80:	75 14                	jne    0x453a96
453a82:	a8 7f                	test   $0x7f,%al
453a84:	75 0b                	jne    0x453a91
453a86:	66 83 39 00          	cmpw   $0x0,(%ecx)
453a8a:	75 05                	jne    0x453a91
453a8c:	33 c0                	xor    %eax,%eax
453a8e:	40                   	inc    %eax
453a8f:	5d                   	pop    %ebp
453a90:	c3                   	ret
453a91:	6a 02                	push   $0x2
453a93:	58                   	pop    %eax
453a94:	5d                   	pop    %ebp
453a95:	c3                   	ret
453a96:	a9 ff 7f ff ff       	test   $0xffff7fff,%eax
453a9b:	75 0a                	jne    0x453aa7
453a9d:	66 83 39 00          	cmpw   $0x0,(%ecx)
453aa1:	75 04                	jne    0x453aa7
453aa3:	33 c0                	xor    %eax,%eax
453aa5:	5d                   	pop    %ebp
453aa6:	c3                   	ret
453aa7:	33 c0                	xor    %eax,%eax
453aa9:	66 85 d2             	test   %dx,%dx
453aac:	0f 95 c0             	setne  %al
453aaf:	83 e8 02             	sub    $0x2,%eax
453ab2:	5d                   	pop    %ebp
453ab3:	c3                   	ret
453ab4:	8b ff                	mov    %edi,%edi
453ab6:	55                   	push   %ebp
453ab7:	8b ec                	mov    %esp,%ebp
453ab9:	51                   	push   %ecx
453aba:	8d 45 fc             	lea    -0x4(%ebp),%eax
453abd:	6a 1f                	push   $0x1f
453abf:	50                   	push   %eax
453ac0:	e8 50 eb 01 00       	call   0x472615
453ac5:	ff 75 fc             	push   -0x4(%ebp)
453ac8:	ff 75 08             	push   0x8(%ebp)
453acb:	e8 1d 00 00 00       	call   0x453aed
453ad0:	83 c4 10             	add    $0x10,%esp
453ad3:	8b e5                	mov    %ebp,%esp
453ad5:	5d                   	pop    %ebp
453ad6:	c3                   	ret
453ad7:	8b ff                	mov    %edi,%edi
453ad9:	55                   	push   %ebp
453ada:	8b ec                	mov    %esp,%ebp
453adc:	5d                   	pop    %ebp
453add:	e9 49 fd ff ff       	jmp    0x45382b
453ae2:	8b ff                	mov    %edi,%edi
453ae4:	55                   	push   %ebp
453ae5:	8b ec                	mov    %esp,%ebp
453ae7:	5d                   	pop    %ebp
453ae8:	e9 45 fe ff ff       	jmp    0x453932
453aed:	8b ff                	mov    %edi,%edi
453aef:	55                   	push   %ebp
453af0:	8b ec                	mov    %esp,%ebp
453af2:	53                   	push   %ebx
453af3:	8b 5d 08             	mov    0x8(%ebp),%ebx
453af6:	33 c0                	xor    %eax,%eax
453af8:	f6 c3 18             	test   $0x18,%bl
453afb:	74 03                	je     0x453b00
453afd:	83 cb 20             	or     $0x20,%ebx
453b00:	f6 c3 20             	test   $0x20,%bl
453b03:	74 03                	je     0x453b08
453b05:	33 c0                	xor    %eax,%eax
453b07:	40                   	inc    %eax
453b08:	f6 c3 10             	test   $0x10,%bl
453b0b:	74 03                	je     0x453b10
453b0d:	83 c8 02             	or     $0x2,%eax
453b10:	f6 c3 08             	test   $0x8,%bl
453b13:	74 03                	je     0x453b18
453b15:	83 c8 04             	or     $0x4,%eax
453b18:	f6 c3 04             	test   $0x4,%bl
453b1b:	74 03                	je     0x453b20
453b1d:	83 c8 08             	or     $0x8,%eax
453b20:	56                   	push   %esi
453b21:	8b f3                	mov    %ebx,%esi
453b23:	83 e6 01             	and    $0x1,%esi
453b26:	74 03                	je     0x453b2b
453b28:	83 c8 10             	or     $0x10,%eax
453b2b:	50                   	push   %eax
453b2c:	e8 63 eb 01 00       	call   0x472694
453b31:	09 45 0c             	or     %eax,0xc(%ebp)
453b34:	8d 45 0c             	lea    0xc(%ebp),%eax
453b37:	6a 1f                	push   $0x1f
453b39:	50                   	push   %eax
453b3a:	e8 07 eb 01 00       	call   0x472646
453b3f:	83 c4 0c             	add    $0xc,%esp
453b42:	85 f6                	test   %esi,%esi
453b44:	5e                   	pop    %esi
453b45:	74 0d                	je     0x453b54
453b47:	e8 e3 92 ff ff       	call   0x44ce2f
453b4c:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
453b52:	eb 10                	jmp    0x453b64
453b54:	f6 c3 1c             	test   $0x1c,%bl
453b57:	74 0b                	je     0x453b64
453b59:	e8 d1 92 ff ff       	call   0x44ce2f
453b5e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
453b64:	5b                   	pop    %ebx
453b65:	5d                   	pop    %ebp
453b66:	c3                   	ret
453b67:	cc                   	int3
453b68:	cc                   	int3
453b69:	cc                   	int3
453b6a:	cc                   	int3
453b6b:	cc                   	int3
453b6c:	cc                   	int3
453b6d:	cc                   	int3
453b6e:	cc                   	int3
453b6f:	cc                   	int3
453b70:	83 3d 34 c3 4b 00 00 	cmpl   $0x0,0x4bc334
453b77:	0f 84 87 00 00 00    	je     0x453c04
453b7d:	83 ec 08             	sub    $0x8,%esp
453b80:	0f ae 5c 24 04       	stmxcsr 0x4(%esp)
453b85:	8b 44 24 04          	mov    0x4(%esp),%eax
453b89:	25 80 7f 00 00       	and    $0x7f80,%eax
453b8e:	3d 80 1f 00 00       	cmp    $0x1f80,%eax
453b93:	75 0f                	jne    0x453ba4
453b95:	d9 3c 24             	fnstcw (%esp)
453b98:	66 8b 04 24          	mov    (%esp),%ax
453b9c:	66 83 e0 7f          	and    $0x7f,%ax
453ba0:	66 83 f8 7f          	cmp    $0x7f,%ax
453ba4:	8d 64 24 08          	lea    0x8(%esp),%esp
453ba8:	75 5a                	jne    0x453c04
453baa:	e9 8a f0 01 00       	jmp    0x472c39
453baf:	90                   	nop
453bb0:	83 3d 34 c3 4b 00 00 	cmpl   $0x0,0x4bc334
453bb7:	74 32                	je     0x453beb
453bb9:	83 ec 08             	sub    $0x8,%esp
453bbc:	0f ae 5c 24 04       	stmxcsr 0x4(%esp)
453bc1:	8b 44 24 04          	mov    0x4(%esp),%eax
453bc5:	25 80 7f 00 00       	and    $0x7f80,%eax
453bca:	3d 80 1f 00 00       	cmp    $0x1f80,%eax
453bcf:	75 0f                	jne    0x453be0
453bd1:	d9 3c 24             	fnstcw (%esp)
453bd4:	66 8b 04 24          	mov    (%esp),%ax
453bd8:	66 83 e0 7f          	and    $0x7f,%ax
453bdc:	66 83 f8 7f          	cmp    $0x7f,%ax
453be0:	8d 64 24 08          	lea    0x8(%esp),%esp
453be4:	75 05                	jne    0x453beb
453be6:	e9 35 f0 01 00       	jmp    0x472c20
453beb:	83 ec 14             	sub    $0x14,%esp
453bee:	d9 c9                	fxch   %st(1)
453bf0:	dd 1c 24             	fstpl  (%esp)
453bf3:	dd 54 24 08          	fstl   0x8(%esp)
453bf7:	8b 44 24 0c          	mov    0xc(%esp),%eax
453bfb:	e8 0d 00 00 00       	call   0x453c0d
453c00:	83 c4 14             	add    $0x14,%esp
453c03:	c3                   	ret
453c04:	8d 54 24 0c          	lea    0xc(%esp),%edx
453c08:	e8 e8 ff 01 00       	call   0x473bf5
453c0d:	8b c8                	mov    %eax,%ecx
453c0f:	50                   	push   %eax
453c10:	9b d9 3c 24          	fstcw  (%esp)
453c14:	66 81 3c 24 7f 02    	cmpw   $0x27f,(%esp)
453c1a:	74 05                	je     0x453c21
453c1c:	e8 a4 ff 01 00       	call   0x473bc5
453c21:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
453c27:	8d 54 24 08          	lea    0x8(%esp),%edx
453c2b:	81 f9 00 00 f0 7f    	cmp    $0x7ff00000,%ecx
453c31:	0f 84 9c 00 00 00    	je     0x453cd3
453c37:	e8 b9 ff 01 00       	call   0x473bf5
453c3c:	0f 84 8d 00 00 00    	je     0x453ccf
453c42:	a9 00 00 f0 7f       	test   $0x7ff00000,%eax
453c47:	0f 84 f5 00 00 00    	je     0x453d42
453c4d:	8a 4c 24 0f          	mov    0xf(%esp),%cl
453c51:	80 e1 80             	and    $0x80,%cl
453c54:	0f 85 52 01 00 00    	jne    0x453dac
453c5a:	d9 f1                	fyl2x
453c5c:	e8 4f ff 01 00       	call   0x473bb0
453c61:	80 f9 01             	cmp    $0x1,%cl
453c64:	75 02                	jne    0x453c68
453c66:	d9 e0                	fchs
453c68:	83 3d 18 bf 4b 00 00 	cmpl   $0x0,0x4bbf18
453c6f:	0f 85 d9 ff 01 00    	jne    0x473c4e
453c75:	8d 0d 40 ca 49 00    	lea    0x49ca40,%ecx
453c7b:	ba 1d 00 00 00       	mov    $0x1d,%edx
453c80:	e9 14 00 02 00       	jmp    0x473c99
453c85:	83 3d 18 bf 4b 00 00 	cmpl   $0x0,0x4bbf18
453c8c:	0f 85 bc ff 01 00    	jne    0x473c4e
453c92:	8d 0d 40 ca 49 00    	lea    0x49ca40,%ecx
453c98:	ba 1d 00 00 00       	mov    $0x1d,%edx
453c9d:	e8 ae fe 01 00       	call   0x473b50
453ca2:	5a                   	pop    %edx
453ca3:	c3                   	ret
453ca4:	8d 54 24 08          	lea    0x8(%esp),%edx
453ca8:	e8 48 ff 01 00       	call   0x473bf5
453cad:	d9 e8                	fld1
453caf:	df e9                	fucomip %st(1),%st
453cb1:	7a 05                	jp     0x453cb8
453cb3:	74 0e                	je     0x453cc3
453cb5:	41                   	inc    %ecx
453cb6:	eb 31                	jmp    0x453ce9
453cb8:	d9 c9                	fxch   %st(1)
453cba:	d9 e5                	fxam
453cbc:	9b df e0             	fstsw  %ax
453cbf:	9b                   	fwait
453cc0:	9e                   	sahf
453cc1:	75 08                	jne    0x453ccb
453cc3:	dd d8                	fstp   %st(0)
453cc5:	dd d8                	fstp   %st(0)
453cc7:	d9 e8                	fld1
453cc9:	5a                   	pop    %edx
453cca:	c3                   	ret
453ccb:	de c1                	faddp  %st,%st(1)
453ccd:	5a                   	pop    %edx
453cce:	c3                   	ret
453ccf:	33 c9                	xor    %ecx,%ecx
453cd1:	eb 16                	jmp    0x453ce9
453cd3:	33 c9                	xor    %ecx,%ecx
453cd5:	25 ff ff 0f 00       	and    $0xfffff,%eax
453cda:	0b 44 24 10          	or     0x10(%esp),%eax
453cde:	75 c4                	jne    0x453ca4
453ce0:	8d 54 24 08          	lea    0x8(%esp),%edx
453ce4:	e8 0c ff 01 00       	call   0x473bf5
453ce9:	8b 44 24 0c          	mov    0xc(%esp),%eax
453ced:	8b d0                	mov    %eax,%edx
453cef:	25 00 00 f0 7f       	and    $0x7ff00000,%eax
453cf4:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
453cfa:	3d 00 00 f0 7f       	cmp    $0x7ff00000,%eax
453cff:	75 06                	jne    0x453d07
453d01:	0b 54 24 08          	or     0x8(%esp),%edx
453d05:	75 b1                	jne    0x453cb8
453d07:	85 c9                	test   %ecx,%ecx
453d09:	75 c0                	jne    0x453ccb
453d0b:	83 ec 74             	sub    $0x74,%esp
453d0e:	8b cc                	mov    %esp,%ecx
453d10:	51                   	push   %ecx
453d11:	83 ec 10             	sub    $0x10,%esp
453d14:	dd 1c 24             	fstpl  (%esp)
453d17:	dd 5c 24 08          	fstpl  0x8(%esp)
453d1b:	9b dd 71 08          	fsave  0x8(%ecx)
453d1f:	e8 82 00 02 00       	call   0x473da6
453d24:	83 c4 10             	add    $0x10,%esp
453d27:	59                   	pop    %ecx
453d28:	dd 61 08             	frstor 0x8(%ecx)
453d2b:	dd 01                	fldl   (%ecx)
453d2d:	83 c4 74             	add    $0x74,%esp
453d30:	85 c0                	test   %eax,%eax
453d32:	0f 84 16 ff 01 00    	je     0x473c4e
453d38:	b8 01 00 00 00       	mov    $0x1,%eax
453d3d:	e9 43 ff ff ff       	jmp    0x453c85
453d42:	8b 44 24 0c          	mov    0xc(%esp),%eax
453d46:	25 ff ff 0f 00       	and    $0xfffff,%eax
453d4b:	0b 44 24 08          	or     0x8(%esp),%eax
453d4f:	0f 85 f8 fe ff ff    	jne    0x453c4d
453d55:	dd d8                	fstp   %st(0)
453d57:	8b 44 24 14          	mov    0x14(%esp),%eax
453d5b:	25 ff ff ff 7f       	and    $0x7fffffff,%eax
453d60:	0b 44 24 10          	or     0x10(%esp),%eax
453d64:	74 3d                	je     0x453da3
453d66:	e8 66 00 00 00       	call   0x453dd1
453d6b:	8a 6c 24 0f          	mov    0xf(%esp),%ch
453d6f:	c0 ed 07             	shr    $0x7,%ch
453d72:	f7 44 24 17 80 00 00 	testl  $0x80,0x17(%esp)
453d79:	00
453d7a:	74 16                	je     0x453d92
453d7c:	db 2d e0 df 49 00    	fldt   0x49dfe0
453d82:	84 cd                	test   %cl,%ch
453d84:	74 02                	je     0x453d88
453d86:	d9 e0                	fchs
453d88:	b8 02 00 00 00       	mov    $0x2,%eax
453d8d:	e9 f3 fe ff ff       	jmp    0x453c85
453d92:	d9 ee                	fldz
453d94:	84 cd                	test   %cl,%ch
453d96:	0f 84 b2 fe 01 00    	je     0x473c4e
453d9c:	d9 e0                	fchs
453d9e:	e9 ab fe 01 00       	jmp    0x473c4e
453da3:	dd d8                	fstp   %st(0)
453da5:	d9 e8                	fld1
453da7:	e9 a2 fe 01 00       	jmp    0x473c4e
453dac:	d9 c1                	fld    %st(1)
453dae:	e8 1e 00 00 00       	call   0x453dd1
453db3:	d9 e0                	fchs
453db5:	84 c9                	test   %cl,%cl
453db7:	0f 85 9d fe ff ff    	jne    0x453c5a
453dbd:	dd d8                	fstp   %st(0)
453dbf:	dd d8                	fstp   %st(0)
453dc1:	db 2d 40 e0 49 00    	fldt   0x49e040
453dc7:	b8 01 00 00 00       	mov    $0x1,%eax
453dcc:	e9 b4 fe ff ff       	jmp    0x453c85
453dd1:	d9 c0                	fld    %st(0)
453dd3:	d9 fc                	frndint
453dd5:	d8 d9                	fcomp  %st(1)
453dd7:	b1 00                	mov    $0x0,%cl
453dd9:	9b df e0             	fstsw  %ax
453ddc:	9e                   	sahf
453ddd:	75 17                	jne    0x453df6
453ddf:	dc 0d 44 ca 49 00    	fmull  0x49ca44
453de5:	fe c1                	inc    %cl
453de7:	d9 c0                	fld    %st(0)
453de9:	d9 fc                	frndint
453deb:	de d9                	fcompp
453ded:	9b df e0             	fstsw  %ax
453df0:	9e                   	sahf
453df1:	75 02                	jne    0x453df5