47a297:	33 c0                	xor    %eax,%eax
47a299:	6a 10                	push   $0x10
47a29b:	89 47 08             	mov    %eax,0x8(%edi)
47a29e:	ff 15 14 74 4a 00    	call   *0x4a7414
47a2a4:	89 45 f0             	mov    %eax,-0x10(%ebp)
47a2a7:	59                   	pop    %ecx
47a2a8:	85 c0                	test   %eax,%eax
47a2aa:	74 11                	je     0x47a2bd
47a2ac:	89 78 04             	mov    %edi,0x4(%eax)
47a2af:	89 78 08             	mov    %edi,0x8(%eax)
47a2b2:	c7 00 e0 5f 40 00    	movl   $0x405fe0,(%eax)
47a2b8:	89 78 0c             	mov    %edi,0xc(%eax)
47a2bb:	eb 02                	jmp    0x47a2bf
47a2bd:	33 c0                	xor    %eax,%eax
47a2bf:	89 47 0c             	mov    %eax,0xc(%edi)
47a2c2:	8d 77 2c             	lea    0x2c(%edi),%esi
47a2c5:	8d 45 f0             	lea    -0x10(%ebp),%eax
47a2c8:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
47a2cf:	50                   	push   %eax
47a2d0:	8b ce                	mov    %esi,%ecx
47a2d2:	e8 5a 72 fb ff       	call   0x431531
47a2d7:	8d 45 f0             	lea    -0x10(%ebp),%eax
47a2da:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
47a2e1:	50                   	push   %eax
47a2e2:	8b ce                	mov    %esi,%ecx
47a2e4:	e8 48 72 fb ff       	call   0x431531
47a2e9:	8d 45 f0             	lea    -0x10(%ebp),%eax
47a2ec:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
47a2f3:	50                   	push   %eax
47a2f4:	8b ce                	mov    %esi,%ecx
47a2f6:	e8 36 72 fb ff       	call   0x431531
47a2fb:	8d 45 f0             	lea    -0x10(%ebp),%eax
47a2fe:	c7 45 f0 04 00 00 00 	movl   $0x4,-0x10(%ebp)
47a305:	50                   	push   %eax
47a306:	8b ce                	mov    %esi,%ecx
47a308:	e8 24 72 fb ff       	call   0x431531
47a30d:	8b c7                	mov    %edi,%eax
47a30f:	e8 8d 61 01 00       	call   0x4904a1
47a314:	c2 04 00             	ret    $0x4
47a317:	cc                   	int3
47a318:	cc                   	int3
47a319:	cc                   	int3
47a31a:	cc                   	int3
47a31b:	cc                   	int3
47a31c:	cc                   	int3
47a31d:	cc                   	int3
47a31e:	cc                   	int3
47a31f:	cc                   	int3
47a320:	8b ff                	mov    %edi,%edi
47a322:	55                   	push   %ebp
47a323:	8b ec                	mov    %esp,%ebp
47a325:	56                   	push   %esi
47a326:	8b f1                	mov    %ecx,%esi
47a328:	ff 76 04             	push   0x4(%esi)
47a32b:	c7 06 90 61 40 00    	movl   $0x406190,(%esi)
47a331:	ff 15 10 74 4a 00    	call   *0x4a7410
47a337:	ff 76 08             	push   0x8(%esi)
47a33a:	ff 15 10 74 4a 00    	call   *0x4a7410
47a340:	ff 76 0c             	push   0xc(%esi)
47a343:	ff 15 10 74 4a 00    	call   *0x4a7410
47a349:	83 c4 0c             	add    $0xc,%esp
47a34c:	8b ce                	mov    %esi,%ecx
47a34e:	e8 df 2d 00 00       	call   0x47d132
47a353:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
47a357:	74 08                	je     0x47a361
47a359:	56                   	push   %esi
47a35a:	ff 15 10 74 4a 00    	call   *0x4a7410
47a360:	59                   	pop    %ecx
47a361:	8b c6                	mov    %esi,%eax
47a363:	5e                   	pop    %esi
47a364:	5d                   	pop    %ebp
47a365:	c2 04 00             	ret    $0x4
47a368:	cc                   	int3
47a369:	cc                   	int3
47a36a:	cc                   	int3
47a36b:	cc                   	int3
47a36c:	cc                   	int3
47a36d:	cc                   	int3
47a36e:	cc                   	int3
47a36f:	cc                   	int3
47a370:	8b ff                	mov    %edi,%edi
47a372:	55                   	push   %ebp
47a373:	8b ec                	mov    %esp,%ebp
47a375:	51                   	push   %ecx
47a376:	53                   	push   %ebx
47a377:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a37a:	8b c1                	mov    %ecx,%eax
47a37c:	56                   	push   %esi
47a37d:	57                   	push   %edi
47a37e:	53                   	push   %ebx
47a37f:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a382:	e8 39 40 00 00       	call   0x47e3c0
47a387:	8b 03                	mov    (%ebx),%eax
47a389:	6a 03                	push   $0x3
47a38b:	8b 70 20             	mov    0x20(%eax),%esi
47a38e:	8b ce                	mov    %esi,%ecx
47a390:	ff 15 2c 81 4a 00    	call   *0x4a812c
47a396:	8b cb                	mov    %ebx,%ecx
47a398:	ff d6                	call   *%esi
47a39a:	8b f8                	mov    %eax,%edi
47a39c:	8b 45 fc             	mov    -0x4(%ebp),%eax
47a39f:	50                   	push   %eax
47a3a0:	89 78 48             	mov    %edi,0x48(%eax)
47a3a3:	8b 0f                	mov    (%edi),%ecx
47a3a5:	8b 31                	mov    (%ecx),%esi
47a3a7:	8b ce                	mov    %esi,%ecx
47a3a9:	ff 15 2c 81 4a 00    	call   *0x4a812c
47a3af:	8b cf                	mov    %edi,%ecx
47a3b1:	ff d6                	call   *%esi
47a3b3:	8b 03                	mov    (%ebx),%eax
47a3b5:	6a 2a                	push   $0x2a
47a3b7:	8b 70 20             	mov    0x20(%eax),%esi
47a3ba:	8b ce                	mov    %esi,%ecx
47a3bc:	ff 15 2c 81 4a 00    	call   *0x4a812c
47a3c2:	8b cb                	mov    %ebx,%ecx
47a3c4:	ff d6                	call   *%esi
47a3c6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47a3c9:	5f                   	pop    %edi
47a3ca:	5e                   	pop    %esi
47a3cb:	5b                   	pop    %ebx
47a3cc:	89 41 4c             	mov    %eax,0x4c(%ecx)
47a3cf:	c9                   	leave
47a3d0:	c2 04 00             	ret    $0x4
47a3d3:	8b ff                	mov    %edi,%edi
47a3d5:	55                   	push   %ebp
47a3d6:	8b ec                	mov    %esp,%ebp
47a3d8:	51                   	push   %ecx
47a3d9:	51                   	push   %ecx
47a3da:	8b 55 08             	mov    0x8(%ebp),%edx
47a3dd:	8b 45 10             	mov    0x10(%ebp),%eax
47a3e0:	56                   	push   %esi
47a3e1:	8b f1                	mov    %ecx,%esi
47a3e3:	2b 42 04             	sub    0x4(%edx),%eax
47a3e6:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a3e9:	db 45 fc             	fildl  -0x4(%ebp)
47a3ec:	dd 5d f8             	fstpl  -0x8(%ebp)
47a3ef:	dd 45 f8             	fldl   -0x8(%ebp)
47a3f2:	8b 45 0c             	mov    0xc(%ebp),%eax
47a3f5:	2b 02                	sub    (%edx),%eax
47a3f7:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a3fa:	db 45 fc             	fildl  -0x4(%ebp)
47a3fd:	dd 5d f8             	fstpl  -0x8(%ebp)
47a400:	dd 45 f8             	fldl   -0x8(%ebp)
47a403:	e8 c7 6a 01 00       	call   0x490ecf
47a408:	dc 0d b0 42 41 00    	fmull  0x4142b0
47a40e:	dc 0d 80 41 41 00    	fmull  0x414180
47a414:	dc 05 d0 42 41 00    	faddl  0x4142d0
47a41a:	e8 02 6c 01 00       	call   0x491021
47a41f:	99                   	cltd
47a420:	b9 b4 00 00 00       	mov    $0xb4,%ecx
47a425:	f7 f9                	idiv   %ecx
47a427:	6a 2d                	push   $0x2d
47a429:	59                   	pop    %ecx
47a42a:	8d 42 16             	lea    0x16(%edx),%eax
47a42d:	99                   	cltd
47a42e:	f7 f9                	idiv   %ecx
47a430:	6b c0 2d             	imul   $0x2d,%eax,%eax
47a433:	89 46 58             	mov    %eax,0x58(%esi)
47a436:	5e                   	pop    %esi
47a437:	c9                   	leave
47a438:	c2 0c 00             	ret    $0xc
47a43b:	8b ff                	mov    %edi,%edi
47a43d:	55                   	push   %ebp
47a43e:	8b ec                	mov    %esp,%ebp
47a440:	83 ec 10             	sub    $0x10,%esp
47a443:	53                   	push   %ebx
47a444:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a447:	56                   	push   %esi
47a448:	57                   	push   %edi
47a449:	8b 7d 0c             	mov    0xc(%ebp),%edi
47a44c:	8b 43 04             	mov    0x4(%ebx),%eax
47a44f:	8b 33                	mov    (%ebx),%esi
47a451:	89 4d f0             	mov    %ecx,-0x10(%ebp)
47a454:	2b 47 04             	sub    0x4(%edi),%eax
47a457:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a45a:	8b c6                	mov    %esi,%eax
47a45c:	2b 07                	sub    (%edi),%eax
47a45e:	89 45 f4             	mov    %eax,-0xc(%ebp)
47a461:	99                   	cltd
47a462:	8b c8                	mov    %eax,%ecx
47a464:	8b 45 f8             	mov    -0x8(%ebp),%eax
47a467:	33 ca                	xor    %edx,%ecx
47a469:	2b ca                	sub    %edx,%ecx
47a46b:	99                   	cltd
47a46c:	33 c2                	xor    %edx,%eax
47a46e:	2b c2                	sub    %edx,%eax
47a470:	3b c8                	cmp    %eax,%ecx
47a472:	8b 45 f4             	mov    -0xc(%ebp),%eax
47a475:	7c 03                	jl     0x47a47a
47a477:	8b 45 f8             	mov    -0x8(%ebp),%eax
47a47a:	99                   	cltd
47a47b:	8b c8                	mov    %eax,%ecx
47a47d:	8b 45 f0             	mov    -0x10(%ebp),%eax
47a480:	33 ca                	xor    %edx,%ecx
47a482:	2b ca                	sub    %edx,%ecx
47a484:	8b 40 58             	mov    0x58(%eax),%eax
47a487:	83 e8 2d             	sub    $0x2d,%eax
47a48a:	74 48                	je     0x47a4d4
47a48c:	83 e8 2d             	sub    $0x2d,%eax
47a48f:	74 3f                	je     0x47a4d0
47a491:	83 e8 2d             	sub    $0x2d,%eax
47a494:	74 0f                	je     0x47a4a5
47a496:	83 e8 5a             	sub    $0x5a,%eax
47a499:	74 39                	je     0x47a4d4
47a49b:	83 e8 5a             	sub    $0x5a,%eax
47a49e:	74 05                	je     0x47a4a5
47a4a0:	8b 43 04             	mov    0x4(%ebx),%eax
47a4a3:	eb 54                	jmp    0x47a4f9
47a4a5:	39 37                	cmp    %esi,(%edi)
47a4a7:	7f 1b                	jg     0x47a4c4
47a4a9:	8b 43 04             	mov    0x4(%ebx),%eax
47a4ac:	39 47 04             	cmp    %eax,0x4(%edi)
47a4af:	7c 13                	jl     0x47a4c4
47a4b1:	39 37                	cmp    %esi,(%edi)
47a4b3:	7c 09                	jl     0x47a4be
47a4b5:	39 47 04             	cmp    %eax,0x4(%edi)
47a4b8:	7f 04                	jg     0x47a4be
47a4ba:	89 37                	mov    %esi,(%edi)
47a4bc:	eb e2                	jmp    0x47a4a0
47a4be:	2b f1                	sub    %ecx,%esi
47a4c0:	89 37                	mov    %esi,(%edi)
47a4c2:	eb 30                	jmp    0x47a4f4
47a4c4:	8d 04 31             	lea    (%ecx,%esi,1),%eax
47a4c7:	89 07                	mov    %eax,(%edi)
47a4c9:	8b 43 04             	mov    0x4(%ebx),%eax
47a4cc:	2b c1                	sub    %ecx,%eax
47a4ce:	eb 29                	jmp    0x47a4f9
47a4d0:	89 37                	mov    %esi,(%edi)
47a4d2:	eb 28                	jmp    0x47a4fc
47a4d4:	39 37                	cmp    %esi,(%edi)
47a4d6:	7f 17                	jg     0x47a4ef
47a4d8:	8b 43 04             	mov    0x4(%ebx),%eax
47a4db:	39 47 04             	cmp    %eax,0x4(%edi)
47a4de:	7f 0f                	jg     0x47a4ef
47a4e0:	39 37                	cmp    %esi,(%edi)
47a4e2:	7c 05                	jl     0x47a4e9
47a4e4:	39 47 04             	cmp    %eax,0x4(%edi)
47a4e7:	7d d1                	jge    0x47a4ba
47a4e9:	2b f1                	sub    %ecx,%esi
47a4eb:	89 37                	mov    %esi,(%edi)
47a4ed:	eb da                	jmp    0x47a4c9
47a4ef:	8d 04 31             	lea    (%ecx,%esi,1),%eax
47a4f2:	89 07                	mov    %eax,(%edi)
47a4f4:	8b 43 04             	mov    0x4(%ebx),%eax
47a4f7:	03 c1                	add    %ecx,%eax
47a4f9:	89 47 04             	mov    %eax,0x4(%edi)
47a4fc:	5f                   	pop    %edi
47a4fd:	5e                   	pop    %esi
47a4fe:	5b                   	pop    %ebx
47a4ff:	c9                   	leave
47a500:	c2 08 00             	ret    $0x8
47a503:	cc                   	int3
47a504:	cc                   	int3
47a505:	cc                   	int3
47a506:	cc                   	int3
47a507:	cc                   	int3
47a508:	cc                   	int3
47a509:	cc                   	int3
47a50a:	cc                   	int3
47a50b:	cc                   	int3
47a50c:	cc                   	int3
47a50d:	cc                   	int3
47a50e:	cc                   	int3
47a50f:	cc                   	int3
47a510:	8b ff                	mov    %edi,%edi
47a512:	55                   	push   %ebp
47a513:	8b ec                	mov    %esp,%ebp
47a515:	56                   	push   %esi
47a516:	6a 10                	push   $0x10
47a518:	8b f1                	mov    %ecx,%esi
47a51a:	ff 15 8c 7d 4a 00    	call   *0x4a7d8c
47a520:	b9 00 80 00 00       	mov    $0x8000,%ecx
47a525:	66 85 c1             	test   %ax,%cx
47a528:	74 29                	je     0x47a553
47a52a:	80 7e 54 00          	cmpb   $0x0,0x54(%esi)
47a52e:	57                   	push   %edi
47a52f:	8b 7d 0c             	mov    0xc(%ebp),%edi
47a532:	75 0f                	jne    0x47a543
47a534:	ff 77 04             	push   0x4(%edi)
47a537:	8b ce                	mov    %esi,%ecx
47a539:	ff 37                	push   (%edi)
47a53b:	ff 75 08             	push   0x8(%ebp)
47a53e:	e8 90 fe ff ff       	call   0x47a3d3
47a543:	57                   	push   %edi
47a544:	ff 75 08             	push   0x8(%ebp)
47a547:	8b ce                	mov    %esi,%ecx
47a549:	e8 ed fe ff ff       	call   0x47a43b
47a54e:	b0 01                	mov    $0x1,%al
47a550:	5f                   	pop    %edi
47a551:	eb 02                	jmp    0x47a555
47a553:	32 c0                	xor    %al,%al
47a555:	88 46 54             	mov    %al,0x54(%esi)
47a558:	5e                   	pop    %esi
47a559:	5d                   	pop    %ebp
47a55a:	c2 08 00             	ret    $0x8
47a55d:	cc                   	int3
47a55e:	cc                   	int3
47a55f:	cc                   	int3
47a560:	8b ff                	mov    %edi,%edi
47a562:	55                   	push   %ebp
47a563:	8b ec                	mov    %esp,%ebp
47a565:	53                   	push   %ebx
47a566:	56                   	push   %esi
47a567:	33 db                	xor    %ebx,%ebx
47a569:	8b f1                	mov    %ecx,%esi
47a56b:	53                   	push   %ebx
47a56c:	68 54 30 4a 00       	push   $0x4a3054
47a571:	68 34 30 4a 00       	push   $0x4a3034
47a576:	53                   	push   %ebx
47a577:	ff 75 0c             	push   0xc(%ebp)
47a57a:	e8 5f 6a 01 00       	call   0x490fde
47a57f:	83 c4 14             	add    $0x14,%esp
47a582:	8b 48 0c             	mov    0xc(%eax),%ecx
47a585:	ff 75 0c             	push   0xc(%ebp)
47a588:	89 4e 10             	mov    %ecx,0x10(%esi)
47a58b:	8b ce                	mov    %esi,%ecx
47a58d:	8b 40 10             	mov    0x10(%eax),%eax
47a590:	ff 75 08             	push   0x8(%ebp)
47a593:	89 46 14             	mov    %eax,0x14(%esi)
47a596:	8b 46 0c             	mov    0xc(%esi),%eax
47a599:	88 58 54             	mov    %bl,0x54(%eax)
47a59c:	8b 46 0c             	mov    0xc(%esi),%eax
47a59f:	89 58 58             	mov    %ebx,0x58(%eax)
47a5a2:	e8 39 35 00 00       	call   0x47dae0
47a5a7:	5e                   	pop    %esi
47a5a8:	5b                   	pop    %ebx
47a5a9:	5d                   	pop    %ebp
47a5aa:	c2 08 00             	ret    $0x8
47a5ad:	cc                   	int3
47a5ae:	cc                   	int3
47a5af:	cc                   	int3
47a5b0:	8b ff                	mov    %edi,%edi
47a5b2:	55                   	push   %ebp
47a5b3:	8b ec                	mov    %esp,%ebp
47a5b5:	83 e4 f8             	and    $0xfffffff8,%esp
47a5b8:	83 ec 0c             	sub    $0xc,%esp
47a5bb:	8b 55 08             	mov    0x8(%ebp),%edx
47a5be:	53                   	push   %ebx
47a5bf:	56                   	push   %esi
47a5c0:	57                   	push   %edi
47a5c1:	8b 79 0c             	mov    0xc(%ecx),%edi
47a5c4:	8d 59 10             	lea    0x10(%ecx),%ebx
47a5c7:	8b 02                	mov    (%edx),%eax
47a5c9:	89 44 24 10          	mov    %eax,0x10(%esp)
47a5cd:	8b 42 04             	mov    0x4(%edx),%eax
47a5d0:	89 44 24 14          	mov    %eax,0x14(%esp)
47a5d4:	8b 07                	mov    (%edi),%eax
47a5d6:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
47a5da:	8d 4c 24 10          	lea    0x10(%esp),%ecx
47a5de:	51                   	push   %ecx