403553:	56                   	push   %esi
403554:	e8 2c ff ff ff       	call   0x403485
403559:	59                   	pop    %ecx
40355a:	dd 45 f8             	fldl   -0x8(%ebp)
40355d:	5e                   	pop    %esi
40355e:	c9                   	leave
40355f:	c3                   	ret
403560:	8b 04 c5 b4 f2 41 00 	mov    0x41f2b4(,%eax,8),%eax
403567:	eb 9b                	jmp    0x403504
403569:	68 ff ff 00 00       	push   $0xffff
40356e:	ff 75 28             	push   0x28(%ebp)
403571:	e8 a8 02 00 00       	call   0x40381e
403576:	ff 75 08             	push   0x8(%ebp)
403579:	e8 07 ff ff ff       	call   0x403485
40357e:	dd 45 20             	fldl   0x20(%ebp)
403581:	83 c4 0c             	add    $0xc,%esp
403584:	c9                   	leave
403585:	c3                   	ret
403586:	8b ff                	mov    %edi,%edi
403588:	55                   	push   %ebp
403589:	8b ec                	mov    %esp,%ebp
40358b:	83 3d a0 f2 41 00 00 	cmpl   $0x0,0x41f2a0
403592:	75 28                	jne    0x4035bc
403594:	ff 75 14             	push   0x14(%ebp)
403597:	dd 45 0c             	fldl   0xc(%ebp)
40359a:	83 ec 18             	sub    $0x18,%esp
40359d:	dd 5c 24 10          	fstpl  0x10(%esp)
4035a1:	d9 ee                	fldz
4035a3:	dd 5c 24 08          	fstpl  0x8(%esp)
4035a7:	dd 45 0c             	fldl   0xc(%ebp)
4035aa:	dd 1c 24             	fstpl  (%esp)
4035ad:	ff 75 08             	push   0x8(%ebp)
4035b0:	6a 01                	push   $0x1
4035b2:	e8 2f ff ff ff       	call   0x4034e6
4035b7:	83 c4 24             	add    $0x24,%esp
4035ba:	5d                   	pop    %ebp
4035bb:	c3                   	ret
4035bc:	e8 8b f8 ff ff       	call   0x402e4c
4035c1:	68 ff ff 00 00       	push   $0xffff
4035c6:	ff 75 14             	push   0x14(%ebp)
4035c9:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
4035cf:	e8 4a 02 00 00       	call   0x40381e
4035d4:	dd 45 0c             	fldl   0xc(%ebp)
4035d7:	59                   	pop    %ecx
4035d8:	59                   	pop    %ecx
4035d9:	5d                   	pop    %ebp
4035da:	c3                   	ret
4035db:	8b ff                	mov    %edi,%edi
4035dd:	53                   	push   %ebx
4035de:	8b dc                	mov    %esp,%ebx
4035e0:	51                   	push   %ecx
4035e1:	51                   	push   %ecx
4035e2:	83 e4 f0             	and    $0xfffffff0,%esp
4035e5:	83 c4 04             	add    $0x4,%esp
4035e8:	55                   	push   %ebp
4035e9:	8b 6b 04             	mov    0x4(%ebx),%ebp
4035ec:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4035f0:	8b ec                	mov    %esp,%ebp
4035f2:	81 ec 80 00 00 00    	sub    $0x80,%esp
4035f8:	a1 04 f0 41 00       	mov    0x41f004,%eax
4035fd:	33 c5                	xor    %ebp,%eax
4035ff:	89 45 fc             	mov    %eax,-0x4(%ebp)
403602:	ff 73 20             	push   0x20(%ebx)
403605:	8d 43 18             	lea    0x18(%ebx),%eax
403608:	50                   	push   %eax
403609:	ff 73 08             	push   0x8(%ebx)
40360c:	e8 92 fc ff ff       	call   0x4032a3
403611:	83 c4 0c             	add    $0xc,%esp
403614:	85 c0                	test   %eax,%eax
403616:	75 22                	jne    0x40363a
403618:	83 65 c0 fe          	andl   $0xfffffffe,-0x40(%ebp)
40361c:	8d 43 18             	lea    0x18(%ebx),%eax
40361f:	50                   	push   %eax
403620:	8d 43 10             	lea    0x10(%ebx),%eax
403623:	50                   	push   %eax
403624:	ff 73 0c             	push   0xc(%ebx)
403627:	8d 43 20             	lea    0x20(%ebx),%eax
40362a:	ff 73 08             	push   0x8(%ebx)
40362d:	50                   	push   %eax
40362e:	8d 45 80             	lea    -0x80(%ebp),%eax
403631:	50                   	push   %eax
403632:	e8 49 fc ff ff       	call   0x403280
403637:	83 c4 18             	add    $0x18,%esp
40363a:	ff 73 08             	push   0x8(%ebx)
40363d:	e8 70 fe ff ff       	call   0x4034b2
403642:	83 c4 04             	add    $0x4,%esp
403645:	83 3d a0 f2 41 00 00 	cmpl   $0x0,0x41f2a0
40364c:	75 2b                	jne    0x403679
40364e:	85 c0                	test   %eax,%eax
403650:	74 27                	je     0x403679
403652:	ff 73 20             	push   0x20(%ebx)
403655:	dd 43 18             	fldl   0x18(%ebx)
403658:	83 ec 18             	sub    $0x18,%esp
40365b:	dd 5c 24 10          	fstpl  0x10(%esp)
40365f:	d9 ee                	fldz
403661:	dd 5c 24 08          	fstpl  0x8(%esp)
403665:	dd 43 10             	fldl   0x10(%ebx)
403668:	dd 1c 24             	fstpl  (%esp)
40366b:	ff 73 0c             	push   0xc(%ebx)
40366e:	50                   	push   %eax
40366f:	e8 72 fe ff ff       	call   0x4034e6
403674:	83 c4 24             	add    $0x24,%esp
403677:	eb 1a                	jmp    0x403693
403679:	50                   	push   %eax
40367a:	e8 06 fe ff ff       	call   0x403485
40367f:	c7 04 24 ff ff 00 00 	movl   $0xffff,(%esp)
403686:	ff 73 20             	push   0x20(%ebx)
403689:	e8 90 01 00 00       	call   0x40381e
40368e:	dd 43 18             	fldl   0x18(%ebx)
403691:	59                   	pop    %ecx
403692:	59                   	pop    %ecx
403693:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403696:	33 cd                	xor    %ebp,%ecx
403698:	e8 63 d9 ff ff       	call   0x401000
40369d:	8b e5                	mov    %ebp,%esp
40369f:	5d                   	pop    %ebp
4036a0:	8b e3                	mov    %ebx,%esp
4036a2:	5b                   	pop    %ebx
4036a3:	c3                   	ret
4036a4:	8b ff                	mov    %edi,%edi
4036a6:	55                   	push   %ebp
4036a7:	8b ec                	mov    %esp,%ebp
4036a9:	51                   	push   %ecx
4036aa:	51                   	push   %ecx
4036ab:	dd 45 08             	fldl   0x8(%ebp)
4036ae:	d9 fc                	frndint
4036b0:	dd 5d f8             	fstpl  -0x8(%ebp)
4036b3:	dd 45 f8             	fldl   -0x8(%ebp)
4036b6:	c9                   	leave
4036b7:	c3                   	ret
4036b8:	8b ff                	mov    %edi,%edi
4036ba:	55                   	push   %ebp
4036bb:	8b ec                	mov    %esp,%ebp
4036bd:	51                   	push   %ecx
4036be:	51                   	push   %ecx
4036bf:	8b 45 10             	mov    0x10(%ebp),%eax
4036c2:	dd 45 08             	fldl   0x8(%ebp)
4036c5:	8b 4d 0e             	mov    0xe(%ebp),%ecx
4036c8:	dd 5d f8             	fstpl  -0x8(%ebp)
4036cb:	05 fe 03 00 00       	add    $0x3fe,%eax
4036d0:	c1 e0 04             	shl    $0x4,%eax
4036d3:	81 e1 0f 80 00 00    	and    $0x800f,%ecx
4036d9:	0b c1                	or     %ecx,%eax
4036db:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
4036df:	dd 45 f8             	fldl   -0x8(%ebp)
4036e2:	c9                   	leave
4036e3:	c3                   	ret
4036e4:	8b ff                	mov    %edi,%edi
4036e6:	55                   	push   %ebp
4036e7:	8b ec                	mov    %esp,%ebp
4036e9:	33 d2                	xor    %edx,%edx
4036eb:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
4036f2:	75 0a                	jne    0x4036fe
4036f4:	39 55 08             	cmp    %edx,0x8(%ebp)
4036f7:	75 18                	jne    0x403711
4036f9:	33 c0                	xor    %eax,%eax
4036fb:	40                   	inc    %eax
4036fc:	5d                   	pop    %ebp
4036fd:	c3                   	ret
4036fe:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
403705:	75 0a                	jne    0x403711
403707:	39 55 08             	cmp    %edx,0x8(%ebp)
40370a:	75 05                	jne    0x403711
40370c:	6a 02                	push   $0x2
40370e:	58                   	pop    %eax
40370f:	5d                   	pop    %ebp
403710:	c3                   	ret
403711:	8b 4d 0e             	mov    0xe(%ebp),%ecx
403714:	b8 f8 7f 00 00       	mov    $0x7ff8,%eax
403719:	23 c8                	and    %eax,%ecx
40371b:	66 3b c8             	cmp    %ax,%cx
40371e:	75 04                	jne    0x403724
403720:	6a 03                	push   $0x3
403722:	eb ea                	jmp    0x40370e
403724:	b8 f0 7f 00 00       	mov    $0x7ff0,%eax
403729:	66 3b c8             	cmp    %ax,%cx
40372c:	75 12                	jne    0x403740
40372e:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
403735:	75 05                	jne    0x40373c
403737:	39 55 08             	cmp    %edx,0x8(%ebp)
40373a:	74 04                	je     0x403740
40373c:	6a 04                	push   $0x4
40373e:	eb ce                	jmp    0x40370e
403740:	33 c0                	xor    %eax,%eax
403742:	5d                   	pop    %ebp
403743:	c3                   	ret
403744:	8b ff                	mov    %edi,%edi
403746:	55                   	push   %ebp
403747:	8b ec                	mov    %esp,%ebp
403749:	d9 ee                	fldz
40374b:	dc 55 08             	fcoml  0x8(%ebp)
40374e:	df e0                	fnstsw %ax
403750:	f6 c4 44             	test   $0x44,%ah
403753:	7a 07                	jp     0x40375c
403755:	33 d2                	xor    %edx,%edx
403757:	e9 9a 00 00 00       	jmp    0x4037f6
40375c:	8b 55 0e             	mov    0xe(%ebp),%edx
40375f:	33 c9                	xor    %ecx,%ecx
403761:	f7 c2 f0 7f 00 00    	test   $0x7ff0,%edx
403767:	75 6b                	jne    0x4037d4
403769:	f7 45 0c ff ff 0f 00 	testl  $0xfffff,0xc(%ebp)
403770:	75 05                	jne    0x403777
403772:	39 4d 08             	cmp    %ecx,0x8(%ebp)
403775:	74 5d                	je     0x4037d4
403777:	dc 5d 08             	fcompl 0x8(%ebp)
40377a:	ba 03 fc ff ff       	mov    $0xfffffc03,%edx
40377f:	df e0                	fnstsw %ax
403781:	f6 c4 41             	test   $0x41,%ah
403784:	75 05                	jne    0x40378b
403786:	33 c0                	xor    %eax,%eax
403788:	40                   	inc    %eax
403789:	eb 18                	jmp    0x4037a3
40378b:	33 c0                	xor    %eax,%eax
40378d:	eb 14                	jmp    0x4037a3
40378f:	d1 65 0c             	shll   $1,0xc(%ebp)
403792:	f7 45 08 00 00 00 80 	testl  $0x80000000,0x8(%ebp)
403799:	74 04                	je     0x40379f
40379b:	83 4d 0c 01          	orl    $0x1,0xc(%ebp)
40379f:	d1 65 08             	shll   $1,0x8(%ebp)
4037a2:	4a                   	dec    %edx
4037a3:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
4037a7:	74 e6                	je     0x40378f
4037a9:	56                   	push   %esi
4037aa:	be ef ff 00 00       	mov    $0xffef,%esi
4037af:	66 21 75 0e          	and    %si,0xe(%ebp)
4037b3:	5e                   	pop    %esi
4037b4:	3b c1                	cmp    %ecx,%eax
4037b6:	74 09                	je     0x4037c1
4037b8:	b8 00 80 00 00       	mov    $0x8000,%eax
4037bd:	66 09 45 0e          	or     %ax,0xe(%ebp)
4037c1:	dd 45 08             	fldl   0x8(%ebp)
4037c4:	51                   	push   %ecx
4037c5:	51                   	push   %ecx
4037c6:	51                   	push   %ecx
4037c7:	dd 1c 24             	fstpl  (%esp)
4037ca:	e8 e9 fe ff ff       	call   0x4036b8
4037cf:	83 c4 0c             	add    $0xc,%esp
4037d2:	eb 22                	jmp    0x4037f6
4037d4:	51                   	push   %ecx
4037d5:	dd d8                	fstp   %st(0)
4037d7:	dd 45 08             	fldl   0x8(%ebp)
4037da:	51                   	push   %ecx
4037db:	51                   	push   %ecx
4037dc:	dd 1c 24             	fstpl  (%esp)
4037df:	e8 d4 fe ff ff       	call   0x4036b8
4037e4:	c1 ea 04             	shr    $0x4,%edx
4037e7:	81 e2 ff 07 00 00    	and    $0x7ff,%edx
4037ed:	83 c4 0c             	add    $0xc,%esp
4037f0:	81 ea fe 03 00 00    	sub    $0x3fe,%edx
4037f6:	8b 45 10             	mov    0x10(%ebp),%eax
4037f9:	89 10                	mov    %edx,(%eax)
4037fb:	5d                   	pop    %ebp
4037fc:	c3                   	ret
4037fd:	8b ff                	mov    %edi,%edi
4037ff:	55                   	push   %ebp
403800:	8b ec                	mov    %esp,%ebp
403802:	51                   	push   %ecx
403803:	9b dd 7d fc          	fstsw  -0x4(%ebp)
403807:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40380b:	c9                   	leave
40380c:	c3                   	ret
40380d:	8b ff                	mov    %edi,%edi
40380f:	55                   	push   %ebp
403810:	8b ec                	mov    %esp,%ebp
403812:	51                   	push   %ecx
403813:	dd 7d fc             	fnstsw -0x4(%ebp)
403816:	db e2                	fnclex
403818:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40381c:	c9                   	leave
40381d:	c3                   	ret
40381e:	8b ff                	mov    %edi,%edi
403820:	55                   	push   %ebp
403821:	8b ec                	mov    %esp,%ebp
403823:	51                   	push   %ecx
403824:	9b d9 7d fc          	fstcw  -0x4(%ebp)
403828:	8b 45 0c             	mov    0xc(%ebp),%eax
40382b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40382e:	23 4d 0c             	and    0xc(%ebp),%ecx
403831:	f7 d0                	not    %eax
403833:	23 45 fc             	and    -0x4(%ebp),%eax
403836:	0b c1                	or     %ecx,%eax
403838:	0f b7 c0             	movzwl %ax,%eax
40383b:	89 45 0c             	mov    %eax,0xc(%ebp)
40383e:	d9 6d 0c             	fldcw  0xc(%ebp)
403841:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
403845:	c9                   	leave
403846:	c3                   	ret
403847:	8b ff                	mov    %edi,%edi
403849:	55                   	push   %ebp
40384a:	8b ec                	mov    %esp,%ebp
40384c:	51                   	push   %ecx
40384d:	51                   	push   %ecx
40384e:	8a 4d 08             	mov    0x8(%ebp),%cl
403851:	f6 c1 01             	test   $0x1,%cl
403854:	74 0a                	je     0x403860
403856:	db 2d c0 f3 41 00    	fldt   0x41f3c0
40385c:	db 5d 08             	fistpl 0x8(%ebp)
40385f:	9b                   	fwait
403860:	f6 c1 08             	test   $0x8,%cl
403863:	74 10                	je     0x403875
403865:	9b df e0             	fstsw  %ax
403868:	db 2d c0 f3 41 00    	fldt   0x41f3c0
40386e:	dd 5d f8             	fstpl  -0x8(%ebp)
403871:	9b 9b df e0          	fstsw  %ax
403875:	f6 c1 10             	test   $0x10,%cl
403878:	74 0a                	je     0x403884
40387a:	db 2d cc f3 41 00    	fldt   0x41f3cc
403880:	dd 5d f8             	fstpl  -0x8(%ebp)
403883:	9b                   	fwait
403884:	f6 c1 04             	test   $0x4,%cl
403887:	74 09                	je     0x403892
403889:	d9 ee                	fldz
40388b:	d9 e8                	fld1
40388d:	de f1                	fdivp  %st,%st(1)
40388f:	dd d8                	fstp   %st(0)
403891:	9b                   	fwait
403892:	f6 c1 20             	test   $0x20,%cl
403895:	74 06                	je     0x40389d
403897:	d9 eb                	fldpi
403899:	dd 5d f8             	fstpl  -0x8(%ebp)
40389c:	9b                   	fwait
40389d:	c9                   	leave
40389e:	c3                   	ret
40389f:	6a 08                	push   $0x8
4038a1:	68 c8 e6 41 00       	push   $0x41e6c8
4038a6:	e8 d5 f2 ff ff       	call   0x402b80
4038ab:	33 c0                	xor    %eax,%eax
4038ad:	39 05 b8 2e de 02    	cmp    %eax,0x2de2eb8
4038b3:	74 56                	je     0x40390b
4038b5:	f6 45 08 40          	testb  $0x40,0x8(%ebp)
4038b9:	74 48                	je     0x403903
4038bb:	39 05 d8 f3 41 00    	cmp    %eax,0x41f3d8
4038c1:	74 40                	je     0x403903
4038c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038c6:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
4038ca:	eb 2e                	jmp    0x4038fa
4038cc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4038cf:	8b 00                	mov    (%eax),%eax
4038d1:	8b 00                	mov    (%eax),%eax
4038d3:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
4038d8:	74 0a                	je     0x4038e4
4038da:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
4038df:	74 03                	je     0x4038e4
4038e1:	33 c0                	xor    %eax,%eax
4038e3:	c3                   	ret
4038e4:	33 c0                	xor    %eax,%eax
4038e6:	40                   	inc    %eax
4038e7:	c3                   	ret
4038e8:	8b 65 e8             	mov    -0x18(%ebp),%esp
4038eb:	83 25 d8 f3 41 00 00 	andl   $0x0,0x41f3d8