40de69:	c1 fa 06             	sar    $0x6,%edx
40de6c:	83 e1 3f             	and    $0x3f,%ecx
40de6f:	6b c9 30             	imul   $0x30,%ecx,%ecx
40de72:	33 ff                	xor    %edi,%edi
40de74:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40de77:	89 7d fc             	mov    %edi,-0x4(%ebp)
40de7a:	8b 04 95 c0 41 42 00 	mov    0x4241c0(,%edx,4),%eax
40de81:	89 45 e8             	mov    %eax,-0x18(%ebp)
40de84:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40de87:	80 7c 08 29 01       	cmpb   $0x1,0x29(%eax,%ecx,1)
40de8c:	74 07                	je     0x40de95
40de8e:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40de95:	8b 45 08             	mov    0x8(%ebp),%eax
40de98:	8b 48 08             	mov    0x8(%eax),%ecx
40de9b:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40de9e:	85 c9                	test   %ecx,%ecx
40dea0:	75 0b                	jne    0x40dead
40dea2:	8b 45 0c             	mov    0xc(%ebp),%eax
40dea5:	8b 55 10             	mov    0x10(%ebp),%edx
40dea8:	e9 1b 01 00 00       	jmp    0x40dfc8
40dead:	8b 08                	mov    (%eax),%ecx
40deaf:	2b 48 04             	sub    0x4(%eax),%ecx
40deb2:	53                   	push   %ebx
40deb3:	8b c1                	mov    %ecx,%eax
40deb5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40deb8:	99                   	cltd
40deb9:	56                   	push   %esi
40deba:	8b f0                	mov    %eax,%esi
40debc:	8b da                	mov    %edx,%ebx
40debe:	8b 45 ec             	mov    -0x14(%ebp),%eax
40dec1:	99                   	cltd
40dec2:	03 f0                	add    %eax,%esi
40dec4:	8b 45 e8             	mov    -0x18(%ebp),%eax
40dec7:	13 da                	adc    %edx,%ebx
40dec9:	f6 44 08 28 80       	testb  $0x80,0x28(%eax,%ecx,1)
40dece:	0f 84 c6 00 00 00    	je     0x40df9a
40ded4:	6a 02                	push   $0x2
40ded6:	57                   	push   %edi
40ded7:	57                   	push   %edi
40ded8:	ff 75 f4             	push   -0xc(%ebp)
40dedb:	e8 16 04 00 00       	call   0x40e2f6
40dee0:	83 c4 10             	add    $0x10,%esp
40dee3:	3b 45 0c             	cmp    0xc(%ebp),%eax
40dee6:	75 40                	jne    0x40df28
40dee8:	3b 55 10             	cmp    0x10(%ebp),%edx
40deeb:	75 3b                	jne    0x40df28
40deed:	8b 45 08             	mov    0x8(%ebp),%eax
40def0:	89 7d f4             	mov    %edi,-0xc(%ebp)
40def3:	8b 50 04             	mov    0x4(%eax),%edx
40def6:	03 d6                	add    %esi,%edx
40def8:	8b ca                	mov    %edx,%ecx
40defa:	2b 48 04             	sub    0x4(%eax),%ecx
40defd:	3b 50 04             	cmp    0x4(%eax),%edx
40df00:	1b d2                	sbb    %edx,%edx
40df02:	f7 d2                	not    %edx
40df04:	23 d1                	and    %ecx,%edx
40df06:	74 16                	je     0x40df1e
40df08:	8b 48 04             	mov    0x4(%eax),%ecx
40df0b:	80 39 0a             	cmpb   $0xa,(%ecx)
40df0e:	75 05                	jne    0x40df15
40df10:	83 c6 01             	add    $0x1,%esi
40df13:	13 df                	adc    %edi,%ebx
40df15:	41                   	inc    %ecx
40df16:	ff 45 f4             	incl   -0xc(%ebp)
40df19:	39 55 f4             	cmp    %edx,-0xc(%ebp)
40df1c:	75 ed                	jne    0x40df0b
40df1e:	8b 40 0c             	mov    0xc(%eax),%eax
40df21:	c1 e8 05             	shr    $0x5,%eax
40df24:	a8 01                	test   $0x1,%al
40df26:	eb 6b                	jmp    0x40df93
40df28:	57                   	push   %edi
40df29:	ff 75 10             	push   0x10(%ebp)
40df2c:	ff 75 0c             	push   0xc(%ebp)
40df2f:	ff 75 f4             	push   -0xc(%ebp)
40df32:	e8 bf 03 00 00       	call   0x40e2f6
40df37:	23 c2                	and    %edx,%eax
40df39:	83 c4 10             	add    $0x10,%esp
40df3c:	83 ca ff             	or     $0xffffffff,%edx
40df3f:	3b c2                	cmp    %edx,%eax
40df41:	75 04                	jne    0x40df47
40df43:	8b c2                	mov    %edx,%eax
40df45:	eb 7f                	jmp    0x40dfc6
40df47:	3b df                	cmp    %edi,%ebx
40df49:	7f 2b                	jg     0x40df76
40df4b:	b9 00 02 00 00       	mov    $0x200,%ecx
40df50:	7c 04                	jl     0x40df56
40df52:	3b f1                	cmp    %ecx,%esi
40df54:	77 20                	ja     0x40df76
40df56:	8b 45 08             	mov    0x8(%ebp),%eax
40df59:	8b 40 0c             	mov    0xc(%eax),%eax
40df5c:	c1 e8 06             	shr    $0x6,%eax
40df5f:	a8 01                	test   $0x1,%al
40df61:	74 13                	je     0x40df76
40df63:	8b 45 08             	mov    0x8(%ebp),%eax
40df66:	8b 40 0c             	mov    0xc(%eax),%eax
40df69:	c1 e8 08             	shr    $0x8,%eax
40df6c:	a8 01                	test   $0x1,%al
40df6e:	75 06                	jne    0x40df76
40df70:	8b f1                	mov    %ecx,%esi
40df72:	8b df                	mov    %edi,%ebx
40df74:	eb 0b                	jmp    0x40df81
40df76:	8b 45 08             	mov    0x8(%ebp),%eax
40df79:	8b 40 18             	mov    0x18(%eax),%eax
40df7c:	99                   	cltd
40df7d:	8b f0                	mov    %eax,%esi
40df7f:	8b da                	mov    %edx,%ebx
40df81:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40df84:	8b 45 f0             	mov    -0x10(%ebp),%eax
40df87:	8b 0c 8d c0 41 42 00 	mov    0x4241c0(,%ecx,4),%ecx
40df8e:	f6 44 01 28 04       	testb  $0x4,0x28(%ecx,%eax,1)
40df93:	74 05                	je     0x40df9a
40df95:	83 c6 01             	add    $0x1,%esi
40df98:	13 df                	adc    %edi,%ebx
40df9a:	ff 75 fc             	push   -0x4(%ebp)
40df9d:	ff 75 f8             	push   -0x8(%ebp)
40dfa0:	53                   	push   %ebx
40dfa1:	56                   	push   %esi
40dfa2:	e8 e9 a0 00 00       	call   0x418090
40dfa7:	ff 75 fc             	push   -0x4(%ebp)
40dfaa:	8b fa                	mov    %edx,%edi
40dfac:	8b f0                	mov    %eax,%esi
40dfae:	ff 75 f8             	push   -0x8(%ebp)
40dfb1:	ff 75 18             	push   0x18(%ebp)
40dfb4:	ff 75 14             	push   0x14(%ebp)
40dfb7:	e8 d4 a0 00 00       	call   0x418090
40dfbc:	2b c6                	sub    %esi,%eax
40dfbe:	1b d7                	sbb    %edi,%edx
40dfc0:	03 45 0c             	add    0xc(%ebp),%eax
40dfc3:	13 55 10             	adc    0x10(%ebp),%edx
40dfc6:	5e                   	pop    %esi
40dfc7:	5b                   	pop    %ebx
40dfc8:	5f                   	pop    %edi
40dfc9:	8b e5                	mov    %ebp,%esp
40dfcb:	5d                   	pop    %ebp
40dfcc:	c3                   	ret
40dfcd:	8b ff                	mov    %edi,%edi
40dfcf:	55                   	push   %ebp
40dfd0:	8b ec                	mov    %esp,%ebp
40dfd2:	b8 18 10 00 00       	mov    $0x1018,%eax
40dfd7:	e8 c4 a3 00 00       	call   0x4183a0
40dfdc:	a1 0c 30 42 00       	mov    0x42300c,%eax
40dfe1:	33 c5                	xor    %ebp,%eax
40dfe3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dfe6:	53                   	push   %ebx
40dfe7:	ff 75 08             	push   0x8(%ebp)
40dfea:	e8 f1 d5 ff ff       	call   0x40b5e0
40dfef:	59                   	pop    %ecx
40dff0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dff3:	8b d8                	mov    %eax,%ebx
40dff5:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
40dff9:	75 0b                	jne    0x40e006
40dffb:	8b 45 0c             	mov    0xc(%ebp),%eax
40dffe:	8b 55 10             	mov    0x10(%ebp),%edx
40e001:	e9 53 01 00 00       	jmp    0x40e159
40e006:	8b 01                	mov    (%ecx),%eax
40e008:	2b 41 04             	sub    0x4(%ecx),%eax
40e00b:	56                   	push   %esi
40e00c:	57                   	push   %edi
40e00d:	6a 00                	push   $0x0
40e00f:	99                   	cltd
40e010:	6a 02                	push   $0x2
40e012:	52                   	push   %edx
40e013:	50                   	push   %eax
40e014:	e8 77 a0 00 00       	call   0x418090
40e019:	8b cb                	mov    %ebx,%ecx
40e01b:	89 85 f8 ef ff ff    	mov    %eax,-0x1008(%ebp)
40e021:	83 e1 3f             	and    $0x3f,%ecx
40e024:	89 95 e8 ef ff ff    	mov    %edx,-0x1018(%ebp)
40e02a:	8b f3                	mov    %ebx,%esi
40e02c:	6b f9 30             	imul   $0x30,%ecx,%edi
40e02f:	c1 fe 06             	sar    $0x6,%esi
40e032:	6a 00                	push   $0x0
40e034:	8b 0c b5 c0 41 42 00 	mov    0x4241c0(,%esi,4),%ecx
40e03b:	ff 74 39 24          	push   0x24(%ecx,%edi,1)
40e03f:	ff 74 39 20          	push   0x20(%ecx,%edi,1)
40e043:	53                   	push   %ebx
40e044:	e8 ad 02 00 00       	call   0x40e2f6
40e049:	8b 0c b5 c0 41 42 00 	mov    0x4241c0(,%esi,4),%ecx
40e050:	83 c4 10             	add    $0x10,%esp
40e053:	89 85 f4 ef ff ff    	mov    %eax,-0x100c(%ebp)
40e059:	8b c2                	mov    %edx,%eax
40e05b:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40e061:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
40e067:	3b 54 39 20          	cmp    0x20(%ecx,%edi,1),%edx
40e06b:	0f 85 e1 00 00 00    	jne    0x40e152
40e071:	3b 44 39 24          	cmp    0x24(%ecx,%edi,1),%eax
40e075:	0f 85 d7 00 00 00    	jne    0x40e152
40e07b:	6a 00                	push   $0x0
40e07d:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
40e083:	50                   	push   %eax
40e084:	68 00 10 00 00       	push   $0x1000
40e089:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40e08f:	50                   	push   %eax
40e090:	ff 74 39 18          	push   0x18(%ecx,%edi,1)
40e094:	ff 15 90 b0 41 00    	call   *0x41b090
40e09a:	85 c0                	test   %eax,%eax
40e09c:	0f 84 b0 00 00 00    	je     0x40e152
40e0a2:	6a 00                	push   $0x0
40e0a4:	ff 75 10             	push   0x10(%ebp)
40e0a7:	ff 75 0c             	push   0xc(%ebp)
40e0aa:	53                   	push   %ebx
40e0ab:	e8 46 02 00 00       	call   0x40e2f6
40e0b0:	83 c4 10             	add    $0x10,%esp
40e0b3:	85 d2                	test   %edx,%edx
40e0b5:	7f 0e                	jg     0x40e0c5
40e0b7:	0f 8c 95 00 00 00    	jl     0x40e152
40e0bd:	85 c0                	test   %eax,%eax
40e0bf:	0f 82 8d 00 00 00    	jb     0x40e152
40e0c5:	8b 9d e8 ef ff ff    	mov    -0x1018(%ebp),%ebx
40e0cb:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40e0d1:	85 db                	test   %ebx,%ebx
40e0d3:	7c 0a                	jl     0x40e0df
40e0d5:	7f 7b                	jg     0x40e152
40e0d7:	39 85 f8 ef ff ff    	cmp    %eax,-0x1008(%ebp)
40e0dd:	77 73                	ja     0x40e152
40e0df:	8d bd fc ef ff ff    	lea    -0x1004(%ebp),%edi
40e0e5:	33 d2                	xor    %edx,%edx
40e0e7:	03 f8                	add    %eax,%edi
40e0e9:	8d 8d fc ef ff ff    	lea    -0x1004(%ebp),%ecx
40e0ef:	33 f6                	xor    %esi,%esi
40e0f1:	39 95 f8 ef ff ff    	cmp    %edx,-0x1008(%ebp)
40e0f7:	75 04                	jne    0x40e0fd
40e0f9:	85 db                	test   %ebx,%ebx
40e0fb:	74 3c                	je     0x40e139
40e0fd:	3b cf                	cmp    %edi,%ecx
40e0ff:	73 38                	jae    0x40e139
40e101:	8a 01                	mov    (%ecx),%al
40e103:	3c 0d                	cmp    $0xd,%al
40e105:	75 13                	jne    0x40e11a
40e107:	8d 47 ff             	lea    -0x1(%edi),%eax
40e10a:	3b c8                	cmp    %eax,%ecx
40e10c:	73 18                	jae    0x40e126
40e10e:	8d 41 01             	lea    0x1(%ecx),%eax
40e111:	80 38 0a             	cmpb   $0xa,(%eax)
40e114:	75 10                	jne    0x40e126
40e116:	8b c8                	mov    %eax,%ecx
40e118:	eb 0c                	jmp    0x40e126
40e11a:	0f b6 c0             	movzbl %al,%eax
40e11d:	0f be 80 30 38 42 00 	movsbl 0x423830(%eax),%eax
40e124:	03 c8                	add    %eax,%ecx
40e126:	83 c6 01             	add    $0x1,%esi
40e129:	83 d2 00             	adc    $0x0,%edx
40e12c:	41                   	inc    %ecx
40e12d:	3b b5 f8 ef ff ff    	cmp    -0x1008(%ebp),%esi
40e133:	75 c8                	jne    0x40e0fd
40e135:	3b d3                	cmp    %ebx,%edx
40e137:	75 c4                	jne    0x40e0fd
40e139:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40e13f:	2b c8                	sub    %eax,%ecx
40e141:	8b c1                	mov    %ecx,%eax
40e143:	99                   	cltd
40e144:	03 85 f4 ef ff ff    	add    -0x100c(%ebp),%eax
40e14a:	13 95 ec ef ff ff    	adc    -0x1014(%ebp),%edx
40e150:	eb 05                	jmp    0x40e157
40e152:	83 c8 ff             	or     $0xffffffff,%eax
40e155:	0b d0                	or     %eax,%edx
40e157:	5f                   	pop    %edi
40e158:	5e                   	pop    %esi
40e159:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e15c:	33 cd                	xor    %ebp,%ecx
40e15e:	5b                   	pop    %ebx
40e15f:	e8 f2 4d ff ff       	call   0x402f56
40e164:	8b e5                	mov    %ebp,%esp
40e166:	5d                   	pop    %ebp
40e167:	c3                   	ret
40e168:	8b ff                	mov    %edi,%edi
40e16a:	55                   	push   %ebp
40e16b:	8b ec                	mov    %esp,%ebp
40e16d:	5d                   	pop    %ebp
40e16e:	e9 41 fb ff ff       	jmp    0x40dcb4
40e173:	6a 1c                	push   $0x1c
40e175:	68 28 1e 42 00       	push   $0x421e28
40e17a:	e8 d1 59 ff ff       	call   0x403b50
40e17f:	8b 7d 08             	mov    0x8(%ebp),%edi
40e182:	83 ff fe             	cmp    $0xfffffffe,%edi
40e185:	75 18                	jne    0x40e19f
40e187:	e8 68 9b ff ff       	call   0x407cf4
40e18c:	83 20 00             	andl   $0x0,(%eax)
40e18f:	e8 73 9b ff ff       	call   0x407d07
40e194:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40e19a:	e9 cc 00 00 00       	jmp    0x40e26b
40e19f:	85 ff                	test   %edi,%edi
40e1a1:	0f 88 ac 00 00 00    	js     0x40e253
40e1a7:	3b 3d c0 43 42 00    	cmp    0x4243c0,%edi
40e1ad:	0f 83 a0 00 00 00    	jae    0x40e253
40e1b3:	8b cf                	mov    %edi,%ecx
40e1b5:	c1 f9 06             	sar    $0x6,%ecx
40e1b8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40e1bb:	8b c7                	mov    %edi,%eax
40e1bd:	83 e0 3f             	and    $0x3f,%eax
40e1c0:	6b d0 30             	imul   $0x30,%eax,%edx
40e1c3:	89 55 e0             	mov    %edx,-0x20(%ebp)
40e1c6:	8b 04 8d c0 41 42 00 	mov    0x4241c0(,%ecx,4),%eax
40e1cd:	0f b6 44 10 28       	movzbl 0x28(%eax,%edx,1),%eax
40e1d2:	83 e0 01             	and    $0x1,%eax
40e1d5:	74 7c                	je     0x40e253
40e1d7:	57                   	push   %edi
40e1d8:	e8 db e1 ff ff       	call   0x40c3b8
40e1dd:	59                   	pop    %ecx
40e1de:	83 ce ff             	or     $0xffffffff,%esi
40e1e1:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40e1e4:	8b de                	mov    %esi,%ebx
40e1e6:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40e1e9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e1ed:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e1f0:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40e1f7:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e1fa:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
40e1ff:	75 15                	jne    0x40e216
40e201:	e8 01 9b ff ff       	call   0x407d07
40e206:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40e20c:	e8 e3 9a ff ff       	call   0x407cf4
40e211:	83 20 00             	andl   $0x0,(%eax)
40e214:	eb 1c                	jmp    0x40e232
40e216:	ff 75 14             	push   0x14(%ebp)
40e219:	ff 75 10             	push   0x10(%ebp)
40e21c:	ff 75 0c             	push   0xc(%ebp)
40e21f:	57                   	push   %edi
40e220:	e8 53 00 00 00       	call   0x40e278
40e225:	83 c4 10             	add    $0x10,%esp
40e228:	8b f0                	mov    %eax,%esi
40e22a:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40e22d:	8b da                	mov    %edx,%ebx
40e22f:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40e232:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e239:	e8 0d 00 00 00       	call   0x40e24b
40e23e:	8b d3                	mov    %ebx,%edx
40e240:	eb 2e                	jmp    0x40e270
40e242:	8b 7d 08             	mov    0x8(%ebp),%edi
40e245:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40e248:	8b 75 d4             	mov    -0x2c(%ebp),%esi
40e24b:	57                   	push   %edi
40e24c:	e8 1e e2 ff ff       	call   0x40c46f
40e251:	59                   	pop    %ecx
40e252:	c3                   	ret
40e253:	e8 9c 9a ff ff       	call   0x407cf4
40e258:	83 20 00             	andl   $0x0,(%eax)
40e25b:	e8 a7 9a ff ff       	call   0x407d07
40e260:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40e266:	e8 c3 99 ff ff       	call   0x407c2e
40e26b:	83 ce ff             	or     $0xffffffff,%esi
40e26e:	8b d6                	mov    %esi,%edx
40e270:	8b c6                	mov    %esi,%eax
40e272:	e8 1f 59 ff ff       	call   0x403b96
40e277:	c3                   	ret
40e278:	8b ff                	mov    %edi,%edi
40e27a:	55                   	push   %ebp
40e27b:	8b ec                	mov    %esp,%ebp
40e27d:	51                   	push   %ecx
40e27e:	51                   	push   %ecx