46d2e6:	55                   	push   %ebp
46d2e7:	8b ec                	mov    %esp,%ebp
46d2e9:	83 e4 f8             	and    $0xfffffff8,%esp
46d2ec:	83 ec 4c             	sub    $0x4c,%esp
46d2ef:	53                   	push   %ebx
46d2f0:	56                   	push   %esi
46d2f1:	8b 75 08             	mov    0x8(%ebp),%esi
46d2f4:	33 db                	xor    %ebx,%ebx
46d2f6:	57                   	push   %edi
46d2f7:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46d2fb:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46d2ff:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
46d303:	72 11                	jb     0x46d316
46d305:	8b 46 04             	mov    0x4(%esi),%eax
46d308:	8b 48 04             	mov    0x4(%eax),%ecx
46d30b:	e8 8c c9 f9 ff       	call   0x409c9c
46d310:	8b d8                	mov    %eax,%ebx
46d312:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46d316:	8b 7d 0c             	mov    0xc(%ebp),%edi
46d319:	f6 c3 08             	test   $0x8,%bl
46d31c:	0f 84 0a 01 00 00    	je     0x46d42c
46d322:	f6 c3 03             	test   $0x3,%bl
46d325:	0f 84 01 01 00 00    	je     0x46d42c
46d32b:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d32f:	e8 93 a4 f9 ff       	call   0x4077c7
46d334:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d338:	e8 8a a4 f9 ff       	call   0x4077c7
46d33d:	8b 46 04             	mov    0x4(%esi),%eax
46d340:	8b 30                	mov    (%eax),%esi
46d342:	8b ce                	mov    %esi,%ecx
46d344:	e8 4e c6 f9 ff       	call   0x409997
46d349:	8b 4e 08             	mov    0x8(%esi),%ecx
46d34c:	8d 44 24 38          	lea    0x38(%esp),%eax
46d350:	6a 00                	push   $0x0
46d352:	6a 00                	push   $0x0
46d354:	50                   	push   %eax
46d355:	8d 54 24 34          	lea    0x34(%esp),%edx
46d359:	e8 9b 73 f9 ff       	call   0x4046f9
46d35e:	8b 44 24 34          	mov    0x34(%esp),%eax
46d362:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46d366:	89 44 24 24          	mov    %eax,0x24(%esp)
46d36a:	83 c4 0c             	add    $0xc,%esp
46d36d:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46d371:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46d375:	8b 44 24 30          	mov    0x30(%esp),%eax
46d379:	89 44 24 20          	mov    %eax,0x20(%esp)
46d37d:	8b 44 24 34          	mov    0x34(%esp),%eax
46d381:	89 44 24 24          	mov    %eax,0x24(%esp)
46d385:	ff 00                	incl   (%eax)
46d387:	8d 44 24 38          	lea    0x38(%esp),%eax
46d38b:	50                   	push   %eax
46d38c:	e8 fd a8 f9 ff       	call   0x407c8e
46d391:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
46d396:	74 4b                	je     0x46d3e3
46d398:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46d39c:	e8 d2 6a ff ff       	call   0x463e73
46d3a1:	84 c0                	test   %al,%al
46d3a3:	75 3e                	jne    0x46d3e3
46d3a5:	ff 74 24 18          	push   0x18(%esp)
46d3a9:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
46d3ad:	e8 8f ab f9 ff       	call   0x407f41
46d3b2:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46d3b6:	e8 ab 68 ff ff       	call   0x463c66
46d3bb:	8a d8                	mov    %al,%bl
46d3bd:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46d3c1:	f6 db                	neg    %bl
46d3c3:	1a db                	sbb    %bl,%bl
46d3c5:	e8 9a 86 f9 ff       	call   0x405a64
46d3ca:	fe c3                	inc    %bl
46d3cc:	74 11                	je     0x46d3df
46d3ce:	8b cf                	mov    %edi,%ecx
46d3d0:	e8 4b c6 f9 ff       	call   0x409a20
46d3d5:	83 0f ff             	orl    $0xffffffff,(%edi)
46d3d8:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
46d3df:	8b 5c 24 10          	mov    0x10(%esp),%ebx
46d3e3:	8b cf                	mov    %edi,%ecx
46d3e5:	e8 b2 c8 f9 ff       	call   0x409c9c
46d3ea:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46d3ee:	83 f8 ff             	cmp    $0xffffffff,%eax
46d3f1:	75 1c                	jne    0x46d40f
46d3f3:	e8 6c 86 f9 ff       	call   0x405a64
46d3f8:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d3fc:	e8 63 86 f9 ff       	call   0x405a64
46d401:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d405:	e8 5a 86 f9 ff       	call   0x405a64
46d40a:	e9 4d 01 00 00       	jmp    0x46d55c
46d40f:	83 f3 08             	xor    $0x8,%ebx
46d412:	e8 4d 86 f9 ff       	call   0x405a64
46d417:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d41b:	e8 44 86 f9 ff       	call   0x405a64
46d420:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d424:	e8 3b 86 f9 ff       	call   0x405a64
46d429:	8b 75 08             	mov    0x8(%ebp),%esi
46d42c:	6a 38                	push   $0x38
46d42e:	e8 c3 3b fb ff       	call   0x420ff6
46d433:	59                   	pop    %ecx
46d434:	85 c0                	test   %eax,%eax
46d436:	74 0d                	je     0x46d445
46d438:	8b c8                	mov    %eax,%ecx
46d43a:	e8 c7 84 f9 ff       	call   0x405906
46d43f:	89 44 24 10          	mov    %eax,0x10(%esp)
46d443:	eb 06                	jmp    0x46d44b
46d445:	33 c9                	xor    %ecx,%ecx
46d447:	89 4c 24 10          	mov    %ecx,0x10(%esp)
46d44b:	8b 46 04             	mov    0x4(%esi),%eax
46d44e:	8b 30                	mov    (%eax),%esi
46d450:	8b ce                	mov    %esi,%ecx
46d452:	e8 40 c5 f9 ff       	call   0x409997
46d457:	53                   	push   %ebx
46d458:	ff 76 08             	push   0x8(%esi)
46d45b:	8b 5c 24 18          	mov    0x18(%esp),%ebx
46d45f:	8b cb                	mov    %ebx,%ecx
46d461:	e8 f0 84 f9 ff       	call   0x405956
46d466:	84 c0                	test   %al,%al
46d468:	75 34                	jne    0x46d49e
46d46a:	ff 15 40 f3 48 00    	call   *0x48f340
46d470:	8b 54 24 14          	mov    0x14(%esp),%edx
46d474:	6a 00                	push   $0x0
46d476:	50                   	push   %eax
46d477:	8b 02                	mov    (%edx),%eax
46d479:	8b 48 04             	mov    0x4(%eax),%ecx
46d47c:	03 ca                	add    %edx,%ecx
46d47e:	e8 de 2a fb ff       	call   0x41ff61
46d483:	85 db                	test   %ebx,%ebx
46d485:	74 08                	je     0x46d48f
46d487:	51                   	push   %ecx
46d488:	8b cb                	mov    %ebx,%ecx
46d48a:	e8 8b 85 f9 ff       	call   0x405a1a
46d48f:	8b cf                	mov    %edi,%ecx
46d491:	e8 8a c5 f9 ff       	call   0x409a20
46d496:	83 0f ff             	orl    $0xffffffff,(%edi)
46d499:	e9 b7 00 00 00       	jmp    0x46d555
46d49e:	8b 5c 24 14          	mov    0x14(%esp),%ebx
46d4a2:	33 f6                	xor    %esi,%esi
46d4a4:	8b 8b 98 01 00 00    	mov    0x198(%ebx),%ecx
46d4aa:	85 c9                	test   %ecx,%ecx
46d4ac:	74 15                	je     0x46d4c3
46d4ae:	8b 93 94 01 00 00    	mov    0x194(%ebx),%edx
46d4b4:	8b 02                	mov    (%edx),%eax
46d4b6:	83 38 00             	cmpl   $0x0,(%eax)
46d4b9:	74 08                	je     0x46d4c3
46d4bb:	46                   	inc    %esi
46d4bc:	83 c2 04             	add    $0x4,%edx
46d4bf:	3b f1                	cmp    %ecx,%esi
46d4c1:	72 f1                	jb     0x46d4b4
46d4c3:	6a 20                	push   $0x20
46d4c5:	3b f1                	cmp    %ecx,%esi
46d4c7:	75 37                	jne    0x46d500
46d4c9:	e8 28 3b fb ff       	call   0x420ff6
46d4ce:	89 44 24 18          	mov    %eax,0x18(%esp)
46d4d2:	59                   	pop    %ecx
46d4d3:	85 c0                	test   %eax,%eax
46d4d5:	74 12                	je     0x46d4e9
46d4d7:	8d 48 0c             	lea    0xc(%eax),%ecx
46d4da:	e8 e8 a2 f9 ff       	call   0x4077c7
46d4df:	8b 44 24 14          	mov    0x14(%esp),%eax
46d4e3:	89 44 24 14          	mov    %eax,0x14(%esp)
46d4e7:	eb 05                	jmp    0x46d4ee
46d4e9:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
46d4ee:	8d 44 24 14          	lea    0x14(%esp),%eax
46d4f2:	50                   	push   %eax
46d4f3:	8d 8b 90 01 00 00    	lea    0x190(%ebx),%ecx
46d4f9:	e8 37 23 00 00       	call   0x46f835
46d4fe:	eb 29                	jmp    0x46d529
46d500:	e8 f1 3a fb ff       	call   0x420ff6
46d505:	89 44 24 18          	mov    %eax,0x18(%esp)
46d509:	59                   	pop    %ecx
46d50a:	85 c0                	test   %eax,%eax
46d50c:	74 0e                	je     0x46d51c
46d50e:	8d 48 0c             	lea    0xc(%eax),%ecx
46d511:	e8 b1 a2 f9 ff       	call   0x4077c7
46d516:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46d51a:	eb 02                	jmp    0x46d51e
46d51c:	33 c9                	xor    %ecx,%ecx
46d51e:	8b 83 94 01 00 00    	mov    0x194(%ebx),%eax
46d524:	8b 04 b0             	mov    (%eax,%esi,4),%eax
46d527:	89 08                	mov    %ecx,(%eax)
46d529:	8b 83 94 01 00 00    	mov    0x194(%ebx),%eax
46d52f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46d533:	8b 04 b0             	mov    (%eax,%esi,4),%eax
46d536:	8b 00                	mov    (%eax),%eax
46d538:	83 20 00             	andl   $0x0,(%eax)
46d53b:	8b 83 94 01 00 00    	mov    0x194(%ebx),%eax
46d541:	8b 04 b0             	mov    (%eax,%esi,4),%eax
46d544:	8b 00                	mov    (%eax),%eax
46d546:	89 48 04             	mov    %ecx,0x4(%eax)
46d549:	8b cf                	mov    %edi,%ecx
46d54b:	e8 d0 c4 f9 ff       	call   0x409a20
46d550:	8d 46 01             	lea    0x1(%esi),%eax
46d553:	89 07                	mov    %eax,(%edi)
46d555:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
46d55c:	5f                   	pop    %edi
46d55d:	5e                   	pop    %esi
46d55e:	33 c0                	xor    %eax,%eax
46d560:	5b                   	pop    %ebx
46d561:	8b e5                	mov    %ebp,%esp
46d563:	5d                   	pop    %ebp
46d564:	c2 08 00             	ret    $0x8
46d567:	55                   	push   %ebp
46d568:	8b ec                	mov    %esp,%ebp
46d56a:	8b 45 08             	mov    0x8(%ebp),%eax
46d56d:	6a 01                	push   $0x1
46d56f:	ff 70 08             	push   0x8(%eax)
46d572:	ff 75 0c             	push   0xc(%ebp)
46d575:	50                   	push   %eax
46d576:	e8 13 18 00 00       	call   0x46ed8e
46d57b:	5d                   	pop    %ebp
46d57c:	c2 08 00             	ret    $0x8
46d57f:	55                   	push   %ebp
46d580:	8b ec                	mov    %esp,%ebp
46d582:	83 e4 f8             	and    $0xfffffff8,%esp
46d585:	83 ec 24             	sub    $0x24,%esp
46d588:	53                   	push   %ebx
46d589:	56                   	push   %esi
46d58a:	8b 75 0c             	mov    0xc(%ebp),%esi
46d58d:	8b d9                	mov    %ecx,%ebx
46d58f:	57                   	push   %edi
46d590:	8b ce                	mov    %esi,%ecx
46d592:	e8 89 c4 f9 ff       	call   0x409a20
46d597:	8b 45 08             	mov    0x8(%ebp),%eax
46d59a:	33 ff                	xor    %edi,%edi
46d59c:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46d5a3:	89 3e                	mov    %edi,(%esi)
46d5a5:	8b 40 04             	mov    0x4(%eax),%eax
46d5a8:	8b 00                	mov    (%eax),%eax
46d5aa:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
46d5ae:	75 58                	jne    0x46d608
46d5b0:	6a 38                	push   $0x38
46d5b2:	e8 3f 3a fb ff       	call   0x420ff6
46d5b7:	59                   	pop    %ecx
46d5b8:	85 c0                	test   %eax,%eax
46d5ba:	74 09                	je     0x46d5c5
46d5bc:	8b c8                	mov    %eax,%ecx
46d5be:	e8 43 83 f9 ff       	call   0x405906
46d5c3:	8b f8                	mov    %eax,%edi
46d5c5:	8b 45 08             	mov    0x8(%ebp),%eax
46d5c8:	8b 40 04             	mov    0x4(%eax),%eax
46d5cb:	8b 30                	mov    (%eax),%esi
46d5cd:	8b ce                	mov    %esi,%ecx
46d5cf:	e8 c3 c3 f9 ff       	call   0x409997
46d5d4:	68 00 80 00 00       	push   $0x8000
46d5d9:	ff 76 08             	push   0x8(%esi)
46d5dc:	8b cf                	mov    %edi,%ecx
46d5de:	e8 73 83 f9 ff       	call   0x405956
46d5e3:	84 c0                	test   %al,%al
46d5e5:	75 4a                	jne    0x46d631
46d5e7:	85 ff                	test   %edi,%edi
46d5e9:	74 08                	je     0x46d5f3
46d5eb:	51                   	push   %ecx
46d5ec:	8b cf                	mov    %edi,%ecx
46d5ee:	e8 27 84 f9 ff       	call   0x405a1a
46d5f3:	6a 00                	push   $0x0
46d5f5:	8b 03                	mov    (%ebx),%eax
46d5f7:	6a 01                	push   $0x1
46d5f9:	8b 48 04             	mov    0x4(%eax),%ecx
46d5fc:	03 cb                	add    %ebx,%ecx
46d5fe:	e8 a0 94 fe ff       	call   0x456aa3
46d603:	e9 e9 00 00 00       	jmp    0x46d6f1
46d608:	57                   	push   %edi
46d609:	50                   	push   %eax
46d60a:	8d 44 24 14          	lea    0x14(%esp),%eax
46d60e:	8b cb                	mov    %ebx,%ecx
46d610:	50                   	push   %eax
46d611:	e8 c9 21 00 00       	call   0x46f7df
46d616:	84 c0                	test   %al,%al
46d618:	75 03                	jne    0x46d61d
46d61a:	57                   	push   %edi
46d61b:	eb d8                	jmp    0x46d5f5
46d61d:	8b 8b 94 01 00 00    	mov    0x194(%ebx),%ecx
46d623:	8b 44 24 0c          	mov    0xc(%esp),%eax
46d627:	8b 04 81             	mov    (%ecx,%eax,4),%eax
46d62a:	8b 00                	mov    (%eax),%eax
46d62c:	8b 78 04             	mov    0x4(%eax),%edi
46d62f:	eb 03                	jmp    0x46d634
46d631:	8b 75 0c             	mov    0xc(%ebp),%esi
46d634:	68 00 01 00 00       	push   $0x100
46d639:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46d63d:	e8 34 a5 f9 ff       	call   0x407b76
46d642:	33 c0                	xor    %eax,%eax
46d644:	c7 44 24 10 68 f9 48 	movl   $0x48f968,0x10(%esp)
46d64b:	00
46d64c:	89 44 24 14          	mov    %eax,0x14(%esp)
46d650:	89 44 24 18          	mov    %eax,0x18(%esp)
46d654:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46d658:	8d 44 24 20          	lea    0x20(%esp),%eax
46d65c:	8b cf                	mov    %edi,%ecx
46d65e:	50                   	push   %eax
46d65f:	e8 88 7f f9 ff       	call   0x4055ec
46d664:	84 c0                	test   %al,%al
46d666:	74 10                	je     0x46d678
46d668:	8d 44 24 20          	lea    0x20(%esp),%eax
46d66c:	50                   	push   %eax
46d66d:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46d671:	e8 0e 69 f9 ff       	call   0x403f84
46d676:	eb e0                	jmp    0x46d658
46d678:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
46d67d:	8b ce                	mov    %esi,%ecx
46d67f:	75 21                	jne    0x46d6a2
46d681:	e8 9a c3 f9 ff       	call   0x409a20
46d686:	83 26 00             	andl   $0x0,(%esi)
46d689:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46d690:	8b 03                	mov    (%ebx),%eax
46d692:	6a 00                	push   $0x0
46d694:	6a 02                	push   $0x2
46d696:	8b 48 04             	mov    0x4(%eax),%ecx
46d699:	03 cb                	add    %ebx,%ecx
46d69b:	e8 03 94 fe ff       	call   0x456aa3
46d6a0:	eb 1c                	jmp    0x46d6be
46d6a2:	8d 44 24 10          	lea    0x10(%esp),%eax
46d6a6:	50                   	push   %eax
46d6a7:	e8 e4 c1 f9 ff       	call   0x409890
46d6ac:	8b 03                	mov    (%ebx),%eax
46d6ae:	6a 00                	push   $0x0
46d6b0:	ff 74 24 1c          	push   0x1c(%esp)
46d6b4:	8b 48 04             	mov    0x4(%eax),%ecx
46d6b7:	03 cb                	add    %ebx,%ecx
46d6b9:	e8 a3 28 fb ff       	call   0x41ff61
46d6be:	8b 45 08             	mov    0x8(%ebp),%eax
46d6c1:	8b 40 04             	mov    0x4(%eax),%eax
46d6c4:	8b 00                	mov    (%eax),%eax
46d6c6:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
46d6ca:	75 13                	jne    0x46d6df
46d6cc:	8b cf                	mov    %edi,%ecx
46d6ce:	e8 fc 86 f9 ff       	call   0x405dcf
46d6d3:	85 ff                	test   %edi,%edi
46d6d5:	74 08                	je     0x46d6df
46d6d7:	51                   	push   %ecx
46d6d8:	8b cf                	mov    %edi,%ecx
46d6da:	e8 3b 83 f9 ff       	call   0x405a1a
46d6df:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46d6e3:	e8 3c 69 f9 ff       	call   0x404024
46d6e8:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46d6ec:	e8 73 83 f9 ff       	call   0x405a64
46d6f1:	5f                   	pop    %edi
46d6f2:	5e                   	pop    %esi
46d6f3:	33 c0                	xor    %eax,%eax
46d6f5:	5b                   	pop    %ebx
46d6f6:	8b e5                	mov    %ebp,%esp
46d6f8:	5d                   	pop    %ebp
46d6f9:	c2 08 00             	ret    $0x8
46d6fc:	55                   	push   %ebp
46d6fd:	8b ec                	mov    %esp,%ebp
46d6ff:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
46d705:	8b 45 08             	mov    0x8(%ebp),%eax
46d708:	56                   	push   %esi
46d709:	57                   	push   %edi
46d70a:	8b 40 04             	mov    0x4(%eax),%eax
46d70d:	8b 30                	mov    (%eax),%esi
46d70f:	8b ce                	mov    %esi,%ecx
46d711:	e8 81 c2 f9 ff       	call   0x409997