40cc36:	5d                   	pop    %ebp
40cc37:	5f                   	pop    %edi
40cc38:	5e                   	pop    %esi
40cc39:	5b                   	pop    %ebx
40cc3a:	c3                   	ret
40cc3b:	90                   	nop
40cc3c:	8b 02                	mov    (%edx),%eax
40cc3e:	33 c9                	xor    %ecx,%ecx
40cc40:	89 48 04             	mov    %ecx,0x4(%eax)
40cc43:	8b 02                	mov    (%edx),%eax
40cc45:	33 d2                	xor    %edx,%edx
40cc47:	89 50 08             	mov    %edx,0x8(%eax)
40cc4a:	c3                   	ret
40cc4b:	90                   	nop
40cc4c:	53                   	push   %ebx
40cc4d:	8b d8                	mov    %eax,%ebx
40cc4f:	8b c3                	mov    %ebx,%eax
40cc51:	e8 56 ff ff ff       	call   0x40cbac
40cc56:	25 ff 00 00 00       	and    $0xff,%eax
40cc5b:	8b 5c 83 04          	mov    0x4(%ebx,%eax,4),%ebx
40cc5f:	85 db                	test   %ebx,%ebx
40cc61:	74 24                	je     0x40cc87
40cc63:	8d 43 08             	lea    0x8(%ebx),%eax
40cc66:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40cc6b:	e8 dc fe ff ff       	call   0x40cb4c
40cc70:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40cc75:	74 0a                	je     0x40cc81
40cc77:	e8 b8 93 ff ff       	call   0x406034
40cc7c:	89 43 04             	mov    %eax,0x4(%ebx)
40cc7f:	eb 06                	jmp    0x40cc87
40cc81:	8b 1b                	mov    (%ebx),%ebx
40cc83:	85 db                	test   %ebx,%ebx
40cc85:	75 dc                	jne    0x40cc63
40cc87:	8b c3                	mov    %ebx,%eax
40cc89:	5b                   	pop    %ebx
40cc8a:	c3                   	ret
40cc8b:	90                   	nop
40cc8c:	53                   	push   %ebx
40cc8d:	56                   	push   %esi
40cc8e:	84 d2                	test   %dl,%dl
40cc90:	74 08                	je     0x40cc9a
40cc92:	83 c4 f0             	add    $0xfffffff0,%esp
40cc95:	e8 d2 68 ff ff       	call   0x40356c
40cc9a:	8b da                	mov    %edx,%ebx
40cc9c:	8b f0                	mov    %eax,%esi
40cc9e:	33 d2                	xor    %edx,%edx
40cca0:	8b c6                	mov    %esi,%eax
40cca2:	e8 71 65 ff ff       	call   0x403218
40cca7:	c7 46 0c ff ff 00 00 	movl   $0xffff,0xc(%esi)
40ccae:	6a 00                	push   $0x0
40ccb0:	6a ff                	push   $0xffffffff
40ccb2:	6a ff                	push   $0xffffffff
40ccb4:	6a 00                	push   $0x0
40ccb6:	e8 e1 92 ff ff       	call   0x405f9c
40ccbb:	89 46 10             	mov    %eax,0x10(%esi)
40ccbe:	6a 00                	push   $0x0
40ccc0:	6a 00                	push   $0x0
40ccc2:	6a 00                	push   $0x0
40ccc4:	6a 00                	push   $0x0
40ccc6:	e8 d1 92 ff ff       	call   0x405f9c
40cccb:	89 46 14             	mov    %eax,0x14(%esi)
40ccce:	c7 46 18 ff ff ff ff 	movl   $0xffffffff,0x18(%esi)
40ccd5:	b2 01                	mov    $0x1,%dl
40ccd7:	a1 50 79 40 00       	mov    0x407950,%eax
40ccdc:	e8 37 65 ff ff       	call   0x403218
40cce1:	89 46 20             	mov    %eax,0x20(%esi)
40cce4:	8b c6                	mov    %esi,%eax
40cce6:	84 db                	test   %bl,%bl
40cce8:	74 0f                	je     0x40ccf9
40ccea:	e8 d5 68 ff ff       	call   0x4035c4
40ccef:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40ccf6:	83 c4 0c             	add    $0xc,%esp
40ccf9:	8b c6                	mov    %esi,%eax
40ccfb:	5e                   	pop    %esi
40ccfc:	5b                   	pop    %ebx
40ccfd:	c3                   	ret
40ccfe:	8b c0                	mov    %eax,%eax
40cd00:	53                   	push   %ebx
40cd01:	56                   	push   %esi
40cd02:	e8 cd 68 ff ff       	call   0x4035d4
40cd07:	8b da                	mov    %edx,%ebx
40cd09:	8b f0                	mov    %eax,%esi
40cd0b:	8b c6                	mov    %esi,%eax
40cd0d:	e8 7a 00 00 00       	call   0x40cd8c
40cd12:	8b d3                	mov    %ebx,%edx
40cd14:	80 e2 fc             	and    $0xfc,%dl
40cd17:	8b c6                	mov    %esi,%eax
40cd19:	e8 1a 65 ff ff       	call   0x403238
40cd1e:	8b 46 10             	mov    0x10(%esi),%eax
40cd21:	50                   	push   %eax
40cd22:	e8 65 92 ff ff       	call   0x405f8c
40cd27:	8b 46 14             	mov    0x14(%esi),%eax
40cd2a:	50                   	push   %eax
40cd2b:	e8 5c 92 ff ff       	call   0x405f8c
40cd30:	8b 46 20             	mov    0x20(%esi),%eax
40cd33:	e8 10 65 ff ff       	call   0x403248
40cd38:	84 db                	test   %bl,%bl
40cd3a:	7e 07                	jle    0x40cd43
40cd3c:	8b c6                	mov    %esi,%eax
40cd3e:	e8 79 68 ff ff       	call   0x4035bc
40cd43:	5e                   	pop    %esi
40cd44:	5b                   	pop    %ebx
40cd45:	c3                   	ret
40cd46:	8b c0                	mov    %eax,%eax
40cd48:	8b 40 10             	mov    0x10(%eax),%eax
40cd4b:	50                   	push   %eax
40cd4c:	e8 03 94 ff ff       	call   0x406154
40cd51:	c3                   	ret
40cd52:	8b c0                	mov    %eax,%eax
40cd54:	8b 40 10             	mov    0x10(%eax),%eax
40cd57:	50                   	push   %eax
40cd58:	e8 0f 94 ff ff       	call   0x40616c
40cd5d:	c3                   	ret
40cd5e:	8b c0                	mov    %eax,%eax
40cd60:	8b 40 14             	mov    0x14(%eax),%eax
40cd63:	50                   	push   %eax
40cd64:	e8 03 94 ff ff       	call   0x40616c
40cd69:	c3                   	ret
40cd6a:	8b c0                	mov    %eax,%eax
40cd6c:	8b 50 18             	mov    0x18(%eax),%edx
40cd6f:	52                   	push   %edx
40cd70:	8b 40 10             	mov    0x10(%eax),%eax
40cd73:	50                   	push   %eax
40cd74:	e8 2b 94 ff ff       	call   0x4061a4
40cd79:	c3                   	ret
40cd7a:	8b c0                	mov    %eax,%eax
40cd7c:	8b 50 18             	mov    0x18(%eax),%edx
40cd7f:	52                   	push   %edx
40cd80:	8b 40 14             	mov    0x14(%eax),%eax
40cd83:	50                   	push   %eax
40cd84:	e8 1b 94 ff ff       	call   0x4061a4
40cd89:	c3                   	ret
40cd8a:	8b c0                	mov    %eax,%eax
40cd8c:	53                   	push   %ebx
40cd8d:	56                   	push   %esi
40cd8e:	57                   	push   %edi
40cd8f:	55                   	push   %ebp
40cd90:	51                   	push   %ecx
40cd91:	8b f8                	mov    %eax,%edi
40cd93:	b3 01                	mov    $0x1,%bl
40cd95:	e8 9a 92 ff ff       	call   0x406034
40cd9a:	8b f0                	mov    %eax,%esi
40cd9c:	3b 77 24             	cmp    0x24(%edi),%esi
40cd9f:	74 7c                	je     0x40ce1d
40cda1:	8b c7                	mov    %edi,%eax
40cda3:	e8 a0 ff ff ff       	call   0x40cd48
40cda8:	8b 6f 28             	mov    0x28(%edi),%ebp
40cdab:	8b d4                	mov    %esp,%edx
40cdad:	8b 47 20             	mov    0x20(%edi),%eax
40cdb0:	e8 0f fe ff ff       	call   0x40cbc4
40cdb5:	8b 04 24             	mov    (%esp),%eax
40cdb8:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40cdbc:	0f 97 c3             	seta   %bl
40cdbf:	84 db                	test   %bl,%bl
40cdc1:	74 22                	je     0x40cde5
40cdc3:	8d 47 0c             	lea    0xc(%edi),%eax
40cdc6:	e8 69 fd ff ff       	call   0x40cb34
40cdcb:	eb 18                	jmp    0x40cde5
40cdcd:	8d 47 0c             	lea    0xc(%edi),%eax
40cdd0:	ba ff ff 00 00       	mov    $0xffff,%edx
40cdd5:	e8 7a fd ff ff       	call   0x40cb54
40cdda:	85 c0                	test   %eax,%eax
40cddc:	74 07                	je     0x40cde5
40cdde:	8b c7                	mov    %edi,%eax
40cde0:	e8 97 ff ff ff       	call   0x40cd7c
40cde5:	8d 47 0c             	lea    0xc(%edi),%eax
40cde8:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40cded:	e8 62 fd ff ff       	call   0x40cb54
40cdf2:	3d ff ff 00 00       	cmp    $0xffff,%eax
40cdf7:	75 d4                	jne    0x40cdcd
40cdf9:	8b c7                	mov    %edi,%eax
40cdfb:	e8 48 ff ff ff       	call   0x40cd48
40ce00:	84 db                	test   %bl,%bl
40ce02:	74 08                	je     0x40ce0c
40ce04:	8d 47 0c             	lea    0xc(%edi),%eax
40ce07:	e8 34 fd ff ff       	call   0x40cb40
40ce0c:	89 77 24             	mov    %esi,0x24(%edi)
40ce0f:	8d 47 28             	lea    0x28(%edi),%eax
40ce12:	e8 1d fd ff ff       	call   0x40cb34
40ce17:	48                   	dec    %eax
40ce18:	3b c5                	cmp    %ebp,%eax
40ce1a:	0f 94 c3             	sete   %bl
40ce1d:	ff 47 1c             	incl   0x1c(%edi)
40ce20:	8b c3                	mov    %ebx,%eax
40ce22:	5a                   	pop    %edx
40ce23:	5d                   	pop    %ebp
40ce24:	5f                   	pop    %edi
40ce25:	5e                   	pop    %esi
40ce26:	5b                   	pop    %ebx
40ce27:	c3                   	ret
40ce28:	53                   	push   %ebx
40ce29:	51                   	push   %ecx
40ce2a:	8b d8                	mov    %eax,%ebx
40ce2c:	8b d4                	mov    %esp,%edx
40ce2e:	8b 43 20             	mov    0x20(%ebx),%eax
40ce31:	e8 8e fd ff ff       	call   0x40cbc4
40ce36:	ff 4b 1c             	decl   0x1c(%ebx)
40ce39:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40ce3d:	75 20                	jne    0x40ce5f
40ce3f:	33 c0                	xor    %eax,%eax
40ce41:	89 43 24             	mov    %eax,0x24(%ebx)
40ce44:	8d 43 0c             	lea    0xc(%ebx),%eax
40ce47:	ba ff ff 00 00       	mov    $0xffff,%edx
40ce4c:	e8 03 fd ff ff       	call   0x40cb54
40ce51:	8b c3                	mov    %ebx,%eax
40ce53:	e8 08 ff ff ff       	call   0x40cd60
40ce58:	8b c3                	mov    %ebx,%eax
40ce5a:	e8 f5 fe ff ff       	call   0x40cd54
40ce5f:	8b 04 24             	mov    (%esp),%eax
40ce62:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40ce66:	75 0a                	jne    0x40ce72
40ce68:	8b d4                	mov    %esp,%edx
40ce6a:	8b 43 20             	mov    0x20(%ebx),%eax
40ce6d:	e8 ca fd ff ff       	call   0x40cc3c
40ce72:	5a                   	pop    %edx
40ce73:	5b                   	pop    %ebx
40ce74:	c3                   	ret
40ce75:	8d 40 00             	lea    0x0(%eax),%eax
40ce78:	53                   	push   %ebx
40ce79:	56                   	push   %esi
40ce7a:	51                   	push   %ecx
40ce7b:	8b f0                	mov    %eax,%esi
40ce7d:	8b d4                	mov    %esp,%edx
40ce7f:	8b 46 20             	mov    0x20(%esi),%eax
40ce82:	e8 3d fd ff ff       	call   0x40cbc4
40ce87:	8b 04 24             	mov    (%esp),%eax
40ce8a:	ff 40 0c             	incl   0xc(%eax)
40ce8d:	8b 04 24             	mov    (%esp),%eax
40ce90:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40ce94:	0f 97 c3             	seta   %bl
40ce97:	e8 98 91 ff ff       	call   0x406034
40ce9c:	3b 46 24             	cmp    0x24(%esi),%eax
40ce9f:	74 3d                	je     0x40cede
40cea1:	84 db                	test   %bl,%bl
40cea3:	75 39                	jne    0x40cede
40cea5:	8b c6                	mov    %esi,%eax
40cea7:	e8 c0 fe ff ff       	call   0x40cd6c
40ceac:	eb 24                	jmp    0x40ced2
40ceae:	8d 46 0c             	lea    0xc(%esi),%eax
40ceb1:	e8 7e fc ff ff       	call   0x40cb34
40ceb6:	3d ff ff 00 00       	cmp    $0xffff,%eax
40cebb:	75 07                	jne    0x40cec4
40cebd:	8b c6                	mov    %esi,%eax
40cebf:	e8 9c fe ff ff       	call   0x40cd60
40cec4:	6a 00                	push   $0x0
40cec6:	e8 1d fb ff ff       	call   0x40c9e8
40cecb:	8b c6                	mov    %esi,%eax
40cecd:	e8 9a fe ff ff       	call   0x40cd6c
40ced2:	8d 46 0c             	lea    0xc(%esi),%eax
40ced5:	e8 66 fc ff ff       	call   0x40cb40
40ceda:	85 c0                	test   %eax,%eax
40cedc:	7e d0                	jle    0x40ceae
40cede:	5a                   	pop    %edx
40cedf:	5e                   	pop    %esi
40cee0:	5b                   	pop    %ebx
40cee1:	c3                   	ret
40cee2:	8b c0                	mov    %eax,%eax
40cee4:	53                   	push   %ebx
40cee5:	51                   	push   %ecx
40cee6:	8b d8                	mov    %eax,%ebx
40cee8:	8b d4                	mov    %esp,%edx
40ceea:	8b 43 20             	mov    0x20(%ebx),%eax
40ceed:	e8 d2 fc ff ff       	call   0x40cbc4
40cef2:	8b 04 24             	mov    (%esp),%eax
40cef5:	ff 48 0c             	decl   0xc(%eax)
40cef8:	8b 04 24             	mov    (%esp),%eax
40cefb:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40ceff:	75 48                	jne    0x40cf49
40cf01:	8b d4                	mov    %esp,%edx
40cf03:	8b 43 20             	mov    0x20(%ebx),%eax
40cf06:	e8 31 fd ff ff       	call   0x40cc3c
40cf0b:	e8 24 91 ff ff       	call   0x406034
40cf10:	3b 43 24             	cmp    0x24(%ebx),%eax
40cf13:	74 34                	je     0x40cf49
40cf15:	8d 43 0c             	lea    0xc(%ebx),%eax
40cf18:	e8 17 fc ff ff       	call   0x40cb34
40cf1d:	8b c8                	mov    %eax,%ecx
40cf1f:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40cf25:	75 09                	jne    0x40cf30
40cf27:	8b c3                	mov    %ebx,%eax
40cf29:	e8 32 fe ff ff       	call   0x40cd60
40cf2e:	eb 19                	jmp    0x40cf49
40cf30:	85 c9                	test   %ecx,%ecx
40cf32:	7f 15                	jg     0x40cf49
40cf34:	8b c1                	mov    %ecx,%eax
40cf36:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40cf3b:	99                   	cltd
40cf3c:	f7 f9                	idiv   %ecx
40cf3e:	85 d2                	test   %edx,%edx
40cf40:	75 07                	jne    0x40cf49
40cf42:	8b c3                	mov    %ebx,%eax
40cf44:	e8 17 fe ff ff       	call   0x40cd60
40cf49:	5a                   	pop    %edx
40cf4a:	5b                   	pop    %ebx
40cf4b:	c3                   	ret
40cf4c:	8b 10                	mov    (%eax),%edx
40cf4e:	33 c9                	xor    %ecx,%ecx
40cf50:	89 08                	mov    %ecx,(%eax)
40cf52:	8b c2                	mov    %edx,%eax
40cf54:	e8 ef 62 ff ff       	call   0x403248
40cf59:	c3                   	ret
40cf5a:	8b c0                	mov    %eax,%eax
40cf5c:	53                   	push   %ebx
40cf5d:	56                   	push   %esi
40cf5e:	57                   	push   %edi
40cf5f:	8b f9                	mov    %ecx,%edi
40cf61:	8b f2                	mov    %edx,%esi
40cf63:	8b d8                	mov    %eax,%ebx
40cf65:	85 db                	test   %ebx,%ebx
40cf67:	74 0b                	je     0x40cf74
40cf69:	57                   	push   %edi
40cf6a:	56                   	push   %esi
40cf6b:	53                   	push   %ebx
40cf6c:	8b 03                	mov    (%ebx),%eax
40cf6e:	ff 10                	call   *(%eax)
40cf70:	85 c0                	test   %eax,%eax
40cf72:	74 04                	je     0x40cf78
40cf74:	33 c0                	xor    %eax,%eax
40cf76:	eb 02                	jmp    0x40cf7a
40cf78:	b0 01                	mov    $0x1,%al
40cf7a:	5f                   	pop    %edi
40cf7b:	5e                   	pop    %esi
40cf7c:	5b                   	pop    %ebx
40cf7d:	c3                   	ret
40cf7e:	8b c0                	mov    %eax,%eax
40cf80:	55                   	push   %ebp
40cf81:	8b ec                	mov    %esp,%ebp
40cf83:	6a 00                	push   $0x0
40cf85:	53                   	push   %ebx
40cf86:	56                   	push   %esi
40cf87:	57                   	push   %edi
40cf88:	8b f9                	mov    %ecx,%edi
40cf8a:	8b f2                	mov    %edx,%esi
40cf8c:	8b d8                	mov    %eax,%ebx
40cf8e:	33 c0                	xor    %eax,%eax
40cf90:	55                   	push   %ebp
40cf91:	68 f7 cf 40 00       	push   $0x40cff7
40cf96:	64 ff 30             	push   %fs:(%eax)
40cf99:	64 89 20             	mov    %esp,%fs:(%eax)
40cf9c:	85 db                	test   %ebx,%ebx
40cf9e:	74 39                	je     0x40cfd9
40cfa0:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cfa3:	e8 90 86 ff ff       	call   0x405638
40cfa8:	8b c8                	mov    %eax,%ecx
40cfaa:	ba 08 d0 40 00       	mov    $0x40d008,%edx
40cfaf:	8b c3                	mov    %ebx,%eax
40cfb1:	e8 46 63 ff ff       	call   0x4032fc
40cfb6:	84 c0                	test   %al,%al
40cfb8:	74 10                	je     0x40cfca
40cfba:	8b cf                	mov    %edi,%ecx