487458:	8b d7                	mov    %edi,%edx
48745a:	51                   	push   %ecx
48745b:	3b c6                	cmp    %esi,%eax
48745d:	73 5b                	jae    0x4874ba
48745f:	8b 45 ec             	mov    -0x14(%ebp),%eax
487462:	03 c1                	add    %ecx,%eax
487464:	50                   	push   %eax
487465:	e8 3c 05 00 00       	call   0x4879a6
48746a:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
487471:	8b 0d fc 64 4a 00    	mov    0x4a64fc,%ecx
487477:	8b c1                	mov    %ecx,%eax
487479:	2b 45 08             	sub    0x8(%ebp),%eax
48747c:	99                   	cltd
48747d:	f7 fb                	idiv   %ebx
48747f:	ff 75 e4             	push   -0x1c(%ebp)
487482:	2b f0                	sub    %eax,%esi
487484:	8d 45 80             	lea    -0x80(%ebp),%eax
487487:	ff 75 e4             	push   -0x1c(%ebp)
48748a:	8b d6                	mov    %esi,%edx
48748c:	51                   	push   %ecx
48748d:	50                   	push   %eax
48748e:	e8 cc 04 00 00       	call   0x48795f
487493:	8b 15 fc 64 4a 00    	mov    0x4a64fc,%edx
487499:	8b 45 ec             	mov    -0x14(%ebp),%eax
48749c:	03 c2                	add    %edx,%eax
48749e:	a3 fc 64 4a 00       	mov    %eax,0x4a64fc
4874a3:	8b 45 08             	mov    0x8(%ebp),%eax
4874a6:	eb 0c                	jmp    0x4874b4
4874a8:	6a 19                	push   $0x19
4874aa:	8b f8                	mov    %eax,%edi
4874ac:	8d 75 80             	lea    -0x80(%ebp),%esi
4874af:	59                   	pop    %ecx
4874b0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4874b2:	03 c3                	add    %ebx,%eax
4874b4:	3b c2                	cmp    %edx,%eax
4874b6:	75 f0                	jne    0x4874a8
4874b8:	eb 4c                	jmp    0x487506
4874ba:	8b f7                	mov    %edi,%esi
4874bc:	2b 75 ec             	sub    -0x14(%ebp),%esi
4874bf:	57                   	push   %edi
4874c0:	8b ce                	mov    %esi,%ecx
4874c2:	e8 df 04 00 00       	call   0x4879a6
4874c7:	a3 fc 64 4a 00       	mov    %eax,0x4a64fc
4874cc:	8b 45 08             	mov    0x8(%ebp),%eax
4874cf:	3b f0                	cmp    %eax,%esi
4874d1:	74 1c                	je     0x4874ef
4874d3:	2b f3                	sub    %ebx,%esi
4874d5:	2b fb                	sub    %ebx,%edi
4874d7:	6a 19                	push   $0x19
4874d9:	89 75 e8             	mov    %esi,-0x18(%ebp)
4874dc:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4874df:	59                   	pop    %ecx
4874e0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4874e2:	8b 75 e8             	mov    -0x18(%ebp),%esi
4874e5:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4874e8:	3b f0                	cmp    %eax,%esi
4874ea:	75 e7                	jne    0x4874d3
4874ec:	8b 45 08             	mov    0x8(%ebp),%eax
4874ef:	8b 55 ec             	mov    -0x14(%ebp),%edx
4874f2:	03 d0                	add    %eax,%edx
4874f4:	eb 0c                	jmp    0x487502
4874f6:	6a 19                	push   $0x19
4874f8:	8b f8                	mov    %eax,%edi
4874fa:	8d 75 80             	lea    -0x80(%ebp),%esi
4874fd:	59                   	pop    %ecx
4874fe:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
487500:	03 c3                	add    %ebx,%eax
487502:	3b c2                	cmp    %edx,%eax
487504:	75 f0                	jne    0x4874f6
487506:	e8 96 8f 00 00       	call   0x4904a1
48750b:	c2 0c 00             	ret    $0xc
48750e:	e8 1f 64 f9 ff       	call   0x41d932
487513:	51                   	push   %ecx
487514:	ff 75 e8             	push   -0x18(%ebp)
487517:	e8 93 64 f9 ff       	call   0x41d9af
48751c:	6a 00                	push   $0x0
48751e:	6a 00                	push   $0x0
487520:	e8 76 8f 00 00       	call   0x49049b
487525:	cc                   	int3
487526:	8b 0d f8 64 4a 00    	mov    0x4a64f8,%ecx
48752c:	85 c9                	test   %ecx,%ecx
48752e:	75 03                	jne    0x487533
487530:	33 c0                	xor    %eax,%eax
487532:	c3                   	ret
487533:	a1 fc 64 4a 00       	mov    0x4a64fc,%eax
487538:	2b c1                	sub    %ecx,%eax
48753a:	6a 64                	push   $0x64
48753c:	99                   	cltd
48753d:	59                   	pop    %ecx
48753e:	f7 f9                	idiv   %ecx
487540:	c3                   	ret
487541:	8b ff                	mov    %edi,%edi
487543:	55                   	push   %ebp
487544:	8b ec                	mov    %esp,%ebp
487546:	8b 4d 08             	mov    0x8(%ebp),%ecx
487549:	83 ec 0c             	sub    $0xc,%esp
48754c:	85 c9                	test   %ecx,%ecx
48754e:	75 0f                	jne    0x48755f
487550:	6b c1 64             	imul   $0x64,%ecx,%eax
487553:	50                   	push   %eax
487554:	ff 15 14 74 4a 00    	call   *0x4a7414
48755a:	59                   	pop    %ecx
48755b:	c9                   	leave
48755c:	c2 04 00             	ret    $0x4
48755f:	83 c8 ff             	or     $0xffffffff,%eax
487562:	33 d2                	xor    %edx,%edx
487564:	f7 f1                	div    %ecx
487566:	83 f8 64             	cmp    $0x64,%eax
487569:	73 e5                	jae    0x487550
48756b:	6a 00                	push   $0x0
48756d:	8d 4d f4             	lea    -0xc(%ebp),%ecx
487570:	e8 57 4f f9 ff       	call   0x41c4cc
487575:	68 4c eb 49 00       	push   $0x49eb4c
48757a:	8d 45 f4             	lea    -0xc(%ebp),%eax
48757d:	50                   	push   %eax
48757e:	e8 18 8f 00 00       	call   0x49049b
487583:	cc                   	int3
487584:	6a 18                	push   $0x18
487586:	b8 bf 68 49 00       	mov    $0x4968bf,%eax
48758b:	e8 ac 8f 00 00       	call   0x49053c
487590:	8b d9                	mov    %ecx,%ebx
487592:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
487596:	8d 7d dc             	lea    -0x24(%ebp),%edi
487599:	8b 75 10             	mov    0x10(%ebp),%esi
48759c:	6a 0c                	push   $0xc
48759e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
48759f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4875a0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4875a1:	5f                   	pop    %edi
4875a2:	75 04                	jne    0x4875a8
4875a4:	33 c0                	xor    %eax,%eax
4875a6:	eb 09                	jmp    0x4875b1
4875a8:	8b 43 0c             	mov    0xc(%ebx),%eax
4875ab:	2b 43 04             	sub    0x4(%ebx),%eax
4875ae:	99                   	cltd
4875af:	f7 ff                	idiv   %edi
4875b1:	8b 75 0c             	mov    0xc(%ebp),%esi
4875b4:	89 45 ec             	mov    %eax,-0x14(%ebp)
4875b7:	85 f6                	test   %esi,%esi
4875b9:	0f 84 77 01 00 00    	je     0x487736
4875bf:	e8 ae 9d f9 ff       	call   0x421372
4875c4:	b9 55 55 55 15       	mov    $0x15555555,%ecx
4875c9:	2b c8                	sub    %eax,%ecx
4875cb:	3b ce                	cmp    %esi,%ecx
4875cd:	0f 82 6b 01 00 00    	jb     0x48773e
4875d3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4875d6:	8d 14 30             	lea    (%eax,%esi,1),%edx
4875d9:	3b ca                	cmp    %edx,%ecx
4875db:	0f 83 9b 00 00 00    	jae    0x48767c
4875e1:	8b c1                	mov    %ecx,%eax
4875e3:	bf 55 55 55 15       	mov    $0x15555555,%edi
4875e8:	d1 e8                	shr    $1,%eax
4875ea:	2b f8                	sub    %eax,%edi
4875ec:	03 c1                	add    %ecx,%eax
4875ee:	3b f9                	cmp    %ecx,%edi
4875f0:	1b ff                	sbb    %edi,%edi
4875f2:	f7 d7                	not    %edi
4875f4:	23 f8                	and    %eax,%edi
4875f6:	3b fa                	cmp    %edx,%edi
4875f8:	73 02                	jae    0x4875fc
4875fa:	8b fa                	mov    %edx,%edi
4875fc:	57                   	push   %edi
4875fd:	e8 aa b1 f9 ff       	call   0x4227ac
487602:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
487606:	ff 75 e8             	push   -0x18(%ebp)
487609:	8b 55 08             	mov    0x8(%ebp),%edx
48760c:	ff 75 e8             	push   -0x18(%ebp)
48760f:	89 45 ec             	mov    %eax,-0x14(%ebp)
487612:	51                   	push   %ecx
487613:	8b 4b 04             	mov    0x4(%ebx),%ecx
487616:	50                   	push   %eax
487617:	e8 d0 d0 f9 ff       	call   0x4246ec
48761c:	ff 75 e8             	push   -0x18(%ebp)
48761f:	8b c8                	mov    %eax,%ecx
487621:	8d 55 dc             	lea    -0x24(%ebp),%edx
487624:	ff 75 e8             	push   -0x18(%ebp)
487627:	6b c6 0c             	imul   $0xc,%esi,%eax
48762a:	51                   	push   %ecx
48762b:	52                   	push   %edx
48762c:	8b d6                	mov    %esi,%edx
48762e:	03 c1                	add    %ecx,%eax
487630:	e8 96 d0 f9 ff       	call   0x4246cb
487635:	ff 75 e8             	push   -0x18(%ebp)
487638:	8b 53 08             	mov    0x8(%ebx),%edx
48763b:	ff 75 e8             	push   -0x18(%ebp)
48763e:	51                   	push   %ecx
48763f:	8b 4d 08             	mov    0x8(%ebp),%ecx
487642:	50                   	push   %eax
487643:	e8 a4 d0 f9 ff       	call   0x4246ec
487648:	8b cb                	mov    %ebx,%ecx
48764a:	e8 23 9d f9 ff       	call   0x421372
48764f:	03 f0                	add    %eax,%esi
487651:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
487655:	74 0a                	je     0x487661
487657:	ff 73 04             	push   0x4(%ebx)
48765a:	ff 15 10 74 4a 00    	call   *0x4a7410
487660:	59                   	pop    %ecx
487661:	8b 4d ec             	mov    -0x14(%ebp),%ecx
487664:	6b c7 0c             	imul   $0xc,%edi,%eax
487667:	89 4b 04             	mov    %ecx,0x4(%ebx)
48766a:	03 c1                	add    %ecx,%eax
48766c:	89 43 0c             	mov    %eax,0xc(%ebx)
48766f:	6b c6 0c             	imul   $0xc,%esi,%eax
487672:	03 c1                	add    %ecx,%eax
487674:	89 43 08             	mov    %eax,0x8(%ebx)
487677:	e9 ba 00 00 00       	jmp    0x487736
48767c:	8b 43 08             	mov    0x8(%ebx),%eax
48767f:	6b ce 0c             	imul   $0xc,%esi,%ecx
487682:	89 45 e8             	mov    %eax,-0x18(%ebp)
487685:	ff 75 e8             	push   -0x18(%ebp)
487688:	ff 75 e8             	push   -0x18(%ebp)
48768b:	89 4d ec             	mov    %ecx,-0x14(%ebp)
48768e:	8b 4d 08             	mov    0x8(%ebp),%ecx
487691:	2b c1                	sub    %ecx,%eax
487693:	99                   	cltd
487694:	f7 ff                	idiv   %edi
487696:	8b 55 e8             	mov    -0x18(%ebp),%edx
487699:	51                   	push   %ecx
48769a:	3b c6                	cmp    %esi,%eax
48769c:	73 52                	jae    0x4876f0
48769e:	8b 45 ec             	mov    -0x14(%ebp),%eax
4876a1:	03 c1                	add    %ecx,%eax
4876a3:	50                   	push   %eax
4876a4:	e8 43 d0 f9 ff       	call   0x4246ec
4876a9:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4876b0:	8b 4b 08             	mov    0x8(%ebx),%ecx
4876b3:	8b c1                	mov    %ecx,%eax
4876b5:	2b 45 08             	sub    0x8(%ebp),%eax
4876b8:	99                   	cltd
4876b9:	f7 ff                	idiv   %edi
4876bb:	ff 75 e8             	push   -0x18(%ebp)
4876be:	2b f0                	sub    %eax,%esi
4876c0:	8d 45 dc             	lea    -0x24(%ebp),%eax
4876c3:	ff 75 e8             	push   -0x18(%ebp)
4876c6:	8b d6                	mov    %esi,%edx
4876c8:	51                   	push   %ecx
4876c9:	50                   	push   %eax
4876ca:	e8 fc cf f9 ff       	call   0x4246cb
4876cf:	8b 4b 08             	mov    0x8(%ebx),%ecx
4876d2:	8b 45 ec             	mov    -0x14(%ebp),%eax
4876d5:	03 c1                	add    %ecx,%eax
4876d7:	89 43 08             	mov    %eax,0x8(%ebx)
4876da:	8b 45 08             	mov    0x8(%ebp),%eax
4876dd:	eb 0b                	jmp    0x4876ea
4876df:	8b f8                	mov    %eax,%edi
4876e1:	8d 75 dc             	lea    -0x24(%ebp),%esi
4876e4:	83 c0 0c             	add    $0xc,%eax
4876e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4876e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4876e9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4876ea:	3b c1                	cmp    %ecx,%eax
4876ec:	75 f1                	jne    0x4876df
4876ee:	eb 46                	jmp    0x487736
4876f0:	8b f2                	mov    %edx,%esi
4876f2:	2b 75 ec             	sub    -0x14(%ebp),%esi
4876f5:	52                   	push   %edx
4876f6:	8b ce                	mov    %esi,%ecx
4876f8:	e8 ef cf f9 ff       	call   0x4246ec
4876fd:	89 43 08             	mov    %eax,0x8(%ebx)
487700:	8b 45 08             	mov    0x8(%ebp),%eax
487703:	3b f0                	cmp    %eax,%esi
487705:	74 19                	je     0x487720
487707:	2b f7                	sub    %edi,%esi
487709:	2b d7                	sub    %edi,%edx
48770b:	8b fa                	mov    %edx,%edi
48770d:	89 75 e8             	mov    %esi,-0x18(%ebp)
487710:	6a 0c                	push   $0xc
487712:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487713:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487714:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487715:	8b 75 e8             	mov    -0x18(%ebp),%esi
487718:	5f                   	pop    %edi
487719:	3b f0                	cmp    %eax,%esi
48771b:	75 ea                	jne    0x487707
48771d:	8b 45 08             	mov    0x8(%ebp),%eax
487720:	8b 4d ec             	mov    -0x14(%ebp),%ecx
487723:	03 c8                	add    %eax,%ecx
487725:	eb 0b                	jmp    0x487732
487727:	8b f8                	mov    %eax,%edi
487729:	8d 75 dc             	lea    -0x24(%ebp),%esi
48772c:	83 c0 0c             	add    $0xc,%eax
48772f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487730:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487731:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487732:	3b c1                	cmp    %ecx,%eax
487734:	75 f1                	jne    0x487727
487736:	e8 66 8d 00 00       	call   0x4904a1
48773b:	c2 0c 00             	ret    $0xc
48773e:	e8 ef 61 f9 ff       	call   0x41d932
487743:	51                   	push   %ecx
487744:	ff 75 ec             	push   -0x14(%ebp)
487747:	e8 63 62 f9 ff       	call   0x41d9af
48774c:	6a 00                	push   $0x0
48774e:	6a 00                	push   $0x0
487750:	e8 46 8d 00 00       	call   0x49049b
487755:	cc                   	int3
487756:	6a 18                	push   $0x18
487758:	b8 da 68 49 00       	mov    $0x4968da,%eax
48775d:	e8 da 8d 00 00       	call   0x49053c
487762:	8b f9                	mov    %ecx,%edi
487764:	8b 45 10             	mov    0x10(%ebp),%eax
487767:	8b 4f 04             	mov    0x4(%edi),%ecx
48776a:	d9 00                	flds   (%eax)
48776c:	d9 5d dc             	fstps  -0x24(%ebp)
48776f:	d9 40 04             	flds   0x4(%eax)
487772:	d9 5d e0             	fstps  -0x20(%ebp)
487775:	85 c9                	test   %ecx,%ecx
487777:	75 06                	jne    0x48777f
487779:	33 f6                	xor    %esi,%esi
48777b:	8b d6                	mov    %esi,%edx
48777d:	eb 0a                	jmp    0x487789
48777f:	8b 57 0c             	mov    0xc(%edi),%edx
487782:	2b d1                	sub    %ecx,%edx
487784:	c1 fa 03             	sar    $0x3,%edx
487787:	33 f6                	xor    %esi,%esi
487789:	8b 5d 0c             	mov    0xc(%ebp),%ebx
48778c:	85 db                	test   %ebx,%ebx
48778e:	0f 84 ab 01 00 00    	je     0x48793f
487794:	85 c9                	test   %ecx,%ecx
487796:	75 05                	jne    0x48779d
487798:	89 75 e8             	mov    %esi,-0x18(%ebp)
48779b:	eb 0b                	jmp    0x4877a8
48779d:	8b 47 08             	mov    0x8(%edi),%eax
4877a0:	2b c1                	sub    %ecx,%eax
4877a2:	c1 f8 03             	sar    $0x3,%eax
4877a5:	89 45 e8             	mov    %eax,-0x18(%ebp)
4877a8:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
4877ad:	89 45 ec             	mov    %eax,-0x14(%ebp)
4877b0:	2b 45 e8             	sub    -0x18(%ebp),%eax
4877b3:	3b c3                	cmp    %ebx,%eax
4877b5:	0f 82 8c 01 00 00    	jb     0x487947
4877bb:	85 c9                	test   %ecx,%ecx
4877bd:	75 04                	jne    0x4877c3
4877bf:	8b c6                	mov    %esi,%eax
4877c1:	eb 08                	jmp    0x4877cb
4877c3:	8b 47 08             	mov    0x8(%edi),%eax
4877c6:	2b c1                	sub    %ecx,%eax
4877c8:	c1 f8 03             	sar    $0x3,%eax
4877cb:	03 c3                	add    %ebx,%eax
4877cd:	3b d0                	cmp    %eax,%edx
4877cf:	0f 83 c6 00 00 00    	jae    0x48789b
4877d5:	8b c2                	mov    %edx,%eax
4877d7:	d1 e8                	shr    $1,%eax
4877d9:	29 45 ec             	sub    %eax,-0x14(%ebp)
4877dc:	03 c2                	add    %edx,%eax
4877de:	39 55 ec             	cmp    %edx,-0x14(%ebp)
4877e1:	1b d2                	sbb    %edx,%edx
4877e3:	f7 d2                	not    %edx
4877e5:	23 d0                	and    %eax,%edx
4877e7:	89 55 e8             	mov    %edx,-0x18(%ebp)