5a74ee:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5a74f1:	83 ff 00             	cmp    $0x0,%edi
5a74f4:	7c 5b                	jl     0x5a7551
5a74f6:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
5a74f9:	83 fb 00             	cmp    $0x0,%ebx
5a74fc:	7c 4d                	jl     0x5a754b
5a74fe:	8b d7                	mov    %edi,%edx
5a7500:	0f af 55 f0          	imul   -0x10(%ebp),%edx
5a7504:	8b ca                	mov    %edx,%ecx
5a7506:	03 4d e8             	add    -0x18(%ebp),%ecx
5a7509:	51                   	push   %ecx
5a750a:	8b c3                	mov    %ebx,%eax
5a750c:	0f af 45 f4          	imul   -0xc(%ebp),%eax
5a7510:	8b c8                	mov    %eax,%ecx
5a7512:	03 4d ec             	add    -0x14(%ebp),%ecx
5a7515:	51                   	push   %ecx
5a7516:	2b 55 e8             	sub    -0x18(%ebp),%edx
5a7519:	52                   	push   %edx
5a751a:	2b 45 ec             	sub    -0x14(%ebp),%eax
5a751d:	50                   	push   %eax
5a751e:	e8 bd ff e5 ff       	call   0x4074e0
5a7523:	89 45 e0             	mov    %eax,-0x20(%ebp)
5a7526:	85 f6                	test   %esi,%esi
5a7528:	74 18                	je     0x5a7542
5a752a:	6a 02                	push   $0x2
5a752c:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a752f:	50                   	push   %eax
5a7530:	56                   	push   %esi
5a7531:	56                   	push   %esi
5a7532:	e8 11 ff e5 ff       	call   0x407448
5a7537:	8b 45 e0             	mov    -0x20(%ebp),%eax
5a753a:	50                   	push   %eax
5a753b:	e8 d0 ff e5 ff       	call   0x407510
5a7540:	eb 03                	jmp    0x5a7545
5a7542:	8b 75 e0             	mov    -0x20(%ebp),%esi
5a7545:	4b                   	dec    %ebx
5a7546:	83 fb ff             	cmp    $0xffffffff,%ebx
5a7549:	75 b3                	jne    0x5a74fe
5a754b:	4f                   	dec    %edi
5a754c:	83 ff ff             	cmp    $0xffffffff,%edi
5a754f:	75 a5                	jne    0x5a74f6
5a7551:	56                   	push   %esi
5a7552:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7555:	e8 66 17 e8 ff       	call   0x428cc0
5a755a:	50                   	push   %eax
5a755b:	e8 98 01 e6 ff       	call   0x4076f8
5a7560:	56                   	push   %esi
5a7561:	e8 aa ff e5 ff       	call   0x407510
5a7566:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a7569:	50                   	push   %eax
5a756a:	33 c9                	xor    %ecx,%ecx
5a756c:	33 d2                	xor    %edx,%edx
5a756e:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7571:	e8 5e 10 e8 ff       	call   0x4285d4
5a7576:	6a 00                	push   $0x0
5a7578:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a757b:	e8 40 17 e8 ff       	call   0x428cc0
5a7580:	50                   	push   %eax
5a7581:	e8 72 01 e6 ff       	call   0x4076f8
5a7586:	5f                   	pop    %edi
5a7587:	5e                   	pop    %esi
5a7588:	5b                   	pop    %ebx
5a7589:	8b e5                	mov    %ebp,%esp
5a758b:	5d                   	pop    %ebp
5a758c:	c2 0c 00             	ret    $0xc
5a758f:	90                   	nop
5a7590:	55                   	push   %ebp
5a7591:	8b ec                	mov    %esp,%ebp
5a7593:	83 c4 d0             	add    $0xffffffd0,%esp
5a7596:	53                   	push   %ebx
5a7597:	56                   	push   %esi
5a7598:	57                   	push   %edi
5a7599:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5a759c:	8b f0                	mov    %eax,%esi
5a759e:	8b 5d 08             	mov    0x8(%ebp),%ebx
5a75a1:	85 db                	test   %ebx,%ebx
5a75a3:	0f 84 da 00 00 00    	je     0x5a7683
5a75a9:	8d 45 f8             	lea    -0x8(%ebp),%eax
5a75ac:	50                   	push   %eax
5a75ad:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a75b0:	50                   	push   %eax
5a75b1:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a75b4:	50                   	push   %eax
5a75b5:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a75b8:	50                   	push   %eax
5a75b9:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a75bc:	50                   	push   %eax
5a75bd:	8b 45 10             	mov    0x10(%ebp),%eax
5a75c0:	8b cb                	mov    %ebx,%ecx
5a75c2:	8b 55 0c             	mov    0xc(%ebp),%edx
5a75c5:	e8 2a b1 ff ff       	call   0x5a26f4
5a75ca:	8b 7d f8             	mov    -0x8(%ebp),%edi
5a75cd:	d1 ff                	sar    $1,%edi
5a75cf:	79 03                	jns    0x5a75d4
5a75d1:	83 d7 00             	adc    $0x0,%edi
5a75d4:	8b 45 f4             	mov    -0xc(%ebp),%eax
5a75d7:	d1 f8                	sar    $1,%eax
5a75d9:	79 03                	jns    0x5a75de
5a75db:	83 d0 00             	adc    $0x0,%eax
5a75de:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a75e1:	c7 45 d8 35 c2 68 21 	movl   $0x2168c235,-0x28(%ebp)
5a75e8:	c7 45 dc a2 da 0f c9 	movl   $0xc90fdaa2,-0x24(%ebp)
5a75ef:	66 c7 45 e0 ff 3f    	movw   $0x3fff,-0x20(%ebp)
5a75f5:	db 6d d8             	fldt   -0x28(%ebp)
5a75f8:	d9 e0                	fchs
5a75fa:	83 c4 f4             	add    $0xfffffff4,%esp
5a75fd:	db 3c 24             	fstpt  (%esp)
5a7600:	9b                   	fwait
5a7601:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
5a7604:	db 45 d4             	fildl  -0x2c(%ebp)
5a7607:	db 2d 8c 76 5a 00    	fldt   0x5a768c
5a760d:	de c9                	fmulp  %st,%st(1)
5a760f:	d8 35 98 76 5a 00    	fdivs  0x5a7698
5a7615:	db 6d d8             	fldt   -0x28(%ebp)
5a7618:	de e9                	fsubrp %st,%st(1)
5a761a:	83 c4 f4             	add    $0xfffffff4,%esp
5a761d:	db 3c 24             	fstpt  (%esp)
5a7620:	9b                   	fwait
5a7621:	53                   	push   %ebx
5a7622:	8b c7                	mov    %edi,%eax
5a7624:	f7 e8                	imul   %eax
5a7626:	8b c8                	mov    %eax,%ecx
5a7628:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a762b:	f7 e8                	imul   %eax
5a762d:	03 c8                	add    %eax,%ecx
5a762f:	89 4d d0             	mov    %ecx,-0x30(%ebp)
5a7632:	db 45 d0             	fildl  -0x30(%ebp)
5a7635:	d9 fa                	fsqrt
5a7637:	83 c4 f4             	add    $0xfffffff4,%esp
5a763a:	db 3c 24             	fstpt  (%esp)
5a763d:	9b                   	fwait
5a763e:	e8 6d 1c 00 00       	call   0x5a92b0
5a7643:	8b c8                	mov    %eax,%ecx
5a7645:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5a7648:	8b c7                	mov    %edi,%eax
5a764a:	e8 b1 af ff ff       	call   0x5a2600
5a764f:	8b d8                	mov    %eax,%ebx
5a7651:	53                   	push   %ebx
5a7652:	8b c6                	mov    %esi,%eax
5a7654:	e8 67 16 e8 ff       	call   0x428cc0
5a7659:	50                   	push   %eax
5a765a:	e8 99 00 e6 ff       	call   0x4076f8
5a765f:	53                   	push   %ebx
5a7660:	e8 ab fe e5 ff       	call   0x407510
5a7665:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7668:	50                   	push   %eax
5a7669:	33 c9                	xor    %ecx,%ecx
5a766b:	33 d2                	xor    %edx,%edx
5a766d:	8b c6                	mov    %esi,%eax
5a766f:	e8 60 0f e8 ff       	call   0x4285d4
5a7674:	6a 00                	push   $0x0
5a7676:	8b c6                	mov    %esi,%eax
5a7678:	e8 43 16 e8 ff       	call   0x428cc0
5a767d:	50                   	push   %eax
5a767e:	e8 75 00 e6 ff       	call   0x4076f8
5a7683:	5f                   	pop    %edi
5a7684:	5e                   	pop    %esi
5a7685:	5b                   	pop    %ebx
5a7686:	8b e5                	mov    %ebp,%esp
5a7688:	5d                   	pop    %ebp
5a7689:	c2 0c 00             	ret    $0xc
5a768c:	35 c2 68 21 a2       	xor    $0xa22168c2,%eax
5a7691:	da 0f                	fimull (%edi)
5a7693:	c9                   	leave
5a7694:	00 40 00             	add    %al,0x0(%eax)
5a7697:	00 00                	add    %al,(%eax)
5a7699:	00 48 42             	add    %cl,0x42(%eax)
5a769c:	55                   	push   %ebp
5a769d:	8b ec                	mov    %esp,%ebp
5a769f:	83 c4 d0             	add    $0xffffffd0,%esp
5a76a2:	53                   	push   %ebx
5a76a3:	56                   	push   %esi
5a76a4:	57                   	push   %edi
5a76a5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5a76a8:	8b f0                	mov    %eax,%esi
5a76aa:	8b 5d 08             	mov    0x8(%ebp),%ebx
5a76ad:	85 db                	test   %ebx,%ebx
5a76af:	0f 84 da 00 00 00    	je     0x5a778f
5a76b5:	8d 45 f8             	lea    -0x8(%ebp),%eax
5a76b8:	50                   	push   %eax
5a76b9:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a76bc:	50                   	push   %eax
5a76bd:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a76c0:	50                   	push   %eax
5a76c1:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a76c4:	50                   	push   %eax
5a76c5:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a76c8:	50                   	push   %eax
5a76c9:	8b 45 10             	mov    0x10(%ebp),%eax
5a76cc:	8b cb                	mov    %ebx,%ecx
5a76ce:	8b 55 0c             	mov    0xc(%ebp),%edx
5a76d1:	e8 1e b0 ff ff       	call   0x5a26f4
5a76d6:	8b 7d f8             	mov    -0x8(%ebp),%edi
5a76d9:	d1 ff                	sar    $1,%edi
5a76db:	79 03                	jns    0x5a76e0
5a76dd:	83 d7 00             	adc    $0x0,%edi
5a76e0:	8b 45 f4             	mov    -0xc(%ebp),%eax
5a76e3:	d1 f8                	sar    $1,%eax
5a76e5:	79 03                	jns    0x5a76ea
5a76e7:	83 d0 00             	adc    $0x0,%eax
5a76ea:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a76ed:	c7 45 d8 35 c2 68 21 	movl   $0x2168c235,-0x28(%ebp)
5a76f4:	c7 45 dc a2 da 0f c9 	movl   $0xc90fdaa2,-0x24(%ebp)
5a76fb:	66 c7 45 e0 ff 3f    	movw   $0x3fff,-0x20(%ebp)
5a7701:	db 6d d8             	fldt   -0x28(%ebp)
5a7704:	d9 e0                	fchs
5a7706:	83 c4 f4             	add    $0xfffffff4,%esp
5a7709:	db 3c 24             	fstpt  (%esp)
5a770c:	9b                   	fwait
5a770d:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
5a7710:	db 45 d4             	fildl  -0x2c(%ebp)
5a7713:	db 2d 98 77 5a 00    	fldt   0x5a7798
5a7719:	de c9                	fmulp  %st,%st(1)
5a771b:	d8 35 a4 77 5a 00    	fdivs  0x5a77a4
5a7721:	db 6d d8             	fldt   -0x28(%ebp)
5a7724:	de e9                	fsubrp %st,%st(1)
5a7726:	83 c4 f4             	add    $0xfffffff4,%esp
5a7729:	db 3c 24             	fstpt  (%esp)
5a772c:	9b                   	fwait
5a772d:	53                   	push   %ebx
5a772e:	8b c7                	mov    %edi,%eax
5a7730:	f7 e8                	imul   %eax
5a7732:	8b c8                	mov    %eax,%ecx
5a7734:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7737:	f7 e8                	imul   %eax
5a7739:	03 c8                	add    %eax,%ecx
5a773b:	89 4d d0             	mov    %ecx,-0x30(%ebp)
5a773e:	db 45 d0             	fildl  -0x30(%ebp)
5a7741:	d9 fa                	fsqrt
5a7743:	83 c4 f4             	add    $0xfffffff4,%esp
5a7746:	db 3c 24             	fstpt  (%esp)
5a7749:	9b                   	fwait
5a774a:	e8 61 1b 00 00       	call   0x5a92b0
5a774f:	8b c8                	mov    %eax,%ecx
5a7751:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5a7754:	8b c7                	mov    %edi,%eax
5a7756:	e8 a5 ae ff ff       	call   0x5a2600
5a775b:	8b d8                	mov    %eax,%ebx
5a775d:	53                   	push   %ebx
5a775e:	8b c6                	mov    %esi,%eax
5a7760:	e8 5b 15 e8 ff       	call   0x428cc0
5a7765:	50                   	push   %eax
5a7766:	e8 8d ff e5 ff       	call   0x4076f8
5a776b:	53                   	push   %ebx
5a776c:	e8 9f fd e5 ff       	call   0x407510
5a7771:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7774:	50                   	push   %eax
5a7775:	33 c9                	xor    %ecx,%ecx
5a7777:	33 d2                	xor    %edx,%edx
5a7779:	8b c6                	mov    %esi,%eax
5a777b:	e8 54 0e e8 ff       	call   0x4285d4
5a7780:	6a 00                	push   $0x0
5a7782:	8b c6                	mov    %esi,%eax
5a7784:	e8 37 15 e8 ff       	call   0x428cc0
5a7789:	50                   	push   %eax
5a778a:	e8 69 ff e5 ff       	call   0x4076f8
5a778f:	5f                   	pop    %edi
5a7790:	5e                   	pop    %esi
5a7791:	5b                   	pop    %ebx
5a7792:	8b e5                	mov    %ebp,%esp
5a7794:	5d                   	pop    %ebp
5a7795:	c2 0c 00             	ret    $0xc
5a7798:	35 c2 68 21 a2       	xor    $0xa22168c2,%eax
5a779d:	da 0f                	fimull (%edi)
5a779f:	c9                   	leave
5a77a0:	00 c0                	add    %al,%al
5a77a2:	00 00                	add    %al,(%eax)
5a77a4:	00 00                	add    %al,(%eax)
5a77a6:	48                   	dec    %eax
5a77a7:	42                   	inc    %edx
5a77a8:	55                   	push   %ebp
5a77a9:	8b ec                	mov    %esp,%ebp
5a77ab:	83 c4 d4             	add    $0xffffffd4,%esp
5a77ae:	53                   	push   %ebx
5a77af:	56                   	push   %esi
5a77b0:	57                   	push   %edi
5a77b1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5a77b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a77b7:	8d 7d d4             	lea    -0x2c(%ebp),%edi
5a77ba:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a77bd:	50                   	push   %eax
5a77be:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a77c1:	50                   	push   %eax
5a77c2:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a77c5:	50                   	push   %eax
5a77c6:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a77c9:	50                   	push   %eax
5a77ca:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5a77cd:	50                   	push   %eax
5a77ce:	8b 45 10             	mov    0x10(%ebp),%eax
5a77d1:	8b 4d 08             	mov    0x8(%ebp),%ecx
5a77d4:	8b 55 0c             	mov    0xc(%ebp),%edx
5a77d7:	e8 18 af ff ff       	call   0x5a26f4
5a77dc:	33 db                	xor    %ebx,%ebx
5a77de:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a77e1:	99                   	cltd
5a77e2:	f7 7d e4             	idivl  -0x1c(%ebp)
5a77e5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a77e8:	8b 45 10             	mov    0x10(%ebp),%eax
5a77eb:	57                   	push   %edi
5a77ec:	8b f0                	mov    %eax,%esi
5a77ee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a77ef:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a77f0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a77f1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a77f2:	5f                   	pop    %edi
5a77f3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a77f6:	d1 f8                	sar    $1,%eax
5a77f8:	79 03                	jns    0x5a77fd
5a77fa:	83 d0 00             	adc    $0x0,%eax
5a77fd:	50                   	push   %eax
5a77fe:	6a 00                	push   $0x0
5a7800:	57                   	push   %edi
5a7801:	e8 72 04 e6 ff       	call   0x407c78
5a7806:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7809:	f7 6d 08             	imull  0x8(%ebp)
5a780c:	b9 c8 00 00 00       	mov    $0xc8,%ecx
5a7811:	99                   	cltd
5a7812:	f7 f9                	idiv   %ecx
5a7814:	29 47 04             	sub    %eax,0x4(%edi)
5a7817:	03 c0                	add    %eax,%eax
5a7819:	03 47 04             	add    0x4(%edi),%eax
5a781c:	89 47 0c             	mov    %eax,0xc(%edi)
5a781f:	eb 2c                	jmp    0x5a784d
5a7821:	57                   	push   %edi
5a7822:	e8 c1 fc e5 ff       	call   0x4074e8
5a7827:	8b f0                	mov    %eax,%esi
5a7829:	85 db                	test   %ebx,%ebx
5a782b:	74 12                	je     0x5a783f
5a782d:	6a 02                	push   $0x2
5a782f:	56                   	push   %esi
5a7830:	53                   	push   %ebx
5a7831:	53                   	push   %ebx
5a7832:	e8 11 fc e5 ff       	call   0x407448
5a7837:	56                   	push   %esi
5a7838:	e8 d3 fc e5 ff       	call   0x407510
5a783d:	eb 02                	jmp    0x5a7841
5a783f:	8b de                	mov    %esi,%ebx
5a7841:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7844:	50                   	push   %eax
5a7845:	6a 00                	push   $0x0
5a7847:	57                   	push   %edi
5a7848:	e8 2b 04 e6 ff       	call   0x407c78
5a784d:	8b 47 04             	mov    0x4(%edi),%eax
5a7850:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5a7853:	7c cc                	jl     0x5a7821
5a7855:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a7858:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a785b:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
5a785f:	7d 07                	jge    0x5a7868