41cd25:	89 45 e8             	mov    %eax,-0x18(%ebp)
41cd28:	8d 45 e8             	lea    -0x18(%ebp),%eax
41cd2b:	c6 45 14 00          	movb   $0x0,0x14(%ebp)
41cd2f:	ff 75 14             	push   0x14(%ebp)
41cd32:	50                   	push   %eax
41cd33:	57                   	push   %edi
41cd34:	56                   	push   %esi
41cd35:	e8 53 6e fe ff       	call   0x403b8d
41cd3a:	8b f0                	mov    %eax,%esi
41cd3c:	83 c4 10             	add    $0x10,%esp
41cd3f:	3b f7                	cmp    %edi,%esi
41cd41:	0f 84 e5 fd ff ff    	je     0x41cb2c
41cd47:	83 c6 02             	add    $0x2,%esi
41cd4a:	e9 dd fd ff ff       	jmp    0x41cb2c
41cd4f:	85 db                	test   %ebx,%ebx
41cd51:	74 22                	je     0x41cd75
41cd53:	ff 73 0c             	push   0xc(%ebx)
41cd56:	8d 45 14             	lea    0x14(%ebp),%eax
41cd59:	8b ca                	mov    %edx,%ecx
41cd5b:	57                   	push   %edi
41cd5c:	56                   	push   %esi
41cd5d:	50                   	push   %eax
41cd5e:	e8 6c fd ff ff       	call   0x41cacf
41cd63:	8b 75 0c             	mov    0xc(%ebp),%esi
41cd66:	8b 55 fc             	mov    -0x4(%ebp),%edx
41cd69:	8b 38                	mov    (%eax),%edi
41cd6b:	89 7d 10             	mov    %edi,0x10(%ebp)
41cd6e:	8b 5b 18             	mov    0x18(%ebx),%ebx
41cd71:	3b f7                	cmp    %edi,%esi
41cd73:	75 da                	jne    0x41cd4f
41cd75:	8b 45 08             	mov    0x8(%ebp),%eax
41cd78:	89 38                	mov    %edi,(%eax)
41cd7a:	e9 b2 fd ff ff       	jmp    0x41cb31
41cd7f:	55                   	push   %ebp
41cd80:	8b ec                	mov    %esp,%ebp
41cd82:	51                   	push   %ecx
41cd83:	51                   	push   %ecx
41cd84:	56                   	push   %esi
41cd85:	57                   	push   %edi
41cd86:	e8 a4 00 03 00       	call   0x44ce2f
41cd8b:	ff 75 0c             	push   0xc(%ebp)
41cd8e:	8b f8                	mov    %eax,%edi
41cd90:	ff 75 08             	push   0x8(%ebp)
41cd93:	8b 37                	mov    (%edi),%esi
41cd95:	83 27 00             	andl   $0x0,(%edi)
41cd98:	e8 86 69 03 00       	call   0x453723
41cd9d:	8b 45 14             	mov    0x14(%ebp),%eax
41cda0:	83 c4 08             	add    $0x8,%esp
41cda3:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
41cda7:	8b 0f                	mov    (%edi),%ecx
41cda9:	dd 55 f8             	fstl   -0x8(%ebp)
41cdac:	89 08                	mov    %ecx,(%eax)
41cdae:	89 37                	mov    %esi,(%edi)
41cdb0:	5f                   	pop    %edi
41cdb1:	5e                   	pop    %esi
41cdb2:	74 2c                	je     0x41cde0
41cdb4:	66 0f 6e 45 10       	movd   0x10(%ebp),%xmm0
41cdb9:	83 ec 10             	sub    $0x10,%esp
41cdbc:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
41cdc0:	dd d8                	fstp   %st(0)
41cdc2:	f2 0f 11 44 24 08    	movsd  %xmm0,0x8(%esp)
41cdc8:	f2 0f 10 05 00 69 49 	movsd  0x496900,%xmm0
41cdcf:	00
41cdd0:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
41cdd5:	e8 96 6d 03 00       	call   0x453b70
41cdda:	dc 4d f8             	fmull  -0x8(%ebp)
41cddd:	83 c4 10             	add    $0x10,%esp
41cde0:	c9                   	leave
41cde1:	c3                   	ret
41cde2:	55                   	push   %ebp
41cde3:	8b ec                	mov    %esp,%ebp
41cde5:	51                   	push   %ecx
41cde6:	56                   	push   %esi
41cde7:	57                   	push   %edi
41cde8:	e8 42 00 03 00       	call   0x44ce2f
41cded:	ff 75 0c             	push   0xc(%ebp)
41cdf0:	8b f8                	mov    %eax,%edi
41cdf2:	ff 75 08             	push   0x8(%ebp)
41cdf5:	8b 37                	mov    (%edi),%esi
41cdf7:	83 27 00             	andl   $0x0,(%edi)
41cdfa:	e8 3b 69 03 00       	call   0x45373a
41cdff:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
41ce03:	8b 45 14             	mov    0x14(%ebp),%eax
41ce06:	59                   	pop    %ecx
41ce07:	59                   	pop    %ecx
41ce08:	8b 0f                	mov    (%edi),%ecx
41ce0a:	89 08                	mov    %ecx,(%eax)
41ce0c:	89 37                	mov    %esi,(%edi)
41ce0e:	5f                   	pop    %edi
41ce0f:	d9 5d fc             	fstps  -0x4(%ebp)
41ce12:	5e                   	pop    %esi
41ce13:	74 35                	je     0x41ce4a
41ce15:	66 0f 6e 45 10       	movd   0x10(%ebp),%xmm0
41ce1a:	83 ec 10             	sub    $0x10,%esp
41ce1d:	0f 5b c0             	cvtdq2ps %xmm0,%xmm0
41ce20:	0f 5a c0             	cvtps2pd %xmm0,%xmm0
41ce23:	f2 0f 11 44 24 08    	movsd  %xmm0,0x8(%esp)
41ce29:	f2 0f 10 05 00 69 49 	movsd  0x496900,%xmm0
41ce30:	00
41ce31:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
41ce36:	e8 35 6d 03 00       	call   0x453b70
41ce3b:	d9 5d 10             	fstps  0x10(%ebp)
41ce3e:	d9 45 10             	flds   0x10(%ebp)
41ce41:	83 c4 10             	add    $0x10,%esp
41ce44:	d8 4d fc             	fmuls  -0x4(%ebp)
41ce47:	d9 5d fc             	fstps  -0x4(%ebp)
41ce4a:	d9 45 fc             	flds   -0x4(%ebp)
41ce4d:	c9                   	leave
41ce4e:	c3                   	ret
41ce4f:	b8 50 8d 4b 00       	mov    $0x4b8d50,%eax
41ce54:	c3                   	ret
41ce55:	56                   	push   %esi
41ce56:	8b f1                	mov    %ecx,%esi
41ce58:	8b 4e 24             	mov    0x24(%esi),%ecx
41ce5b:	85 c9                	test   %ecx,%ecx
41ce5d:	74 12                	je     0x41ce71
41ce5f:	8b 11                	mov    (%ecx),%edx
41ce61:	3b ce                	cmp    %esi,%ecx
41ce63:	0f 95 c0             	setne  %al
41ce66:	0f b6 c0             	movzbl %al,%eax
41ce69:	50                   	push   %eax
41ce6a:	ff 52 10             	call   *0x10(%edx)
41ce6d:	83 66 24 00          	andl   $0x0,0x24(%esi)
41ce71:	5e                   	pop    %esi
41ce72:	c3                   	ret
41ce73:	55                   	push   %ebp
41ce74:	8b ec                	mov    %esp,%ebp
41ce76:	56                   	push   %esi
41ce77:	8b 75 08             	mov    0x8(%ebp),%esi
41ce7a:	eb 0c                	jmp    0x41ce88
41ce7c:	8b ce                	mov    %esi,%ecx
41ce7e:	8b 76 10             	mov    0x10(%esi),%esi
41ce81:	6a 01                	push   $0x1
41ce83:	e8 fa 36 ff ff       	call   0x410582
41ce88:	85 f6                	test   %esi,%esi
41ce8a:	75 f0                	jne    0x41ce7c
41ce8c:	5e                   	pop    %esi
41ce8d:	5d                   	pop    %ebp
41ce8e:	c2 04 00             	ret    $0x4
41ce91:	55                   	push   %ebp
41ce92:	8b ec                	mov    %esp,%ebp
41ce94:	56                   	push   %esi
41ce95:	8b 75 08             	mov    0x8(%ebp),%esi
41ce98:	eb 0c                	jmp    0x41cea6
41ce9a:	8b ce                	mov    %esi,%ecx
41ce9c:	8b 76 10             	mov    0x10(%esi),%esi
41ce9f:	6a 01                	push   $0x1
41cea1:	e8 31 37 ff ff       	call   0x4105d7
41cea6:	85 f6                	test   %esi,%esi
41cea8:	75 f0                	jne    0x41ce9a
41ceaa:	5e                   	pop    %esi
41ceab:	5d                   	pop    %ebp
41ceac:	c2 04 00             	ret    $0x4
41ceaf:	56                   	push   %esi
41ceb0:	8b f1                	mov    %ecx,%esi
41ceb2:	8b 0e                	mov    (%esi),%ecx
41ceb4:	85 c9                	test   %ecx,%ecx
41ceb6:	74 15                	je     0x41cecd
41ceb8:	83 c8 ff             	or     $0xffffffff,%eax
41cebb:	f0 0f c1 41 20       	lock xadd %eax,0x20(%ecx)
41cec0:	75 0b                	jne    0x41cecd
41cec2:	6a 00                	push   $0x0
41cec4:	ff 36                	push   (%esi)
41cec6:	e8 1c b0 ff ff       	call   0x417ee7
41cecb:	59                   	pop    %ecx
41cecc:	59                   	pop    %ecx
41cecd:	83 26 00             	andl   $0x0,(%esi)
41ced0:	5e                   	pop    %esi
41ced1:	c3                   	ret
41ced2:	56                   	push   %esi
41ced3:	8b f1                	mov    %ecx,%esi
41ced5:	8b 0e                	mov    (%esi),%ecx
41ced7:	85 c9                	test   %ecx,%ecx
41ced9:	74 15                	je     0x41cef0
41cedb:	83 c8 ff             	or     $0xffffffff,%eax
41cede:	f0 0f c1 41 20       	lock xadd %eax,0x20(%ecx)
41cee3:	75 0b                	jne    0x41cef0
41cee5:	6a 00                	push   $0x0
41cee7:	ff 36                	push   (%esi)
41cee9:	e8 f9 af ff ff       	call   0x417ee7
41ceee:	59                   	pop    %ecx
41ceef:	59                   	pop    %ecx
41cef0:	83 26 00             	andl   $0x0,(%esi)
41cef3:	5e                   	pop    %esi
41cef4:	c3                   	ret
41cef5:	56                   	push   %esi
41cef6:	8b f1                	mov    %ecx,%esi
41cef8:	f6 46 3c 01          	testb  $0x1,0x3c(%esi)
41cefc:	74 32                	je     0x41cf30
41cefe:	8b 46 20             	mov    0x20(%esi),%eax
41cf01:	8b 08                	mov    (%eax),%ecx
41cf03:	85 c9                	test   %ecx,%ecx
41cf05:	74 0a                	je     0x41cf11
41cf07:	8b 46 30             	mov    0x30(%esi),%eax
41cf0a:	8b 00                	mov    (%eax),%eax
41cf0c:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41cf0f:	eb 0d                	jmp    0x41cf1e
41cf11:	8b 46 2c             	mov    0x2c(%esi),%eax
41cf14:	8b 08                	mov    (%eax),%ecx
41cf16:	8b 46 1c             	mov    0x1c(%esi),%eax
41cf19:	8b 00                	mov    (%eax),%eax
41cf1b:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
41cf1e:	8b 46 0c             	mov    0xc(%esi),%eax
41cf21:	2b 08                	sub    (%eax),%ecx
41cf23:	83 e1 fe             	and    $0xfffffffe,%ecx
41cf26:	51                   	push   %ecx
41cf27:	ff 30                	push   (%eax)
41cf29:	e8 fc 65 fe ff       	call   0x40352a
41cf2e:	59                   	pop    %ecx
41cf2f:	59                   	pop    %ecx
41cf30:	8b 46 0c             	mov    0xc(%esi),%eax
41cf33:	33 c9                	xor    %ecx,%ecx
41cf35:	89 08                	mov    %ecx,(%eax)
41cf37:	8b 46 1c             	mov    0x1c(%esi),%eax
41cf3a:	89 08                	mov    %ecx,(%eax)
41cf3c:	8b 46 2c             	mov    0x2c(%esi),%eax
41cf3f:	89 08                	mov    %ecx,(%eax)
41cf41:	8b 46 10             	mov    0x10(%esi),%eax
41cf44:	89 08                	mov    %ecx,(%eax)
41cf46:	8b 46 20             	mov    0x20(%esi),%eax
41cf49:	89 08                	mov    %ecx,(%eax)
41cf4b:	8b 46 30             	mov    0x30(%esi),%eax
41cf4e:	89 08                	mov    %ecx,(%eax)
41cf50:	83 66 3c fe          	andl   $0xfffffffe,0x3c(%esi)
41cf54:	89 4e 38             	mov    %ecx,0x38(%esi)
41cf57:	5e                   	pop    %esi
41cf58:	c3                   	ret
41cf59:	56                   	push   %esi
41cf5a:	8b f1                	mov    %ecx,%esi
41cf5c:	8b 46 10             	mov    0x10(%esi),%eax
41cf5f:	85 c0                	test   %eax,%eax
41cf61:	7e 0a                	jle    0x41cf6d
41cf63:	ff 76 0c             	push   0xc(%esi)
41cf66:	e8 23 fe 02 00       	call   0x44cd8e
41cf6b:	eb 0a                	jmp    0x41cf77
41cf6d:	79 09                	jns    0x41cf78
41cf6f:	ff 76 0c             	push   0xc(%esi)
41cf72:	e8 6a 23 02 00       	call   0x43f2e1
41cf77:	59                   	pop    %ecx
41cf78:	ff 76 14             	push   0x14(%esi)
41cf7b:	e8 0e fe 02 00       	call   0x44cd8e
41cf80:	59                   	pop    %ecx
41cf81:	5e                   	pop    %esi
41cf82:	c3                   	ret
41cf83:	56                   	push   %esi
41cf84:	8b f1                	mov    %ecx,%esi
41cf86:	8b 46 10             	mov    0x10(%esi),%eax
41cf89:	eb 0c                	jmp    0x41cf97
41cf8b:	83 e8 01             	sub    $0x1,%eax
41cf8e:	89 46 10             	mov    %eax,0x10(%esi)
41cf91:	75 04                	jne    0x41cf97
41cf93:	83 66 0c 00          	andl   $0x0,0xc(%esi)
41cf97:	85 c0                	test   %eax,%eax
41cf99:	75 f0                	jne    0x41cf8b
41cf9b:	57                   	push   %edi
41cf9c:	8b 7e 08             	mov    0x8(%esi),%edi
41cf9f:	eb 16                	jmp    0x41cfb7
41cfa1:	8b 46 04             	mov    0x4(%esi),%eax
41cfa4:	4f                   	dec    %edi
41cfa5:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
41cfa9:	74 0c                	je     0x41cfb7
41cfab:	6a 10                	push   $0x10
41cfad:	ff 34 b8             	push   (%eax,%edi,4)
41cfb0:	e8 75 65 fe ff       	call   0x40352a
41cfb5:	59                   	pop    %ecx
41cfb6:	59                   	pop    %ecx
41cfb7:	85 ff                	test   %edi,%edi
41cfb9:	75 e6                	jne    0x41cfa1
41cfbb:	39 7e 04             	cmp    %edi,0x4(%esi)
41cfbe:	5f                   	pop    %edi
41cfbf:	74 11                	je     0x41cfd2
41cfc1:	8b 46 08             	mov    0x8(%esi),%eax
41cfc4:	c1 e0 02             	shl    $0x2,%eax
41cfc7:	50                   	push   %eax
41cfc8:	ff 76 04             	push   0x4(%esi)
41cfcb:	e8 5a 65 fe ff       	call   0x40352a
41cfd0:	59                   	pop    %ecx
41cfd1:	59                   	pop    %ecx
41cfd2:	83 66 08 00          	andl   $0x0,0x8(%esi)
41cfd6:	83 66 04 00          	andl   $0x0,0x4(%esi)
41cfda:	5e                   	pop    %esi
41cfdb:	c3                   	ret
41cfdc:	53                   	push   %ebx
41cfdd:	56                   	push   %esi
41cfde:	8b f1                	mov    %ecx,%esi
41cfe0:	33 db                	xor    %ebx,%ebx
41cfe2:	eb 07                	jmp    0x41cfeb
41cfe4:	8b ce                	mov    %esi,%ecx
41cfe6:	e8 7c 56 00 00       	call   0x422667
41cfeb:	39 5e 10             	cmp    %ebx,0x10(%esi)
41cfee:	75 f4                	jne    0x41cfe4
41cff0:	57                   	push   %edi
41cff1:	8b 7e 08             	mov    0x8(%esi),%edi
41cff4:	eb 15                	jmp    0x41d00b
41cff6:	8b 46 04             	mov    0x4(%esi),%eax
41cff9:	4f                   	dec    %edi
41cffa:	39 1c b8             	cmp    %ebx,(%eax,%edi,4)
41cffd:	74 0c                	je     0x41d00b
41cfff:	6a 28                	push   $0x28
41d001:	ff 34 b8             	push   (%eax,%edi,4)
41d004:	e8 21 65 fe ff       	call   0x40352a
41d009:	59                   	pop    %ecx
41d00a:	59                   	pop    %ecx
41d00b:	85 ff                	test   %edi,%edi
41d00d:	75 e7                	jne    0x41cff6
41d00f:	5f                   	pop    %edi
41d010:	39 5e 04             	cmp    %ebx,0x4(%esi)
41d013:	74 11                	je     0x41d026
41d015:	8b 46 08             	mov    0x8(%esi),%eax
41d018:	c1 e0 02             	shl    $0x2,%eax
41d01b:	50                   	push   %eax
41d01c:	ff 76 04             	push   0x4(%esi)
41d01f:	e8 06 65 fe ff       	call   0x40352a
41d024:	59                   	pop    %ecx
41d025:	59                   	pop    %ecx
41d026:	89 5e 08             	mov    %ebx,0x8(%esi)
41d029:	89 5e 04             	mov    %ebx,0x4(%esi)
41d02c:	5e                   	pop    %esi
41d02d:	5b                   	pop    %ebx
41d02e:	c3                   	ret
41d02f:	56                   	push   %esi
41d030:	8b f1                	mov    %ecx,%esi
41d032:	ff 76 08             	push   0x8(%esi)
41d035:	e8 54 fd 02 00       	call   0x44cd8e
41d03a:	ff 76 10             	push   0x10(%esi)
41d03d:	e8 4c fd 02 00       	call   0x44cd8e
41d042:	ff 76 14             	push   0x14(%esi)
41d045:	e8 44 fd 02 00       	call   0x44cd8e
41d04a:	83 c4 0c             	add    $0xc,%esp
41d04d:	5e                   	pop    %esi
41d04e:	c3                   	ret
41d04f:	56                   	push   %esi
41d050:	8b f1                	mov    %ecx,%esi
41d052:	83 3e 00             	cmpl   $0x0,(%esi)
41d055:	74 19                	je     0x41d070
41d057:	8b 46 08             	mov    0x8(%esi),%eax
41d05a:	2b 06                	sub    (%esi),%eax
41d05c:	50                   	push   %eax
41d05d:	ff 36                	push   (%esi)
41d05f:	e8 c6 64 fe ff       	call   0x40352a
41d064:	33 c0                	xor    %eax,%eax
41d066:	59                   	pop    %ecx
41d067:	59                   	pop    %ecx
41d068:	89 06                	mov    %eax,(%esi)
41d06a:	89 46 04             	mov    %eax,0x4(%esi)
41d06d:	89 46 08             	mov    %eax,0x8(%esi)
41d070:	5e                   	pop    %esi
41d071:	c3                   	ret
41d072:	56                   	push   %esi
41d073:	8b f1                	mov    %ecx,%esi