4561ff:	dc 5d f4             	fcompl -0xc(%ebp)
456202:	df e0                	fnstsw %ax
456204:	f6 c4 01             	test   $0x1,%ah
456207:	74 22                	je     0x45622b
456209:	e8 1f 54 ff ff       	call   0x44b62d
45620e:	dd 45 f4             	fldl   -0xc(%ebp)
456211:	dd 45 ec             	fldl   -0x14(%ebp)
456214:	8b cf                	mov    %edi,%ecx
456216:	dc e9                	fsubr  %st,%st(1)
456218:	d9 ca                	fxch   %st(2)
45621a:	de c9                	fmulp  %st,%st(1)
45621c:	de c1                	faddp  %st,%st(1)
45621e:	dd 5d ec             	fstpl  -0x14(%ebp)
456221:	e8 fa c9 fb ff       	call   0x412c20
456226:	dd 45 ec             	fldl   -0x14(%ebp)
456229:	eb 53                	jmp    0x45627e
45622b:	8b 03                	mov    (%ebx),%eax
45622d:	6a 00                	push   $0x0
45622f:	8b 48 04             	mov    0x4(%eax),%ecx
456232:	6a 01                	push   $0x1
456234:	03 cb                	add    %ebx,%ecx
456236:	e8 11 6d ff ff       	call   0x44cf4c
45623b:	eb 4a                	jmp    0x456287
45623d:	8b 46 04             	mov    0x4(%esi),%eax
456240:	8b 08                	mov    (%eax),%ecx
456242:	e8 89 ca fb ff       	call   0x412cd0
456247:	dd 55 ec             	fstl   -0x14(%ebp)
45624a:	d9 ee                	fldz
45624c:	de d9                	fcompp
45624e:	df e0                	fnstsw %ax
456250:	f6 c4 01             	test   $0x1,%ah
456253:	74 d6                	je     0x45622b
456255:	e8 d3 53 ff ff       	call   0x44b62d
45625a:	dc 4d ec             	fmull  -0x14(%ebp)
45625d:	8b cf                	mov    %edi,%ecx
45625f:	dd 5d ec             	fstpl  -0x14(%ebp)
456262:	e8 b9 c9 fb ff       	call   0x412c20
456267:	dd 45 ec             	fldl   -0x14(%ebp)
45626a:	eb 12                	jmp    0x45627e
45626c:	e8 bc 53 ff ff       	call   0x44b62d
456271:	dd 5d ec             	fstpl  -0x14(%ebp)
456274:	8b cf                	mov    %edi,%ecx
456276:	e8 a5 c9 fb ff       	call   0x412c20
45627b:	dd 45 ec             	fldl   -0x14(%ebp)
45627e:	dd 1f                	fstpl  (%edi)
456280:	c7 47 0c 03 00 00 00 	movl   $0x3,0xc(%edi)
456287:	5f                   	pop    %edi
456288:	5e                   	pop    %esi
456289:	33 c0                	xor    %eax,%eax
45628b:	5b                   	pop    %ebx
45628c:	c9                   	leave
45628d:	c2 08 00             	ret    $0x8
456290:	55                   	push   %ebp
456291:	8b ec                	mov    %esp,%ebp
456293:	8b 45 08             	mov    0x8(%ebp),%eax
456296:	8b 40 04             	mov    0x4(%eax),%eax
456299:	8b 08                	mov    (%eax),%ecx
45629b:	e8 e6 6f fb ff       	call   0x40d286
4562a0:	8b c8                	mov    %eax,%ecx
4562a2:	e8 e9 53 ff ff       	call   0x44b690
4562a7:	33 c0                	xor    %eax,%eax
4562a9:	5d                   	pop    %ebp
4562aa:	c2 08 00             	ret    $0x8
4562ad:	55                   	push   %ebp
4562ae:	8b ec                	mov    %esp,%ebp
4562b0:	51                   	push   %ecx
4562b1:	51                   	push   %ecx
4562b2:	8b 45 08             	mov    0x8(%ebp),%eax
4562b5:	56                   	push   %esi
4562b6:	8b 40 04             	mov    0x4(%eax),%eax
4562b9:	8b 08                	mov    (%eax),%ecx
4562bb:	e8 10 ca fb ff       	call   0x412cd0
4562c0:	51                   	push   %ecx
4562c1:	51                   	push   %ecx
4562c2:	dd 1c 24             	fstpl  (%esp)
4562c5:	e8 da e6 fc ff       	call   0x4249a4
4562ca:	8b 75 0c             	mov    0xc(%ebp),%esi
4562cd:	dd 5d f8             	fstpl  -0x8(%ebp)
4562d0:	83 c4 08             	add    $0x8,%esp
4562d3:	8b ce                	mov    %esi,%ecx
4562d5:	e8 46 c9 fb ff       	call   0x412c20
4562da:	dd 45 f8             	fldl   -0x8(%ebp)
4562dd:	dd 1e                	fstpl  (%esi)
4562df:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4562e6:	33 c0                	xor    %eax,%eax
4562e8:	5e                   	pop    %esi
4562e9:	c9                   	leave
4562ea:	c2 08 00             	ret    $0x8
4562ed:	55                   	push   %ebp
4562ee:	8b ec                	mov    %esp,%ebp
4562f0:	8b 45 08             	mov    0x8(%ebp),%eax
4562f3:	56                   	push   %esi
4562f4:	8b 40 04             	mov    0x4(%eax),%eax
4562f7:	8b 30                	mov    (%eax),%esi
4562f9:	8b ce                	mov    %esi,%ecx
4562fb:	e8 6c 30 fb ff       	call   0x40936c
456300:	ff 76 08             	push   0x8(%esi)
456303:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456306:	e8 5d 08 fb ff       	call   0x406b68
45630b:	33 c0                	xor    %eax,%eax
45630d:	5e                   	pop    %esi
45630e:	5d                   	pop    %ebp
45630f:	c2 08 00             	ret    $0x8
456312:	55                   	push   %ebp
456313:	8b ec                	mov    %esp,%ebp
456315:	51                   	push   %ecx
456316:	51                   	push   %ecx
456317:	8b 45 08             	mov    0x8(%ebp),%eax
45631a:	56                   	push   %esi
45631b:	8b 40 04             	mov    0x4(%eax),%eax
45631e:	8b 08                	mov    (%eax),%ecx
456320:	e8 ab c9 fb ff       	call   0x412cd0
456325:	51                   	push   %ecx
456326:	51                   	push   %ecx
456327:	dd 1c 24             	fstpl  (%esp)
45632a:	e8 a1 e2 fc ff       	call   0x4245d0
45632f:	8b 75 0c             	mov    0xc(%ebp),%esi
456332:	dd 5d f8             	fstpl  -0x8(%ebp)
456335:	83 c4 08             	add    $0x8,%esp
456338:	8b ce                	mov    %esi,%ecx
45633a:	e8 e1 c8 fb ff       	call   0x412c20
45633f:	dd 45 f8             	fldl   -0x8(%ebp)
456342:	dd 1e                	fstpl  (%esi)
456344:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
45634b:	33 c0                	xor    %eax,%eax
45634d:	5e                   	pop    %esi
45634e:	c9                   	leave
45634f:	c2 08 00             	ret    $0x8
456352:	55                   	push   %ebp
456353:	8b ec                	mov    %esp,%ebp
456355:	8b 45 14             	mov    0x14(%ebp),%eax
456358:	53                   	push   %ebx
456359:	33 d2                	xor    %edx,%edx
45635b:	33 db                	xor    %ebx,%ebx
45635d:	56                   	push   %esi
45635e:	8b 75 08             	mov    0x8(%ebp),%esi
456361:	43                   	inc    %ebx
456362:	89 16                	mov    %edx,(%esi)
456364:	89 56 08             	mov    %edx,0x8(%esi)
456367:	89 5e 0c             	mov    %ebx,0xc(%esi)
45636a:	2b c2                	sub    %edx,%eax
45636c:	74 2d                	je     0x45639b
45636e:	8b ce                	mov    %esi,%ecx
456370:	48                   	dec    %eax
456371:	74 19                	je     0x45638c
456373:	e8 a8 c8 fb ff       	call   0x412c20
456378:	8b 45 0c             	mov    0xc(%ebp),%eax
45637b:	89 06                	mov    %eax,(%esi)
45637d:	8b 45 10             	mov    0x10(%ebp),%eax
456380:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
456387:	89 46 04             	mov    %eax,0x4(%esi)
45638a:	eb 51                	jmp    0x4563dd
45638c:	e8 8f c8 fb ff       	call   0x412c20
456391:	8b 45 0c             	mov    0xc(%ebp),%eax
456394:	89 5e 0c             	mov    %ebx,0xc(%esi)
456397:	89 06                	mov    %eax,(%esi)
456399:	eb 42                	jmp    0x4563dd
45639b:	8b 5d 10             	mov    0x10(%ebp),%ebx
45639e:	57                   	push   %edi
45639f:	8b 7d 0c             	mov    0xc(%ebp),%edi
4563a2:	8b cf                	mov    %edi,%ecx
4563a4:	81 c1 00 00 00 80    	add    $0x80000000,%ecx
4563aa:	8b c3                	mov    %ebx,%eax
4563ac:	13 c2                	adc    %edx,%eax
4563ae:	3b c2                	cmp    %edx,%eax
4563b0:	77 17                	ja     0x4563c9
4563b2:	72 05                	jb     0x4563b9
4563b4:	83 f9 ff             	cmp    $0xffffffff,%ecx
4563b7:	77 10                	ja     0x4563c9
4563b9:	8b ce                	mov    %esi,%ecx
4563bb:	e8 60 c8 fb ff       	call   0x412c20
4563c0:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4563c7:	eb 11                	jmp    0x4563da
4563c9:	8b ce                	mov    %esi,%ecx
4563cb:	e8 50 c8 fb ff       	call   0x412c20
4563d0:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
4563d7:	89 5e 04             	mov    %ebx,0x4(%esi)
4563da:	89 3e                	mov    %edi,(%esi)
4563dc:	5f                   	pop    %edi
4563dd:	8b c6                	mov    %esi,%eax
4563df:	5e                   	pop    %esi
4563e0:	5b                   	pop    %ebx
4563e1:	5d                   	pop    %ebp
4563e2:	c2 10 00             	ret    $0x10
4563e5:	55                   	push   %ebp
4563e6:	8b ec                	mov    %esp,%ebp
4563e8:	53                   	push   %ebx
4563e9:	56                   	push   %esi
4563ea:	8b d9                	mov    %ecx,%ebx
4563ec:	57                   	push   %edi
4563ed:	8d 4d 08             	lea    0x8(%ebp),%ecx
4563f0:	e8 48 43 fc ff       	call   0x41a73d
4563f5:	8b 7d 0c             	mov    0xc(%ebp),%edi
4563f8:	85 ff                	test   %edi,%edi
4563fa:	79 02                	jns    0x4563fe
4563fc:	33 ff                	xor    %edi,%edi
4563fe:	b8 ff 00 00 00       	mov    $0xff,%eax
456403:	3b f8                	cmp    %eax,%edi
456405:	7e 02                	jle    0x456409
456407:	8b f8                	mov    %eax,%edi
456409:	8b 75 08             	mov    0x8(%ebp),%esi
45640c:	8d 43 01             	lea    0x1(%ebx),%eax
45640f:	50                   	push   %eax
456410:	53                   	push   %ebx
456411:	57                   	push   %edi
456412:	56                   	push   %esi
456413:	e8 61 3e 00 00       	call   0x45a279
456418:	8d 43 03             	lea    0x3(%ebx),%eax
45641b:	50                   	push   %eax
45641c:	8d 43 02             	lea    0x2(%ebx),%eax
45641f:	50                   	push   %eax
456420:	8b c6                	mov    %esi,%eax
456422:	57                   	push   %edi
456423:	c1 e8 08             	shr    $0x8,%eax
456426:	50                   	push   %eax
456427:	e8 4d 3e 00 00       	call   0x45a279
45642c:	8d 43 05             	lea    0x5(%ebx),%eax
45642f:	50                   	push   %eax
456430:	8d 43 04             	lea    0x4(%ebx),%eax
456433:	50                   	push   %eax
456434:	57                   	push   %edi
456435:	c1 fe 10             	sar    $0x10,%esi
456438:	56                   	push   %esi
456439:	e8 3b 3e 00 00       	call   0x45a279
45643e:	5f                   	pop    %edi
45643f:	5e                   	pop    %esi
456440:	8b c3                	mov    %ebx,%eax
456442:	5b                   	pop    %ebx
456443:	5d                   	pop    %ebp
456444:	c2 08 00             	ret    $0x8
456447:	56                   	push   %esi
456448:	8b f1                	mov    %ecx,%esi
45644a:	8d 4e 44             	lea    0x44(%esi),%ecx
45644d:	e8 e5 66 fb ff       	call   0x40cb37
456452:	8d 4e 34             	lea    0x34(%esi),%ecx
456455:	e8 dd 66 fb ff       	call   0x40cb37
45645a:	8d 4e 24             	lea    0x24(%esi),%ecx
45645d:	5e                   	pop    %esi
45645e:	e9 d4 66 fb ff       	jmp    0x40cb37
456463:	55                   	push   %ebp
456464:	8b ec                	mov    %esp,%ebp
456466:	83 e4 f8             	and    $0xfffffff8,%esp
456469:	83 ec 24             	sub    $0x24,%esp
45646c:	53                   	push   %ebx
45646d:	56                   	push   %esi
45646e:	8b 75 10             	mov    0x10(%ebp),%esi
456471:	57                   	push   %edi
456472:	8b f9                	mov    %ecx,%edi
456474:	8b ce                	mov    %esi,%ecx
456476:	e8 a5 c7 fb ff       	call   0x412c20
45647b:	33 db                	xor    %ebx,%ebx
45647d:	53                   	push   %ebx
45647e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456485:	89 1e                	mov    %ebx,(%esi)
456487:	e8 c1 c6 fa ff       	call   0x402b4d
45648c:	8d 4c 24 20          	lea    0x20(%esp),%ecx
456490:	e8 62 73 fb ff       	call   0x40d7f7
456495:	ff 75 14             	push   0x14(%ebp)
456498:	8d 44 24 24          	lea    0x24(%esp),%eax
45649c:	50                   	push   %eax
45649d:	ff 75 0c             	push   0xc(%ebp)
4564a0:	8b cf                	mov    %edi,%ecx
4564a2:	ff 75 08             	push   0x8(%ebp)
4564a5:	e8 e1 00 00 00       	call   0x45658b
4564aa:	84 c0                	test   %al,%al
4564ac:	74 78                	je     0x456526
4564ae:	8d 44 24 10          	lea    0x10(%esp),%eax
4564b2:	50                   	push   %eax
4564b3:	ff 74 24 24          	push   0x24(%esp)
4564b7:	c7 44 24 18 b4 dd 49 	movl   $0x49ddb4,0x18(%esp)
4564be:	00
4564bf:	53                   	push   %ebx
4564c0:	89 5c 24 20          	mov    %ebx,0x20(%esp)
4564c4:	89 5c 24 24          	mov    %ebx,0x24(%esp)
4564c8:	89 5c 24 28          	mov    %ebx,0x28(%esp)
4564cc:	e8 9f 4f fb ff       	call   0x40b470
4564d1:	83 7c 24 18 01       	cmpl   $0x1,0x18(%esp)
4564d6:	76 43                	jbe    0x45651b
4564d8:	8b cf                	mov    %edi,%ecx
4564da:	e8 cf bc fa ff       	call   0x4021ae
4564df:	ff 75 1c             	push   0x1c(%ebp)
4564e2:	8b f0                	mov    %eax,%esi
4564e4:	ff 75 10             	push   0x10(%ebp)
4564e7:	8d 44 24 14          	lea    0x14(%esp),%eax
4564eb:	50                   	push   %eax
4564ec:	8d 44 24 1c          	lea    0x1c(%esp),%eax
4564f0:	50                   	push   %eax
4564f1:	53                   	push   %ebx
4564f2:	8b cf                	mov    %edi,%ecx
4564f4:	89 5c 24 20          	mov    %ebx,0x20(%esp)
4564f8:	e8 03 cd fb ff       	call   0x413200
4564fd:	85 c0                	test   %eax,%eax
4564ff:	79 0e                	jns    0x45650f
456501:	85 f6                	test   %esi,%esi
456503:	74 18                	je     0x45651d
456505:	56                   	push   %esi
456506:	8b cf                	mov    %edi,%ecx
456508:	e8 f6 c7 fa ff       	call   0x402d03
45650d:	eb 0e                	jmp    0x45651d
45650f:	85 f6                	test   %esi,%esi
456511:	74 08                	je     0x45651b
456513:	56                   	push   %esi
456514:	8b cf                	mov    %edi,%ecx
456516:	e8 e8 c7 fa ff       	call   0x402d03
45651b:	b3 01                	mov    $0x1,%bl
45651d:	8d 4c 24 10          	lea    0x10(%esp),%ecx
456521:	e8 eb e9 fa ff       	call   0x404f11
456526:	8d 4c 24 20          	lea    0x20(%esp),%ecx
45652a:	e8 08 66 fb ff       	call   0x40cb37
45652f:	b9 f0 20 4c 00       	mov    $0x4c20f0,%ecx
456534:	e8 a7 78 fb ff       	call   0x40dde0
456539:	5f                   	pop    %edi
45653a:	5e                   	pop    %esi
45653b:	8a c3                	mov    %bl,%al
45653d:	5b                   	pop    %ebx
45653e:	8b e5                	mov    %ebp,%esp
456540:	5d                   	pop    %ebp
456541:	c2 1c 00             	ret    $0x1c
456544:	55                   	push   %ebp
456545:	8b ec                	mov    %esp,%ebp
456547:	83 ec 10             	sub    $0x10,%esp
45654a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
45654e:	75 1d                	jne    0x45656d
456550:	8d 45 f0             	lea    -0x10(%ebp),%eax
456553:	50                   	push   %eax
456554:	ff 75 10             	push   0x10(%ebp)
456557:	ff 15 7c d6 48 00    	call   *0x48d67c
45655d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456560:	8b 45 f0             	mov    -0x10(%ebp),%eax
456563:	89 01                	mov    %eax,(%ecx)
456565:	8b 45 f4             	mov    -0xc(%ebp),%eax
456568:	89 41 04             	mov    %eax,0x4(%ecx)
45656b:	eb 1a                	jmp    0x456587
45656d:	8b 45 0c             	mov    0xc(%ebp),%eax
456570:	83 20 00             	andl   $0x0,(%eax)
456573:	83 60 04 00          	andl   $0x0,0x4(%eax)
456577:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
45657b:	75 0a                	jne    0x456587
45657d:	50                   	push   %eax
45657e:	ff 75 10             	push   0x10(%ebp)
456581:	ff 15 c0 d4 48 00    	call   *0x48d4c0
456587:	c9                   	leave
456588:	c2 0c 00             	ret    $0xc
45658b:	55                   	push   %ebp
45658c:	8b ec                	mov    %esp,%ebp
45658e:	81 ec a4 00 00 00    	sub    $0xa4,%esp
456594:	53                   	push   %ebx
456595:	56                   	push   %esi
456596:	57                   	push   %edi
456597:	ff 75 08             	push   0x8(%ebp)