47caff:	33 c0                	xor    %eax,%eax
47cb01:	89 45 fc             	mov    %eax,-0x4(%ebp)
47cb04:	85 d2                	test   %edx,%edx
47cb06:	74 10                	je     0x47cb18
47cb08:	8b 4e 18             	mov    0x18(%esi),%ecx
47cb0b:	ff b1 90 00 00 00    	push   0x90(%ecx)
47cb11:	8b ca                	mov    %edx,%ecx
47cb13:	e8 dd e2 00 00       	call   0x48adf5
47cb18:	e8 84 39 01 00       	call   0x4904a1
47cb1d:	c3                   	ret
47cb1e:	6a 08                	push   $0x8
47cb20:	b8 3e 64 49 00       	mov    $0x49643e,%eax
47cb25:	e8 a9 39 01 00       	call   0x4904d3
47cb2a:	8b f1                	mov    %ecx,%esi
47cb2c:	89 75 f0             	mov    %esi,-0x10(%ebp)
47cb2f:	ff 75 08             	push   0x8(%ebp)
47cb32:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
47cb36:	e8 71 05 00 00       	call   0x47d0ac
47cb3b:	8b 45 0c             	mov    0xc(%ebp),%eax
47cb3e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
47cb42:	89 46 54             	mov    %eax,0x54(%esi)
47cb45:	8b 45 10             	mov    0x10(%ebp),%eax
47cb48:	6a 10                	push   $0x10
47cb4a:	c7 06 f8 6f 40 00    	movl   $0x406ff8,(%esi)
47cb50:	89 46 58             	mov    %eax,0x58(%esi)
47cb53:	ff 15 14 74 4a 00    	call   *0x4a7414
47cb59:	89 45 ec             	mov    %eax,-0x14(%ebp)
47cb5c:	59                   	pop    %ecx
47cb5d:	85 c0                	test   %eax,%eax
47cb5f:	74 11                	je     0x47cb72
47cb61:	89 70 04             	mov    %esi,0x4(%eax)
47cb64:	89 70 08             	mov    %esi,0x8(%eax)
47cb67:	c7 00 20 6f 40 00    	movl   $0x406f20,(%eax)
47cb6d:	89 70 0c             	mov    %esi,0xc(%eax)
47cb70:	eb 02                	jmp    0x47cb74
47cb72:	33 c0                	xor    %eax,%eax
47cb74:	6a 10                	push   $0x10
47cb76:	89 46 04             	mov    %eax,0x4(%esi)
47cb79:	ff 15 14 74 4a 00    	call   *0x4a7414
47cb7f:	89 45 ec             	mov    %eax,-0x14(%ebp)
47cb82:	59                   	pop    %ecx
47cb83:	85 c0                	test   %eax,%eax
47cb85:	74 11                	je     0x47cb98
47cb87:	89 70 04             	mov    %esi,0x4(%eax)
47cb8a:	89 70 08             	mov    %esi,0x8(%eax)
47cb8d:	c7 00 8c 6f 40 00    	movl   $0x406f8c,(%eax)
47cb93:	89 70 0c             	mov    %esi,0xc(%eax)
47cb96:	eb 02                	jmp    0x47cb9a
47cb98:	33 c0                	xor    %eax,%eax
47cb9a:	6a 10                	push   $0x10
47cb9c:	89 46 08             	mov    %eax,0x8(%esi)
47cb9f:	ff 15 14 74 4a 00    	call   *0x4a7414
47cba5:	89 45 ec             	mov    %eax,-0x14(%ebp)
47cba8:	59                   	pop    %ecx
47cba9:	85 c0                	test   %eax,%eax
47cbab:	74 11                	je     0x47cbbe
47cbad:	89 70 04             	mov    %esi,0x4(%eax)
47cbb0:	89 70 08             	mov    %esi,0x8(%eax)
47cbb3:	c7 00 b4 6e 40 00    	movl   $0x406eb4,(%eax)
47cbb9:	89 70 0c             	mov    %esi,0xc(%eax)
47cbbc:	eb 02                	jmp    0x47cbc0
47cbbe:	33 c0                	xor    %eax,%eax
47cbc0:	8d 4e 2c             	lea    0x2c(%esi),%ecx
47cbc3:	89 46 0c             	mov    %eax,0xc(%esi)
47cbc6:	8b 41 04             	mov    0x4(%ecx),%eax
47cbc9:	3b 41 08             	cmp    0x8(%ecx),%eax
47cbcc:	74 03                	je     0x47cbd1
47cbce:	89 41 08             	mov    %eax,0x8(%ecx)
47cbd1:	ff 75 ec             	push   -0x14(%ebp)
47cbd4:	ff 75 1c             	push   0x1c(%ebp)
47cbd7:	ff 75 18             	push   0x18(%ebp)
47cbda:	50                   	push   %eax
47cbdb:	e8 f5 01 00 00       	call   0x47cdd5
47cbe0:	8b 45 24             	mov    0x24(%ebp),%eax
47cbe3:	8d 4d 14             	lea    0x14(%ebp),%ecx
47cbe6:	89 46 24             	mov    %eax,0x24(%esi)
47cbe9:	c7 46 28 01 00 00 00 	movl   $0x1,0x28(%esi)
47cbf0:	e8 1b 0d fa ff       	call   0x41d910
47cbf5:	8b c6                	mov    %esi,%eax
47cbf7:	e8 a5 38 01 00       	call   0x4904a1
47cbfc:	c2 20 00             	ret    $0x20
47cbff:	cc                   	int3
47cc00:	8b ff                	mov    %edi,%edi
47cc02:	55                   	push   %ebp
47cc03:	8b ec                	mov    %esp,%ebp
47cc05:	56                   	push   %esi
47cc06:	8b f1                	mov    %ecx,%esi
47cc08:	ff 76 04             	push   0x4(%esi)
47cc0b:	c7 06 f8 6f 40 00    	movl   $0x406ff8,(%esi)
47cc11:	ff 15 10 74 4a 00    	call   *0x4a7410
47cc17:	ff 76 08             	push   0x8(%esi)
47cc1a:	ff 15 10 74 4a 00    	call   *0x4a7410
47cc20:	ff 76 0c             	push   0xc(%esi)
47cc23:	ff 15 10 74 4a 00    	call   *0x4a7410
47cc29:	83 c4 0c             	add    $0xc,%esp
47cc2c:	8b ce                	mov    %esi,%ecx
47cc2e:	e8 ff 04 00 00       	call   0x47d132
47cc33:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
47cc37:	74 08                	je     0x47cc41
47cc39:	56                   	push   %esi
47cc3a:	ff 15 10 74 4a 00    	call   *0x4a7410
47cc40:	59                   	pop    %ecx
47cc41:	8b c6                	mov    %esi,%eax
47cc43:	5e                   	pop    %esi
47cc44:	5d                   	pop    %ebp
47cc45:	c2 04 00             	ret    $0x4
47cc48:	cc                   	int3
47cc49:	cc                   	int3
47cc4a:	cc                   	int3
47cc4b:	cc                   	int3
47cc4c:	cc                   	int3
47cc4d:	cc                   	int3
47cc4e:	cc                   	int3
47cc4f:	cc                   	int3
47cc50:	8b ff                	mov    %edi,%edi
47cc52:	53                   	push   %ebx
47cc53:	56                   	push   %esi
47cc54:	8b f1                	mov    %ecx,%esi
47cc56:	e8 c5 05 00 00       	call   0x47d220
47cc5b:	8b d8                	mov    %eax,%ebx
47cc5d:	85 db                	test   %ebx,%ebx
47cc5f:	74 19                	je     0x47cc7a
47cc61:	57                   	push   %edi
47cc62:	8b 7e 14             	mov    0x14(%esi),%edi
47cc65:	ff 76 54             	push   0x54(%esi)
47cc68:	8b 17                	mov    (%edi),%edx
47cc6a:	8b 72 2c             	mov    0x2c(%edx),%esi
47cc6d:	8b ce                	mov    %esi,%ecx
47cc6f:	ff 15 2c 81 4a 00    	call   *0x4a812c
47cc75:	8b cf                	mov    %edi,%ecx
47cc77:	ff d6                	call   *%esi
47cc79:	5f                   	pop    %edi
47cc7a:	5e                   	pop    %esi
47cc7b:	8b c3                	mov    %ebx,%eax
47cc7d:	5b                   	pop    %ebx
47cc7e:	c3                   	ret
47cc7f:	cc                   	int3
47cc80:	8b ff                	mov    %edi,%edi
47cc82:	55                   	push   %ebp
47cc83:	8b ec                	mov    %esp,%ebp
47cc85:	83 7d 08 0f          	cmpl   $0xf,0x8(%ebp)
47cc89:	74 06                	je     0x47cc91
47cc8b:	5d                   	pop    %ebp
47cc8c:	e9 ff 0a 00 00       	jmp    0x47d790
47cc91:	32 c0                	xor    %al,%al
47cc93:	5d                   	pop    %ebp
47cc94:	c2 04 00             	ret    $0x4
47cc97:	cc                   	int3
47cc98:	cc                   	int3
47cc99:	cc                   	int3
47cc9a:	cc                   	int3
47cc9b:	cc                   	int3
47cc9c:	cc                   	int3
47cc9d:	cc                   	int3
47cc9e:	cc                   	int3
47cc9f:	cc                   	int3
47cca0:	8b ff                	mov    %edi,%edi
47cca2:	55                   	push   %ebp
47cca3:	8b ec                	mov    %esp,%ebp
47cca5:	53                   	push   %ebx
47cca6:	56                   	push   %esi
47cca7:	57                   	push   %edi
47cca8:	8b 7d 08             	mov    0x8(%ebp),%edi
47ccab:	8b d9                	mov    %ecx,%ebx
47ccad:	57                   	push   %edi
47ccae:	e8 0d 17 00 00       	call   0x47e3c0
47ccb3:	8b 07                	mov    (%edi),%eax
47ccb5:	ff 73 58             	push   0x58(%ebx)
47ccb8:	8b 70 20             	mov    0x20(%eax),%esi
47ccbb:	8b ce                	mov    %esi,%ecx
47ccbd:	ff 15 2c 81 4a 00    	call   *0x4a812c
47ccc3:	8b cf                	mov    %edi,%ecx
47ccc5:	ff d6                	call   *%esi
47ccc7:	8b f8                	mov    %eax,%edi
47ccc9:	89 7b 48             	mov    %edi,0x48(%ebx)
47cccc:	53                   	push   %ebx
47cccd:	8b 0f                	mov    (%edi),%ecx
47cccf:	8b 31                	mov    (%ecx),%esi
47ccd1:	8b ce                	mov    %esi,%ecx
47ccd3:	ff 15 2c 81 4a 00    	call   *0x4a812c
47ccd9:	8b cf                	mov    %edi,%ecx
47ccdb:	ff d6                	call   *%esi
47ccdd:	5f                   	pop    %edi
47ccde:	5e                   	pop    %esi
47ccdf:	5b                   	pop    %ebx
47cce0:	5d                   	pop    %ebp
47cce1:	c2 04 00             	ret    $0x4
47cce4:	cc                   	int3
47cce5:	cc                   	int3
47cce6:	cc                   	int3
47cce7:	cc                   	int3
47cce8:	cc                   	int3
47cce9:	cc                   	int3
47ccea:	cc                   	int3
47cceb:	cc                   	int3
47ccec:	cc                   	int3
47cced:	cc                   	int3
47ccee:	cc                   	int3
47ccef:	cc                   	int3
47ccf0:	6a 70                	push   $0x70
47ccf2:	b8 61 64 49 00       	mov    $0x496461,%eax
47ccf7:	e8 d7 37 01 00       	call   0x4904d3
47ccfc:	8b d9                	mov    %ecx,%ebx
47ccfe:	89 5d f0             	mov    %ebx,-0x10(%ebp)
47cd01:	e8 70 03 00 00       	call   0x47d076
47cd06:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
47cd0a:	c7 45 e8 07 00 00 00 	movl   $0x7,-0x18(%ebp)
47cd11:	c7 45 e4 34 15 40 00 	movl   $0x401534,-0x1c(%ebp)
47cd18:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
47cd1c:	f6 45 08 08          	testb  $0x8,0x8(%ebp)
47cd20:	8b 7b 14             	mov    0x14(%ebx),%edi
47cd23:	8b 07                	mov    (%edi),%eax
47cd25:	8b 70 20             	mov    0x20(%eax),%esi
47cd28:	8b ce                	mov    %esi,%ecx
47cd2a:	74 04                	je     0x47cd30
47cd2c:	6a 20                	push   $0x20
47cd2e:	eb 02                	jmp    0x47cd32
47cd30:	6a 1f                	push   $0x1f
47cd32:	ff 15 2c 81 4a 00    	call   *0x4a812c
47cd38:	8b cf                	mov    %edi,%ecx
47cd3a:	ff d6                	call   *%esi
47cd3c:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
47cd3f:	51                   	push   %ecx
47cd40:	8b c8                	mov    %eax,%ecx
47cd42:	e8 67 9d ff ff       	call   0x476aae
47cd47:	8b 7b 14             	mov    0x14(%ebx),%edi
47cd4a:	ff 73 50             	push   0x50(%ebx)
47cd4d:	ff 73 54             	push   0x54(%ebx)
47cd50:	8b 07                	mov    (%edi),%eax
47cd52:	8b 70 28             	mov    0x28(%eax),%esi
47cd55:	8b ce                	mov    %esi,%ecx
47cd57:	ff 15 2c 81 4a 00    	call   *0x4a812c
47cd5d:	8b cf                	mov    %edi,%ecx
47cd5f:	ff d6                	call   *%esi
47cd61:	8b f0                	mov    %eax,%esi
47cd63:	8b 4e 10             	mov    0x10(%esi),%ecx
47cd66:	8d 56 18             	lea    0x18(%esi),%edx
47cd69:	e8 ac 41 00 00       	call   0x480f1a
47cd6e:	8b 4e 14             	mov    0x14(%esi),%ecx
47cd71:	8b d8                	mov    %eax,%ebx
47cd73:	e8 45 41 00 00       	call   0x480ebd
47cd78:	8d 4e 30             	lea    0x30(%esi),%ecx
47cd7b:	8b f8                	mov    %eax,%edi
47cd7d:	51                   	push   %ecx
47cd7e:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
47cd81:	e8 65 58 00 00       	call   0x4825eb
47cd86:	ff 75 ec             	push   -0x14(%ebp)
47cd89:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
47cd8c:	e8 f8 3e 00 00       	call   0x480c89
47cd91:	dd 45 c4             	fldl   -0x3c(%ebp)
47cd94:	8d 45 84             	lea    -0x7c(%ebp),%eax
47cd97:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47cd9a:	8b d3                	mov    %ebx,%edx
47cd9c:	dd 5d 84             	fstpl  -0x7c(%ebp)
47cd9f:	dd 45 cc             	fldl   -0x34(%ebp)
47cda2:	dd 5d 8c             	fstpl  -0x74(%ebp)
47cda5:	dd 45 d4             	fldl   -0x2c(%ebp)
47cda8:	8b 49 50             	mov    0x50(%ecx),%ecx
47cdab:	dd 5d 94             	fstpl  -0x6c(%ebp)
47cdae:	dd 45 dc             	fldl   -0x24(%ebp)
47cdb1:	50                   	push   %eax
47cdb2:	57                   	push   %edi
47cdb3:	dd 5d 9c             	fstpl  -0x64(%ebp)
47cdb6:	e8 4e 40 00 00       	call   0x480e09
47cdbb:	8b cb                	mov    %ebx,%ecx
47cdbd:	8b f0                	mov    %eax,%esi
47cdbf:	e8 6b 42 00 00       	call   0x48102f
47cdc4:	8b cf                	mov    %edi,%ecx
47cdc6:	e8 64 42 00 00       	call   0x48102f
47cdcb:	8b c6                	mov    %esi,%eax
47cdcd:	e8 cf 36 01 00       	call   0x4904a1
47cdd2:	c2 04 00             	ret    $0x4
47cdd5:	6a 14                	push   $0x14
47cdd7:	b8 7c 64 49 00       	mov    $0x49647c,%eax
47cddc:	e8 5b 37 01 00       	call   0x49053c
47cde1:	8b f9                	mov    %ecx,%edi
47cde3:	8b 5d 10             	mov    0x10(%ebp),%ebx
47cde6:	2b 5d 0c             	sub    0xc(%ebp),%ebx
47cde9:	8b 4f 04             	mov    0x4(%edi),%ecx
47cdec:	c1 fb 02             	sar    $0x2,%ebx
47cdef:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
47cdf2:	85 c9                	test   %ecx,%ecx
47cdf4:	75 06                	jne    0x47cdfc
47cdf6:	33 f6                	xor    %esi,%esi
47cdf8:	8b d6                	mov    %esi,%edx
47cdfa:	eb 0a                	jmp    0x47ce06
47cdfc:	8b 57 0c             	mov    0xc(%edi),%edx
47cdff:	2b d1                	sub    %ecx,%edx
47ce01:	c1 fa 02             	sar    $0x2,%edx
47ce04:	33 f6                	xor    %esi,%esi
47ce06:	85 db                	test   %ebx,%ebx
47ce08:	0f 84 e8 01 00 00    	je     0x47cff6
47ce0e:	85 c9                	test   %ecx,%ecx
47ce10:	75 05                	jne    0x47ce17
47ce12:	89 75 e8             	mov    %esi,-0x18(%ebp)
47ce15:	eb 0b                	jmp    0x47ce22
47ce17:	8b 47 08             	mov    0x8(%edi),%eax
47ce1a:	2b c1                	sub    %ecx,%eax
47ce1c:	c1 f8 02             	sar    $0x2,%eax
47ce1f:	89 45 e8             	mov    %eax,-0x18(%ebp)
47ce22:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
47ce27:	89 45 ec             	mov    %eax,-0x14(%ebp)
47ce2a:	2b 45 e8             	sub    -0x18(%ebp),%eax
47ce2d:	3b c3                	cmp    %ebx,%eax
47ce2f:	0f 82 c9 01 00 00    	jb     0x47cffe
47ce35:	85 c9                	test   %ecx,%ecx
47ce37:	75 04                	jne    0x47ce3d
47ce39:	8b c6                	mov    %esi,%eax
47ce3b:	eb 08                	jmp    0x47ce45
47ce3d:	8b 47 08             	mov    0x8(%edi),%eax
47ce40:	2b c1                	sub    %ecx,%eax
47ce42:	c1 f8 02             	sar    $0x2,%eax
47ce45:	03 c3                	add    %ebx,%eax
47ce47:	3b d0                	cmp    %eax,%edx
47ce49:	0f 83 e3 00 00 00    	jae    0x47cf32
47ce4f:	8b c2                	mov    %edx,%eax
47ce51:	d1 e8                	shr    $1,%eax
47ce53:	29 45 ec             	sub    %eax,-0x14(%ebp)
47ce56:	03 c2                	add    %edx,%eax
47ce58:	39 55 ec             	cmp    %edx,-0x14(%ebp)
47ce5b:	1b d2                	sbb    %edx,%edx
47ce5d:	f7 d2                	not    %edx
47ce5f:	23 d0                	and    %eax,%edx
47ce61:	89 55 e8             	mov    %edx,-0x18(%ebp)
47ce64:	85 c9                	test   %ecx,%ecx
47ce66:	75 04                	jne    0x47ce6c
47ce68:	8b c6                	mov    %esi,%eax
47ce6a:	eb 08                	jmp    0x47ce74
47ce6c:	8b 47 08             	mov    0x8(%edi),%eax
47ce6f:	2b c1                	sub    %ecx,%eax
47ce71:	c1 f8 02             	sar    $0x2,%eax
47ce74:	03 c3                	add    %ebx,%eax
47ce76:	3b d0                	cmp    %eax,%edx
47ce78:	73 16                	jae    0x47ce90
47ce7a:	85 c9                	test   %ecx,%ecx
47ce7c:	75 04                	jne    0x47ce82
47ce7e:	8b c6                	mov    %esi,%eax
47ce80:	eb 08                	jmp    0x47ce8a
47ce82:	8b 47 08             	mov    0x8(%edi),%eax
47ce85:	2b c1                	sub    %ecx,%eax
47ce87:	c1 f8 02             	sar    $0x2,%eax
47ce8a:	8d 14 18             	lea    (%eax,%ebx,1),%edx
47ce8d:	89 55 e8             	mov    %edx,-0x18(%ebp)
47ce90:	52                   	push   %edx
47ce91:	e8 66 11 fa ff       	call   0x41dffc
47ce96:	89 75 fc             	mov    %esi,-0x4(%ebp)
47ce99:	8b 4d 08             	mov    0x8(%ebp),%ecx
47ce9c:	2b 4f 04             	sub    0x4(%edi),%ecx
47ce9f:	c1 f9 02             	sar    $0x2,%ecx
47cea2:	8b d1                	mov    %ecx,%edx