472566:	ff 07                	incl   (%edi)
472568:	e9 f3 03 f9 ff       	jmp    0x402960
47256d:	8b 46 28             	mov    0x28(%esi),%eax
472570:	3b d0                	cmp    %eax,%edx
472572:	75 08                	jne    0x47257c
472574:	8d 48 01             	lea    0x1(%eax),%ecx
472577:	e9 3d 04 f9 ff       	jmp    0x4029b9
47257c:	c7 46 38 10 00 00 10 	movl   $0x10000010,0x38(%esi)
472583:	e9 31 04 f9 ff       	jmp    0x4029b9
472588:	8b 46 08             	mov    0x8(%esi),%eax
47258b:	85 c0                	test   %eax,%eax
47258d:	0f 84 16 fc f8 ff    	je     0x4021a9
472593:	c1 e0 02             	shl    $0x2,%eax
472596:	50                   	push   %eax
472597:	ff 76 04             	push   0x4(%esi)
47259a:	57                   	push   %edi
47259b:	e8 e0 c8 fa ff       	call   0x41ee80
4725a0:	ff 76 04             	push   0x4(%esi)
4725a3:	e8 b6 cf fa ff       	call   0x41f55e
4725a8:	83 c4 10             	add    $0x10,%esp
4725ab:	e9 f9 fb f8 ff       	jmp    0x4021a9
4725b0:	33 ff                	xor    %edi,%edi
4725b2:	e9 b2 fb f8 ff       	jmp    0x402169
4725b7:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4725bb:	0f 84 b3 70 f9 ff    	je     0x409674
4725c1:	e9 94 6e f9 ff       	jmp    0x40945a
4725c6:	8b 46 28             	mov    0x28(%esi),%eax
4725c9:	39 45 e0             	cmp    %eax,-0x20(%ebp)
4725cc:	75 08                	jne    0x4725d6
4725ce:	8d 50 01             	lea    0x1(%eax),%edx
4725d1:	e9 f3 6e f9 ff       	jmp    0x4094c9
4725d6:	c7 46 38 10 00 00 10 	movl   $0x10000010,0x38(%esi)
4725dd:	e9 e7 6e f9 ff       	jmp    0x4094c9
4725e2:	ff 45 f0             	incl   -0x10(%ebp)
4725e5:	6a 01                	push   $0x1
4725e7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4725ea:	50                   	push   %eax
4725eb:	8b ce                	mov    %esi,%ecx
4725ed:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
4725f4:	e8 5d 03 f9 ff       	call   0x402956
4725f9:	8b c8                	mov    %eax,%ecx
4725fb:	e9 cc 6e f9 ff       	jmp    0x4094cc
472600:	48                   	dec    %eax
472601:	89 01                	mov    %eax,(%ecx)
472603:	8d 4d cc             	lea    -0x34(%ebp),%ecx
472606:	e8 3f 45 f9 ff       	call   0x406b4a
47260b:	8d 43 01             	lea    0x1(%ebx),%eax
47260e:	50                   	push   %eax
47260f:	e8 e2 44 f9 ff       	call   0x406af6
472614:	33 c9                	xor    %ecx,%ecx
472616:	89 45 d4             	mov    %eax,-0x2c(%ebp)
472619:	ba 02 00 00 00       	mov    $0x2,%edx
47261e:	f7 e2                	mul    %edx
472620:	0f 90 c1             	seto   %cl
472623:	f7 d9                	neg    %ecx
472625:	0b c8                	or     %eax,%ecx
472627:	51                   	push   %ecx
472628:	e8 bd ce fa ff       	call   0x41f4ea
47262d:	83 c4 04             	add    $0x4,%esp
472630:	e9 28 70 f9 ff       	jmp    0x40965d
472635:	57                   	push   %edi
472636:	8d 45 ac             	lea    -0x54(%ebp),%eax
472639:	50                   	push   %eax
47263a:	8b cf                	mov    %edi,%ecx
47263c:	e8 4e 7f fc ff       	call   0x43a58f
472641:	50                   	push   %eax
472642:	8b cf                	mov    %edi,%ecx
472644:	e8 a4 48 f9 ff       	call   0x406eed
472649:	8d 4d ac             	lea    -0x54(%ebp),%ecx
47264c:	e8 e6 a4 f9 ff       	call   0x40cb37
472651:	e9 42 6f f9 ff       	jmp    0x409598
472656:	48                   	dec    %eax
472657:	89 01                	mov    %eax,(%ecx)
472659:	8b cf                	mov    %edi,%ecx
47265b:	e8 ea 44 f9 ff       	call   0x406b4a
472660:	8b 47 04             	mov    0x4(%edi),%eax
472663:	40                   	inc    %eax
472664:	03 c3                	add    %ebx,%eax
472666:	50                   	push   %eax
472667:	e8 8a 44 f9 ff       	call   0x406af6
47266c:	33 c9                	xor    %ecx,%ecx
47266e:	89 47 08             	mov    %eax,0x8(%edi)
472671:	ba 02 00 00 00       	mov    $0x2,%edx
472676:	f7 e2                	mul    %edx
472678:	0f 90 c1             	seto   %cl
47267b:	f7 d9                	neg    %ecx
47267d:	0b c8                	or     %eax,%ecx
47267f:	51                   	push   %ecx
472680:	e8 65 ce fa ff       	call   0x41f4ea
472685:	8b f0                	mov    %eax,%esi
472687:	8b 47 04             	mov    0x4(%edi),%eax
47268a:	83 c4 04             	add    $0x4,%esp
47268d:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
472694:	50                   	push   %eax
472695:	ff 37                	push   (%edi)
472697:	56                   	push   %esi
472698:	e8 e3 c7 fa ff       	call   0x41ee80
47269d:	89 37                	mov    %esi,(%edi)
47269f:	8b 75 ec             	mov    -0x14(%ebp),%esi
4726a2:	83 c4 0c             	add    $0xc,%esp
4726a5:	e9 c8 6e f9 ff       	jmp    0x409572
4726aa:	3d c2 41 00 00       	cmp    $0x41c2,%eax
4726af:	73 07                	jae    0x4726b8
4726b1:	03 c0                	add    %eax,%eax
4726b3:	e9 ba 00 00 00       	jmp    0x472772
4726b8:	3d 00 00 00 02       	cmp    $0x2000000,%eax
4726bd:	73 39                	jae    0x4726f8
4726bf:	89 45 e0             	mov    %eax,-0x20(%ebp)
4726c2:	db 45 e0             	fildl  -0x20(%ebp)
4726c5:	85 c0                	test   %eax,%eax
4726c7:	79 06                	jns    0x4726cf
4726c9:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
4726cf:	dd 5d dc             	fstpl  -0x24(%ebp)
4726d2:	dd 45 dc             	fldl   -0x24(%ebp)
4726d5:	dc 0d 10 27 4b 00    	fmull  0x4b2710
4726db:	d9 7d f6             	fnstcw -0xa(%ebp)
4726de:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
4726e2:	0d 00 0c 00 00       	or     $0xc00,%eax
4726e7:	89 45 e0             	mov    %eax,-0x20(%ebp)
4726ea:	d9 6d e0             	fldcw  -0x20(%ebp)
4726ed:	df 7d dc             	fistpll -0x24(%ebp)
4726f0:	8b 45 dc             	mov    -0x24(%ebp),%eax
4726f3:	d9 6d f6             	fldcw  -0xa(%ebp)
4726f6:	eb 77                	jmp    0x47276f
4726f8:	3d 00 00 00 08       	cmp    $0x8000000,%eax
4726fd:	73 39                	jae    0x472738
4726ff:	89 45 e0             	mov    %eax,-0x20(%ebp)
472702:	db 45 e0             	fildl  -0x20(%ebp)
472705:	85 c0                	test   %eax,%eax
472707:	79 06                	jns    0x47270f
472709:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
47270f:	dd 5d dc             	fstpl  -0x24(%ebp)
472712:	dd 45 dc             	fldl   -0x24(%ebp)
472715:	dc 0d 08 27 4b 00    	fmull  0x4b2708
47271b:	d9 7d f6             	fnstcw -0xa(%ebp)
47271e:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
472722:	0d 00 0c 00 00       	or     $0xc00,%eax
472727:	89 45 e0             	mov    %eax,-0x20(%ebp)
47272a:	d9 6d e0             	fldcw  -0x20(%ebp)
47272d:	df 7d dc             	fistpll -0x24(%ebp)
472730:	8b 45 dc             	mov    -0x24(%ebp),%eax
472733:	d9 6d f6             	fldcw  -0xa(%ebp)
472736:	eb 37                	jmp    0x47276f
472738:	89 45 e0             	mov    %eax,-0x20(%ebp)
47273b:	db 45 e0             	fildl  -0x20(%ebp)
47273e:	85 c0                	test   %eax,%eax
472740:	79 06                	jns    0x472748
472742:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
472748:	dd 5d dc             	fstpl  -0x24(%ebp)
47274b:	dd 45 dc             	fldl   -0x24(%ebp)
47274e:	dc 0d 00 27 4b 00    	fmull  0x4b2700
472754:	d9 7d f6             	fnstcw -0xa(%ebp)
472757:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
47275b:	0d 00 0c 00 00       	or     $0xc00,%eax
472760:	89 45 e0             	mov    %eax,-0x20(%ebp)
472763:	d9 6d e0             	fldcw  -0x20(%ebp)
472766:	df 7d dc             	fistpll -0x24(%ebp)
472769:	8b 45 dc             	mov    -0x24(%ebp),%eax
47276c:	d9 6d f6             	fldcw  -0xa(%ebp)
47276f:	8b 5d d0             	mov    -0x30(%ebp),%ebx
472772:	50                   	push   %eax
472773:	89 47 08             	mov    %eax,0x8(%edi)
472776:	e8 7b 43 f9 ff       	call   0x406af6
47277b:	33 c9                	xor    %ecx,%ecx
47277d:	89 47 08             	mov    %eax,0x8(%edi)
472780:	ba 02 00 00 00       	mov    $0x2,%edx
472785:	f7 e2                	mul    %edx
472787:	0f 90 c1             	seto   %cl
47278a:	f7 d9                	neg    %ecx
47278c:	0b c8                	or     %eax,%ecx
47278e:	51                   	push   %ecx
47278f:	e8 e1 c6 fa ff       	call   0x41ee75
472794:	8b 17                	mov    (%edi),%edx
472796:	83 c4 04             	add    $0x4,%esp
472799:	8b c8                	mov    %eax,%ecx
47279b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
47279e:	85 d2                	test   %edx,%edx
4727a0:	74 22                	je     0x4727c4
4727a2:	8b 47 04             	mov    0x4(%edi),%eax
4727a5:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
4727ac:	50                   	push   %eax
4727ad:	52                   	push   %edx
4727ae:	51                   	push   %ecx
4727af:	e8 cc c6 fa ff       	call   0x41ee80
4727b4:	83 c4 0c             	add    $0xc,%esp
4727b7:	ff 37                	push   (%edi)
4727b9:	e8 22 e6 fa ff       	call   0x420de0
4727be:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4727c1:	83 c4 04             	add    $0x4,%esp
4727c4:	89 0f                	mov    %ecx,(%edi)
4727c6:	e9 a7 6d f9 ff       	jmp    0x409572
4727cb:	57                   	push   %edi
4727cc:	8d 45 9c             	lea    -0x64(%ebp),%eax
4727cf:	50                   	push   %eax
4727d0:	8b cf                	mov    %edi,%ecx
4727d2:	e8 b8 7d fc ff       	call   0x43a58f
4727d7:	50                   	push   %eax
4727d8:	8b cf                	mov    %edi,%ecx
4727da:	e8 0e 47 f9 ff       	call   0x406eed
4727df:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4727e2:	e8 50 a3 f9 ff       	call   0x40cb37
4727e7:	e9 12 6e f9 ff       	jmp    0x4095fe
4727ec:	48                   	dec    %eax
4727ed:	89 01                	mov    %eax,(%ecx)
4727ef:	8b cf                	mov    %edi,%ecx
4727f1:	e8 54 43 f9 ff       	call   0x406b4a
4727f6:	8b 47 04             	mov    0x4(%edi),%eax
4727f9:	40                   	inc    %eax
4727fa:	03 c3                	add    %ebx,%eax
4727fc:	50                   	push   %eax
4727fd:	e8 f4 42 f9 ff       	call   0x406af6
472802:	33 c9                	xor    %ecx,%ecx
472804:	89 47 08             	mov    %eax,0x8(%edi)
472807:	ba 02 00 00 00       	mov    $0x2,%edx
47280c:	f7 e2                	mul    %edx
47280e:	0f 90 c1             	seto   %cl
472811:	f7 d9                	neg    %ecx
472813:	0b c8                	or     %eax,%ecx
472815:	51                   	push   %ecx
472816:	e8 cf cc fa ff       	call   0x41f4ea
47281b:	8b f0                	mov    %eax,%esi
47281d:	8b 47 04             	mov    0x4(%edi),%eax
472820:	83 c4 04             	add    $0x4,%esp
472823:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
47282a:	50                   	push   %eax
47282b:	ff 37                	push   (%edi)
47282d:	56                   	push   %esi
47282e:	e8 4d c6 fa ff       	call   0x41ee80
472833:	89 37                	mov    %esi,(%edi)
472835:	8b 75 ec             	mov    -0x14(%ebp),%esi
472838:	83 c4 0c             	add    $0xc,%esp
47283b:	e9 98 6d f9 ff       	jmp    0x4095d8
472840:	3d c2 41 00 00       	cmp    $0x41c2,%eax
472845:	73 07                	jae    0x47284e
472847:	03 c0                	add    %eax,%eax
472849:	e9 b7 00 00 00       	jmp    0x472905
47284e:	3d 00 00 00 02       	cmp    $0x2000000,%eax
472853:	73 39                	jae    0x47288e
472855:	89 45 e0             	mov    %eax,-0x20(%ebp)
472858:	db 45 e0             	fildl  -0x20(%ebp)
47285b:	85 c0                	test   %eax,%eax
47285d:	79 06                	jns    0x472865
47285f:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
472865:	dd 5d dc             	fstpl  -0x24(%ebp)
472868:	dd 45 dc             	fldl   -0x24(%ebp)
47286b:	dc 0d 10 27 4b 00    	fmull  0x4b2710
472871:	d9 7d f6             	fnstcw -0xa(%ebp)
472874:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
472878:	0d 00 0c 00 00       	or     $0xc00,%eax
47287d:	89 45 e0             	mov    %eax,-0x20(%ebp)
472880:	d9 6d e0             	fldcw  -0x20(%ebp)
472883:	df 7d dc             	fistpll -0x24(%ebp)
472886:	8b 45 dc             	mov    -0x24(%ebp),%eax
472889:	d9 6d f6             	fldcw  -0xa(%ebp)
47288c:	eb 77                	jmp    0x472905
47288e:	3d 00 00 00 08       	cmp    $0x8000000,%eax
472893:	73 39                	jae    0x4728ce
472895:	89 45 e0             	mov    %eax,-0x20(%ebp)
472898:	db 45 e0             	fildl  -0x20(%ebp)
47289b:	85 c0                	test   %eax,%eax
47289d:	79 06                	jns    0x4728a5
47289f:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
4728a5:	dd 5d dc             	fstpl  -0x24(%ebp)
4728a8:	dd 45 dc             	fldl   -0x24(%ebp)
4728ab:	dc 0d 08 27 4b 00    	fmull  0x4b2708
4728b1:	d9 7d f6             	fnstcw -0xa(%ebp)
4728b4:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
4728b8:	0d 00 0c 00 00       	or     $0xc00,%eax
4728bd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4728c0:	d9 6d e0             	fldcw  -0x20(%ebp)
4728c3:	df 7d dc             	fistpll -0x24(%ebp)
4728c6:	8b 45 dc             	mov    -0x24(%ebp),%eax
4728c9:	d9 6d f6             	fldcw  -0xa(%ebp)
4728cc:	eb 37                	jmp    0x472905
4728ce:	89 45 e0             	mov    %eax,-0x20(%ebp)
4728d1:	db 45 e0             	fildl  -0x20(%ebp)
4728d4:	85 c0                	test   %eax,%eax
4728d6:	79 06                	jns    0x4728de
4728d8:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
4728de:	dd 5d dc             	fstpl  -0x24(%ebp)
4728e1:	dd 45 dc             	fldl   -0x24(%ebp)
4728e4:	dc 0d 00 27 4b 00    	fmull  0x4b2700
4728ea:	d9 7d f6             	fnstcw -0xa(%ebp)
4728ed:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
4728f1:	0d 00 0c 00 00       	or     $0xc00,%eax
4728f6:	89 45 e0             	mov    %eax,-0x20(%ebp)
4728f9:	d9 6d e0             	fldcw  -0x20(%ebp)
4728fc:	df 7d dc             	fistpll -0x24(%ebp)
4728ff:	8b 45 dc             	mov    -0x24(%ebp),%eax
472902:	d9 6d f6             	fldcw  -0xa(%ebp)
472905:	50                   	push   %eax
472906:	89 47 08             	mov    %eax,0x8(%edi)
472909:	e8 e8 41 f9 ff       	call   0x406af6
47290e:	33 c9                	xor    %ecx,%ecx
472910:	89 47 08             	mov    %eax,0x8(%edi)
472913:	ba 02 00 00 00       	mov    $0x2,%edx
472918:	f7 e2                	mul    %edx
47291a:	0f 90 c1             	seto   %cl
47291d:	f7 d9                	neg    %ecx
47291f:	0b c8                	or     %eax,%ecx
472921:	51                   	push   %ecx
472922:	e8 4e c5 fa ff       	call   0x41ee75
472927:	8b 17                	mov    (%edi),%edx
472929:	83 c4 04             	add    $0x4,%esp
47292c:	8b c8                	mov    %eax,%ecx
47292e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
472931:	85 d2                	test   %edx,%edx
472933:	74 22                	je     0x472957
472935:	8b 47 04             	mov    0x4(%edi),%eax
472938:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
47293f:	50                   	push   %eax
472940:	52                   	push   %edx
472941:	51                   	push   %ecx
472942:	e8 39 c5 fa ff       	call   0x41ee80
472947:	83 c4 0c             	add    $0xc,%esp
47294a:	ff 37                	push   (%edi)
47294c:	e8 8f e4 fa ff       	call   0x420de0
472951:	8b 4d e0             	mov    -0x20(%ebp),%ecx
472954:	83 c4 04             	add    $0x4,%esp
472957:	89 0f                	mov    %ecx,(%edi)
472959:	e9 7a 6c f9 ff       	jmp    0x4095d8
47295e:	33 c0                	xor    %eax,%eax
472960:	e9 3d 6d f9 ff       	jmp    0x4096a2
472965:	48                   	dec    %eax
472966:	89 01                	mov    %eax,(%ecx)
472968:	8b cb                	mov    %ebx,%ecx
47296a:	e8 db 41 f9 ff       	call   0x406b4a
47296f:	33 c9                	xor    %ecx,%ecx
472971:	b8 08 00 00 00       	mov    $0x8,%eax
472976:	ba 02 00 00 00       	mov    $0x2,%edx
47297b:	f7 e2                	mul    %edx
47297d:	0f 90 c1             	seto   %cl
472980:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
472987:	f7 d9                	neg    %ecx
472989:	0b c8                	or     %eax,%ecx
47298b:	51                   	push   %ecx
47298c:	e8 e4 c4 fa ff       	call   0x41ee75
472991:	83 c4 04             	add    $0x4,%esp
472994:	89 03                	mov    %eax,(%ebx)
472996:	e9 2e 86 f9 ff       	jmp    0x40afc9
47299b:	47                   	inc    %edi
47299c:	89 7d fc             	mov    %edi,-0x4(%ebp)
47299f:	3b f8                	cmp    %eax,%edi
4729a1:	0f 84 c9 86 f9 ff    	je     0x40b070
4729a7:	dd da                	fstp   %st(2)
4729a9:	57                   	push   %edi
4729aa:	dd d8                	fstp   %st(0)
4729ac:	8b ce                	mov    %esi,%ecx
4729ae:	dd d8                	fstp   %st(0)
4729b0:	e8 d1 f6 f8 ff       	call   0x402086