40ccbd:	89 e2                	mov    %esp,%edx
40ccbf:	50                   	push   %eax
40ccc0:	50                   	push   %eax
40ccc1:	52                   	push   %edx
40ccc2:	ff 74 24 20          	push   0x20(%esp)
40ccc6:	e8 5d 7d ff ff       	call   0x404a28
40cccb:	e8 30 7c ff ff       	call   0x404900
40ccd0:	83 c4 10             	add    $0x10,%esp
40ccd3:	8b 4b 41             	mov    0x41(%ebx),%ecx
40ccd6:	e3 22                	jecxz  0x40ccfa
40ccd8:	ff 74 24 04          	push   0x4(%esp)
40ccdc:	e8 77 7c ff ff       	call   0x404958
40cce1:	6a 00                	push   $0x0
40cce3:	ff 73 3d             	push   0x3d(%ebx)
40cce6:	ff 73 41             	push   0x41(%ebx)
40cce9:	ff 73 18             	push   0x18(%ebx)
40ccec:	6a 00                	push   $0x0
40ccee:	55                   	push   %ebp
40ccef:	ff 74 24 18          	push   0x18(%esp)
40ccf3:	e8 80 7c ff ff       	call   0x404978
40ccf8:	eb 14                	jmp    0x40cd0e
40ccfa:	8b 54 24 04          	mov    0x4(%esp),%edx
40ccfe:	52                   	push   %edx
40ccff:	89 d8                	mov    %ebx,%eax
40cd01:	31 c9                	xor    %ecx,%ecx
40cd03:	51                   	push   %ecx
40cd04:	e8 c3 fa ff ff       	call   0x40c7cc
40cd09:	e8 4a 7c ff ff       	call   0x404958
40cd0e:	89 d8                	mov    %ebx,%eax
40cd10:	e8 3f fa ff ff       	call   0x40c754
40cd15:	89 6b 20             	mov    %ebp,0x20(%ebx)
40cd18:	e9 d5 00 00 00       	jmp    0x40cdf2
40cd1d:	0f b6 43 49          	movzbl 0x49(%ebx),%eax
40cd21:	91                   	xchg   %eax,%ecx
40cd22:	8a 89 3c 64 42 00    	mov    0x42643c(%ecx),%cl
40cd28:	0f b6 05 18 61 42 00 	movzbl 0x426118,%eax
40cd2f:	e3 f0                	jecxz  0x40cd21
40cd31:	31 ed                	xor    %ebp,%ebp
40cd33:	8b 43 1c             	mov    0x1c(%ebx),%eax
40cd36:	8b 53 18             	mov    0x18(%ebx),%edx
40cd39:	e8 02 f9 ff ff       	call   0x40c640
40cd3e:	50                   	push   %eax
40cd3f:	80 7b 49 05          	cmpb   $0x5,0x49(%ebx)
40cd43:	75 05                	jne    0x40cd4a
40cd45:	e8 8e f9 ff ff       	call   0x40c6d8
40cd4a:	58                   	pop    %eax
40cd4b:	50                   	push   %eax
40cd4c:	e8 af fe ff ff       	call   0x40cc00
40cd51:	8b 53 18             	mov    0x18(%ebx),%edx
40cd54:	f7 e2                	mul    %edx
40cd56:	50                   	push   %eax
40cd57:	50                   	push   %eax
40cd58:	6a 00                	push   $0x0
40cd5a:	e8 c1 7a ff ff       	call   0x404820
40cd5f:	50                   	push   %eax
40cd60:	6a 00                	push   $0x0
40cd62:	ff 74 24 0c          	push   0xc(%esp)
40cd66:	50                   	push   %eax
40cd67:	8b 43 18             	mov    0x18(%ebx),%eax
40cd6a:	39 f8                	cmp    %edi,%eax
40cd6c:	7e 02                	jle    0x40cd70
40cd6e:	89 f8                	mov    %edi,%eax
40cd70:	50                   	push   %eax
40cd71:	6a 00                	push   $0x0
40cd73:	89 d8                	mov    %ebx,%eax
40cd75:	e8 7e c2 ff ff       	call   0x408ff8
40cd7a:	50                   	push   %eax
40cd7b:	ff 74 24 24          	push   0x24(%esp)
40cd7f:	e8 94 7b ff ff       	call   0x404918
40cd84:	8b 53 18             	mov    0x18(%ebx),%edx
40cd87:	39 fa                	cmp    %edi,%edx
40cd89:	7e 02                	jle    0x40cd8d
40cd8b:	89 fa                	mov    %edi,%edx
40cd8d:	39 d0                	cmp    %edx,%eax
40cd8f:	74 43                	je     0x40cdd4
40cd91:	e8 92 7a ff ff       	call   0x404828
40cd96:	31 c0                	xor    %eax,%eax
40cd98:	50                   	push   %eax
40cd99:	89 e2                	mov    %esp,%edx
40cd9b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40cd9f:	50                   	push   %eax
40cda0:	50                   	push   %eax
40cda1:	52                   	push   %edx
40cda2:	6a 00                	push   $0x0
40cda4:	51                   	push   %ecx
40cda5:	ff 74 24 20          	push   0x20(%esp)
40cda9:	e8 2a 7b ff ff       	call   0x4048d8
40cdae:	83 f6 ff             	xor    $0xffffffff,%esi
40cdb1:	95                   	xchg   %eax,%ebp
40cdb2:	55                   	push   %ebp
40cdb3:	ff 74 24 10          	push   0x10(%esp)
40cdb7:	e8 9c 7b ff ff       	call   0x404958
40cdbc:	50                   	push   %eax
40cdbd:	8b 54 24 10          	mov    0x10(%esp),%edx
40cdc1:	31 c9                	xor    %ecx,%ecx
40cdc3:	51                   	push   %ecx
40cdc4:	89 d8                	mov    %ebx,%eax
40cdc6:	e8 01 fa ff ff       	call   0x40c7cc
40cdcb:	ff 74 24 10          	push   0x10(%esp)
40cdcf:	e8 84 7b ff ff       	call   0x404958
40cdd4:	89 d8                	mov    %ebx,%eax
40cdd6:	e8 79 f9 ff ff       	call   0x40c754
40cddb:	8f 43 41             	pop    0x41(%ebx)
40cdde:	8f 43 45             	pop    0x45(%ebx)
40cde1:	8f 43 3d             	pop    0x3d(%ebx)
40cde4:	89 6b 20             	mov    %ebp,0x20(%ebx)
40cde7:	85 f6                	test   %esi,%esi
40cde9:	c6 43 72 00          	movb   $0x0,0x72(%ebx)
40cded:	7d 03                	jge    0x40cdf2
40cdef:	fe 43 72             	incb   0x72(%ebx)
40cdf2:	8b 4b 4a             	mov    0x4a(%ebx),%ecx
40cdf5:	e3 08                	jecxz  0x40cdff
40cdf7:	5a                   	pop    %edx
40cdf8:	52                   	push   %edx
40cdf9:	57                   	push   %edi
40cdfa:	87 ce                	xchg   %ecx,%esi
40cdfc:	93                   	xchg   %eax,%ebx
40cdfd:	ff d6                	call   *%esi
40cdff:	e8 f4 7a ff ff       	call   0x4048f8
40ce04:	61                   	popa
40ce05:	c3                   	ret
40ce06:	8b c0                	mov    %eax,%eax
40ce08:	8b 48 3d             	mov    0x3d(%eax),%ecx
40ce0b:	e3 23                	jecxz  0x40ce30
40ce0d:	8b 49 08             	mov    0x8(%ecx),%ecx
40ce10:	85 c9                	test   %ecx,%ecx
40ce12:	7c 05                	jl     0x40ce19
40ce14:	29 d1                	sub    %edx,%ecx
40ce16:	49                   	dec    %ecx
40ce17:	89 ca                	mov    %ecx,%edx
40ce19:	8b 48 28             	mov    0x28(%eax),%ecx
40ce1c:	41                   	inc    %ecx
40ce1d:	ff 70 41             	push   0x41(%eax)
40ce20:	e2 08                	loop   0x40ce2a
40ce22:	52                   	push   %edx
40ce23:	e8 0c 00 00 00       	call   0x40ce34
40ce28:	5a                   	pop    %edx
40ce29:	91                   	xchg   %eax,%ecx
40ce2a:	91                   	xchg   %eax,%ecx
40ce2b:	f7 e2                	mul    %edx
40ce2d:	59                   	pop    %ecx
40ce2e:	01 c1                	add    %eax,%ecx
40ce30:	91                   	xchg   %eax,%ecx
40ce31:	c3                   	ret
40ce32:	8b c0                	mov    %eax,%eax
40ce34:	8b 48 3d             	mov    0x3d(%eax),%ecx
40ce37:	e3 0c                	jecxz  0x40ce45
40ce39:	50                   	push   %eax
40ce3a:	91                   	xchg   %eax,%ecx
40ce3b:	e8 c0 fd ff ff       	call   0x40cc00
40ce40:	91                   	xchg   %eax,%ecx
40ce41:	58                   	pop    %eax
40ce42:	89 48 28             	mov    %ecx,0x28(%eax)
40ce45:	91                   	xchg   %eax,%ecx
40ce46:	c3                   	ret
40ce47:	90                   	nop
40ce48:	50                   	push   %eax
40ce49:	92                   	xchg   %eax,%edx
40ce4a:	e8 a5 da ff ff       	call   0x40a8f4
40ce4f:	8b 50 2d             	mov    0x2d(%eax),%edx
40ce52:	58                   	pop    %eax
40ce53:	89 40 2c             	mov    %eax,0x2c(%eax)
40ce56:	e8 31 01 00 00       	call   0x40cf8c
40ce5b:	c3                   	ret
40ce5c:	50                   	push   %eax
40ce5d:	e8 92 00 00 00       	call   0x40cef4
40ce62:	58                   	pop    %eax
40ce63:	8b 48 20             	mov    0x20(%eax),%ecx
40ce66:	e3 0b                	jecxz  0x40ce73
40ce68:	e8 1b fd ff ff       	call   0x40cb88
40ce6d:	50                   	push   %eax
40ce6e:	e8 8d 7a ff ff       	call   0x404900
40ce73:	c3                   	ret
40ce74:	60                   	pusha
40ce75:	93                   	xchg   %eax,%ebx
40ce76:	89 d6                	mov    %edx,%esi
40ce78:	89 d8                	mov    %ebx,%eax
40ce7a:	e8 21 f9 ff ff       	call   0x40c7a0
40ce7f:	89 f0                	mov    %esi,%eax
40ce81:	09 c0                	or     %eax,%eax
40ce83:	74 68                	je     0x40ceed
40ce85:	e8 d6 fc ff ff       	call   0x40cb60
40ce8a:	74 61                	je     0x40ceed
40ce8c:	8b 46 1c             	mov    0x1c(%esi),%eax
40ce8f:	89 43 1c             	mov    %eax,0x1c(%ebx)
40ce92:	8b 46 18             	mov    0x18(%esi),%eax
40ce95:	89 43 18             	mov    %eax,0x18(%ebx)
40ce98:	0f b6 4e 3c          	movzbl 0x3c(%esi),%ecx
40ce9c:	88 4b 3c             	mov    %cl,0x3c(%ebx)
40ce9f:	e3 17                	jecxz  0x40ceb8
40cea1:	49                   	dec    %ecx
40cea2:	51                   	push   %ecx
40cea3:	51                   	push   %ecx
40cea4:	51                   	push   %ecx
40cea5:	51                   	push   %ecx
40cea6:	ff 76 20             	push   0x20(%esi)
40cea9:	e8 2a 7b ff ff       	call   0x4049d8
40ceae:	89 43 20             	mov    %eax,0x20(%ebx)
40ceb1:	85 c0                	test   %eax,%eax
40ceb3:	92                   	xchg   %eax,%edx
40ceb4:	74 c0                	je     0x40ce76
40ceb6:	eb 35                	jmp    0x40ceed
40ceb8:	91                   	xchg   %eax,%ecx
40ceb9:	66 b8 28 04          	mov    $0x428,%ax
40cebd:	50                   	push   %eax
40cebe:	e8 6d 59 ff ff       	call   0x402830
40cec3:	89 43 3d             	mov    %eax,0x3d(%ebx)
40cec6:	92                   	xchg   %eax,%edx
40cec7:	59                   	pop    %ecx
40cec8:	8b 46 3d             	mov    0x3d(%esi),%eax
40cecb:	e8 74 5a ff ff       	call   0x402944
40ced0:	8b 46 45             	mov    0x45(%esi),%eax
40ced3:	89 43 45             	mov    %eax,0x45(%ebx)
40ced6:	50                   	push   %eax
40ced7:	50                   	push   %eax
40ced8:	6a 00                	push   $0x0
40ceda:	e8 41 79 ff ff       	call   0x404820
40cedf:	89 43 41             	mov    %eax,0x41(%ebx)
40cee2:	92                   	xchg   %eax,%edx
40cee3:	59                   	pop    %ecx
40cee4:	8b 46 41             	mov    0x41(%esi),%eax
40cee7:	e8 58 5a ff ff       	call   0x402944
40ceec:	43                   	inc    %ebx
40ceed:	61                   	popa
40ceee:	0f 95 c0             	setne  %al
40cef1:	c3                   	ret
40cef2:	8b c0                	mov    %eax,%eax
40cef4:	50                   	push   %eax
40cef5:	ff 50 34             	call   *0x34(%eax)
40cef8:	5a                   	pop    %edx
40cef9:	31 c0                	xor    %eax,%eax
40cefb:	87 42 24             	xchg   %eax,0x24(%edx)
40cefe:	e8 0d d3 ff ff       	call   0x40a210
40cf03:	c3                   	ret
40cf04:	53                   	push   %ebx
40cf05:	56                   	push   %esi
40cf06:	57                   	push   %edi
40cf07:	96                   	xchg   %eax,%esi
40cf08:	92                   	xchg   %eax,%edx
40cf09:	e8 66 d5 ff ff       	call   0x40a474
40cf0e:	97                   	xchg   %eax,%edi
40cf0f:	89 f0                	mov    %esi,%eax
40cf11:	e8 4e 00 00 00       	call   0x40cf64
40cf16:	91                   	xchg   %eax,%ecx
40cf17:	31 c0                	xor    %eax,%eax
40cf19:	e3 33                	jecxz  0x40cf4e
40cf1b:	8b 76 3d             	mov    0x3d(%esi),%esi
40cf1e:	83 c6 28             	add    $0x28,%esi
40cf21:	31 d2                	xor    %edx,%edx
40cf23:	52                   	push   %edx
40cf24:	66 4a                	dec    %dx
40cf26:	ad                   	lods   %ds:(%esi),%eax
40cf27:	31 f8                	xor    %edi,%eax
40cf29:	89 c3                	mov    %eax,%ebx
40cf2b:	c1 eb 10             	shr    $0x10,%ebx
40cf2e:	b7 00                	mov    $0x0,%bh
40cf30:	00 e0                	add    %ah,%al
40cf32:	b4 00                	mov    $0x0,%ah
40cf34:	66 11 d8             	adc    %bx,%ax
40cf37:	66 39 d0             	cmp    %dx,%ax
40cf3a:	73 05                	jae    0x40cf41
40cf3c:	66 89 c2             	mov    %ax,%dx
40cf3f:	5b                   	pop    %ebx
40cf40:	52                   	push   %edx
40cf41:	81 c2 00 00 01 00    	add    $0x10000,%edx
40cf47:	e2 dd                	loop   0x40cf26
40cf49:	91                   	xchg   %eax,%ecx
40cf4a:	66 58                	pop    %ax
40cf4c:	66 58                	pop    %ax
40cf4e:	5f                   	pop    %edi
40cf4f:	5e                   	pop    %esi
40cf50:	5b                   	pop    %ebx
40cf51:	c3                   	ret
40cf52:	8b c0                	mov    %eax,%eax
40cf54:	8b 48 3d             	mov    0x3d(%eax),%ecx
40cf57:	e3 05                	jecxz  0x40cf5e
40cf59:	8b 4c 91 28          	mov    0x28(%ecx,%edx,4),%ecx
40cf5d:	41                   	inc    %ecx
40cf5e:	49                   	dec    %ecx
40cf5f:	91                   	xchg   %eax,%ecx
40cf60:	c3                   	ret
40cf61:	8d 40 00             	lea    0x0(%eax),%eax
40cf64:	50                   	push   %eax
40cf65:	e8 f6 fb ff ff       	call   0x40cb60
40cf6a:	58                   	pop    %eax
40cf6b:	74 1a                	je     0x40cf87
40cf6d:	e8 56 c5 ff ff       	call   0x4094c8
40cf72:	0f b6 c8             	movzbl %al,%ecx
40cf75:	89 c8                	mov    %ecx,%eax
40cf77:	e2 02                	loop   0x40cf7b
40cf79:	40                   	inc    %eax
40cf7a:	c3                   	ret
40cf7b:	e2 03                	loop   0x40cf80
40cf7d:	b0 10                	mov    $0x10,%al
40cf7f:	c3                   	ret
40cf80:	e2 05                	loop   0x40cf87
40cf82:	31 c0                	xor    %eax,%eax
40cf84:	fe c4                	inc    %ah
40cf86:	c3                   	ret
40cf87:	31 c0                	xor    %eax,%eax
40cf89:	c3                   	ret
40cf8a:	8b c0                	mov    %eax,%eax
40cf8c:	83 48 52 ff          	orl    $0xffffffff,0x52(%eax)
40cf90:	31 d2                	xor    %edx,%edx
40cf92:	87 50 4e             	xchg   %edx,0x4e(%eax)
40cf95:	92                   	xchg   %eax,%edx
40cf96:	e8 75 d2 ff ff       	call   0x40a210
40cf9b:	c3                   	ret
40cf9c:	53                   	push   %ebx
40cf9d:	56                   	push   %esi
40cf9e:	55                   	push   %ebp
40cf9f:	57                   	push   %edi
40cfa0:	95                   	xchg   %eax,%ebp
40cfa1:	92                   	xchg   %eax,%edx
40cfa2:	e8 bd d4 ff ff       	call   0x40a464
40cfa7:	93                   	xchg   %eax,%ebx
40cfa8:	89 e8                	mov    %ebp,%eax
40cfaa:	e8 19 c5 ff ff       	call   0x4094c8
40cfaf:	3c 04                	cmp    $0x4,%al
40cfb1:	72 04                	jb     0x40cfb7
40cfb3:	3c 06                	cmp    $0x6,%al
40cfb5:	72 05                	jb     0x40cfbc
40cfb7:	0f cb                	bswap  %ebx
40cfb9:	c1 eb 08             	shr    $0x8,%ebx
40cfbc:	b2 02                	mov    $0x2,%dl
40cfbe:	38 d0                	cmp    %dl,%al
40cfc0:	72 06                	jb     0x40cfc8
40cfc2:	b2 07                	mov    $0x7,%dl
40cfc4:	38 d0                	cmp    %dl,%al
40cfc6:	76 07                	jbe    0x40cfcf
40cfc8:	89 e8                	mov    %ebp,%eax
40cfca:	e8 f5 fb ff ff       	call   0x40cbc4
40cfcf:	8b 45 1c             	mov    0x1c(%ebp),%eax
40cfd2:	8b 55 18             	mov    0x18(%ebp),%edx
40cfd5:	b1 01                	mov    $0x1,%cl
40cfd7:	e8 14 f7 ff ff       	call   0x40c6f0
40cfdc:	50                   	push   %eax
40cfdd:	31 d2                	xor    %edx,%edx
40cfdf:	42                   	inc    %edx
40cfe0:	b9 ff ff ff 00       	mov    $0xffffff,%ecx
40cfe5:	e8 9e c4 ff ff       	call   0x409488
40cfea:	31 d2                	xor    %edx,%edx
40cfec:	3b 55 18             	cmp    0x18(%ebp),%edx
40cfef:	0f 8d 66 01 00 00    	jge    0x40d15b
40cff5:	52                   	push   %edx
40cff6:	89 e8                	mov    %ebp,%eax
40cff8:	e8 0b fe ff ff       	call   0x40ce08
40cffd:	96                   	xchg   %eax,%esi
40cffe:	8b 44 24 04          	mov    0x4(%esp),%eax
40d002:	5a                   	pop    %edx