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)
4096a8:	01 44 24 08          	add    %eax,0x8(%esp)
4096ac:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4096b0:	29 d0                	sub    %edx,%eax
4096b2:	89 44 24 0c          	mov    %eax,0xc(%esp)
4096b6:	03 54 24 24          	add    0x24(%esp),%edx
4096ba:	89 54 24 04          	mov    %edx,0x4(%esp)
4096be:	eb 58                	jmp    0x409718
4096c0:	e2 2f                	loop   0x4096f1
4096c2:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4096c6:	2b 44 24 0c          	sub    0xc(%esp),%eax
4096ca:	29 d0                	sub    %edx,%eax
4096cc:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4096d0:	01 d1                	add    %edx,%ecx
4096d2:	29 4c 24 2c          	sub    %ecx,0x2c(%esp)
4096d6:	01 44 24 04          	add    %eax,0x4(%esp)
4096da:	01 44 24 0c          	add    %eax,0xc(%esp)
4096de:	8b 44 24 28          	mov    0x28(%esp),%eax
4096e2:	29 d0                	sub    %edx,%eax
4096e4:	89 44 24 08          	mov    %eax,0x8(%esp)
4096e8:	03 54 24 20          	add    0x20(%esp),%edx
4096ec:	89 14 24             	mov    %edx,(%esp)
4096ef:	eb 27                	jmp    0x409718
4096f1:	e2 25                	loop   0x409718
4096f3:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4096f7:	29 d0                	sub    %edx,%eax
4096f9:	89 44 24 0c          	mov    %eax,0xc(%esp)
4096fd:	8b 44 24 28          	mov    0x28(%esp),%eax
409701:	29 d0                	sub    %edx,%eax
409703:	89 44 24 08          	mov    %eax,0x8(%esp)
409707:	8b 44 24 24          	mov    0x24(%esp),%eax
40970b:	01 d0                	add    %edx,%eax
40970d:	89 44 24 04          	mov    %eax,0x4(%esp)
409711:	03 54 24 20          	add    0x20(%esp),%edx
409715:	89 14 24             	mov    %edx,(%esp)
409718:	8b 04 24             	mov    (%esp),%eax
40971b:	3b 44 24 08          	cmp    0x8(%esp),%eax
40971f:	7e 04                	jle    0x409725
409721:	89 44 24 08          	mov    %eax,0x8(%esp)
409725:	8b 44 24 04          	mov    0x4(%esp),%eax
409729:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40972d:	7e 04                	jle    0x409733
40972f:	89 44 24 0c          	mov    %eax,0xc(%esp)
409733:	8b 14 24             	mov    (%esp),%edx
409736:	2b 54 24 10          	sub    0x10(%esp),%edx
40973a:	8b 44 24 04          	mov    0x4(%esp),%eax
40973e:	2b 44 24 14          	sub    0x14(%esp),%eax
409742:	09 c2                	or     %eax,%edx
409744:	8b 4c 24 08          	mov    0x8(%esp),%ecx
409748:	2b 0c 24             	sub    (%esp),%ecx
40974b:	2b 4c 24 18          	sub    0x18(%esp),%ecx
40974f:	8b 44 24 0c          	mov    0xc(%esp),%eax
409753:	2b 44 24 04          	sub    0x4(%esp),%eax
409757:	2b 44 24 1c          	sub    0x1c(%esp),%eax
40975b:	09 c8                	or     %ecx,%eax
40975d:	74 0e                	je     0x40976d
40975f:	80 a6 3b 01 00 00 fe 	andb   $0xfe,0x13b(%esi)
409766:	80 8e 3b 01 00 00 02 	orb    $0x2,0x13b(%esi)
40976d:	09 d0                	or     %edx,%eax
40976f:	74 09                	je     0x40977a
409771:	89 e2                	mov    %esp,%edx
409773:	89 f0                	mov    %esi,%eax
409775:	e8 ea 21 00 00       	call   0x40b964
40977a:	f6 86 3b 01 00 00 01 	testb  $0x1,0x13b(%esi)
409781:	74 07                	je     0x40978a
409783:	89 f0                	mov    %esi,%eax
409785:	e8 35 fe ff ff       	call   0x4095bf
40978a:	f6 83 3b 01 00 00 04 	testb  $0x4,0x13b(%ebx)
409791:	74 1c                	je     0x4097af
409793:	83 c5 04             	add    $0x4,%ebp
409796:	4f                   	dec    %edi
409797:	0f 8d 55 fe ff ff    	jge    0x4095f2
40979d:	c1 6c 24 30 08       	shrl   $0x8,0x30(%esp)
4097a2:	0f 85 3c fe ff ff    	jne    0x4095e4
4097a8:	80 a3 3b 01 00 00 fb 	andb   $0xfb,0x13b(%ebx)
4097af:	83 c4 34             	add    $0x34,%esp
4097b2:	5f                   	pop    %edi
4097b3:	5e                   	pop    %esi
4097b4:	5b                   	pop    %ebx
4097b5:	5d                   	pop    %ebp
4097b6:	c3                   	ret
4097b7:	90                   	nop
4097b8:	c7 05 48 61 42 00 48 	movl   $0x409548,0x426148
4097bf:	95 40 00
4097c2:	f6 40 37 04          	testb  $0x4,0x37(%eax)
4097c6:	75 13                	jne    0x4097db
4097c8:	3a 90 3a 01 00 00    	cmp    0x13a(%eax),%dl
4097ce:	74 0b                	je     0x4097db
4097d0:	88 90 3a 01 00 00    	mov    %dl,0x13a(%eax)
4097d6:	e8 6d fd ff ff       	call   0x409548
4097db:	c3                   	ret
4097dc:	53                   	push   %ebx
4097dd:	51                   	push   %ecx
4097de:	8b d8                	mov    %eax,%ebx
4097e0:	8b c3                	mov    %ebx,%eax
4097e2:	e8 d1 ff ff ff       	call   0x4097b8
4097e7:	89 1c 24             	mov    %ebx,(%esp)
4097ea:	8b 04 24             	mov    (%esp),%eax
4097ed:	5a                   	pop    %edx
4097ee:	5b                   	pop    %ebx
4097ef:	c3                   	ret
4097f0:	55                   	push   %ebp
4097f1:	8b ec                	mov    %esp,%ebp
4097f3:	6a 00                	push   $0x0
4097f5:	53                   	push   %ebx
4097f6:	56                   	push   %esi
4097f7:	8b f2                	mov    %edx,%esi
4097f9:	8b d8                	mov    %eax,%ebx
4097fb:	33 c0                	xor    %eax,%eax
4097fd:	55                   	push   %ebp
4097fe:	68 7e 98 40 00       	push   $0x40987e
409803:	64 ff 30             	push   %fs:(%eax)
409806:	64 89 20             	mov    %esp,%fs:(%eax)
409809:	8b 43 4c             	mov    0x4c(%ebx),%eax
40980c:	66 83 78 54 00       	cmpw   $0x0,0x54(%eax)
409811:	74 2d                	je     0x409840
409813:	8b c3                	mov    %ebx,%eax
409815:	e8 e2 29 00 00       	call   0x40c1fc
40981a:	8d 48 01             	lea    0x1(%eax),%ecx
40981d:	8b c6                	mov    %esi,%eax
40981f:	33 d2                	xor    %edx,%edx
409821:	e8 5e 9f ff ff       	call   0x403784
409826:	8b c6                	mov    %esi,%eax
409828:	e8 1f a3 ff ff       	call   0x403b4c
40982d:	50                   	push   %eax
40982e:	6a 00                	push   $0x0
409830:	8b 43 4c             	mov    0x4c(%ebx),%eax
409833:	0f b7 40 54          	movzwl 0x54(%eax),%eax
409837:	50                   	push   %eax
409838:	53                   	push   %ebx
409839:	e8 fe 2c 00 00       	call   0x40c53c
40983e:	eb 28                	jmp    0x409868
409840:	56                   	push   %esi
409841:	8d 55 fc             	lea    -0x4(%ebp),%edx
409844:	8b c3                	mov    %ebx,%eax
409846:	e8 75 46 00 00       	call   0x40dec0
40984b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40984e:	50                   	push   %eax
40984f:	8b c3                	mov    %ebx,%eax
409851:	e8 a6 29 00 00       	call   0x40c1fc
409856:	50                   	push   %eax
409857:	8b c3                	mov    %ebx,%eax
409859:	e8 82 29 00 00       	call   0x40c1e0
40985e:	8b d0                	mov    %eax,%edx
409860:	42                   	inc    %edx
409861:	59                   	pop    %ecx
409862:	58                   	pop    %eax
409863:	e8 ec a2 ff ff       	call   0x403b54
409868:	33 c0                	xor    %eax,%eax
40986a:	5a                   	pop    %edx
40986b:	59                   	pop    %ecx
40986c:	59                   	pop    %ecx
40986d:	64 89 10             	mov    %edx,%fs:(%eax)
409870:	68 85 98 40 00       	push   $0x409885
409875:	8d 45 fc             	lea    -0x4(%ebp),%eax
409878:	e8 17 9e ff ff       	call   0x403694
40987d:	c3                   	ret
40987e:	e9 85 98 ff ff       	jmp    0x403108
409883:	eb f0                	jmp    0x409875
409885:	5e                   	pop    %esi
409886:	5b                   	pop    %ebx
409887:	59                   	pop    %ecx
409888:	5d                   	pop    %ebp
409889:	c3                   	ret
40988a:	8b c0                	mov    %eax,%eax
40988c:	55                   	push   %ebp
40988d:	8b ec                	mov    %esp,%ebp
40988f:	53                   	push   %ebx
409890:	56                   	push   %esi
409891:	57                   	push   %edi
409892:	8b 7d 14             	mov    0x14(%ebp),%edi
409895:	8b 75 10             	mov    0x10(%ebp),%esi
409898:	8b 5d 08             	mov    0x8(%ebp),%ebx
40989b:	8b 83 0e 01 00 00    	mov    0x10e(%ebx),%eax
4098a1:	3b f0                	cmp    %eax,%esi
4098a3:	76 02                	jbe    0x4098a7