40d8e9:	8b da                	mov    %edx,%ebx
40d8eb:	8b f0                	mov    %eax,%esi
40d8ed:	33 c0                	xor    %eax,%eax
40d8ef:	89 04 24             	mov    %eax,(%esp)
40d8f2:	85 db                	test   %ebx,%ebx
40d8f4:	7e 46                	jle    0x40d93c
40d8f6:	8b c6                	mov    %esi,%eax
40d8f8:	e8 23 72 ff ff       	call   0x404b20
40d8fd:	3b d8                	cmp    %eax,%ebx
40d8ff:	7e 09                	jle    0x40d90a
40d901:	8b c6                	mov    %esi,%eax
40d903:	e8 18 72 ff ff       	call   0x404b20
40d908:	8b d8                	mov    %eax,%ebx
40d90a:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40d911:	74 26                	je     0x40d939
40d913:	54                   	push   %esp
40d914:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40d918:	8b d3                	mov    %ebx,%edx
40d91a:	8b c6                	mov    %esi,%eax
40d91c:	e8 cf fe ff ff       	call   0x40d7f0
40d921:	8b c6                	mov    %esi,%eax
40d923:	e8 f8 71 ff ff       	call   0x404b20
40d928:	3b 04 24             	cmp    (%esp),%eax
40d92b:	7d 0f                	jge    0x40d93c
40d92d:	8b c6                	mov    %esi,%eax
40d92f:	e8 ec 71 ff ff       	call   0x404b20
40d934:	89 04 24             	mov    %eax,(%esp)
40d937:	eb 03                	jmp    0x40d93c
40d939:	89 1c 24             	mov    %ebx,(%esp)
40d93c:	8b 04 24             	mov    (%esp),%eax
40d93f:	59                   	pop    %ecx
40d940:	5a                   	pop    %edx
40d941:	5e                   	pop    %esi
40d942:	5b                   	pop    %ebx
40d943:	c3                   	ret
40d944:	53                   	push   %ebx
40d945:	8b d8                	mov    %eax,%ebx
40d947:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40d94e:	74 0a                	je     0x40d95a
40d950:	53                   	push   %ebx
40d951:	e8 e2 9e ff ff       	call   0x407838
40d956:	2b c3                	sub    %ebx,%eax
40d958:	5b                   	pop    %ebx
40d959:	c3                   	ret
40d95a:	b8 01 00 00 00       	mov    $0x1,%eax
40d95f:	5b                   	pop    %ebx
40d960:	c3                   	ret
40d961:	8d 40 00             	lea    0x0(%eax),%eax
40d964:	50                   	push   %eax
40d965:	e8 ce 9e ff ff       	call   0x407838
40d96a:	c3                   	ret
40d96b:	90                   	nop
40d96c:	53                   	push   %ebx
40d96d:	56                   	push   %esi
40d96e:	8b f2                	mov    %edx,%esi
40d970:	8b d8                	mov    %eax,%ebx
40d972:	b8 01 00 00 00       	mov    $0x1,%eax
40d977:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40d97e:	74 22                	je     0x40d9a2
40d980:	8a 54 33 ff          	mov    -0x1(%ebx,%esi,1),%dl
40d984:	81 e2 ff 00 00 00    	and    $0xff,%edx
40d98a:	0f a3 15 20 a1 68 00 	bt     %edx,0x68a120
40d991:	73 0f                	jae    0x40d9a2
40d993:	8b c3                	mov    %ebx,%eax
40d995:	e8 7e 73 ff ff       	call   0x404d18
40d99a:	03 c6                	add    %esi,%eax
40d99c:	48                   	dec    %eax
40d99d:	e8 a2 ff ff ff       	call   0x40d944
40d9a2:	5e                   	pop    %esi
40d9a3:	5b                   	pop    %ebx
40d9a4:	c3                   	ret
40d9a5:	8d 40 00             	lea    0x0(%eax),%eax
40d9a8:	53                   	push   %ebx
40d9a9:	56                   	push   %esi
40d9aa:	8b da                	mov    %edx,%ebx
40d9ac:	8b f0                	mov    %eax,%esi
40d9ae:	8d 43 01             	lea    0x1(%ebx),%eax
40d9b1:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40d9b8:	74 24                	je     0x40d9de
40d9ba:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40d9be:	81 e2 ff 00 00 00    	and    $0xff,%edx
40d9c4:	0f a3 15 20 a1 68 00 	bt     %edx,0x68a120
40d9cb:	73 11                	jae    0x40d9de
40d9cd:	8b c6                	mov    %esi,%eax
40d9cf:	e8 44 73 ff ff       	call   0x404d18
40d9d4:	03 c3                	add    %ebx,%eax
40d9d6:	48                   	dec    %eax
40d9d7:	e8 68 ff ff ff       	call   0x40d944
40d9dc:	03 c3                	add    %ebx,%eax
40d9de:	5e                   	pop    %esi
40d9df:	5b                   	pop    %ebx
40d9e0:	c3                   	ret
40d9e1:	8d 40 00             	lea    0x0(%eax),%eax
40d9e4:	53                   	push   %ebx
40d9e5:	56                   	push   %esi
40d9e6:	8b da                	mov    %edx,%ebx
40d9e8:	8b f0                	mov    %eax,%esi
40d9ea:	85 db                	test   %ebx,%ebx
40d9ec:	7e 1f                	jle    0x40da0d
40d9ee:	8b c6                	mov    %esi,%eax
40d9f0:	e8 2b 71 ff ff       	call   0x404b20
40d9f5:	3b d8                	cmp    %eax,%ebx
40d9f7:	7f 14                	jg     0x40da0d
40d9f9:	80 7c 1e ff 5c       	cmpb   $0x5c,-0x1(%esi,%ebx,1)
40d9fe:	75 0d                	jne    0x40da0d
40da00:	8b d3                	mov    %ebx,%edx
40da02:	8b c6                	mov    %esi,%eax
40da04:	e8 2b fd ff ff       	call   0x40d734
40da09:	84 c0                	test   %al,%al
40da0b:	74 05                	je     0x40da12
40da0d:	33 c0                	xor    %eax,%eax
40da0f:	5e                   	pop    %esi
40da10:	5b                   	pop    %ebx
40da11:	c3                   	ret
40da12:	b0 01                	mov    $0x1,%al
40da14:	5e                   	pop    %esi
40da15:	5b                   	pop    %ebx
40da16:	c3                   	ret
40da17:	90                   	nop
40da18:	53                   	push   %ebx
40da19:	56                   	push   %esi
40da1a:	57                   	push   %edi
40da1b:	55                   	push   %ebp
40da1c:	8b f9                	mov    %ecx,%edi
40da1e:	8b f2                	mov    %edx,%esi
40da20:	8b e8                	mov    %eax,%ebp
40da22:	33 db                	xor    %ebx,%ebx
40da24:	85 ff                	test   %edi,%edi
40da26:	7e 2d                	jle    0x40da55
40da28:	8b c6                	mov    %esi,%eax
40da2a:	e8 f1 70 ff ff       	call   0x404b20
40da2f:	3b f8                	cmp    %eax,%edi
40da31:	7f 22                	jg     0x40da55
40da33:	8b d7                	mov    %edi,%edx
40da35:	8b c6                	mov    %esi,%eax
40da37:	e8 f8 fc ff ff       	call   0x40d734
40da3c:	84 c0                	test   %al,%al
40da3e:	75 15                	jne    0x40da55
40da40:	8b c5                	mov    %ebp,%eax
40da42:	e8 d1 72 ff ff       	call   0x404d18
40da47:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
40da4b:	e8 78 c5 ff ff       	call   0x409fc8
40da50:	85 c0                	test   %eax,%eax
40da52:	0f 95 c3             	setne  %bl
40da55:	8b c3                	mov    %ebx,%eax
40da57:	5d                   	pop    %ebp
40da58:	5f                   	pop    %edi
40da59:	5e                   	pop    %esi
40da5a:	5b                   	pop    %ebx
40da5b:	c3                   	ret
40da5c:	53                   	push   %ebx
40da5d:	56                   	push   %esi
40da5e:	8b da                	mov    %edx,%ebx
40da60:	8b f0                	mov    %eax,%esi
40da62:	8b c3                	mov    %ebx,%eax
40da64:	8b d6                	mov    %esi,%edx
40da66:	e8 51 6e ff ff       	call   0x4048bc
40da6b:	8b 03                	mov    (%ebx),%eax
40da6d:	e8 ae 70 ff ff       	call   0x404b20
40da72:	8b d0                	mov    %eax,%edx
40da74:	8b 03                	mov    (%ebx),%eax
40da76:	e8 69 ff ff ff       	call   0x40d9e4
40da7b:	84 c0                	test   %al,%al
40da7d:	74 11                	je     0x40da90
40da7f:	8b 03                	mov    (%ebx),%eax
40da81:	e8 9a 70 ff ff       	call   0x404b20
40da86:	8b d0                	mov    %eax,%edx
40da88:	4a                   	dec    %edx
40da89:	8b c3                	mov    %ebx,%eax
40da8b:	e8 14 74 ff ff       	call   0x404ea4
40da90:	5e                   	pop    %esi
40da91:	5b                   	pop    %ebx
40da92:	c3                   	ret
40da93:	90                   	nop
40da94:	53                   	push   %ebx
40da95:	56                   	push   %esi
40da96:	57                   	push   %edi
40da97:	55                   	push   %ebp
40da98:	8b f2                	mov    %edx,%esi
40da9a:	8b d8                	mov    %eax,%ebx
40da9c:	33 ff                	xor    %edi,%edi
40da9e:	8b c3                	mov    %ebx,%eax
40daa0:	e8 73 72 ff ff       	call   0x404d18
40daa5:	50                   	push   %eax
40daa6:	8b c6                	mov    %esi,%eax
40daa8:	e8 6b 72 ff ff       	call   0x404d18
40daad:	8b e8                	mov    %eax,%ebp
40daaf:	8b c5                	mov    %ebp,%eax
40dab1:	5a                   	pop    %edx
40dab2:	e8 a1 00 00 00       	call   0x40db58
40dab7:	8b d8                	mov    %eax,%ebx
40dab9:	85 db                	test   %ebx,%ebx
40dabb:	74 05                	je     0x40dac2
40dabd:	8b fb                	mov    %ebx,%edi
40dabf:	2b fd                	sub    %ebp,%edi
40dac1:	47                   	inc    %edi
40dac2:	8b c7                	mov    %edi,%eax
40dac4:	5d                   	pop    %ebp
40dac5:	5f                   	pop    %edi
40dac6:	5e                   	pop    %esi
40dac7:	5b                   	pop    %ebx
40dac8:	c3                   	ret
40dac9:	8d 40 00             	lea    0x0(%eax),%eax
40dacc:	53                   	push   %ebx
40dacd:	56                   	push   %esi
40dace:	57                   	push   %edi
40dacf:	55                   	push   %ebp
40dad0:	8b fa                	mov    %edx,%edi
40dad2:	8b f0                	mov    %eax,%esi
40dad4:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40dadb:	74 6d                	je     0x40db4a
40dadd:	8b c6                	mov    %esi,%eax
40dadf:	e8 3c 70 ff ff       	call   0x404b20
40dae4:	8b e8                	mov    %eax,%ebp
40dae6:	8b c7                	mov    %edi,%eax
40dae8:	8b d5                	mov    %ebp,%edx
40daea:	e8 b5 73 ff ff       	call   0x404ea4
40daef:	bb 01 00 00 00       	mov    $0x1,%ebx
40daf4:	3b eb                	cmp    %ebx,%ebp
40daf6:	7c 5b                	jl     0x40db53
40daf8:	8b c7                	mov    %edi,%eax
40dafa:	e8 71 72 ff ff       	call   0x404d70
40daff:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40db03:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40db07:	8a 44 1e ff          	mov    -0x1(%esi,%ebx,1),%al
40db0b:	25 ff 00 00 00       	and    $0xff,%eax
40db10:	0f a3 05 20 a1 68 00 	bt     %eax,0x68a120
40db17:	73 12                	jae    0x40db2b
40db19:	43                   	inc    %ebx
40db1a:	8b c7                	mov    %edi,%eax
40db1c:	e8 4f 72 ff ff       	call   0x404d70
40db21:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40db25:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40db29:	eb 18                	jmp    0x40db43
40db2b:	8b 07                	mov    (%edi),%eax
40db2d:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
40db31:	04 bf                	add    $0xbf,%al
40db33:	2c 1a                	sub    $0x1a,%al
40db35:	73 0c                	jae    0x40db43
40db37:	8b c7                	mov    %edi,%eax
40db39:	e8 32 72 ff ff       	call   0x404d70
40db3e:	80 44 18 ff 20       	addb   $0x20,-0x1(%eax,%ebx,1)
40db43:	43                   	inc    %ebx
40db44:	3b eb                	cmp    %ebx,%ebp
40db46:	7d b0                	jge    0x40daf8
40db48:	eb 09                	jmp    0x40db53
40db4a:	8b d7                	mov    %edi,%edx
40db4c:	8b c6                	mov    %esi,%eax
40db4e:	e8 59 b7 ff ff       	call   0x4092ac
40db53:	5d                   	pop    %ebp
40db54:	5f                   	pop    %edi
40db55:	5e                   	pop    %esi
40db56:	5b                   	pop    %ebx
40db57:	c3                   	ret
40db58:	53                   	push   %ebx
40db59:	56                   	push   %esi
40db5a:	57                   	push   %edi
40db5b:	55                   	push   %ebp
40db5c:	83 c4 f8             	add    $0xfffffff8,%esp
40db5f:	8b ea                	mov    %edx,%ebp
40db61:	8b f0                	mov    %eax,%esi
40db63:	33 db                	xor    %ebx,%ebx
40db65:	85 f6                	test   %esi,%esi
40db67:	0f 84 81 00 00 00    	je     0x40dbee
40db6d:	80 3e 00             	cmpb   $0x0,(%esi)
40db70:	74 7c                	je     0x40dbee
40db72:	85 ed                	test   %ebp,%ebp
40db74:	74 78                	je     0x40dbee
40db76:	80 7d 00 00          	cmpb   $0x0,0x0(%ebp)
40db7a:	74 72                	je     0x40dbee
40db7c:	8b c6                	mov    %esi,%eax
40db7e:	e8 6d c2 ff ff       	call   0x409df0
40db83:	89 04 24             	mov    %eax,(%esp)
40db86:	8b c5                	mov    %ebp,%eax
40db88:	e8 63 c2 ff ff       	call   0x409df0
40db8d:	8b f8                	mov    %eax,%edi
40db8f:	8b d5                	mov    %ebp,%edx
40db91:	8b c6                	mov    %esi,%eax
40db93:	e8 74 c4 ff ff       	call   0x40a00c
40db98:	8b d8                	mov    %eax,%ebx
40db9a:	eb 3f                	jmp    0x40dbdb
40db9c:	8b d3                	mov    %ebx,%edx
40db9e:	2b d6                	sub    %esi,%edx
40dba0:	8b c6                	mov    %esi,%eax
40dba2:	e8 b1 fb ff ff       	call   0x40d758
40dba7:	88 44 24 04          	mov    %al,0x4(%esp)
40dbab:	80 7c 24 04 02       	cmpb   $0x2,0x4(%esp)
40dbb0:	74 15                	je     0x40dbc7
40dbb2:	57                   	push   %edi
40dbb3:	55                   	push   %ebp
40dbb4:	57                   	push   %edi
40dbb5:	53                   	push   %ebx
40dbb6:	6a 00                	push   $0x0
40dbb8:	68 00 04 00 00       	push   $0x400
40dbbd:	e8 e6 94 ff ff       	call   0x4070a8
40dbc2:	83 f8 02             	cmp    $0x2,%eax
40dbc5:	74 27                	je     0x40dbee
40dbc7:	80 7c 24 04 01       	cmpb   $0x1,0x4(%esp)
40dbcc:	75 01                	jne    0x40dbcf
40dbce:	43                   	inc    %ebx
40dbcf:	43                   	inc    %ebx
40dbd0:	8b d5                	mov    %ebp,%edx
40dbd2:	8b c3                	mov    %ebx,%eax
40dbd4:	e8 33 c4 ff ff       	call   0x40a00c
40dbd9:	8b d8                	mov    %eax,%ebx
40dbdb:	85 db                	test   %ebx,%ebx
40dbdd:	74 0d                	je     0x40dbec
40dbdf:	8b c3                	mov    %ebx,%eax
40dbe1:	2b c6                	sub    %esi,%eax
40dbe3:	8b 14 24             	mov    (%esp),%edx
40dbe6:	2b d0                	sub    %eax,%edx
40dbe8:	3b fa                	cmp    %edx,%edi
40dbea:	76 b0                	jbe    0x40db9c
40dbec:	33 db                	xor    %ebx,%ebx
40dbee:	8b c3                	mov    %ebx,%eax
40dbf0:	59                   	pop    %ecx
40dbf1:	5a                   	pop    %edx
40dbf2:	5d                   	pop    %ebp
40dbf3:	5f                   	pop    %edi
40dbf4:	5e                   	pop    %esi
40dbf5:	5b                   	pop    %ebx
40dbf6:	c3                   	ret
40dbf7:	90                   	nop
40dbf8:	53                   	push   %ebx
40dbf9:	56                   	push   %esi
40dbfa:	8b da                	mov    %edx,%ebx
40dbfc:	8b d3                	mov    %ebx,%edx
40dbfe:	e8 1d 00 00 00       	call   0x40dc20
40dc03:	8b f0                	mov    %eax,%esi
40dc05:	84 db                	test   %bl,%bl
40dc07:	74 12                	je     0x40dc1b
40dc09:	85 c0                	test   %eax,%eax
40dc0b:	74 0e                	je     0x40dc1b
40dc0d:	8b f0                	mov    %eax,%esi
40dc0f:	40                   	inc    %eax
40dc10:	8b d3                	mov    %ebx,%edx
40dc12:	e8 09 00 00 00       	call   0x40dc20
40dc17:	85 c0                	test   %eax,%eax
40dc19:	75 f2                	jne    0x40dc0d
40dc1b:	8b c6                	mov    %esi,%eax
40dc1d:	5e                   	pop    %esi
40dc1e:	5b                   	pop    %ebx
40dc1f:	c3                   	ret
40dc20:	53                   	push   %ebx
40dc21:	56                   	push   %esi
40dc22:	57                   	push   %edi
40dc23:	8b da                	mov    %edx,%ebx
40dc25:	8b f0                	mov    %eax,%esi
40dc27:	8b d3                	mov    %ebx,%edx
40dc29:	8b c6                	mov    %esi,%eax