40921d:	85 c9                	test   %ecx,%ecx
40921f:	74 14                	je     0x409235
409221:	0f b7 0c 02          	movzwl (%edx,%eax,1),%ecx
409225:	66 89 08             	mov    %cx,(%eax)
409228:	83 c0 02             	add    $0x2,%eax
40922b:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
409231:	77 e6                	ja     0x409219
409233:	58                   	pop    %eax
409234:	c3                   	ret
409235:	88 08                	mov    %cl,(%eax)
409237:	58                   	pop    %eax
409238:	c3                   	ret
409239:	8d 40 00             	lea    0x0(%eax),%eax
40923c:	57                   	push   %edi
40923d:	56                   	push   %esi
40923e:	53                   	push   %ebx
40923f:	89 c6                	mov    %eax,%esi
409241:	89 d7                	mov    %edx,%edi
409243:	89 cb                	mov    %ecx,%ebx
409245:	32 c0                	xor    %al,%al
409247:	85 c9                	test   %ecx,%ecx
409249:	74 05                	je     0x409250
40924b:	f2 ae                	repnz scas %es:(%edi),%al
40924d:	75 01                	jne    0x409250
40924f:	41                   	inc    %ecx
409250:	29 cb                	sub    %ecx,%ebx
409252:	89 f7                	mov    %esi,%edi
409254:	89 d6                	mov    %edx,%esi
409256:	89 fa                	mov    %edi,%edx
409258:	89 d9                	mov    %ebx,%ecx
40925a:	c1 e9 02             	shr    $0x2,%ecx
40925d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40925f:	89 d9                	mov    %ebx,%ecx
409261:	83 e1 03             	and    $0x3,%ecx
409264:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409266:	aa                   	stos   %al,%es:(%edi)
409267:	89 d0                	mov    %edx,%eax
409269:	5b                   	pop    %ebx
40926a:	5e                   	pop    %esi
40926b:	5f                   	pop    %edi
40926c:	c3                   	ret
40926d:	8d 40 00             	lea    0x0(%eax),%eax
409270:	53                   	push   %ebx
409271:	56                   	push   %esi
409272:	57                   	push   %edi
409273:	8b f2                	mov    %edx,%esi
409275:	8b f8                	mov    %eax,%edi
409277:	8b de                	mov    %esi,%ebx
409279:	85 db                	test   %ebx,%ebx
40927b:	74 05                	je     0x409282
40927d:	83 eb 04             	sub    $0x4,%ebx
409280:	8b 1b                	mov    (%ebx),%ebx
409282:	8b c6                	mov    %esi,%eax
409284:	e8 5b b9 ff ff       	call   0x404be4
409289:	8b d0                	mov    %eax,%edx
40928b:	8b cb                	mov    %ebx,%ecx
40928d:	8b c7                	mov    %edi,%eax
40928f:	e8 a8 ff ff ff       	call   0x40923c
409294:	5f                   	pop    %edi
409295:	5e                   	pop    %esi
409296:	5b                   	pop    %ebx
409297:	c3                   	ret
409298:	53                   	push   %ebx
409299:	56                   	push   %esi
40929a:	57                   	push   %edi
40929b:	8b f9                	mov    %ecx,%edi
40929d:	8b f2                	mov    %edx,%esi
40929f:	8b d8                	mov    %eax,%ebx
4092a1:	8b c6                	mov    %esi,%eax
4092a3:	e8 3c b9 ff ff       	call   0x404be4
4092a8:	8b d0                	mov    %eax,%edx
4092aa:	8b cf                	mov    %edi,%ecx
4092ac:	8b c3                	mov    %ebx,%eax
4092ae:	e8 89 ff ff ff       	call   0x40923c
4092b3:	5f                   	pop    %edi
4092b4:	5e                   	pop    %esi
4092b5:	5b                   	pop    %ebx
4092b6:	c3                   	ret
4092b7:	90                   	nop
4092b8:	29 c2                	sub    %eax,%edx
4092ba:	75 03                	jne    0x4092bf
4092bc:	31 c0                	xor    %eax,%eax
4092be:	c3                   	ret
4092bf:	0f b6 0c 02          	movzbl (%edx,%eax,1),%ecx
4092c3:	3a 08                	cmp    (%eax),%cl
4092c5:	75 76                	jne    0x40933d
4092c7:	84 c9                	test   %cl,%cl
4092c9:	74 72                	je     0x40933d
4092cb:	0f b6 4c 02 01       	movzbl 0x1(%edx,%eax,1),%ecx
4092d0:	3a 48 01             	cmp    0x1(%eax),%cl
4092d3:	75 65                	jne    0x40933a
4092d5:	84 c9                	test   %cl,%cl
4092d7:	74 61                	je     0x40933a
4092d9:	0f b6 4c 02 02       	movzbl 0x2(%edx,%eax,1),%ecx
4092de:	3a 48 02             	cmp    0x2(%eax),%cl
4092e1:	75 54                	jne    0x409337
4092e3:	84 c9                	test   %cl,%cl
4092e5:	74 50                	je     0x409337
4092e7:	0f b6 4c 02 03       	movzbl 0x3(%edx,%eax,1),%ecx
4092ec:	3a 48 03             	cmp    0x3(%eax),%cl
4092ef:	75 43                	jne    0x409334
4092f1:	83 c0 04             	add    $0x4,%eax
4092f4:	84 c9                	test   %cl,%cl
4092f6:	74 39                	je     0x409331
4092f8:	0f b6 0c 02          	movzbl (%edx,%eax,1),%ecx
4092fc:	3a 08                	cmp    (%eax),%cl
4092fe:	75 3d                	jne    0x40933d
409300:	84 c9                	test   %cl,%cl
409302:	74 39                	je     0x40933d
409304:	0f b6 4c 02 01       	movzbl 0x1(%edx,%eax,1),%ecx
409309:	3a 48 01             	cmp    0x1(%eax),%cl
40930c:	75 2c                	jne    0x40933a
40930e:	84 c9                	test   %cl,%cl
409310:	74 28                	je     0x40933a
409312:	0f b6 4c 02 02       	movzbl 0x2(%edx,%eax,1),%ecx
409317:	3a 48 02             	cmp    0x2(%eax),%cl
40931a:	75 1b                	jne    0x409337
40931c:	84 c9                	test   %cl,%cl
40931e:	74 17                	je     0x409337
409320:	0f b6 4c 02 03       	movzbl 0x3(%edx,%eax,1),%ecx
409325:	3a 48 03             	cmp    0x3(%eax),%cl
409328:	75 0a                	jne    0x409334
40932a:	83 c0 04             	add    $0x4,%eax
40932d:	84 c9                	test   %cl,%cl
40932f:	75 8e                	jne    0x4092bf
409331:	83 e8 04             	sub    $0x4,%eax
409334:	83 c0 01             	add    $0x1,%eax
409337:	83 c0 01             	add    $0x1,%eax
40933a:	83 c0 01             	add    $0x1,%eax
40933d:	0f b6 00             	movzbl (%eax),%eax
409340:	29 c8                	sub    %ecx,%eax
409342:	c3                   	ret
409343:	90                   	nop
409344:	57                   	push   %edi
409345:	56                   	push   %esi
409346:	53                   	push   %ebx
409347:	89 d7                	mov    %edx,%edi
409349:	89 c6                	mov    %eax,%esi
40934b:	89 cb                	mov    %ecx,%ebx
40934d:	31 c0                	xor    %eax,%eax
40934f:	09 c9                	or     %ecx,%ecx
409351:	74 2f                	je     0x409382
409353:	f2 ae                	repnz scas %es:(%edi),%al
409355:	29 cb                	sub    %ecx,%ebx
409357:	89 d9                	mov    %ebx,%ecx
409359:	89 d7                	mov    %edx,%edi
40935b:	31 d2                	xor    %edx,%edx
40935d:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
40935f:	74 21                	je     0x409382
409361:	8a 46 ff             	mov    -0x1(%esi),%al
409364:	3c 61                	cmp    $0x61,%al
409366:	72 06                	jb     0x40936e
409368:	3c 7a                	cmp    $0x7a,%al
40936a:	77 02                	ja     0x40936e
40936c:	2c 20                	sub    $0x20,%al
40936e:	8a 57 ff             	mov    -0x1(%edi),%dl
409371:	80 fa 61             	cmp    $0x61,%dl
409374:	72 08                	jb     0x40937e
409376:	80 fa 7a             	cmp    $0x7a,%dl
409379:	77 03                	ja     0x40937e
40937b:	80 ea 20             	sub    $0x20,%dl
40937e:	29 d0                	sub    %edx,%eax
409380:	74 db                	je     0x40935d
409382:	5b                   	pop    %ebx
409383:	5e                   	pop    %esi
409384:	5f                   	pop    %edi
409385:	c3                   	ret
409386:	8b c0                	mov    %eax,%eax
409388:	eb 08                	jmp    0x409392
40938a:	84 c9                	test   %cl,%cl
40938c:	75 03                	jne    0x409391
40938e:	33 c0                	xor    %eax,%eax
409390:	c3                   	ret
409391:	40                   	inc    %eax
409392:	0f b6 08             	movzbl (%eax),%ecx
409395:	3a d1                	cmp    %cl,%dl
409397:	75 f1                	jne    0x40938a
409399:	c3                   	ret
40939a:	8b c0                	mov    %eax,%eax
40939c:	57                   	push   %edi
40939d:	56                   	push   %esi
40939e:	53                   	push   %ebx
40939f:	09 c0                	or     %eax,%eax
4093a1:	74 44                	je     0x4093e7
4093a3:	09 d2                	or     %edx,%edx
4093a5:	74 40                	je     0x4093e7
4093a7:	89 c3                	mov    %eax,%ebx
4093a9:	89 d7                	mov    %edx,%edi
4093ab:	32 c0                	xor    %al,%al
4093ad:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4093b2:	f2 ae                	repnz scas %es:(%edi),%al
4093b4:	f7 d1                	not    %ecx
4093b6:	49                   	dec    %ecx
4093b7:	74 2e                	je     0x4093e7
4093b9:	89 ce                	mov    %ecx,%esi
4093bb:	89 df                	mov    %ebx,%edi
4093bd:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4093c2:	f2 ae                	repnz scas %es:(%edi),%al
4093c4:	f7 d1                	not    %ecx
4093c6:	29 f1                	sub    %esi,%ecx
4093c8:	76 1d                	jbe    0x4093e7
4093ca:	89 df                	mov    %ebx,%edi
4093cc:	8d 5e ff             	lea    -0x1(%esi),%ebx
4093cf:	89 d6                	mov    %edx,%esi
4093d1:	ac                   	lods   %ds:(%esi),%al
4093d2:	f2 ae                	repnz scas %es:(%edi),%al
4093d4:	75 11                	jne    0x4093e7
4093d6:	89 c8                	mov    %ecx,%eax
4093d8:	57                   	push   %edi
4093d9:	89 d9                	mov    %ebx,%ecx
4093db:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4093dd:	5f                   	pop    %edi
4093de:	89 c1                	mov    %eax,%ecx
4093e0:	75 ed                	jne    0x4093cf
4093e2:	8d 47 ff             	lea    -0x1(%edi),%eax
4093e5:	eb 02                	jmp    0x4093e9
4093e7:	31 c0                	xor    %eax,%eax
4093e9:	5b                   	pop    %ebx
4093ea:	5e                   	pop    %esi
4093eb:	5f                   	pop    %edi
4093ec:	c3                   	ret
4093ed:	8d 40 00             	lea    0x0(%eax),%eax
4093f0:	53                   	push   %ebx
4093f1:	8b d8                	mov    %eax,%ebx
4093f3:	83 c3 04             	add    $0x4,%ebx
4093f6:	8b c3                	mov    %ebx,%eax
4093f8:	e8 ef 98 ff ff       	call   0x402cec
4093fd:	89 18                	mov    %ebx,(%eax)
4093ff:	83 c0 04             	add    $0x4,%eax
409402:	5b                   	pop    %ebx
409403:	c3                   	ret
409404:	83 e8 04             	sub    $0x4,%eax
409407:	8b 00                	mov    (%eax),%eax
409409:	83 e8 04             	sub    $0x4,%eax
40940c:	c3                   	ret
40940d:	8d 40 00             	lea    0x0(%eax),%eax
409410:	53                   	push   %ebx
409411:	56                   	push   %esi
409412:	8b d8                	mov    %eax,%ebx
409414:	85 db                	test   %ebx,%ebx
409416:	75 05                	jne    0x40941d
409418:	33 c0                	xor    %eax,%eax
40941a:	5e                   	pop    %esi
40941b:	5b                   	pop    %ebx
40941c:	c3                   	ret
40941d:	8b c3                	mov    %ebx,%eax
40941f:	e8 a4 fd ff ff       	call   0x4091c8
409424:	8b f0                	mov    %eax,%esi
409426:	46                   	inc    %esi
409427:	8b c6                	mov    %esi,%eax
409429:	e8 c2 ff ff ff       	call   0x4093f0
40942e:	8b ce                	mov    %esi,%ecx
409430:	8b d3                	mov    %ebx,%edx
409432:	e8 bd fd ff ff       	call   0x4091f4
409437:	5e                   	pop    %esi
409438:	5b                   	pop    %ebx
409439:	c3                   	ret
40943a:	8b c0                	mov    %eax,%eax
40943c:	85 c0                	test   %eax,%eax
40943e:	74 0a                	je     0x40944a
409440:	83 e8 04             	sub    $0x4,%eax
409443:	8b 10                	mov    (%eax),%edx
409445:	e8 be 98 ff ff       	call   0x402d08
40944a:	c3                   	ret
40944b:	90                   	nop
40944c:	53                   	push   %ebx
40944d:	56                   	push   %esi
40944e:	57                   	push   %edi
40944f:	83 c4 d8             	add    $0xffffffd8,%esp
409452:	8b d9                	mov    %ecx,%ebx
409454:	8b f2                	mov    %edx,%esi
409456:	8b f8                	mov    %eax,%edi
409458:	83 fb 1f             	cmp    $0x1f,%ebx
40945b:	76 05                	jbe    0x409462
40945d:	bb 1f 00 00 00       	mov    $0x1f,%ebx
409462:	8b d3                	mov    %ebx,%edx
409464:	4a                   	dec    %edx
409465:	8b c6                	mov    %esi,%eax
409467:	e8 e4 37 00 00       	call   0x40cc50
40946c:	3c 01                	cmp    $0x1,%al
40946e:	75 01                	jne    0x409471
409470:	4b                   	dec    %ebx
409471:	8b c4                	mov    %esp,%eax
409473:	8b cb                	mov    %ebx,%ecx
409475:	8b d6                	mov    %esi,%edx
409477:	e8 78 fd ff ff       	call   0x4091f4
40947c:	c6 04 1c 00          	movb   $0x0,(%esp,%ebx,1)
409480:	8b c4                	mov    %esp,%eax
409482:	89 44 24 20          	mov    %eax,0x20(%esp)
409486:	c6 44 24 24 06       	movb   $0x6,0x24(%esp)
40948b:	8d 54 24 20          	lea    0x20(%esp),%edx
40948f:	8b 04 bd 60 08 46 00 	mov    0x460860(,%edi,4),%eax
409496:	33 c9                	xor    %ecx,%ecx
409498:	e8 5b f1 ff ff       	call   0x4085f8
40949d:	83 c4 28             	add    $0x28,%esp
4094a0:	5f                   	pop    %edi
4094a1:	5e                   	pop    %esi
4094a2:	5b                   	pop    %ebx
4094a3:	c3                   	ret
4094a4:	53                   	push   %ebx
4094a5:	8b 0d c8 d7 46 00    	mov    0x46d7c8,%ecx
4094ab:	83 39 00             	cmpl   $0x0,(%ecx)
4094ae:	74 0c                	je     0x4094bc
4094b0:	8b 1d c8 d7 46 00    	mov    0x46d7c8,%ebx
4094b6:	8b 1b                	mov    (%ebx),%ebx
4094b8:	ff d3                	call   *%ebx
4094ba:	5b                   	pop    %ebx
4094bb:	c3                   	ret
4094bc:	b0 10                	mov    $0x10,%al
4094be:	e8 79 99 ff ff       	call   0x402e3c
4094c3:	5b                   	pop    %ebx
4094c4:	c3                   	ret
4094c5:	8d 40 00             	lea    0x0(%eax),%eax
4094c8:	53                   	push   %ebx
4094c9:	8b d8                	mov    %eax,%ebx
4094cb:	8b c3                	mov    %ebx,%eax
4094cd:	e8 4e b2 ff ff       	call   0x404720
4094d2:	5b                   	pop    %ebx
4094d3:	c3                   	ret
4094d4:	55                   	push   %ebp
4094d5:	8b ec                	mov    %esp,%ebp
4094d7:	83 c4 94             	add    $0xffffff94,%esp
4094da:	53                   	push   %ebx
4094db:	33 db                	xor    %ebx,%ebx
4094dd:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4094e0:	53                   	push   %ebx
4094e1:	56                   	push   %esi
4094e2:	57                   	push   %edi
4094e3:	89 c7                	mov    %eax,%edi
4094e5:	89 ce                	mov    %ecx,%esi
4094e7:	31 c0                	xor    %eax,%eax
4094e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4094ec:	03 4d 10             	add    0x10(%ebp),%ecx
4094ef:	89 7d f8             	mov    %edi,-0x8(%ebp)
4094f2:	31 c0                	xor    %eax,%eax
4094f4:	89 45 f4             	mov    %eax,-0xc(%ebp)
4094f7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4094fa:	89 45 ec             	mov    %eax,-0x14(%ebp)
4094fd:	09 d2                	or     %edx,%edx
4094ff:	74 0d                	je     0x40950e
409501:	39 ce                	cmp    %ecx,%esi
409503:	74 09                	je     0x40950e
409505:	ac                   	lods   %ds:(%esi),%al
409506:	3c 25                	cmp    $0x25,%al
409508:	74 0e                	je     0x409518
40950a:	aa                   	stos   %al,%es:(%edi)
40950b:	4a                   	dec    %edx
40950c:	75 f3                	jne    0x409501
40950e:	89 f8                	mov    %edi,%eax
409510:	2b 45 f8             	sub    -0x8(%ebp),%eax