45ead8:	51                   	push   %ecx
45ead9:	53                   	push   %ebx
45eada:	ff 74 24 24          	push   0x24(%esp)
45eade:	8b ce                	mov    %esi,%ecx
45eae0:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eae6:	8d 4f 10             	lea    0x10(%edi),%ecx
45eae9:	ff d6                	call   *%esi
45eaeb:	5f                   	pop    %edi
45eaec:	5e                   	pop    %esi
45eaed:	5b                   	pop    %ebx
45eaee:	c2 18 00             	ret    $0x18
45eaf1:	cc                   	int3
45eaf2:	cc                   	int3
45eaf3:	cc                   	int3
45eaf4:	cc                   	int3
45eaf5:	cc                   	int3
45eaf6:	cc                   	int3
45eaf7:	cc                   	int3
45eaf8:	cc                   	int3
45eaf9:	cc                   	int3
45eafa:	cc                   	int3
45eafb:	cc                   	int3
45eafc:	cc                   	int3
45eafd:	cc                   	int3
45eafe:	cc                   	int3
45eaff:	cc                   	int3
45eb00:	53                   	push   %ebx
45eb01:	55                   	push   %ebp
45eb02:	8b e9                	mov    %ecx,%ebp
45eb04:	56                   	push   %esi
45eb05:	57                   	push   %edi
45eb06:	8b 45 00             	mov    0x0(%ebp),%eax
45eb09:	8b 70 3c             	mov    0x3c(%eax),%esi
45eb0c:	8b ce                	mov    %esi,%ecx
45eb0e:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eb14:	8b cd                	mov    %ebp,%ecx
45eb16:	ff d6                	call   *%esi
45eb18:	8b 5c 24 18          	mov    0x18(%esp),%ebx
45eb1c:	8b 73 04             	mov    0x4(%ebx),%esi
45eb1f:	8b 0b                	mov    (%ebx),%ecx
45eb21:	3b f2                	cmp    %edx,%esi
45eb23:	77 06                	ja     0x45eb2b
45eb25:	72 08                	jb     0x45eb2f
45eb27:	3b c8                	cmp    %eax,%ecx
45eb29:	72 04                	jb     0x45eb2f
45eb2b:	8b c8                	mov    %eax,%ecx
45eb2d:	8b f2                	mov    %edx,%esi
45eb2f:	ff 74 24 20          	push   0x20(%esp)
45eb33:	89 0b                	mov    %ecx,(%ebx)
45eb35:	ff 74 24 20          	push   0x20(%esp)
45eb39:	89 73 04             	mov    %esi,0x4(%ebx)
45eb3c:	8b 75 10             	mov    0x10(%ebp),%esi
45eb3f:	53                   	push   %ebx
45eb40:	ff 74 24 20          	push   0x20(%esp)
45eb44:	8b 76 7c             	mov    0x7c(%esi),%esi
45eb47:	8b ce                	mov    %esi,%ecx
45eb49:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eb4f:	8d 4d 10             	lea    0x10(%ebp),%ecx
45eb52:	ff d6                	call   *%esi
45eb54:	8b 75 44             	mov    0x44(%ebp),%esi
45eb57:	8b f8                	mov    %eax,%edi
45eb59:	8b 55 40             	mov    0x40(%ebp),%edx
45eb5c:	8b ce                	mov    %esi,%ecx
45eb5e:	8b 45 3c             	mov    0x3c(%ebp),%eax
45eb61:	4a                   	dec    %edx
45eb62:	d1 e9                	shr    $1,%ecx
45eb64:	83 e6 01             	and    $0x1,%esi
45eb67:	23 d1                	and    %ecx,%edx
45eb69:	8b 04 90             	mov    (%eax,%edx,4),%eax
45eb6c:	8d 0c f0             	lea    (%eax,%esi,8),%ecx
45eb6f:	8b 03                	mov    (%ebx),%eax
45eb71:	29 01                	sub    %eax,(%ecx)
45eb73:	8b 43 04             	mov    0x4(%ebx),%eax
45eb76:	19 41 04             	sbb    %eax,0x4(%ecx)
45eb79:	8b c7                	mov    %edi,%eax
45eb7b:	5f                   	pop    %edi
45eb7c:	5e                   	pop    %esi
45eb7d:	5d                   	pop    %ebp
45eb7e:	5b                   	pop    %ebx
45eb7f:	c2 10 00             	ret    $0x10
45eb82:	cc                   	int3
45eb83:	cc                   	int3
45eb84:	cc                   	int3
45eb85:	cc                   	int3
45eb86:	cc                   	int3
45eb87:	cc                   	int3
45eb88:	cc                   	int3
45eb89:	cc                   	int3
45eb8a:	cc                   	int3
45eb8b:	cc                   	int3
45eb8c:	cc                   	int3
45eb8d:	cc                   	int3
45eb8e:	cc                   	int3
45eb8f:	cc                   	int3
45eb90:	56                   	push   %esi
45eb91:	57                   	push   %edi
45eb92:	8b f9                	mov    %ecx,%edi
45eb94:	8b 07                	mov    (%edi),%eax
45eb96:	8b 70 5c             	mov    0x5c(%eax),%esi
45eb99:	8b ce                	mov    %esi,%ecx
45eb9b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eba1:	8b cf                	mov    %edi,%ecx
45eba3:	ff d6                	call   *%esi
45eba5:	85 c0                	test   %eax,%eax
45eba7:	74 68                	je     0x45ec11
45eba9:	8b 07                	mov    (%edi),%eax
45ebab:	8b 70 40             	mov    0x40(%eax),%esi
45ebae:	8b ce                	mov    %esi,%ecx
45ebb0:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ebb6:	8b cf                	mov    %edi,%ecx
45ebb8:	ff d6                	call   *%esi
45ebba:	84 c0                	test   %al,%al
45ebbc:	75 53                	jne    0x45ec11
45ebbe:	83 47 48 ff          	addl   $0xffffffff,0x48(%edi)
45ebc2:	75 09                	jne    0x45ebcd
45ebc4:	c7 47 44 00 00 00 00 	movl   $0x0,0x44(%edi)
45ebcb:	eb 03                	jmp    0x45ebd0
45ebcd:	ff 47 44             	incl   0x44(%edi)
45ebd0:	8b 57 58             	mov    0x58(%edi),%edx
45ebd3:	8b c2                	mov    %edx,%eax
45ebd5:	8b 4f 54             	mov    0x54(%edi),%ecx
45ebd8:	83 e2 03             	and    $0x3,%edx
45ebdb:	c1 e8 02             	shr    $0x2,%eax
45ebde:	49                   	dec    %ecx
45ebdf:	23 c8                	and    %eax,%ecx
45ebe1:	8b 47 50             	mov    0x50(%edi),%eax
45ebe4:	8b 04 88             	mov    (%eax,%ecx,4),%eax
45ebe7:	83 3c 90 00          	cmpl   $0x0,(%eax,%edx,4)
45ebeb:	75 1f                	jne    0x45ec0c
45ebed:	8b 47 5c             	mov    0x5c(%edi),%eax
45ebf0:	83 f8 01             	cmp    $0x1,%eax
45ebf3:	76 17                	jbe    0x45ec0c
45ebf5:	83 c0 ff             	add    $0xffffffff,%eax
45ebf8:	89 47 5c             	mov    %eax,0x5c(%edi)
45ebfb:	75 0c                	jne    0x45ec09
45ebfd:	c7 47 58 00 00 00 00 	movl   $0x0,0x58(%edi)
45ec04:	b0 01                	mov    $0x1,%al
45ec06:	5f                   	pop    %edi
45ec07:	5e                   	pop    %esi
45ec08:	c3                   	ret
45ec09:	ff 47 58             	incl   0x58(%edi)
45ec0c:	5f                   	pop    %edi
45ec0d:	b0 01                	mov    $0x1,%al
45ec0f:	5e                   	pop    %esi
45ec10:	c3                   	ret
45ec11:	5f                   	pop    %edi
45ec12:	32 c0                	xor    %al,%al
45ec14:	5e                   	pop    %esi
45ec15:	c3                   	ret
45ec16:	cc                   	int3
45ec17:	cc                   	int3
45ec18:	cc                   	int3
45ec19:	cc                   	int3
45ec1a:	cc                   	int3
45ec1b:	cc                   	int3
45ec1c:	cc                   	int3
45ec1d:	cc                   	int3
45ec1e:	cc                   	int3
45ec1f:	cc                   	int3
45ec20:	83 ec 14             	sub    $0x14,%esp
45ec23:	53                   	push   %ebx
45ec24:	55                   	push   %ebp
45ec25:	56                   	push   %esi
45ec26:	8b f1                	mov    %ecx,%esi
45ec28:	ba 01 00 00 00       	mov    $0x1,%edx
45ec2d:	57                   	push   %edi
45ec2e:	89 74 24 1c          	mov    %esi,0x1c(%esp)
45ec32:	8b 5e 10             	mov    0x10(%esi),%ebx
45ec35:	8d 7e 08             	lea    0x8(%esi),%edi
45ec38:	8b 46 0c             	mov    0xc(%esi),%eax
45ec3b:	8d 6e 04             	lea    0x4(%esi),%ebp
45ec3e:	89 44 24 18          	mov    %eax,0x18(%esp)
45ec42:	3b da                	cmp    %edx,%ebx
45ec44:	8b c2                	mov    %edx,%eax
45ec46:	89 5c 24 20          	mov    %ebx,0x20(%esp)
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