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
40b6f4:	53                   	push   %ebx
40b6f5:	33 db                	xor    %ebx,%ebx
40b6f7:	39 1d 54 1a 41 00    	cmp    %ebx,0x411a54
40b6fd:	56                   	push   %esi
40b6fe:	57                   	push   %edi
40b6ff:	75 42                	jne    0x40b743
40b701:	68 6c d8 40 00       	push   $0x40d86c
40b706:	ff 15 4c d0 40 00    	call   *0x40d04c
40b70c:	8b f8                	mov    %eax,%edi
40b70e:	3b fb                	cmp    %ebx,%edi
40b710:	74 67                	je     0x40b779
40b712:	8b 35 50 d0 40 00    	mov    0x40d050,%esi
40b718:	68 60 d8 40 00       	push   $0x40d860
40b71d:	57                   	push   %edi
40b71e:	ff d6                	call   *%esi
40b720:	85 c0                	test   %eax,%eax
40b722:	a3 54 1a 41 00       	mov    %eax,0x411a54
40b727:	74 50                	je     0x40b779
40b729:	68 50 d8 40 00       	push   $0x40d850
40b72e:	57                   	push   %edi
40b72f:	ff d6                	call   *%esi
40b731:	68 3c d8 40 00       	push   $0x40d83c
40b736:	57                   	push   %edi
40b737:	a3 58 1a 41 00       	mov    %eax,0x411a58
40b73c:	ff d6                	call   *%esi
40b73e:	a3 5c 1a 41 00       	mov    %eax,0x411a5c
40b743:	a1 58 1a 41 00       	mov    0x411a58,%eax
40b748:	85 c0                	test   %eax,%eax
40b74a:	74 16                	je     0x40b762
40b74c:	ff d0                	call   *%eax
40b74e:	8b d8                	mov    %eax,%ebx
40b750:	85 db                	test   %ebx,%ebx
40b752:	74 0e                	je     0x40b762
40b754:	a1 5c 1a 41 00       	mov    0x411a5c,%eax
40b759:	85 c0                	test   %eax,%eax
40b75b:	74 05                	je     0x40b762
40b75d:	53                   	push   %ebx
40b75e:	ff d0                	call   *%eax
40b760:	8b d8                	mov    %eax,%ebx
40b762:	ff 74 24 18          	push   0x18(%esp)
40b766:	ff 74 24 18          	push   0x18(%esp)
40b76a:	ff 74 24 18          	push   0x18(%esp)
40b76e:	53                   	push   %ebx
40b76f:	ff 15 54 1a 41 00    	call   *0x411a54
40b775:	5f                   	pop    %edi
40b776:	5e                   	pop    %esi
40b777:	5b                   	pop    %ebx
40b778:	c3                   	ret
40b779:	33 c0                	xor    %eax,%eax
40b77b:	eb f8                	jmp    0x40b775
40b77d:	56                   	push   %esi
40b77e:	6a 01                	push   $0x1
40b780:	5e                   	pop    %esi
40b781:	ff 74 24 0c          	push   0xc(%esp)
40b785:	ff 74 24 0c          	push   0xc(%esp)
40b789:	ff 15 48 d0 40 00    	call   *0x40d048
40b78f:	85 c0                	test   %eax,%eax
40b791:	74 02                	je     0x40b795
40b793:	33 f6                	xor    %esi,%esi
40b795:	8b c6                	mov    %esi,%eax
40b797:	5e                   	pop    %esi
40b798:	c3                   	ret
40b799:	56                   	push   %esi
40b79a:	6a 01                	push   $0x1
40b79c:	5e                   	pop    %esi
40b79d:	ff 74 24 0c          	push   0xc(%esp)
40b7a1:	ff 74 24 0c          	push   0xc(%esp)
40b7a5:	ff 15 68 d0 40 00    	call   *0x40d068
40b7ab:	85 c0                	test   %eax,%eax
40b7ad:	74 02                	je     0x40b7b1
40b7af:	33 f6                	xor    %esi,%esi
40b7b1:	8b c6                	mov    %esi,%eax
40b7b3:	5e                   	pop    %esi
40b7b4:	c3                   	ret
40b7b5:	56                   	push   %esi
40b7b6:	6a 01                	push   $0x1
40b7b8:	5e                   	pop    %esi
40b7b9:	ff 74 24 08          	push   0x8(%esp)
40b7bd:	ff 15 44 d0 40 00    	call   *0x40d044
40b7c3:	85 c0                	test   %eax,%eax
40b7c5:	74 02                	je     0x40b7c9
40b7c7:	33 f6                	xor    %esi,%esi
40b7c9:	8b c6                	mov    %esi,%eax
40b7cb:	5e                   	pop    %esi
40b7cc:	c3                   	ret
40b7cd:	6a 0a                	push   $0xa
40b7cf:	e8 b1 d0 ff ff       	call   0x408885
40b7d4:	6a 16                	push   $0x16
40b7d6:	e8 e3 08 00 00       	call   0x40c0be
40b7db:	59                   	pop    %ecx
40b7dc:	59                   	pop    %ecx
40b7dd:	6a 03                	push   $0x3
40b7df:	e8 4a b9 ff ff       	call   0x40712e
40b7e4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40b7e8:	56                   	push   %esi
40b7e9:	3b 0d c0 1e 41 00    	cmp    0x411ec0,%ecx
40b7ef:	57                   	push   %edi
40b7f0:	73 58                	jae    0x40b84a
40b7f2:	8b c1                	mov    %ecx,%eax
40b7f4:	c1 f8 05             	sar    $0x5,%eax
40b7f7:	8d 3c 85 c0 1d 41 00 	lea    0x411dc0(,%eax,4),%edi
40b7fe:	8b c1                	mov    %ecx,%eax
40b800:	83 e0 1f             	and    $0x1f,%eax
40b803:	8d 34 c0             	lea    (%eax,%eax,8),%esi
40b806:	8b 07                	mov    (%edi),%eax
40b808:	c1 e6 02             	shl    $0x2,%esi
40b80b:	03 c6                	add    %esi,%eax
40b80d:	f6 40 04 01          	testb  $0x1,0x4(%eax)
40b811:	74 37                	je     0x40b84a
40b813:	83 38 ff             	cmpl   $0xffffffff,(%eax)
40b816:	74 32                	je     0x40b84a
40b818:	83 3d 64 05 41 00 01 	cmpl   $0x1,0x410564
40b81f:	75 1f                	jne    0x40b840
40b821:	33 c0                	xor    %eax,%eax
40b823:	2b c8                	sub    %eax,%ecx
40b825:	74 10                	je     0x40b837
40b827:	49                   	dec    %ecx
40b828:	74 08                	je     0x40b832
40b82a:	49                   	dec    %ecx
40b82b:	75 13                	jne    0x40b840
40b82d:	50                   	push   %eax
40b82e:	6a f4                	push   $0xfffffff4
40b830:	eb 08                	jmp    0x40b83a
40b832:	50                   	push   %eax
40b833:	6a f5                	push   $0xfffffff5
40b835:	eb 03                	jmp    0x40b83a
40b837:	50                   	push   %eax
40b838:	6a f6                	push   $0xfffffff6
40b83a:	ff 15 40 d0 40 00    	call   *0x40d040
40b840:	8b 07                	mov    (%edi),%eax
40b842:	83 0c 30 ff          	orl    $0xffffffff,(%eax,%esi,1)
40b846:	33 c0                	xor    %eax,%eax
40b848:	eb 16                	jmp    0x40b860
40b84a:	e8 8f b8 ff ff       	call   0x4070de
40b84f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b855:	e8 8d b8 ff ff       	call   0x4070e7
40b85a:	83 20 00             	andl   $0x0,(%eax)
40b85d:	83 c8 ff             	or     $0xffffffff,%eax
40b860:	5f                   	pop    %edi
40b861:	5e                   	pop    %esi
40b862:	c3                   	ret
40b863:	8b 44 24 04          	mov    0x4(%esp),%eax
40b867:	3b 05 c0 1e 41 00    	cmp    0x411ec0,%eax
40b86d:	73 1f                	jae    0x40b88e
40b86f:	8b c8                	mov    %eax,%ecx
40b871:	83 e0 1f             	and    $0x1f,%eax
40b874:	c1 f9 05             	sar    $0x5,%ecx
40b877:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b87a:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b881:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
40b886:	8d 04 81             	lea    (%ecx,%eax,4),%eax
40b889:	74 03                	je     0x40b88e
40b88b:	8b 00                	mov    (%eax),%eax
40b88d:	c3                   	ret
40b88e:	e8 4b b8 ff ff       	call   0x4070de
40b893:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b899:	e8 49 b8 ff ff       	call   0x4070e7
40b89e:	83 20 00             	andl   $0x0,(%eax)
40b8a1:	83 c8 ff             	or     $0xffffffff,%eax
40b8a4:	c3                   	ret
40b8a5:	8b 44 24 04          	mov    0x4(%esp),%eax
40b8a9:	53                   	push   %ebx
40b8aa:	8b c8                	mov    %eax,%ecx
40b8ac:	83 e0 1f             	and    $0x1f,%eax
40b8af:	c1 f9 05             	sar    $0x5,%ecx
40b8b2:	56                   	push   %esi
40b8b3:	57                   	push   %edi
40b8b4:	8b 34 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%esi
40b8bb:	8d 1c 8d c0 1d 41 00 	lea    0x411dc0(,%ecx,4),%ebx
40b8c2:	8d 3c c0             	lea    (%eax,%eax,8),%edi
40b8c5:	c1 e7 02             	shl    $0x2,%edi
40b8c8:	03 f7                	add    %edi,%esi
40b8ca:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40b8ce:	75 23                	jne    0x40b8f3
40b8d0:	6a 11                	push   $0x11