40ced6:	53                   	push   %ebx
40ced7:	56                   	push   %esi
40ced8:	57                   	push   %edi
40ced9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40cedc:	89 55 fc             	mov    %edx,-0x4(%ebp)
40cedf:	8b f8                	mov    %eax,%edi
40cee1:	8b c7                	mov    %edi,%eax
40cee3:	85 c0                	test   %eax,%eax
40cee5:	74 05                	je     0x40ceec
40cee7:	83 e8 04             	sub    $0x4,%eax
40ceea:	8b 00                	mov    (%eax),%eax
40ceec:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ceef:	be 01 00 00 00       	mov    $0x1,%esi
40cef4:	bb 01 00 00 00       	mov    $0x1,%ebx
40cef9:	eb 20                	jmp    0x40cf1b
40cefb:	46                   	inc    %esi
40cefc:	0f b6 44 1f ff       	movzbl -0x1(%edi,%ebx,1),%eax
40cf01:	0f b6 c0             	movzbl %al,%eax
40cf04:	0f a3 05 08 b8 49 00 	bt     %eax,0x49b808
40cf0b:	73 0d                	jae    0x40cf1a
40cf0d:	8b d3                	mov    %ebx,%edx
40cf0f:	8b c7                	mov    %edi,%eax
40cf11:	e8 9e 01 00 00       	call   0x40d0b4
40cf16:	8b d8                	mov    %eax,%ebx
40cf18:	eb 01                	jmp    0x40cf1b
40cf1a:	43                   	inc    %ebx
40cf1b:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
40cf1e:	7d 05                	jge    0x40cf25
40cf20:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40cf23:	7c d6                	jl     0x40cefb
40cf25:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40cf28:	75 22                	jne    0x40cf4c
40cf2a:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
40cf2d:	7d 1d                	jge    0x40cf4c
40cf2f:	0f b6 44 1f ff       	movzbl -0x1(%edi,%ebx,1),%eax
40cf34:	0f b6 c0             	movzbl %al,%eax
40cf37:	0f a3 05 08 b8 49 00 	bt     %eax,0x49b808
40cf3e:	73 0c                	jae    0x40cf4c
40cf40:	8b d3                	mov    %ebx,%edx
40cf42:	8b c7                	mov    %edi,%eax
40cf44:	e8 6b 01 00 00       	call   0x40d0b4
40cf49:	48                   	dec    %eax
40cf4a:	8b d8                	mov    %eax,%ebx
40cf4c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cf4f:	89 30                	mov    %esi,(%eax)
40cf51:	8b 45 08             	mov    0x8(%ebp),%eax
40cf54:	89 18                	mov    %ebx,(%eax)
40cf56:	5f                   	pop    %edi
40cf57:	5e                   	pop    %esi
40cf58:	5b                   	pop    %ebx
40cf59:	8b e5                	mov    %ebp,%esp
40cf5b:	5d                   	pop    %ebp
40cf5c:	c2 04 00             	ret    $0x4
40cf5f:	90                   	nop
40cf60:	53                   	push   %ebx
40cf61:	56                   	push   %esi
40cf62:	57                   	push   %edi
40cf63:	83 c4 f8             	add    $0xfffffff8,%esp
40cf66:	8b da                	mov    %edx,%ebx
40cf68:	8b f0                	mov    %eax,%esi
40cf6a:	33 c0                	xor    %eax,%eax
40cf6c:	89 04 24             	mov    %eax,(%esp)
40cf6f:	85 db                	test   %ebx,%ebx
40cf71:	7f 04                	jg     0x40cf77
40cf73:	b0 01                	mov    $0x1,%al
40cf75:	eb 10                	jmp    0x40cf87
40cf77:	8b c6                	mov    %esi,%eax
40cf79:	85 c0                	test   %eax,%eax
40cf7b:	74 05                	je     0x40cf82
40cf7d:	83 e8 04             	sub    $0x4,%eax
40cf80:	8b 00                	mov    (%eax),%eax
40cf82:	3b c3                	cmp    %ebx,%eax
40cf84:	0f 9c c0             	setl   %al
40cf87:	84 c0                	test   %al,%al
40cf89:	75 4d                	jne    0x40cfd8
40cf8b:	83 fb 01             	cmp    $0x1,%ebx
40cf8e:	7e 45                	jle    0x40cfd5
40cf90:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40cf97:	74 3c                	je     0x40cfd5
40cf99:	54                   	push   %esp
40cf9a:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40cf9e:	8b fb                	mov    %ebx,%edi
40cfa0:	4f                   	dec    %edi
40cfa1:	8b d7                	mov    %edi,%edx
40cfa3:	8b c6                	mov    %esi,%eax
40cfa5:	e8 26 ff ff ff       	call   0x40ced0
40cfaa:	3b 7c 24 04          	cmp    0x4(%esp),%edi
40cfae:	7e 04                	jle    0x40cfb4
40cfb0:	b0 01                	mov    $0x1,%al
40cfb2:	eb 11                	jmp    0x40cfc5
40cfb4:	8b c6                	mov    %esi,%eax
40cfb6:	85 c0                	test   %eax,%eax
40cfb8:	74 05                	je     0x40cfbf
40cfba:	83 e8 04             	sub    $0x4,%eax
40cfbd:	8b 00                	mov    (%eax),%eax
40cfbf:	3b 04 24             	cmp    (%esp),%eax
40cfc2:	0f 9e c0             	setle  %al
40cfc5:	84 c0                	test   %al,%al
40cfc7:	74 07                	je     0x40cfd0
40cfc9:	33 c0                	xor    %eax,%eax
40cfcb:	89 04 24             	mov    %eax,(%esp)
40cfce:	eb 08                	jmp    0x40cfd8
40cfd0:	ff 04 24             	incl   (%esp)
40cfd3:	eb 03                	jmp    0x40cfd8
40cfd5:	89 1c 24             	mov    %ebx,(%esp)
40cfd8:	8b 04 24             	mov    (%esp),%eax
40cfdb:	59                   	pop    %ecx
40cfdc:	5a                   	pop    %edx
40cfdd:	5f                   	pop    %edi
40cfde:	5e                   	pop    %esi
40cfdf:	5b                   	pop    %ebx
40cfe0:	c3                   	ret
40cfe1:	8d 40 00             	lea    0x0(%eax),%eax
40cfe4:	53                   	push   %ebx
40cfe5:	56                   	push   %esi
40cfe6:	83 c4 f8             	add    $0xfffffff8,%esp
40cfe9:	8b d8                	mov    %eax,%ebx
40cfeb:	33 c0                	xor    %eax,%eax
40cfed:	89 04 24             	mov    %eax,(%esp)
40cff0:	85 d2                	test   %edx,%edx
40cff2:	7e 56                	jle    0x40d04a
40cff4:	8b f3                	mov    %ebx,%esi
40cff6:	8b c6                	mov    %esi,%eax
40cff8:	85 c0                	test   %eax,%eax
40cffa:	74 05                	je     0x40d001
40cffc:	83 e8 04             	sub    $0x4,%eax
40cfff:	8b 00                	mov    (%eax),%eax
40d001:	3b c2                	cmp    %edx,%eax
40d003:	7d 0d                	jge    0x40d012
40d005:	8b c6                	mov    %esi,%eax
40d007:	85 c0                	test   %eax,%eax
40d009:	74 05                	je     0x40d010
40d00b:	83 e8 04             	sub    $0x4,%eax
40d00e:	8b 00                	mov    (%eax),%eax
40d010:	8b d0                	mov    %eax,%edx
40d012:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40d019:	74 2c                	je     0x40d047
40d01b:	54                   	push   %esp
40d01c:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40d020:	8b c3                	mov    %ebx,%eax
40d022:	e8 a9 fe ff ff       	call   0x40ced0
40d027:	8b c6                	mov    %esi,%eax
40d029:	85 c0                	test   %eax,%eax
40d02b:	74 05                	je     0x40d032
40d02d:	83 e8 04             	sub    $0x4,%eax
40d030:	8b 00                	mov    (%eax),%eax
40d032:	3b 04 24             	cmp    (%esp),%eax
40d035:	7d 13                	jge    0x40d04a
40d037:	8b c6                	mov    %esi,%eax
40d039:	85 c0                	test   %eax,%eax
40d03b:	74 05                	je     0x40d042
40d03d:	83 e8 04             	sub    $0x4,%eax
40d040:	8b 00                	mov    (%eax),%eax
40d042:	89 04 24             	mov    %eax,(%esp)
40d045:	eb 03                	jmp    0x40d04a
40d047:	89 14 24             	mov    %edx,(%esp)
40d04a:	8b 04 24             	mov    (%esp),%eax
40d04d:	59                   	pop    %ecx
40d04e:	5a                   	pop    %edx
40d04f:	5e                   	pop    %esi
40d050:	5b                   	pop    %ebx
40d051:	c3                   	ret
40d052:	8b c0                	mov    %eax,%eax
40d054:	53                   	push   %ebx
40d055:	8b d8                	mov    %eax,%ebx
40d057:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40d05e:	74 0a                	je     0x40d06a
40d060:	53                   	push   %ebx
40d061:	e8 a2 9d ff ff       	call   0x406e08
40d066:	2b c3                	sub    %ebx,%eax
40d068:	5b                   	pop    %ebx
40d069:	c3                   	ret
40d06a:	b8 01 00 00 00       	mov    $0x1,%eax
40d06f:	5b                   	pop    %ebx
40d070:	c3                   	ret
40d071:	8d 40 00             	lea    0x0(%eax),%eax
40d074:	50                   	push   %eax
40d075:	e8 8e 9d ff ff       	call   0x406e08
40d07a:	c3                   	ret
40d07b:	90                   	nop
40d07c:	53                   	push   %ebx
40d07d:	56                   	push   %esi
40d07e:	8b f2                	mov    %edx,%esi
40d080:	8b d8                	mov    %eax,%ebx
40d082:	b8 01 00 00 00       	mov    $0x1,%eax
40d087:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40d08e:	74 20                	je     0x40d0b0
40d090:	0f b6 54 33 ff       	movzbl -0x1(%ebx,%esi,1),%edx
40d095:	0f b6 d2             	movzbl %dl,%edx
40d098:	0f a3 15 08 b8 49 00 	bt     %edx,0x49b808
40d09f:	73 0f                	jae    0x40d0b0
40d0a1:	8b c3                	mov    %ebx,%eax
40d0a3:	e8 64 7b ff ff       	call   0x404c0c
40d0a8:	03 c6                	add    %esi,%eax
40d0aa:	48                   	dec    %eax
40d0ab:	e8 a4 ff ff ff       	call   0x40d054
40d0b0:	5e                   	pop    %esi
40d0b1:	5b                   	pop    %ebx
40d0b2:	c3                   	ret
40d0b3:	90                   	nop
40d0b4:	53                   	push   %ebx
40d0b5:	56                   	push   %esi
40d0b6:	8b da                	mov    %edx,%ebx
40d0b8:	8b f0                	mov    %eax,%esi
40d0ba:	8d 43 01             	lea    0x1(%ebx),%eax
40d0bd:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40d0c4:	74 22                	je     0x40d0e8
40d0c6:	0f b6 54 1e ff       	movzbl -0x1(%esi,%ebx,1),%edx
40d0cb:	0f b6 d2             	movzbl %dl,%edx
40d0ce:	0f a3 15 08 b8 49 00 	bt     %edx,0x49b808
40d0d5:	73 11                	jae    0x40d0e8
40d0d7:	8b c6                	mov    %esi,%eax
40d0d9:	e8 2e 7b ff ff       	call   0x404c0c
40d0de:	03 c3                	add    %ebx,%eax
40d0e0:	48                   	dec    %eax
40d0e1:	e8 6e ff ff ff       	call   0x40d054
40d0e6:	03 c3                	add    %ebx,%eax
40d0e8:	5e                   	pop    %esi
40d0e9:	5b                   	pop    %ebx
40d0ea:	c3                   	ret
40d0eb:	90                   	nop
40d0ec:	53                   	push   %ebx
40d0ed:	56                   	push   %esi
40d0ee:	8b da                	mov    %edx,%ebx
40d0f0:	8b f0                	mov    %eax,%esi
40d0f2:	85 db                	test   %ebx,%ebx
40d0f4:	7e 12                	jle    0x40d108
40d0f6:	8b c6                	mov    %esi,%eax
40d0f8:	85 c0                	test   %eax,%eax
40d0fa:	74 05                	je     0x40d101
40d0fc:	83 e8 04             	sub    $0x4,%eax
40d0ff:	8b 00                	mov    (%eax),%eax
40d101:	3b c3                	cmp    %ebx,%eax
40d103:	0f 9d c0             	setge  %al
40d106:	eb 02                	jmp    0x40d10a
40d108:	33 c0                	xor    %eax,%eax
40d10a:	84 c0                	test   %al,%al
40d10c:	74 0a                	je     0x40d118
40d10e:	80 7c 1e ff 5c       	cmpb   $0x5c,-0x1(%esi,%ebx,1)
40d113:	0f 94 c0             	sete   %al
40d116:	eb 02                	jmp    0x40d11a
40d118:	33 c0                	xor    %eax,%eax
40d11a:	84 c0                	test   %al,%al
40d11c:	74 11                	je     0x40d12f
40d11e:	8b d3                	mov    %ebx,%edx
40d120:	8b c6                	mov    %esi,%eax
40d122:	e8 e1 fc ff ff       	call   0x40ce08
40d127:	84 c0                	test   %al,%al
40d129:	0f 94 c0             	sete   %al
40d12c:	5e                   	pop    %esi
40d12d:	5b                   	pop    %ebx
40d12e:	c3                   	ret
40d12f:	33 c0                	xor    %eax,%eax
40d131:	5e                   	pop    %esi
40d132:	5b                   	pop    %ebx
40d133:	c3                   	ret
40d134:	53                   	push   %ebx
40d135:	56                   	push   %esi
40d136:	57                   	push   %edi
40d137:	55                   	push   %ebp
40d138:	8b f9                	mov    %ecx,%edi
40d13a:	8b f2                	mov    %edx,%esi
40d13c:	8b e8                	mov    %eax,%ebp
40d13e:	33 db                	xor    %ebx,%ebx
40d140:	85 ff                	test   %edi,%edi
40d142:	7f 04                	jg     0x40d148
40d144:	b0 01                	mov    $0x1,%al
40d146:	eb 10                	jmp    0x40d158
40d148:	8b c6                	mov    %esi,%eax
40d14a:	85 c0                	test   %eax,%eax
40d14c:	74 05                	je     0x40d153
40d14e:	83 e8 04             	sub    $0x4,%eax
40d151:	8b 00                	mov    (%eax),%eax
40d153:	3b c7                	cmp    %edi,%eax
40d155:	0f 9c c0             	setl   %al
40d158:	84 c0                	test   %al,%al
40d15a:	74 04                	je     0x40d160
40d15c:	b0 01                	mov    $0x1,%al
40d15e:	eb 0e                	jmp    0x40d16e
40d160:	8b d7                	mov    %edi,%edx
40d162:	8b c6                	mov    %esi,%eax
40d164:	e8 9f fc ff ff       	call   0x40ce08
40d169:	84 c0                	test   %al,%al
40d16b:	0f 95 c0             	setne  %al
40d16e:	84 c0                	test   %al,%al
40d170:	75 16                	jne    0x40d188
40d172:	8b c5                	mov    %ebp,%eax
40d174:	e8 93 7a ff ff       	call   0x404c0c
40d179:	0f b6 54 3e ff       	movzbl -0x1(%esi,%edi,1),%edx
40d17e:	e8 89 c3 ff ff       	call   0x40950c
40d183:	85 c0                	test   %eax,%eax
40d185:	0f 95 c3             	setne  %bl
40d188:	8b c3                	mov    %ebx,%eax
40d18a:	5d                   	pop    %ebp
40d18b:	5f                   	pop    %edi
40d18c:	5e                   	pop    %esi
40d18d:	5b                   	pop    %ebx
40d18e:	c3                   	ret
40d18f:	90                   	nop
40d190:	53                   	push   %ebx
40d191:	56                   	push   %esi
40d192:	57                   	push   %edi
40d193:	55                   	push   %ebp
40d194:	8b f2                	mov    %edx,%esi
40d196:	8b d8                	mov    %eax,%ebx
40d198:	33 ff                	xor    %edi,%edi
40d19a:	8b c3                	mov    %ebx,%eax
40d19c:	e8 6b 7a ff ff       	call   0x404c0c
40d1a1:	50                   	push   %eax
40d1a2:	8b c6                	mov    %esi,%eax
40d1a4:	e8 63 7a ff ff       	call   0x404c0c
40d1a9:	8b e8                	mov    %eax,%ebp
40d1ab:	8b c5                	mov    %ebp,%eax
40d1ad:	5a                   	pop    %edx
40d1ae:	e8 a9 00 00 00       	call   0x40d25c
40d1b3:	8b d8                	mov    %eax,%ebx
40d1b5:	85 db                	test   %ebx,%ebx
40d1b7:	74 05                	je     0x40d1be
40d1b9:	8b fb                	mov    %ebx,%edi
40d1bb:	2b fd                	sub    %ebp,%edi
40d1bd:	47                   	inc    %edi
40d1be:	8b c7                	mov    %edi,%eax
40d1c0:	5d                   	pop    %ebp
40d1c1:	5f                   	pop    %edi
40d1c2:	5e                   	pop    %esi
40d1c3:	5b                   	pop    %ebx
40d1c4:	c3                   	ret
40d1c5:	8d 40 00             	lea    0x0(%eax),%eax
40d1c8:	53                   	push   %ebx
40d1c9:	56                   	push   %esi
40d1ca:	57                   	push   %edi
40d1cb:	55                   	push   %ebp
40d1cc:	8b fa                	mov    %edx,%edi
40d1ce:	8b f0                	mov    %eax,%esi
40d1d0:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40d1d7:	74 73                	je     0x40d24c
40d1d9:	8b c6                	mov    %esi,%eax
40d1db:	85 c0                	test   %eax,%eax
40d1dd:	74 05                	je     0x40d1e4
40d1df:	83 e8 04             	sub    $0x4,%eax
40d1e2:	8b 00                	mov    (%eax),%eax
40d1e4:	8b e8                	mov    %eax,%ebp
40d1e6:	8b c7                	mov    %edi,%eax
40d1e8:	8b d5                	mov    %ebp,%edx
40d1ea:	e8 a5 7c ff ff       	call   0x404e94
40d1ef:	bb 01 00 00 00       	mov    $0x1,%ebx
40d1f4:	3b eb                	cmp    %ebx,%ebp
40d1f6:	7c 5d                	jl     0x40d255
40d1f8:	8b c7                	mov    %edi,%eax
40d1fa:	e8 65 7a ff ff       	call   0x404c64