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
5a7861:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
5a7868:	8b 45 10             	mov    0x10(%ebp),%eax
5a786b:	57                   	push   %edi
5a786c:	8b f0                	mov    %eax,%esi
5a786e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a786f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7870:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7871:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7872:	5f                   	pop    %edi
5a7873:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7876:	f7 6d 08             	imull  0x8(%ebp)
5a7879:	b9 64 00 00 00       	mov    $0x64,%ecx
5a787e:	99                   	cltd
5a787f:	f7 f9                	idiv   %ecx
5a7881:	89 47 08             	mov    %eax,0x8(%edi)
5a7884:	eb 2c                	jmp    0x5a78b2
5a7886:	57                   	push   %edi
5a7887:	e8 5c fc e5 ff       	call   0x4074e8
5a788c:	8b f0                	mov    %eax,%esi
5a788e:	85 db                	test   %ebx,%ebx
5a7890:	74 12                	je     0x5a78a4
5a7892:	6a 02                	push   $0x2
5a7894:	56                   	push   %esi
5a7895:	53                   	push   %ebx
5a7896:	53                   	push   %ebx
5a7897:	e8 ac fb e5 ff       	call   0x407448
5a789c:	56                   	push   %esi
5a789d:	e8 6e fc e5 ff       	call   0x407510
5a78a2:	eb 02                	jmp    0x5a78a6
5a78a4:	8b de                	mov    %esi,%ebx
5a78a6:	6a 00                	push   $0x0
5a78a8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a78ab:	50                   	push   %eax
5a78ac:	57                   	push   %edi
5a78ad:	e8 c6 03 e6 ff       	call   0x407c78
5a78b2:	8b 07                	mov    (%edi),%eax
5a78b4:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5a78b7:	7c cd                	jl     0x5a7886
5a78b9:	53                   	push   %ebx
5a78ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a78bd:	e8 fe 13 e8 ff       	call   0x428cc0
5a78c2:	50                   	push   %eax
5a78c3:	e8 30 fe e5 ff       	call   0x4076f8
5a78c8:	53                   	push   %ebx
5a78c9:	e8 42 fc e5 ff       	call   0x407510
5a78ce:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a78d1:	50                   	push   %eax
5a78d2:	33 c9                	xor    %ecx,%ecx
5a78d4:	33 d2                	xor    %edx,%edx
5a78d6:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a78d9:	e8 f6 0c e8 ff       	call   0x4285d4
5a78de:	6a 00                	push   $0x0
5a78e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a78e3:	e8 d8 13 e8 ff       	call   0x428cc0
5a78e8:	50                   	push   %eax
5a78e9:	e8 0a fe e5 ff       	call   0x4076f8
5a78ee:	5f                   	pop    %edi
5a78ef:	5e                   	pop    %esi
5a78f0:	5b                   	pop    %ebx
5a78f1:	8b e5                	mov    %ebp,%esp
5a78f3:	5d                   	pop    %ebp
5a78f4:	c2 0c 00             	ret    $0xc
5a78f7:	90                   	nop
5a78f8:	55                   	push   %ebp
5a78f9:	8b ec                	mov    %esp,%ebp
5a78fb:	83 c4 d4             	add    $0xffffffd4,%esp
5a78fe:	53                   	push   %ebx
5a78ff:	56                   	push   %esi
5a7900:	57                   	push   %edi
5a7901:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5a7904:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a7907:	8d 7d d4             	lea    -0x2c(%ebp),%edi
5a790a:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a790d:	50                   	push   %eax
5a790e:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a7911:	50                   	push   %eax
5a7912:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a7915:	50                   	push   %eax
5a7916:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a7919:	50                   	push   %eax
5a791a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5a791d:	50                   	push   %eax
5a791e:	8b 45 10             	mov    0x10(%ebp),%eax
5a7921:	8b 4d 08             	mov    0x8(%ebp),%ecx
5a7924:	8b 55 0c             	mov    0xc(%ebp),%edx
5a7927:	e8 c8 ad ff ff       	call   0x5a26f4
5a792c:	33 db                	xor    %ebx,%ebx
5a792e:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a7931:	99                   	cltd
5a7932:	f7 7d e4             	idivl  -0x1c(%ebp)
5a7935:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a7938:	8b 45 10             	mov    0x10(%ebp),%eax
5a793b:	57                   	push   %edi
5a793c:	8b f0                	mov    %eax,%esi
5a793e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a793f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7940:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7941:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7942:	5f                   	pop    %edi
5a7943:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7946:	d1 f8                	sar    $1,%eax
5a7948:	79 03                	jns    0x5a794d
5a794a:	83 d0 00             	adc    $0x0,%eax
5a794d:	50                   	push   %eax
5a794e:	6a 00                	push   $0x0
5a7950:	57                   	push   %edi
5a7951:	e8 22 03 e6 ff       	call   0x407c78
5a7956:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7959:	f7 6d 08             	imull  0x8(%ebp)
5a795c:	b9 c8 00 00 00       	mov    $0xc8,%ecx
5a7961:	99                   	cltd
5a7962:	f7 f9                	idiv   %ecx
5a7964:	29 47 04             	sub    %eax,0x4(%edi)
5a7967:	03 c0                	add    %eax,%eax
5a7969:	03 47 04             	add    0x4(%edi),%eax
5a796c:	89 47 0c             	mov    %eax,0xc(%edi)
5a796f:	eb 2c                	jmp    0x5a799d
5a7971:	57                   	push   %edi
5a7972:	e8 71 fb e5 ff       	call   0x4074e8
5a7977:	8b f0                	mov    %eax,%esi
5a7979:	85 db                	test   %ebx,%ebx
5a797b:	74 12                	je     0x5a798f
5a797d:	6a 02                	push   $0x2
5a797f:	56                   	push   %esi
5a7980:	53                   	push   %ebx
5a7981:	53                   	push   %ebx
5a7982:	e8 c1 fa e5 ff       	call   0x407448
5a7987:	56                   	push   %esi
5a7988:	e8 83 fb e5 ff       	call   0x407510
5a798d:	eb 02                	jmp    0x5a7991
5a798f:	8b de                	mov    %esi,%ebx
5a7991:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7994:	50                   	push   %eax
5a7995:	6a 00                	push   $0x0
5a7997:	57                   	push   %edi
5a7998:	e8 db 02 e6 ff       	call   0x407c78
5a799d:	8b 47 04             	mov    0x4(%edi),%eax
5a79a0:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5a79a3:	7c cc                	jl     0x5a7971
5a79a5:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a79a8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a79ab:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
5a79af:	7d 07                	jge    0x5a79b8
5a79b1:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
5a79b8:	8b 45 10             	mov    0x10(%ebp),%eax
5a79bb:	57                   	push   %edi
5a79bc:	8b f0                	mov    %eax,%esi
5a79be:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79bf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79c0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79c1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79c2:	5f                   	pop    %edi
5a79c3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a79c6:	f7 6d 08             	imull  0x8(%ebp)
5a79c9:	b9 64 00 00 00       	mov    $0x64,%ecx
5a79ce:	99                   	cltd
5a79cf:	f7 f9                	idiv   %ecx
5a79d1:	8b 57 08             	mov    0x8(%edi),%edx
5a79d4:	2b d0                	sub    %eax,%edx
5a79d6:	89 17                	mov    %edx,(%edi)
5a79d8:	eb 2e                	jmp    0x5a7a08
5a79da:	57                   	push   %edi
5a79db:	e8 08 fb e5 ff       	call   0x4074e8
5a79e0:	8b f0                	mov    %eax,%esi
5a79e2:	85 db                	test   %ebx,%ebx
5a79e4:	74 12                	je     0x5a79f8
5a79e6:	6a 02                	push   $0x2
5a79e8:	56                   	push   %esi
5a79e9:	53                   	push   %ebx
5a79ea:	53                   	push   %ebx
5a79eb:	e8 58 fa e5 ff       	call   0x407448
5a79f0:	56                   	push   %esi
5a79f1:	e8 1a fb e5 ff       	call   0x407510
5a79f6:	eb 02                	jmp    0x5a79fa
5a79f8:	8b de                	mov    %esi,%ebx