4594f1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4594f4:	8b 09                	mov    (%ecx),%ecx
4594f6:	8d 41 ff             	lea    -0x1(%ecx),%eax
4594f9:	03 c7                	add    %edi,%eax
4594fb:	99                   	cltd
4594fc:	f7 f9                	idiv   %ecx
4594fe:	89 45 ec             	mov    %eax,-0x14(%ebp)
459501:	8b 45 08             	mov    0x8(%ebp),%eax
459504:	0f af 4d ec          	imul   -0x14(%ebp),%ecx
459508:	8b 78 04             	mov    0x4(%eax),%edi
45950b:	8b 45 f8             	mov    -0x8(%ebp),%eax
45950e:	48                   	dec    %eax
45950f:	03 c7                	add    %edi,%eax
459511:	99                   	cltd
459512:	f7 ff                	idiv   %edi
459514:	89 45 e8             	mov    %eax,-0x18(%ebp)
459517:	0f af f8             	imul   %eax,%edi
45951a:	8b 45 fc             	mov    -0x4(%ebp),%eax
45951d:	eb 0a                	jmp    0x459529
45951f:	8b 45 fc             	mov    -0x4(%ebp),%eax
459522:	dd d9                	fstp   %st(1)
459524:	dd d8                	fstp   %st(0)
459526:	8b 4d f0             	mov    -0x10(%ebp),%ecx
459529:	39 75 0c             	cmp    %esi,0xc(%ebp)
45952c:	74 2a                	je     0x459558
45952e:	39 33                	cmp    %esi,(%ebx)
459530:	74 0b                	je     0x45953d
459532:	2b c8                	sub    %eax,%ecx
459534:	8b c1                	mov    %ecx,%eax
459536:	99                   	cltd
459537:	2b c2                	sub    %edx,%eax
459539:	d1 f8                	sar    $1,%eax
45953b:	eb 02                	jmp    0x45953f
45953d:	8b c6                	mov    %esi,%eax
45953f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
459542:	89 01                	mov    %eax,(%ecx)
459544:	39 73 04             	cmp    %esi,0x4(%ebx)
459547:	74 0c                	je     0x459555
459549:	2b 7d f8             	sub    -0x8(%ebp),%edi
45954c:	8b c7                	mov    %edi,%eax
45954e:	99                   	cltd
45954f:	2b c2                	sub    %edx,%eax
459551:	8b f0                	mov    %eax,%esi
459553:	d1 fe                	sar    $1,%esi
459555:	89 71 04             	mov    %esi,0x4(%ecx)
459558:	8b 45 10             	mov    0x10(%ebp),%eax
45955b:	5f                   	pop    %edi
45955c:	5e                   	pop    %esi
45955d:	5b                   	pop    %ebx
45955e:	85 c0                	test   %eax,%eax
459560:	74 0b                	je     0x45956d
459562:	8b 4d fc             	mov    -0x4(%ebp),%ecx
459565:	89 08                	mov    %ecx,(%eax)
459567:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45956a:	89 48 04             	mov    %ecx,0x4(%eax)
45956d:	8b 45 14             	mov    0x14(%ebp),%eax
459570:	85 c0                	test   %eax,%eax
459572:	74 05                	je     0x459579
459574:	8b 4d ec             	mov    -0x14(%ebp),%ecx
459577:	89 08                	mov    %ecx,(%eax)
459579:	8b 45 18             	mov    0x18(%ebp),%eax
45957c:	85 c0                	test   %eax,%eax
45957e:	74 05                	je     0x459585
459580:	8b 4d e8             	mov    -0x18(%ebp),%ecx
459583:	89 08                	mov    %ecx,(%eax)
459585:	c9                   	leave
459586:	c2 14 00             	ret    $0x14
459589:	cc                   	int3
45958a:	cc                   	int3
45958b:	cc                   	int3
45958c:	cc                   	int3
45958d:	cc                   	int3
45958e:	cc                   	int3
45958f:	cc                   	int3
459590:	8b ff                	mov    %edi,%edi
459592:	55                   	push   %ebp
459593:	8b ec                	mov    %esp,%ebp
459595:	83 e4 f8             	and    $0xfffffff8,%esp
459598:	83 ec 4c             	sub    $0x4c,%esp
45959b:	53                   	push   %ebx
45959c:	56                   	push   %esi
45959d:	57                   	push   %edi
45959e:	6a eb                	push   $0xffffffeb
4595a0:	ff 75 08             	push   0x8(%ebp)
4595a3:	33 db                	xor    %ebx,%ebx
4595a5:	ff 15 30 7d 4a 00    	call   *0x4a7d30
4595ab:	8b f0                	mov    %eax,%esi
4595ad:	8b 45 0c             	mov    0xc(%ebp),%eax
4595b0:	2d 00 04 00 00       	sub    $0x400,%eax
4595b5:	0f 84 2b 03 00 00    	je     0x4598e6
4595bb:	83 e8 01             	sub    $0x1,%eax
4595be:	0f 84 0b 03 00 00    	je     0x4598cf
4595c4:	48                   	dec    %eax
4595c5:	83 e8 01             	sub    $0x1,%eax
4595c8:	0f 84 90 02 00 00    	je     0x45985e
4595ce:	83 e8 01             	sub    $0x1,%eax
4595d1:	0f 85 1d 03 00 00    	jne    0x4598f4
4595d7:	85 f6                	test   %esi,%esi
4595d9:	0f 84 15 03 00 00    	je     0x4598f4
4595df:	8b 4e 40             	mov    0x40(%esi),%ecx
4595e2:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4595e6:	85 c9                	test   %ecx,%ecx
4595e8:	0f 84 06 03 00 00    	je     0x4598f4
4595ee:	8b 46 14             	mov    0x14(%esi),%eax
4595f1:	2b 46 34             	sub    0x34(%esi),%eax
4595f4:	2b 46 2c             	sub    0x2c(%esi),%eax
4595f7:	89 44 24 20          	mov    %eax,0x20(%esp)
4595fb:	89 44 24 40          	mov    %eax,0x40(%esp)
4595ff:	8b 46 18             	mov    0x18(%esi),%eax
459602:	2b 46 38             	sub    0x38(%esi),%eax
459605:	2b 46 30             	sub    0x30(%esi),%eax
459608:	53                   	push   %ebx
459609:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45960d:	89 44 24 48          	mov    %eax,0x48(%esp)
459611:	8d 44 24 34          	lea    0x34(%esp),%eax
459615:	53                   	push   %ebx
459616:	50                   	push   %eax
459617:	8d 44 24 44          	lea    0x44(%esp),%eax
45961b:	50                   	push   %eax
45961c:	8d 44 24 50          	lea    0x50(%esp),%eax
459620:	50                   	push   %eax
459621:	e8 19 fe ff ff       	call   0x45943f
459626:	8b 75 14             	mov    0x14(%ebp),%esi
459629:	ff 75 10             	push   0x10(%ebp)
45962c:	8b 46 08             	mov    0x8(%esi),%eax
45962f:	2b 06                	sub    (%esi),%eax
459631:	89 44 24 2c          	mov    %eax,0x2c(%esp)
459635:	db 44 24 2c          	fildl  0x2c(%esp)
459639:	dd 5c 24 2c          	fstpl  0x2c(%esp)
45963d:	dd 44 24 2c          	fldl   0x2c(%esp)
459641:	db 44 24 24          	fildl  0x24(%esp)
459645:	dd 5c 24 2c          	fstpl  0x2c(%esp)
459649:	dc 74 24 2c          	fdivl  0x2c(%esp)
45964d:	8b 46 0c             	mov    0xc(%esi),%eax
459650:	2b 46 04             	sub    0x4(%esi),%eax
459653:	89 44 24 2c          	mov    %eax,0x2c(%esp)
459657:	dd 5c 24 24          	fstpl  0x24(%esp)
45965b:	db 44 24 2c          	fildl  0x2c(%esp)
45965f:	dd 5c 24 2c          	fstpl  0x2c(%esp)
459663:	dd 44 24 2c          	fldl   0x2c(%esp)
459667:	db 44 24 1c          	fildl  0x1c(%esp)
45966b:	dd 5c 24 2c          	fstpl  0x2c(%esp)
45966f:	dc 74 24 2c          	fdivl  0x2c(%esp)
459673:	dd 5c 24 1c          	fstpl  0x1c(%esp)
459677:	ff 15 b0 76 4a 00    	call   *0x4a76b0
45967d:	8b f8                	mov    %eax,%edi
45967f:	8b cf                	mov    %edi,%ecx
459681:	89 7c 24 28          	mov    %edi,0x28(%esp)
459685:	ff 15 60 7b 4a 00    	call   *0x4a7b60
45968b:	a8 01                	test   $0x1,%al
45968d:	0f 84 8b 00 00 00    	je     0x45971e
459693:	8b 74 24 10          	mov    0x10(%esp),%esi
459697:	8b 4d 14             	mov    0x14(%ebp),%ecx
45969a:	53                   	push   %ebx
45969b:	8b 46 30             	mov    0x30(%esi),%eax
45969e:	2b 41 08             	sub    0x8(%ecx),%eax
4596a1:	2b 01                	sub    (%ecx),%eax
4596a3:	8b cf                	mov    %edi,%ecx
4596a5:	50                   	push   %eax
4596a6:	ff 15 64 7b 4a 00    	call   *0x4a7b64
4596ac:	db 44 24 38          	fildl  0x38(%esp)
4596b0:	dd 5c 24 10          	fstpl  0x10(%esp)
4596b4:	dd 44 24 10          	fldl   0x10(%esp)
4596b8:	dd 44 24 20          	fldl   0x20(%esp)
4596bc:	dc c9                	fmul   %st,%st(1)
4596be:	d9 c9                	fxch   %st(1)
4596c0:	e8 5c 79 03 00       	call   0x491021
4596c5:	8b 4e 30             	mov    0x30(%esi),%ecx
4596c8:	8b 75 14             	mov    0x14(%ebp),%esi
4596cb:	2b c8                	sub    %eax,%ecx
4596cd:	db 44 24 30          	fildl  0x30(%esp)
4596d1:	2b 0e                	sub    (%esi),%ecx
4596d3:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
4596d7:	dd 5c 24 20          	fstpl  0x20(%esp)
4596db:	dc 4c 24 20          	fmull  0x20(%esp)
4596df:	e8 3d 79 03 00       	call   0x491021
4596e4:	db 44 24 3c          	fildl  0x3c(%esp)
4596e8:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4596ec:	2b c8                	sub    %eax,%ecx
4596ee:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4596f2:	dd 5c 24 20          	fstpl  0x20(%esp)
4596f6:	dd 44 24 20          	fldl   0x20(%esp)
4596fa:	dd 44 24 18          	fldl   0x18(%esp)
4596fe:	dc c9                	fmul   %st,%st(1)
459700:	d9 c9                	fxch   %st(1)
459702:	e8 1a 79 03 00       	call   0x491021
459707:	db 44 24 34          	fildl  0x34(%esp)
45970b:	8b 76 04             	mov    0x4(%esi),%esi
45970e:	03 f0                	add    %eax,%esi
459710:	89 74 24 18          	mov    %esi,0x18(%esp)
459714:	dd 5c 24 20          	fstpl  0x20(%esp)
459718:	dc 4c 24 20          	fmull  0x20(%esp)
45971c:	eb 6a                	jmp    0x459788
45971e:	db 44 24 38          	fildl  0x38(%esp)
459722:	dd 5c 24 10          	fstpl  0x10(%esp)
459726:	dd 44 24 10          	fldl   0x10(%esp)
45972a:	dd 44 24 20          	fldl   0x20(%esp)
45972e:	dc c9                	fmul   %st,%st(1)
459730:	d9 c9                	fxch   %st(1)
459732:	e8 ea 78 03 00       	call   0x491021
459737:	db 44 24 3c          	fildl  0x3c(%esp)
45973b:	03 06                	add    (%esi),%eax
45973d:	89 44 24 10          	mov    %eax,0x10(%esp)
459741:	dd 5c 24 20          	fstpl  0x20(%esp)
459745:	dd 44 24 20          	fldl   0x20(%esp)
459749:	dd 44 24 18          	fldl   0x18(%esp)
45974d:	dc c9                	fmul   %st,%st(1)
45974f:	d9 c9                	fxch   %st(1)
459751:	e8 cb 78 03 00       	call   0x491021
459756:	db 44 24 30          	fildl  0x30(%esp)
45975a:	8b 76 04             	mov    0x4(%esi),%esi
45975d:	03 f0                	add    %eax,%esi
45975f:	89 74 24 18          	mov    %esi,0x18(%esp)
459763:	dd 5c 24 20          	fstpl  0x20(%esp)
459767:	dd 44 24 20          	fldl   0x20(%esp)
45976b:	de ca                	fmulp  %st,%st(2)
45976d:	d9 c9                	fxch   %st(1)
45976f:	e8 ad 78 03 00       	call   0x491021
459774:	db 44 24 34          	fildl  0x34(%esp)
459778:	03 44 24 10          	add    0x10(%esp),%eax
45977c:	89 44 24 0c          	mov    %eax,0xc(%esp)
459780:	dd 5c 24 20          	fstpl  0x20(%esp)
459784:	dc 4c 24 20          	fmull  0x20(%esp)
459788:	e8 94 78 03 00       	call   0x491021
45978d:	03 c6                	add    %esi,%eax
45978f:	89 44 24 20          	mov    %eax,0x20(%esp)
459793:	85 ff                	test   %edi,%edi
459795:	0f 84 2f 01 00 00    	je     0x4598ca
45979b:	8b 07                	mov    (%edi),%eax
45979d:	6a 07                	push   $0x7
45979f:	8b 70 2c             	mov    0x2c(%eax),%esi
4597a2:	8b ce                	mov    %esi,%ecx
4597a4:	ff 15 2c 81 4a 00    	call   *0x4a812c
4597aa:	8b cf                	mov    %edi,%ecx
4597ac:	ff d6                	call   *%esi
4597ae:	89 44 24 30          	mov    %eax,0x30(%esp)
4597b2:	8b 07                	mov    (%edi),%eax
4597b4:	6a 01                	push   $0x1
4597b6:	8b 70 2c             	mov    0x2c(%eax),%esi
4597b9:	8b ce                	mov    %esi,%ecx
4597bb:	ff 15 2c 81 4a 00    	call   *0x4a812c
4597c1:	8b cf                	mov    %edi,%ecx
4597c3:	ff d6                	call   *%esi
4597c5:	ff 74 24 20          	push   0x20(%esp)
4597c9:	8b 74 24 14          	mov    0x14(%esp),%esi
4597cd:	ff 74 24 10          	push   0x10(%esp)
4597d1:	89 44 24 40          	mov    %eax,0x40(%esp)
4597d5:	ff 74 24 20          	push   0x20(%esp)
4597d9:	56                   	push   %esi
4597da:	ff 77 04             	push   0x4(%edi)
4597dd:	ff 15 f4 70 4a 00    	call   *0x4a70f4
4597e3:	ff 74 24 18          	push   0x18(%esp)
4597e7:	8d 44 24 4c          	lea    0x4c(%esp),%eax
4597eb:	8b cf                	mov    %edi,%ecx
4597ed:	56                   	push   %esi
4597ee:	50                   	push   %eax
4597ef:	ff 15 68 7b 4a 00    	call   *0x4a7b68
4597f5:	8b 74 24 20          	mov    0x20(%esp),%esi
4597f9:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4597fd:	4e                   	dec    %esi
4597fe:	8b 4c 24 28          	mov    0x28(%esp),%ecx
459802:	4f                   	dec    %edi
459803:	56                   	push   %esi
459804:	57                   	push   %edi
459805:	ff 15 6c 7b 4a 00    	call   *0x4a7b6c
45980b:	56                   	push   %esi
45980c:	ff 74 24 14          	push   0x14(%esp)
459810:	8b 74 24 30          	mov    0x30(%esp),%esi
459814:	8d 44 24 58          	lea    0x58(%esp),%eax
459818:	50                   	push   %eax
459819:	8b ce                	mov    %esi,%ecx
45981b:	ff 15 68 7b 4a 00    	call   *0x4a7b68
459821:	ff 74 24 18          	push   0x18(%esp)
459825:	8b ce                	mov    %esi,%ecx
459827:	57                   	push   %edi
459828:	ff 15 6c 7b 4a 00    	call   *0x4a7b6c
45982e:	8b 44 24 30          	mov    0x30(%esp),%eax
459832:	85 c0                	test   %eax,%eax
459834:	75 04                	jne    0x45983a
459836:	8b c3                	mov    %ebx,%eax
459838:	eb 03                	jmp    0x45983d
45983a:	8b 40 04             	mov    0x4(%eax),%eax
45983d:	50                   	push   %eax
45983e:	ff 76 04             	push   0x4(%esi)
459841:	ff 15 90 75 4a 00    	call   *0x4a7590
459847:	8b 44 24 38          	mov    0x38(%esp),%eax
45984b:	85 c0                	test   %eax,%eax
45984d:	74 03                	je     0x459852
45984f:	8b 58 04             	mov    0x4(%eax),%ebx
459852:	53                   	push   %ebx
459853:	ff 76 04             	push   0x4(%esi)
459856:	ff 15 90 75 4a 00    	call   *0x4a7590
45985c:	eb 6c                	jmp    0x4598ca
45985e:	ff 75 10             	push   0x10(%ebp)
459861:	ff 15 b0 76 4a 00    	call   *0x4a76b0
459867:	8b c8                	mov    %eax,%ecx
459869:	89 44 24 28          	mov    %eax,0x28(%esp)
45986d:	ff 15 60 7b 4a 00    	call   *0x4a7b60
459873:	a8 01                	test   $0x1,%al
459875:	74 7d                	je     0x4598f4
459877:	85 f6                	test   %esi,%esi
459879:	74 79                	je     0x4598f4
45987b:	8b 46 40             	mov    0x40(%esi),%eax
45987e:	89 44 24 38          	mov    %eax,0x38(%esp)
459882:	85 c0                	test   %eax,%eax
459884:	74 6e                	je     0x4598f4
459886:	8b 5d 14             	mov    0x14(%ebp),%ebx
459889:	8b 40 30             	mov    0x30(%eax),%eax
45988c:	8b 4c 24 28          	mov    0x28(%esp),%ecx
459890:	6a 00                	push   $0x0
459892:	8b 3b                	mov    (%ebx),%edi
459894:	2b c7                	sub    %edi,%eax
459896:	8b 73 08             	mov    0x8(%ebx),%esi
459899:	2b c6                	sub    %esi,%eax
45989b:	50                   	push   %eax
45989c:	ff 15 64 7b 4a 00    	call   *0x4a7b64
4598a2:	8b 44 24 38          	mov    0x38(%esp),%eax
4598a6:	2b fe                	sub    %esi,%edi
4598a8:	ff 73 0c             	push   0xc(%ebx)
4598ab:	8b 48 30             	mov    0x30(%eax),%ecx
4598ae:	2b 0b                	sub    (%ebx),%ecx
4598b0:	51                   	push   %ecx
4598b1:	ff 73 04             	push   0x4(%ebx)
4598b4:	89 4b 08             	mov    %ecx,0x8(%ebx)
4598b7:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
4598ba:	89 03                	mov    %eax,(%ebx)
4598bc:	50                   	push   %eax
4598bd:	8b 44 24 38          	mov    0x38(%esp),%eax
4598c1:	ff 70 04             	push   0x4(%eax)
4598c4:	ff 15 f4 70 4a 00    	call   *0x4a70f4
4598ca:	33 db                	xor    %ebx,%ebx
4598cc:	43                   	inc    %ebx
4598cd:	eb 25                	jmp    0x4598f4
4598cf:	85 f6                	test   %esi,%esi
4598d1:	74 21                	je     0x4598f4
4598d3:	8b 7e 40             	mov    0x40(%esi),%edi
4598d6:	85 ff                	test   %edi,%edi
4598d8:	74 1a                	je     0x4598f4
4598da:	8b 75 14             	mov    0x14(%ebp),%esi
4598dd:	83 c7 28             	add    $0x28,%edi
4598e0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e4:	eb 0e                	jmp    0x4598f4
4598e6:	ff 75 14             	push   0x14(%ebp)
4598e9:	6a eb                	push   $0xffffffeb
4598eb:	ff 75 08             	push   0x8(%ebp)
4598ee:	ff 15 28 7e 4a 00    	call   *0x4a7e28
4598f4:	5f                   	pop    %edi