5669c6:	8d 14 88             	lea    (%eax,%ecx,4),%edx
5669c9:	8b c7                	mov    %edi,%eax
5669cb:	8b cd                	mov    %ebp,%ecx
5669cd:	d3 e8                	shr    %cl,%eax
5669cf:	31 02                	xor    %eax,(%edx)
5669d1:	85 ed                	test   %ebp,%ebp
5669d3:	74 0e                	je     0x5669e3
5669d5:	b9 20 00 00 00       	mov    $0x20,%ecx
5669da:	8b c7                	mov    %edi,%eax
5669dc:	2b cd                	sub    %ebp,%ecx
5669de:	d3 e0                	shl    %cl,%eax
5669e0:	31 42 fc             	xor    %eax,-0x4(%edx)
5669e3:	8b 4c b3 04          	mov    0x4(%ebx,%esi,4),%ecx
5669e7:	46                   	inc    %esi
5669e8:	85 c9                	test   %ecx,%ecx
5669ea:	75 b4                	jne    0x5669a0
5669ec:	8b 54 24 10          	mov    0x10(%esp),%edx
5669f0:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5669f4:	8b 33                	mov    (%ebx),%esi
5669f6:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
5669fc:	79 05                	jns    0x566a03
5669fe:	4e                   	dec    %esi
5669ff:	83 ce e0             	or     $0xffffffe0,%esi
566a02:	46                   	inc    %esi
566a03:	8b c7                	mov    %edi,%eax
566a05:	8b ce                	mov    %esi,%ecx
566a07:	d3 e8                	shr    %cl,%eax
566a09:	31 45 00             	xor    %eax,0x0(%ebp)
566a0c:	85 f6                	test   %esi,%esi
566a0e:	74 0c                	je     0x566a1c
566a10:	b9 20 00 00 00       	mov    $0x20,%ecx
566a15:	2b ce                	sub    %esi,%ecx
566a17:	d3 e7                	shl    %cl,%edi
566a19:	31 7d fc             	xor    %edi,-0x4(%ebp)
566a1c:	8b 7c 24 28          	mov    0x28(%esp),%edi
566a20:	3b 54 24 18          	cmp    0x18(%esp),%edx
566a24:	0f 8f 46 ff ff ff    	jg     0x566970
566a2a:	8b 6c 24 18          	mov    0x18(%esp),%ebp
566a2e:	3b d5                	cmp    %ebp,%edx
566a30:	0f 85 9f 00 00 00    	jne    0x566ad5
566a36:	8d 04 af             	lea    (%edi,%ebp,4),%eax
566a39:	89 44 24 10          	mov    %eax,0x10(%esp)
566a3d:	0f 1f 00             	nopl   (%eax)
566a40:	8b 0b                	mov    (%ebx),%ecx
566a42:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
566a48:	79 05                	jns    0x566a4f
566a4a:	49                   	dec    %ecx
566a4b:	83 c9 e0             	or     $0xffffffe0,%ecx
566a4e:	41                   	inc    %ecx
566a4f:	8b 00                	mov    (%eax),%eax
566a51:	8b e8                	mov    %eax,%ebp
566a53:	d3 ed                	shr    %cl,%ebp
566a55:	85 ed                	test   %ebp,%ebp
566a57:	74 7c                	je     0x566ad5
566a59:	ba 20 00 00 00       	mov    $0x20,%edx
566a5e:	2b d1                	sub    %ecx,%edx
566a60:	85 c9                	test   %ecx,%ecx
566a62:	74 08                	je     0x566a6c
566a64:	8b ca                	mov    %edx,%ecx
566a66:	d3 e0                	shl    %cl,%eax
566a68:	d3 e8                	shr    %cl,%eax
566a6a:	eb 02                	jmp    0x566a6e
566a6c:	33 c0                	xor    %eax,%eax
566a6e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
566a72:	be 01 00 00 00       	mov    $0x1,%esi
566a77:	89 01                	mov    %eax,(%ecx)
566a79:	31 2f                	xor    %ebp,(%edi)
566a7b:	8b 4b 04             	mov    0x4(%ebx),%ecx
566a7e:	8b 44 24 10          	mov    0x10(%esp),%eax
566a82:	85 c9                	test   %ecx,%ecx
566a84:	74 ba                	je     0x566a40
566a86:	8b c1                	mov    %ecx,%eax
566a88:	99                   	cltd
566a89:	83 e2 1f             	and    $0x1f,%edx
566a8c:	03 c2                	add    %edx,%eax
566a8e:	c1 f8 05             	sar    $0x5,%eax
566a91:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
566a97:	79 05                	jns    0x566a9e
566a99:	49                   	dec    %ecx
566a9a:	83 c9 e0             	or     $0xffffffe0,%ecx
566a9d:	41                   	inc    %ecx
566a9e:	8d 3c 87             	lea    (%edi,%eax,4),%edi
566aa1:	8b c5                	mov    %ebp,%eax
566aa3:	d3 e0                	shl    %cl,%eax
566aa5:	31 07                	xor    %eax,(%edi)
566aa7:	85 c9                	test   %ecx,%ecx
566aa9:	74 14                	je     0x566abf
566aab:	b8 20 00 00 00       	mov    $0x20,%eax
566ab0:	8b d5                	mov    %ebp,%edx
566ab2:	2b c1                	sub    %ecx,%eax
566ab4:	8b c8                	mov    %eax,%ecx
566ab6:	d3 ea                	shr    %cl,%edx
566ab8:	85 d2                	test   %edx,%edx
566aba:	74 03                	je     0x566abf
566abc:	31 57 04             	xor    %edx,0x4(%edi)
566abf:	8b 4c b3 04          	mov    0x4(%ebx,%esi,4),%ecx
566ac3:	46                   	inc    %esi
566ac4:	8b 7c 24 28          	mov    0x28(%esp),%edi
566ac8:	85 c9                	test   %ecx,%ecx
566aca:	75 ba                	jne    0x566a86
566acc:	8b 44 24 10          	mov    0x10(%esp),%eax
566ad0:	e9 6b ff ff ff       	jmp    0x566a40
566ad5:	ff 74 24 20          	push   0x20(%esp)
566ad9:	e8 72 39 f7 ff       	call   0x4da450
566ade:	83 c4 04             	add    $0x4,%esp
566ae1:	b8 01 00 00 00       	mov    $0x1,%eax
566ae6:	5d                   	pop    %ebp
566ae7:	5f                   	pop    %edi
566ae8:	5e                   	pop    %esi
566ae9:	5b                   	pop    %ebx
566aea:	83 c4 0c             	add    $0xc,%esp
566aed:	c3                   	ret
566aee:	cc                   	int3
566aef:	cc                   	int3
566af0:	53                   	push   %ebx
566af1:	56                   	push   %esi
566af2:	8b 74 24 1c          	mov    0x1c(%esp),%esi
566af6:	57                   	push   %edi
566af7:	56                   	push   %esi
566af8:	33 ff                	xor    %edi,%edi
566afa:	e8 11 13 f8 ff       	call   0x4e7e10
566aff:	56                   	push   %esi
566b00:	e8 cb 10 f8 ff       	call   0x4e7bd0
566b05:	8b d8                	mov    %eax,%ebx
566b07:	83 c4 08             	add    $0x8,%esp
566b0a:	85 db                	test   %ebx,%ebx
566b0c:	74 36                	je     0x566b44
566b0e:	56                   	push   %esi
566b0f:	ff 74 24 20          	push   0x20(%esp)
566b13:	ff 74 24 20          	push   0x20(%esp)
566b17:	53                   	push   %ebx
566b18:	e8 53 01 00 00       	call   0x566c70
566b1d:	83 c4 10             	add    $0x10,%esp
566b20:	85 c0                	test   %eax,%eax
566b22:	74 20                	je     0x566b44
566b24:	56                   	push   %esi
566b25:	ff 74 24 20          	push   0x20(%esp)
566b29:	53                   	push   %ebx
566b2a:	ff 74 24 20          	push   0x20(%esp)
566b2e:	ff 74 24 20          	push   0x20(%esp)
566b32:	e8 f9 06 00 00       	call   0x567230
566b37:	83 c4 14             	add    $0x14,%esp
566b3a:	b9 01 00 00 00       	mov    $0x1,%ecx
566b3f:	85 c0                	test   %eax,%eax
566b41:	0f 45 f9             	cmovne %ecx,%edi
566b44:	56                   	push   %esi
566b45:	e8 86 0f f8 ff       	call   0x4e7ad0
566b4a:	83 c4 04             	add    $0x4,%esp
566b4d:	8b c7                	mov    %edi,%eax
566b4f:	5f                   	pop    %edi
566b50:	5e                   	pop    %esi
566b51:	5b                   	pop    %ebx
566b52:	c3                   	ret
566b53:	cc                   	int3
566b54:	cc                   	int3
566b55:	cc                   	int3
566b56:	cc                   	int3
566b57:	cc                   	int3
566b58:	cc                   	int3
566b59:	cc                   	int3
566b5a:	cc                   	int3
566b5b:	cc                   	int3
566b5c:	cc                   	int3
566b5d:	cc                   	int3
566b5e:	cc                   	int3
566b5f:	cc                   	int3
566b60:	b8 04 00 00 00       	mov    $0x4,%eax
566b65:	e8 46 ac 06 00       	call   0x5d17b0
566b6a:	57                   	push   %edi
566b6b:	8b 7c 24 14          	mov    0x14(%esp),%edi
566b6f:	57                   	push   %edi
566b70:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
566b77:	00
566b78:	e8 e3 31 f7 ff       	call   0x4d9d60
566b7d:	83 c4 04             	add    $0x4,%esp
566b80:	6a 01                	push   $0x1
566b82:	85 c0                	test   %eax,%eax
566b84:	74 0f                	je     0x566b95
566b86:	ff 74 24 10          	push   0x10(%esp)
566b8a:	e8 51 35 f7 ff       	call   0x4da0e0
566b8f:	83 c4 08             	add    $0x8,%esp
566b92:	5f                   	pop    %edi
566b93:	59                   	pop    %ecx
566b94:	c3                   	ret
566b95:	57                   	push   %edi
566b96:	e8 a5 2a f7 ff       	call   0x4d9640
566b9b:	83 c4 08             	add    $0x8,%esp
566b9e:	85 c0                	test   %eax,%eax
566ba0:	74 19                	je     0x566bbb
566ba2:	ff 74 24 10          	push   0x10(%esp)
566ba6:	ff 74 24 10          	push   0x10(%esp)
566baa:	e8 31 2f f7 ff       	call   0x4d9ae0
566baf:	83 c4 08             	add    $0x8,%esp
566bb2:	f7 d8                	neg    %eax
566bb4:	1b c0                	sbb    %eax,%eax
566bb6:	f7 d8                	neg    %eax
566bb8:	5f                   	pop    %edi
566bb9:	59                   	pop    %ecx
566bba:	c3                   	ret
566bbb:	53                   	push   %ebx
566bbc:	8b 5c 24 20          	mov    0x20(%esp),%ebx
566bc0:	56                   	push   %esi
566bc1:	53                   	push   %ebx
566bc2:	e8 49 12 f8 ff       	call   0x4e7e10
566bc7:	53                   	push   %ebx
566bc8:	e8 03 10 f8 ff       	call   0x4e7bd0
566bcd:	8b f0                	mov    %eax,%esi
566bcf:	83 c4 08             	add    $0x8,%esp
566bd2:	85 f6                	test   %esi,%esi
566bd4:	0f 84 7f 00 00 00    	je     0x566c59
566bda:	55                   	push   %ebp
566bdb:	8b 6c 24 24          	mov    0x24(%esp),%ebp
566bdf:	55                   	push   %ebp
566be0:	ff 74 24 20          	push   0x20(%esp)
566be4:	56                   	push   %esi
566be5:	e8 d6 fc ff ff       	call   0x5668c0
566bea:	83 c4 0c             	add    $0xc,%esp
566bed:	85 c0                	test   %eax,%eax
566bef:	74 67                	je     0x566c58
566bf1:	57                   	push   %edi
566bf2:	e8 29 32 f7 ff       	call   0x4d9e20
566bf7:	8b f8                	mov    %eax,%edi
566bf9:	83 c4 04             	add    $0x4,%esp
566bfc:	83 ef 02             	sub    $0x2,%edi
566bff:	78 3a                	js     0x566c3b
566c01:	53                   	push   %ebx
566c02:	55                   	push   %ebp
566c03:	56                   	push   %esi
566c04:	56                   	push   %esi
566c05:	e8 66 0c 00 00       	call   0x567870
566c0a:	83 c4 10             	add    $0x10,%esp
566c0d:	85 c0                	test   %eax,%eax
566c0f:	74 47                	je     0x566c58
566c11:	57                   	push   %edi
566c12:	ff 74 24 24          	push   0x24(%esp)
566c16:	e8 95 30 f7 ff       	call   0x4d9cb0
566c1b:	83 c4 08             	add    $0x8,%esp
566c1e:	85 c0                	test   %eax,%eax
566c20:	74 14                	je     0x566c36
566c22:	53                   	push   %ebx
566c23:	55                   	push   %ebp
566c24:	ff 74 24 24          	push   0x24(%esp)
566c28:	56                   	push   %esi
566c29:	56                   	push   %esi
566c2a:	e8 a1 06 00 00       	call   0x5672d0
566c2f:	83 c4 14             	add    $0x14,%esp
566c32:	85 c0                	test   %eax,%eax
566c34:	74 22                	je     0x566c58
566c36:	83 ef 01             	sub    $0x1,%edi
566c39:	79 c6                	jns    0x566c01
566c3b:	56                   	push   %esi
566c3c:	ff 74 24 1c          	push   0x1c(%esp)
566c40:	e8 9b 2e f7 ff       	call   0x4d9ae0
566c45:	33 c9                	xor    %ecx,%ecx
566c47:	83 c4 08             	add    $0x8,%esp
566c4a:	85 c0                	test   %eax,%eax
566c4c:	ba 01 00 00 00       	mov    $0x1,%edx
566c51:	0f 45 ca             	cmovne %edx,%ecx
566c54:	89 4c 24 10          	mov    %ecx,0x10(%esp)
566c58:	5d                   	pop    %ebp
566c59:	53                   	push   %ebx
566c5a:	e8 71 0e f8 ff       	call   0x4e7ad0
566c5f:	8b 44 24 10          	mov    0x10(%esp),%eax
566c63:	83 c4 04             	add    $0x4,%esp
566c66:	5e                   	pop    %esi
566c67:	5b                   	pop    %ebx
566c68:	5f                   	pop    %edi
566c69:	59                   	pop    %ecx
566c6a:	c3                   	ret
566c6b:	cc                   	int3
566c6c:	cc                   	int3
566c6d:	cc                   	int3
566c6e:	cc                   	int3
566c6f:	cc                   	int3
566c70:	b8 04 00 00 00       	mov    $0x4,%eax
566c75:	e8 36 ab 06 00       	call   0x5d17b0
566c7a:	56                   	push   %esi
566c7b:	57                   	push   %edi
566c7c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
566c80:	57                   	push   %edi
566c81:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
566c88:	00
566c89:	e8 82 11 f8 ff       	call   0x4e7e10
566c8e:	57                   	push   %edi
566c8f:	e8 3c 0f f8 ff       	call   0x4e7bd0
566c94:	8b f0                	mov    %eax,%esi
566c96:	83 c4 08             	add    $0x8,%esp
566c99:	85 f6                	test   %esi,%esi
566c9b:	74 76                	je     0x566d13
566c9d:	53                   	push   %ebx
566c9e:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
566ca2:	6a 00                	push   $0x0
566ca4:	6a ff                	push   $0xffffffff
566ca6:	53                   	push   %ebx
566ca7:	e8 74 31 f7 ff       	call   0x4d9e20
566cac:	83 c4 04             	add    $0x4,%esp
566caf:	48                   	dec    %eax
566cb0:	50                   	push   %eax
566cb1:	56                   	push   %esi
566cb2:	e8 59 64 f9 ff       	call   0x4fd110
566cb7:	83 c4 10             	add    $0x10,%esp
566cba:	85 c0                	test   %eax,%eax
566cbc:	74 54                	je     0x566d12
566cbe:	56                   	push   %esi
566cbf:	e8 9c 30 f7 ff       	call   0x4d9d60
566cc4:	83 c4 04             	add    $0x4,%esp
566cc7:	85 c0                	test   %eax,%eax
566cc9:	75 d7                	jne    0x566ca2
566ccb:	55                   	push   %ebp
566ccc:	8b 6c 24 18          	mov    0x18(%esp),%ebp
566cd0:	57                   	push   %edi
566cd1:	53                   	push   %ebx
566cd2:	56                   	push   %esi
566cd3:	ff 74 24 28          	push   0x28(%esp)
566cd7:	55                   	push   %ebp
566cd8:	e8 53 05 00 00       	call   0x567230
566cdd:	83 c4 14             	add    $0x14,%esp
566ce0:	85 c0                	test   %eax,%eax
566ce2:	74 2d                	je     0x566d11
566ce4:	57                   	push   %edi
566ce5:	53                   	push   %ebx
566ce6:	55                   	push   %ebp
566ce7:	55                   	push   %ebp
566ce8:	e8 43 00 00 00       	call   0x566d30
566ced:	83 c4 10             	add    $0x10,%esp
566cf0:	85 c0                	test   %eax,%eax
566cf2:	74 1d                	je     0x566d11
566cf4:	57                   	push   %edi
566cf5:	53                   	push   %ebx
566cf6:	56                   	push   %esi
566cf7:	55                   	push   %ebp
566cf8:	55                   	push   %ebp
566cf9:	e8 32 05 00 00       	call   0x567230
566cfe:	33 c9                	xor    %ecx,%ecx
566d00:	83 c4 14             	add    $0x14,%esp
566d03:	85 c0                	test   %eax,%eax
566d05:	ba 01 00 00 00       	mov    $0x1,%edx
566d0a:	0f 45 ca             	cmovne %edx,%ecx
566d0d:	89 4c 24 10          	mov    %ecx,0x10(%esp)
566d11:	5d                   	pop    %ebp
566d12:	5b                   	pop    %ebx
566d13:	57                   	push   %edi
566d14:	e8 b7 0d f8 ff       	call   0x4e7ad0
566d19:	8b 44 24 0c          	mov    0xc(%esp),%eax
566d1d:	83 c4 04             	add    $0x4,%esp
566d20:	5f                   	pop    %edi
566d21:	5e                   	pop    %esi
566d22:	59                   	pop    %ecx
566d23:	c3                   	ret
566d24:	cc                   	int3