47a3d9:	e8 25 54 f9 ff       	call   0x40f803
47a3de:	85 c0                	test   %eax,%eax
47a3e0:	78 3e                	js     0x47a420
47a3e2:	8b 4d 10             	mov    0x10(%ebp),%ecx
47a3e5:	8d 45 cc             	lea    -0x34(%ebp),%eax
47a3e8:	50                   	push   %eax
47a3e9:	e8 77 c2 fd ff       	call   0x456665
47a3ee:	8b 55 e0             	mov    -0x20(%ebp),%edx
47a3f1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47a3f4:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a3f7:	66 83 78 08 40       	cmpw   $0x40,0x8(%eax)
47a3fc:	75 14                	jne    0x47a412
47a3fe:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
47a402:	6a 7f                	push   $0x7f
47a404:	5a                   	pop    %edx
47a405:	66 39 50 08          	cmp    %dx,0x8(%eax)
47a409:	8b 55 e0             	mov    -0x20(%ebp),%edx
47a40c:	74 35                	je     0x47a443
47a40e:	41                   	inc    %ecx
47a40f:	89 4d 0c             	mov    %ecx,0xc(%ebp)
47a412:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a415:	6a 7f                	push   $0x7f
47a417:	59                   	pop    %ecx
47a418:	66 39 48 08          	cmp    %cx,0x8(%eax)
47a41c:	75 a8                	jne    0x47a3c6
47a41e:	8b fe                	mov    %esi,%edi
47a420:	8d 4d cc             	lea    -0x34(%ebp),%ecx
47a423:	e8 f8 f5 f8 ff       	call   0x409a20
47a428:	8d 4d ec             	lea    -0x14(%ebp),%ecx
47a42b:	e8 cb ba f8 ff       	call   0x405efb
47a430:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47a433:	e8 3e d3 f8 ff       	call   0x407776
47a438:	8b c7                	mov    %edi,%eax
47a43a:	5f                   	pop    %edi
47a43b:	5e                   	pop    %esi
47a43c:	5b                   	pop    %ebx
47a43d:	8b e5                	mov    %ebp,%esp
47a43f:	5d                   	pop    %ebp
47a440:	c2 0c 00             	ret    $0xc
47a443:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
47a446:	0f bf 40 0a          	movswl 0xa(%eax),%eax
47a44a:	50                   	push   %eax
47a44b:	6a 6e                	push   $0x6e
47a44d:	8b cb                	mov    %ebx,%ecx
47a44f:	e8 61 fc fe ff       	call   0x46a0b5
47a454:	eb ca                	jmp    0x47a420
47a456:	56                   	push   %esi
47a457:	8b f1                	mov    %ecx,%esi
47a459:	57                   	push   %edi
47a45a:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
47a45e:	74 17                	je     0x47a477
47a460:	8b 4e 04             	mov    0x4(%esi),%ecx
47a463:	8b 79 10             	mov    0x10(%ecx),%edi
47a466:	85 c9                	test   %ecx,%ecx
47a468:	74 06                	je     0x47a470
47a46a:	51                   	push   %ecx
47a46b:	e8 76 57 fa ff       	call   0x41fbe6
47a470:	89 7e 04             	mov    %edi,0x4(%esi)
47a473:	c6 46 09 00          	movb   $0x0,0x9(%esi)
47a477:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
47a47b:	74 06                	je     0x47a483
47a47d:	c6 46 09 01          	movb   $0x1,0x9(%esi)
47a481:	eb 17                	jmp    0x47a49a
47a483:	8b 4e 04             	mov    0x4(%esi),%ecx
47a486:	8b 79 10             	mov    0x10(%ecx),%edi
47a489:	85 c9                	test   %ecx,%ecx
47a48b:	74 06                	je     0x47a493
47a48d:	51                   	push   %ecx
47a48e:	e8 53 57 fa ff       	call   0x41fbe6
47a493:	89 7e 04             	mov    %edi,0x4(%esi)
47a496:	c6 46 09 00          	movb   $0x0,0x9(%esi)
47a49a:	ff 0e                	decl   (%esi)
47a49c:	5f                   	pop    %edi
47a49d:	5e                   	pop    %esi
47a49e:	c3                   	ret
47a49f:	55                   	push   %ebp
47a4a0:	8b ec                	mov    %esp,%ebp
47a4a2:	53                   	push   %ebx
47a4a3:	56                   	push   %esi
47a4a4:	8b f1                	mov    %ecx,%esi
47a4a6:	6a 04                	push   $0x4
47a4a8:	5b                   	pop    %ebx
47a4a9:	8b 46 0c             	mov    0xc(%esi),%eax
47a4ac:	39 46 08             	cmp    %eax,0x8(%esi)
47a4af:	75 4d                	jne    0x47a4fe
47a4b1:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
47a4b4:	6a 08                	push   $0x8
47a4b6:	58                   	pop    %eax
47a4b7:	3b c8                	cmp    %eax,%ecx
47a4b9:	72 02                	jb     0x47a4bd
47a4bb:	8b c1                	mov    %ecx,%eax
47a4bd:	33 c9                	xor    %ecx,%ecx
47a4bf:	89 46 0c             	mov    %eax,0xc(%esi)
47a4c2:	f7 e3                	mul    %ebx
47a4c4:	57                   	push   %edi
47a4c5:	0f 90 c1             	seto   %cl
47a4c8:	f7 d9                	neg    %ecx
47a4ca:	0b c8                	or     %eax,%ecx
47a4cc:	51                   	push   %ecx
47a4cd:	e8 d3 6a fa ff       	call   0x420fa5
47a4d2:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
47a4d6:	8b f8                	mov    %eax,%edi
47a4d8:	59                   	pop    %ecx
47a4d9:	74 1f                	je     0x47a4fa
47a4db:	8b 46 08             	mov    0x8(%esi),%eax
47a4de:	85 c0                	test   %eax,%eax
47a4e0:	74 18                	je     0x47a4fa
47a4e2:	c1 e0 02             	shl    $0x2,%eax
47a4e5:	50                   	push   %eax
47a4e6:	ff 76 04             	push   0x4(%esi)
47a4e9:	57                   	push   %edi
47a4ea:	e8 91 6b fa ff       	call   0x421080
47a4ef:	ff 76 04             	push   0x4(%esi)
47a4f2:	e8 b9 8b fa ff       	call   0x4230b0
47a4f7:	83 c4 10             	add    $0x10,%esp
47a4fa:	89 7e 04             	mov    %edi,0x4(%esi)
47a4fd:	5f                   	pop    %edi
47a4fe:	53                   	push   %ebx
47a4ff:	e8 f2 6a fa ff       	call   0x420ff6
47a504:	8b d0                	mov    %eax,%edx
47a506:	59                   	pop    %ecx
47a507:	85 d2                	test   %edx,%edx
47a509:	74 09                	je     0x47a514
47a50b:	8b 4d 08             	mov    0x8(%ebp),%ecx
47a50e:	8b 09                	mov    (%ecx),%ecx
47a510:	89 0a                	mov    %ecx,(%edx)
47a512:	eb 02                	jmp    0x47a516
47a514:	33 d2                	xor    %edx,%edx
47a516:	8b 4e 08             	mov    0x8(%esi),%ecx
47a519:	8b 46 04             	mov    0x4(%esi),%eax
47a51c:	89 14 88             	mov    %edx,(%eax,%ecx,4)
47a51f:	ff 46 08             	incl   0x8(%esi)
47a522:	5e                   	pop    %esi
47a523:	5b                   	pop    %ebx
47a524:	5d                   	pop    %ebp
47a525:	c2 04 00             	ret    $0x4
47a528:	55                   	push   %ebp
47a529:	8b ec                	mov    %esp,%ebp
47a52b:	53                   	push   %ebx
47a52c:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a52f:	56                   	push   %esi
47a530:	8b f1                	mov    %ecx,%esi
47a532:	57                   	push   %edi
47a533:	c7 06 78 fb 48 00    	movl   $0x48fb78,(%esi)
47a539:	8b 43 08             	mov    0x8(%ebx),%eax
47a53c:	89 46 08             	mov    %eax,0x8(%esi)
47a53f:	85 c0                	test   %eax,%eax
47a541:	74 5a                	je     0x47a59d
47a543:	6a 08                	push   $0x8
47a545:	5a                   	pop    %edx
47a546:	3b c2                	cmp    %edx,%eax
47a548:	72 02                	jb     0x47a54c
47a54a:	8b d0                	mov    %eax,%edx
47a54c:	89 56 0c             	mov    %edx,0xc(%esi)
47a54f:	33 c9                	xor    %ecx,%ecx
47a551:	8b c2                	mov    %edx,%eax
47a553:	6a 04                	push   $0x4
47a555:	5a                   	pop    %edx
47a556:	f7 e2                	mul    %edx
47a558:	0f 90 c1             	seto   %cl
47a55b:	f7 d9                	neg    %ecx
47a55d:	0b c8                	or     %eax,%ecx
47a55f:	51                   	push   %ecx
47a560:	e8 91 6a fa ff       	call   0x420ff6
47a565:	33 ff                	xor    %edi,%edi
47a567:	89 46 04             	mov    %eax,0x4(%esi)
47a56a:	59                   	pop    %ecx
47a56b:	39 7e 08             	cmp    %edi,0x8(%esi)
47a56e:	76 35                	jbe    0x47a5a5
47a570:	6a 0c                	push   $0xc
47a572:	e8 7f 6a fa ff       	call   0x420ff6
47a577:	59                   	pop    %ecx
47a578:	85 c0                	test   %eax,%eax
47a57a:	74 11                	je     0x47a58d
47a57c:	8b 4b 04             	mov    0x4(%ebx),%ecx
47a57f:	ff 34 b9             	push   (%ecx,%edi,4)
47a582:	8b c8                	mov    %eax,%ecx
47a584:	e8 40 c5 fd ff       	call   0x456ac9
47a589:	8b c8                	mov    %eax,%ecx
47a58b:	eb 02                	jmp    0x47a58f
47a58d:	33 c9                	xor    %ecx,%ecx
47a58f:	8b 46 04             	mov    0x4(%esi),%eax
47a592:	89 0c b8             	mov    %ecx,(%eax,%edi,4)
47a595:	47                   	inc    %edi
47a596:	3b 7e 08             	cmp    0x8(%esi),%edi
47a599:	72 d5                	jb     0x47a570
47a59b:	eb 08                	jmp    0x47a5a5
47a59d:	83 66 0c 00          	andl   $0x0,0xc(%esi)
47a5a1:	83 66 04 00          	andl   $0x0,0x4(%esi)
47a5a5:	5f                   	pop    %edi
47a5a6:	8b c6                	mov    %esi,%eax
47a5a8:	5e                   	pop    %esi
47a5a9:	5b                   	pop    %ebx
47a5aa:	5d                   	pop    %ebp
47a5ab:	c2 04 00             	ret    $0x4
47a5ae:	55                   	push   %ebp
47a5af:	8b ec                	mov    %esp,%ebp
47a5b1:	56                   	push   %esi
47a5b2:	8b 75 08             	mov    0x8(%ebp),%esi
47a5b5:	57                   	push   %edi
47a5b6:	8b f9                	mov    %ecx,%edi
47a5b8:	8b 06                	mov    (%esi),%eax
47a5ba:	89 07                	mov    %eax,(%edi)
47a5bc:	8d 4f 10             	lea    0x10(%edi),%ecx
47a5bf:	8b 46 04             	mov    0x4(%esi),%eax
47a5c2:	89 47 04             	mov    %eax,0x4(%edi)
47a5c5:	8b 46 08             	mov    0x8(%esi),%eax
47a5c8:	89 47 08             	mov    %eax,0x8(%edi)
47a5cb:	8b 46 0c             	mov    0xc(%esi),%eax
47a5ce:	89 47 0c             	mov    %eax,0xc(%edi)
47a5d1:	8d 46 10             	lea    0x10(%esi),%eax
47a5d4:	50                   	push   %eax
47a5d5:	e8 c2 f8 f8 ff       	call   0x409e9c
47a5da:	8d 46 20             	lea    0x20(%esi),%eax
47a5dd:	50                   	push   %eax
47a5de:	8d 4f 20             	lea    0x20(%edi),%ecx
47a5e1:	e8 b6 f8 f8 ff       	call   0x409e9c
47a5e6:	8b c7                	mov    %edi,%eax
47a5e8:	5f                   	pop    %edi
47a5e9:	5e                   	pop    %esi
47a5ea:	5d                   	pop    %ebp
47a5eb:	c2 04 00             	ret    $0x4
47a5ee:	55                   	push   %ebp
47a5ef:	8b ec                	mov    %esp,%ebp
47a5f1:	83 ec 24             	sub    $0x24,%esp
47a5f4:	8b 45 08             	mov    0x8(%ebp),%eax
47a5f7:	33 c9                	xor    %ecx,%ecx
47a5f9:	53                   	push   %ebx
47a5fa:	56                   	push   %esi
47a5fb:	57                   	push   %edi
47a5fc:	33 ff                	xor    %edi,%edi
47a5fe:	c7 45 e0 84 fb 48 00 	movl   $0x48fb84,-0x20(%ebp)
47a605:	41                   	inc    %ecx
47a606:	89 7d e4             	mov    %edi,-0x1c(%ebp)
47a609:	89 7d e8             	mov    %edi,-0x18(%ebp)
47a60c:	89 7d ec             	mov    %edi,-0x14(%ebp)
47a60f:	39 48 08             	cmp    %ecx,0x8(%eax)
47a612:	0f 85 cd 00 00 00    	jne    0x47a6e5
47a618:	8b 40 04             	mov    0x4(%eax),%eax
47a61b:	8b 00                	mov    (%eax),%eax
47a61d:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
47a621:	75 02                	jne    0x47a625
47a623:	8b 00                	mov    (%eax),%eax
47a625:	83 78 0c 05          	cmpl   $0x5,0xc(%eax)
47a629:	0f 85 b6 00 00 00    	jne    0x47a6e5
47a62f:	8b 18                	mov    (%eax),%ebx
47a631:	8b 03                	mov    (%ebx),%eax
47a633:	39 88 0c 01 00 00    	cmp    %ecx,0x10c(%eax)
47a639:	0f 85 a6 00 00 00    	jne    0x47a6e5
47a63f:	57                   	push   %edi
47a640:	51                   	push   %ecx
47a641:	51                   	push   %ecx
47a642:	53                   	push   %ebx
47a643:	e8 58 e8 f8 ff       	call   0x408ea0
47a648:	83 c4 10             	add    $0x10,%esp
47a64b:	8b f0                	mov    %eax,%esi
47a64d:	8b ce                	mov    %esi,%ecx
47a64f:	e8 43 f3 f8 ff       	call   0x409997
47a654:	8b 4e 08             	mov    0x8(%esi),%ecx
47a657:	8b 01                	mov    (%ecx),%eax
47a659:	89 45 f0             	mov    %eax,-0x10(%ebp)
47a65c:	8b 41 04             	mov    0x4(%ecx),%eax
47a65f:	89 45 f4             	mov    %eax,-0xc(%ebp)
47a662:	8b 41 08             	mov    0x8(%ecx),%eax
47a665:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a668:	8b 41 0c             	mov    0xc(%ecx),%eax
47a66b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47a66e:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a671:	ff 00                	incl   (%eax)
47a673:	e8 37 d9 f8 ff       	call   0x407faf
47a678:	ff 75 f4             	push   -0xc(%ebp)
47a67b:	ff 75 f0             	push   -0x10(%ebp)
47a67e:	ff 15 7c f6 48 00    	call   *0x48f67c
47a684:	ba 70 ac 4b 00       	mov    $0x4bac70,%edx
47a689:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47a68c:	e8 96 66 fa ff       	call   0x420d27
47a691:	84 c0                	test   %al,%al
47a693:	74 48                	je     0x47a6dd
47a695:	33 f6                	xor    %esi,%esi
47a697:	46                   	inc    %esi
47a698:	6a 01                	push   $0x1
47a69a:	8b cb                	mov    %ebx,%ecx
47a69c:	e8 ca e7 f8 ff       	call   0x408e6b
47a6a1:	3b f0                	cmp    %eax,%esi
47a6a3:	7d 1a                	jge    0x47a6bf
47a6a5:	56                   	push   %esi
47a6a6:	6a 01                	push   $0x1
47a6a8:	6a 02                	push   $0x2
47a6aa:	53                   	push   %ebx
47a6ab:	e8 f0 e7 f8 ff       	call   0x408ea0
47a6b0:	83 c4 10             	add    $0x10,%esp
47a6b3:	8d 4d e0             	lea    -0x20(%ebp),%ecx
47a6b6:	50                   	push   %eax
47a6b7:	e8 a9 bf fd ff       	call   0x456665
47a6bc:	46                   	inc    %esi
47a6bd:	eb d9                	jmp    0x47a698
47a6bf:	8b 55 0c             	mov    0xc(%ebp),%edx
47a6c2:	8b 45 e8             	mov    -0x18(%ebp),%eax
47a6c5:	8b 4d 08             	mov    0x8(%ebp),%ecx
47a6c8:	89 02                	mov    %eax,(%edx)
47a6ca:	8d 45 e0             	lea    -0x20(%ebp),%eax
47a6cd:	50                   	push   %eax
47a6ce:	e8 b1 27 fe ff       	call   0x45ce84
47a6d3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47a6d6:	e8 89 b3 f8 ff       	call   0x405a64
47a6db:	eb 0b                	jmp    0x47a6e8
47a6dd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47a6e0:	e8 7f b3 f8 ff       	call   0x405a64
47a6e5:	83 cf ff             	or     $0xffffffff,%edi
47a6e8:	8d 4d e0             	lea    -0x20(%ebp),%ecx
47a6eb:	e8 04 c0 fd ff       	call   0x4566f4
47a6f0:	8b c7                	mov    %edi,%eax
47a6f2:	5f                   	pop    %edi
47a6f3:	5e                   	pop    %esi
47a6f4:	5b                   	pop    %ebx
47a6f5:	8b e5                	mov    %ebp,%esp
47a6f7:	5d                   	pop    %ebp
47a6f8:	c2 08 00             	ret    $0x8
47a6fb:	55                   	push   %ebp
47a6fc:	8b ec                	mov    %esp,%ebp
47a6fe:	81 ec 20 01 00 00    	sub    $0x120,%esp
47a704:	53                   	push   %ebx
47a705:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a708:	56                   	push   %esi
47a709:	8b 75 0c             	mov    0xc(%ebp),%esi
47a70c:	57                   	push   %edi
47a70d:	8b 43 04             	mov    0x4(%ebx),%eax
47a710:	8b f9                	mov    %ecx,%edi
47a712:	89 7d ec             	mov    %edi,-0x14(%ebp)
47a715:	ff 06                	incl   (%esi)
47a717:	8b 16                	mov    (%esi),%edx
47a719:	8b 0c 90             	mov    (%eax,%edx,4),%ecx
47a71c:	33 c0                	xor    %eax,%eax
47a71e:	89 45 08             	mov    %eax,0x8(%ebp)
47a721:	66 39 41 08          	cmp    %ax,0x8(%ecx)
47a725:	75 16                	jne    0x47a73d
47a727:	83 39 2c             	cmpl   $0x2c,(%ecx)
47a72a:	75 11                	jne    0x47a73d
47a72c:	ff 75 10             	push   0x10(%ebp)
47a72f:	8b cf                	mov    %edi,%ecx
47a731:	56                   	push   %esi
47a732:	53                   	push   %ebx
47a733:	e8 d7 05 00 00       	call   0x47ad0f
47a738:	e9 c3 01 00 00       	jmp    0x47a900
47a73d:	89 45 0c             	mov    %eax,0xc(%ebp)
47a740:	89 45 f0             	mov    %eax,-0x10(%ebp)
47a743:	a1 10 7f 4c 00       	mov    0x4c7f10,%eax
47a748:	a8 01                	test   $0x1,%al
47a74a:	75 22                	jne    0x47a76e
47a74c:	83 c8 01             	or     $0x1,%eax