4094ab:	74 06                	je     0x4094b3
4094ad:	db 2c 24             	fldt   (%esp)
4094b0:	dd 1e                	fstpl  (%esi)
4094b2:	9b                   	fwait
4094b3:	83 c4 0c             	add    $0xc,%esp
4094b6:	5e                   	pop    %esi
4094b7:	5b                   	pop    %ebx
4094b8:	c3                   	ret
4094b9:	8d 40 00             	lea    0x0(%eax),%eax
4094bc:	53                   	push   %ebx
4094bd:	56                   	push   %esi
4094be:	83 c4 f4             	add    $0xfffffff4,%esp
4094c1:	8b f2                	mov    %edx,%esi
4094c3:	8b d8                	mov    %eax,%ebx
4094c5:	8b c3                	mov    %ebx,%eax
4094c7:	e8 8c af ff ff       	call   0x404458
4094cc:	8b d4                	mov    %esp,%edx
4094ce:	33 c9                	xor    %ecx,%ecx
4094d0:	e8 2b fe ff ff       	call   0x409300
4094d5:	84 c0                	test   %al,%al
4094d7:	74 06                	je     0x4094df
4094d9:	db 2c 24             	fldt   (%esp)
4094dc:	d9 1e                	fstps  (%esi)
4094de:	9b                   	fwait
4094df:	83 c4 0c             	add    $0xc,%esp
4094e2:	5e                   	pop    %esi
4094e3:	5b                   	pop    %ebx
4094e4:	c3                   	ret
4094e5:	8d 40 00             	lea    0x0(%eax),%eax
4094e8:	53                   	push   %ebx
4094e9:	56                   	push   %esi
4094ea:	8b f2                	mov    %edx,%esi
4094ec:	8b d8                	mov    %eax,%ebx
4094ee:	8b c3                	mov    %ebx,%eax
4094f0:	e8 63 af ff ff       	call   0x404458
4094f5:	8b d6                	mov    %esi,%edx
4094f7:	b1 01                	mov    $0x1,%cl
4094f9:	e8 02 fe ff ff       	call   0x409300
4094fe:	5e                   	pop    %esi
4094ff:	5b                   	pop    %ebx
409500:	c3                   	ret
409501:	8d 40 00             	lea    0x0(%eax),%eax
409504:	55                   	push   %ebp
409505:	8b ec                	mov    %esp,%ebp
409507:	53                   	push   %ebx
409508:	31 db                	xor    %ebx,%ebx
40950a:	89 c1                	mov    %eax,%ecx
40950c:	dd 45 08             	fldl   0x8(%ebp)
40950f:	d8 8b 7c 31 46 00    	fmuls  0x46317c(%ebx)
409515:	83 ec 08             	sub    $0x8,%esp
409518:	df 3c 24             	fistpll (%esp)
40951b:	9b                   	fwait
40951c:	58                   	pop    %eax
40951d:	5a                   	pop    %edx
40951e:	09 d2                	or     %edx,%edx
409520:	79 11                	jns    0x409533
409522:	f7 da                	neg    %edx
409524:	f7 d8                	neg    %eax
409526:	83 da 00             	sbb    $0x0,%edx
409529:	f7 b3 80 31 46 00    	divl   0x463180(%ebx)
40952f:	f7 d8                	neg    %eax
409531:	eb 06                	jmp    0x409539
409533:	f7 b3 80 31 46 00    	divl   0x463180(%ebx)
409539:	05 5a 95 0a 00       	add    $0xa955a,%eax
40953e:	89 11                	mov    %edx,(%ecx)
409540:	89 41 04             	mov    %eax,0x4(%ecx)
409543:	5b                   	pop    %ebx
409544:	5d                   	pop    %ebp
409545:	c2 08 00             	ret    $0x8
409548:	55                   	push   %ebp
409549:	8b ec                	mov    %esp,%ebp
40954b:	83 c4 f8             	add    $0xfffffff8,%esp
40954e:	56                   	push   %esi
40954f:	8b 75 0c             	mov    0xc(%ebp),%esi
409552:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
409556:	66 83 f8 18          	cmp    $0x18,%ax
40955a:	73 4d                	jae    0x4095a9
40955c:	66 83 fa 3c          	cmp    $0x3c,%dx
409560:	73 47                	jae    0x4095a9
409562:	66 83 f9 3c          	cmp    $0x3c,%cx
409566:	73 41                	jae    0x4095a9
409568:	66 81 fe e8 03       	cmp    $0x3e8,%si
40956d:	73 3a                	jae    0x4095a9
40956f:	0f b7 c0             	movzwl %ax,%eax
409572:	69 c0 80 ee 36 00    	imul   $0x36ee80,%eax,%eax
409578:	0f b7 d2             	movzwl %dx,%edx
40957b:	69 d2 60 ea 00 00    	imul   $0xea60,%edx,%edx
409581:	03 c2                	add    %edx,%eax
409583:	0f b7 d1             	movzwl %cx,%edx
409586:	69 d2 e8 03 00 00    	imul   $0x3e8,%edx,%edx
40958c:	03 c2                	add    %edx,%eax
40958e:	0f b7 d6             	movzwl %si,%edx
409591:	03 c2                	add    %edx,%eax
409593:	89 45 f8             	mov    %eax,-0x8(%ebp)
409596:	db 45 f8             	fildl  -0x8(%ebp)
409599:	d8 35 b4 95 40 00    	fdivs  0x4095b4
40959f:	8b 45 08             	mov    0x8(%ebp),%eax
4095a2:	dd 18                	fstpl  (%eax)
4095a4:	9b                   	fwait
4095a5:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
4095a9:	8a 45 ff             	mov    -0x1(%ebp),%al
4095ac:	5e                   	pop    %esi
4095ad:	59                   	pop    %ecx
4095ae:	59                   	pop    %ecx
4095af:	5d                   	pop    %ebp
4095b0:	c2 08 00             	ret    $0x8
4095b3:	00 80 cb a4 4c 55    	add    %al,0x554ca4cb(%eax)
4095b9:	8b ec                	mov    %esp,%ebp
4095bb:	83 c4 f4             	add    $0xfffffff4,%esp
4095be:	53                   	push   %ebx
4095bf:	56                   	push   %esi
4095c0:	57                   	push   %edi
4095c1:	8b f9                	mov    %ecx,%edi
4095c3:	8b f2                	mov    %edx,%esi
4095c5:	8b d8                	mov    %eax,%ebx
4095c7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4095ca:	50                   	push   %eax
4095cb:	ff 75 10             	push   0x10(%ebp)
4095ce:	ff 75 0c             	push   0xc(%ebp)
4095d1:	8d 45 f4             	lea    -0xc(%ebp),%eax
4095d4:	e8 2b ff ff ff       	call   0x409504
4095d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4095dc:	8d 4d fe             	lea    -0x2(%ebp),%ecx
4095df:	66 ba 60 ea          	mov    $0xea60,%dx
4095e3:	e8 b8 e4 ff ff       	call   0x407aa0
4095e8:	56                   	push   %esi
4095e9:	8b cb                	mov    %ebx,%ecx
4095eb:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
4095ef:	66 ba 3c 00          	mov    $0x3c,%dx
4095f3:	e8 a8 e4 ff ff       	call   0x407aa0
4095f8:	8b 45 08             	mov    0x8(%ebp),%eax
4095fb:	50                   	push   %eax
4095fc:	8b cf                	mov    %edi,%ecx
4095fe:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
409602:	66 ba e8 03          	mov    $0x3e8,%dx
409606:	e8 95 e4 ff ff       	call   0x407aa0
40960b:	5f                   	pop    %edi
40960c:	5e                   	pop    %esi
40960d:	5b                   	pop    %ebx
40960e:	8b e5                	mov    %ebp,%esp
409610:	5d                   	pop    %ebp
409611:	c2 0c 00             	ret    $0xc
409614:	53                   	push   %ebx
409615:	56                   	push   %esi
409616:	8b c8                	mov    %eax,%ecx
409618:	0f b7 c1             	movzwl %cx,%eax
40961b:	83 e0 03             	and    $0x3,%eax
40961e:	85 c0                	test   %eax,%eax
409620:	75 21                	jne    0x409643
409622:	0f b7 d9             	movzwl %cx,%ebx
409625:	8b c3                	mov    %ebx,%eax
409627:	be 64 00 00 00       	mov    $0x64,%esi
40962c:	33 d2                	xor    %edx,%edx
40962e:	f7 f6                	div    %esi
409630:	85 d2                	test   %edx,%edx
409632:	75 14                	jne    0x409648
409634:	8b c3                	mov    %ebx,%eax
409636:	b9 90 01 00 00       	mov    $0x190,%ecx
40963b:	33 d2                	xor    %edx,%edx
40963d:	f7 f1                	div    %ecx
40963f:	85 d2                	test   %edx,%edx
409641:	74 05                	je     0x409648
409643:	33 c0                	xor    %eax,%eax
409645:	5e                   	pop    %esi
409646:	5b                   	pop    %ebx
409647:	c3                   	ret
409648:	b0 01                	mov    $0x1,%al
40964a:	5e                   	pop    %esi
40964b:	5b                   	pop    %ebx
40964c:	c3                   	ret
40964d:	8d 40 00             	lea    0x0(%eax),%eax
409650:	55                   	push   %ebp
409651:	8b ec                	mov    %esp,%ebp
409653:	83 c4 f8             	add    $0xfffffff8,%esp
409656:	53                   	push   %ebx
409657:	56                   	push   %esi
409658:	57                   	push   %edi
409659:	8b d9                	mov    %ecx,%ebx
40965b:	8b fa                	mov    %edx,%edi
40965d:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
409661:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
409665:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
409669:	e8 a6 ff ff ff       	call   0x409614
40966e:	83 e0 7f             	and    $0x7f,%eax
409671:	8d 04 40             	lea    (%eax,%eax,2),%eax
409674:	8d 34 c5 dc 30 46 00 	lea    0x4630dc(,%eax,8),%esi
40967b:	66 83 7d fe 01       	cmpw   $0x1,-0x2(%ebp)
409680:	0f 82 86 00 00 00    	jb     0x40970c
409686:	66 81 7d fe 0f 27    	cmpw   $0x270f,-0x2(%ebp)
40968c:	77 7e                	ja     0x40970c
40968e:	66 83 ff 01          	cmp    $0x1,%di
409692:	72 78                	jb     0x40970c
409694:	66 83 ff 0c          	cmp    $0xc,%di
409698:	77 72                	ja     0x40970c
40969a:	66 83 fb 01          	cmp    $0x1,%bx
40969e:	72 6c                	jb     0x40970c
4096a0:	0f b7 c7             	movzwl %di,%eax
4096a3:	66 3b 5c 46 fe       	cmp    -0x2(%esi,%eax,2),%bx
4096a8:	77 62                	ja     0x40970c
4096aa:	0f b7 c7             	movzwl %di,%eax
4096ad:	48                   	dec    %eax
4096ae:	85 c0                	test   %eax,%eax
4096b0:	7e 0e                	jle    0x4096c0
4096b2:	b9 01 00 00 00       	mov    $0x1,%ecx
4096b7:	66 03 5c 4e fe       	add    -0x2(%esi,%ecx,2),%bx
4096bc:	41                   	inc    %ecx
4096bd:	48                   	dec    %eax
4096be:	75 f7                	jne    0x4096b7
4096c0:	0f b7 4d fe          	movzwl -0x2(%ebp),%ecx
4096c4:	49                   	dec    %ecx
4096c5:	8b c1                	mov    %ecx,%eax
4096c7:	be 64 00 00 00       	mov    $0x64,%esi
4096cc:	99                   	cltd
4096cd:	f7 fe                	idiv   %esi
4096cf:	69 f1 6d 01 00 00    	imul   $0x16d,%ecx,%esi
4096d5:	8b d1                	mov    %ecx,%edx
4096d7:	85 d2                	test   %edx,%edx
4096d9:	79 03                	jns    0x4096de
4096db:	83 c2 03             	add    $0x3,%edx
4096de:	c1 fa 02             	sar    $0x2,%edx
4096e1:	03 f2                	add    %edx,%esi
4096e3:	2b f0                	sub    %eax,%esi
4096e5:	8b c1                	mov    %ecx,%eax
4096e7:	b9 90 01 00 00       	mov    $0x190,%ecx
4096ec:	99                   	cltd
4096ed:	f7 f9                	idiv   %ecx
4096ef:	03 f0                	add    %eax,%esi
4096f1:	0f b7 c3             	movzwl %bx,%eax
4096f4:	03 f0                	add    %eax,%esi
4096f6:	81 ee 5a 95 0a 00    	sub    $0xa955a,%esi
4096fc:	89 75 f8             	mov    %esi,-0x8(%ebp)
4096ff:	db 45 f8             	fildl  -0x8(%ebp)
409702:	8b 45 08             	mov    0x8(%ebp),%eax
409705:	dd 18                	fstpl  (%eax)
409707:	9b                   	fwait
409708:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
40970c:	8a 45 fd             	mov    -0x3(%ebp),%al
40970f:	5f                   	pop    %edi
409710:	5e                   	pop    %esi
409711:	5b                   	pop    %ebx
409712:	59                   	pop    %ecx
409713:	59                   	pop    %ecx
409714:	5d                   	pop    %ebp
409715:	c2 04 00             	ret    $0x4
409718:	55                   	push   %ebp
409719:	8b ec                	mov    %esp,%ebp
40971b:	83 c4 e8             	add    $0xffffffe8,%esp
40971e:	53                   	push   %ebx
40971f:	56                   	push   %esi
409720:	89 4d f4             	mov    %ecx,-0xc(%ebp)
409723:	89 55 f8             	mov    %edx,-0x8(%ebp)
409726:	89 45 fc             	mov    %eax,-0x4(%ebp)
409729:	8b 5d 08             	mov    0x8(%ebp),%ebx
40972c:	ff 75 10             	push   0x10(%ebp)
40972f:	ff 75 0c             	push   0xc(%ebp)
409732:	8d 45 e8             	lea    -0x18(%ebp),%eax
409735:	e8 ca fd ff ff       	call   0x409504
40973a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40973d:	85 c9                	test   %ecx,%ecx
40973f:	7f 24                	jg     0x409765
409741:	8b 45 fc             	mov    -0x4(%ebp),%eax
409744:	66 c7 00 00 00       	movw   $0x0,(%eax)
409749:	8b 45 f8             	mov    -0x8(%ebp),%eax
40974c:	66 c7 00 00 00       	movw   $0x0,(%eax)
409751:	8b 45 f4             	mov    -0xc(%ebp),%eax
409754:	66 c7 00 00 00       	movw   $0x0,(%eax)
409759:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40975e:	33 d2                	xor    %edx,%edx
409760:	e9 f2 00 00 00       	jmp    0x409857
409765:	8b c1                	mov    %ecx,%eax
409767:	be 07 00 00 00       	mov    $0x7,%esi
40976c:	99                   	cltd
40976d:	f7 fe                	idiv   %esi
40976f:	42                   	inc    %edx
409770:	66 89 13             	mov    %dx,(%ebx)
409773:	49                   	dec    %ecx
409774:	66 bb 01 00          	mov    $0x1,%bx
409778:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40977e:	7c 13                	jl     0x409793
409780:	81 e9 b1 3a 02 00    	sub    $0x23ab1,%ecx
409786:	66 81 c3 90 01       	add    $0x190,%bx
40978b:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
409791:	7d ed                	jge    0x409780
409793:	8d 45 f2             	lea    -0xe(%ebp),%eax
409796:	50                   	push   %eax
409797:	8d 45 f0             	lea    -0x10(%ebp),%eax
40979a:	66 ba ac 8e          	mov    $0x8eac,%dx
40979e:	91                   	xchg   %eax,%ecx
40979f:	e8 fc e2 ff ff       	call   0x407aa0
4097a4:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
4097a9:	75 0a                	jne    0x4097b5
4097ab:	66 ff 4d f0          	decw   -0x10(%ebp)
4097af:	66 81 45 f2 ac 8e    	addw   $0x8eac,-0xe(%ebp)
4097b5:	66 6b 45 f0 64       	imul   $0x64,-0x10(%ebp),%ax
4097ba:	66 03 d8             	add    %ax,%bx
4097bd:	8d 45 f2             	lea    -0xe(%ebp),%eax
4097c0:	50                   	push   %eax
4097c1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4097c4:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
4097c8:	66 ba b5 05          	mov    $0x5b5,%dx
4097cc:	e8 cf e2 ff ff       	call   0x407aa0
4097d1:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
4097d5:	c1 e0 02             	shl    $0x2,%eax
4097d8:	66 03 d8             	add    %ax,%bx
4097db:	8d 45 f2             	lea    -0xe(%ebp),%eax
4097de:	50                   	push   %eax
4097df:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4097e2:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
4097e6:	66 ba 6d 01          	mov    $0x16d,%dx
4097ea:	e8 b1 e2 ff ff       	call   0x407aa0
4097ef:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
4097f4:	75 0a                	jne    0x409800
4097f6:	66 ff 4d f0          	decw   -0x10(%ebp)
4097fa:	66 81 45 f2 6d 01    	addw   $0x16d,-0xe(%ebp)
409800:	66 03 5d f0          	add    -0x10(%ebp),%bx
409804:	8b c3                	mov    %ebx,%eax
409806:	e8 09 fe ff ff       	call   0x409614
40980b:	8b d0                	mov    %eax,%edx
40980d:	33 c0                	xor    %eax,%eax
40980f:	8a c2                	mov    %dl,%al
409811:	8d 04 40             	lea    (%eax,%eax,2),%eax
409814:	8d 34 c5 dc 30 46 00 	lea    0x4630dc(,%eax,8),%esi
40981b:	66 b8 01 00          	mov    $0x1,%ax
40981f:	0f b7 c8             	movzwl %ax,%ecx
409822:	66 8b 4c 4e fe       	mov    -0x2(%esi,%ecx,2),%cx
409827:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
40982b:	66 8b 4d f2          	mov    -0xe(%ebp),%cx
40982f:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
409833:	72 0b                	jb     0x409840
409835:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
409839:	66 29 4d f2          	sub    %cx,-0xe(%ebp)
40983d:	40                   	inc    %eax
40983e:	eb df                	jmp    0x40981f
409840:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409843:	66 89 19             	mov    %bx,(%ecx)
409846:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409849:	66 89 01             	mov    %ax,(%ecx)
40984c:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
409850:	40                   	inc    %eax
409851:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409854:	66 89 01             	mov    %ax,(%ecx)
409857:	8b c2                	mov    %edx,%eax
409859:	5e                   	pop    %esi
40985a:	5b                   	pop    %ebx
40985b:	8b e5                	mov    %ebp,%esp
40985d:	5d                   	pop    %ebp
40985e:	c2 0c 00             	ret    $0xc
409861:	8d 40 00             	lea    0x0(%eax),%eax
409864:	55                   	push   %ebp
409865:	8b ec                	mov    %esp,%ebp