486295:	8b 56 04             	mov    0x4(%esi),%edx
486298:	23 55 10             	and    0x10(%ebp),%edx
48629b:	23 06                	and    (%esi),%eax
48629d:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
4862a3:	e8 c8 f7 00 00       	call   0x495a70
4862a8:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4862ac:	0f b7 f8             	movzwl %ax,%edi
4862af:	75 09                	jne    0x4862ba
4862b1:	83 ff 08             	cmp    $0x8,%edi
4862b4:	1a c0                	sbb    %al,%al
4862b6:	fe c0                	inc    %al
4862b8:	eb 55                	jmp    0x48630f
4862ba:	e8 15 37 00 00       	call   0x4899d4
4862bf:	85 c0                	test   %eax,%eax
4862c1:	75 12                	jne    0x4862d5
4862c3:	53                   	push   %ebx
4862c4:	ff 75 10             	push   0x10(%ebp)
4862c7:	ff 75 0c             	push   0xc(%ebp)
4862ca:	56                   	push   %esi
4862cb:	e8 ce f6 ff ff       	call   0x48599e
4862d0:	83 c4 10             	add    $0x10,%esp
4862d3:	eb 3a                	jmp    0x48630f
4862d5:	3d 00 02 00 00       	cmp    $0x200,%eax
4862da:	75 16                	jne    0x4862f2
4862dc:	33 c0                	xor    %eax,%eax
4862de:	66 85 ff             	test   %di,%di
4862e1:	74 2c                	je     0x48630f
4862e3:	39 46 04             	cmp    %eax,0x4(%esi)
4862e6:	7c 27                	jl     0x48630f
4862e8:	7f 04                	jg     0x4862ee
4862ea:	39 06                	cmp    %eax,(%esi)
4862ec:	72 21                	jb     0x48630f
4862ee:	b0 01                	mov    $0x1,%al
4862f0:	eb 1d                	jmp    0x48630f
4862f2:	3d 00 01 00 00       	cmp    $0x100,%eax
4862f7:	75 14                	jne    0x48630d
4862f9:	33 c0                	xor    %eax,%eax
4862fb:	66 85 ff             	test   %di,%di
4862fe:	74 0f                	je     0x48630f
486300:	39 46 04             	cmp    %eax,0x4(%esi)
486303:	7f 0a                	jg     0x48630f
486305:	7c e7                	jl     0x4862ee
486307:	39 06                	cmp    %eax,(%esi)
486309:	73 04                	jae    0x48630f
48630b:	eb e1                	jmp    0x4862ee
48630d:	32 c0                	xor    %al,%al
48630f:	5f                   	pop    %edi
486310:	5e                   	pop    %esi
486311:	5b                   	pop    %ebx
486312:	5d                   	pop    %ebp
486313:	c3                   	ret
486314:	8b ff                	mov    %edi,%edi
486316:	55                   	push   %ebp
486317:	8b ec                	mov    %esp,%ebp
486319:	51                   	push   %ecx
48631a:	51                   	push   %ecx
48631b:	53                   	push   %ebx
48631c:	56                   	push   %esi
48631d:	57                   	push   %edi
48631e:	8b 7d 0c             	mov    0xc(%ebp),%edi
486321:	85 ff                	test   %edi,%edi
486323:	75 24                	jne    0x486349
486325:	8b 4d 30             	mov    0x30(%ebp),%ecx
486328:	6a 16                	push   $0x16
48632a:	5e                   	pop    %esi
48632b:	51                   	push   %ecx
48632c:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
486330:	89 71 18             	mov    %esi,0x18(%ecx)
486333:	33 db                	xor    %ebx,%ebx
486335:	53                   	push   %ebx
486336:	53                   	push   %ebx
486337:	53                   	push   %ebx
486338:	53                   	push   %ebx
486339:	53                   	push   %ebx
48633a:	e8 65 32 ff ff       	call   0x4795a4
48633f:	83 c4 18             	add    $0x18,%esp
486342:	8b c6                	mov    %esi,%eax
486344:	e9 47 01 00 00       	jmp    0x486490
486349:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
48634d:	77 10                	ja     0x48635f
48634f:	8b 45 30             	mov    0x30(%ebp),%eax
486352:	6a 16                	push   $0x16
486354:	5e                   	pop    %esi
486355:	50                   	push   %eax
486356:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
48635a:	89 70 18             	mov    %esi,0x18(%eax)
48635d:	eb d4                	jmp    0x486333
48635f:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
486363:	74 ea                	je     0x48634f
486365:	33 db                	xor    %ebx,%ebx
486367:	39 5d 18             	cmp    %ebx,0x18(%ebp)
48636a:	77 10                	ja     0x48637c
48636c:	8b 45 30             	mov    0x30(%ebp),%eax
48636f:	6a 16                	push   $0x16
486371:	5e                   	pop    %esi
486372:	50                   	push   %eax
486373:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
486377:	89 70 18             	mov    %esi,0x18(%eax)
48637a:	eb b9                	jmp    0x486335
48637c:	8b 75 1c             	mov    0x1c(%ebp),%esi
48637f:	83 fe 41             	cmp    $0x41,%esi
486382:	74 12                	je     0x486396
486384:	83 fe 45             	cmp    $0x45,%esi
486387:	74 0d                	je     0x486396
486389:	83 fe 46             	cmp    $0x46,%esi
48638c:	74 08                	je     0x486396
48638e:	88 5d fc             	mov    %bl,-0x4(%ebp)
486391:	83 fe 47             	cmp    $0x47,%esi
486394:	75 04                	jne    0x48639a
486396:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
48639a:	8b 4d 24             	mov    0x24(%ebp),%ecx
48639d:	8b c1                	mov    %ecx,%eax
48639f:	83 e0 08             	and    $0x8,%eax
4863a2:	0b c3                	or     %ebx,%eax
4863a4:	75 41                	jne    0x4863e7
4863a6:	ff 75 08             	push   0x8(%ebp)
4863a9:	e8 8e f5 ff ff       	call   0x48593c
4863ae:	59                   	pop    %ecx
4863af:	8b c8                	mov    %eax,%ecx
4863b1:	85 c9                	test   %ecx,%ecx
4863b3:	74 2f                	je     0x4863e4
4863b5:	8b 45 08             	mov    0x8(%ebp),%eax
4863b8:	39 58 04             	cmp    %ebx,0x4(%eax)
4863bb:	7f 0c                	jg     0x4863c9
4863bd:	7c 04                	jl     0x4863c3
4863bf:	39 18                	cmp    %ebx,(%eax)
4863c1:	73 06                	jae    0x4863c9
4863c3:	c6 45 f8 01          	movb   $0x1,-0x8(%ebp)
4863c7:	eb 03                	jmp    0x4863cc
4863c9:	88 5d f8             	mov    %bl,-0x8(%ebp)
4863cc:	ff 75 fc             	push   -0x4(%ebp)
4863cf:	ff 75 10             	push   0x10(%ebp)
4863d2:	57                   	push   %edi
4863d3:	ff 75 f8             	push   -0x8(%ebp)
4863d6:	51                   	push   %ecx
4863d7:	e8 dc fd ff ff       	call   0x4861b8
4863dc:	83 c4 14             	add    $0x14,%esp
4863df:	e9 ac 00 00 00       	jmp    0x486490
4863e4:	8b 4d 24             	mov    0x24(%ebp),%ecx
4863e7:	8b c1                	mov    %ecx,%eax
4863e9:	83 e0 10             	and    $0x10,%eax
4863ec:	0b c3                	or     %ebx,%eax
4863ee:	74 04                	je     0x4863f4
4863f0:	6a 03                	push   $0x3
4863f2:	eb 02                	jmp    0x4863f6
4863f4:	6a 02                	push   $0x2
4863f6:	83 e1 20             	and    $0x20,%ecx
4863f9:	0b cb                	or     %ebx,%ecx
4863fb:	58                   	pop    %eax
4863fc:	74 03                	je     0x486401
4863fe:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
486401:	83 fe 61             	cmp    $0x61,%esi
486404:	7f 2b                	jg     0x486431
486406:	74 0a                	je     0x486412
486408:	83 ee 41             	sub    $0x41,%esi
48640b:	74 05                	je     0x486412
48640d:	83 ee 04             	sub    $0x4,%esi
486410:	eb 22                	jmp    0x486434
486412:	ff 75 30             	push   0x30(%ebp)
486415:	53                   	push   %ebx
486416:	50                   	push   %eax
486417:	ff 75 fc             	push   -0x4(%ebp)
48641a:	ff 75 20             	push   0x20(%ebp)
48641d:	ff 75 18             	push   0x18(%ebp)
486420:	ff 75 14             	push   0x14(%ebp)
486423:	ff 75 10             	push   0x10(%ebp)
486426:	57                   	push   %edi
486427:	ff 75 08             	push   0x8(%ebp)
48642a:	e8 12 f6 ff ff       	call   0x485a41
48642f:	eb 5c                	jmp    0x48648d
486431:	83 ee 65             	sub    $0x65,%esi
486434:	ff 75 30             	push   0x30(%ebp)
486437:	53                   	push   %ebx
486438:	74 3a                	je     0x486474
48643a:	83 ee 01             	sub    $0x1,%esi
48643d:	74 1b                	je     0x48645a
48643f:	50                   	push   %eax
486440:	ff 75 fc             	push   -0x4(%ebp)
486443:	ff 75 20             	push   0x20(%ebp)
486446:	ff 75 18             	push   0x18(%ebp)
486449:	ff 75 14             	push   0x14(%ebp)
48644c:	ff 75 10             	push   0x10(%ebp)
48644f:	57                   	push   %edi
486450:	ff 75 08             	push   0x8(%ebp)
486453:	e8 91 fc ff ff       	call   0x4860e9
486458:	eb 33                	jmp    0x48648d
48645a:	ff 75 20             	push   0x20(%ebp)
48645d:	ff 75 18             	push   0x18(%ebp)
486460:	ff 75 14             	push   0x14(%ebp)
486463:	ff 75 10             	push   0x10(%ebp)
486466:	57                   	push   %edi
486467:	ff 75 08             	push   0x8(%ebp)
48646a:	e8 f6 fa ff ff       	call   0x485f65
48646f:	83 c4 20             	add    $0x20,%esp
486472:	eb 1c                	jmp    0x486490
486474:	50                   	push   %eax
486475:	ff 75 fc             	push   -0x4(%ebp)
486478:	ff 75 20             	push   0x20(%ebp)
48647b:	ff 75 18             	push   0x18(%ebp)
48647e:	ff 75 14             	push   0x14(%ebp)
486481:	ff 75 10             	push   0x10(%ebp)
486484:	57                   	push   %edi
486485:	ff 75 08             	push   0x8(%ebp)
486488:	e8 e1 f8 ff ff       	call   0x485d6e
48648d:	83 c4 28             	add    $0x28,%esp
486490:	5f                   	pop    %edi
486491:	5e                   	pop    %esi
486492:	5b                   	pop    %ebx
486493:	c9                   	leave
486494:	c3                   	ret
486495:	8b ff                	mov    %edi,%edi
486497:	55                   	push   %ebp
486498:	8b ec                	mov    %esp,%ebp
48649a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
48649d:	83 ec 0c             	sub    $0xc,%esp
4864a0:	8b 45 10             	mov    0x10(%ebp),%eax
4864a3:	53                   	push   %ebx
4864a4:	56                   	push   %esi
4864a5:	57                   	push   %edi
4864a6:	85 c9                	test   %ecx,%ecx
4864a8:	75 17                	jne    0x4864c1
4864aa:	85 c0                	test   %eax,%eax
4864ac:	74 13                	je     0x4864c1
4864ae:	8b 45 08             	mov    0x8(%ebp),%eax
4864b1:	85 c0                	test   %eax,%eax
4864b3:	0f 84 ff 00 00 00    	je     0x4865b8
4864b9:	83 20 00             	andl   $0x0,(%eax)
4864bc:	e9 f7 00 00 00       	jmp    0x4865b8
4864c1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4864c4:	85 db                	test   %ebx,%ebx
4864c6:	74 03                	je     0x4864cb
4864c8:	83 0b ff             	orl    $0xffffffff,(%ebx)
4864cb:	8b 75 18             	mov    0x18(%ebp),%esi
4864ce:	33 ff                	xor    %edi,%edi
4864d0:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
4864d5:	76 07                	jbe    0x4864de
4864d7:	6a 16                	push   $0x16
4864d9:	e9 04 01 00 00       	jmp    0x4865e2
4864de:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
4864e2:	75 0d                	jne    0x4864f1
4864e4:	8b ce                	mov    %esi,%ecx
4864e6:	e8 25 2c ff ff       	call   0x479110
4864eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4864ee:	8b 45 10             	mov    0x10(%ebp),%eax
4864f1:	8b 56 0c             	mov    0xc(%esi),%edx
4864f4:	8b 5a 08             	mov    0x8(%edx),%ebx
4864f7:	81 fb e9 fd 00 00    	cmp    $0xfde9,%ebx
4864fd:	89 5d f8             	mov    %ebx,-0x8(%ebp)
486500:	8b 5d 08             	mov    0x8(%ebp),%ebx
486503:	75 37                	jne    0x48653c
486505:	56                   	push   %esi
486506:	8d 45 f4             	lea    -0xc(%ebp),%eax
486509:	33 ff                	xor    %edi,%edi
48650b:	50                   	push   %eax
48650c:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
486510:	50                   	push   %eax
486511:	51                   	push   %ecx
486512:	89 7d f4             	mov    %edi,-0xc(%ebp)
486515:	89 7d f8             	mov    %edi,-0x8(%ebp)
486518:	e8 ed c6 00 00       	call   0x492c0a
48651d:	83 c4 10             	add    $0x10,%esp
486520:	85 db                	test   %ebx,%ebx
486522:	74 02                	je     0x486526
486524:	89 03                	mov    %eax,(%ebx)
486526:	83 f8 04             	cmp    $0x4,%eax
486529:	0f 8e 89 00 00 00    	jle    0x4865b8
48652f:	80 7e 1c 00          	cmpb   $0x0,0x1c(%esi)
486533:	74 03                	je     0x486538
486535:	8b 7e 18             	mov    0x18(%esi),%edi
486538:	8b c7                	mov    %edi,%eax
48653a:	eb 36                	jmp    0x486572
48653c:	39 ba a8 00 00 00    	cmp    %edi,0xa8(%edx)
486542:	75 49                	jne    0x48658d
486544:	66 8b 55 14          	mov    0x14(%ebp),%dx
486548:	c7 45 fc ff 00 00 00 	movl   $0xff,-0x4(%ebp)
48654f:	66 3b 55 fc          	cmp    -0x4(%ebp),%dx
486553:	76 22                	jbe    0x486577
486555:	85 c9                	test   %ecx,%ecx
486557:	74 0f                	je     0x486568
486559:	85 c0                	test   %eax,%eax
48655b:	74 0b                	je     0x486568
48655d:	50                   	push   %eax
48655e:	57                   	push   %edi
48655f:	51                   	push   %ecx
486560:	e8 4b 56 fe ff       	call   0x46bbb0
486565:	83 c4 0c             	add    $0xc,%esp
486568:	6a 2a                	push   $0x2a
48656a:	58                   	pop    %eax
48656b:	89 46 18             	mov    %eax,0x18(%esi)
48656e:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
486572:	5f                   	pop    %edi
486573:	5e                   	pop    %esi
486574:	5b                   	pop    %ebx
486575:	c9                   	leave
486576:	c3                   	ret
486577:	85 c9                	test   %ecx,%ecx
486579:	74 06                	je     0x486581
48657b:	85 c0                	test   %eax,%eax
48657d:	74 61                	je     0x4865e0
48657f:	88 11                	mov    %dl,(%ecx)
486581:	85 db                	test   %ebx,%ebx
486583:	74 33                	je     0x4865b8
486585:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
48658b:	eb 2b                	jmp    0x4865b8
48658d:	8d 55 fc             	lea    -0x4(%ebp),%edx
486590:	89 7d fc             	mov    %edi,-0x4(%ebp)
486593:	52                   	push   %edx
486594:	57                   	push   %edi
486595:	50                   	push   %eax
486596:	51                   	push   %ecx
486597:	6a 01                	push   $0x1
486599:	8d 45 14             	lea    0x14(%ebp),%eax
48659c:	50                   	push   %eax
48659d:	57                   	push   %edi
48659e:	ff 75 f8             	push   -0x8(%ebp)
4865a1:	e8 64 87 00 00       	call   0x48ed0a
4865a6:	83 c4 20             	add    $0x20,%esp
4865a9:	85 c0                	test   %eax,%eax
4865ab:	74 0f                	je     0x4865bc
4865ad:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4865b0:	75 b6                	jne    0x486568
4865b2:	85 db                	test   %ebx,%ebx
4865b4:	74 02                	je     0x4865b8
4865b6:	89 03                	mov    %eax,(%ebx)
4865b8:	33 c0                	xor    %eax,%eax
4865ba:	eb b6                	jmp    0x486572
4865bc:	ff 15 30 e1 49 00    	call   *0x49e130
4865c2:	83 f8 7a             	cmp    $0x7a,%eax
4865c5:	75 a1                	jne    0x486568
4865c7:	8b 45 0c             	mov    0xc(%ebp),%eax
4865ca:	85 c0                	test   %eax,%eax
4865cc:	74 12                	je     0x4865e0
4865ce:	39 7d 10             	cmp    %edi,0x10(%ebp)
4865d1:	76 0d                	jbe    0x4865e0
4865d3:	ff 75 10             	push   0x10(%ebp)
4865d6:	57                   	push   %edi
4865d7:	50                   	push   %eax
4865d8:	e8 d3 55 fe ff       	call   0x46bbb0
4865dd:	83 c4 0c             	add    $0xc,%esp
4865e0:	6a 22                	push   $0x22
4865e2:	5b                   	pop    %ebx
4865e3:	56                   	push   %esi
4865e4:	57                   	push   %edi
4865e5:	57                   	push   %edi
4865e6:	57                   	push   %edi
4865e7:	57                   	push   %edi
4865e8:	89 5e 18             	mov    %ebx,0x18(%esi)
4865eb:	57                   	push   %edi
4865ec:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
4865f0:	e8 af 2f ff ff       	call   0x4795a4