Index: /trunk/Decompiler.class.php
===================================================================
--- /trunk/Decompiler.class.php	(revision 819)
+++ /trunk/Decompiler.class.php	(revision 820)
@@ -906,4 +906,18 @@
 			return;
 		}
+		if ($firstOp['opcode'] == XC_JMPZ && !empty($firstOp['jmpouts'])
+		 && $firstOp['jmpouts'][0] - 1 == $range[1] && $opcodes[$firstOp['jmpouts'][0] - 1]['opcode'] == XC_RETURN) {
+			$this->beginComplexBlock($EX);
+			$this->removeJmpInfo($EX, $range[0]);
+			$condition = $this->getOpVal($opcodes[$range[0]]['op1'], $EX);
+
+			echo $indent, 'if (', str($condition, $EX), ') ', '{', PHP_EOL;
+			$this->beginScope($EX);
+			$this->recognizeAndDecompileClosedBlocks($EX, $range);
+			$this->endScope($EX);
+			echo $indent, '}', PHP_EOL;
+			$this->endComplexBlock($EX);
+			return;
+		}
 		// }}}
 		// {{{ try/catch
Index: /trunk/phpdop.phpr
===================================================================
--- /trunk/phpdop.phpr	(revision 819)
+++ /trunk/phpdop.phpr	(revision 820)
@@ -95,5 +95,10 @@
 }
 $decompiler = new Decompiler();
-$pk = xcache_dasm_file($argv[1]);
+if (isset($argv[2])) {
+	eval('$pk = ' . file_get_contents($argv[2]) . ';');
+}
+else {
+	$pk = xcache_dasm_file($argv[1]);
+}
 $op_array = $funcs = $classes = null;
 if (isset($pk['op_array'])) {
