45ec4a:	0f 42 c3             	cmovb  %ebx,%eax
45ec4d:	89 7c 24 14          	mov    %edi,0x14(%esp)
45ec51:	89 44 24 10          	mov    %eax,0x10(%esp)
45ec55:	85 c0                	test   %eax,%eax
45ec57:	74 45                	je     0x45ec9e
45ec59:	8b 74 24 18          	mov    0x18(%esp),%esi
45ec5d:	8b df                	mov    %edi,%ebx
45ec5f:	90                   	nop
45ec60:	8b 03                	mov    (%ebx),%eax
45ec62:	8b fe                	mov    %esi,%edi
45ec64:	8b 4d 00             	mov    0x0(%ebp),%ecx
45ec67:	48                   	dec    %eax
45ec68:	c1 ef 02             	shr    $0x2,%edi
45ec6b:	8b d6                	mov    %esi,%edx
45ec6d:	23 f8                	and    %eax,%edi
45ec6f:	83 e2 03             	and    $0x3,%edx
45ec72:	8b 44 24 2c          	mov    0x2c(%esp),%eax
45ec76:	46                   	inc    %esi
45ec77:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
45ec7a:	8b 00                	mov    (%eax),%eax
45ec7c:	89 04 91             	mov    %eax,(%ecx,%edx,4)
45ec7f:	8b 44 24 10          	mov    0x10(%esp),%eax
45ec83:	83 e8 01             	sub    $0x1,%eax
45ec86:	89 44 24 10          	mov    %eax,0x10(%esp)
45ec8a:	75 d4                	jne    0x45ec60
45ec8c:	8b 74 24 1c          	mov    0x1c(%esp),%esi
45ec90:	ba 01 00 00 00       	mov    $0x1,%edx
45ec95:	8b 5c 24 20          	mov    0x20(%esp),%ebx
45ec99:	8d 7e 08             	lea    0x8(%esi),%edi
45ec9c:	eb 04                	jmp    0x45eca2
45ec9e:	89 7c 24 14          	mov    %edi,0x14(%esp)
45eca2:	2b d0                	sub    %eax,%edx
45eca4:	89 54 24 10          	mov    %edx,0x10(%esp)
45eca8:	2b d8                	sub    %eax,%ebx
45ecaa:	74 16                	je     0x45ecc2
45ecac:	0f 1f 40 00          	nopl   0x0(%eax)
45ecb0:	83 46 10 ff          	addl   $0xffffffff,0x10(%esi)
45ecb4:	75 07                	jne    0x45ecbd
45ecb6:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
45ecbd:	83 eb 01             	sub    $0x1,%ebx
45ecc0:	75 ee                	jne    0x45ecb0
45ecc2:	85 d2                	test   %edx,%edx
45ecc4:	0f 84 8c 00 00 00    	je     0x45ed56
45ecca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45ecd0:	8b 46 0c             	mov    0xc(%esi),%eax
45ecd3:	8b 4e 10             	mov    0x10(%esi),%ecx
45ecd6:	03 c1                	add    %ecx,%eax
45ecd8:	a8 03                	test   $0x3,%al
45ecda:	75 16                	jne    0x45ecf2
45ecdc:	8d 41 04             	lea    0x4(%ecx),%eax
45ecdf:	c1 e8 02             	shr    $0x2,%eax
45ece2:	39 07                	cmp    %eax,(%edi)
45ece4:	77 0c                	ja     0x45ecf2
45ece6:	51                   	push   %ecx
45ece7:	8b ce                	mov    %esi,%ecx
45ece9:	e8 b2 02 00 00       	call   0x45efa0
45ecee:	8b 54 24 10          	mov    0x10(%esp),%edx
45ecf2:	8b 0f                	mov    (%edi),%ecx
45ecf4:	8b 7e 10             	mov    0x10(%esi),%edi
45ecf7:	8d 04 8d ff ff ff ff 	lea    -0x1(,%ecx,4),%eax
45ecfe:	49                   	dec    %ecx
45ecff:	21 46 0c             	and    %eax,0xc(%esi)
45ed02:	03 7e 0c             	add    0xc(%esi),%edi
45ed05:	8b c7                	mov    %edi,%eax
45ed07:	c1 e8 02             	shr    $0x2,%eax
45ed0a:	23 c8                	and    %eax,%ecx
45ed0c:	8b 45 00             	mov    0x0(%ebp),%eax
45ed0f:	8d 1c 8d 00 00 00 00 	lea    0x0(,%ecx,4),%ebx
45ed16:	83 3c 03 00          	cmpl   $0x0,(%ebx,%eax,1)
45ed1a:	75 14                	jne    0x45ed30
45ed1c:	6a 10                	push   $0x10
45ed1e:	e8 b5 ac 00 00       	call   0x4699d8
45ed23:	8b 4d 00             	mov    0x0(%ebp),%ecx
45ed26:	83 c4 04             	add    $0x4,%esp
45ed29:	8b 54 24 10          	mov    0x10(%esp),%edx
45ed2d:	89 04 0b             	mov    %eax,(%ebx,%ecx,1)
45ed30:	8b 4d 00             	mov    0x0(%ebp),%ecx
45ed33:	83 e7 03             	and    $0x3,%edi
45ed36:	8b 44 24 2c          	mov    0x2c(%esp),%eax
45ed3a:	8b 0c 0b             	mov    (%ebx,%ecx,1),%ecx
45ed3d:	8b 00                	mov    (%eax),%eax
45ed3f:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
45ed42:	ff 46 10             	incl   0x10(%esi)
45ed45:	83 ea 01             	sub    $0x1,%edx
45ed48:	8b 7c 24 14          	mov    0x14(%esp),%edi
45ed4c:	89 54 24 10          	mov    %edx,0x10(%esp)
45ed50:	0f 85 7a ff ff ff    	jne    0x45ecd0
45ed56:	5f                   	pop    %edi
45ed57:	5e                   	pop    %esi
45ed58:	5d                   	pop    %ebp
45ed59:	5b                   	pop    %ebx
45ed5a:	83 c4 14             	add    $0x14,%esp
45ed5d:	c2 08 00             	ret    $0x8
45ed60:	83 ec 1c             	sub    $0x1c,%esp
45ed63:	53                   	push   %ebx
45ed64:	55                   	push   %ebp
45ed65:	56                   	push   %esi
45ed66:	8b f1                	mov    %ecx,%esi
45ed68:	57                   	push   %edi
45ed69:	bf 01 00 00 00       	mov    $0x1,%edi
45ed6e:	89 74 24 24          	mov    %esi,0x24(%esp)
45ed72:	8b cf                	mov    %edi,%ecx
45ed74:	8b 6e 10             	mov    0x10(%esi),%ebp
45ed77:	8d 5e 08             	lea    0x8(%esi),%ebx
45ed7a:	8b 56 0c             	mov    0xc(%esi),%edx
45ed7d:	8d 46 04             	lea    0x4(%esi),%eax
45ed80:	3b ef                	cmp    %edi,%ebp
45ed82:	89 54 24 1c          	mov    %edx,0x1c(%esp)
45ed86:	89 6c 24 28          	mov    %ebp,0x28(%esp)
45ed8a:	0f 42 cd             	cmovb  %ebp,%ecx
45ed8d:	89 5c 24 18          	mov    %ebx,0x18(%esp)
45ed91:	89 4c 24 20          	mov    %ecx,0x20(%esp)
45ed95:	89 44 24 14          	mov    %eax,0x14(%esp)
45ed99:	85 c9                	test   %ecx,%ecx
45ed9b:	74 50                	je     0x45eded
45ed9d:	8b f0                	mov    %eax,%esi
45ed9f:	8b eb                	mov    %ebx,%ebp
45eda1:	8b 45 00             	mov    0x0(%ebp),%eax
45eda4:	8b da                	mov    %edx,%ebx
45eda6:	48                   	dec    %eax
45eda7:	d1 eb                	shr    $1,%ebx
45eda9:	23 d8                	and    %eax,%ebx
45edab:	8b fa                	mov    %edx,%edi
45edad:	8b 06                	mov    (%esi),%eax
45edaf:	83 e7 01             	and    $0x1,%edi
45edb2:	8b 54 24 34          	mov    0x34(%esp),%edx
45edb6:	8b 04 98             	mov    (%eax,%ebx,4),%eax
45edb9:	8b 0a                	mov    (%edx),%ecx
45edbb:	8b 52 04             	mov    0x4(%edx),%edx
45edbe:	89 54 f8 04          	mov    %edx,0x4(%eax,%edi,8)
45edc2:	8b 54 24 1c          	mov    0x1c(%esp),%edx
45edc6:	89 0c f8             	mov    %ecx,(%eax,%edi,8)
45edc9:	42                   	inc    %edx
45edca:	8b 4c 24 20          	mov    0x20(%esp),%ecx
45edce:	83 e9 01             	sub    $0x1,%ecx
45edd1:	89 54 24 1c          	mov    %edx,0x1c(%esp)
45edd5:	89 4c 24 20          	mov    %ecx,0x20(%esp)
45edd9:	75 c6                	jne    0x45eda1
45eddb:	8b 74 24 24          	mov    0x24(%esp),%esi
45eddf:	bf 01 00 00 00       	mov    $0x1,%edi
45ede4:	8b 6c 24 28          	mov    0x28(%esp),%ebp
45ede8:	8d 5e 08             	lea    0x8(%esi),%ebx
45edeb:	eb 08                	jmp    0x45edf5
45eded:	89 5c 24 18          	mov    %ebx,0x18(%esp)
45edf1:	89 44 24 14          	mov    %eax,0x14(%esp)
45edf5:	2b f9                	sub    %ecx,%edi
45edf7:	89 7c 24 20          	mov    %edi,0x20(%esp)
45edfb:	2b e9                	sub    %ecx,%ebp
45edfd:	74 13                	je     0x45ee12
45edff:	90                   	nop
45ee00:	83 46 10 ff          	addl   $0xffffffff,0x10(%esi)
45ee04:	75 07                	jne    0x45ee0d
45ee06:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
45ee0d:	83 ed 01             	sub    $0x1,%ebp
45ee10:	75 ee                	jne    0x45ee00
45ee12:	85 ff                	test   %edi,%edi
45ee14:	0f 84 83 00 00 00    	je     0x45ee9d
45ee1a:	8b 6c 24 14          	mov    0x14(%esp),%ebp
45ee1e:	66 90                	xchg   %ax,%ax
45ee20:	8b 46 0c             	mov    0xc(%esi),%eax
45ee23:	8b 4e 10             	mov    0x10(%esi),%ecx
45ee26:	03 c1                	add    %ecx,%eax
45ee28:	a8 01                	test   $0x1,%al
45ee2a:	75 11                	jne    0x45ee3d
45ee2c:	8d 41 02             	lea    0x2(%ecx),%eax
45ee2f:	d1 e8                	shr    $1,%eax
45ee31:	39 03                	cmp    %eax,(%ebx)
45ee33:	77 08                	ja     0x45ee3d
45ee35:	51                   	push   %ecx
45ee36:	8b ce                	mov    %esi,%ecx
45ee38:	e8 03 03 00 00       	call   0x45f140
45ee3d:	8b 0b                	mov    (%ebx),%ecx
45ee3f:	8b 7e 10             	mov    0x10(%esi),%edi
45ee42:	8d 04 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%eax
45ee49:	49                   	dec    %ecx
45ee4a:	21 46 0c             	and    %eax,0xc(%esi)
45ee4d:	03 7e 0c             	add    0xc(%esi),%edi
45ee50:	8b c7                	mov    %edi,%eax
45ee52:	d1 e8                	shr    $1,%eax
45ee54:	23 c8                	and    %eax,%ecx
45ee56:	8b 45 00             	mov    0x0(%ebp),%eax
45ee59:	8d 1c 8d 00 00 00 00 	lea    0x0(,%ecx,4),%ebx
45ee60:	83 3c 03 00          	cmpl   $0x0,(%ebx,%eax,1)
45ee64:	75 10                	jne    0x45ee76
45ee66:	6a 10                	push   $0x10
45ee68:	e8 6b ab 00 00       	call   0x4699d8
45ee6d:	8b 4d 00             	mov    0x0(%ebp),%ecx
45ee70:	83 c4 04             	add    $0x4,%esp
45ee73:	89 04 0b             	mov    %eax,(%ebx,%ecx,1)
45ee76:	8b 45 00             	mov    0x0(%ebp),%eax
45ee79:	83 e7 01             	and    $0x1,%edi
45ee7c:	8b 54 24 34          	mov    0x34(%esp),%edx
45ee80:	8b 04 03             	mov    (%ebx,%eax,1),%eax
45ee83:	8b 0a                	mov    (%edx),%ecx
45ee85:	8b 52 04             	mov    0x4(%edx),%edx
45ee88:	8b 5c 24 18          	mov    0x18(%esp),%ebx
45ee8c:	89 0c f8             	mov    %ecx,(%eax,%edi,8)
45ee8f:	89 54 f8 04          	mov    %edx,0x4(%eax,%edi,8)
45ee93:	ff 46 10             	incl   0x10(%esi)
45ee96:	83 6c 24 20 01       	subl   $0x1,0x20(%esp)
45ee9b:	75 83                	jne    0x45ee20
45ee9d:	5f                   	pop    %edi
45ee9e:	5e                   	pop    %esi
45ee9f:	5d                   	pop    %ebp
45eea0:	5b                   	pop    %ebx
45eea1:	83 c4 1c             	add    $0x1c,%esp
45eea4:	c2 08 00             	ret    $0x8
45eea7:	cc                   	int3
45eea8:	cc                   	int3
45eea9:	cc                   	int3
45eeaa:	cc                   	int3
45eeab:	cc                   	int3
45eeac:	cc                   	int3
45eead:	cc                   	int3
45eeae:	cc                   	int3
45eeaf:	cc                   	int3
45eeb0:	56                   	push   %esi
45eeb1:	8b f1                	mov    %ecx,%esi
45eeb3:	e8 48 00 00 00       	call   0x45ef00
45eeb8:	8b 06                	mov    (%esi),%eax
45eeba:	6a 08                	push   $0x8
45eebc:	50                   	push   %eax
45eebd:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
45eec3:	e8 40 ab 00 00       	call   0x469a08
45eec8:	83 c4 08             	add    $0x8,%esp
45eecb:	5e                   	pop    %esi
45eecc:	c3                   	ret
45eecd:	cc                   	int3
45eece:	cc                   	int3
45eecf:	cc                   	int3
45eed0:	8b 44 24 04          	mov    0x4(%esp),%eax
45eed4:	89 41 0c             	mov    %eax,0xc(%ecx)
45eed7:	c2 04 00             	ret    $0x4
45eeda:	cc                   	int3
45eedb:	cc                   	int3
45eedc:	cc                   	int3
45eedd:	cc                   	int3
45eede:	cc                   	int3
45eedf:	cc                   	int3
45eee0:	8b 01                	mov    (%ecx),%eax
45eee2:	85 c0                	test   %eax,%eax
45eee4:	74 0b                	je     0x45eef1
45eee6:	6a 08                	push   $0x8
45eee8:	50                   	push   %eax
45eee9:	e8 1a ab 00 00       	call   0x469a08
45eeee:	83 c4 08             	add    $0x8,%esp
45eef1:	c3                   	ret
45eef2:	cc                   	int3
45eef3:	cc                   	int3
45eef4:	cc                   	int3
45eef5:	cc                   	int3
45eef6:	cc                   	int3
45eef7:	cc                   	int3
45eef8:	cc                   	int3
45eef9:	cc                   	int3
45eefa:	cc                   	int3
45eefb:	cc                   	int3
45eefc:	cc                   	int3
45eefd:	cc                   	int3
45eefe:	cc                   	int3
45eeff:	cc                   	int3
45ef00:	57                   	push   %edi
45ef01:	8b f9                	mov    %ecx,%edi
45ef03:	8b 47 10             	mov    0x10(%edi),%eax
45ef06:	85 c0                	test   %eax,%eax
45ef08:	74 15                	je     0x45ef1f
45ef0a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45ef10:	83 c0 ff             	add    $0xffffffff,%eax
45ef13:	89 47 10             	mov    %eax,0x10(%edi)
45ef16:	75 f8                	jne    0x45ef10
45ef18:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
45ef1f:	56                   	push   %esi
45ef20:	8b 77 08             	mov    0x8(%edi),%esi
45ef23:	85 f6                	test   %esi,%esi
45ef25:	74 1a                	je     0x45ef41
45ef27:	8b 47 04             	mov    0x4(%edi),%eax
45ef2a:	4e                   	dec    %esi
45ef2b:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45ef2e:	85 c0                	test   %eax,%eax
45ef30:	74 0b                	je     0x45ef3d
45ef32:	6a 10                	push   $0x10
45ef34:	50                   	push   %eax
45ef35:	e8 ce aa 00 00       	call   0x469a08
45ef3a:	83 c4 08             	add    $0x8,%esp
45ef3d:	85 f6                	test   %esi,%esi
45ef3f:	75 e6                	jne    0x45ef27
45ef41:	8b 47 04             	mov    0x4(%edi),%eax
45ef44:	5e                   	pop    %esi
45ef45:	85 c0                	test   %eax,%eax
45ef47:	74 2a                	je     0x45ef73
45ef49:	8b 4f 08             	mov    0x8(%edi),%ecx
45ef4c:	c1 e1 02             	shl    $0x2,%ecx
45ef4f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
45ef55:	72 12                	jb     0x45ef69
45ef57:	8b 50 fc             	mov    -0x4(%eax),%edx
45ef5a:	83 c1 23             	add    $0x23,%ecx
45ef5d:	2b c2                	sub    %edx,%eax
45ef5f:	83 c0 fc             	add    $0xfffffffc,%eax
45ef62:	83 f8 1f             	cmp    $0x1f,%eax
45ef65:	77 1c                	ja     0x45ef83
45ef67:	8b c2                	mov    %edx,%eax
45ef69:	51                   	push   %ecx
45ef6a:	50                   	push   %eax
45ef6b:	e8 98 aa 00 00       	call   0x469a08
45ef70:	83 c4 08             	add    $0x8,%esp
45ef73:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
45ef7a:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
45ef81:	5f                   	pop    %edi
45ef82:	c3                   	ret
45ef83:	e8 a9 a6 01 00       	call   0x479631
45ef88:	cc                   	int3
45ef89:	cc                   	int3
45ef8a:	cc                   	int3
45ef8b:	cc                   	int3
45ef8c:	cc                   	int3
45ef8d:	cc                   	int3
45ef8e:	cc                   	int3
45ef8f:	cc                   	int3
45ef90:	8b 09                	mov    (%ecx),%ecx
45ef92:	85 c9                	test   %ecx,%ecx
45ef94:	0f 85 66 ff ff ff    	jne    0x45ef00
45ef9a:	c3                   	ret
45ef9b:	cc                   	int3
45ef9c:	cc                   	int3
45ef9d:	cc                   	int3
45ef9e:	cc                   	int3
45ef9f:	cc                   	int3
45efa0:	83 ec 10             	sub    $0x10,%esp
45efa3:	53                   	push   %ebx
45efa4:	55                   	push   %ebp
45efa5:	56                   	push   %esi
45efa6:	8b f1                	mov    %ecx,%esi
45efa8:	b8 01 00 00 00       	mov    $0x1,%eax
45efad:	57                   	push   %edi
45efae:	89 74 24 14          	mov    %esi,0x14(%esp)
45efb2:	8b 56 08             	mov    0x8(%esi),%edx
45efb5:	85 d2                	test   %edx,%edx
45efb7:	0f 45 c2             	cmovne %edx,%eax
45efba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45efc0:	8b d8                	mov    %eax,%ebx
45efc2:	2b da                	sub    %edx,%ebx
45efc4:	83 fb 01             	cmp    $0x1,%ebx
45efc7:	72 05                	jb     0x45efce
45efc9:	83 f8 08             	cmp    $0x8,%eax
45efcc:	73 13                	jae    0x45efe1
45efce:	b9 ff ff ff 0f       	mov    $0xfffffff,%ecx
45efd3:	2b c8                	sub    %eax,%ecx
45efd5:	3b c8                	cmp    %eax,%ecx
45efd7:	0f 82 53 01 00 00    	jb     0x45f130
45efdd:	03 c0                	add    %eax,%eax