40c5ca:	57                   	push   %edi
40c5cb:	8b da                	mov    %edx,%ebx
40c5cd:	8b f0                	mov    %eax,%esi
40c5cf:	8b d3                	mov    %ebx,%edx
40c5d1:	8b c6                	mov    %esi,%eax
40c5d3:	e8 d4 c1 ff ff       	call   0x4087ac
40c5d8:	8b f8                	mov    %eax,%edi
40c5da:	85 ff                	test   %edi,%edi
40c5dc:	74 24                	je     0x40c602
40c5de:	8b d7                	mov    %edi,%edx
40c5e0:	2b d6                	sub    %esi,%edx
40c5e2:	8b c6                	mov    %esi,%eax
40c5e4:	e8 4f fb ff ff       	call   0x40c138
40c5e9:	2c 01                	sub    $0x1,%al
40c5eb:	72 15                	jb     0x40c602
40c5ed:	74 02                	je     0x40c5f1
40c5ef:	eb 01                	jmp    0x40c5f2
40c5f1:	47                   	inc    %edi
40c5f2:	47                   	inc    %edi
40c5f3:	8b d3                	mov    %ebx,%edx
40c5f5:	8b c7                	mov    %edi,%eax
40c5f7:	e8 b0 c1 ff ff       	call   0x4087ac
40c5fc:	8b f8                	mov    %eax,%edi
40c5fe:	85 ff                	test   %edi,%edi
40c600:	75 dc                	jne    0x40c5de
40c602:	8b c7                	mov    %edi,%eax
40c604:	5f                   	pop    %edi
40c605:	5e                   	pop    %esi
40c606:	5b                   	pop    %ebx
40c607:	c3                   	ret
40c608:	55                   	push   %ebp
40c609:	8b ec                	mov    %esp,%ebp
40c60b:	83 c4 f4             	add    $0xfffffff4,%esp
40c60e:	53                   	push   %ebx
40c60f:	33 d2                	xor    %edx,%edx
40c611:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c614:	33 d2                	xor    %edx,%edx
40c616:	55                   	push   %ebp
40c617:	68 6c c6 40 00       	push   $0x40c66c
40c61c:	64 ff 32             	push   %fs:(%edx)
40c61f:	64 89 22             	mov    %esp,%fs:(%edx)
40c622:	6a 07                	push   $0x7
40c624:	8d 55 f9             	lea    -0x7(%ebp),%edx
40c627:	52                   	push   %edx
40c628:	68 04 10 00 00       	push   $0x1004
40c62d:	50                   	push   %eax
40c62e:	e8 5d 9a ff ff       	call   0x406090
40c633:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c636:	8d 55 f9             	lea    -0x7(%ebp),%edx
40c639:	b9 07 00 00 00       	mov    $0x7,%ecx
40c63e:	e8 e9 7b ff ff       	call   0x40422c
40c643:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c646:	50                   	push   %eax
40c647:	e8 f4 99 ff ff       	call   0x406040
40c64c:	8b d0                	mov    %eax,%edx
40c64e:	58                   	pop    %eax
40c64f:	e8 c0 b9 ff ff       	call   0x408014
40c654:	8b d8                	mov    %eax,%ebx
40c656:	33 c0                	xor    %eax,%eax
40c658:	5a                   	pop    %edx
40c659:	59                   	pop    %ecx
40c65a:	59                   	pop    %ecx
40c65b:	64 89 10             	mov    %edx,%fs:(%eax)
40c65e:	68 73 c6 40 00       	push   $0x40c673
40c663:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c666:	e8 51 79 ff ff       	call   0x403fbc
40c66b:	c3                   	ret
40c66c:	e9 4f 73 ff ff       	jmp    0x4039c0
40c671:	eb f0                	jmp    0x40c663
40c673:	8b c3                	mov    %ebx,%eax
40c675:	5b                   	pop    %ebx
40c676:	8b e5                	mov    %ebp,%esp
40c678:	5d                   	pop    %ebp
40c679:	c3                   	ret
40c67a:	8b c0                	mov    %eax,%eax
40c67c:	55                   	push   %ebp
40c67d:	8b ec                	mov    %esp,%ebp
40c67f:	51                   	push   %ecx
40c680:	53                   	push   %ebx
40c681:	56                   	push   %esi
40c682:	57                   	push   %edi
40c683:	8b 7d 08             	mov    0x8(%ebp),%edi
40c686:	83 c7 ec             	add    $0xffffffec,%edi
40c689:	57                   	push   %edi
40c68a:	a1 40 97 46 00       	mov    0x469740,%eax
40c68f:	e8 74 ff ff ff       	call   0x40c608
40c694:	50                   	push   %eax
40c695:	e8 ae 99 ff ff       	call   0x406048
40c69a:	33 f6                	xor    %esi,%esi
40c69c:	eb 29                	jmp    0x40c6c7
40c69e:	8a 44 37 06          	mov    0x6(%edi,%esi,1),%al
40c6a2:	8a 5c 37 07          	mov    0x7(%edi,%esi,1),%bl
40c6a6:	2a d8                	sub    %al,%bl
40c6a8:	72 1a                	jb     0x40c6c4
40c6aa:	43                   	inc    %ebx
40c6ab:	88 45 ff             	mov    %al,-0x1(%ebp)
40c6ae:	8a 45 ff             	mov    -0x1(%ebp),%al
40c6b1:	25 ff 00 00 00       	and    $0xff,%eax
40c6b6:	0f ab 05 0c d1 45 00 	bts    %eax,0x45d10c
40c6bd:	fe 45 ff             	incb   -0x1(%ebp)
40c6c0:	fe cb                	dec    %bl
40c6c2:	75 ea                	jne    0x40c6ae
40c6c4:	83 c6 02             	add    $0x2,%esi
40c6c7:	83 fe 0c             	cmp    $0xc,%esi
40c6ca:	7d 0a                	jge    0x40c6d6
40c6cc:	8a 44 37 06          	mov    0x6(%edi,%esi,1),%al
40c6d0:	0a 44 37 07          	or     0x7(%edi,%esi,1),%al
40c6d4:	75 c8                	jne    0x40c69e
40c6d6:	5f                   	pop    %edi
40c6d7:	5e                   	pop    %esi
40c6d8:	5b                   	pop    %ebx
40c6d9:	59                   	pop    %ecx
40c6da:	5d                   	pop    %ebp
40c6db:	c3                   	ret
40c6dc:	a1 44 97 46 00       	mov    0x469744,%eax
40c6e1:	83 f8 1f             	cmp    $0x1f,%eax
40c6e4:	77 07                	ja     0x40c6ed
40c6e6:	0f a3 05 08 d3 45 00 	bt     %eax,0x45d308
40c6ed:	0f 92 c0             	setb   %al
40c6f0:	c3                   	ret
40c6f1:	8d 40 00             	lea    0x0(%eax),%eax
40c6f4:	55                   	push   %ebp
40c6f5:	8b ec                	mov    %esp,%ebp
40c6f7:	81 c4 68 fe ff ff    	add    $0xfffffe68,%esp
40c6fd:	53                   	push   %ebx
40c6fe:	56                   	push   %esi
40c6ff:	57                   	push   %edi
40c700:	c7 05 40 97 46 00 09 	movl   $0x409,0x469740
40c707:	04 00 00
40c70a:	c7 05 44 97 46 00 09 	movl   $0x9,0x469744
40c711:	00 00 00
40c714:	c7 05 48 97 46 00 01 	movl   $0x1,0x469748
40c71b:	00 00 00
40c71e:	e8 b5 99 ff ff       	call   0x4060d8
40c723:	85 c0                	test   %eax,%eax
40c725:	74 05                	je     0x40c72c
40c727:	a3 40 97 46 00       	mov    %eax,0x469740
40c72c:	66 85 c0             	test   %ax,%ax
40c72f:	74 1b                	je     0x40c74c
40c731:	8b d0                	mov    %eax,%edx
40c733:	66 81 e2 ff 03       	and    $0x3ff,%dx
40c738:	0f b7 d2             	movzwl %dx,%edx
40c73b:	89 15 44 97 46 00    	mov    %edx,0x469744
40c741:	0f b7 c0             	movzwl %ax,%eax
40c744:	c1 e8 0a             	shr    $0xa,%eax
40c747:	a3 48 97 46 00       	mov    %eax,0x469748
40c74c:	be 48 c8 40 00       	mov    $0x40c848,%esi
40c751:	bf 0c d1 45 00       	mov    $0x45d10c,%edi
40c756:	b9 08 00 00 00       	mov    $0x8,%ecx
40c75b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40c75d:	83 3d c4 d0 45 00 02 	cmpl   $0x2,0x45d0c4
40c764:	0f 85 a7 00 00 00    	jne    0x40c811
40c76a:	e8 6d ff ff ff       	call   0x40c6dc
40c76f:	84 c0                	test   %al,%al
40c771:	74 13                	je     0x40c786
40c773:	c6 05 4d 97 46 00 00 	movb   $0x0,0x46974d
40c77a:	c6 05 4c 97 46 00 00 	movb   $0x0,0x46974c
40c781:	e9 b9 00 00 00       	jmp    0x40c83f
40c786:	55                   	push   %ebp
40c787:	e8 f0 fe ff ff       	call   0x40c67c
40c78c:	59                   	pop    %ecx
40c78d:	b8 0c d1 45 00       	mov    $0x45d10c,%eax
40c792:	ba 48 c8 40 00       	mov    $0x40c848,%edx
40c797:	b1 20                	mov    $0x20,%cl
40c799:	e8 0e 66 ff ff       	call   0x402dac
40c79e:	0f 95 c3             	setne  %bl
40c7a1:	88 1d 4c 97 46 00    	mov    %bl,0x46974c
40c7a7:	84 db                	test   %bl,%bl
40c7a9:	74 0c                	je     0x40c7b7
40c7ab:	c6 05 4d 97 46 00 00 	movb   $0x0,0x46974d
40c7b2:	e9 88 00 00 00       	jmp    0x40c83f
40c7b7:	b8 80 00 00 00       	mov    $0x80,%eax
40c7bc:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
40c7c2:	88 02                	mov    %al,(%edx)
40c7c4:	40                   	inc    %eax
40c7c5:	42                   	inc    %edx
40c7c6:	3d 00 01 00 00       	cmp    $0x100,%eax
40c7cb:	75 f5                	jne    0x40c7c2
40c7cd:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40c7d3:	8d 95 6a fe ff ff    	lea    -0x196(%ebp),%edx
40c7d9:	52                   	push   %edx
40c7da:	68 80 00 00 00       	push   $0x80
40c7df:	50                   	push   %eax
40c7e0:	6a 02                	push   $0x2
40c7e2:	a1 40 97 46 00       	mov    0x469740,%eax
40c7e7:	50                   	push   %eax
40c7e8:	e8 cb 98 ff ff       	call   0x4060b8
40c7ed:	b8 80 00 00 00       	mov    $0x80,%eax
40c7f2:	8d 95 6a fe ff ff    	lea    -0x196(%ebp),%edx
40c7f8:	66 83 3a 02          	cmpw   $0x2,(%edx)
40c7fc:	0f 94 c1             	sete   %cl
40c7ff:	88 0d 4d 97 46 00    	mov    %cl,0x46974d
40c805:	84 c9                	test   %cl,%cl
40c807:	75 36                	jne    0x40c83f
40c809:	83 c2 02             	add    $0x2,%edx
40c80c:	48                   	dec    %eax
40c80d:	75 e9                	jne    0x40c7f8
40c80f:	eb 2e                	jmp    0x40c83f
40c811:	6a 4a                	push   $0x4a
40c813:	e8 78 9e ff ff       	call   0x406690
40c818:	85 c0                	test   %eax,%eax
40c81a:	0f 95 c0             	setne  %al
40c81d:	a2 4d 97 46 00       	mov    %al,0x46974d
40c822:	6a 2a                	push   $0x2a
40c824:	e8 67 9e ff ff       	call   0x406690
40c829:	85 c0                	test   %eax,%eax
40c82b:	0f 95 c3             	setne  %bl
40c82e:	88 1d 4c 97 46 00    	mov    %bl,0x46974c
40c834:	84 db                	test   %bl,%bl
40c836:	74 07                	je     0x40c83f
40c838:	55                   	push   %ebp
40c839:	e8 3e fe ff ff       	call   0x40c67c
40c83e:	59                   	pop    %ecx
40c83f:	5f                   	pop    %edi
40c840:	5e                   	pop    %esi
40c841:	5b                   	pop    %ebx
40c842:	8b e5                	mov    %ebp,%esp
40c844:	5d                   	pop    %ebp
40c845:	c3                   	ret
40c866:	00 00                	add    %al,(%eax)
40c868:	55                   	push   %ebp
40c869:	8b ec                	mov    %esp,%ebp
40c86b:	b9 08 00 00 00       	mov    $0x8,%ecx
40c870:	6a 00                	push   $0x0
40c872:	6a 00                	push   $0x0
40c874:	49                   	dec    %ecx
40c875:	75 f9                	jne    0x40c870
40c877:	53                   	push   %ebx
40c878:	33 c0                	xor    %eax,%eax
40c87a:	55                   	push   %ebp
40c87b:	68 33 cb 40 00       	push   $0x40cb33
40c880:	64 ff 30             	push   %fs:(%eax)
40c883:	64 89 20             	mov    %esp,%fs:(%eax)
40c886:	e8 69 fe ff ff       	call   0x40c6f4
40c88b:	e8 c4 e7 ff ff       	call   0x40b054
40c890:	80 3d 4c 97 46 00 00 	cmpb   $0x0,0x46974c
40c897:	74 05                	je     0x40c89e
40c899:	e8 8e e9 ff ff       	call   0x40b22c
40c89e:	e8 35 98 ff ff       	call   0x4060d8
40c8a3:	8b d8                	mov    %eax,%ebx
40c8a5:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c8a8:	50                   	push   %eax
40c8a9:	33 c9                	xor    %ecx,%ecx
40c8ab:	ba 14 00 00 00       	mov    $0x14,%edx
40c8b0:	8b c3                	mov    %ebx,%eax
40c8b2:	e8 ed e6 ff ff       	call   0x40afa4
40c8b7:	8b 55 f0             	mov    -0x10(%ebp),%edx
40c8ba:	b8 80 96 46 00       	mov    $0x469680,%eax
40c8bf:	e8 4c 77 ff ff       	call   0x404010
40c8c4:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c8c7:	50                   	push   %eax
40c8c8:	b9 48 cb 40 00       	mov    $0x40cb48,%ecx
40c8cd:	ba 1b 00 00 00       	mov    $0x1b,%edx
40c8d2:	8b c3                	mov    %ebx,%eax
40c8d4:	e8 cb e6 ff ff       	call   0x40afa4
40c8d9:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c8dc:	33 d2                	xor    %edx,%edx
40c8de:	e8 31 b7 ff ff       	call   0x408014
40c8e3:	a2 84 96 46 00       	mov    %al,0x469684
40c8e8:	8d 45 e8             	lea    -0x18(%ebp),%eax
40c8eb:	50                   	push   %eax
40c8ec:	b9 48 cb 40 00       	mov    $0x40cb48,%ecx
40c8f1:	ba 1c 00 00 00       	mov    $0x1c,%edx
40c8f6:	8b c3                	mov    %ebx,%eax
40c8f8:	e8 a7 e6 ff ff       	call   0x40afa4
40c8fd:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c900:	33 d2                	xor    %edx,%edx
40c902:	e8 0d b7 ff ff       	call   0x408014
40c907:	a2 85 96 46 00       	mov    %al,0x469685
40c90c:	b1 2c                	mov    $0x2c,%cl
40c90e:	ba 0f 00 00 00       	mov    $0xf,%edx
40c913:	8b c3                	mov    %ebx,%eax
40c915:	e8 d6 e6 ff ff       	call   0x40aff0
40c91a:	a2 86 96 46 00       	mov    %al,0x469686
40c91f:	b1 2e                	mov    $0x2e,%cl
40c921:	ba 0e 00 00 00       	mov    $0xe,%edx
40c926:	8b c3                	mov    %ebx,%eax
40c928:	e8 c3 e6 ff ff       	call   0x40aff0
40c92d:	a2 87 96 46 00       	mov    %al,0x469687
40c932:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40c935:	50                   	push   %eax
40c936:	b9 48 cb 40 00       	mov    $0x40cb48,%ecx
40c93b:	ba 19 00 00 00       	mov    $0x19,%edx
40c940:	8b c3                	mov    %ebx,%eax
40c942:	e8 5d e6 ff ff       	call   0x40afa4
40c947:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c94a:	33 d2                	xor    %edx,%edx
40c94c:	e8 c3 b6 ff ff       	call   0x408014
40c951:	a2 88 96 46 00       	mov    %al,0x469688
40c956:	b1 2f                	mov    $0x2f,%cl
40c958:	ba 1d 00 00 00       	mov    $0x1d,%edx
40c95d:	8b c3                	mov    %ebx,%eax
40c95f:	e8 8c e6 ff ff       	call   0x40aff0
40c964:	a2 89 96 46 00       	mov    %al,0x469689
40c969:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c96c:	50                   	push   %eax
40c96d:	b9 54 cb 40 00       	mov    $0x40cb54,%ecx
40c972:	ba 1f 00 00 00       	mov    $0x1f,%edx
40c977:	8b c3                	mov    %ebx,%eax
40c979:	e8 26 e6 ff ff       	call   0x40afa4
40c97e:	8b 45 dc             	mov    -0x24(%ebp),%eax
40c981:	8d 55 e0             	lea    -0x20(%ebp),%edx
40c984:	e8 53 e9 ff ff       	call   0x40b2dc
40c989:	8b 55 e0             	mov    -0x20(%ebp),%edx
40c98c:	b8 8c 96 46 00       	mov    $0x46968c,%eax
40c991:	e8 7a 76 ff ff       	call   0x404010
40c996:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40c999:	50                   	push   %eax
40c99a:	b9 64 cb 40 00       	mov    $0x40cb64,%ecx
40c99f:	ba 20 00 00 00       	mov    $0x20,%edx
40c9a4:	8b c3                	mov    %ebx,%eax
40c9a6:	e8 f9 e5 ff ff       	call   0x40afa4
40c9ab:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40c9ae:	8d 55 d8             	lea    -0x28(%ebp),%edx
40c9b1:	e8 26 e9 ff ff       	call   0x40b2dc
40c9b6:	8b 55 d8             	mov    -0x28(%ebp),%edx
40c9b9:	b8 90 96 46 00       	mov    $0x469690,%eax
40c9be:	e8 4d 76 ff ff       	call   0x404010
40c9c3:	b1 3a                	mov    $0x3a,%cl
40c9c5:	ba 1e 00 00 00       	mov    $0x1e,%edx
40c9ca:	8b c3                	mov    %ebx,%eax
40c9cc:	e8 1f e6 ff ff       	call   0x40aff0
40c9d1:	a2 94 96 46 00       	mov    %al,0x469694
40c9d6:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c9d9:	50                   	push   %eax
40c9da:	b9 7c cb 40 00       	mov    $0x40cb7c,%ecx
40c9df:	ba 28 00 00 00       	mov    $0x28,%edx
40c9e4:	8b c3                	mov    %ebx,%eax
40c9e6:	e8 b9 e5 ff ff       	call   0x40afa4
40c9eb:	8b 55 d0             	mov    -0x30(%ebp),%edx
40c9ee:	b8 98 96 46 00       	mov    $0x469698,%eax
40c9f3:	e8 18 76 ff ff       	call   0x404010
40c9f8:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c9fb:	50                   	push   %eax
40c9fc:	b9 88 cb 40 00       	mov    $0x40cb88,%ecx
40ca01:	ba 29 00 00 00       	mov    $0x29,%edx
40ca06:	8b c3                	mov    %ebx,%eax
40ca08:	e8 97 e5 ff ff       	call   0x40afa4
40ca0d:	8b 55 cc             	mov    -0x34(%ebp),%edx
40ca10:	b8 9c 96 46 00       	mov    $0x46969c,%eax
40ca15:	e8 f6 75 ff ff       	call   0x404010
40ca1a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ca1d:	e8 9a 75 ff ff       	call   0x403fbc
40ca22:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ca25:	e8 92 75 ff ff       	call   0x403fbc
40ca2a:	8d 45 c8             	lea    -0x38(%ebp),%eax
40ca2d:	50                   	push   %eax
40ca2e:	b9 48 cb 40 00       	mov    $0x40cb48,%ecx
40ca33:	ba 25 00 00 00       	mov    $0x25,%edx
40ca38:	8b c3                	mov    %ebx,%eax