40aad6:	74 1a                	je     0x40aaf2
40aad8:	fe c8                	dec    %al
40aada:	74 0a                	je     0x40aae6
40aadc:	2c 08                	sub    $0x8,%al
40aade:	74 0e                	je     0x40aaee
40aae0:	2c 0c                	sub    $0xc,%al
40aae2:	74 06                	je     0x40aaea
40aae4:	eb 10                	jmp    0x40aaf6
40aae6:	b3 02                	mov    $0x2,%bl
40aae8:	eb 1a                	jmp    0x40ab04
40aaea:	b3 02                	mov    $0x2,%bl
40aaec:	eb 16                	jmp    0x40ab04
40aaee:	33 db                	xor    %ebx,%ebx
40aaf0:	eb 12                	jmp    0x40ab04
40aaf2:	b3 01                	mov    $0x1,%bl
40aaf4:	eb 0e                	jmp    0x40ab04
40aaf6:	47                   	inc    %edi
40aaf7:	8b c6                	mov    %esi,%eax
40aaf9:	e8 32 9d ff ff       	call   0x404830
40aafe:	3b f8                	cmp    %eax,%edi
40ab00:	7e cc                	jle    0x40aace
40ab02:	33 db                	xor    %ebx,%ebx
40ab04:	8b c3                	mov    %ebx,%eax
40ab06:	5f                   	pop    %edi
40ab07:	5e                   	pop    %esi
40ab08:	5b                   	pop    %ebx
40ab09:	c3                   	ret
40ab0a:	8b c0                	mov    %eax,%eax
40ab0c:	53                   	push   %ebx
40ab0d:	56                   	push   %esi
40ab0e:	8b da                	mov    %edx,%ebx
40ab10:	8b f0                	mov    %eax,%esi
40ab12:	eb 23                	jmp    0x40ab37
40ab14:	8b 03                	mov    (%ebx),%eax
40ab16:	8a 44 06 ff          	mov    -0x1(%esi,%eax,1),%al
40ab1a:	25 ff 00 00 00       	and    $0xff,%eax
40ab1f:	0f a3 05 3c 51 45 00 	bt     %eax,0x45513c
40ab26:	73 0d                	jae    0x40ab35
40ab28:	8b 13                	mov    (%ebx),%edx
40ab2a:	8b c6                	mov    %esi,%eax
40ab2c:	e8 23 1b 00 00       	call   0x40c654
40ab31:	89 03                	mov    %eax,(%ebx)
40ab33:	eb 02                	jmp    0x40ab37
40ab35:	ff 03                	incl   (%ebx)
40ab37:	8b c6                	mov    %esi,%eax
40ab39:	e8 f2 9c ff ff       	call   0x404830
40ab3e:	3b 03                	cmp    (%ebx),%eax
40ab40:	7c 0c                	jl     0x40ab4e
40ab42:	8b 03                	mov    (%ebx),%eax
40ab44:	8a 44 06 ff          	mov    -0x1(%esi,%eax,1),%al
40ab48:	04 d0                	add    $0xd0,%al
40ab4a:	2c 0a                	sub    $0xa,%al
40ab4c:	73 c6                	jae    0x40ab14
40ab4e:	5e                   	pop    %esi
40ab4f:	5b                   	pop    %ebx
40ab50:	c3                   	ret
40ab51:	8d 40 00             	lea    0x0(%eax),%eax
40ab54:	53                   	push   %ebx
40ab55:	56                   	push   %esi
40ab56:	57                   	push   %edi
40ab57:	55                   	push   %ebp
40ab58:	51                   	push   %ecx
40ab59:	8b e8                	mov    %eax,%ebp
40ab5b:	33 c0                	xor    %eax,%eax
40ab5d:	89 04 24             	mov    %eax,(%esp)
40ab60:	bf 07 00 00 00       	mov    $0x7,%edi
40ab65:	bb 54 17 46 00       	mov    $0x461754,%ebx
40ab6a:	be 70 17 46 00       	mov    $0x461770,%esi
40ab6f:	83 3b 00             	cmpl   $0x0,(%ebx)
40ab72:	74 29                	je     0x40ab9d
40ab74:	8b c5                	mov    %ebp,%eax
40ab76:	e8 b5 9e ff ff       	call   0x404a30
40ab7b:	50                   	push   %eax
40ab7c:	8b 03                	mov    (%ebx),%eax
40ab7e:	e8 ad 9e ff ff       	call   0x404a30
40ab83:	5a                   	pop    %edx
40ab84:	e8 43 1b 00 00       	call   0x40c6cc
40ab89:	85 c0                	test   %eax,%eax
40ab8b:	74 07                	je     0x40ab94
40ab8d:	8b 06                	mov    (%esi),%eax
40ab8f:	89 04 24             	mov    %eax,(%esp)
40ab92:	eb 09                	jmp    0x40ab9d
40ab94:	83 c6 04             	add    $0x4,%esi
40ab97:	83 c3 04             	add    $0x4,%ebx
40ab9a:	4f                   	dec    %edi
40ab9b:	75 d2                	jne    0x40ab6f
40ab9d:	8b 04 24             	mov    (%esp),%eax
40aba0:	5a                   	pop    %edx
40aba1:	5d                   	pop    %ebp
40aba2:	5f                   	pop    %edi
40aba3:	5e                   	pop    %esi
40aba4:	5b                   	pop    %ebx
40aba5:	c3                   	ret
40aba6:	8b c0                	mov    %eax,%eax
40aba8:	55                   	push   %ebp
40aba9:	8b ec                	mov    %esp,%ebp
40abab:	53                   	push   %ebx
40abac:	8b d8                	mov    %eax,%ebx
40abae:	83 3d 48 17 46 00 12 	cmpl   $0x12,0x461748
40abb5:	75 3a                	jne    0x40abf1
40abb7:	83 fb 63             	cmp    $0x63,%ebx
40abba:	7f 24                	jg     0x40abe0
40abbc:	e8 5b f1 ff ff       	call   0x409d1c
40abc1:	0f b7 c8             	movzwl %ax,%ecx
40abc4:	8b 45 08             	mov    0x8(%ebp),%eax
40abc7:	8b 40 fc             	mov    -0x4(%eax),%eax
40abca:	99                   	cltd
40abcb:	33 c2                	xor    %edx,%eax
40abcd:	2b c2                	sub    %edx,%eax
40abcf:	03 c8                	add    %eax,%ecx
40abd1:	8b c1                	mov    %ecx,%eax
40abd3:	b9 64 00 00 00       	mov    $0x64,%ecx
40abd8:	99                   	cltd
40abd9:	f7 f9                	idiv   %ecx
40abdb:	6b c0 64             	imul   $0x64,%eax,%eax
40abde:	03 d8                	add    %eax,%ebx
40abe0:	8b 45 08             	mov    0x8(%ebp),%eax
40abe3:	83 78 fc 00          	cmpl   $0x0,-0x4(%eax)
40abe7:	7e 0e                	jle    0x40abf7
40abe9:	8b 45 08             	mov    0x8(%ebp),%eax
40abec:	f7 58 fc             	negl   -0x4(%eax)
40abef:	eb 06                	jmp    0x40abf7
40abf1:	8b 45 08             	mov    0x8(%ebp),%eax
40abf4:	ff 48 fc             	decl   -0x4(%eax)
40abf7:	8b 45 08             	mov    0x8(%ebp),%eax
40abfa:	8b 40 fc             	mov    -0x4(%eax),%eax
40abfd:	03 c3                	add    %ebx,%eax
40abff:	5b                   	pop    %ebx
40ac00:	5d                   	pop    %ebp
40ac01:	c3                   	ret
40ac02:	8b c0                	mov    %eax,%eax
40ac04:	55                   	push   %ebp
40ac05:	8b ec                	mov    %esp,%ebp
40ac07:	83 c4 d8             	add    $0xffffffd8,%esp
40ac0a:	53                   	push   %ebx
40ac0b:	56                   	push   %esi
40ac0c:	57                   	push   %edi
40ac0d:	33 db                	xor    %ebx,%ebx
40ac0f:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40ac12:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40ac15:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40ac18:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ac1b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40ac1e:	8b da                	mov    %edx,%ebx
40ac20:	8b f0                	mov    %eax,%esi
40ac22:	33 c0                	xor    %eax,%eax
40ac24:	55                   	push   %ebp
40ac25:	68 1f af 40 00       	push   $0x40af1f
40ac2a:	64 ff 30             	push   %fs:(%eax)
40ac2d:	64 89 20             	mov    %esp,%fs:(%eax)
40ac30:	33 ff                	xor    %edi,%edi
40ac32:	66 c7 45 ee 00 00    	movw   $0x0,-0x12(%ebp)
40ac38:	66 c7 45 ec 00 00    	movw   $0x0,-0x14(%ebp)
40ac3e:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
40ac42:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40ac46:	a1 90 16 46 00       	mov    0x461690,%eax
40ac4b:	e8 70 fe ff ff       	call   0x40aac0
40ac50:	88 45 f6             	mov    %al,-0xa(%ebp)
40ac53:	33 c0                	xor    %eax,%eax
40ac55:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ac58:	83 3d 90 16 46 00 00 	cmpl   $0x0,0x461690
40ac5f:	74 3e                	je     0x40ac9f
40ac61:	a1 90 16 46 00       	mov    0x461690,%eax
40ac66:	80 38 67             	cmpb   $0x67,(%eax)
40ac69:	75 34                	jne    0x40ac9f
40ac6b:	8b d3                	mov    %ebx,%edx
40ac6d:	8b c6                	mov    %esi,%eax
40ac6f:	e8 98 fe ff ff       	call   0x40ab0c
40ac74:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ac77:	50                   	push   %eax
40ac78:	8b 0b                	mov    (%ebx),%ecx
40ac7a:	49                   	dec    %ecx
40ac7b:	ba 01 00 00 00       	mov    $0x1,%edx
40ac80:	8b c6                	mov    %esi,%eax
40ac82:	e8 09 9e ff ff       	call   0x404a90
40ac87:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ac8a:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40ac8d:	e8 aa d6 ff ff       	call   0x40833c
40ac92:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ac95:	e8 ba fe ff ff       	call   0x40ab54
40ac9a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ac9d:	eb 1c                	jmp    0x40acbb
40ac9f:	8b 15 90 16 46 00    	mov    0x461690,%edx
40aca5:	b8 38 af 40 00       	mov    $0x40af38,%eax
40acaa:	e8 e1 19 00 00       	call   0x40c690
40acaf:	85 c0                	test   %eax,%eax
40acb1:	7e 08                	jle    0x40acbb
40acb3:	a1 70 17 46 00       	mov    0x461770,%eax
40acb8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40acbb:	8d 45 eb             	lea    -0x15(%ebp),%eax
40acbe:	50                   	push   %eax
40acbf:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40acc2:	8b d3                	mov    %ebx,%edx
40acc4:	8b c6                	mov    %esi,%eax
40acc6:	e8 9d fc ff ff       	call   0x40a968
40accb:	84 c0                	test   %al,%al
40accd:	0f 84 31 02 00 00    	je     0x40af04
40acd3:	8b d3                	mov    %ebx,%edx
40acd5:	8a 0d 8d 16 46 00    	mov    0x46168d,%cl
40acdb:	8b c6                	mov    %esi,%eax
40acdd:	e8 a6 fd ff ff       	call   0x40aa88
40ace2:	84 c0                	test   %al,%al
40ace4:	0f 84 1a 02 00 00    	je     0x40af04
40acea:	8d 45 ea             	lea    -0x16(%ebp),%eax
40aced:	50                   	push   %eax
40acee:	8d 4d f2             	lea    -0xe(%ebp),%ecx
40acf1:	8b d3                	mov    %ebx,%edx
40acf3:	8b c6                	mov    %esi,%eax
40acf5:	e8 6e fc ff ff       	call   0x40a968
40acfa:	84 c0                	test   %al,%al
40acfc:	0f 84 02 02 00 00    	je     0x40af04
40ad02:	8b d3                	mov    %ebx,%edx
40ad04:	8a 0d 8d 16 46 00    	mov    0x46168d,%cl
40ad0a:	8b c6                	mov    %esi,%eax
40ad0c:	e8 77 fd ff ff       	call   0x40aa88
40ad11:	84 c0                	test   %al,%al
40ad13:	0f 84 ce 00 00 00    	je     0x40ade7
40ad19:	8d 45 e9             	lea    -0x17(%ebp),%eax
40ad1c:	50                   	push   %eax
40ad1d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ad20:	8b d3                	mov    %ebx,%edx
40ad22:	8b c6                	mov    %esi,%eax
40ad24:	e8 3f fc ff ff       	call   0x40a968
40ad29:	84 c0                	test   %al,%al
40ad2b:	0f 84 d3 01 00 00    	je     0x40af04
40ad31:	8a 45 f6             	mov    -0xa(%ebp),%al
40ad34:	2c 01                	sub    $0x1,%al
40ad36:	72 08                	jb     0x40ad40
40ad38:	74 22                	je     0x40ad5c
40ad3a:	fe c8                	dec    %al
40ad3c:	74 3a                	je     0x40ad78
40ad3e:	eb 52                	jmp    0x40ad92
40ad40:	66 8b 7d f0          	mov    -0x10(%ebp),%di
40ad44:	8a 45 e9             	mov    -0x17(%ebp),%al
40ad47:	88 45 e8             	mov    %al,-0x18(%ebp)
40ad4a:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
40ad4e:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40ad52:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40ad56:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40ad5a:	eb 36                	jmp    0x40ad92
40ad5c:	66 8b 7d f0          	mov    -0x10(%ebp),%di
40ad60:	8a 45 e9             	mov    -0x17(%ebp),%al
40ad63:	88 45 e8             	mov    %al,-0x18(%ebp)
40ad66:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40ad6a:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40ad6e:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
40ad72:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40ad76:	eb 1a                	jmp    0x40ad92
40ad78:	66 8b 7d f4          	mov    -0xc(%ebp),%di
40ad7c:	8a 45 eb             	mov    -0x15(%ebp),%al
40ad7f:	88 45 e8             	mov    %al,-0x18(%ebp)
40ad82:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40ad86:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40ad8a:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
40ad8e:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40ad92:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40ad96:	7e 0e                	jle    0x40ada6
40ad98:	55                   	push   %ebp
40ad99:	0f b7 c7             	movzwl %di,%eax
40ad9c:	e8 07 fe ff ff       	call   0x40aba8
40ada1:	59                   	pop    %ecx
40ada2:	8b f8                	mov    %eax,%edi
40ada4:	eb 70                	jmp    0x40ae16
40ada6:	80 7d e8 02          	cmpb   $0x2,-0x18(%ebp)
40adaa:	77 6a                	ja     0x40ae16
40adac:	e8 6b ef ff ff       	call   0x409d1c
40adb1:	0f b7 c8             	movzwl %ax,%ecx
40adb4:	0f b7 05 08 51 45 00 	movzwl 0x455108,%eax
40adbb:	2b c8                	sub    %eax,%ecx
40adbd:	8b c1                	mov    %ecx,%eax
40adbf:	51                   	push   %ecx
40adc0:	b9 64 00 00 00       	mov    $0x64,%ecx
40adc5:	99                   	cltd
40adc6:	f7 f9                	idiv   %ecx
40adc8:	59                   	pop    %ecx
40adc9:	66 6b c0 64          	imul   $0x64,%ax,%ax
40adcd:	66 03 f8             	add    %ax,%di
40add0:	66 83 3d 08 51 45 00 	cmpw   $0x0,0x455108
40add7:	00
40add8:	76 3c                	jbe    0x40ae16
40adda:	0f b7 c7             	movzwl %di,%eax
40addd:	3b c8                	cmp    %eax,%ecx
40addf:	7e 35                	jle    0x40ae16
40ade1:	66 83 c7 64          	add    $0x64,%di
40ade5:	eb 2f                	jmp    0x40ae16
40ade7:	e8 30 ef ff ff       	call   0x409d1c
40adec:	8b f8                	mov    %eax,%edi
40adee:	80 7d f6 01          	cmpb   $0x1,-0xa(%ebp)
40adf2:	75 12                	jne    0x40ae06
40adf4:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
40adf8:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40adfc:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40ae00:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40ae04:	eb 10                	jmp    0x40ae16
40ae06:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
40ae0a:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40ae0e:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40ae12:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40ae16:	8b d3                	mov    %ebx,%edx
40ae18:	8a 0d 8d 16 46 00    	mov    0x46168d,%cl
40ae1e:	8b c6                	mov    %esi,%eax
40ae20:	e8 63 fc ff ff       	call   0x40aa88
40ae25:	8b d3                	mov    %ebx,%edx
40ae27:	8b c6                	mov    %esi,%eax
40ae29:	e8 16 fb ff ff       	call   0x40a944
40ae2e:	80 3d 50 17 46 00 00 	cmpb   $0x0,0x461750
40ae35:	0f 84 b3 00 00 00    	je     0x40aeee
40ae3b:	8b 15 90 16 46 00    	mov    0x461690,%edx
40ae41:	b8 44 af 40 00       	mov    $0x40af44,%eax
40ae46:	e8 29 9d ff ff       	call   0x404b74
40ae4b:	85 c0                	test   %eax,%eax
40ae4d:	0f 84 9b 00 00 00    	je     0x40aeee
40ae53:	a1 a4 16 46 00       	mov    0x4616a4,%eax
40ae58:	8a 00                	mov    (%eax),%al
40ae5a:	04 d0                	add    $0xd0,%al
40ae5c:	2c 0a                	sub    $0xa,%al
40ae5e:	73 12                	jae    0x40ae72
40ae60:	8b d3                	mov    %ebx,%edx
40ae62:	8b c6                	mov    %esi,%eax
40ae64:	e8 a3 fc ff ff       	call   0x40ab0c
40ae69:	e9 80 00 00 00       	jmp    0x40aeee
40ae6e:	eb 02                	jmp    0x40ae72
40ae70:	ff 03                	incl   (%ebx)
40ae72:	8b c6                	mov    %esi,%eax
40ae74:	e8 b7 99 ff ff       	call   0x404830
40ae79:	3b 03                	cmp    (%ebx),%eax
40ae7b:	7c 09                	jl     0x40ae86
40ae7d:	8b 03                	mov    (%ebx),%eax
40ae7f:	80 7c 06 ff 20       	cmpb   $0x20,-0x1(%esi,%eax,1)
40ae84:	75 ea                	jne    0x40ae70
40ae86:	8b d3                	mov    %ebx,%edx
40ae88:	8b c6                	mov    %esi,%eax
40ae8a:	e8 b5 fa ff ff       	call   0x40a944
40ae8f:	8b c6                	mov    %esi,%eax
40ae91:	e8 9a 99 ff ff       	call   0x404830
40ae96:	3b 03                	cmp    (%ebx),%eax
40ae98:	7c 54                	jl     0x40aeee
40ae9a:	8d 45 dc             	lea    -0x24(%ebp),%eax
40ae9d:	50                   	push   %eax
40ae9e:	a1 9c 16 46 00       	mov    0x46169c,%eax
40aea3:	e8 88 99 ff ff       	call   0x404830
40aea8:	8b c8                	mov    %eax,%ecx
40aeaa:	8b 13                	mov    (%ebx),%edx
40aeac:	8b c6                	mov    %esi,%eax
40aeae:	e8 dd 9b ff ff       	call   0x404a90
40aeb3:	8b 55 dc             	mov    -0x24(%ebp),%edx
40aeb6:	a1 9c 16 46 00       	mov    0x46169c,%eax
40aebb:	e8 0c d4 ff ff       	call   0x4082cc
40aec0:	85 c0                	test   %eax,%eax
40aec2:	74 2a                	je     0x40aeee