class org.iq.leveldb.util.Finalizer$FinalizerQueueProcessor extends java.lang.Object implements java.lang.Runnable { final org.iq.leveldb.util.Finalizer this$0; private void (org.iq.leveldb.util.Finalizer) { org.iq.leveldb.util.Finalizer v; org.iq.leveldb.util.Finalizer$FinalizerQueueProcessor v; v := @this: org.iq.leveldb.util.Finalizer$FinalizerQueueProcessor; v := @parameter: org.iq.leveldb.util.Finalizer; v. = v; specialinvoke v.()>(); return; } public void run() { java.lang.Throwable v, v; java.util.concurrent.atomic.AtomicBoolean v, v; java.lang.ref.ReferenceQueue v; org.iq.leveldb.util.Finalizer v, v, v, v, v, v, v, v; org.iq.leveldb.util.Finalizer$FinalizerQueueProcessor v, v; java.lang.Thread v, v, v; java.util.concurrent.ExecutorService v; boolean v, v, v, v, v; java.util.concurrent.ConcurrentHashMap v; java.lang.Exception v; java.lang.ref.Reference v; org.iq.leveldb.util.Finalizer$FinalizerMonitor v; java.lang.InterruptedException v; v := @this: org.iq.leveldb.util.Finalizer$FinalizerQueueProcessor; label: v = v.; v = v.; v = virtualinvoke v.(); if v != 0 goto label; label: v = v.; v = v.; v = virtualinvoke v.(); label: goto label; label: v := @caughtexception; v = staticinvoke (); virtualinvoke v.(); return; label: v = v.; v = v.; virtualinvoke v.(v); v = 0; label: specialinvoke v.(); v = staticinvoke (); v = virtualinvoke v.(); label: goto label; label: v := @caughtexception; label: v = v.; v = v.; interfaceinvoke v.(v); label: goto label; label: v := @caughtexception; label: v = v instanceof java.lang.InterruptedException; if v == 0 goto label; v = 1; v = staticinvoke (); virtualinvoke v.(); goto label; label: v = v instanceof java.lang.Error; if v == 0 goto label; v = 1; label: if v == 0 goto label; v = v.; entermonitor v; label: v = v.; v = v.; v = virtualinvoke v.(); if v != 0 goto label; v = v.; v = v.; v = new org.iq.leveldb.util.Finalizer$FinalizerQueueProcessor; v = v.; specialinvoke v.(org.iq.leveldb.util.Finalizer)>(v); interfaceinvoke v.(v); label: exitmonitor v; label: goto label; label: v := @caughtexception; exitmonitor v; throw v; label: return; label: return; catch java.lang.InterruptedException from label to label with label; catch java.lang.Throwable from label to label with label; catch java.lang.Exception from label to label with label; catch java.lang.Throwable from label to label with label; } }