 (ns cljakstab.core
-  (:require [clojure.string :as string])
+  (:require [clojure.string :as string]
+            [clojure.walk   :as walk])
   (:import (org.jakstab Main Options Program AnalysisManager)
            (org.jakstab.ssl Architecture)
            (org.jakstab.loader DefaultHarness)
            (org.jakstab.analysis ControlFlowReconstruction)
            java.security.Permission
            java.io.File))
+
+(def ^:private global-loaded-binary nil)
 
 (defn init-options
   "Jakstab stores options in singleton Options class"

   (let [arch (Architecture. (.getValue Options/sslFilename))
         program (Program/createProgram arch)
         file (.getAbsoluteFile (File. binary-file))]
     (.loadMainModule program file)
     (.installHarness program (DefaultHarness.))
     (let [cfr (ControlFlowReconstruction. program)]
       (.run cfr)
       {:cfr cfr :program program}))))

(defn- get-statement
  [program location]

         ~@exprs)
       (finally (System/setSecurityManager old-mgr#)))))

(defn load-binary
  "find unresolved jumps in specified binary"
  [binary-file]
  (init-options {:mainFile binary-file})
