40f391:	e8 37 90 00 00       	call   0x4183cd
40f396:	eb 15                	jmp    0x40f3ad
40f398:	33 c0                	xor    %eax,%eax
40f39a:	eb 14                	jmp    0x40f3b0
40f39c:	ff 75 0c             	push   0xc(%ebp)
40f39f:	ff 75 08             	push   0x8(%ebp)
40f3a2:	e8 6e f3 ff ff       	call   0x40e715
40f3a7:	50                   	push   %eax
40f3a8:	e8 b5 d7 ff ff       	call   0x40cb62
40f3ad:	83 c4 0c             	add    $0xc,%esp
40f3b0:	5e                   	pop    %esi
40f3b1:	5d                   	pop    %ebp
40f3b2:	c3                   	ret
40f3b3:	cc                   	int3
40f3b4:	cc                   	int3
40f3b5:	cc                   	int3
40f3b6:	cc                   	int3
40f3b7:	cc                   	int3
40f3b8:	cc                   	int3
40f3b9:	cc                   	int3
40f3ba:	cc                   	int3
40f3bb:	cc                   	int3
40f3bc:	cc                   	int3
40f3bd:	cc                   	int3
40f3be:	cc                   	int3
40f3bf:	cc                   	int3
40f3c0:	83 3d 5c 53 43 00 00 	cmpl   $0x0,0x43535c
40f3c7:	74 32                	je     0x40f3fb
40f3c9:	83 ec 08             	sub    $0x8,%esp
40f3cc:	0f ae 5c 24 04       	stmxcsr 0x4(%esp)
40f3d1:	8b 44 24 04          	mov    0x4(%esp),%eax
40f3d5:	25 80 7f 00 00       	and    $0x7f80,%eax
40f3da:	3d 80 1f 00 00       	cmp    $0x1f80,%eax
40f3df:	75 0f                	jne    0x40f3f0
40f3e1:	d9 3c 24             	fnstcw (%esp)
40f3e4:	66 8b 04 24          	mov    (%esp),%ax
40f3e8:	66 83 e0 7f          	and    $0x7f,%ax
40f3ec:	66 83 f8 7f          	cmp    $0x7f,%ax
40f3f0:	8d 64 24 08          	lea    0x8(%esp),%esp
40f3f4:	75 05                	jne    0x40f3fb
40f3f6:	e9 65 9b 00 00       	jmp    0x418f60
40f3fb:	83 ec 14             	sub    $0x14,%esp
40f3fe:	d9 c9                	fxch   %st(1)
40f400:	dd 1c 24             	fstpl  (%esp)
40f403:	dd 54 24 08          	fstl   0x8(%esp)
40f407:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f40b:	e8 0d 00 00 00       	call   0x40f41d
40f410:	83 c4 14             	add    $0x14,%esp
40f413:	c3                   	ret
40f414:	8d 54 24 0c          	lea    0xc(%esp),%edx
40f418:	e8 78 ab 00 00       	call   0x419f95
40f41d:	8b c8                	mov    %eax,%ecx
40f41f:	50                   	push   %eax
40f420:	9b d9 3c 24          	fstcw  (%esp)
40f424:	66 81 3c 24 7f 02    	cmpw   $0x27f,(%esp)
40f42a:	74 05                	je     0x40f431
40f42c:	e8 34 ab 00 00       	call   0x419f65
40f431:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
40f437:	8d 54 24 08          	lea    0x8(%esp),%edx
40f43b:	81 f9 00 00 f0 7f    	cmp    $0x7ff00000,%ecx
40f441:	0f 84 9c 00 00 00    	je     0x40f4e3
40f447:	e8 49 ab 00 00       	call   0x419f95
40f44c:	0f 84 8d 00 00 00    	je     0x40f4df
40f452:	a9 00 00 f0 7f       	test   $0x7ff00000,%eax
40f457:	0f 84 f5 00 00 00    	je     0x40f552
40f45d:	8a 4c 24 0f          	mov    0xf(%esp),%cl
40f461:	80 e1 80             	and    $0x80,%cl
40f464:	0f 85 52 01 00 00    	jne    0x40f5bc
40f46a:	d9 f1                	fyl2x
40f46c:	e8 df aa 00 00       	call   0x419f50
40f471:	80 f9 01             	cmp    $0x1,%cl
40f474:	75 02                	jne    0x40f478
40f476:	d9 e0                	fchs
40f478:	83 3d ec 4c 43 00 00 	cmpl   $0x0,0x434cec
40f47f:	0f 85 69 ab 00 00    	jne    0x419fee
40f485:	8d 0d 20 74 42 00    	lea    0x427420,%ecx
40f48b:	ba 1d 00 00 00       	mov    $0x1d,%edx
40f490:	e9 a4 ab 00 00       	jmp    0x41a039
40f495:	83 3d ec 4c 43 00 00 	cmpl   $0x0,0x434cec
40f49c:	0f 85 4c ab 00 00    	jne    0x419fee
40f4a2:	8d 0d 20 74 42 00    	lea    0x427420,%ecx
40f4a8:	ba 1d 00 00 00       	mov    $0x1d,%edx
40f4ad:	e8 3e aa 00 00       	call   0x419ef0
40f4b2:	5a                   	pop    %edx
40f4b3:	c3                   	ret
40f4b4:	8d 54 24 08          	lea    0x8(%esp),%edx
40f4b8:	e8 d8 aa 00 00       	call   0x419f95
40f4bd:	d9 e8                	fld1
40f4bf:	df e9                	fucomip %st(1),%st
40f4c1:	7a 05                	jp     0x40f4c8
40f4c3:	74 0e                	je     0x40f4d3
40f4c5:	41                   	inc    %ecx
40f4c6:	eb 31                	jmp    0x40f4f9
40f4c8:	d9 c9                	fxch   %st(1)
40f4ca:	d9 e5                	fxam
40f4cc:	9b df e0             	fstsw  %ax
40f4cf:	9b                   	fwait
40f4d0:	9e                   	sahf
40f4d1:	75 08                	jne    0x40f4db
40f4d3:	dd d8                	fstp   %st(0)
40f4d5:	dd d8                	fstp   %st(0)
40f4d7:	d9 e8                	fld1
40f4d9:	5a                   	pop    %edx
40f4da:	c3                   	ret
40f4db:	de c1                	faddp  %st,%st(1)
40f4dd:	5a                   	pop    %edx
40f4de:	c3                   	ret
40f4df:	33 c9                	xor    %ecx,%ecx
40f4e1:	eb 16                	jmp    0x40f4f9
40f4e3:	33 c9                	xor    %ecx,%ecx
40f4e5:	25 ff ff 0f 00       	and    $0xfffff,%eax
40f4ea:	0b 44 24 10          	or     0x10(%esp),%eax
40f4ee:	75 c4                	jne    0x40f4b4
40f4f0:	8d 54 24 08          	lea    0x8(%esp),%edx
40f4f4:	e8 9c aa 00 00       	call   0x419f95
40f4f9:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f4fd:	8b d0                	mov    %eax,%edx
40f4ff:	25 00 00 f0 7f       	and    $0x7ff00000,%eax
40f504:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
40f50a:	3d 00 00 f0 7f       	cmp    $0x7ff00000,%eax
40f50f:	75 06                	jne    0x40f517
40f511:	0b 54 24 08          	or     0x8(%esp),%edx
40f515:	75 b1                	jne    0x40f4c8
40f517:	85 c9                	test   %ecx,%ecx
40f519:	75 c0                	jne    0x40f4db
40f51b:	83 ec 74             	sub    $0x74,%esp
40f51e:	8b cc                	mov    %esp,%ecx
40f520:	51                   	push   %ecx
40f521:	83 ec 10             	sub    $0x10,%esp
40f524:	dd 1c 24             	fstpl  (%esp)
40f527:	dd 5c 24 08          	fstpl  0x8(%esp)
40f52b:	9b dd 71 08          	fsave  0x8(%ecx)
40f52f:	e8 10 ac 00 00       	call   0x41a144
40f534:	83 c4 10             	add    $0x10,%esp
40f537:	59                   	pop    %ecx
40f538:	dd 61 08             	frstor 0x8(%ecx)
40f53b:	dd 01                	fldl   (%ecx)
40f53d:	83 c4 74             	add    $0x74,%esp
40f540:	85 c0                	test   %eax,%eax
40f542:	0f 84 a6 aa 00 00    	je     0x419fee
40f548:	b8 01 00 00 00       	mov    $0x1,%eax
40f54d:	e9 43 ff ff ff       	jmp    0x40f495
40f552:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f556:	25 ff ff 0f 00       	and    $0xfffff,%eax
40f55b:	0b 44 24 08          	or     0x8(%esp),%eax
40f55f:	0f 85 f8 fe ff ff    	jne    0x40f45d
40f565:	dd d8                	fstp   %st(0)
40f567:	8b 44 24 14          	mov    0x14(%esp),%eax
40f56b:	25 ff ff ff 7f       	and    $0x7fffffff,%eax
40f570:	0b 44 24 10          	or     0x10(%esp),%eax
40f574:	74 3d                	je     0x40f5b3
40f576:	e8 66 00 00 00       	call   0x40f5e1
40f57b:	8a 6c 24 0f          	mov    0xf(%esp),%ch
40f57f:	c0 ed 07             	shr    $0x7,%ch
40f582:	f7 44 24 17 80 00 00 	testl  $0x80,0x17(%esp)
40f589:	00
40f58a:	74 16                	je     0x40f5a2
40f58c:	db 2d e0 84 42 00    	fldt   0x4284e0
40f592:	84 cd                	test   %cl,%ch
40f594:	74 02                	je     0x40f598
40f596:	d9 e0                	fchs
40f598:	b8 02 00 00 00       	mov    $0x2,%eax
40f59d:	e9 f3 fe ff ff       	jmp    0x40f495
40f5a2:	d9 ee                	fldz
40f5a4:	84 cd                	test   %cl,%ch
40f5a6:	0f 84 42 aa 00 00    	je     0x419fee
40f5ac:	d9 e0                	fchs
40f5ae:	e9 3b aa 00 00       	jmp    0x419fee
40f5b3:	dd d8                	fstp   %st(0)
40f5b5:	d9 e8                	fld1
40f5b7:	e9 32 aa 00 00       	jmp    0x419fee
40f5bc:	d9 c1                	fld    %st(1)
40f5be:	e8 1e 00 00 00       	call   0x40f5e1
40f5c3:	d9 e0                	fchs
40f5c5:	84 c9                	test   %cl,%cl
40f5c7:	0f 85 9d fe ff ff    	jne    0x40f46a
40f5cd:	dd d8                	fstp   %st(0)
40f5cf:	dd d8                	fstp   %st(0)
40f5d1:	db 2d 40 85 42 00    	fldt   0x428540
40f5d7:	b8 01 00 00 00       	mov    $0x1,%eax
40f5dc:	e9 b4 fe ff ff       	jmp    0x40f495
40f5e1:	d9 c0                	fld    %st(0)
40f5e3:	d9 fc                	frndint
40f5e5:	d8 d9                	fcomp  %st(1)
40f5e7:	b1 00                	mov    $0x0,%cl
40f5e9:	9b df e0             	fstsw  %ax
40f5ec:	9e                   	sahf
40f5ed:	75 17                	jne    0x40f606
40f5ef:	dc 0d 24 74 42 00    	fmull  0x427424
40f5f5:	fe c1                	inc    %cl
40f5f7:	d9 c0                	fld    %st(0)
40f5f9:	d9 fc                	frndint
40f5fb:	de d9                	fcompp
40f5fd:	9b df e0             	fstsw  %ax
40f600:	9e                   	sahf
40f601:	75 02                	jne    0x40f605
40f603:	fe c1                	inc    %cl
40f605:	c3                   	ret
40f606:	dd d8                	fstp   %st(0)
40f608:	c3                   	ret
40f609:	8b ff                	mov    %edi,%edi
40f60b:	55                   	push   %ebp
40f60c:	8b ec                	mov    %esp,%ebp
40f60e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f611:	33 c0                	xor    %eax,%eax
40f613:	38 01                	cmp    %al,(%ecx)
40f615:	74 0c                	je     0x40f623
40f617:	3b 45 0c             	cmp    0xc(%ebp),%eax
40f61a:	74 07                	je     0x40f623
40f61c:	40                   	inc    %eax
40f61d:	80 3c 08 00          	cmpb   $0x0,(%eax,%ecx,1)
40f621:	75 f4                	jne    0x40f617
40f623:	5d                   	pop    %ebp
40f624:	c3                   	ret
40f625:	8b ff                	mov    %edi,%edi
40f627:	55                   	push   %ebp
40f628:	8b ec                	mov    %esp,%ebp
40f62a:	56                   	push   %esi
40f62b:	8b 75 08             	mov    0x8(%ebp),%esi
40f62e:	57                   	push   %edi
40f62f:	85 f6                	test   %esi,%esi
40f631:	75 1a                	jne    0x40f64d
40f633:	8b 75 0c             	mov    0xc(%ebp),%esi
40f636:	8b ce                	mov    %esi,%ecx
40f638:	e8 b7 00 00 00       	call   0x40f6f4
40f63d:	33 ff                	xor    %edi,%edi
40f63f:	89 7e 08             	mov    %edi,0x8(%esi)
40f642:	89 7e 0c             	mov    %edi,0xc(%esi)
40f645:	89 7e 10             	mov    %edi,0x10(%esi)
40f648:	e9 84 00 00 00       	jmp    0x40f6d1
40f64d:	33 ff                	xor    %edi,%edi
40f64f:	80 3e 00             	cmpb   $0x0,(%esi)
40f652:	75 1f                	jne    0x40f673
40f654:	8b 75 0c             	mov    0xc(%ebp),%esi
40f657:	39 7e 0c             	cmp    %edi,0xc(%esi)
40f65a:	75 0d                	jne    0x40f669
40f65c:	6a 01                	push   $0x1
40f65e:	8b ce                	mov    %esi,%ecx
40f660:	e8 a9 00 00 00       	call   0x40f70e
40f665:	85 c0                	test   %eax,%eax
40f667:	75 6a                	jne    0x40f6d3
40f669:	8b 46 08             	mov    0x8(%esi),%eax
40f66c:	33 c9                	xor    %ecx,%ecx
40f66e:	66 89 08             	mov    %cx,(%eax)
40f671:	eb d2                	jmp    0x40f645
40f673:	57                   	push   %edi
40f674:	57                   	push   %edi
40f675:	6a ff                	push   $0xffffffff
40f677:	56                   	push   %esi
40f678:	6a 09                	push   $0x9
40f67a:	ff 75 14             	push   0x14(%ebp)
40f67d:	e8 ed ab 00 00       	call   0x41a26f
40f682:	83 c4 18             	add    $0x18,%esp
40f685:	85 c0                	test   %eax,%eax
40f687:	75 16                	jne    0x40f69f
40f689:	ff 15 98 40 42 00    	call   *0x424098
40f68f:	50                   	push   %eax
40f690:	e8 30 f7 ff ff       	call   0x40edc5
40f695:	59                   	pop    %ecx
40f696:	e8 60 f7 ff ff       	call   0x40edfb
40f69b:	8b 00                	mov    (%eax),%eax
40f69d:	eb 34                	jmp    0x40f6d3
40f69f:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f6a2:	3b 47 0c             	cmp    0xc(%edi),%eax
40f6a5:	76 0c                	jbe    0x40f6b3
40f6a7:	50                   	push   %eax
40f6a8:	8b cf                	mov    %edi,%ecx
40f6aa:	e8 5f 00 00 00       	call   0x40f70e
40f6af:	85 c0                	test   %eax,%eax
40f6b1:	75 20                	jne    0x40f6d3
40f6b3:	ff 77 0c             	push   0xc(%edi)
40f6b6:	ff 77 08             	push   0x8(%edi)
40f6b9:	6a ff                	push   $0xffffffff
40f6bb:	56                   	push   %esi
40f6bc:	6a 09                	push   $0x9
40f6be:	ff 75 14             	push   0x14(%ebp)
40f6c1:	e8 a9 ab 00 00       	call   0x41a26f
40f6c6:	83 c4 18             	add    $0x18,%esp
40f6c9:	85 c0                	test   %eax,%eax
40f6cb:	74 bc                	je     0x40f689
40f6cd:	48                   	dec    %eax
40f6ce:	89 47 10             	mov    %eax,0x10(%edi)
40f6d1:	33 c0                	xor    %eax,%eax
40f6d3:	5f                   	pop    %edi
40f6d4:	5e                   	pop    %esi
40f6d5:	5d                   	pop    %ebp
40f6d6:	c3                   	ret
40f6d7:	8b ff                	mov    %edi,%edi
40f6d9:	55                   	push   %ebp
40f6da:	8b ec                	mov    %esp,%ebp
40f6dc:	51                   	push   %ecx
40f6dd:	ff 75 10             	push   0x10(%ebp)
40f6e0:	8d 45 ff             	lea    -0x1(%ebp),%eax
40f6e3:	50                   	push   %eax
40f6e4:	ff 75 0c             	push   0xc(%ebp)
40f6e7:	ff 75 08             	push   0x8(%ebp)
40f6ea:	e8 36 ff ff ff       	call   0x40f625
40f6ef:	83 c4 10             	add    $0x10,%esp
40f6f2:	c9                   	leave
40f6f3:	c3                   	ret
40f6f4:	8b ff                	mov    %edi,%edi
40f6f6:	56                   	push   %esi
40f6f7:	8b f1                	mov    %ecx,%esi
40f6f9:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
40f6fd:	74 0d                	je     0x40f70c
40f6ff:	ff 76 08             	push   0x8(%esi)
40f702:	e8 04 3a 00 00       	call   0x41310b
40f707:	59                   	pop    %ecx
40f708:	c6 46 14 00          	movb   $0x0,0x14(%esi)
40f70c:	5e                   	pop    %esi
40f70d:	c3                   	ret
40f70e:	8b ff                	mov    %edi,%edi
40f710:	55                   	push   %ebp
40f711:	8b ec                	mov    %esp,%ebp
40f713:	56                   	push   %esi
40f714:	57                   	push   %edi
40f715:	8b f1                	mov    %ecx,%esi
40f717:	e8 d8 ff ff ff       	call   0x40f6f4
40f71c:	8b 7d 08             	mov    0x8(%ebp),%edi
40f71f:	56                   	push   %esi
40f720:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40f723:	50                   	push   %eax
40f724:	8d 46 08             	lea    0x8(%esi),%eax
40f727:	50                   	push   %eax
40f728:	e8 20 00 00 00       	call   0x40f74d
40f72d:	83 c4 0c             	add    $0xc,%esp
40f730:	85 c0                	test   %eax,%eax
40f732:	74 0a                	je     0x40f73e
40f734:	83 66 0c 00          	andl   $0x0,0xc(%esi)
40f738:	c6 46 14 00          	movb   $0x0,0x14(%esi)
40f73c:	eb 09                	jmp    0x40f747
40f73e:	c6 46 14 01          	movb   $0x1,0x14(%esi)
40f742:	33 c0                	xor    %eax,%eax
40f744:	89 7e 0c             	mov    %edi,0xc(%esi)
40f747:	5f                   	pop    %edi
40f748:	5e                   	pop    %esi
40f749:	5d                   	pop    %ebp
40f74a:	c2 04 00             	ret    $0x4
40f74d:	8b ff                	mov    %edi,%edi
40f74f:	55                   	push   %ebp
40f750:	8b ec                	mov    %esp,%ebp
40f752:	ff 75 0c             	push   0xc(%ebp)
40f755:	e8 0c 44 00 00       	call   0x413b66
40f75a:	59                   	pop    %ecx
40f75b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f75e:	89 01                	mov    %eax,(%ecx)
40f760:	f7 d8                	neg    %eax
40f762:	1b c0                	sbb    %eax,%eax
40f764:	83 e0 f4             	and    $0xfffffff4,%eax
40f767:	83 c0 0c             	add    $0xc,%eax