46e2db:	59                   	pop    %ecx
46e2dc:	50                   	push   %eax
46e2dd:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
46e2e1:	e8 a8 70 f9 ff       	call   0x40538e
46e2e6:	8b 47 04             	mov    0x4(%edi),%eax
46e2e9:	8b 70 04             	mov    0x4(%eax),%esi
46e2ec:	8b ce                	mov    %esi,%ecx
46e2ee:	e8 a4 b6 f9 ff       	call   0x409997
46e2f3:	ff 74 24 50          	push   0x50(%esp)
46e2f7:	8b 46 08             	mov    0x8(%esi),%eax
46e2fa:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
46e2fe:	68 ff 7f 00 00       	push   $0x7fff
46e303:	53                   	push   %ebx
46e304:	ff 30                	push   (%eax)
46e306:	ff 15 9c f2 48 00    	call   *0x48f29c
46e30c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46e310:	85 c0                	test   %eax,%eax
46e312:	0f 84 78 02 00 00    	je     0x46e590
46e318:	6a 14                	push   $0x14
46e31a:	e8 d7 2c fb ff       	call   0x420ff6
46e31f:	8b f8                	mov    %eax,%edi
46e321:	33 db                	xor    %ebx,%ebx
46e323:	89 7c 24 24          	mov    %edi,0x24(%esp)
46e327:	59                   	pop    %ecx
46e328:	85 ff                	test   %edi,%edi
46e32a:	74 10                	je     0x46e33c
46e32c:	89 1f                	mov    %ebx,(%edi)
46e32e:	89 5f 04             	mov    %ebx,0x4(%edi)
46e331:	89 5f 08             	mov    %ebx,0x8(%edi)
46e334:	89 5f 0c             	mov    %ebx,0xc(%edi)
46e337:	89 5f 10             	mov    %ebx,0x10(%edi)
46e33a:	eb 06                	jmp    0x46e342
46e33c:	8b fb                	mov    %ebx,%edi
46e33e:	89 5c 24 20          	mov    %ebx,0x20(%esp)
46e342:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
46e347:	8b cf                	mov    %edi,%ecx
46e349:	8a c3                	mov    %bl,%al
46e34b:	89 4c 24 18          	mov    %ecx,0x18(%esp)
46e34f:	89 1f                	mov    %ebx,(%edi)
46e351:	8b f3                	mov    %ebx,%esi
46e353:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46e357:	88 44 24 0f          	mov    %al,0xf(%esp)
46e35b:	0f 8e 16 02 00 00    	jle    0x46e577
46e361:	8b 54 24 28          	mov    0x28(%esp),%edx
46e365:	0f b7 3c 72          	movzwl (%edx,%esi,2),%edi
46e369:	89 7c 24 14          	mov    %edi,0x14(%esp)
46e36d:	83 ff 3b             	cmp    $0x3b,%edi
46e370:	75 0f                	jne    0x46e381
46e372:	39 31                	cmp    %esi,(%ecx)
46e374:	75 0b                	jne    0x46e381
46e376:	b0 01                	mov    $0x1,%al
46e378:	88 44 24 0f          	mov    %al,0xf(%esp)
46e37c:	e9 92 00 00 00       	jmp    0x46e413
46e381:	66 83 7c 24 14 3d    	cmpw   $0x3d,0x14(%esp)
46e387:	75 18                	jne    0x46e3a1
46e389:	39 59 04             	cmp    %ebx,0x4(%ecx)
46e38c:	75 13                	jne    0x46e3a1
46e38e:	84 c0                	test   %al,%al
46e390:	75 0f                	jne    0x46e3a1
46e392:	8d 46 01             	lea    0x1(%esi),%eax
46e395:	89 71 04             	mov    %esi,0x4(%ecx)
46e398:	89 41 08             	mov    %eax,0x8(%ecx)
46e39b:	8a 44 24 0f          	mov    0xf(%esp),%al
46e39f:	eb 72                	jmp    0x46e413
46e3a1:	66 83 7c 24 14 00    	cmpw   $0x0,0x14(%esp)
46e3a7:	75 6a                	jne    0x46e413
46e3a9:	6a 0d                	push   $0xd
46e3ab:	5f                   	pop    %edi
46e3ac:	66 89 3c 72          	mov    %di,(%edx,%esi,2)
46e3b0:	39 59 08             	cmp    %ebx,0x8(%ecx)
46e3b3:	74 43                	je     0x46e3f8
46e3b5:	84 c0                	test   %al,%al
46e3b7:	75 3f                	jne    0x46e3f8
46e3b9:	ff 44 24 10          	incl   0x10(%esp)
46e3bd:	89 71 0c             	mov    %esi,0xc(%ecx)
46e3c0:	66 39 5c 72 02       	cmp    %bx,0x2(%edx,%esi,2)
46e3c5:	74 3f                	je     0x46e406
46e3c7:	6a 14                	push   $0x14
46e3c9:	e8 28 2c fb ff       	call   0x420ff6
46e3ce:	59                   	pop    %ecx
46e3cf:	8b c8                	mov    %eax,%ecx
46e3d1:	85 c9                	test   %ecx,%ecx
46e3d3:	74 10                	je     0x46e3e5
46e3d5:	89 19                	mov    %ebx,(%ecx)
46e3d7:	89 59 04             	mov    %ebx,0x4(%ecx)
46e3da:	89 59 08             	mov    %ebx,0x8(%ecx)
46e3dd:	89 59 0c             	mov    %ebx,0xc(%ecx)
46e3e0:	89 59 10             	mov    %ebx,0x10(%ecx)
46e3e3:	eb 02                	jmp    0x46e3e7
46e3e5:	8b cb                	mov    %ebx,%ecx
46e3e7:	8b 44 24 18          	mov    0x18(%esp),%eax
46e3eb:	8b 54 24 28          	mov    0x28(%esp),%edx
46e3ef:	89 4c 24 18          	mov    %ecx,0x18(%esp)
46e3f3:	89 48 10             	mov    %ecx,0x10(%eax)
46e3f6:	eb 09                	jmp    0x46e401
46e3f8:	89 59 0c             	mov    %ebx,0xc(%ecx)
46e3fb:	89 59 08             	mov    %ebx,0x8(%ecx)
46e3fe:	89 59 04             	mov    %ebx,0x4(%ecx)
46e401:	8d 46 01             	lea    0x1(%esi),%eax
46e404:	89 01                	mov    %eax,(%ecx)
46e406:	8a c3                	mov    %bl,%al
46e408:	88 44 24 0f          	mov    %al,0xf(%esp)
46e40c:	66 39 5c 72 02       	cmp    %bx,0x2(%edx,%esi,2)
46e411:	74 0b                	je     0x46e41e
46e413:	46                   	inc    %esi
46e414:	3b 74 24 1c          	cmp    0x1c(%esp),%esi
46e418:	0f 8c 47 ff ff ff    	jl     0x46e365
46e41e:	8b 74 24 10          	mov    0x10(%esp),%esi
46e422:	8b 7c 24 20          	mov    0x20(%esp),%edi
46e426:	85 f6                	test   %esi,%esi
46e428:	0f 8e 49 01 00 00    	jle    0x46e577
46e42e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46e431:	e8 f8 af f9 ff       	call   0x40942e
46e436:	8b 45 0c             	mov    0xc(%ebp),%eax
46e439:	83 78 0c 05          	cmpl   $0x5,0xc(%eax)
46e43d:	75 08                	jne    0x46e447
46e43f:	8b 08                	mov    (%eax),%ecx
46e441:	89 4c 24 10          	mov    %ecx,0x10(%esp)
46e445:	eb 06                	jmp    0x46e44d
46e447:	8b cb                	mov    %ebx,%ecx
46e449:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46e44d:	6a 02                	push   $0x2
46e44f:	8d 46 01             	lea    0x1(%esi),%eax
46e452:	50                   	push   %eax
46e453:	6a 02                	push   $0x2
46e455:	51                   	push   %ecx
46e456:	e8 55 ad f9 ff       	call   0x4091b0
46e45b:	53                   	push   %ebx
46e45c:	53                   	push   %ebx
46e45d:	6a 02                	push   $0x2
46e45f:	8d 44 24 4c          	lea    0x4c(%esp),%eax
46e463:	89 74 24 4c          	mov    %esi,0x4c(%esp)
46e467:	50                   	push   %eax
46e468:	ff 74 24 30          	push   0x30(%esp)
46e46c:	89 5c 24 5c          	mov    %ebx,0x5c(%esp)
46e470:	c7 44 24 60 01 00 00 	movl   $0x1,0x60(%esp)
46e477:	00
46e478:	e8 c3 ab f9 ff       	call   0x409040
46e47d:	83 c4 24             	add    $0x24,%esp
46e480:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e484:	e8 97 b5 f9 ff       	call   0x409a20
46e489:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e48d:	e8 35 93 f9 ff       	call   0x4077c7
46e492:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e496:	e8 2c 93 f9 ff       	call   0x4077c7
46e49b:	85 f6                	test   %esi,%esi
46e49d:	0f 8e c0 00 00 00    	jle    0x46e563
46e4a3:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
46e4aa:	00
46e4ab:	6a ff                	push   $0xffffffff
46e4ad:	53                   	push   %ebx
46e4ae:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46e4b2:	e8 d5 99 f9 ff       	call   0x407e8c
46e4b7:	8b 47 04             	mov    0x4(%edi),%eax
46e4ba:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e4be:	2b 07                	sub    (%edi),%eax
46e4c0:	50                   	push   %eax
46e4c1:	ff 37                	push   (%edi)
46e4c3:	ff 74 24 30          	push   0x30(%esp)
46e4c7:	e8 e1 93 f9 ff       	call   0x4078ad
46e4cc:	8d 44 24 40          	lea    0x40(%esp),%eax
46e4d0:	50                   	push   %eax
46e4d1:	8d 4c 24 64          	lea    0x64(%esp),%ecx
46e4d5:	e8 10 af f9 ff       	call   0x4093ea
46e4da:	53                   	push   %ebx
46e4db:	ff 74 24 18          	push   0x18(%esp)
46e4df:	8d 44 24 68          	lea    0x68(%esp),%eax
46e4e3:	6a 02                	push   $0x2
46e4e5:	50                   	push   %eax
46e4e6:	ff 74 24 20          	push   0x20(%esp)
46e4ea:	e8 51 ab f9 ff       	call   0x409040
46e4ef:	83 c4 14             	add    $0x14,%esp
46e4f2:	8d 4c 24 60          	lea    0x60(%esp),%ecx
46e4f6:	e8 25 b5 f9 ff       	call   0x409a20
46e4fb:	6a ff                	push   $0xffffffff
46e4fd:	53                   	push   %ebx
46e4fe:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46e502:	e8 85 99 f9 ff       	call   0x407e8c
46e507:	8b 47 0c             	mov    0xc(%edi),%eax
46e50a:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e50e:	2b 47 08             	sub    0x8(%edi),%eax
46e511:	50                   	push   %eax
46e512:	ff 77 08             	push   0x8(%edi)
46e515:	ff 74 24 30          	push   0x30(%esp)
46e519:	e8 8f 93 f9 ff       	call   0x4078ad
46e51e:	8d 44 24 30          	lea    0x30(%esp),%eax
46e522:	50                   	push   %eax
46e523:	8d 4c 24 74          	lea    0x74(%esp),%ecx
46e527:	e8 be ae f9 ff       	call   0x4093ea
46e52c:	6a 01                	push   $0x1
46e52e:	ff 74 24 18          	push   0x18(%esp)
46e532:	8d 44 24 78          	lea    0x78(%esp),%eax
46e536:	6a 02                	push   $0x2
46e538:	50                   	push   %eax
46e539:	ff 74 24 20          	push   0x20(%esp)
46e53d:	e8 fe aa f9 ff       	call   0x409040
46e542:	83 c4 14             	add    $0x14,%esp
46e545:	8d 4c 24 70          	lea    0x70(%esp),%ecx
46e549:	e8 d2 b4 f9 ff       	call   0x409a20
46e54e:	57                   	push   %edi
46e54f:	8b 7f 10             	mov    0x10(%edi),%edi
46e552:	e8 15 2b fb ff       	call   0x42106c
46e557:	ff 44 24 18          	incl   0x18(%esp)
46e55b:	59                   	pop    %ecx
46e55c:	4e                   	dec    %esi
46e55d:	0f 85 48 ff ff ff    	jne    0x46e4ab
46e563:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e567:	e8 f8 74 f9 ff       	call   0x405a64
46e56c:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e570:	e8 ef 74 f9 ff       	call   0x405a64
46e575:	eb 13                	jmp    0x46e58a
46e577:	8b 54 24 24          	mov    0x24(%esp),%edx
46e57b:	53                   	push   %ebx
46e57c:	6a 01                	push   $0x1
46e57e:	8b 02                	mov    (%edx),%eax
46e580:	8b 48 04             	mov    0x4(%eax),%ecx
46e583:	03 ca                	add    %edx,%ecx
46e585:	e8 19 85 fe ff       	call   0x456aa3
46e58a:	8b 5c 24 28          	mov    0x28(%esp),%ebx
46e58e:	eb 14                	jmp    0x46e5a4
46e590:	8b 54 24 24          	mov    0x24(%esp),%edx
46e594:	6a 00                	push   $0x0
46e596:	6a 01                	push   $0x1
46e598:	8b 02                	mov    (%edx),%eax
46e59a:	8b 48 04             	mov    0x4(%eax),%ecx
46e59d:	03 ca                	add    %edx,%ecx
46e59f:	e8 ff 84 fe ff       	call   0x456aa3
46e5a4:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46e5a8:	ff 08                	decl   (%eax)
46e5aa:	75 0e                	jne    0x46e5ba
46e5ac:	50                   	push   %eax
46e5ad:	e8 ba 2a fb ff       	call   0x42106c
46e5b2:	53                   	push   %ebx
46e5b3:	e8 b4 2a fb ff       	call   0x42106c
46e5b8:	59                   	pop    %ecx
46e5b9:	59                   	pop    %ecx
46e5ba:	8d 4c 24 50          	lea    0x50(%esp),%ecx
46e5be:	e8 a1 74 f9 ff       	call   0x405a64
46e5c3:	5f                   	pop    %edi
46e5c4:	5e                   	pop    %esi
46e5c5:	33 c0                	xor    %eax,%eax
46e5c7:	5b                   	pop    %ebx
46e5c8:	8b e5                	mov    %ebp,%esp
46e5ca:	5d                   	pop    %ebp
46e5cb:	c2 08 00             	ret    $0x8
46e5ce:	55                   	push   %ebp
46e5cf:	8b ec                	mov    %esp,%ebp
46e5d1:	83 e4 f8             	and    $0xfffffff8,%esp
46e5d4:	83 ec 4c             	sub    $0x4c,%esp
46e5d7:	53                   	push   %ebx
46e5d8:	56                   	push   %esi
46e5d9:	57                   	push   %edi
46e5da:	8b f9                	mov    %ecx,%edi
46e5dc:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46e5e0:	e8 e2 91 f9 ff       	call   0x4077c7
46e5e5:	8b 45 08             	mov    0x8(%ebp),%eax
46e5e8:	8b 40 04             	mov    0x4(%eax),%eax
46e5eb:	8b 30                	mov    (%eax),%esi
46e5ed:	8b ce                	mov    %esi,%ecx
46e5ef:	e8 a3 b3 f9 ff       	call   0x409997
46e5f4:	8b 4e 08             	mov    0x8(%esi),%ecx
46e5f7:	8d 54 24 38          	lea    0x38(%esp),%edx
46e5fb:	e8 ae 62 f9 ff       	call   0x4048ae
46e600:	68 fe ff 00 00       	push   $0xfffe
46e605:	e8 ec 29 fb ff       	call   0x420ff6
46e60a:	59                   	pop    %ecx
46e60b:	50                   	push   %eax
46e60c:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46e610:	e8 79 6d f9 ff       	call   0x40538e
46e615:	8b 5c 24 20          	mov    0x20(%esp),%ebx
46e619:	6a 0a                	push   $0xa
46e61b:	5e                   	pop    %esi
46e61c:	ff 74 24 38          	push   0x38(%esp)
46e620:	66 89 73 02          	mov    %si,0x2(%ebx)
46e624:	68 ff 7f 00 00       	push   $0x7fff
46e629:	53                   	push   %ebx
46e62a:	ff 15 a4 f2 48 00    	call   *0x48f2a4
46e630:	89 44 24 18          	mov    %eax,0x18(%esp)
46e634:	85 c0                	test   %eax,%eax
46e636:	0f 84 66 01 00 00    	je     0x46e7a2
46e63c:	66 39 73 02          	cmp    %si,0x2(%ebx)
46e640:	0f 84 5c 01 00 00    	je     0x46e7a2
46e646:	6a 0c                	push   $0xc
46e648:	e8 a9 29 fb ff       	call   0x420ff6
46e64d:	8b f8                	mov    %eax,%edi
46e64f:	33 f6                	xor    %esi,%esi
46e651:	89 7c 24 20          	mov    %edi,0x20(%esp)
46e655:	59                   	pop    %ecx
46e656:	85 ff                	test   %edi,%edi
46e658:	74 0a                	je     0x46e664
46e65a:	89 37                	mov    %esi,(%edi)
46e65c:	89 77 04             	mov    %esi,0x4(%edi)
46e65f:	89 77 08             	mov    %esi,0x8(%edi)
46e662:	eb 06                	jmp    0x46e66a
46e664:	8b fe                	mov    %esi,%edi
46e666:	89 74 24 1c          	mov    %esi,0x1c(%esp)
46e66a:	8b 54 24 18          	mov    0x18(%esp),%edx
46e66e:	8b cf                	mov    %edi,%ecx
46e670:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46e674:	8b c6                	mov    %esi,%eax
46e676:	89 37                	mov    %esi,(%edi)
46e678:	8b de                	mov    %esi,%ebx
46e67a:	89 44 24 10          	mov    %eax,0x10(%esp)
46e67e:	85 d2                	test   %edx,%edx
46e680:	7e 54                	jle    0x46e6d6
46e682:	8b 7c 24 20          	mov    0x20(%esp),%edi
46e686:	66 39 34 5f          	cmp    %si,(%edi,%ebx,2)
46e68a:	75 41                	jne    0x46e6cd
46e68c:	40                   	inc    %eax
46e68d:	89 59 04             	mov    %ebx,0x4(%ecx)
46e690:	6a 0d                	push   $0xd
46e692:	89 44 24 14          	mov    %eax,0x14(%esp)
46e696:	58                   	pop    %eax
46e697:	6a 0c                	push   $0xc
46e699:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
46e69d:	e8 54 29 fb ff       	call   0x420ff6
46e6a2:	59                   	pop    %ecx
46e6a3:	85 c0                	test   %eax,%eax
46e6a5:	74 0a                	je     0x46e6b1
46e6a7:	89 30                	mov    %esi,(%eax)
46e6a9:	89 70 04             	mov    %esi,0x4(%eax)
46e6ac:	89 70 08             	mov    %esi,0x8(%eax)
46e6af:	eb 02                	jmp    0x46e6b3
46e6b1:	8b c6                	mov    %esi,%eax
46e6b3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46e6b7:	8b 54 24 18          	mov    0x18(%esp),%edx
46e6bb:	89 41 08             	mov    %eax,0x8(%ecx)
46e6be:	8b c8                	mov    %eax,%ecx
46e6c0:	8d 43 01             	lea    0x1(%ebx),%eax
46e6c3:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46e6c7:	89 01                	mov    %eax,(%ecx)
46e6c9:	8b 44 24 10          	mov    0x10(%esp),%eax
46e6cd:	43                   	inc    %ebx
46e6ce:	3b da                	cmp    %edx,%ebx
46e6d0:	7c b4                	jl     0x46e686
46e6d2:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
46e6d6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46e6d9:	8b cb                	mov    %ebx,%ecx
46e6db:	e8 4e ad f9 ff       	call   0x40942e
46e6e0:	83 7b 0c 05          	cmpl   $0x5,0xc(%ebx)
46e6e4:	75 08                	jne    0x46e6ee
46e6e6:	8b 0b                	mov    (%ebx),%ecx
46e6e8:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46e6ec:	eb 06                	jmp    0x46e6f4
46e6ee:	8b ce                	mov    %esi,%ecx
46e6f0:	89 74 24 14          	mov    %esi,0x14(%esp)
46e6f4:	8b 5c 24 10          	mov    0x10(%esp),%ebx
46e6f8:	8d 43 01             	lea    0x1(%ebx),%eax
46e6fb:	50                   	push   %eax
46e6fc:	6a 01                	push   $0x1