40cc57:	8a 09                	mov    (%ecx),%cl
40cc59:	88 08                	mov    %cl,(%eax)
40cc5b:	40                   	inc    %eax
40cc5c:	8d 64 24 00          	lea    0x0(%esp),%esp
40cc60:	8a 08                	mov    (%eax),%cl
40cc62:	8d 40 01             	lea    0x1(%eax),%eax
40cc65:	8a d3                	mov    %bl,%dl
40cc67:	88 58 ff             	mov    %bl,-0x1(%eax)
40cc6a:	8a d9                	mov    %cl,%bl
40cc6c:	84 d2                	test   %dl,%dl
40cc6e:	75 f0                	jne    0x40cc60
40cc70:	5f                   	pop    %edi
40cc71:	5e                   	pop    %esi
40cc72:	5b                   	pop    %ebx
40cc73:	5d                   	pop    %ebp
40cc74:	c3                   	ret
40cc75:	8b ff                	mov    %edi,%edi
40cc77:	55                   	push   %ebp
40cc78:	8b ec                	mov    %esp,%ebp
40cc7a:	51                   	push   %ecx
40cc7b:	53                   	push   %ebx
40cc7c:	56                   	push   %esi
40cc7d:	57                   	push   %edi
40cc7e:	8b f9                	mov    %ecx,%edi
40cc80:	8b 77 0c             	mov    0xc(%edi),%esi
40cc83:	85 f6                	test   %esi,%esi
40cc85:	75 0a                	jne    0x40cc91
40cc87:	e8 47 20 00 00       	call   0x40ecd3
40cc8c:	8b f0                	mov    %eax,%esi
40cc8e:	89 77 0c             	mov    %esi,0xc(%edi)
40cc91:	8b 1e                	mov    (%esi),%ebx
40cc93:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40cc96:	83 26 00             	andl   $0x0,(%esi)
40cc99:	8b 47 10             	mov    0x10(%edi),%eax
40cc9c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cca0:	83 e8 02             	sub    $0x2,%eax
40cca3:	6a 0a                	push   $0xa
40cca5:	51                   	push   %ecx
40cca6:	50                   	push   %eax
40cca7:	e8 81 57 00 00       	call   0x41242d
40ccac:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ccaf:	83 c4 0c             	add    $0xc,%esp
40ccb2:	89 01                	mov    %eax,(%ecx)
40ccb4:	8b 47 0c             	mov    0xc(%edi),%eax
40ccb7:	85 c0                	test   %eax,%eax
40ccb9:	75 08                	jne    0x40ccc3
40ccbb:	e8 13 20 00 00       	call   0x40ecd3
40ccc0:	89 47 0c             	mov    %eax,0xc(%edi)
40ccc3:	83 38 22             	cmpl   $0x22,(%eax)
40ccc6:	74 0f                	je     0x40ccd7
40ccc8:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cccb:	3b 47 10             	cmp    0x10(%edi),%eax
40ccce:	72 07                	jb     0x40ccd7
40ccd0:	89 47 10             	mov    %eax,0x10(%edi)
40ccd3:	b0 01                	mov    $0x1,%al
40ccd5:	eb 02                	jmp    0x40ccd9
40ccd7:	32 c0                	xor    %al,%al
40ccd9:	83 3e 00             	cmpl   $0x0,(%esi)
40ccdc:	75 06                	jne    0x40cce4
40ccde:	85 db                	test   %ebx,%ebx
40cce0:	74 02                	je     0x40cce4
40cce2:	89 1e                	mov    %ebx,(%esi)
40cce4:	5f                   	pop    %edi
40cce5:	5e                   	pop    %esi
40cce6:	5b                   	pop    %ebx
40cce7:	c9                   	leave
40cce8:	c2 04 00             	ret    $0x4
40cceb:	8b ff                	mov    %edi,%edi
40cced:	53                   	push   %ebx
40ccee:	56                   	push   %esi
40ccef:	8b f1                	mov    %ecx,%esi
40ccf1:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40ccf7:	e8 41 0c 00 00       	call   0x40d93d
40ccfc:	84 c0                	test   %al,%al
40ccfe:	74 1b                	je     0x40cd1b
40cd00:	33 db                	xor    %ebx,%ebx
40cd02:	39 5e 10             	cmp    %ebx,0x10(%esi)
40cd05:	0f 85 cd 00 00 00    	jne    0x40cdd8
40cd0b:	e8 c3 1f 00 00       	call   0x40ecd3
40cd10:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40cd16:	e8 fb 1e 00 00       	call   0x40ec16
40cd1b:	83 c8 ff             	or     $0xffffffff,%eax
40cd1e:	5e                   	pop    %esi
40cd1f:	5b                   	pop    %ebx
40cd20:	c3                   	ret
40cd21:	89 5e 38             	mov    %ebx,0x38(%esi)
40cd24:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40cd27:	e9 86 00 00 00       	jmp    0x40cdb2
40cd2c:	83 46 10 02          	addl   $0x2,0x10(%esi)
40cd30:	39 5e 18             	cmp    %ebx,0x18(%esi)
40cd33:	0f 8c 90 00 00 00    	jl     0x40cdc9
40cd39:	ff 76 1c             	push   0x1c(%esi)
40cd3c:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40cd40:	8b ce                	mov    %esi,%ecx
40cd42:	50                   	push   %eax
40cd43:	e8 59 fe ff ff       	call   0x40cba1
40cd48:	89 46 1c             	mov    %eax,0x1c(%esi)
40cd4b:	83 f8 08             	cmp    $0x8,%eax
40cd4e:	74 bb                	je     0x40cd0b
40cd50:	83 f8 07             	cmp    $0x7,%eax
40cd53:	77 c6                	ja     0x40cd1b
40cd55:	ff 24 85 f3 cd 40 00 	jmp    *0x40cdf3(,%eax,4)
40cd5c:	8b ce                	mov    %esi,%ecx
40cd5e:	e8 09 02 00 00       	call   0x40cf6c
40cd63:	eb 45                	jmp    0x40cdaa
40cd65:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
40cd69:	89 5e 24             	mov    %ebx,0x24(%esi)
40cd6c:	88 5e 30             	mov    %bl,0x30(%esi)
40cd6f:	89 5e 20             	mov    %ebx,0x20(%esi)
40cd72:	89 5e 2c             	mov    %ebx,0x2c(%esi)
40cd75:	88 5e 3c             	mov    %bl,0x3c(%esi)
40cd78:	eb 38                	jmp    0x40cdb2
40cd7a:	8b ce                	mov    %esi,%ecx
40cd7c:	e8 ae 01 00 00       	call   0x40cf2f
40cd81:	eb 27                	jmp    0x40cdaa
40cd83:	8b ce                	mov    %esi,%ecx
40cd85:	e8 18 06 00 00       	call   0x40d3a2
40cd8a:	eb 1e                	jmp    0x40cdaa
40cd8c:	89 5e 28             	mov    %ebx,0x28(%esi)
40cd8f:	eb 21                	jmp    0x40cdb2
40cd91:	8b ce                	mov    %esi,%ecx
40cd93:	e8 0e 02 00 00       	call   0x40cfa6
40cd98:	eb 10                	jmp    0x40cdaa
40cd9a:	8b ce                	mov    %esi,%ecx
40cd9c:	e8 2c 02 00 00       	call   0x40cfcd
40cda1:	eb 07                	jmp    0x40cdaa
40cda3:	8b ce                	mov    %esi,%ecx
40cda5:	e8 9b 03 00 00       	call   0x40d145
40cdaa:	84 c0                	test   %al,%al
40cdac:	0f 84 69 ff ff ff    	je     0x40cd1b
40cdb2:	8b 46 10             	mov    0x10(%esi),%eax
40cdb5:	0f b7 00             	movzwl (%eax),%eax
40cdb8:	66 89 46 32          	mov    %ax,0x32(%esi)
40cdbc:	66 85 c0             	test   %ax,%ax
40cdbf:	0f 85 67 ff ff ff    	jne    0x40cd2c
40cdc5:	83 46 10 02          	addl   $0x2,0x10(%esi)
40cdc9:	8b ce                	mov    %esi,%ecx
40cdcb:	e8 88 0b 00 00       	call   0x40d958
40cdd0:	84 c0                	test   %al,%al
40cdd2:	0f 84 43 ff ff ff    	je     0x40cd1b
40cdd8:	ff 86 50 04 00 00    	incl   0x450(%esi)
40cdde:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
40cde5:	0f 85 36 ff ff ff    	jne    0x40cd21
40cdeb:	8b 46 18             	mov    0x18(%esi),%eax
40cdee:	e9 2b ff ff ff       	jmp    0x40cd1e
40cdf3:	5c                   	pop    %esp
40cdf4:	cd 40                	int    $0x40
40cdf6:	00 65 cd             	add    %ah,-0x33(%ebp)
40cdf9:	40                   	inc    %eax
40cdfa:	00 7a cd             	add    %bh,-0x33(%edx)
40cdfd:	40                   	inc    %eax
40cdfe:	00 83 cd 40 00 8c    	add    %al,-0x73ffbf33(%ebx)
40ce04:	cd 40                	int    $0x40
40ce06:	00 91 cd 40 00 9a    	add    %dl,-0x65ffbf33(%ecx)
40ce0c:	cd 40                	int    $0x40
40ce0e:	00 a3 cd 40 00 8b    	add    %ah,-0x74ffbf33(%ebx)
40ce14:	ff 53 56             	call   *0x56(%ebx)
40ce17:	8b f1                	mov    %ecx,%esi
40ce19:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40ce1f:	e8 19 0b 00 00       	call   0x40d93d
40ce24:	84 c0                	test   %al,%al
40ce26:	74 1b                	je     0x40ce43
40ce28:	33 db                	xor    %ebx,%ebx
40ce2a:	39 5e 10             	cmp    %ebx,0x10(%esi)
40ce2d:	0f 85 be 00 00 00    	jne    0x40cef1
40ce33:	e8 9b 1e 00 00       	call   0x40ecd3
40ce38:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ce3e:	e8 d3 1d 00 00       	call   0x40ec16
40ce43:	83 c8 ff             	or     $0xffffffff,%eax
40ce46:	5e                   	pop    %esi
40ce47:	5b                   	pop    %ebx
40ce48:	c3                   	ret
40ce49:	89 5e 38             	mov    %ebx,0x38(%esi)
40ce4c:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40ce4f:	e9 86 00 00 00       	jmp    0x40ceda
40ce54:	83 46 10 02          	addl   $0x2,0x10(%esi)
40ce58:	39 5e 18             	cmp    %ebx,0x18(%esi)
40ce5b:	0f 8c 90 00 00 00    	jl     0x40cef1
40ce61:	ff 76 1c             	push   0x1c(%esi)
40ce64:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40ce68:	8b ce                	mov    %esi,%ecx
40ce6a:	50                   	push   %eax
40ce6b:	e8 67 fd ff ff       	call   0x40cbd7
40ce70:	89 46 1c             	mov    %eax,0x1c(%esi)
40ce73:	83 f8 08             	cmp    $0x8,%eax
40ce76:	74 bb                	je     0x40ce33
40ce78:	83 f8 07             	cmp    $0x7,%eax
40ce7b:	77 c6                	ja     0x40ce43
40ce7d:	ff 24 85 0f cf 40 00 	jmp    *0x40cf0f(,%eax,4)
40ce84:	8b ce                	mov    %esi,%ecx
40ce86:	e8 e1 00 00 00       	call   0x40cf6c
40ce8b:	eb 45                	jmp    0x40ced2
40ce8d:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
40ce91:	89 5e 24             	mov    %ebx,0x24(%esi)
40ce94:	88 5e 30             	mov    %bl,0x30(%esi)
40ce97:	89 5e 20             	mov    %ebx,0x20(%esi)
40ce9a:	89 5e 2c             	mov    %ebx,0x2c(%esi)
40ce9d:	88 5e 3c             	mov    %bl,0x3c(%esi)
40cea0:	eb 38                	jmp    0x40ceda
40cea2:	8b ce                	mov    %esi,%ecx
40cea4:	e8 86 00 00 00       	call   0x40cf2f
40cea9:	eb 27                	jmp    0x40ced2
40ceab:	8b ce                	mov    %esi,%ecx
40cead:	e8 f0 04 00 00       	call   0x40d3a2
40ceb2:	eb 1e                	jmp    0x40ced2
40ceb4:	89 5e 28             	mov    %ebx,0x28(%esi)
40ceb7:	eb 21                	jmp    0x40ceda
40ceb9:	8b ce                	mov    %esi,%ecx
40cebb:	e8 e6 00 00 00       	call   0x40cfa6
40cec0:	eb 10                	jmp    0x40ced2
40cec2:	8b ce                	mov    %esi,%ecx
40cec4:	e8 04 01 00 00       	call   0x40cfcd
40cec9:	eb 07                	jmp    0x40ced2
40cecb:	8b ce                	mov    %esi,%ecx
40cecd:	e8 73 02 00 00       	call   0x40d145
40ced2:	84 c0                	test   %al,%al
40ced4:	0f 84 69 ff ff ff    	je     0x40ce43
40ceda:	8b 46 10             	mov    0x10(%esi),%eax
40cedd:	0f b7 00             	movzwl (%eax),%eax
40cee0:	66 89 46 32          	mov    %ax,0x32(%esi)
40cee4:	66 85 c0             	test   %ax,%ax
40cee7:	0f 85 67 ff ff ff    	jne    0x40ce54
40ceed:	83 46 10 02          	addl   $0x2,0x10(%esi)
40cef1:	ff 86 50 04 00 00    	incl   0x450(%esi)
40cef7:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
40cefe:	0f 85 45 ff ff ff    	jne    0x40ce49
40cf04:	8b 46 18             	mov    0x18(%esi),%eax
40cf07:	e9 3a ff ff ff       	jmp    0x40ce46
40cf0c:	8d 49 00             	lea    0x0(%ecx),%ecx
40cf0f:	84 ce                	test   %cl,%dh
40cf11:	40                   	inc    %eax
40cf12:	00 8d ce 40 00 a2    	add    %cl,-0x5dffbf32(%ebp)
40cf18:	ce                   	into
40cf19:	40                   	inc    %eax
40cf1a:	00 ab ce 40 00 b4    	add    %ch,-0x4bffbf32(%ebx)
40cf20:	ce                   	into
40cf21:	40                   	inc    %eax
40cf22:	00 b9 ce 40 00 c2    	add    %bh,-0x3dffbf32(%ecx)
40cf28:	ce                   	into
40cf29:	40                   	inc    %eax
40cf2a:	00 cb                	add    %cl,%bl
40cf2c:	ce                   	into
40cf2d:	40                   	inc    %eax
40cf2e:	00 0f                	add    %cl,(%edi)
40cf30:	b7 41                	mov    $0x41,%bh
40cf32:	32 83 e8 20 74 2d    	xor    0x2d7420e8(%ebx),%al
40cf38:	83 e8 03             	sub    $0x3,%eax
40cf3b:	74 22                	je     0x40cf5f
40cf3d:	83 e8 08             	sub    $0x8,%eax
40cf40:	74 17                	je     0x40cf59
40cf42:	48                   	dec    %eax
40cf43:	83 e8 01             	sub    $0x1,%eax
40cf46:	74 0b                	je     0x40cf53
40cf48:	83 e8 03             	sub    $0x3,%eax
40cf4b:	75 1c                	jne    0x40cf69
40cf4d:	83 49 20 08          	orl    $0x8,0x20(%ecx)
40cf51:	eb 16                	jmp    0x40cf69
40cf53:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40cf57:	eb 10                	jmp    0x40cf69
40cf59:	83 49 20 01          	orl    $0x1,0x20(%ecx)
40cf5d:	eb 0a                	jmp    0x40cf69
40cf5f:	83 49 20 20          	orl    $0x20,0x20(%ecx)
40cf63:	eb 04                	jmp    0x40cf69
40cf65:	83 49 20 02          	orl    $0x2,0x20(%ecx)
40cf69:	b0 01                	mov    $0x1,%al
40cf6b:	c3                   	ret
40cf6c:	e8 1a 00 00 00       	call   0x40cf8b
40cf71:	84 c0                	test   %al,%al
40cf73:	75 13                	jne    0x40cf88
40cf75:	e8 59 1d 00 00       	call   0x40ecd3
40cf7a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40cf80:	e8 91 1c 00 00       	call   0x40ec16
40cf85:	32 c0                	xor    %al,%al
40cf87:	c3                   	ret
40cf88:	b0 01                	mov    $0x1,%al
40cf8a:	c3                   	ret
40cf8b:	8d 51 18             	lea    0x18(%ecx),%edx
40cf8e:	c6 41 3c 01          	movb   $0x1,0x3c(%ecx)
40cf92:	52                   	push   %edx
40cf93:	0f b7 51 32          	movzwl 0x32(%ecx),%edx
40cf97:	81 c1 48 04 00 00    	add    $0x448,%ecx
40cf9d:	52                   	push   %edx
40cf9e:	e8 d7 09 00 00       	call   0x40d97a
40cfa3:	b0 01                	mov    $0x1,%al
40cfa5:	c3                   	ret
40cfa6:	66 83 79 32 2a       	cmpw   $0x2a,0x32(%ecx)
40cfab:	8d 51 28             	lea    0x28(%ecx),%edx
40cfae:	74 07                	je     0x40cfb7
40cfb0:	52                   	push   %edx
40cfb1:	e8 bf fc ff ff       	call   0x40cc75
40cfb6:	c3                   	ret
40cfb7:	83 41 14 04          	addl   $0x4,0x14(%ecx)
40cfbb:	8b 41 14             	mov    0x14(%ecx),%eax
40cfbe:	8b 40 fc             	mov    -0x4(%eax),%eax
40cfc1:	89 02                	mov    %eax,(%edx)
40cfc3:	85 c0                	test   %eax,%eax
40cfc5:	79 03                	jns    0x40cfca
40cfc7:	83 0a ff             	orl    $0xffffffff,(%edx)
40cfca:	b0 01                	mov    $0x1,%al
40cfcc:	c3                   	ret
40cfcd:	0f b7 51 32          	movzwl 0x32(%ecx),%edx
40cfd1:	8b c2                	mov    %edx,%eax
40cfd3:	56                   	push   %esi
40cfd4:	83 fa 46             	cmp    $0x46,%edx
40cfd7:	75 1b                	jne    0x40cff4
40cfd9:	8b 01                	mov    (%ecx),%eax
40cfdb:	83 e0 08             	and    $0x8,%eax
40cfde:	83 c8 00             	or     $0x0,%eax
40cfe1:	0f 85 5a 01 00 00    	jne    0x40d141
40cfe7:	c7 41 1c 07 00 00 00 	movl   $0x7,0x1c(%ecx)
40cfee:	5e                   	pop    %esi
40cfef:	e9 51 01 00 00       	jmp    0x40d145
40cff4:	83 fa 4e             	cmp    $0x4e,%edx
40cff7:	75 27                	jne    0x40d020
40cff9:	8b 01                	mov    (%ecx),%eax
40cffb:	6a 08                	push   $0x8
40cffd:	5a                   	pop    %edx
40cffe:	23 c2                	and    %edx,%eax
40d000:	83 c8 00             	or     $0x0,%eax
40d003:	0f 85 38 01 00 00    	jne    0x40d141
40d009:	89 51 1c             	mov    %edx,0x1c(%ecx)
40d00c:	e8 c2 1c 00 00       	call   0x40ecd3
40d011:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d017:	e8 fa 1b 00 00       	call   0x40ec16
40d01c:	32 c0                	xor    %al,%al
40d01e:	5e                   	pop    %esi
40d01f:	c3                   	ret
40d020:	83 79 2c 00          	cmpl   $0x0,0x2c(%ecx)
40d024:	75 e6                	jne    0x40d00c
40d026:	6a 6a                	push   $0x6a
40d028:	5e                   	pop    %esi
40d029:	66 3b c6             	cmp    %si,%ax
40d02c:	0f 87 c5 00 00 00    	ja     0x40d0f7
40d032:	0f 84 b6 00 00 00    	je     0x40d0ee
40d038:	83 f8 49             	cmp    $0x49,%eax
40d03b:	74 4b                	je     0x40d088
40d03d:	83 f8 4c             	cmp    $0x4c,%eax
40d040:	74 3a                	je     0x40d07c
40d042:	83 f8 54             	cmp    $0x54,%eax
40d045:	74 29                	je     0x40d070
40d047:	6a 68                	push   $0x68
40d049:	5a                   	pop    %edx
40d04a:	66 3b c2             	cmp    %dx,%ax
40d04d:	0f 85 ee 00 00 00    	jne    0x40d141
40d053:	8b 41 10             	mov    0x10(%ecx),%eax
40d056:	66 39 10             	cmp    %dx,(%eax)
40d059:	75 0e                	jne    0x40d069
40d05b:	83 c0 02             	add    $0x2,%eax
40d05e:	89 41 10             	mov    %eax,0x10(%ecx)
40d061:	33 c0                	xor    %eax,%eax