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
566d25:	cc                   	int3
566d26:	cc                   	int3
566d27:	cc                   	int3
566d28:	cc                   	int3
566d29:	cc                   	int3
566d2a:	cc                   	int3
566d2b:	cc                   	int3
566d2c:	cc                   	int3
566d2d:	cc                   	int3
566d2e:	cc                   	int3
566d2f:	cc                   	int3
566d30:	b8 64 00 00 00       	mov    $0x64,%eax
566d35:	e8 76 aa 06 00       	call   0x5d17b0
566d3a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
566d3f:	33 c4                	xor    %esp,%eax
566d41:	89 44 24 60          	mov    %eax,0x60(%esp)
566d45:	8b 44 24 68          	mov    0x68(%esp),%eax
566d49:	53                   	push   %ebx
566d4a:	8b 5c 24 78          	mov    0x78(%esp),%ebx
566d4e:	55                   	push   %ebp
566d4f:	56                   	push   %esi
566d50:	8b 74 24 78          	mov    0x78(%esp),%esi
566d54:	57                   	push   %edi
566d55:	8b bc 24 80 00 00 00 	mov    0x80(%esp),%edi
566d5c:	53                   	push   %ebx
566d5d:	89 44 24 54          	mov    %eax,0x54(%esp)
566d61:	89 7c 24 48          	mov    %edi,0x48(%esp)
566d65:	89 5c 24 58          	mov    %ebx,0x58(%esp)
566d69:	c7 44 24 50 00 00 00 	movl   $0x0,0x50(%esp)
566d70:	00
566d71:	e8 9a 10 f8 ff       	call   0x4e7e10
566d76:	53                   	push   %ebx
566d77:	e8 54 0e f8 ff       	call   0x4e7bd0
566d7c:	53                   	push   %ebx
566d7d:	89 44 24 3c          	mov    %eax,0x3c(%esp)
566d81:	e8 4a 0e f8 ff       	call   0x4e7bd0
566d86:	53                   	push   %ebx
566d87:	89 44 24 3c          	mov    %eax,0x3c(%esp)
566d8b:	e8 40 0e f8 ff       	call   0x4e7bd0
566d90:	8b e8                	mov    %eax,%ebp
566d92:	53                   	push   %ebx
566d93:	89 6c 24 5c          	mov    %ebp,0x5c(%esp)
566d97:	e8 34 0e f8 ff       	call   0x4e7bd0
566d9c:	8b d8                	mov    %eax,%ebx
566d9e:	83 c4 14             	add    $0x14,%esp
566da1:	89 5c 24 34          	mov    %ebx,0x34(%esp)
566da5:	85 db                	test   %ebx,%ebx
566da7:	0f 84 54 04 00 00    	je     0x567201
566dad:	6a 06                	push   $0x6
566daf:	8d 44 24 5c          	lea    0x5c(%esp),%eax
566db3:	50                   	push   %eax
566db4:	57                   	push   %edi
566db5:	e8 26 0d 00 00       	call   0x567ae0
566dba:	83 c4 0c             	add    $0xc,%esp
566dbd:	85 c0                	test   %eax,%eax
566dbf:	0f 84 21 04 00 00    	je     0x5671e6
566dc5:	83 f8 06             	cmp    $0x6,%eax
566dc8:	0f 8f 18 04 00 00    	jg     0x5671e6
566dce:	8d 44 24 58          	lea    0x58(%esp),%eax
566dd2:	50                   	push   %eax
566dd3:	56                   	push   %esi
566dd4:	55                   	push   %ebp
566dd5:	e8 e6 fa ff ff       	call   0x5668c0
566dda:	83 c4 0c             	add    $0xc,%esp
566ddd:	85 c0                	test   %eax,%eax
566ddf:	0f 84 1c 04 00 00    	je     0x567201
566de5:	55                   	push   %ebp
566de6:	e8 75 2f f7 ff       	call   0x4d9d60
566deb:	83 c4 04             	add    $0x4,%esp
566dee:	85 c0                	test   %eax,%eax
566df0:	0f 85 0b 04 00 00    	jne    0x567201
566df6:	57                   	push   %edi
566df7:	53                   	push   %ebx
566df8:	e8 e3 2c f7 ff       	call   0x4d9ae0
566dfd:	83 c4 08             	add    $0x8,%esp
566e00:	85 c0                	test   %eax,%eax
566e02:	0f 84 f9 03 00 00    	je     0x567201
566e08:	55                   	push   %ebp
566e09:	e8 12 30 f7 ff       	call   0x4d9e20
566e0e:	ff 74 24 38          	push   0x38(%esp)
566e12:	8b d8                	mov    %eax,%ebx
566e14:	89 5c 24 28          	mov    %ebx,0x28(%esp)
566e18:	e8 03 30 f7 ff       	call   0x4d9e20
566e1d:	8b 7f 04             	mov    0x4(%edi),%edi
566e20:	57                   	push   %edi
566e21:	55                   	push   %ebp
566e22:	89 44 24 48          	mov    %eax,0x48(%esp)
566e26:	89 7c 24 20          	mov    %edi,0x20(%esp)
566e2a:	e8 71 37 f7 ff       	call   0x4da5a0
566e2f:	83 c4 10             	add    $0x10,%esp
566e32:	85 c0                	test   %eax,%eax
566e34:	0f 84 c7 03 00 00    	je     0x567201
566e3a:	8b 45 04             	mov    0x4(%ebp),%eax
566e3d:	8b 75 00             	mov    0x0(%ebp),%esi
566e40:	89 74 24 3c          	mov    %esi,0x3c(%esp)
566e44:	3b c7                	cmp    %edi,%eax
566e46:	7d 11                	jge    0x566e59
566e48:	8b 4c 24 10          	mov    0x10(%esp),%ecx
566e4c:	8d 3c 86             	lea    (%esi,%eax,4),%edi
566e4f:	2b c8                	sub    %eax,%ecx
566e51:	33 c0                	xor    %eax,%eax
566e53:	f3 ab                	rep stos %eax,%es:(%edi)
566e55:	8b 7c 24 10          	mov    0x10(%esp),%edi
566e59:	57                   	push   %edi
566e5a:	ff 74 24 34          	push   0x34(%esp)
566e5e:	89 7d 04             	mov    %edi,0x4(%ebp)
566e61:	e8 3a 37 f7 ff       	call   0x4da5a0
566e66:	83 c4 08             	add    $0x8,%esp
566e69:	85 c0                	test   %eax,%eax
566e6b:	0f 84 90 03 00 00    	je     0x567201
566e71:	8b 54 24 30          	mov    0x30(%esp),%edx
566e75:	8b 2a                	mov    (%edx),%ebp
566e77:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
566e7b:	c7 45 00 01 00 00 00 	movl   $0x1,0x0(%ebp)
566e82:	83 ff 01             	cmp    $0x1,%edi
566e85:	7e 0e                	jle    0x566e95
566e87:	8d 4f ff             	lea    -0x1(%edi),%ecx
566e8a:	33 c0                	xor    %eax,%eax
566e8c:	8d 7d 04             	lea    0x4(%ebp),%edi
566e8f:	f3 ab                	rep stos %eax,%es:(%edi)
566e91:	8b 7c 24 10          	mov    0x10(%esp),%edi
566e95:	57                   	push   %edi
566e96:	ff 74 24 30          	push   0x30(%esp)
566e9a:	89 7a 04             	mov    %edi,0x4(%edx)
566e9d:	e8 fe 36 f7 ff       	call   0x4da5a0
566ea2:	83 c4 08             	add    $0x8,%esp
566ea5:	85 c0                	test   %eax,%eax
566ea7:	0f 84 54 03 00 00    	je     0x567201
566ead:	8b 44 24 2c          	mov    0x2c(%esp),%eax
566eb1:	8b 10                	mov    (%eax),%edx
566eb3:	89 54 24 14          	mov    %edx,0x14(%esp)
566eb7:	85 ff                	test   %edi,%edi
566eb9:	7e 10                	jle    0x566ecb
566ebb:	8b cf                	mov    %edi,%ecx
566ebd:	33 c0                	xor    %eax,%eax
566ebf:	8b fa                	mov    %edx,%edi
566ec1:	f3 ab                	rep stos %eax,%es:(%edi)
566ec3:	8b 7c 24 10          	mov    0x10(%esp),%edi
566ec7:	8b 44 24 2c          	mov    0x2c(%esp),%eax
566ecb:	89 78 04             	mov    %edi,0x4(%eax)
566ece:	8b 44 24 34          	mov    0x34(%esp),%eax
566ed2:	8b 08                	mov    (%eax),%ecx
566ed4:	89 4c 24 18          	mov    %ecx,0x18(%esp)
566ed8:	85 db                	test   %ebx,%ebx
566eda:	0f 84 d6 00 00 00    	je     0x566fb6
566ee0:	8b 1e                	mov    (%esi),%ebx
566ee2:	f6 c3 01             	test   $0x1,%bl
566ee5:	0f 85 bf 00 00 00    	jne    0x566faa
566eeb:	8b 4c 24 44          	mov    0x44(%esp),%ecx
566eef:	8d 57 ff             	lea    -0x1(%edi),%edx
566ef2:	8b 45 00             	mov    0x0(%ebp),%eax
566ef5:	8b e8                	mov    %eax,%ebp
566ef7:	83 e5 01             	and    $0x1,%ebp
566efa:	f7 dd                	neg    %ebp
566efc:	8b 09                	mov    (%ecx),%ecx
566efe:	8b 09                	mov    (%ecx),%ecx
566f00:	23 cd                	and    %ebp,%ecx
566f02:	33 c1                	xor    %ecx,%eax
566f04:	33 c9                	xor    %ecx,%ecx
566f06:	89 4c 24 24          	mov    %ecx,0x24(%esp)
566f0a:	85 d2                	test   %edx,%edx
566f0c:	7e 7a                	jle    0x566f88
566f0e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
566f12:	8b d6                	mov    %esi,%edx
566f14:	2b d1                	sub    %ecx,%edx
566f16:	89 54 24 28          	mov    %edx,0x28(%esp)
566f1a:	8d 79 04             	lea    0x4(%ecx),%edi
566f1d:	b9 fc ff ff ff       	mov    $0xfffffffc,%ecx
566f22:	2b 4c 24 1c          	sub    0x1c(%esp),%ecx
566f26:	89 4c 24 40          	mov    %ecx,0x40(%esp)
566f2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
566f30:	8b 14 3a             	mov    (%edx,%edi,1),%edx
566f33:	8b ca                	mov    %edx,%ecx
566f35:	c1 e1 1f             	shl    $0x1f,%ecx
566f38:	d1 eb                	shr    $1,%ebx