40da17:	88 07                	mov    %al,(%edi)
40da19:	47                   	inc    %edi
40da1a:	46                   	inc    %esi
40da1b:	8a 45 1b             	mov    0x1b(%ebp),%al
40da1e:	84 c0                	test   %al,%al
40da20:	74 19                	je     0x40da3b
40da22:	8b 4d 08             	mov    0x8(%ebp),%ecx
40da25:	85 c9                	test   %ecx,%ecx
40da27:	75 b1                	jne    0x40d9da
40da29:	3c 20                	cmp    $0x20,%al
40da2b:	74 04                	je     0x40da31
40da2d:	3c 09                	cmp    $0x9,%al
40da2f:	75 a9                	jne    0x40d9da
40da31:	85 ff                	test   %edi,%edi
40da33:	74 07                	je     0x40da3c
40da35:	c6 47 ff 00          	movb   $0x0,-0x1(%edi)
40da39:	eb 01                	jmp    0x40da3c
40da3b:	4e                   	dec    %esi
40da3c:	83 65 18 00          	andl   $0x0,0x18(%ebp)
40da40:	80 3e 00             	cmpb   $0x0,(%esi)
40da43:	0f 84 ca 00 00 00    	je     0x40db13
40da49:	8a 06                	mov    (%esi),%al
40da4b:	3c 20                	cmp    $0x20,%al
40da4d:	74 04                	je     0x40da53
40da4f:	3c 09                	cmp    $0x9,%al
40da51:	75 03                	jne    0x40da56
40da53:	46                   	inc    %esi
40da54:	eb f3                	jmp    0x40da49
40da56:	80 3e 00             	cmpb   $0x0,(%esi)
40da59:	0f 84 b4 00 00 00    	je     0x40db13
40da5f:	8b 55 0c             	mov    0xc(%ebp),%edx
40da62:	85 d2                	test   %edx,%edx
40da64:	74 08                	je     0x40da6e
40da66:	89 3a                	mov    %edi,(%edx)
40da68:	83 c2 04             	add    $0x4,%edx
40da6b:	89 55 0c             	mov    %edx,0xc(%ebp)
40da6e:	8b 45 14             	mov    0x14(%ebp),%eax
40da71:	ff 00                	incl   (%eax)
40da73:	33 d2                	xor    %edx,%edx
40da75:	42                   	inc    %edx
40da76:	33 c9                	xor    %ecx,%ecx
40da78:	eb 02                	jmp    0x40da7c
40da7a:	46                   	inc    %esi
40da7b:	41                   	inc    %ecx
40da7c:	80 3e 5c             	cmpb   $0x5c,(%esi)
40da7f:	74 f9                	je     0x40da7a
40da81:	80 3e 22             	cmpb   $0x22,(%esi)
40da84:	75 33                	jne    0x40dab9
40da86:	f6 c1 01             	test   $0x1,%cl
40da89:	75 1f                	jne    0x40daaa
40da8b:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40da8f:	74 0c                	je     0x40da9d
40da91:	8d 46 01             	lea    0x1(%esi),%eax
40da94:	80 38 22             	cmpb   $0x22,(%eax)
40da97:	75 04                	jne    0x40da9d
40da99:	8b f0                	mov    %eax,%esi
40da9b:	eb 0d                	jmp    0x40daaa
40da9d:	33 c0                	xor    %eax,%eax
40da9f:	33 d2                	xor    %edx,%edx
40daa1:	39 45 18             	cmp    %eax,0x18(%ebp)
40daa4:	0f 94 c0             	sete   %al
40daa7:	89 45 18             	mov    %eax,0x18(%ebp)
40daaa:	d1 e9                	shr    $1,%ecx
40daac:	eb 0b                	jmp    0x40dab9
40daae:	49                   	dec    %ecx
40daaf:	85 ff                	test   %edi,%edi
40dab1:	74 04                	je     0x40dab7
40dab3:	c6 07 5c             	movb   $0x5c,(%edi)
40dab6:	47                   	inc    %edi
40dab7:	ff 03                	incl   (%ebx)
40dab9:	85 c9                	test   %ecx,%ecx
40dabb:	75 f1                	jne    0x40daae
40dabd:	8a 06                	mov    (%esi),%al
40dabf:	84 c0                	test   %al,%al
40dac1:	74 41                	je     0x40db04
40dac3:	39 4d 18             	cmp    %ecx,0x18(%ebp)
40dac6:	75 08                	jne    0x40dad0
40dac8:	3c 20                	cmp    $0x20,%al
40daca:	74 38                	je     0x40db04
40dacc:	3c 09                	cmp    $0x9,%al
40dace:	74 34                	je     0x40db04
40dad0:	85 d2                	test   %edx,%edx
40dad2:	74 2a                	je     0x40dafe
40dad4:	0f be c0             	movsbl %al,%eax
40dad7:	50                   	push   %eax
40dad8:	e8 4a a7 ff ff       	call   0x408227
40dadd:	59                   	pop    %ecx
40dade:	85 ff                	test   %edi,%edi
40dae0:	74 13                	je     0x40daf5
40dae2:	85 c0                	test   %eax,%eax
40dae4:	74 08                	je     0x40daee
40dae6:	8a 06                	mov    (%esi),%al
40dae8:	88 07                	mov    %al,(%edi)
40daea:	47                   	inc    %edi
40daeb:	46                   	inc    %esi
40daec:	ff 03                	incl   (%ebx)
40daee:	8a 06                	mov    (%esi),%al
40daf0:	88 07                	mov    %al,(%edi)
40daf2:	47                   	inc    %edi
40daf3:	eb 07                	jmp    0x40dafc
40daf5:	85 c0                	test   %eax,%eax
40daf7:	74 03                	je     0x40dafc
40daf9:	46                   	inc    %esi
40dafa:	ff 03                	incl   (%ebx)
40dafc:	ff 03                	incl   (%ebx)
40dafe:	46                   	inc    %esi
40daff:	e9 6f ff ff ff       	jmp    0x40da73
40db04:	85 ff                	test   %edi,%edi
40db06:	74 04                	je     0x40db0c
40db08:	c6 07 00             	movb   $0x0,(%edi)
40db0b:	47                   	inc    %edi
40db0c:	ff 03                	incl   (%ebx)
40db0e:	e9 2d ff ff ff       	jmp    0x40da40
40db13:	8b 55 0c             	mov    0xc(%ebp),%edx
40db16:	5f                   	pop    %edi
40db17:	5e                   	pop    %esi
40db18:	5b                   	pop    %ebx
40db19:	85 d2                	test   %edx,%edx
40db1b:	74 03                	je     0x40db20
40db1d:	83 22 00             	andl   $0x0,(%edx)
40db20:	8b 45 14             	mov    0x14(%ebp),%eax
40db23:	ff 00                	incl   (%eax)
40db25:	5d                   	pop    %ebp
40db26:	c3                   	ret
40db27:	83 3d 2c 2b 42 00 00 	cmpl   $0x0,0x422b2c
40db2e:	75 05                	jne    0x40db35
40db30:	e8 b8 df ff ff       	call   0x40baed
40db35:	56                   	push   %esi
40db36:	8b 35 48 1c 42 00    	mov    0x421c48,%esi
40db3c:	57                   	push   %edi
40db3d:	33 ff                	xor    %edi,%edi
40db3f:	85 f6                	test   %esi,%esi
40db41:	75 17                	jne    0x40db5a
40db43:	83 c8 ff             	or     $0xffffffff,%eax
40db46:	e9 96 00 00 00       	jmp    0x40dbe1
40db4b:	3c 3d                	cmp    $0x3d,%al
40db4d:	74 01                	je     0x40db50
40db4f:	47                   	inc    %edi
40db50:	56                   	push   %esi
40db51:	e8 9a 81 ff ff       	call   0x405cf0
40db56:	46                   	inc    %esi
40db57:	59                   	pop    %ecx
40db58:	03 f0                	add    %eax,%esi
40db5a:	8a 06                	mov    (%esi),%al
40db5c:	84 c0                	test   %al,%al
40db5e:	75 eb                	jne    0x40db4b
40db60:	8d 47 01             	lea    0x1(%edi),%eax
40db63:	6a 04                	push   $0x4
40db65:	50                   	push   %eax
40db66:	e8 ed ae ff ff       	call   0x408a58
40db6b:	8b f8                	mov    %eax,%edi
40db6d:	59                   	pop    %ecx
40db6e:	59                   	pop    %ecx
40db6f:	89 3d e8 20 42 00    	mov    %edi,0x4220e8
40db75:	85 ff                	test   %edi,%edi
40db77:	74 ca                	je     0x40db43
40db79:	8b 35 48 1c 42 00    	mov    0x421c48,%esi
40db7f:	53                   	push   %ebx
40db80:	80 3e 00             	cmpb   $0x0,(%esi)
40db83:	74 3e                	je     0x40dbc3
40db85:	56                   	push   %esi
40db86:	e8 65 81 ff ff       	call   0x405cf0
40db8b:	80 3e 3d             	cmpb   $0x3d,(%esi)
40db8e:	59                   	pop    %ecx
40db8f:	8d 58 01             	lea    0x1(%eax),%ebx
40db92:	74 22                	je     0x40dbb6
40db94:	6a 01                	push   $0x1
40db96:	53                   	push   %ebx
40db97:	e8 bc ae ff ff       	call   0x408a58
40db9c:	59                   	pop    %ecx
40db9d:	59                   	pop    %ecx
40db9e:	89 07                	mov    %eax,(%edi)
40dba0:	85 c0                	test   %eax,%eax
40dba2:	74 40                	je     0x40dbe4
40dba4:	56                   	push   %esi
40dba5:	53                   	push   %ebx
40dba6:	50                   	push   %eax
40dba7:	e8 99 d8 ff ff       	call   0x40b445
40dbac:	83 c4 0c             	add    $0xc,%esp
40dbaf:	85 c0                	test   %eax,%eax
40dbb1:	75 48                	jne    0x40dbfb
40dbb3:	83 c7 04             	add    $0x4,%edi
40dbb6:	03 f3                	add    %ebx,%esi
40dbb8:	80 3e 00             	cmpb   $0x0,(%esi)
40dbbb:	75 c8                	jne    0x40db85
40dbbd:	8b 35 48 1c 42 00    	mov    0x421c48,%esi
40dbc3:	56                   	push   %esi
40dbc4:	e8 4f 75 ff ff       	call   0x405118
40dbc9:	83 25 48 1c 42 00 00 	andl   $0x0,0x421c48
40dbd0:	83 27 00             	andl   $0x0,(%edi)
40dbd3:	c7 05 30 2b 42 00 01 	movl   $0x1,0x422b30
40dbda:	00 00 00
40dbdd:	33 c0                	xor    %eax,%eax
40dbdf:	59                   	pop    %ecx
40dbe0:	5b                   	pop    %ebx
40dbe1:	5f                   	pop    %edi
40dbe2:	5e                   	pop    %esi
40dbe3:	c3                   	ret
40dbe4:	ff 35 e8 20 42 00    	push   0x4220e8
40dbea:	e8 29 75 ff ff       	call   0x405118
40dbef:	83 25 e8 20 42 00 00 	andl   $0x0,0x4220e8
40dbf6:	83 c8 ff             	or     $0xffffffff,%eax
40dbf9:	eb e4                	jmp    0x40dbdf
40dbfb:	33 c0                	xor    %eax,%eax
40dbfd:	50                   	push   %eax
40dbfe:	50                   	push   %eax
40dbff:	50                   	push   %eax
40dc00:	50                   	push   %eax
40dc01:	50                   	push   %eax
40dc02:	e8 fe d9 ff ff       	call   0x40b605
40dc07:	cc                   	int3
40dc08:	55                   	push   %ebp
40dc09:	8b ec                	mov    %esp,%ebp
40dc0b:	8b 45 08             	mov    0x8(%ebp),%eax
40dc0e:	a3 10 21 42 00       	mov    %eax,0x422110
40dc13:	5d                   	pop    %ebp
40dc14:	c3                   	ret
40dc15:	55                   	push   %ebp
40dc16:	8b ec                	mov    %esp,%ebp
40dc18:	8b 45 08             	mov    0x8(%ebp),%eax
40dc1b:	85 c0                	test   %eax,%eax
40dc1d:	78 21                	js     0x40dc40
40dc1f:	83 f8 02             	cmp    $0x2,%eax
40dc22:	7e 0d                	jle    0x40dc31
40dc24:	83 f8 03             	cmp    $0x3,%eax
40dc27:	75 17                	jne    0x40dc40
40dc29:	8b 0d 88 28 42 00    	mov    0x422888,%ecx
40dc2f:	eb 0b                	jmp    0x40dc3c
40dc31:	8b 0d 88 28 42 00    	mov    0x422888,%ecx
40dc37:	a3 88 28 42 00       	mov    %eax,0x422888
40dc3c:	8b c1                	mov    %ecx,%eax
40dc3e:	5d                   	pop    %ebp
40dc3f:	c3                   	ret
40dc40:	e8 38 a5 ff ff       	call   0x40817d
40dc45:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40dc4b:	e8 a5 d9 ff ff       	call   0x40b5f5
40dc50:	83 c8 ff             	or     $0xffffffff,%eax
40dc53:	5d                   	pop    %ebp
40dc54:	c3                   	ret
40dc55:	55                   	push   %ebp
40dc56:	8b ec                	mov    %esp,%ebp
40dc58:	83 ec 14             	sub    $0x14,%esp
40dc5b:	a1 90 08 42 00       	mov    0x420890,%eax
40dc60:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40dc64:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40dc68:	56                   	push   %esi
40dc69:	57                   	push   %edi
40dc6a:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40dc6f:	be 00 00 ff ff       	mov    $0xffff0000,%esi
40dc74:	3b c7                	cmp    %edi,%eax
40dc76:	74 0d                	je     0x40dc85
40dc78:	85 c6                	test   %eax,%esi
40dc7a:	74 09                	je     0x40dc85
40dc7c:	f7 d0                	not    %eax
40dc7e:	a3 94 08 42 00       	mov    %eax,0x420894
40dc83:	eb 66                	jmp    0x40dceb
40dc85:	8d 45 f4             	lea    -0xc(%ebp),%eax
40dc88:	50                   	push   %eax
40dc89:	ff 15 e0 90 41 00    	call   *0x4190e0
40dc8f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40dc92:	33 45 f4             	xor    -0xc(%ebp),%eax
40dc95:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dc98:	ff 15 cc 90 41 00    	call   *0x4190cc
40dc9e:	31 45 fc             	xor    %eax,-0x4(%ebp)
40dca1:	ff 15 e4 90 41 00    	call   *0x4190e4
40dca7:	31 45 fc             	xor    %eax,-0x4(%ebp)
40dcaa:	8d 45 ec             	lea    -0x14(%ebp),%eax
40dcad:	50                   	push   %eax
40dcae:	ff 15 24 90 41 00    	call   *0x419024
40dcb4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40dcb7:	33 4d ec             	xor    -0x14(%ebp),%ecx
40dcba:	8d 45 fc             	lea    -0x4(%ebp),%eax
40dcbd:	33 4d fc             	xor    -0x4(%ebp),%ecx
40dcc0:	33 c8                	xor    %eax,%ecx
40dcc2:	3b cf                	cmp    %edi,%ecx
40dcc4:	75 07                	jne    0x40dccd
40dcc6:	b9 4f e6 40 bb       	mov    $0xbb40e64f,%ecx
40dccb:	eb 10                	jmp    0x40dcdd
40dccd:	85 ce                	test   %ecx,%esi
40dccf:	75 0c                	jne    0x40dcdd
40dcd1:	8b c1                	mov    %ecx,%eax
40dcd3:	0d 11 47 00 00       	or     $0x4711,%eax
40dcd8:	c1 e0 10             	shl    $0x10,%eax
40dcdb:	0b c8                	or     %eax,%ecx
40dcdd:	89 0d 90 08 42 00    	mov    %ecx,0x420890
40dce3:	f7 d1                	not    %ecx
40dce5:	89 0d 94 08 42 00    	mov    %ecx,0x420894
40dceb:	5f                   	pop    %edi
40dcec:	5e                   	pop    %esi
40dced:	c9                   	leave
40dcee:	c3                   	ret
40dcef:	56                   	push   %esi
40dcf0:	57                   	push   %edi
40dcf1:	be e0 df 41 00       	mov    $0x41dfe0,%esi
40dcf6:	bf e0 df 41 00       	mov    $0x41dfe0,%edi
40dcfb:	eb 0b                	jmp    0x40dd08
40dcfd:	8b 06                	mov    (%esi),%eax
40dcff:	85 c0                	test   %eax,%eax
40dd01:	74 02                	je     0x40dd05
40dd03:	ff d0                	call   *%eax
40dd05:	83 c6 04             	add    $0x4,%esi
40dd08:	3b f7                	cmp    %edi,%esi
40dd0a:	72 f1                	jb     0x40dcfd
40dd0c:	5f                   	pop    %edi
40dd0d:	5e                   	pop    %esi
40dd0e:	c3                   	ret
40dd0f:	56                   	push   %esi
40dd10:	57                   	push   %edi
40dd11:	be e8 df 41 00       	mov    $0x41dfe8,%esi
40dd16:	bf e8 df 41 00       	mov    $0x41dfe8,%edi
40dd1b:	eb 0b                	jmp    0x40dd28
40dd1d:	8b 06                	mov    (%esi),%eax
40dd1f:	85 c0                	test   %eax,%eax
40dd21:	74 02                	je     0x40dd25
40dd23:	ff d0                	call   *%eax
40dd25:	83 c6 04             	add    $0x4,%esi
40dd28:	3b f7                	cmp    %edi,%esi
40dd2a:	72 f1                	jb     0x40dd1d
40dd2c:	5f                   	pop    %edi
40dd2d:	5e                   	pop    %esi
40dd2e:	c3                   	ret
40dd2f:	55                   	push   %ebp
40dd30:	8b ec                	mov    %esp,%ebp
40dd32:	51                   	push   %ecx
40dd33:	57                   	push   %edi
40dd34:	ff 15 e8 90 41 00    	call   *0x4190e8
40dd3a:	8b f8                	mov    %eax,%edi
40dd3c:	33 c0                	xor    %eax,%eax
40dd3e:	85 ff                	test   %edi,%edi
40dd40:	74 75                	je     0x40ddb7
40dd42:	56                   	push   %esi
40dd43:	8b f7                	mov    %edi,%esi
40dd45:	66 39 07             	cmp    %ax,(%edi)
40dd48:	74 10                	je     0x40dd5a
40dd4a:	83 c6 02             	add    $0x2,%esi
40dd4d:	66 39 06             	cmp    %ax,(%esi)
40dd50:	75 f8                	jne    0x40dd4a
40dd52:	83 c6 02             	add    $0x2,%esi
40dd55:	66 39 06             	cmp    %ax,(%esi)
40dd58:	75 f0                	jne    0x40dd4a
40dd5a:	53                   	push   %ebx
40dd5b:	50                   	push   %eax
40dd5c:	50                   	push   %eax
40dd5d:	50                   	push   %eax
40dd5e:	2b f7                	sub    %edi,%esi
40dd60:	50                   	push   %eax
40dd61:	d1 fe                	sar    $1,%esi
40dd63:	46                   	inc    %esi
40dd64:	56                   	push   %esi
40dd65:	57                   	push   %edi