46a457:	c2 10 00             	ret    $0x10
46a45a:	55                   	push   %ebp
46a45b:	8b ec                	mov    %esp,%ebp
46a45d:	b8 00 00 05 00       	mov    $0x50000,%eax
46a462:	e8 29 77 fc ff       	call   0x431b90
46a467:	8d 45 fc             	lea    -0x4(%ebp),%eax
46a46a:	50                   	push   %eax
46a46b:	8d 85 fc ff fd ff    	lea    -0x20004(%ebp),%eax
46a471:	50                   	push   %eax
46a472:	68 ff 7f 00 00       	push   $0x7fff
46a477:	ff 75 08             	push   0x8(%ebp)
46a47a:	ff 15 60 f3 48 00    	call   *0x48f360
46a480:	85 c0                	test   %eax,%eax
46a482:	0f 84 2f 01 00 00    	je     0x46a5b7
46a488:	53                   	push   %ebx
46a489:	8d 85 fc ff fd ff    	lea    -0x20004(%ebp),%eax
46a48f:	50                   	push   %eax
46a490:	8d 85 fc ff fe ff    	lea    -0x10004(%ebp),%eax
46a496:	68 60 a8 4b 00       	push   $0x4ba860
46a49b:	50                   	push   %eax
46a49c:	e8 37 94 fb ff       	call   0x4238d8
46a4a1:	8d 85 fc ff fe ff    	lea    -0x10004(%ebp),%eax
46a4a7:	50                   	push   %eax
46a4a8:	e8 8f 89 fb ff       	call   0x422e3c
46a4ad:	8b d8                	mov    %eax,%ebx
46a4af:	83 c4 10             	add    $0x10,%esp
46a4b2:	66 83 bc 5d fa ff fe 	cmpw   $0x5c,-0x10006(%ebp,%ebx,2)
46a4b9:	ff 5c
46a4bb:	75 15                	jne    0x46a4d2
46a4bd:	66 83 bc 5d f8 ff fe 	cmpw   $0x3a,-0x10008(%ebp,%ebx,2)
46a4c4:	ff 3a
46a4c6:	74 0a                	je     0x46a4d2
46a4c8:	33 c0                	xor    %eax,%eax
46a4ca:	66 89 84 5d fa ff fe 	mov    %ax,-0x10006(%ebp,%ebx,2)
46a4d1:	ff
46a4d2:	57                   	push   %edi
46a4d3:	33 ff                	xor    %edi,%edi
46a4d5:	57                   	push   %edi
46a4d6:	ff 75 0c             	push   0xc(%ebp)
46a4d9:	ff 15 24 f2 48 00    	call   *0x48f224
46a4df:	85 c0                	test   %eax,%eax
46a4e1:	75 09                	jne    0x46a4ec
46a4e3:	38 45 10             	cmp    %al,0x10(%ebp)
46a4e6:	0f 84 bc 00 00 00    	je     0x46a5a8
46a4ec:	57                   	push   %edi
46a4ed:	68 00 00 20 02       	push   $0x2200000
46a4f2:	6a 03                	push   $0x3
46a4f4:	57                   	push   %edi
46a4f5:	57                   	push   %edi
46a4f6:	68 00 00 00 40       	push   $0x40000000
46a4fb:	ff 75 0c             	push   0xc(%ebp)
46a4fe:	ff 15 d4 f1 48 00    	call   *0x48f1d4
46a504:	8b f8                	mov    %eax,%edi
46a506:	83 ff ff             	cmp    $0xffffffff,%edi
46a509:	0f 84 90 00 00 00    	je     0x46a59f
46a50f:	68 fa ff 02 00       	push   $0x2fffa
46a514:	8d 85 00 00 fb ff    	lea    -0x50000(%ebp),%eax
46a51a:	6a 00                	push   $0x0
46a51c:	50                   	push   %eax
46a51d:	e8 fe 8a fb ff       	call   0x423020
46a522:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
46a525:	c7 85 00 00 fb ff 03 	movl   $0xa0000003,-0x50000(%ebp)
46a52c:	00 00 a0
46a52f:	66 89 85 0a 00 fb ff 	mov    %ax,-0x4fff6(%ebp)
46a536:	8b 85 0a 00 fb ff    	mov    -0x4fff6(%ebp),%eax
46a53c:	83 c0 02             	add    $0x2,%eax
46a53f:	66 89 85 0c 00 fb ff 	mov    %ax,-0x4fff4(%ebp)
46a546:	8d 85 fc ff fe ff    	lea    -0x10004(%ebp),%eax
46a54c:	68 ff 7f 00 00       	push   $0x7fff
46a551:	50                   	push   %eax
46a552:	8d 85 10 00 fb ff    	lea    -0x4fff0(%ebp),%eax
46a558:	50                   	push   %eax
46a559:	e8 90 9d fb ff       	call   0x4242ee
46a55e:	8b 85 0a 00 fb ff    	mov    -0x4fff6(%ebp),%eax
46a564:	8d 4d 08             	lea    0x8(%ebp),%ecx
46a567:	83 c4 18             	add    $0x18,%esp
46a56a:	33 d2                	xor    %edx,%edx
46a56c:	83 c0 0c             	add    $0xc,%eax
46a56f:	66 89 85 04 00 fb ff 	mov    %ax,-0x4fffc(%ebp)
46a576:	0f b7 c0             	movzwl %ax,%eax
46a579:	52                   	push   %edx
46a57a:	51                   	push   %ecx
46a57b:	52                   	push   %edx
46a57c:	52                   	push   %edx
46a57d:	83 c0 08             	add    $0x8,%eax
46a580:	50                   	push   %eax
46a581:	8d 85 00 00 fb ff    	lea    -0x50000(%ebp),%eax
46a587:	50                   	push   %eax
46a588:	68 a4 00 09 00       	push   $0x900a4
46a58d:	57                   	push   %edi
46a58e:	ff 15 54 f2 48 00    	call   *0x48f254
46a594:	57                   	push   %edi
46a595:	85 c0                	test   %eax,%eax
46a597:	75 13                	jne    0x46a5ac
46a599:	ff 15 5c f3 48 00    	call   *0x48f35c
46a59f:	ff 75 0c             	push   0xc(%ebp)
46a5a2:	ff 15 28 f2 48 00    	call   *0x48f228
46a5a8:	33 c0                	xor    %eax,%eax
46a5aa:	eb 09                	jmp    0x46a5b5
46a5ac:	ff 15 5c f3 48 00    	call   *0x48f35c
46a5b2:	33 c0                	xor    %eax,%eax
46a5b4:	40                   	inc    %eax
46a5b5:	5f                   	pop    %edi
46a5b6:	5b                   	pop    %ebx
46a5b7:	8b e5                	mov    %ebp,%esp
46a5b9:	5d                   	pop    %ebp
46a5ba:	c2 0c 00             	ret    $0xc
46a5bd:	55                   	push   %ebp
46a5be:	8b ec                	mov    %esp,%ebp
46a5c0:	83 e4 f8             	and    $0xfffffff8,%esp
46a5c3:	83 ec 34             	sub    $0x34,%esp
46a5c6:	53                   	push   %ebx
46a5c7:	56                   	push   %esi
46a5c8:	57                   	push   %edi
46a5c9:	8b 7d 08             	mov    0x8(%ebp),%edi
46a5cc:	8b 47 04             	mov    0x4(%edi),%eax
46a5cf:	8b 30                	mov    (%eax),%esi
46a5d1:	8b ce                	mov    %esi,%ecx
46a5d3:	e8 bf f3 f9 ff       	call   0x409997
46a5d8:	8b 4e 08             	mov    0x8(%esi),%ecx
46a5db:	8b 41 04             	mov    0x4(%ecx),%eax
46a5de:	8b 19                	mov    (%ecx),%ebx
46a5e0:	89 44 24 34          	mov    %eax,0x34(%esp)
46a5e4:	8b 41 08             	mov    0x8(%ecx),%eax
46a5e7:	89 44 24 38          	mov    %eax,0x38(%esp)
46a5eb:	8b 41 0c             	mov    0xc(%ecx),%eax
46a5ee:	89 44 24 3c          	mov    %eax,0x3c(%esp)
46a5f2:	89 5c 24 30          	mov    %ebx,0x30(%esp)
46a5f6:	ff 00                	incl   (%eax)
46a5f8:	8b 47 04             	mov    0x4(%edi),%eax
46a5fb:	8b 70 04             	mov    0x4(%eax),%esi
46a5fe:	8b ce                	mov    %esi,%ecx
46a600:	e8 92 f3 f9 ff       	call   0x409997
46a605:	8b 4e 08             	mov    0x8(%esi),%ecx
46a608:	8b 01                	mov    (%ecx),%eax
46a60a:	89 44 24 10          	mov    %eax,0x10(%esp)
46a60e:	8b 41 04             	mov    0x4(%ecx),%eax
46a611:	89 44 24 14          	mov    %eax,0x14(%esp)
46a615:	8b 41 08             	mov    0x8(%ecx),%eax
46a618:	89 44 24 18          	mov    %eax,0x18(%esp)
46a61c:	8b 41 0c             	mov    0xc(%ecx),%eax
46a61f:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46a623:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46a627:	ff 00                	incl   (%eax)
46a629:	e8 81 d9 f9 ff       	call   0x407faf
46a62e:	ff 74 24 14          	push   0x14(%esp)
46a632:	ff 74 24 14          	push   0x14(%esp)
46a636:	ff 15 fc f6 48 00    	call   *0x48f6fc
46a63c:	ba 28 a6 4b 00       	mov    $0x4ba628,%edx
46a641:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46a645:	e8 dd 66 fb ff       	call   0x420d27
46a64a:	be 34 a6 4b 00       	mov    $0x4ba634,%esi
46a64f:	84 c0                	test   %al,%al
46a651:	74 0a                	je     0x46a65d
46a653:	56                   	push   %esi
46a654:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46a658:	e8 cf d6 f9 ff       	call   0x407d2c
46a65d:	ba 44 a6 4b 00       	mov    $0x4ba644,%edx
46a662:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46a666:	e8 bc 66 fb ff       	call   0x420d27
46a66b:	84 c0                	test   %al,%al
46a66d:	75 13                	jne    0x46a682
46a66f:	8b d6                	mov    %esi,%edx
46a671:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46a675:	e8 ad 66 fb ff       	call   0x420d27
46a67a:	84 c0                	test   %al,%al
46a67c:	0f 84 d0 00 00 00    	je     0x46a752
46a682:	53                   	push   %ebx
46a683:	ff 15 b8 f2 48 00    	call   *0x48f2b8
46a689:	83 f8 05             	cmp    $0x5,%eax
46a68c:	0f 85 c0 00 00 00    	jne    0x46a752
46a692:	68 54 a3 4b 00       	push   $0x4ba354
46a697:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a69b:	e8 a1 d8 f9 ff       	call   0x407f41
46a6a0:	8d 44 24 30          	lea    0x30(%esp),%eax
46a6a4:	50                   	push   %eax
46a6a5:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6a9:	e8 e0 d5 f9 ff       	call   0x407c8e
46a6ae:	68 50 a6 4b 00       	push   $0x4ba650
46a6b3:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6b7:	e8 4f d7 f9 ff       	call   0x407e0b
46a6bc:	8b 3d c0 f7 48 00    	mov    0x48f7c0,%edi
46a6c2:	33 db                	xor    %ebx,%ebx
46a6c4:	53                   	push   %ebx
46a6c5:	53                   	push   %ebx
46a6c6:	53                   	push   %ebx
46a6c7:	ff 74 24 2c          	push   0x2c(%esp)
46a6cb:	ff d7                	call   *%edi
46a6cd:	85 c0                	test   %eax,%eax
46a6cf:	75 63                	jne    0x46a734
46a6d1:	68 88 a6 4b 00       	push   $0x4ba688
46a6d6:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6da:	e8 4d d6 f9 ff       	call   0x407d2c
46a6df:	8d 44 24 10          	lea    0x10(%esp),%eax
46a6e3:	50                   	push   %eax
46a6e4:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6e8:	e8 a1 d5 f9 ff       	call   0x407c8e
46a6ed:	68 a4 a6 4b 00       	push   $0x4ba6a4
46a6f2:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6f6:	e8 10 d7 f9 ff       	call   0x407e0b
46a6fb:	53                   	push   %ebx
46a6fc:	53                   	push   %ebx
46a6fd:	53                   	push   %ebx
46a6fe:	ff 74 24 2c          	push   0x2c(%esp)
46a702:	ff d7                	call   *%edi
46a704:	85 c0                	test   %eax,%eax
46a706:	74 13                	je     0x46a71b
46a708:	8b 75 0c             	mov    0xc(%ebp),%esi
46a70b:	8b ce                	mov    %esi,%ecx
46a70d:	e8 0e f3 f9 ff       	call   0x409a20
46a712:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a719:	89 1e                	mov    %ebx,(%esi)
46a71b:	68 b0 a6 4b 00       	push   $0x4ba6b0
46a720:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a724:	e8 03 d6 f9 ff       	call   0x407d2c
46a729:	53                   	push   %ebx
46a72a:	53                   	push   %ebx
46a72b:	53                   	push   %ebx
46a72c:	ff 74 24 2c          	push   0x2c(%esp)
46a730:	ff d7                	call   *%edi
46a732:	eb 13                	jmp    0x46a747
46a734:	8b 75 0c             	mov    0xc(%ebp),%esi
46a737:	8b ce                	mov    %esi,%ecx
46a739:	e8 e2 f2 f9 ff       	call   0x409a20
46a73e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a745:	89 1e                	mov    %ebx,(%esi)
46a747:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46a74b:	e8 14 b3 f9 ff       	call   0x405a64
46a750:	eb 14                	jmp    0x46a766
46a752:	8b 75 0c             	mov    0xc(%ebp),%esi
46a755:	8b ce                	mov    %esi,%ecx
46a757:	e8 c4 f2 f9 ff       	call   0x409a20
46a75c:	83 26 00             	andl   $0x0,(%esi)
46a75f:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a766:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46a76a:	e8 f5 b2 f9 ff       	call   0x405a64
46a76f:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46a773:	e8 ec b2 f9 ff       	call   0x405a64
46a778:	5f                   	pop    %edi
46a779:	5e                   	pop    %esi
46a77a:	33 c0                	xor    %eax,%eax
46a77c:	5b                   	pop    %ebx
46a77d:	8b e5                	mov    %ebp,%esp
46a77f:	5d                   	pop    %ebp
46a780:	c2 08 00             	ret    $0x8
46a783:	55                   	push   %ebp
46a784:	8b ec                	mov    %esp,%ebp
46a786:	51                   	push   %ecx
46a787:	53                   	push   %ebx
46a788:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a78b:	56                   	push   %esi
46a78c:	57                   	push   %edi
46a78d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
46a791:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46a795:	72 13                	jb     0x46a7aa
46a797:	8b 43 04             	mov    0x4(%ebx),%eax
46a79a:	8b 48 08             	mov    0x8(%eax),%ecx
46a79d:	e8 fa f4 f9 ff       	call   0x409c9c
46a7a2:	85 c0                	test   %eax,%eax
46a7a4:	74 04                	je     0x46a7aa
46a7a6:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46a7aa:	8b 43 04             	mov    0x4(%ebx),%eax
46a7ad:	8b 70 04             	mov    0x4(%eax),%esi
46a7b0:	8b ce                	mov    %esi,%ecx
46a7b2:	e8 e0 f1 f9 ff       	call   0x409997
46a7b7:	8b 46 08             	mov    0x8(%esi),%eax
46a7ba:	8b 38                	mov    (%eax),%edi
46a7bc:	8b 43 04             	mov    0x4(%ebx),%eax
46a7bf:	8b 30                	mov    (%eax),%esi
46a7c1:	8b ce                	mov    %esi,%ecx
46a7c3:	e8 cf f1 f9 ff       	call   0x409997
46a7c8:	8b 46 08             	mov    0x8(%esi),%eax
46a7cb:	8b d7                	mov    %edi,%edx
46a7cd:	ff 75 fc             	push   -0x4(%ebp)
46a7d0:	8b 08                	mov    (%eax),%ecx
46a7d2:	e8 d6 90 ff ff       	call   0x4638ad
46a7d7:	59                   	pop    %ecx
46a7d8:	84 c0                	test   %al,%al
46a7da:	75 14                	jne    0x46a7f0
46a7dc:	8b 75 0c             	mov    0xc(%ebp),%esi
46a7df:	8b ce                	mov    %esi,%ecx
46a7e1:	e8 3a f2 f9 ff       	call   0x409a20
46a7e6:	83 26 00             	andl   $0x0,(%esi)
46a7e9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a7f0:	5f                   	pop    %edi
46a7f1:	5e                   	pop    %esi
46a7f2:	33 c0                	xor    %eax,%eax
46a7f4:	5b                   	pop    %ebx
46a7f5:	8b e5                	mov    %ebp,%esp
46a7f7:	5d                   	pop    %ebp
46a7f8:	c2 08 00             	ret    $0x8
46a7fb:	55                   	push   %ebp
46a7fc:	8b ec                	mov    %esp,%ebp
46a7fe:	8b 45 08             	mov    0x8(%ebp),%eax
46a801:	56                   	push   %esi
46a802:	8b 40 04             	mov    0x4(%eax),%eax
46a805:	8b 30                	mov    (%eax),%esi
46a807:	8b ce                	mov    %esi,%ecx
46a809:	e8 89 f1 f9 ff       	call   0x409997
46a80e:	8b 4e 08             	mov    0x8(%esi),%ecx
46a811:	e8 50 94 ff ff       	call   0x463c66
46a816:	84 c0                	test   %al,%al
46a818:	75 14                	jne    0x46a82e
46a81a:	8b 75 0c             	mov    0xc(%ebp),%esi
46a81d:	8b ce                	mov    %esi,%ecx
46a81f:	e8 fc f1 f9 ff       	call   0x409a20
46a824:	83 26 00             	andl   $0x0,(%esi)
46a827:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a82e:	33 c0                	xor    %eax,%eax
46a830:	5e                   	pop    %esi
46a831:	5d                   	pop    %ebp
46a832:	c2 08 00             	ret    $0x8
46a835:	55                   	push   %ebp
46a836:	8b ec                	mov    %esp,%ebp
46a838:	83 e4 f8             	and    $0xfffffff8,%esp
46a83b:	83 ec 4c             	sub    $0x4c,%esp
46a83e:	53                   	push   %ebx
46a83f:	56                   	push   %esi
46a840:	57                   	push   %edi
46a841:	8b 7d 08             	mov    0x8(%ebp),%edi
46a844:	89 4c 24 18          	mov    %ecx,0x18(%esp)
46a848:	8b 47 08             	mov    0x8(%edi),%eax
46a84b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46a84f:	8b 47 04             	mov    0x4(%edi),%eax
46a852:	8b 30                	mov    (%eax),%esi
46a854:	8b ce                	mov    %esi,%ecx
46a856:	e8 3c f1 f9 ff       	call   0x409997
46a85b:	8b 46 08             	mov    0x8(%esi),%eax
46a85e:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46a862:	ff 30                	push   (%eax)
46a864:	e8 d8 d6 f9 ff       	call   0x407f41
46a869:	33 db                	xor    %ebx,%ebx
46a86b:	c6 44 24 14 01       	movb   $0x1,0x14(%esp)
46a870:	6a 01                	push   $0x1
46a872:	88 5c 24 14          	mov    %bl,0x14(%esp)
46a876:	89 5c 24 24          	mov    %ebx,0x24(%esp)
46a87a:	89 5c 24 28          	mov    %ebx,0x28(%esp)
46a87e:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
46a882:	89 5c 24 30          	mov    %ebx,0x30(%esp)
46a886:	89 5c 24 34          	mov    %ebx,0x34(%esp)
46a88a:	89 5c 24 38          	mov    %ebx,0x38(%esp)
46a88e:	ff 15 a4 f1 48 00    	call   *0x48f1a4
46a894:	8b f0                	mov    %eax,%esi
46a896:	39 5c 24 4c          	cmp    %ebx,0x4c(%esp)
46a89a:	0f 84 63 01 00 00    	je     0x46aa03
46a8a0:	8b 4c 24 48          	mov    0x48(%esp),%ecx
46a8a4:	e8 2a a4 ff ff       	call   0x464cd3
46a8a9:	84 c0                	test   %al,%al
46a8ab:	0f 84 52 01 00 00    	je     0x46aa03
46a8b1:	8d 4c 24 48          	lea    0x48(%esp),%ecx