4092ca:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
4092ce:	85 f6                	test   %esi,%esi
4092d0:	77 db                	ja     0x4092ad
4092d2:	85 ff                	test   %edi,%edi
4092d4:	76 0f                	jbe    0x4092e5
4092d6:	8b 45 08             	mov    0x8(%ebp),%eax
4092d9:	8b 40 e8             	mov    -0x18(%eax),%eax
4092dc:	b1 01                	mov    $0x1,%cl
4092de:	8b d7                	mov    %edi,%edx
4092e0:	e8 6b d8 ff ff       	call   0x406b50
4092e5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4092e9:	74 0f                	je     0x4092fa
4092eb:	8b 45 08             	mov    0x8(%ebp),%eax
4092ee:	8b 40 e8             	mov    -0x18(%eax),%eax
4092f1:	e8 5e d7 ff ff       	call   0x406a54
4092f6:	85 c0                	test   %eax,%eax
4092f8:	77 08                	ja     0x409302
4092fa:	8b 43 45             	mov    0x45(%ebx),%eax
4092fd:	89 45 f8             	mov    %eax,-0x8(%ebp)
409300:	eb 25                	jmp    0x409327
409302:	8b 45 08             	mov    0x8(%ebp),%eax
409305:	8b 40 e8             	mov    -0x18(%eax),%eax
409308:	e8 47 d7 ff ff       	call   0x406a54
40930d:	50                   	push   %eax
40930e:	8b 45 08             	mov    0x8(%ebp),%eax
409311:	8b 40 e8             	mov    -0x18(%eax),%eax
409314:	e8 27 d7 ff ff       	call   0x406a40
409319:	5a                   	pop    %edx
40931a:	2b d0                	sub    %eax,%edx
40931c:	8b 43 45             	mov    0x45(%ebx),%eax
40931f:	e8 84 bd ff ff       	call   0x4050a8
409324:	89 45 f8             	mov    %eax,-0x8(%ebp)
409327:	8b 53 45             	mov    0x45(%ebx),%edx
40932a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40932d:	e8 76 bd ff ff       	call   0x4050a8
409332:	8b f0                	mov    %eax,%esi
409334:	8b 7b 45             	mov    0x45(%ebx),%edi
409337:	3b f7                	cmp    %edi,%esi
409339:	7d 26                	jge    0x409361
40933b:	8b 45 08             	mov    0x8(%ebp),%eax
40933e:	8b 40 e8             	mov    -0x18(%eax),%eax
409341:	e8 fa d6 ff ff       	call   0x406a40
409346:	2b fe                	sub    %esi,%edi
409348:	3b c7                	cmp    %edi,%eax
40934a:	72 15                	jb     0x409361
40934c:	8b d6                	mov    %esi,%edx
40934e:	2b 53 45             	sub    0x45(%ebx),%edx
409351:	8b 45 08             	mov    0x8(%ebp),%eax
409354:	8b 40 e8             	mov    -0x18(%eax),%eax
409357:	b1 01                	mov    $0x1,%cl
409359:	e8 f2 d7 ff ff       	call   0x406b50
40935e:	8b 73 45             	mov    0x45(%ebx),%esi
409361:	8b 43 45             	mov    0x45(%ebx),%eax
409364:	3b f0                	cmp    %eax,%esi
409366:	7e 02                	jle    0x40936a
409368:	8b f0                	mov    %eax,%esi
40936a:	8b 53 41             	mov    0x41(%ebx),%edx
40936d:	8b 45 08             	mov    0x8(%ebp),%eax
409370:	8b 40 e8             	mov    -0x18(%eax),%eax
409373:	8b ce                	mov    %esi,%ecx
409375:	e8 e6 d6 ff ff       	call   0x406a60
40937a:	3b c6                	cmp    %esi,%eax
40937c:	75 1b                	jne    0x409399
40937e:	3b 75 f8             	cmp    -0x8(%ebp),%esi
409381:	7d 12                	jge    0x409395
409383:	8b 55 f8             	mov    -0x8(%ebp),%edx
409386:	2b d6                	sub    %esi,%edx
409388:	8b 45 08             	mov    0x8(%ebp),%eax
40938b:	8b 40 e8             	mov    -0x18(%eax),%eax
40938e:	b1 01                	mov    $0x1,%cl
409390:	e8 bb d7 ff ff       	call   0x406b50
409395:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
409399:	8a 45 ff             	mov    -0x1(%ebp),%al
40939c:	5f                   	pop    %edi
40939d:	5e                   	pop    %esi
40939e:	5b                   	pop    %ebx
40939f:	8b e5                	mov    %ebp,%esp
4093a1:	5d                   	pop    %ebp
4093a2:	c3                   	ret
4093a3:	90                   	nop
4093a4:	55                   	push   %ebp
4093a5:	8b ec                	mov    %esp,%ebp
4093a7:	83 c4 e4             	add    $0xffffffe4,%esp
4093aa:	89 55 e8             	mov    %edx,-0x18(%ebp)
4093ad:	89 45 ec             	mov    %eax,-0x14(%ebp)
4093b0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4093b3:	e8 e8 33 00 00       	call   0x40c7a0
4093b8:	8b 45 e8             	mov    -0x18(%ebp),%eax
4093bb:	e8 80 d6 ff ff       	call   0x406a40
4093c0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4093c3:	55                   	push   %ebp
4093c4:	e8 c7 fc ff ff       	call   0x409090
4093c9:	59                   	pop    %ecx
4093ca:	84 c0                	test   %al,%al
4093cc:	75 15                	jne    0x4093e3
4093ce:	8b 45 e8             	mov    -0x18(%ebp),%eax
4093d1:	33 c9                	xor    %ecx,%ecx
4093d3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4093d6:	e8 75 d7 ff ff       	call   0x406b50
4093db:	8b 45 ec             	mov    -0x14(%ebp),%eax
4093de:	e8 bd 33 00 00       	call   0x40c7a0
4093e3:	8b e5                	mov    %ebp,%esp
4093e5:	5d                   	pop    %ebp
4093e6:	c3                   	ret
4093e7:	90                   	nop
4093e8:	53                   	push   %ebx
4093e9:	56                   	push   %esi
4093ea:	89 c3                	mov    %eax,%ebx
4093ec:	89 d6                	mov    %edx,%esi
4093ee:	e8 6d 37 00 00       	call   0x40cb60
4093f3:	0f 84 8c 00 00 00    	je     0x409485
4093f9:	89 f0                	mov    %esi,%eax
4093fb:	e8 40 d6 ff ff       	call   0x406a40
409400:	50                   	push   %eax
409401:	89 d8                	mov    %ebx,%eax
409403:	31 d2                	xor    %edx,%edx
409405:	e8 ae 00 00 00       	call   0x4094b8
40940a:	31 c0                	xor    %eax,%eax
40940c:	8b 53 3d             	mov    0x3d(%ebx),%edx
40940f:	0f b7 4a 0e          	movzwl 0xe(%edx),%ecx
409413:	80 f9 08             	cmp    $0x8,%cl
409416:	7f 04                	jg     0x40941c
409418:	b0 04                	mov    $0x4,%al
40941a:	d3 e0                	shl    %cl,%eax
40941c:	50                   	push   %eax
40941d:	8d 48 36             	lea    0x36(%eax),%ecx
409420:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
409424:	74 03                	je     0x409429
409426:	83 c1 4a             	add    $0x4a,%ecx
409429:	51                   	push   %ecx
40942a:	6a 00                	push   $0x0
40942c:	03 4b 45             	add    0x45(%ebx),%ecx
40942f:	51                   	push   %ecx
409430:	66 b9 42 4d          	mov    $0x4d42,%cx
409434:	66 51                	push   %cx
409436:	31 c9                	xor    %ecx,%ecx
409438:	89 e2                	mov    %esp,%edx
40943a:	b1 0e                	mov    $0xe,%cl
40943c:	51                   	push   %ecx
40943d:	89 f0                	mov    %esi,%eax
40943f:	e8 20 d6 ff ff       	call   0x406a64
409444:	59                   	pop    %ecx
409445:	83 c4 0e             	add    $0xe,%esp
409448:	31 c8                	xor    %ecx,%eax
40944a:	59                   	pop    %ecx
40944b:	75 2d                	jne    0x40947a
40944d:	8b 53 3d             	mov    0x3d(%ebx),%edx
409450:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
409454:	74 03                	je     0x409459
409456:	83 c1 4a             	add    $0x4a,%ecx
409459:	83 c1 28             	add    $0x28,%ecx
40945c:	51                   	push   %ecx
40945d:	89 f0                	mov    %esi,%eax
40945f:	e8 00 d6 ff ff       	call   0x406a64
409464:	59                   	pop    %ecx
409465:	31 c8                	xor    %ecx,%eax
409467:	75 11                	jne    0x40947a
409469:	8b 4b 45             	mov    0x45(%ebx),%ecx
40946c:	8b 53 41             	mov    0x41(%ebx),%edx
40946f:	89 f0                	mov    %esi,%eax
409471:	51                   	push   %ecx
409472:	e8 ed d5 ff ff       	call   0x406a64
409477:	59                   	pop    %ecx
409478:	31 c8                	xor    %ecx,%eax
40947a:	5a                   	pop    %edx
40947b:	74 08                	je     0x409485
40947d:	96                   	xchg   %eax,%esi
40947e:	31 c9                	xor    %ecx,%ecx
409480:	e8 cb d6 ff ff       	call   0x406b50
409485:	5e                   	pop    %esi
409486:	5b                   	pop    %ebx
409487:	c3                   	ret
409488:	53                   	push   %ebx
409489:	56                   	push   %esi
40948a:	57                   	push   %edi
40948b:	8b f9                	mov    %ecx,%edi
40948d:	8b f2                	mov    %edx,%esi
40948f:	8b d8                	mov    %eax,%ebx
409491:	83 7b 41 00          	cmpl   $0x0,0x41(%ebx)
409495:	74 1d                	je     0x4094b4
409497:	8b c3                	mov    %ebx,%eax
409499:	e8 be 39 00 00       	call   0x40ce5c
40949e:	8b c7                	mov    %edi,%eax
4094a0:	e8 bf 0f 00 00       	call   0x40a464
4094a5:	8b 53 3d             	mov    0x3d(%ebx),%edx
4094a8:	83 c2 28             	add    $0x28,%edx
4094ab:	8b ce                	mov    %esi,%ecx
4094ad:	c1 e1 02             	shl    $0x2,%ecx
4094b0:	03 d1                	add    %ecx,%edx
4094b2:	89 02                	mov    %eax,(%edx)
4094b4:	5f                   	pop    %edi
4094b5:	5e                   	pop    %esi
4094b6:	5b                   	pop    %ebx
4094b7:	c3                   	ret
4094b8:	3a 50 3c             	cmp    0x3c(%eax),%dl
4094bb:	74 08                	je     0x4094c5
4094bd:	88 50 3c             	mov    %dl,0x3c(%eax)
4094c0:	e8 4f 37 00 00       	call   0x40cc14
4094c5:	c3                   	ret
4094c6:	8b c0                	mov    %eax,%eax
4094c8:	53                   	push   %ebx
4094c9:	8b d8                	mov    %eax,%ebx
4094cb:	80 7b 3c 01          	cmpb   $0x1,0x3c(%ebx)
4094cf:	74 06                	je     0x4094d7
4094d1:	83 7b 41 00          	cmpl   $0x0,0x41(%ebx)
4094d5:	75 04                	jne    0x4094db
4094d7:	33 c0                	xor    %eax,%eax
4094d9:	5b                   	pop    %ebx
4094da:	c3                   	ret
4094db:	8b 43 3d             	mov    0x3d(%ebx),%eax
4094de:	0f b7 40 0e          	movzwl 0xe(%eax),%eax
4094e2:	e8 81 31 00 00       	call   0x40c668
4094e7:	8b 53 3d             	mov    0x3d(%ebx),%edx
4094ea:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
4094ee:	74 54                	je     0x409544
4094f0:	8b 43 3d             	mov    0x3d(%ebx),%eax
4094f3:	81 78 28 00 f8 00 00 	cmpl   $0xf800,0x28(%eax)
4094fa:	75 1d                	jne    0x409519
4094fc:	8d 50 28             	lea    0x28(%eax),%edx
4094ff:	83 c2 04             	add    $0x4,%edx
409502:	81 3a e0 07 00 00    	cmpl   $0x7e0,(%edx)
409508:	75 0f                	jne    0x409519
40950a:	83 c0 28             	add    $0x28,%eax
40950d:	83 c0 08             	add    $0x8,%eax
409510:	83 38 1f             	cmpl   $0x1f,(%eax)
409513:	75 04                	jne    0x409519
409515:	b0 05                	mov    $0x5,%al
409517:	eb 2b                	jmp    0x409544
409519:	8b 43 3d             	mov    0x3d(%ebx),%eax
40951c:	81 78 28 00 7c 00 00 	cmpl   $0x7c00,0x28(%eax)
409523:	75 1d                	jne    0x409542
409525:	8d 50 28             	lea    0x28(%eax),%edx
409528:	83 c2 04             	add    $0x4,%edx
40952b:	81 3a e0 03 00 00    	cmpl   $0x3e0,(%edx)
409531:	75 0f                	jne    0x409542
409533:	83 c0 28             	add    $0x28,%eax
409536:	83 c0 08             	add    $0x8,%eax
409539:	83 38 1f             	cmpl   $0x1f,(%eax)
40953c:	75 04                	jne    0x409542
40953e:	b0 04                	mov    $0x4,%al
409540:	eb 02                	jmp    0x409544
409542:	b0 08                	mov    $0x8,%al
409544:	5b                   	pop    %ebx
409545:	c3                   	ret
409546:	8b c0                	mov    %eax,%eax
409548:	85 c0                	test   %eax,%eax
40954a:	74 2f                	je     0x40957b
40954c:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
409550:	0f 94 c2             	sete   %dl
409553:	f6 40 36 02          	testb  $0x2,0x36(%eax)
409557:	0f 95 c6             	setne  %dh
40955a:	08 f2                	or     %dh,%dl
40955c:	0f ba b0 3b 01 00 00 	btrl   $0x1,0x13b(%eax)
409563:	01
409564:	77 0a                	ja     0x409570
409566:	80 88 3b 01 00 00 01 	orb    $0x1,0x13b(%eax)
40956d:	8b 40 30             	mov    0x30(%eax),%eax
409570:	85 c0                	test   %eax,%eax
409572:	74 07                	je     0x40957b
409574:	e8 03 00 00 00       	call   0x40957c
409579:	75 44                	jne    0x4095bf
40957b:	c3                   	ret
40957c:	f6 40 27 10          	testb  $0x10,0x27(%eax)
409580:	0f 95 c2             	setne  %dl
409583:	f6 40 36 02          	testb  $0x2,0x36(%eax)
409587:	0f 95 c6             	setne  %dh
40958a:	08 f2                	or     %dh,%dl
40958c:	f6 40 37 01          	testb  $0x1,0x37(%eax)
409590:	0f 95 c6             	setne  %dh
409593:	08 f2                	or     %dh,%dl
409595:	74 1b                	je     0x4095b2
409597:	f6 40 36 02          	testb  $0x2,0x36(%eax)
40959b:	0f 95 c6             	setne  %dh
40959e:	20 f2                	and    %dh,%dl
4095a0:	75 1c                	jne    0x4095be
4095a2:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
4095a6:	74 13                	je     0x4095bb
4095a8:	50                   	push   %eax
4095a9:	8b 40 30             	mov    0x30(%eax),%eax
4095ac:	e8 cb ff ff ff       	call   0x40957c
4095b1:	58                   	pop    %eax
4095b2:	80 f2 01             	xor    $0x1,%dl
4095b5:	08 90 3b 01 00 00    	or     %dl,0x13b(%eax)
4095bb:	80 f2 01             	xor    $0x1,%dl
4095be:	c3                   	ret
4095bf:	55                   	push   %ebp
4095c0:	53                   	push   %ebx
4095c1:	56                   	push   %esi
4095c2:	57                   	push   %edi
4095c3:	68 14 0a 21 00       	push   $0x210a14
4095c8:	83 ec 30             	sub    $0x30,%esp
4095cb:	89 c3                	mov    %eax,%ebx
4095cd:	80 a3 3b 01 00 00 fe 	andb   $0xfe,0x13b(%ebx)
4095d4:	80 8b 3b 01 00 00 04 	orb    $0x4,0x13b(%ebx)
4095db:	8d 54 24 20          	lea    0x20(%esp),%edx
4095df:	e8 3c 24 00 00       	call   0x40ba20
4095e4:	8b 43 44             	mov    0x44(%ebx),%eax
4095e7:	8b 78 1c             	mov    0x1c(%eax),%edi
4095ea:	8b 68 18             	mov    0x18(%eax),%ebp
4095ed:	e9 a4 01 00 00       	jmp    0x409796
4095f2:	8b 75 00             	mov    0x0(%ebp),%esi
4095f5:	8a 46 27             	mov    0x27(%esi),%al
4095f8:	c0 e8 04             	shr    $0x4,%al
4095fb:	0a 46 37             	or     0x37(%esi),%al
4095fe:	24 01                	and    $0x1,%al
409600:	0f 84 84 01 00 00    	je     0x40978a
409606:	0f b6 86 3a 01 00 00 	movzbl 0x13a(%esi),%eax
40960d:	0f a3 44 24 30       	bt     %eax,0x30(%esp)
409612:	0f 83 72 01 00 00    	jae    0x40978a
409618:	f6 46 37 04          	testb  $0x4,0x37(%esi)
40961c:	0f 85 58 01 00 00    	jne    0x40977a
409622:	89 e2                	mov    %esp,%edx
409624:	89 f0                	mov    %esi,%eax
409626:	e8 d1 22 00 00       	call   0x40b8fc
40962b:	8b 44 24 0c          	mov    0xc(%esp),%eax
40962f:	89 44 24 1c          	mov    %eax,0x1c(%esp)
409633:	8b 44 24 08          	mov    0x8(%esp),%eax
409637:	89 44 24 18          	mov    %eax,0x18(%esp)
40963b:	8b 44 24 04          	mov    0x4(%esp),%eax
40963f:	89 44 24 14          	mov    %eax,0x14(%esp)
409643:	29 44 24 1c          	sub    %eax,0x1c(%esp)
409647:	8b 04 24             	mov    (%esp),%eax
40964a:	89 44 24 10          	mov    %eax,0x10(%esp)
40964e:	29 44 24 18          	sub    %eax,0x18(%esp)
409652:	0f be 93 b0 00 00 00 	movsbl 0xb0(%ebx),%edx
409659:	0f b6 8e 3a 01 00 00 	movzbl 0x13a(%esi),%ecx
409660:	e2 15                	loop   0x409677
409662:	8b 44 24 20          	mov    0x20(%esp),%eax
409666:	2b 04 24             	sub    (%esp),%eax
409669:	01 d0                	add    %edx,%eax
40966b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40966f:	01 d1                	add    %edx,%ecx
409671:	01 4c 24 20          	add    %ecx,0x20(%esp)
409675:	eb 2e                	jmp    0x4096a5
409677:	e2 16                	loop   0x40968f
409679:	8b 44 24 24          	mov    0x24(%esp),%eax
40967d:	2b 44 24 04          	sub    0x4(%esp),%eax
409681:	01 d0                	add    %edx,%eax
409683:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
409687:	01 d1                	add    %edx,%ecx
409689:	01 4c 24 24          	add    %ecx,0x24(%esp)
40968d:	eb 47                	jmp    0x4096d6
40968f:	e2 2f                	loop   0x4096c0
409691:	8b 44 24 28          	mov    0x28(%esp),%eax
409695:	2b 44 24 08          	sub    0x8(%esp),%eax
409699:	29 d0                	sub    %edx,%eax
40969b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40969f:	01 d1                	add    %edx,%ecx
4096a1:	29 4c 24 28          	sub    %ecx,0x28(%esp)
4096a5:	01 04 24             	add    %eax,(%esp)