method void com.dmdirc.updater.components. LauncherComponent()










method com.dmdirc.updater.components.LauncherComponent__ static_init
postplatform == &""
postversion == -1










method void setLauncherInfo(String)
preinfo != null
presumptionjava.lang.String:indexOf(...)@51 <= 232-2
postinit'ed(java.lang.String:substring(...)._tainted)
postplatform == One-of{old platform, &amp;java.lang. String:substring(...)}
postpossibly_updated(version)
unanalyzedcall on java.util.List:add
test_vectorjava.lang.String:indexOf(...)@51: {-231.. -2, 0..232-2}, {-1}










method bool isUsingLauncher()
preinit'ed(version)
postinit'ed(return_value)










method String getName()
preinit'ed(platform)
postjava.lang.StringBuilder:toString(...)._tainted == platform._tainted
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postreturn_value == &amp;java.lang.StringBuilder:toStri ng(...)










method String getFriendlyName()
postreturn_value == &amp;"Launcher"










method String getFriendlyVersion()
preinit'ed(version)
postjava.lang.String:valueOf(...)._tainted == 0
postreturn_value == &amp;java.lang.String:valueOf(...)










method Version getVersion()
preinit'ed(version)
postreturn_value == &amp;new Version(getVersion#1)
postnew Version(getVersion#1) num objects == 1
postreturn_value.intVersion == version
postinit'ed(return_value.intVersion)
postreturn_value.strVersion == null










method bool doInstall(String)
preplatform != null
presumptioninit'ed(java.io.File.separator)
postreturn_value == 1
unanalyzedcall on java.util.zip.ZipFile
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.zip.ZipFile:entries
unanalyzedcall on java.util.Enumeration:hasMoreElements
unanalyzedcall on java.util.Enumeration:nextElement
unanalyzedcall on java.util.zip.ZipEntry:getName
unanalyzedcall on java.util.List:add
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.io.FileOutputStream
unanalyzedcall on java.io.FileOutputStream:write
unanalyzedcall on java.io.FileOutputStream:flush
unanalyzedcall on java.io.FileOutputStream:close
unanalyzedcall on extractResources
unanalyzedcall on getResourcesStartingWithAsBytes
unanalyzedcall on java.lang.String:startsWith
unanalyzedcall on java.io.File
unanalyzedcall on java.io.File:exists
unanalyzedcall on java.io.File:isDirectory
unanalyzedcall on java.io.File:length
unanalyzedcall on java.io.FileInputStream
unanalyzedcall on java.io.FileInputStream:read
unanalyzedcall on java.io.FileInputStream:close
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.io.File:listFiles
unanalyzedcall on java.util.Arrays:asList
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.io.File:isFile
unanalyzedcall on getFileListing
unanalyzedcall on java.util.List:addAll
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.io.File:getPath
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:entrySet
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on java.util.Map$Entry:getKey
unanalyzedcall on extractResource
unanalyzedcall on getResourceBytes
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:lastIndexOf
unanalyzedcall on java.io.File:mkdirs
unanalyzedcall on java.util.zip.ZipFile:getEntry
unanalyzedcall on java.util.zip.ZipEntry:isDirectory
unanalyzedcall on java.util.zip.ZipEntry:getSize
unanalyzedcall on java.util.zip.ZipFile:getInputStream
unanalyzedcall on java.io.BufferedInputStream
unanalyzedcall on java.io.BufferedInputStream:read
unanalyzedcall on java.io.BufferedInputStream:close
test_vectorjava.io.File:exists(...)@107: {0}, {1}
test_vectorjava.lang.String:equalsIgnoreCase(...)@104: {1}, {0}
test_vectorjava.lang.String:equalsIgnoreCase(...)@104: {0}, {1}