40cd36:	85 c0                	test   %eax,%eax
40cd38:	74 09                	je     0x40cd43
40cd3a:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cd3d:	8b 40 08             	mov    0x8(%eax),%eax
40cd40:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cd43:	33 c0                	xor    %eax,%eax
40cd45:	5a                   	pop    %edx
40cd46:	59                   	pop    %ecx
40cd47:	59                   	pop    %ecx
40cd48:	64 89 10             	mov    %edx,%fs:(%eax)
40cd4b:	68 60 cd 40 00       	push   $0x40cd60
40cd50:	8b 45 f0             	mov    -0x10(%ebp),%eax
40cd53:	e8 c0 5f ff ff       	call   0x402d18
40cd58:	c3                   	ret
40cd59:	e9 52 73 ff ff       	jmp    0x4040b0
40cd5e:	eb f0                	jmp    0x40cd50
40cd60:	33 c0                	xor    %eax,%eax
40cd62:	5a                   	pop    %edx
40cd63:	59                   	pop    %ecx
40cd64:	59                   	pop    %ecx
40cd65:	64 89 10             	mov    %edx,%fs:(%eax)
40cd68:	68 7d cd 40 00       	push   $0x40cd7d
40cd6d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cd70:	e8 d3 79 ff ff       	call   0x404748
40cd75:	c3                   	ret
40cd76:	e9 35 73 ff ff       	jmp    0x4040b0
40cd7b:	eb f0                	jmp    0x40cd6d
40cd7d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cd80:	5b                   	pop    %ebx
40cd81:	8b e5                	mov    %ebp,%esp
40cd83:	5d                   	pop    %ebp
40cd84:	c3                   	ret
40cd85:	00 00                	add    %al,(%eax)
40cd87:	00 5c 00 00          	add    %bl,0x0(%eax,%eax,1)
40cd8b:	00 6a 00             	add    %ch,0x0(%edx)
40cd8e:	e8 fd a3 ff ff       	call   0x407190
40cd93:	c3                   	ret
40cd94:	56                   	push   %esi
40cd95:	57                   	push   %edi
40cd96:	8b fa                	mov    %edx,%edi
40cd98:	33 d2                	xor    %edx,%edx
40cd9a:	85 c0                	test   %eax,%eax
40cd9c:	74 62                	je     0x40ce00
40cd9e:	80 3c 38 00          	cmpb   $0x0,(%eax,%edi,1)
40cda2:	74 5c                	je     0x40ce00
40cda4:	85 ff                	test   %edi,%edi
40cda6:	75 13                	jne    0x40cdbb
40cda8:	0f b6 00             	movzbl (%eax),%eax
40cdab:	0f b6 c0             	movzbl %al,%eax
40cdae:	0f a3 05 08 b8 49 00 	bt     %eax,0x49b808
40cdb5:	73 49                	jae    0x40ce00
40cdb7:	b2 01                	mov    $0x1,%dl
40cdb9:	eb 45                	jmp    0x40ce00
40cdbb:	8b f7                	mov    %edi,%esi
40cdbd:	4e                   	dec    %esi
40cdbe:	eb 01                	jmp    0x40cdc1
40cdc0:	4e                   	dec    %esi
40cdc1:	85 f6                	test   %esi,%esi
40cdc3:	7c 10                	jl     0x40cdd5
40cdc5:	0f b6 0c 30          	movzbl (%eax,%esi,1),%ecx
40cdc9:	0f b6 c9             	movzbl %cl,%ecx
40cdcc:	0f a3 0d 08 b8 49 00 	bt     %ecx,0x49b808
40cdd3:	72 eb                	jb     0x40cdc0
40cdd5:	8b cf                	mov    %edi,%ecx
40cdd7:	2b ce                	sub    %esi,%ecx
40cdd9:	81 e1 01 00 00 80    	and    $0x80000001,%ecx
40cddf:	79 05                	jns    0x40cde6
40cde1:	49                   	dec    %ecx
40cde2:	83 c9 fe             	or     $0xfffffffe,%ecx
40cde5:	41                   	inc    %ecx
40cde6:	85 c9                	test   %ecx,%ecx
40cde8:	75 04                	jne    0x40cdee
40cdea:	b2 02                	mov    $0x2,%dl
40cdec:	eb 12                	jmp    0x40ce00
40cdee:	0f b6 04 38          	movzbl (%eax,%edi,1),%eax
40cdf2:	0f b6 c0             	movzbl %al,%eax
40cdf5:	0f a3 05 08 b8 49 00 	bt     %eax,0x49b808
40cdfc:	73 02                	jae    0x40ce00
40cdfe:	b2 01                	mov    $0x1,%dl
40ce00:	8b c2                	mov    %edx,%eax
40ce02:	5f                   	pop    %edi
40ce03:	5e                   	pop    %esi
40ce04:	c3                   	ret
40ce05:	8d 40 00             	lea    0x0(%eax),%eax
40ce08:	53                   	push   %ebx
40ce09:	56                   	push   %esi
40ce0a:	8b f2                	mov    %edx,%esi
40ce0c:	8b d8                	mov    %eax,%ebx
40ce0e:	33 c0                	xor    %eax,%eax
40ce10:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40ce17:	74 0f                	je     0x40ce28
40ce19:	8b c3                	mov    %ebx,%eax
40ce1b:	e8 ec 7d ff ff       	call   0x404c0c
40ce20:	8b d6                	mov    %esi,%edx
40ce22:	4a                   	dec    %edx
40ce23:	e8 6c ff ff ff       	call   0x40cd94
40ce28:	5e                   	pop    %esi
40ce29:	5b                   	pop    %ebx
40ce2a:	c3                   	ret
40ce2b:	90                   	nop
40ce2c:	33 c9                	xor    %ecx,%ecx
40ce2e:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40ce35:	74 07                	je     0x40ce3e
40ce37:	e8 58 ff ff ff       	call   0x40cd94
40ce3c:	8b c8                	mov    %eax,%ecx
40ce3e:	8b c1                	mov    %ecx,%eax
40ce40:	c3                   	ret
40ce41:	8d 40 00             	lea    0x0(%eax),%eax
40ce44:	53                   	push   %ebx
40ce45:	8b d8                	mov    %eax,%ebx
40ce47:	8b cb                	mov    %ebx,%ecx
40ce49:	85 c9                	test   %ecx,%ecx
40ce4b:	74 05                	je     0x40ce52
40ce4d:	83 e9 04             	sub    $0x4,%ecx
40ce50:	8b 09                	mov    (%ecx),%ecx
40ce52:	3b d1                	cmp    %ecx,%edx
40ce54:	7e 0b                	jle    0x40ce61
40ce56:	8b d3                	mov    %ebx,%edx
40ce58:	85 d2                	test   %edx,%edx
40ce5a:	74 05                	je     0x40ce61
40ce5c:	83 ea 04             	sub    $0x4,%edx
40ce5f:	8b 12                	mov    (%edx),%edx
40ce61:	e8 02 00 00 00       	call   0x40ce68
40ce66:	5b                   	pop    %ebx
40ce67:	c3                   	ret
40ce68:	53                   	push   %ebx
40ce69:	56                   	push   %esi
40ce6a:	57                   	push   %edi
40ce6b:	55                   	push   %ebp
40ce6c:	8b ea                	mov    %edx,%ebp
40ce6e:	8b f8                	mov    %eax,%edi
40ce70:	33 f6                	xor    %esi,%esi
40ce72:	85 ed                	test   %ebp,%ebp
40ce74:	7f 04                	jg     0x40ce7a
40ce76:	b0 01                	mov    $0x1,%al
40ce78:	eb 10                	jmp    0x40ce8a
40ce7a:	8b c7                	mov    %edi,%eax
40ce7c:	85 c0                	test   %eax,%eax
40ce7e:	74 05                	je     0x40ce85
40ce80:	83 e8 04             	sub    $0x4,%eax
40ce83:	8b 00                	mov    (%eax),%eax
40ce85:	3b c5                	cmp    %ebp,%eax
40ce87:	0f 9c c0             	setl   %al
40ce8a:	84 c0                	test   %al,%al
40ce8c:	75 3a                	jne    0x40cec8
40ce8e:	8b f5                	mov    %ebp,%esi
40ce90:	80 3d d4 a8 4a 00 00 	cmpb   $0x0,0x4aa8d4
40ce97:	74 2f                	je     0x40cec8
40ce99:	bb 01 00 00 00       	mov    $0x1,%ebx
40ce9e:	33 f6                	xor    %esi,%esi
40cea0:	3b eb                	cmp    %ebx,%ebp
40cea2:	7c 24                	jl     0x40cec8
40cea4:	0f b6 44 1f ff       	movzbl -0x1(%edi,%ebx,1),%eax
40cea9:	0f b6 c0             	movzbl %al,%eax
40ceac:	0f a3 05 08 b8 49 00 	bt     %eax,0x49b808
40ceb3:	73 0d                	jae    0x40cec2
40ceb5:	8b d3                	mov    %ebx,%edx
40ceb7:	8b c7                	mov    %edi,%eax
40ceb9:	e8 f6 01 00 00       	call   0x40d0b4
40cebe:	8b d8                	mov    %eax,%ebx
40cec0:	eb 01                	jmp    0x40cec3
40cec2:	43                   	inc    %ebx
40cec3:	46                   	inc    %esi
40cec4:	3b eb                	cmp    %ebx,%ebp
40cec6:	7d dc                	jge    0x40cea4
40cec8:	8b c6                	mov    %esi,%eax
40ceca:	5d                   	pop    %ebp
40cecb:	5f                   	pop    %edi
40cecc:	5e                   	pop    %esi
40cecd:	5b                   	pop    %ebx
40cece:	c3                   	ret
40cecf:	90                   	nop
40ced0:	55                   	push   %ebp
40ced1:	8b ec                	mov    %esp,%ebp
40ced3:	83 c4 f4             	add    $0xfffffff4,%esp
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