459312:	57                   	push   %edi
459313:	ff 15 9c 7d 4a 00    	call   *0x4a7d9c
459319:	e9 ab 00 00 00       	jmp    0x4593c9
45931e:	c1 e9 10             	shr    $0x10,%ecx
459321:	ba 00 03 00 00       	mov    $0x300,%edx
459326:	33 db                	xor    %ebx,%ebx
459328:	66 3b ca             	cmp    %dx,%cx
45932b:	75 23                	jne    0x459350
45932d:	53                   	push   %ebx
45932e:	8d 45 f8             	lea    -0x8(%ebp),%eax
459331:	50                   	push   %eax
459332:	68 c0 04 00 00       	push   $0x4c0
459337:	57                   	push   %edi
459338:	ff 15 34 7e 4a 00    	call   *0x4a7e34
45933e:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
459341:	74 27                	je     0x45936a
459343:	50                   	push   %eax
459344:	8d 56 0c             	lea    0xc(%esi),%edx
459347:	8b cf                	mov    %edi,%ecx
459349:	e8 1f 07 00 00       	call   0x459a6d
45934e:	eb 1a                	jmp    0x45936a
459350:	ba 00 02 00 00       	mov    $0x200,%edx
459355:	66 3b ca             	cmp    %dx,%cx
459358:	75 65                	jne    0x4593bf
45935a:	53                   	push   %ebx
45935b:	ff 76 0c             	push   0xc(%esi)
45935e:	68 c0 04 00 00       	push   $0x4c0
459363:	57                   	push   %edi
459364:	ff 15 9c 7d 4a 00    	call   *0x4a7d9c
45936a:	8b 45 fc             	mov    -0x4(%ebp),%eax
45936d:	eb 50                	jmp    0x4593bf
45936f:	c1 e9 10             	shr    $0x10,%ecx
459372:	66 85 c9             	test   %cx,%cx
459375:	75 52                	jne    0x4593c9
459377:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
45937e:	6a 00                	push   $0x0
459380:	eb 3e                	jmp    0x4593c0
459382:	c1 e9 10             	shr    $0x10,%ecx
459385:	66 85 c9             	test   %cx,%cx
459388:	75 3f                	jne    0x4593c9
45938a:	33 db                	xor    %ebx,%ebx
45938c:	89 5e 08             	mov    %ebx,0x8(%esi)
45938f:	eb 2e                	jmp    0x4593bf
459391:	c1 e9 10             	shr    $0x10,%ecx
459394:	66 85 c9             	test   %cx,%cx
459397:	75 30                	jne    0x4593c9
459399:	33 c0                	xor    %eax,%eax
45939b:	33 db                	xor    %ebx,%ebx
45939d:	39 5e 04             	cmp    %ebx,0x4(%esi)
4593a0:	53                   	push   %ebx
4593a1:	ff 75 fc             	push   -0x4(%ebp)
4593a4:	0f 94 c0             	sete   %al
4593a7:	89 46 04             	mov    %eax,0x4(%esi)
4593aa:	eb 15                	jmp    0x4593c1
4593ac:	c1 e9 10             	shr    $0x10,%ecx
4593af:	66 85 c9             	test   %cx,%cx
4593b2:	75 15                	jne    0x4593c9
4593b4:	33 c9                	xor    %ecx,%ecx
4593b6:	33 db                	xor    %ebx,%ebx
4593b8:	39 1e                	cmp    %ebx,(%esi)
4593ba:	0f 94 c1             	sete   %cl
4593bd:	89 0e                	mov    %ecx,(%esi)
4593bf:	53                   	push   %ebx
4593c0:	50                   	push   %eax
4593c1:	57                   	push   %edi
4593c2:	8b ce                	mov    %esi,%ecx
4593c4:	e8 36 05 00 00       	call   0x4598ff
4593c9:	33 c0                	xor    %eax,%eax
4593cb:	40                   	inc    %eax
4593cc:	eb 6a                	jmp    0x459438
4593ce:	8b 7d 14             	mov    0x14(%ebp),%edi
4593d1:	85 ff                	test   %edi,%edi
4593d3:	74 61                	je     0x459436
4593d5:	8b 47 40             	mov    0x40(%edi),%eax
4593d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4593db:	85 c0                	test   %eax,%eax
4593dd:	74 57                	je     0x459436
4593df:	8b 75 08             	mov    0x8(%ebp),%esi
4593e2:	57                   	push   %edi
4593e3:	6a eb                	push   $0xffffffeb
4593e5:	56                   	push   %esi
4593e6:	ff 15 28 7e 4a 00    	call   *0x4a7e28
4593ec:	33 db                	xor    %ebx,%ebx
4593ee:	53                   	push   %ebx
4593ef:	6a 04                	push   $0x4
4593f1:	68 c5 00 00 00       	push   $0xc5
4593f6:	68 c0 04 00 00       	push   $0x4c0
4593fb:	56                   	push   %esi
4593fc:	ff 15 24 7e 4a 00    	call   *0x4a7e24
459402:	53                   	push   %ebx
459403:	6a 02                	push   $0x2
459405:	68 c5 00 00 00       	push   $0xc5
45940a:	68 c2 04 00 00       	push   $0x4c2
45940f:	56                   	push   %esi
459410:	ff 15 24 7e 4a 00    	call   *0x4a7e24
459416:	53                   	push   %ebx
459417:	6a 02                	push   $0x2
459419:	68 c5 00 00 00       	push   $0xc5
45941e:	68 c4 04 00 00       	push   $0x4c4
459423:	56                   	push   %esi
459424:	ff 15 24 7e 4a 00    	call   *0x4a7e24
45942a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45942d:	6a 01                	push   $0x1
45942f:	57                   	push   %edi
459430:	56                   	push   %esi
459431:	e8 c9 04 00 00       	call   0x4598ff
459436:	33 c0                	xor    %eax,%eax
459438:	5f                   	pop    %edi
459439:	5e                   	pop    %esi
45943a:	5b                   	pop    %ebx
45943b:	c9                   	leave
45943c:	c2 10 00             	ret    $0x10
45943f:	8b ff                	mov    %edi,%edi
459441:	55                   	push   %ebp
459442:	8b ec                	mov    %esp,%ebp
459444:	83 ec 20             	sub    $0x20,%esp
459447:	53                   	push   %ebx
459448:	8b d9                	mov    %ecx,%ebx
45944a:	56                   	push   %esi
45944b:	33 f6                	xor    %esi,%esi
45944d:	57                   	push   %edi
45944e:	39 73 08             	cmp    %esi,0x8(%ebx)
459451:	74 60                	je     0x4594b3
459453:	8b 4d 08             	mov    0x8(%ebp),%ecx
459456:	8b 53 10             	mov    0x10(%ebx),%edx
459459:	dd 43 20             	fldl   0x20(%ebx)
45945c:	dd 43 18             	fldl   0x18(%ebx)
45945f:	8b 01                	mov    (%ecx),%eax
459461:	8b 79 04             	mov    0x4(%ecx),%edi
459464:	0f af c2             	imul   %edx,%eax
459467:	89 55 ec             	mov    %edx,-0x14(%ebp)
45946a:	8b 53 14             	mov    0x14(%ebx),%edx
45946d:	0f af fa             	imul   %edx,%edi
459470:	89 55 e8             	mov    %edx,-0x18(%ebp)
459473:	89 45 f0             	mov    %eax,-0x10(%ebp)
459476:	8b c8                	mov    %eax,%ecx
459478:	db 45 f0             	fildl  -0x10(%ebp)
45947b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45947e:	89 7d e4             	mov    %edi,-0x1c(%ebp)
459481:	dd 5d f4             	fstpl  -0xc(%ebp)
459484:	dd 45 f4             	fldl   -0xc(%ebp)
459487:	d8 ca                	fmul   %st(2),%st
459489:	d8 f1                	fdiv   %st(1),%st
45948b:	e8 91 7b 03 00       	call   0x491021
459490:	89 45 f8             	mov    %eax,-0x8(%ebp)
459493:	3b c7                	cmp    %edi,%eax
459495:	0f 8e 84 00 00 00    	jle    0x45951f
45949b:	db 45 e4             	fildl  -0x1c(%ebp)
45949e:	dd 5d e0             	fstpl  -0x20(%ebp)
4594a1:	dc 4d e0             	fmull  -0x20(%ebp)
4594a4:	de f1                	fdivp  %st,%st(1)
4594a6:	e8 76 7b 03 00       	call   0x491021
4594ab:	89 45 fc             	mov    %eax,-0x4(%ebp)
4594ae:	89 7d f8             	mov    %edi,-0x8(%ebp)
4594b1:	eb 73                	jmp    0x459526
4594b3:	8b 43 0c             	mov    0xc(%ebx),%eax
4594b6:	db 43 0c             	fildl  0xc(%ebx)
4594b9:	85 c0                	test   %eax,%eax
4594bb:	79 06                	jns    0x4594c3
4594bd:	dc 05 10 43 41 00    	faddl  0x414310
4594c3:	dd 5d e0             	fstpl  -0x20(%ebp)
4594c6:	dd 45 e0             	fldl   -0x20(%ebp)
4594c9:	dd 43 18             	fldl   0x18(%ebx)
4594cc:	d8 c9                	fmul   %st(1),%st
4594ce:	dd 05 98 42 41 00    	fldl   0x414298
4594d4:	dc f9                	fdivr  %st,%st(1)
4594d6:	d9 c9                	fxch   %st(1)
4594d8:	e8 44 7b 03 00       	call   0x491021
4594dd:	dd 43 20             	fldl   0x20(%ebx)
4594e0:	8b f8                	mov    %eax,%edi
4594e2:	de ca                	fmulp  %st,%st(2)
4594e4:	89 7d fc             	mov    %edi,-0x4(%ebp)
4594e7:	de f9                	fdivrp %st,%st(1)
4594e9:	e8 33 7b 03 00       	call   0x491021
4594ee:	8b 4d 08             	mov    0x8(%ebp),%ecx
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)