46e3a3:	33 c0                	xor    %eax,%eax
46e3a5:	89 0f                	mov    %ecx,(%edi)
46e3a7:	5f                   	pop    %edi
46e3a8:	5e                   	pop    %esi
46e3a9:	5b                   	pop    %ebx
46e3aa:	c9                   	leave
46e3ab:	c2 0c 00             	ret    $0xc
46e3ae:	8b ff                	mov    %edi,%edi
46e3b0:	56                   	push   %esi
46e3b1:	8b f1                	mov    %ecx,%esi
46e3b3:	83 3e 00             	cmpl   $0x0,(%esi)
46e3b6:	74 0b                	je     0x46e3c3
46e3b8:	ff 36                	push   (%esi)
46e3ba:	ff 15 08 70 4a 00    	call   *0x4a7008
46e3c0:	83 26 00             	andl   $0x0,(%esi)
46e3c3:	5e                   	pop    %esi
46e3c4:	c3                   	ret
46e3c5:	b8 ff 0f 00 00       	mov    $0xfff,%eax
46e3ca:	66 39 01             	cmp    %ax,(%ecx)
46e3cd:	75 06                	jne    0x46e3d5
46e3cf:	6a 08                	push   $0x8
46e3d1:	58                   	pop    %eax
46e3d2:	66 89 01             	mov    %ax,(%ecx)
46e3d5:	51                   	push   %ecx
46e3d6:	ff 15 20 7c 4a 00    	call   *0x4a7c20
46e3dc:	c3                   	ret
46e3dd:	cc                   	int3
46e3de:	cc                   	int3
46e3df:	cc                   	int3
46e3e0:	b8 c4 5d 40 00       	mov    $0x405dc4,%eax
46e3e5:	c3                   	ret
46e3e6:	cc                   	int3
46e3e7:	cc                   	int3
46e3e8:	cc                   	int3
46e3e9:	cc                   	int3
46e3ea:	cc                   	int3
46e3eb:	cc                   	int3
46e3ec:	cc                   	int3
46e3ed:	cc                   	int3
46e3ee:	cc                   	int3
46e3ef:	cc                   	int3
46e3f0:	8b ff                	mov    %edi,%edi
46e3f2:	55                   	push   %ebp
46e3f3:	8b ec                	mov    %esp,%ebp
46e3f5:	6a ff                	push   $0xffffffff
46e3f7:	68 ec 57 49 00       	push   $0x4957ec
46e3fc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46e402:	50                   	push   %eax
46e403:	56                   	push   %esi
46e404:	57                   	push   %edi
46e405:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
46e40a:	33 c5                	xor    %ebp,%eax
46e40c:	50                   	push   %eax
46e40d:	8d 45 f4             	lea    -0xc(%ebp),%eax
46e410:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46e416:	8b f9                	mov    %ecx,%edi
46e418:	8d 4f 2c             	lea    0x2c(%edi),%ecx
46e41b:	c7 07 6c 5d 40 00    	movl   $0x405d6c,(%edi)
46e421:	e8 4b 25 fb ff       	call   0x420971
46e426:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46e42a:	8b 4f 28             	mov    0x28(%edi),%ecx
46e42d:	85 c9                	test   %ecx,%ecx
46e42f:	74 10                	je     0x46e441
46e431:	8b 01                	mov    (%ecx),%eax
46e433:	51                   	push   %ecx
46e434:	8b 70 08             	mov    0x8(%eax),%esi
46e437:	8b ce                	mov    %esi,%ecx
46e439:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e43f:	ff d6                	call   *%esi
46e441:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
46e448:	8b 4f 24             	mov    0x24(%edi),%ecx
46e44b:	85 c9                	test   %ecx,%ecx
46e44d:	74 10                	je     0x46e45f
46e44f:	8b 01                	mov    (%ecx),%eax
46e451:	51                   	push   %ecx
46e452:	8b 70 08             	mov    0x8(%eax),%esi
46e455:	8b ce                	mov    %esi,%ecx
46e457:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e45d:	ff d6                	call   *%esi
46e45f:	8b cf                	mov    %edi,%ecx
46e461:	ff 15 70 73 4a 00    	call   *0x4a7370
46e467:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
46e46b:	74 08                	je     0x46e475
46e46d:	57                   	push   %edi
46e46e:	ff 15 10 74 4a 00    	call   *0x4a7410
46e474:	59                   	pop    %ecx
46e475:	8b c7                	mov    %edi,%eax
46e477:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46e47a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46e481:	59                   	pop    %ecx
46e482:	5f                   	pop    %edi
46e483:	5e                   	pop    %esi
46e484:	c9                   	leave
46e485:	c2 04 00             	ret    $0x4
46e488:	6a 18                	push   $0x18
46e48a:	b8 17 58 49 00       	mov    $0x495817,%eax
46e48f:	e8 a8 20 02 00       	call   0x49053c
46e494:	8b f1                	mov    %ecx,%esi
46e496:	8b 45 08             	mov    0x8(%ebp),%eax
46e499:	33 db                	xor    %ebx,%ebx
46e49b:	8b 7d 0c             	mov    0xc(%ebp),%edi
46e49e:	89 46 30             	mov    %eax,0x30(%esi)
46e4a1:	8d 46 2c             	lea    0x2c(%esi),%eax
46e4a4:	50                   	push   %eax
46e4a5:	68 cc 33 41 00       	push   $0x4133cc
46e4aa:	6a 01                	push   $0x1
46e4ac:	53                   	push   %ebx
46e4ad:	68 74 f5 40 00       	push   $0x40f574
46e4b2:	89 7e 34             	mov    %edi,0x34(%esi)
46e4b5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
46e4b8:	ff 15 98 7e 4a 00    	call   *0x4a7e98
46e4be:	85 c0                	test   %eax,%eax
46e4c0:	0f 88 aa 00 00 00    	js     0x46e570
46e4c6:	6a 3c                	push   $0x3c
46e4c8:	ff 15 14 74 4a 00    	call   *0x4a7414
46e4ce:	59                   	pop    %ecx
46e4cf:	89 45 e0             	mov    %eax,-0x20(%ebp)
46e4d2:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46e4d6:	85 c0                	test   %eax,%eax
46e4d8:	74 10                	je     0x46e4ea
46e4da:	ff 76 2c             	push   0x2c(%esi)
46e4dd:	8b c8                	mov    %eax,%ecx
46e4df:	57                   	push   %edi
46e4e0:	ff 76 30             	push   0x30(%esi)
46e4e3:	e8 e0 02 00 00       	call   0x46e7c8
46e4e8:	eb 02                	jmp    0x46e4ec
46e4ea:	8b c3                	mov    %ebx,%eax
46e4ec:	88 5d fc             	mov    %bl,-0x4(%ebp)
46e4ef:	85 c0                	test   %eax,%eax
46e4f1:	75 11                	jne    0x46e504
46e4f3:	c7 45 e8 0e 00 07 80 	movl   $0x8007000e,-0x18(%ebp)
46e4fa:	8d 45 e8             	lea    -0x18(%ebp),%eax
46e4fd:	68 54 ec 49 00       	push   $0x49ec54
46e502:	eb 77                	jmp    0x46e57b
46e504:	8d 50 20             	lea    0x20(%eax),%edx
46e507:	8d 4e 24             	lea    0x24(%esi),%ecx
46e50a:	e8 90 b0 fb ff       	call   0x42959f
46e50f:	6a 38                	push   $0x38
46e511:	ff 15 14 74 4a 00    	call   *0x4a7414
46e517:	59                   	pop    %ecx
46e518:	89 45 e0             	mov    %eax,-0x20(%ebp)
46e51b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
46e51f:	85 c0                	test   %eax,%eax
46e521:	74 0d                	je     0x46e530
46e523:	ff 76 2c             	push   0x2c(%esi)
46e526:	8b c8                	mov    %eax,%ecx
46e528:	57                   	push   %edi
46e529:	e8 17 14 00 00       	call   0x46f945
46e52e:	eb 02                	jmp    0x46e532
46e530:	8b c3                	mov    %ebx,%eax
46e532:	88 5d fc             	mov    %bl,-0x4(%ebp)
46e535:	85 c0                	test   %eax,%eax
46e537:	75 11                	jne    0x46e54a
46e539:	c7 45 e4 0e 00 07 80 	movl   $0x8007000e,-0x1c(%ebp)
46e540:	8d 45 e4             	lea    -0x1c(%ebp),%eax
46e543:	68 54 ec 49 00       	push   $0x49ec54
46e548:	eb 31                	jmp    0x46e57b
46e54a:	8d 50 20             	lea    0x20(%eax),%edx
46e54d:	8d 4e 28             	lea    0x28(%esi),%ecx
46e550:	e8 4a b0 fb ff       	call   0x42959f
46e555:	eb 0f                	jmp    0x46e566
46e557:	8b 45 dc             	mov    -0x24(%ebp),%eax
46e55a:	89 45 e0             	mov    %eax,-0x20(%ebp)
46e55d:	b8 63 e5 46 00       	mov    $0x46e563,%eax
46e562:	c3                   	ret
46e563:	8b 5d e0             	mov    -0x20(%ebp),%ebx
46e566:	8b c3                	mov    %ebx,%eax
46e568:	e8 34 1f 02 00       	call   0x4904a1
46e56d:	c2 08 00             	ret    $0x8
46e570:	89 45 ec             	mov    %eax,-0x14(%ebp)
46e573:	8d 45 ec             	lea    -0x14(%ebp),%eax
46e576:	68 54 ec 49 00       	push   $0x49ec54
46e57b:	50                   	push   %eax
46e57c:	e8 1a 1f 02 00       	call   0x49049b
46e581:	cc                   	int3
46e582:	cc                   	int3
46e583:	cc                   	int3
46e584:	cc                   	int3
46e585:	cc                   	int3
46e586:	cc                   	int3
46e587:	cc                   	int3
46e588:	cc                   	int3
46e589:	cc                   	int3
46e58a:	cc                   	int3
46e58b:	cc                   	int3
46e58c:	cc                   	int3
46e58d:	cc                   	int3
46e58e:	cc                   	int3
46e58f:	cc                   	int3
46e590:	8b ff                	mov    %edi,%edi
46e592:	55                   	push   %ebp
46e593:	8b ec                	mov    %esp,%ebp
46e595:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e598:	8d 49 e0             	lea    -0x20(%ecx),%ecx
46e59b:	ff 15 74 73 4a 00    	call   *0x4a7374
46e5a1:	5d                   	pop    %ebp
46e5a2:	c2 04 00             	ret    $0x4
46e5a5:	cc                   	int3
46e5a6:	cc                   	int3
46e5a7:	cc                   	int3
46e5a8:	cc                   	int3
46e5a9:	cc                   	int3
46e5aa:	cc                   	int3
46e5ab:	cc                   	int3
46e5ac:	cc                   	int3
46e5ad:	cc                   	int3
46e5ae:	cc                   	int3
46e5af:	cc                   	int3
46e5b0:	8b ff                	mov    %edi,%edi
46e5b2:	55                   	push   %ebp
46e5b3:	8b ec                	mov    %esp,%ebp
46e5b5:	ff 75 10             	push   0x10(%ebp)
46e5b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e5bb:	ff 75 0c             	push   0xc(%ebp)
46e5be:	8d 49 e0             	lea    -0x20(%ecx),%ecx
46e5c1:	ff 15 78 73 4a 00    	call   *0x4a7378
46e5c7:	5d                   	pop    %ebp
46e5c8:	c2 0c 00             	ret    $0xc
46e5cb:	cc                   	int3
46e5cc:	cc                   	int3
46e5cd:	cc                   	int3
46e5ce:	cc                   	int3
46e5cf:	cc                   	int3
46e5d0:	6a 0c                	push   $0xc
46e5d2:	b8 2b 45 49 00       	mov    $0x49452b,%eax
46e5d7:	e8 f7 1e 02 00       	call   0x4904d3
46e5dc:	8b 45 18             	mov    0x18(%ebp),%eax
46e5df:	bb 01 40 00 80       	mov    $0x80004001,%ebx
46e5e4:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46e5e8:	83 e8 00             	sub    $0x0,%eax
46e5eb:	0f 84 c4 00 00 00    	je     0x46e6b5
46e5f1:	83 e8 01             	sub    $0x1,%eax
46e5f4:	74 6e                	je     0x46e664
46e5f6:	83 e8 01             	sub    $0x1,%eax
46e5f9:	0f 85 23 01 00 00    	jne    0x46e722
46e5ff:	21 45 ec             	and    %eax,-0x14(%ebp)
46e602:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46e605:	8b 45 14             	mov    0x14(%ebp),%eax
46e608:	51                   	push   %ecx
46e609:	68 4c 09 41 00       	push   $0x41094c
46e60e:	50                   	push   %eax
46e60f:	8b 30                	mov    (%eax),%esi
46e611:	8b 0e                	mov    (%esi),%ecx
46e613:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e619:	ff 16                	call   *(%esi)
46e61b:	8b d8                	mov    %eax,%ebx
46e61d:	85 db                	test   %ebx,%ebx
46e61f:	0f 88 fd 00 00 00    	js     0x46e722
46e625:	8b 45 f0             	mov    -0x10(%ebp),%eax
46e628:	8d 55 ec             	lea    -0x14(%ebp),%edx
46e62b:	52                   	push   %edx
46e62c:	50                   	push   %eax
46e62d:	8b 08                	mov    (%eax),%ecx
46e62f:	8b 71 0c             	mov    0xc(%ecx),%esi
46e632:	8b ce                	mov    %esi,%ecx
46e634:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e63a:	ff d6                	call   *%esi
46e63c:	8b d8                	mov    %eax,%ebx
46e63e:	85 db                	test   %ebx,%ebx
46e640:	0f 88 dc 00 00 00    	js     0x46e722
46e646:	8b 45 08             	mov    0x8(%ebp),%eax
46e649:	ff 75 ec             	push   -0x14(%ebp)
46e64c:	8b 78 14             	mov    0x14(%eax),%edi
46e64f:	8b 07                	mov    (%edi),%eax
46e651:	8b 30                	mov    (%eax),%esi
46e653:	8b ce                	mov    %esi,%ecx
46e655:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e65b:	8b cf                	mov    %edi,%ecx
46e65d:	ff d6                	call   *%esi
46e65f:	e9 be 00 00 00       	jmp    0x46e722
46e664:	8b 45 14             	mov    0x14(%ebp),%eax
46e667:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46e66a:	51                   	push   %ecx
46e66b:	68 4c 09 41 00       	push   $0x41094c
46e670:	50                   	push   %eax
46e671:	8b 30                	mov    (%eax),%esi
46e673:	8b 0e                	mov    (%esi),%ecx
46e675:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e67b:	ff 16                	call   *(%esi)
46e67d:	8b d8                	mov    %eax,%ebx
46e67f:	85 db                	test   %ebx,%ebx
46e681:	0f 88 9b 00 00 00    	js     0x46e722
46e687:	8b 45 08             	mov    0x8(%ebp),%eax
46e68a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46e68d:	51                   	push   %ecx
46e68e:	8b 78 10             	mov    0x10(%eax),%edi
46e691:	8b 07                	mov    (%edi),%eax
46e693:	8b 70 08             	mov    0x8(%eax),%esi
46e696:	8b ce                	mov    %esi,%ecx
46e698:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e69e:	8b cf                	mov    %edi,%ecx
46e6a0:	ff d6                	call   *%esi
46e6a2:	8b d8                	mov    %eax,%ebx
46e6a4:	85 db                	test   %ebx,%ebx
46e6a6:	78 7a                	js     0x46e722
46e6a8:	8b 55 e8             	mov    -0x18(%ebp),%edx
46e6ab:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46e6ae:	e8 d4 ec ff ff       	call   0x46d387
46e6b3:	eb 62                	jmp    0x46e717
46e6b5:	8b 45 14             	mov    0x14(%ebp),%eax
46e6b8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46e6bb:	51                   	push   %ecx
46e6bc:	68 4c 09 41 00       	push   $0x41094c
46e6c1:	50                   	push   %eax
46e6c2:	8b 30                	mov    (%eax),%esi
46e6c4:	8b 0e                	mov    (%esi),%ecx
46e6c6:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e6cc:	ff 16                	call   *(%esi)
46e6ce:	8b d8                	mov    %eax,%ebx
46e6d0:	85 db                	test   %ebx,%ebx
46e6d2:	78 4e                	js     0x46e722
46e6d4:	8b 5d 08             	mov    0x8(%ebp),%ebx
46e6d7:	ff 75 f0             	push   -0x10(%ebp)
46e6da:	8b 7b 10             	mov    0x10(%ebx),%edi
46e6dd:	8b 07                	mov    (%edi),%eax
46e6df:	8b 70 04             	mov    0x4(%eax),%esi
46e6e2:	8b ce                	mov    %esi,%ecx
46e6e4:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e6ea:	8b cf                	mov    %edi,%ecx
46e6ec:	ff d6                	call   *%esi
46e6ee:	8b 7b 10             	mov    0x10(%ebx),%edi
46e6f1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46e6f4:	51                   	push   %ecx
46e6f5:	8b 07                	mov    (%edi),%eax
46e6f7:	8b 70 08             	mov    0x8(%eax),%esi
46e6fa:	8b ce                	mov    %esi,%ecx
46e6fc:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e702:	8b cf                	mov    %edi,%ecx
46e704:	ff d6                	call   *%esi
46e706:	8b d8                	mov    %eax,%ebx
46e708:	85 db                	test   %ebx,%ebx
46e70a:	78 16                	js     0x46e722
46e70c:	8b 55 e8             	mov    -0x18(%ebp),%edx
46e70f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46e712:	e8 86 ee ff ff       	call   0x46d59d
46e717:	ff 75 e8             	push   -0x18(%ebp)
46e71a:	8b d8                	mov    %eax,%ebx
46e71c:	ff 15 08 70 4a 00    	call   *0x4a7008
46e722:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46e726:	8b 45 f0             	mov    -0x10(%ebp),%eax
46e729:	85 c0                	test   %eax,%eax
46e72b:	74 10                	je     0x46e73d
46e72d:	8b 08                	mov    (%eax),%ecx
46e72f:	50                   	push   %eax
46e730:	8b 71 08             	mov    0x8(%ecx),%esi
46e733:	8b ce                	mov    %esi,%ecx
46e735:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e73b:	ff d6                	call   *%esi
46e73d:	8b c3                	mov    %ebx,%eax
46e73f:	e8 5d 1d 02 00       	call   0x4904a1