40b2c6:	e8 04 00 00 00       	call   0x40b2cf
40b2cb:	83 c4 0c             	add    $0xc,%esp
40b2ce:	c3                   	ret
40b2cf:	0f b6 44 24 04       	movzbl 0x4(%esp),%eax
40b2d4:	8a 4c 24 0c          	mov    0xc(%esp),%cl
40b2d8:	84 88 81 1c 41 00    	test   %cl,0x411c81(%eax)
40b2de:	75 1c                	jne    0x40b2fc
40b2e0:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
40b2e5:	74 0e                	je     0x40b2f5
40b2e7:	0f b7 04 45 f6 09 41 	movzwl 0x4109f6(,%eax,2),%eax
40b2ee:	00
40b2ef:	23 44 24 08          	and    0x8(%esp),%eax
40b2f3:	eb 02                	jmp    0x40b2f7
40b2f5:	33 c0                	xor    %eax,%eax
40b2f7:	85 c0                	test   %eax,%eax
40b2f9:	75 01                	jne    0x40b2fc
40b2fb:	c3                   	ret
40b2fc:	6a 01                	push   $0x1
40b2fe:	58                   	pop    %eax
40b2ff:	c3                   	ret
40b300:	55                   	push   %ebp
40b301:	8b ec                	mov    %esp,%ebp
40b303:	83 ec 18             	sub    $0x18,%esp
40b306:	53                   	push   %ebx
40b307:	56                   	push   %esi
40b308:	57                   	push   %edi
40b309:	6a 19                	push   $0x19
40b30b:	e8 e5 bc ff ff       	call   0x406ff5
40b310:	ff 75 08             	push   0x8(%ebp)
40b313:	e8 95 01 00 00       	call   0x40b4ad
40b318:	8b d8                	mov    %eax,%ebx
40b31a:	59                   	pop    %ecx
40b31b:	3b 1d 64 1b 41 00    	cmp    0x411b64,%ebx
40b321:	59                   	pop    %ecx
40b322:	89 5d 08             	mov    %ebx,0x8(%ebp)
40b325:	75 07                	jne    0x40b32e
40b327:	33 f6                	xor    %esi,%esi
40b329:	e9 70 01 00 00       	jmp    0x40b49e
40b32e:	85 db                	test   %ebx,%ebx
40b330:	0f 84 56 01 00 00    	je     0x40b48c
40b336:	33 d2                	xor    %edx,%edx
40b338:	b8 28 0f 41 00       	mov    $0x410f28,%eax
40b33d:	39 18                	cmp    %ebx,(%eax)
40b33f:	74 74                	je     0x40b3b5
40b341:	83 c0 30             	add    $0x30,%eax
40b344:	42                   	inc    %edx
40b345:	3d 18 10 41 00       	cmp    $0x411018,%eax
40b34a:	7c f1                	jl     0x40b33d
40b34c:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b34f:	50                   	push   %eax
40b350:	53                   	push   %ebx
40b351:	ff 15 64 d0 40 00    	call   *0x40d064
40b357:	6a 01                	push   $0x1
40b359:	5e                   	pop    %esi
40b35a:	3b c6                	cmp    %esi,%eax
40b35c:	0f 85 21 01 00 00    	jne    0x40b483
40b362:	6a 40                	push   $0x40
40b364:	83 25 84 1d 41 00 00 	andl   $0x0,0x411d84
40b36b:	59                   	pop    %ecx
40b36c:	33 c0                	xor    %eax,%eax
40b36e:	bf 80 1c 41 00       	mov    $0x411c80,%edi
40b373:	39 75 e8             	cmp    %esi,-0x18(%ebp)
40b376:	f3 ab                	rep stos %eax,%es:(%edi)
40b378:	aa                   	stos   %al,%es:(%edi)
40b379:	89 1d 64 1b 41 00    	mov    %ebx,0x411b64
40b37f:	0f 86 eb 00 00 00    	jbe    0x40b470
40b385:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40b389:	0f 84 bc 00 00 00    	je     0x40b44b
40b38f:	8d 4d ef             	lea    -0x11(%ebp),%ecx
40b392:	8a 11                	mov    (%ecx),%dl
40b394:	84 d2                	test   %dl,%dl
40b396:	0f 84 af 00 00 00    	je     0x40b44b
40b39c:	0f b6 41 ff          	movzbl -0x1(%ecx),%eax
40b3a0:	0f b6 d2             	movzbl %dl,%edx
40b3a3:	3b c2                	cmp    %edx,%eax
40b3a5:	0f 87 94 00 00 00    	ja     0x40b43f
40b3ab:	80 88 81 1c 41 00 04 	orb    $0x4,0x411c81(%eax)
40b3b2:	40                   	inc    %eax
40b3b3:	eb ee                	jmp    0x40b3a3
40b3b5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b3b9:	6a 40                	push   $0x40
40b3bb:	59                   	pop    %ecx
40b3bc:	33 c0                	xor    %eax,%eax
40b3be:	bf 80 1c 41 00       	mov    $0x411c80,%edi
40b3c3:	8d 34 52             	lea    (%edx,%edx,2),%esi
40b3c6:	f3 ab                	rep stos %eax,%es:(%edi)
40b3c8:	c1 e6 04             	shl    $0x4,%esi
40b3cb:	aa                   	stos   %al,%es:(%edi)
40b3cc:	8d 9e 38 0f 41 00    	lea    0x410f38(%esi),%ebx
40b3d2:	80 3b 00             	cmpb   $0x0,(%ebx)
40b3d5:	8b cb                	mov    %ebx,%ecx
40b3d7:	74 2c                	je     0x40b405
40b3d9:	8a 51 01             	mov    0x1(%ecx),%dl
40b3dc:	84 d2                	test   %dl,%dl
40b3de:	74 25                	je     0x40b405
40b3e0:	0f b6 01             	movzbl (%ecx),%eax
40b3e3:	0f b6 fa             	movzbl %dl,%edi
40b3e6:	3b c7                	cmp    %edi,%eax
40b3e8:	77 14                	ja     0x40b3fe
40b3ea:	8b 55 fc             	mov    -0x4(%ebp),%edx
40b3ed:	8a 92 20 0f 41 00    	mov    0x410f20(%edx),%dl
40b3f3:	08 90 81 1c 41 00    	or     %dl,0x411c81(%eax)
40b3f9:	40                   	inc    %eax
40b3fa:	3b c7                	cmp    %edi,%eax
40b3fc:	76 f5                	jbe    0x40b3f3
40b3fe:	41                   	inc    %ecx
40b3ff:	41                   	inc    %ecx
40b400:	80 39 00             	cmpb   $0x0,(%ecx)
40b403:	75 d4                	jne    0x40b3d9
40b405:	ff 45 fc             	incl   -0x4(%ebp)
40b408:	83 c3 08             	add    $0x8,%ebx
40b40b:	83 7d fc 04          	cmpl   $0x4,-0x4(%ebp)
40b40f:	72 c1                	jb     0x40b3d2
40b411:	8b 45 08             	mov    0x8(%ebp),%eax
40b414:	c7 05 7c 1b 41 00 01 	movl   $0x1,0x411b7c
40b41b:	00 00 00
40b41e:	50                   	push   %eax
40b41f:	a3 64 1b 41 00       	mov    %eax,0x411b64
40b424:	e8 ce 00 00 00       	call   0x40b4f7
40b429:	8d b6 2c 0f 41 00    	lea    0x410f2c(%esi),%esi
40b42f:	bf 70 1b 41 00       	mov    $0x411b70,%edi
40b434:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40b435:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40b436:	59                   	pop    %ecx
40b437:	a3 84 1d 41 00       	mov    %eax,0x411d84
40b43c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40b43d:	eb 52                	jmp    0x40b491
40b43f:	41                   	inc    %ecx
40b440:	41                   	inc    %ecx
40b441:	80 79 ff 00          	cmpb   $0x0,-0x1(%ecx)
40b445:	0f 85 47 ff ff ff    	jne    0x40b392
40b44b:	8b c6                	mov    %esi,%eax
40b44d:	80 88 81 1c 41 00 08 	orb    $0x8,0x411c81(%eax)
40b454:	40                   	inc    %eax
40b455:	3d ff 00 00 00       	cmp    $0xff,%eax
40b45a:	72 f1                	jb     0x40b44d
40b45c:	53                   	push   %ebx
40b45d:	e8 95 00 00 00       	call   0x40b4f7
40b462:	59                   	pop    %ecx
40b463:	a3 84 1d 41 00       	mov    %eax,0x411d84
40b468:	89 35 7c 1b 41 00    	mov    %esi,0x411b7c
40b46e:	eb 07                	jmp    0x40b477
40b470:	83 25 7c 1b 41 00 00 	andl   $0x0,0x411b7c
40b477:	33 c0                	xor    %eax,%eax
40b479:	bf 70 1b 41 00       	mov    $0x411b70,%edi
40b47e:	ab                   	stos   %eax,%es:(%edi)
40b47f:	ab                   	stos   %eax,%es:(%edi)
40b480:	ab                   	stos   %eax,%es:(%edi)
40b481:	eb 0e                	jmp    0x40b491
40b483:	83 3d 50 1a 41 00 00 	cmpl   $0x0,0x411a50
40b48a:	74 0f                	je     0x40b49b
40b48c:	e8 99 00 00 00       	call   0x40b52a
40b491:	e8 bd 00 00 00       	call   0x40b553
40b496:	e9 8c fe ff ff       	jmp    0x40b327
40b49b:	83 ce ff             	or     $0xffffffff,%esi
40b49e:	6a 19                	push   $0x19
40b4a0:	e8 b1 bb ff ff       	call   0x407056
40b4a5:	59                   	pop    %ecx
40b4a6:	8b c6                	mov    %esi,%eax
40b4a8:	5f                   	pop    %edi
40b4a9:	5e                   	pop    %esi
40b4aa:	5b                   	pop    %ebx
40b4ab:	c9                   	leave
40b4ac:	c3                   	ret
40b4ad:	8b 44 24 04          	mov    0x4(%esp),%eax
40b4b1:	83 25 50 1a 41 00 00 	andl   $0x0,0x411a50
40b4b8:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b4bb:	75 10                	jne    0x40b4cd
40b4bd:	c7 05 50 1a 41 00 01 	movl   $0x1,0x411a50
40b4c4:	00 00 00
40b4c7:	ff 25 54 d0 40 00    	jmp    *0x40d054
40b4cd:	83 f8 fd             	cmp    $0xfffffffd,%eax
40b4d0:	75 10                	jne    0x40b4e2
40b4d2:	c7 05 50 1a 41 00 01 	movl   $0x1,0x411a50
40b4d9:	00 00 00
40b4dc:	ff 25 58 d0 40 00    	jmp    *0x40d058
40b4e2:	83 f8 fc             	cmp    $0xfffffffc,%eax
40b4e5:	75 0f                	jne    0x40b4f6
40b4e7:	a1 7c 18 41 00       	mov    0x41187c,%eax
40b4ec:	c7 05 50 1a 41 00 01 	movl   $0x1,0x411a50
40b4f3:	00 00 00
40b4f6:	c3                   	ret
40b4f7:	8b 44 24 04          	mov    0x4(%esp),%eax
40b4fb:	2d a4 03 00 00       	sub    $0x3a4,%eax
40b500:	74 22                	je     0x40b524
40b502:	83 e8 04             	sub    $0x4,%eax
40b505:	74 17                	je     0x40b51e
40b507:	83 e8 0d             	sub    $0xd,%eax
40b50a:	74 0c                	je     0x40b518
40b50c:	48                   	dec    %eax
40b50d:	74 03                	je     0x40b512
40b50f:	33 c0                	xor    %eax,%eax
40b511:	c3                   	ret
40b512:	b8 04 04 00 00       	mov    $0x404,%eax
40b517:	c3                   	ret
40b518:	b8 12 04 00 00       	mov    $0x412,%eax
40b51d:	c3                   	ret
40b51e:	b8 04 08 00 00       	mov    $0x804,%eax
40b523:	c3                   	ret
40b524:	b8 11 04 00 00       	mov    $0x411,%eax
40b529:	c3                   	ret
40b52a:	57                   	push   %edi
40b52b:	6a 40                	push   $0x40
40b52d:	59                   	pop    %ecx
40b52e:	33 c0                	xor    %eax,%eax
40b530:	bf 80 1c 41 00       	mov    $0x411c80,%edi
40b535:	f3 ab                	rep stos %eax,%es:(%edi)
40b537:	aa                   	stos   %al,%es:(%edi)
40b538:	33 c0                	xor    %eax,%eax
40b53a:	bf 70 1b 41 00       	mov    $0x411b70,%edi
40b53f:	a3 64 1b 41 00       	mov    %eax,0x411b64
40b544:	a3 7c 1b 41 00       	mov    %eax,0x411b7c
40b549:	a3 84 1d 41 00       	mov    %eax,0x411d84
40b54e:	ab                   	stos   %eax,%es:(%edi)
40b54f:	ab                   	stos   %eax,%es:(%edi)
40b550:	ab                   	stos   %eax,%es:(%edi)
40b551:	5f                   	pop    %edi
40b552:	c3                   	ret
40b553:	55                   	push   %ebp
40b554:	8b ec                	mov    %esp,%ebp
40b556:	81 ec 14 05 00 00    	sub    $0x514,%esp
40b55c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40b55f:	56                   	push   %esi
40b560:	50                   	push   %eax
40b561:	ff 35 64 1b 41 00    	push   0x411b64
40b567:	ff 15 64 d0 40 00    	call   *0x40d064
40b56d:	83 f8 01             	cmp    $0x1,%eax
40b570:	0f 85 16 01 00 00    	jne    0x40b68c
40b576:	33 c0                	xor    %eax,%eax
40b578:	be 00 01 00 00       	mov    $0x100,%esi
40b57d:	88 84 05 ec fe ff ff 	mov    %al,-0x114(%ebp,%eax,1)
40b584:	40                   	inc    %eax
40b585:	3b c6                	cmp    %esi,%eax
40b587:	72 f4                	jb     0x40b57d
40b589:	8a 45 f2             	mov    -0xe(%ebp),%al
40b58c:	c6 85 ec fe ff ff 20 	movb   $0x20,-0x114(%ebp)
40b593:	84 c0                	test   %al,%al
40b595:	74 37                	je     0x40b5ce
40b597:	53                   	push   %ebx
40b598:	57                   	push   %edi
40b599:	8d 55 f3             	lea    -0xd(%ebp),%edx
40b59c:	0f b6 0a             	movzbl (%edx),%ecx
40b59f:	0f b6 c0             	movzbl %al,%eax
40b5a2:	3b c1                	cmp    %ecx,%eax
40b5a4:	77 1d                	ja     0x40b5c3
40b5a6:	2b c8                	sub    %eax,%ecx
40b5a8:	8d bc 05 ec fe ff ff 	lea    -0x114(%ebp,%eax,1),%edi
40b5af:	41                   	inc    %ecx
40b5b0:	b8 20 20 20 20       	mov    $0x20202020,%eax
40b5b5:	8b d9                	mov    %ecx,%ebx
40b5b7:	c1 e9 02             	shr    $0x2,%ecx
40b5ba:	f3 ab                	rep stos %eax,%es:(%edi)
40b5bc:	8b cb                	mov    %ebx,%ecx
40b5be:	83 e1 03             	and    $0x3,%ecx
40b5c1:	f3 aa                	rep stos %al,%es:(%edi)
40b5c3:	42                   	inc    %edx
40b5c4:	42                   	inc    %edx
40b5c5:	8a 42 ff             	mov    -0x1(%edx),%al
40b5c8:	84 c0                	test   %al,%al
40b5ca:	75 d0                	jne    0x40b59c
40b5cc:	5f                   	pop    %edi
40b5cd:	5b                   	pop    %ebx
40b5ce:	6a 00                	push   $0x0
40b5d0:	8d 85 ec fa ff ff    	lea    -0x514(%ebp),%eax
40b5d6:	ff 35 84 1d 41 00    	push   0x411d84
40b5dc:	ff 35 64 1b 41 00    	push   0x411b64
40b5e2:	50                   	push   %eax
40b5e3:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40b5e9:	56                   	push   %esi
40b5ea:	50                   	push   %eax
40b5eb:	6a 01                	push   $0x1
40b5ed:	e8 83 fb ff ff       	call   0x40b175
40b5f2:	6a 00                	push   $0x0
40b5f4:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40b5fa:	ff 35 64 1b 41 00    	push   0x411b64
40b600:	56                   	push   %esi
40b601:	50                   	push   %eax
40b602:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40b608:	56                   	push   %esi
40b609:	50                   	push   %eax
40b60a:	56                   	push   %esi
40b60b:	ff 35 84 1d 41 00    	push   0x411d84
40b611:	e8 59 08 00 00       	call   0x40be6f
40b616:	6a 00                	push   $0x0
40b618:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
40b61e:	ff 35 64 1b 41 00    	push   0x411b64
40b624:	56                   	push   %esi
40b625:	50                   	push   %eax
40b626:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40b62c:	56                   	push   %esi
40b62d:	50                   	push   %eax
40b62e:	68 00 02 00 00       	push   $0x200
40b633:	ff 35 84 1d 41 00    	push   0x411d84
40b639:	e8 31 08 00 00       	call   0x40be6f
40b63e:	83 c4 5c             	add    $0x5c,%esp
40b641:	33 c0                	xor    %eax,%eax
40b643:	8d 8d ec fa ff ff    	lea    -0x514(%ebp),%ecx
40b649:	66 8b 11             	mov    (%ecx),%dx
40b64c:	f6 c2 01             	test   $0x1,%dl
40b64f:	74 16                	je     0x40b667
40b651:	80 88 81 1c 41 00 10 	orb    $0x10,0x411c81(%eax)
40b658:	8a 94 05 ec fd ff ff 	mov    -0x214(%ebp,%eax,1),%dl
40b65f:	88 90 80 1b 41 00    	mov    %dl,0x411b80(%eax)
40b665:	eb 1c                	jmp    0x40b683
40b667:	f6 c2 02             	test   $0x2,%dl
40b66a:	74 10                	je     0x40b67c
40b66c:	80 88 81 1c 41 00 20 	orb    $0x20,0x411c81(%eax)
40b673:	8a 94 05 ec fc ff ff 	mov    -0x314(%ebp,%eax,1),%dl
40b67a:	eb e3                	jmp    0x40b65f
40b67c:	80 a0 80 1b 41 00 00 	andb   $0x0,0x411b80(%eax)
40b683:	40                   	inc    %eax
40b684:	41                   	inc    %ecx
40b685:	41                   	inc    %ecx
40b686:	3b c6                	cmp    %esi,%eax
40b688:	72 bf                	jb     0x40b649
40b68a:	eb 49                	jmp    0x40b6d5
40b68c:	33 c0                	xor    %eax,%eax
40b68e:	be 00 01 00 00       	mov    $0x100,%esi
40b693:	83 f8 41             	cmp    $0x41,%eax
40b696:	72 19                	jb     0x40b6b1
40b698:	83 f8 5a             	cmp    $0x5a,%eax
40b69b:	77 14                	ja     0x40b6b1
40b69d:	80 88 81 1c 41 00 10 	orb    $0x10,0x411c81(%eax)
40b6a4:	8a c8                	mov    %al,%cl
40b6a6:	80 c1 20             	add    $0x20,%cl
40b6a9:	88 88 80 1b 41 00    	mov    %cl,0x411b80(%eax)
40b6af:	eb 1f                	jmp    0x40b6d0
40b6b1:	83 f8 61             	cmp    $0x61,%eax
40b6b4:	72 13                	jb     0x40b6c9
40b6b6:	83 f8 7a             	cmp    $0x7a,%eax
40b6b9:	77 0e                	ja     0x40b6c9
40b6bb:	80 88 81 1c 41 00 20 	orb    $0x20,0x411c81(%eax)
40b6c2:	8a c8                	mov    %al,%cl
40b6c4:	80 e9 20             	sub    $0x20,%cl
40b6c7:	eb e0                	jmp    0x40b6a9
40b6c9:	80 a0 80 1b 41 00 00 	andb   $0x0,0x411b80(%eax)
40b6d0:	40                   	inc    %eax
40b6d1:	3b c6                	cmp    %esi,%eax
40b6d3:	72 be                	jb     0x40b693
40b6d5:	5e                   	pop    %esi
40b6d6:	c9                   	leave
40b6d7:	c3                   	ret
40b6d8:	83 3d c8 1e 41 00 00 	cmpl   $0x0,0x411ec8
40b6df:	75 12                	jne    0x40b6f3
40b6e1:	6a fd                	push   $0xfffffffd
40b6e3:	e8 18 fc ff ff       	call   0x40b300
40b6e8:	59                   	pop    %ecx
40b6e9:	c7 05 c8 1e 41 00 01 	movl   $0x1,0x411ec8
40b6f0:	00 00 00
40b6f3:	c3                   	ret