47f4d9:	84 c0                	test   %al,%al
47f4db:	75 0f                	jne    0x47f4ec
47f4dd:	8b 75 0c             	mov    0xc(%ebp),%esi
47f4e0:	8b ce                	mov    %esi,%ecx
47f4e2:	e8 39 a5 f8 ff       	call   0x409a20
47f4e7:	33 c0                	xor    %eax,%eax
47f4e9:	40                   	inc    %eax
47f4ea:	eb bd                	jmp    0x47f4a9
47f4ec:	38 5d 0b             	cmp    %bl,0xb(%ebp)
47f4ef:	74 59                	je     0x47f54a
47f4f1:	ff 75 fc             	push   -0x4(%ebp)
47f4f4:	53                   	push   %ebx
47f4f5:	68 00 04 10 00       	push   $0x100400
47f4fa:	ff 15 c4 f1 48 00    	call   *0x48f1c4
47f500:	89 87 48 04 00 00    	mov    %eax,0x448(%edi)
47f506:	8d 45 08             	lea    0x8(%ebp),%eax
47f509:	51                   	push   %ecx
47f50a:	50                   	push   %eax
47f50b:	8b 07                	mov    (%edi),%eax
47f50d:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
47f514:	8b 48 04             	mov    0x4(%eax),%ecx
47f517:	03 cf                	add    %edi,%ecx
47f519:	e8 f5 09 fa ff       	call   0x41ff13
47f51e:	53                   	push   %ebx
47f51f:	8b cf                	mov    %edi,%ecx
47f521:	c7 87 f8 00 00 00 09 	movl   $0x9,0xf8(%edi)
47f528:	00 00 00
47f52b:	e8 00 16 f9 ff       	call   0x410b30
47f530:	8b 07                	mov    (%edi),%eax
47f532:	8d 4f 04             	lea    0x4(%edi),%ecx
47f535:	8b 40 04             	mov    0x4(%eax),%eax
47f538:	03 c8                	add    %eax,%ecx
47f53a:	e8 5b 0a fa ff       	call   0x41ff9a
47f53f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47f542:	50                   	push   %eax
47f543:	e8 54 a9 f8 ff       	call   0x409e9c
47f548:	eb 12                	jmp    0x47f55c
47f54a:	8b 07                	mov    (%edi),%eax
47f54c:	53                   	push   %ebx
47f54d:	68 cc cc cc cc       	push   $0xcccccccc
47f552:	8b 48 04             	mov    0x4(%eax),%ecx
47f555:	03 cf                	add    %edi,%ecx
47f557:	e8 05 0a fa ff       	call   0x41ff61
47f55c:	5f                   	pop    %edi
47f55d:	5e                   	pop    %esi
47f55e:	33 c0                	xor    %eax,%eax
47f560:	5b                   	pop    %ebx
47f561:	8b e5                	mov    %ebp,%esp
47f563:	5d                   	pop    %ebp
47f564:	c2 08 00             	ret    $0x8
47f567:	55                   	push   %ebp
47f568:	8b ec                	mov    %esp,%ebp
47f56a:	ff 75 0c             	push   0xc(%ebp)
47f56d:	ff 75 08             	push   0x8(%ebp)
47f570:	6a 00                	push   $0x0
47f572:	6a 00                	push   $0x0
47f574:	e8 2f 04 00 00       	call   0x47f9a8
47f579:	5d                   	pop    %ebp
47f57a:	c2 08 00             	ret    $0x8
47f57d:	55                   	push   %ebp
47f57e:	8b ec                	mov    %esp,%ebp
47f580:	ff 75 0c             	push   0xc(%ebp)
47f583:	ff 75 08             	push   0x8(%ebp)
47f586:	6a 01                	push   $0x1
47f588:	6a 00                	push   $0x0
47f58a:	e8 19 04 00 00       	call   0x47f9a8
47f58f:	5d                   	pop    %ebp
47f590:	c2 08 00             	ret    $0x8
47f593:	55                   	push   %ebp
47f594:	8b ec                	mov    %esp,%ebp
47f596:	56                   	push   %esi
47f597:	ff 75 0c             	push   0xc(%ebp)
47f59a:	8b f1                	mov    %ecx,%esi
47f59c:	ff 75 08             	push   0x8(%ebp)
47f59f:	6a 01                	push   $0x1
47f5a1:	6a 01                	push   $0x1
47f5a3:	e8 00 04 00 00       	call   0x47f9a8
47f5a8:	8b 06                	mov    (%esi),%eax
47f5aa:	8d 4e 04             	lea    0x4(%esi),%ecx
47f5ad:	8b 40 04             	mov    0x4(%eax),%eax
47f5b0:	03 c8                	add    %eax,%ecx
47f5b2:	e8 e3 09 fa ff       	call   0x41ff9a
47f5b7:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
47f5bb:	75 2b                	jne    0x47f5e8
47f5bd:	6a 00                	push   $0x0
47f5bf:	8b ce                	mov    %esi,%ecx
47f5c1:	c7 86 f8 00 00 00 07 	movl   $0x7,0xf8(%esi)
47f5c8:	00 00 00
47f5cb:	e8 60 15 f9 ff       	call   0x410b30
47f5d0:	8b 06                	mov    (%esi),%eax
47f5d2:	8d 4e 04             	lea    0x4(%esi),%ecx
47f5d5:	8b 40 04             	mov    0x4(%eax),%eax
47f5d8:	03 c8                	add    %eax,%ecx
47f5da:	e8 bb 09 fa ff       	call   0x41ff9a
47f5df:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47f5e2:	50                   	push   %eax
47f5e3:	e8 b4 a8 f8 ff       	call   0x409e9c
47f5e8:	33 c0                	xor    %eax,%eax
47f5ea:	5e                   	pop    %esi
47f5eb:	5d                   	pop    %ebp
47f5ec:	c2 08 00             	ret    $0x8
47f5ef:	55                   	push   %ebp
47f5f0:	8b ec                	mov    %esp,%ebp
47f5f2:	56                   	push   %esi
47f5f3:	ff 75 0c             	push   0xc(%ebp)
47f5f6:	8b f1                	mov    %ecx,%esi
47f5f8:	ff 75 08             	push   0x8(%ebp)
47f5fb:	6a 00                	push   $0x0
47f5fd:	6a 01                	push   $0x1
47f5ff:	e8 a4 03 00 00       	call   0x47f9a8
47f604:	8b 06                	mov    (%esi),%eax
47f606:	8d 4e 04             	lea    0x4(%esi),%ecx
47f609:	8b 40 04             	mov    0x4(%eax),%eax
47f60c:	03 c8                	add    %eax,%ecx
47f60e:	e8 87 09 fa ff       	call   0x41ff9a
47f613:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
47f617:	75 2b                	jne    0x47f644
47f619:	6a 00                	push   $0x0
47f61b:	8b ce                	mov    %esi,%ecx
47f61d:	c7 86 f8 00 00 00 07 	movl   $0x7,0xf8(%esi)
47f624:	00 00 00
47f627:	e8 04 15 f9 ff       	call   0x410b30
47f62c:	8b 06                	mov    (%esi),%eax
47f62e:	8d 4e 04             	lea    0x4(%esi),%ecx
47f631:	8b 40 04             	mov    0x4(%eax),%eax
47f634:	03 c8                	add    %eax,%ecx
47f636:	e8 5f 09 fa ff       	call   0x41ff9a
47f63b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47f63e:	50                   	push   %eax
47f63f:	e8 58 a8 f8 ff       	call   0x409e9c
47f644:	33 c0                	xor    %eax,%eax
47f646:	5e                   	pop    %esi
47f647:	5d                   	pop    %ebp
47f648:	c2 08 00             	ret    $0x8
47f64b:	55                   	push   %ebp
47f64c:	8b ec                	mov    %esp,%ebp
47f64e:	8b 45 08             	mov    0x8(%ebp),%eax
47f651:	ff 75 0c             	push   0xc(%ebp)
47f654:	ff 70 08             	push   0x8(%eax)
47f657:	50                   	push   %eax
47f658:	6a 00                	push   $0x0
47f65a:	e8 d3 00 00 00       	call   0x47f732
47f65f:	5d                   	pop    %ebp
47f660:	c2 08 00             	ret    $0x8
47f663:	55                   	push   %ebp
47f664:	8b ec                	mov    %esp,%ebp
47f666:	8b 45 08             	mov    0x8(%ebp),%eax
47f669:	56                   	push   %esi
47f66a:	ff 75 0c             	push   0xc(%ebp)
47f66d:	8b f1                	mov    %ecx,%esi
47f66f:	ff 70 08             	push   0x8(%eax)
47f672:	50                   	push   %eax
47f673:	6a 01                	push   $0x1
47f675:	e8 b8 00 00 00       	call   0x47f732
47f67a:	8b 06                	mov    (%esi),%eax
47f67c:	8d 4e 04             	lea    0x4(%esi),%ecx
47f67f:	8b 40 04             	mov    0x4(%eax),%eax
47f682:	03 c8                	add    %eax,%ecx
47f684:	e8 11 09 fa ff       	call   0x41ff9a
47f689:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
47f68d:	75 2b                	jne    0x47f6ba
47f68f:	6a 00                	push   $0x0
47f691:	8b ce                	mov    %esi,%ecx
47f693:	c7 86 f8 00 00 00 07 	movl   $0x7,0xf8(%esi)
47f69a:	00 00 00
47f69d:	e8 8e 14 f9 ff       	call   0x410b30
47f6a2:	8b 06                	mov    (%esi),%eax
47f6a4:	8d 4e 04             	lea    0x4(%esi),%ecx
47f6a7:	8b 40 04             	mov    0x4(%eax),%eax
47f6aa:	03 c8                	add    %eax,%ecx
47f6ac:	e8 e9 08 fa ff       	call   0x41ff9a
47f6b1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47f6b4:	50                   	push   %eax
47f6b5:	e8 e2 a7 f8 ff       	call   0x409e9c
47f6ba:	33 c0                	xor    %eax,%eax
47f6bc:	5e                   	pop    %esi
47f6bd:	5d                   	pop    %ebp
47f6be:	c2 08 00             	ret    $0x8
47f6c1:	55                   	push   %ebp
47f6c2:	8b ec                	mov    %esp,%ebp
47f6c4:	53                   	push   %ebx
47f6c5:	56                   	push   %esi
47f6c6:	57                   	push   %edi
47f6c7:	8b 7d 08             	mov    0x8(%ebp),%edi
47f6ca:	8b d9                	mov    %ecx,%ebx
47f6cc:	be 00 00 00 80       	mov    $0x80000000,%esi
47f6d1:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
47f6d5:	76 13                	jbe    0x47f6ea
47f6d7:	8b 47 04             	mov    0x4(%edi),%eax
47f6da:	8b 48 04             	mov    0x4(%eax),%ecx
47f6dd:	e8 ba a5 f8 ff       	call   0x409c9c
47f6e2:	8b f0                	mov    %eax,%esi
47f6e4:	81 ce 00 00 00 40    	or     $0x40000000,%esi
47f6ea:	8b 47 04             	mov    0x4(%edi),%eax
47f6ed:	8b 08                	mov    (%eax),%ecx
47f6ef:	e8 a8 a5 f8 ff       	call   0x409c9c
47f6f4:	8b d6                	mov    %esi,%edx
47f6f6:	8b c8                	mov    %eax,%ecx
47f6f8:	e8 62 5d fe ff       	call   0x46545f
47f6fd:	85 c0                	test   %eax,%eax
47f6ff:	75 28                	jne    0x47f729
47f701:	50                   	push   %eax
47f702:	ff 15 40 f3 48 00    	call   *0x48f340
47f708:	50                   	push   %eax
47f709:	8b 03                	mov    (%ebx),%eax
47f70b:	8b 48 04             	mov    0x4(%eax),%ecx
47f70e:	03 cb                	add    %ebx,%ecx
47f710:	e8 8e 73 fd ff       	call   0x456aa3
47f715:	8b 75 0c             	mov    0xc(%ebp),%esi
47f718:	8b ce                	mov    %esi,%ecx
47f71a:	e8 01 a3 f8 ff       	call   0x409a20
47f71f:	83 26 00             	andl   $0x0,(%esi)
47f722:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47f729:	5f                   	pop    %edi
47f72a:	5e                   	pop    %esi
47f72b:	33 c0                	xor    %eax,%eax
47f72d:	5b                   	pop    %ebx
47f72e:	5d                   	pop    %ebp
47f72f:	c2 08 00             	ret    $0x8
47f732:	55                   	push   %ebp
47f733:	8b ec                	mov    %esp,%ebp
47f735:	83 ec 60             	sub    $0x60,%esp
47f738:	53                   	push   %ebx
47f739:	56                   	push   %esi
47f73a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
47f73d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47f740:	57                   	push   %edi
47f741:	e8 81 80 f8 ff       	call   0x4077c7
47f746:	33 c9                	xor    %ecx,%ecx
47f748:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
47f74f:	6a 3c                	push   $0x3c
47f751:	51                   	push   %ecx
47f752:	8d 45 a0             	lea    -0x60(%ebp),%eax
47f755:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47f758:	50                   	push   %eax
47f759:	89 4d f8             	mov    %ecx,-0x8(%ebp)
47f75c:	e8 bf 38 fa ff       	call   0x423020
47f761:	8b 5d 10             	mov    0x10(%ebp),%ebx
47f764:	83 c4 0c             	add    $0xc,%esp
47f767:	8b 7d 0c             	mov    0xc(%ebp),%edi
47f76a:	83 fb 02             	cmp    $0x2,%ebx
47f76d:	72 33                	jb     0x47f7a2
47f76f:	8b 47 04             	mov    0x4(%edi),%eax
47f772:	8b 70 04             	mov    0x4(%eax),%esi
47f775:	8b ce                	mov    %esi,%ecx
47f777:	e8 1b a2 f8 ff       	call   0x409997
47f77c:	8b 46 08             	mov    0x8(%esi),%eax
47f77f:	33 c9                	xor    %ecx,%ecx
47f781:	8b 00                	mov    (%eax),%eax
47f783:	66 39 08             	cmp    %cx,(%eax)
47f786:	74 1a                	je     0x47f7a2
47f788:	8b 47 04             	mov    0x4(%edi),%eax
47f78b:	8b 70 04             	mov    0x4(%eax),%esi
47f78e:	8b ce                	mov    %esi,%ecx
47f790:	e8 02 a2 f8 ff       	call   0x409997
47f795:	8b 46 08             	mov    0x8(%esi),%eax
47f798:	8b 08                	mov    (%eax),%ecx
47f79a:	e8 27 07 fa ff       	call   0x41fec6
47f79f:	89 45 fc             	mov    %eax,-0x4(%ebp)
47f7a2:	83 fb 03             	cmp    $0x3,%ebx
47f7a5:	72 1a                	jb     0x47f7c1
47f7a7:	8b 4f 04             	mov    0x4(%edi),%ecx
47f7aa:	8b 71 08             	mov    0x8(%ecx),%esi
47f7ad:	8b ce                	mov    %esi,%ecx
47f7af:	e8 e3 a1 f8 ff       	call   0x409997
47f7b4:	8b 46 08             	mov    0x8(%esi),%eax
47f7b7:	8b 08                	mov    (%eax),%ecx
47f7b9:	e8 08 07 fa ff       	call   0x41fec6
47f7be:	89 45 f8             	mov    %eax,-0x8(%ebp)
47f7c1:	83 fb 04             	cmp    $0x4,%ebx
47f7c4:	72 3e                	jb     0x47f804
47f7c6:	8b 4f 04             	mov    0x4(%edi),%ecx
47f7c9:	8b 71 0c             	mov    0xc(%ecx),%esi
47f7cc:	8b ce                	mov    %esi,%ecx
47f7ce:	e8 c4 a1 f8 ff       	call   0x409997
47f7d3:	8b 46 08             	mov    0x8(%esi),%eax
47f7d6:	33 f6                	xor    %esi,%esi
47f7d8:	8b 00                	mov    (%eax),%eax
47f7da:	66 39 30             	cmp    %si,(%eax)
47f7dd:	74 27                	je     0x47f806
47f7df:	8b 47 04             	mov    0x4(%edi),%eax
47f7e2:	6a 29                	push   $0x29
47f7e4:	8b 70 0c             	mov    0xc(%eax),%esi
47f7e7:	8b ce                	mov    %esi,%ecx
47f7e9:	e8 c0 a5 f8 ff       	call   0x409dae
47f7ee:	84 c0                	test   %al,%al
47f7f0:	75 12                	jne    0x47f804
47f7f2:	8b ce                	mov    %esi,%ecx
47f7f4:	e8 9e a1 f8 ff       	call   0x409997
47f7f9:	ff 76 08             	push   0x8(%esi)
47f7fc:	8d 4d dc             	lea    -0x24(%ebp),%ecx
47f7ff:	e8 a3 89 f8 ff       	call   0x4081a7
47f804:	33 f6                	xor    %esi,%esi
47f806:	83 fb 05             	cmp    $0x5,%ebx
47f809:	72 11                	jb     0x47f81c
47f80b:	8b 47 04             	mov    0x4(%edi),%eax
47f80e:	8b 48 10             	mov    0x10(%eax),%ecx
47f811:	e8 86 a4 f8 ff       	call   0x409c9c
47f816:	0f b7 c0             	movzwl %ax,%eax
47f819:	89 45 f4             	mov    %eax,-0xc(%ebp)
47f81c:	6a 3c                	push   $0x3c
47f81e:	5b                   	pop    %ebx
47f81f:	53                   	push   %ebx
47f820:	8d 45 a0             	lea    -0x60(%ebp),%eax
47f823:	56                   	push   %esi
47f824:	50                   	push   %eax
47f825:	e8 f6 37 fa ff       	call   0x423020
47f82a:	8b 45 dc             	mov    -0x24(%ebp),%eax
47f82d:	83 c4 0c             	add    $0xc,%esp
47f830:	89 45 ac             	mov    %eax,-0x54(%ebp)
47f833:	8b 47 04             	mov    0x4(%edi),%eax
47f836:	89 5d a0             	mov    %ebx,-0x60(%ebp)
47f839:	c7 45 a4 40 00 00 00 	movl   $0x40,-0x5c(%ebp)
47f840:	89 75 a8             	mov    %esi,-0x58(%ebp)
47f843:	8b 30                	mov    (%eax),%esi
47f845:	8b ce                	mov    %esi,%ecx
47f847:	e8 4b a1 f8 ff       	call   0x409997
47f84c:	8b 46 08             	mov    0x8(%esi),%eax
47f84f:	8b 75 fc             	mov    -0x4(%ebp),%esi
47f852:	8b 5d f8             	mov    -0x8(%ebp),%ebx
47f855:	8b 00                	mov    (%eax),%eax
47f857:	89 45 b0             	mov    %eax,-0x50(%ebp)
47f85a:	8b 45 f4             	mov    -0xc(%ebp),%eax
47f85d:	89 45 bc             	mov    %eax,-0x44(%ebp)
47f860:	8d 45 a0             	lea    -0x60(%ebp),%eax
47f863:	50                   	push   %eax
47f864:	89 75 b4             	mov    %esi,-0x4c(%ebp)
47f867:	89 5d b8             	mov    %ebx,-0x48(%ebp)
47f86a:	ff 15 90 f4 48 00    	call   *0x48f490
47f870:	8b f8                	mov    %eax,%edi
47f872:	85 f6                	test   %esi,%esi
47f874:	74 07                	je     0x47f87d
47f876:	56                   	push   %esi
47f877:	e8 f0 17 fa ff       	call   0x42106c
47f87c:	59                   	pop    %ecx
47f87d:	85 db                	test   %ebx,%ebx
47f87f:	74 07                	je     0x47f888
47f881:	53                   	push   %ebx
47f882:	e8 e5 17 fa ff       	call   0x42106c
47f887:	59                   	pop    %ecx
47f888:	85 ff                	test   %edi,%edi
47f88a:	75 25                	jne    0x47f8b1
47f88c:	8b 55 f0             	mov    -0x10(%ebp),%edx
47f88f:	33 db                	xor    %ebx,%ebx
47f891:	53                   	push   %ebx
47f892:	47                   	inc    %edi
47f893:	57                   	push   %edi
47f894:	8b 02                	mov    (%edx),%eax
47f896:	8b 48 04             	mov    0x4(%eax),%ecx
47f899:	03 ca                	add    %edx,%ecx