Skip to content

Instantly share code, notes, and snippets.

@nikic
Created August 30, 2021 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikic/3df8cd975e6a59d287dc00687be1ce27 to your computer and use it in GitHub Desktop.
Save nikic/3df8cd975e6a59d287dc00687be1ce27 to your computer and use it in GitHub Desktop.
; ModuleID = '../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Common/ArchiveCommandLine.cpp'
source_filename = "../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Common/ArchiveCommandLine.cpp"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%class.CStringBase = type { i32*, i32, i32 }
%"struct.NCommandLineParser::CSwitchForm" = type { i32*, i32, i8, i32, i32, i32* }
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] }
%struct._IO_marker = type opaque
%struct._IO_codecvt = type opaque
%struct._IO_wide_data = type opaque
%"struct.NCommandLineParser::CCommandForm" = type { i32*, i8 }
%"struct.NUpdateArchive::CActionSet" = type { [7 x i32] }
%class.CArchiveCommandLineParser = type { %"class.NCommandLineParser::CParser" }
%"class.NCommandLineParser::CParser" = type { i32, %"struct.NCommandLineParser::CSwitchResult"*, %class.CObjectVector }
%"struct.NCommandLineParser::CSwitchResult" = type <{ i8, i8, [6 x i8], %class.CObjectVector, i32, [4 x i8] }>
%class.CObjectVector = type { %class.CRecordVector }
%class.CRecordVector = type { %class.CBaseRecordVector }
%class.CBaseRecordVector = type { i32 (...)**, i32, i32, i8*, i64 }
%struct.CArchiveCommand = type { i32 }
%struct.CArchiveCommandLineOptions = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %"class.NWildcard::CCensor", %struct.CArchiveCommand, %class.CStringBase, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, i32, %class.CObjectVector, %class.CObjectVector, %class.CObjectVector.1, %struct.CUpdateOptions, %class.CStringBase, i8, i32, i32, i32, %class.CStringBase }
%"class.NWildcard::CCensor" = type { %class.CObjectVector.0 }
%class.CObjectVector.0 = type { %class.CRecordVector }
%class.CObjectVector.1 = type { %class.CRecordVector }
%struct.CUpdateOptions = type { %struct.CCompressionMethodMode, %class.CObjectVector.2, i8, %struct.CArchivePath, i8, %class.CStringBase, i8, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, %class.CStringBase, %class.CRecordVector.3 }
%struct.CCompressionMethodMode = type { i32, %class.CObjectVector.1 }
%class.CObjectVector.2 = type { %class.CRecordVector }
%struct.CArchivePath = type { %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, i8, %class.CStringBase, %class.CStringBase }
%class.CRecordVector.3 = type { %class.CBaseRecordVector }
%class.CDirItems = type { %class.CObjectVector, %class.CRecordVector.4, %class.CRecordVector.4, %class.CObjectVector.5 }
%class.CRecordVector.4 = type { %class.CBaseRecordVector }
%class.CObjectVector.5 = type { %class.CRecordVector }
%class.CRecordVector.6 = type { %class.CBaseRecordVector }
%struct.CDirItem = type <{ i64, %struct._FILETIME, %struct._FILETIME, %struct._FILETIME, %class.CStringBase, i32, i32, i32, [4 x i8] }>
%struct._FILETIME = type { i32, i32 }
%struct.IEnumDirItemCallback = type { i32 (...)** }
%"struct.NWildcard::CPair" = type { %class.CStringBase, %"class.NWildcard::CCensorNode" }
%"class.NWildcard::CCensorNode" = type { %"class.NWildcard::CCensorNode"*, %class.CStringBase, %class.CObjectVector.7, %class.CObjectVector.8, %class.CObjectVector.8 }
%class.CObjectVector.7 = type { %class.CRecordVector }
%class.CObjectVector.8 = type { %class.CRecordVector }
%struct.CArchiveCommandLineException = type { %class.CStringBase.9 }
%class.CStringBase.9 = type { i8*, i32, i32 }
%struct.CProperty = type { %class.CStringBase, %class.CStringBase }
%struct.CUpdateArchiveCommand = type <{ %class.CStringBase, %struct.CArchivePath, %"struct.NUpdateArchive::CActionSet", [4 x i8] }>
%"struct.NWildcard::CItem" = type <{ %class.CObjectVector, i8, i8, i8, [5 x i8] }>
$_ZN11CStringBaseIwEC2EPKw = comdat any
$_ZN11CStringBaseIwED2Ev = comdat any
$__clang_call_terminate = comdat any
$_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv = comdat any
$_ZNK11CStringBaseIwE7IsEmptyEv = comdat any
$_ZNK17CBaseRecordVector4SizeEv = comdat any
$_ZNK13CObjectVectorI11CStringBaseIwEEixEi = comdat any
$_ZN11CStringBaseIwEaSERKS0_ = comdat any
$_ZNK9NWildcard7CCensor14AllAreRelativeEv = comdat any
$_ZN9NWildcard7CCensorC2Ev = comdat any
$_ZNK11CStringBaseIwE4FindERKS0_ = comdat any
$_ZN11CStringBaseIwEC2ERKS0_ = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_ = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEEC2Ev = comdat any
$_ZN9CDirItemsC2Ev = comdat any
$_ZN13CRecordVectorIjEC2Ev = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEED2Ev = comdat any
$_ZN13CObjectVectorI8CDirItemEixEi = comdat any
$_ZNK8CDirItem5IsDirEv = comdat any
$_ZN9CDirItemsD2Ev = comdat any
$_ZN11CStringBaseIwEC2Ev = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEEixEi = comdat any
$_ZNK11CStringBaseIwEcvPKwEv = comdat any
$_ZN13CRecordVectorIiEC2Ev = comdat any
$_ZN13CRecordVectorIiEixEi = comdat any
$_ZN9NWildcard7CCensorD2Ev = comdat any
$_ZNK11CStringBaseIwE6LengthEv = comdat any
$_ZN11CStringBaseIwE6DeleteEii = comdat any
$_ZN11CStringBaseIwE9MakeUpperEv = comdat any
$_ZNK11CStringBaseIwE3MidEi = comdat any
$_ZNK11CStringBaseIwE4FindEw = comdat any
$_ZNK11CStringBaseIwE4FindEwi = comdat any
$_ZN11CStringBaseIwE18GetNextCharPointerEPw = comdat any
$_Z26MyStringGetNextCharPointerPw = comdat any
$_ZNK13CObjectVectorIN9NWildcard5CPairEE5FrontEv = comdat any
$_ZNK13CObjectVectorIN9NWildcard5CPairEEixEi = comdat any
$_ZNK13CRecordVectorIPvEixEi = comdat any
$_ZN28CArchiveCommandLineExceptionC2EPKc = comdat any
$_ZN11CStringBaseIcED2Ev = comdat any
$_ZN11CStringBaseIcEC2EPKc = comdat any
$_Z11MyStringLenIcEiPKT_ = comdat any
$_ZN11CStringBaseIcE11SetCapacityEi = comdat any
$_Z12MyStringCopyIcEPT_S1_PKS0_ = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev = comdat any
$_ZN13CRecordVectorIPvEC2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii = comdat any
$_ZN17CBaseRecordVectorC2Em = comdat any
$_ZN13CRecordVectorIPvED0Ev = comdat any
$_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi = comdat any
$_ZN9NWildcard5CPairD2Ev = comdat any
$_ZN9NWildcard11CCensorNodeD2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii = comdat any
$_ZN9NWildcard5CItemD2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii = comdat any
$_ZN13CObjectVectorI8CDirItemEC2Ev = comdat any
$_ZN13CObjectVectorI8CDirItemED2Ev = comdat any
$_ZN13CObjectVectorI8CDirItemED0Ev = comdat any
$_ZN13CObjectVectorI8CDirItemE6DeleteEii = comdat any
$_ZN8CDirItemD2Ev = comdat any
$_ZN9CPropertyC2Ev = comdat any
$_ZNK11CStringBaseIwE4LeftEi = comdat any
$_ZN13CObjectVectorI9CPropertyE3AddERKS0_ = comdat any
$_ZN9CPropertyD2Ev = comdat any
$_ZNK11CStringBaseIwE3MidEii = comdat any
$_ZN11CStringBaseIwE11SetCapacityEi = comdat any
$_ZN13CRecordVectorIPvE3AddES0_ = comdat any
$_ZN9CPropertyC2ERKS_ = comdat any
$_ZN21CUpdateArchiveCommandC2Ev = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_ = comdat any
$_ZN13CRecordVectorIyE3AddEy = comdat any
$_ZN21CUpdateArchiveCommandD2Ev = comdat any
$_ZN12CArchivePathC2Ev = comdat any
$_ZN21CUpdateArchiveCommandC2ERKS_ = comdat any
$_ZN12CArchivePathC2ERKS_ = comdat any
$_ZNK11CStringBaseIwE13CompareNoCaseEPKw = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi = comdat any
$_ZN11CStringBaseIwE5EmptyEv = comdat any
$_ZN13CRecordVectorIPvEixEi = comdat any
$_ZN12CArchivePathD2Ev = comdat any
$_Z12MyStringCopyIwEPT_S1_PKS0_ = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEED0Ev = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii = comdat any
$_Z11MyStringLenIwEiPKT_ = comdat any
$_ZNK11CStringBaseIwE4FindERKS0_i = comdat any
$_ZN13CRecordVectorIiED0Ev = comdat any
$_ZN13CRecordVectorIjED0Ev = comdat any
$_ZN11CStringBaseIwE9MoveItemsEii = comdat any
$_ZTS28CArchiveCommandLineException = comdat any
$_ZTS11CStringBaseIcE = comdat any
$_ZTI11CStringBaseIcE = comdat any
$_ZTI28CArchiveCommandLineException = comdat any
$_ZTV13CObjectVectorIN9NWildcard5CPairEE = comdat any
$_ZTS13CObjectVectorIN9NWildcard5CPairEE = comdat any
$_ZTS13CRecordVectorIPvE = comdat any
$_ZTI13CRecordVectorIPvE = comdat any
$_ZTI13CObjectVectorIN9NWildcard5CPairEE = comdat any
$_ZTV13CRecordVectorIPvE = comdat any
$_ZTV13CObjectVectorIN9NWildcard5CItemEE = comdat any
$_ZTS13CObjectVectorIN9NWildcard5CItemEE = comdat any
$_ZTI13CObjectVectorIN9NWildcard5CItemEE = comdat any
$_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any
$_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any
$_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any
$_ZTV13CObjectVectorI8CDirItemE = comdat any
$_ZTS13CObjectVectorI8CDirItemE = comdat any
$_ZTI13CObjectVectorI8CDirItemE = comdat any
$_ZTV13CObjectVectorI11CStringBaseIwEE = comdat any
$_ZTS13CObjectVectorI11CStringBaseIwEE = comdat any
$_ZTI13CObjectVectorI11CStringBaseIwEE = comdat any
$_ZTV13CRecordVectorIiE = comdat any
$_ZTS13CRecordVectorIiE = comdat any
$_ZTI13CRecordVectorIiE = comdat any
$_ZTV13CRecordVectorIjE = comdat any
$_ZTS13CRecordVectorIjE = comdat any
$_ZTI13CRecordVectorIjE = comdat any
@k_OverwriteModes = dso_local global [4 x i32] [i32 1, i32 2, i32 3, i32 4], align 16
@_ZL21kUpdatePairStateIDSet = internal global %class.CStringBase zeroinitializer, align 8
@.str = private unnamed_addr constant [8 x i32] [i32 80, i32 81, i32 82, i32 88, i32 89, i32 90, i32 87, i32 0], align 4
@__dso_handle = external hidden global i8
@_ZL22kUpdatePairActionIDSet = internal global %class.CStringBase zeroinitializer, align 8
@.str.2 = private unnamed_addr constant [5 x i32] [i32 48, i32 49, i32 50, i32 51, i32 0], align 4
@.str.3 = private unnamed_addr constant [2 x i32] [i32 45, i32 0], align 4
@kUpdateIgnoreItselfPostStringID = dso_local global i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.3, i32 0, i32 0), align 8
@_ZL12kSwitchForms = internal global [30 x %"struct.NCommandLineParser::CSwitchForm"] zeroinitializer, align 16
@stdin = external dso_local global %struct._IO_FILE*, align 8
@stdout = external dso_local global %struct._IO_FILE*, align 8
@stderr = external dso_local global %struct._IO_FILE*, align 8
@g_CaseSensitive = external dso_local global i8, align 1
@global_use_lstat = external dso_local global i32, align 4
@.str.4 = private unnamed_addr constant [47 x i8] c"Cannot use absolute pathnames for this command\00", align 1
@_ZL18kUniversalWildcard = internal global i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.49, i32 0, i32 0), align 8
@.str.5 = private unnamed_addr constant [2 x i32] [i32 63, i32 0], align 4
@.str.6 = private unnamed_addr constant [20 x i8] c"cannot find archive\00", align 1
@_ZTIPKc = external dso_local constant i8*
@.str.7 = private unnamed_addr constant [25 x i8] c"there is no such archive\00", align 1
@_ZL18kSameTerminalError = internal global i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.50, i32 0, i32 0), align 8
@.str.8 = private unnamed_addr constant [46 x i8] c"stdout mode and email mode cannot be combined\00", align 1
@_ZL17kTerminalOutError = internal global i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.52, i32 0, i32 0), align 8
@.str.9 = private unnamed_addr constant [2 x i32] [i32 72, i32 0], align 4
@.str.10 = private unnamed_addr constant [6 x i32] [i32 45, i32 72, i32 69, i32 76, i32 80, i32 0], align 4
@.str.11 = private unnamed_addr constant [3 x i32] [i32 66, i32 65, i32 0], align 4
@.str.12 = private unnamed_addr constant [3 x i32] [i32 66, i32 68, i32 0], align 4
@.str.13 = private unnamed_addr constant [2 x i32] [i32 84, i32 0], align 4
@.str.14 = private unnamed_addr constant [2 x i32] [i32 89, i32 0], align 4
@.str.15 = private unnamed_addr constant [2 x i32] [i32 80, i32 0], align 4
@.str.16 = private unnamed_addr constant [2 x i32] [i32 77, i32 0], align 4
@.str.17 = private unnamed_addr constant [2 x i32] [i32 79, i32 0], align 4
@.str.18 = private unnamed_addr constant [2 x i32] [i32 87, i32 0], align 4
@.str.19 = private unnamed_addr constant [2 x i32] [i32 73, i32 0], align 4
@.str.20 = private unnamed_addr constant [2 x i32] [i32 88, i32 0], align 4
@.str.21 = private unnamed_addr constant [3 x i32] [i32 65, i32 73, i32 0], align 4
@.str.22 = private unnamed_addr constant [3 x i32] [i32 65, i32 88, i32 0], align 4
@.str.23 = private unnamed_addr constant [3 x i32] [i32 65, i32 78, i32 0], align 4
@.str.24 = private unnamed_addr constant [2 x i32] [i32 85, i32 0], align 4
@.str.25 = private unnamed_addr constant [2 x i32] [i32 86, i32 0], align 4
@.str.26 = private unnamed_addr constant [2 x i32] [i32 82, i32 0], align 4
@_ZL20kRecursedPostCharSet = internal global i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.39, i32 0, i32 0), align 8
@.str.28 = private unnamed_addr constant [4 x i32] [i32 83, i32 70, i32 88, i32 0], align 4
@.str.29 = private unnamed_addr constant [3 x i32] [i32 83, i32 73, i32 0], align 4
@.str.30 = private unnamed_addr constant [3 x i32] [i32 83, i32 79, i32 0], align 4
@.str.31 = private unnamed_addr constant [3 x i32] [i32 65, i32 79, i32 0], align 4
@_ZL21kOverwritePostCharSet = internal global i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.40, i32 0, i32 0), align 8
@.str.32 = private unnamed_addr constant [5 x i32] [i32 83, i32 69, i32 77, i32 76, i32 0], align 4
@.str.33 = private unnamed_addr constant [3 x i32] [i32 65, i32 68, i32 0], align 4
@.str.34 = private unnamed_addr constant [4 x i32] [i32 83, i32 76, i32 80, i32 0], align 4
@.str.35 = private unnamed_addr constant [2 x i32] [i32 76, i32 0], align 4
@.str.36 = private unnamed_addr constant [4 x i32] [i32 83, i32 76, i32 84, i32 0], align 4
@.str.37 = private unnamed_addr constant [4 x i32] [i32 83, i32 83, i32 67, i32 0], align 4
@.str.38 = private unnamed_addr constant [5 x i32] [i32 83, i32 67, i32 82, i32 67, i32 0], align 4
@.str.39 = private unnamed_addr constant [3 x i32] [i32 48, i32 45, i32 0], align 4
@.str.40 = private unnamed_addr constant [5 x i32] [i32 97, i32 115, i32 117, i32 116, i32 0], align 4
@_ZL17kUserErrorMessage = internal global i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.41, i32 0, i32 0), align 8
@.str.41 = private unnamed_addr constant [23 x i8] c"Incorrect command line\00", align 1
@_ZL14g_CommandForms = internal constant [9 x %"struct.NCommandLineParser::CCommandForm"] [%"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.42, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.24, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.43, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.13, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.44, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.20, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.35, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.45, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.19, i32 0, i32 0), i8 0 }], align 16
@.str.42 = private unnamed_addr constant [2 x i32] [i32 65, i32 0], align 4
@.str.43 = private unnamed_addr constant [2 x i32] [i32 68, i32 0], align 4
@.str.44 = private unnamed_addr constant [2 x i32] [i32 69, i32 0], align 4
@.str.45 = private unnamed_addr constant [2 x i32] [i32 66, i32 0], align 4
@_ZL19kCannotFindListFile = internal global i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.46, i32 0, i32 0), align 8
@_ZL18kIncorrectListFile = internal global i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.47, i32 0, i32 0), align 8
@.str.46 = private unnamed_addr constant [21 x i8] c"Cannot find listfile\00", align 1
@.str.47 = private unnamed_addr constant [68 x i8] c"Incorrect item in listfile.\0ACheck charset encoding and -scs switch.\00", align 1
@_ZL14kEmptyFilePath = internal global i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i32 0, i32 0), align 8
@.str.48 = private unnamed_addr constant [16 x i8] c"Empty file path\00", align 1
@_ZTVN10__cxxabiv120__si_class_type_infoE = external dso_local global i8*
@_ZTS28CArchiveCommandLineException = linkonce_odr dso_local constant [31 x i8] c"28CArchiveCommandLineException\00", comdat, align 1
@_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global i8*
@_ZTS11CStringBaseIcE = linkonce_odr dso_local constant [17 x i8] c"11CStringBaseIcE\00", comdat, align 1
@_ZTI11CStringBaseIcE = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @_ZTS11CStringBaseIcE, i32 0, i32 0) }, comdat, align 8
@_ZTI28CArchiveCommandLineException = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @_ZTS28CArchiveCommandLineException, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI11CStringBaseIcE to i8*) }, comdat, align 8
@_ZTV13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CPairEE to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CPairEE\00", comdat, align 1
@_ZTS13CRecordVectorIPvE = linkonce_odr dso_local constant [20 x i8] c"13CRecordVectorIPvE\00", comdat, align 1
@_ZTI17CBaseRecordVector = external dso_local constant i8*
@_ZTI13CRecordVectorIPvE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @_ZTS13CRecordVectorIPvE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8
@_ZTI13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CPairEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CRecordVectorIPvE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector*)* @_ZN13CRecordVectorIPvED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8
@_ZTV17CBaseRecordVector = available_externally dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD1Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, align 8
@_ZTV13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CItemEE to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CItemEE\00", comdat, align 1
@_ZTI13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CItemEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE to i8*), i8* bitcast (void (%class.CObjectVector.7*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.7*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.7*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant [43 x i8] c"13CObjectVectorIN9NWildcard11CCensorNodeEE\00", comdat, align 1
@_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@.str.49 = private unnamed_addr constant [2 x i32] [i32 42, i32 0], align 4
@_ZTV13CObjectVectorI8CDirItemE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI8CDirItemE to i8*), i8* bitcast (void (%class.CObjectVector.5*)* @_ZN13CObjectVectorI8CDirItemED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.5*)* @_ZN13CObjectVectorI8CDirItemED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.5*, i32, i32)* @_ZN13CObjectVectorI8CDirItemE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI8CDirItemE = linkonce_odr dso_local constant [27 x i8] c"13CObjectVectorI8CDirItemE\00", comdat, align 1
@_ZTI13CObjectVectorI8CDirItemE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @_ZTS13CObjectVectorI8CDirItemE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@.str.50 = private unnamed_addr constant [59 x i8] c"I won't write data and program's messages to same terminal\00", align 1
@_ZN14NUpdateArchive13kAddActionSetE = external dso_local global %"struct.NUpdateArchive::CActionSet", align 4
@_ZN14NUpdateArchive16kDeleteActionSetE = external dso_local global %"struct.NUpdateArchive::CActionSet", align 4
@_ZN14NUpdateArchive16kUpdateActionSetE = external dso_local global %"struct.NUpdateArchive::CActionSet", align 4
@.str.51 = private unnamed_addr constant [22 x i8] c"Incorrect volume size\00", align 1
@_ZL35kUpdatePairStateNotSupportedActions = internal constant [7 x i32] [i32 2, i32 2, i32 1, i32 -1, i32 -1, i32 -1, i32 -1], align 16
@_ZTIi = external dso_local constant i8*
@.str.52 = private unnamed_addr constant [44 x i8] c"I won't write compressed data to a terminal\00", align 1
@_ZTV13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI11CStringBaseIwEE to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector*, i32, i32)* @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant [34 x i8] c"13CObjectVectorI11CStringBaseIwEE\00", comdat, align 1
@_ZTI13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @_ZTS13CObjectVectorI11CStringBaseIwEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CRecordVectorIiE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIiE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.4*)* @_ZN13CRecordVectorIiED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CRecordVectorIiE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIiE\00", comdat, align 1
@_ZTI13CRecordVectorIiE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIiE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8
@_ZTV13CRecordVectorIjE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIjE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.6*)* @_ZN13CRecordVectorIjED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CRecordVectorIjE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIjE\00", comdat, align 1
@_ZTI13CRecordVectorIjE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIjE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_ArchiveCommandLine.cpp, i8* null }]
@_ZN25CArchiveCommandLineParserC1Ev = dso_local unnamed_addr alias void (%class.CArchiveCommandLineParser*), void (%class.CArchiveCommandLineParser*)* @_ZN25CArchiveCommandLineParserC2Ev
; Function Attrs: mustprogress nounwind uwtable
define dso_local zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #0 align 2 {
entry:
%retval = alloca i1, align 1
%this.addr = alloca %struct.CArchiveCommand*, align 8
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0
%0 = load i32, i32* %CommandType, align 4, !tbaa !7
switch i32 %0, label %sw.default [
i32 3, label %sw.bb
i32 4, label %sw.bb
i32 5, label %sw.bb
]
sw.bb: ; preds = %entry, %entry, %entry
store i1 true, i1* %retval, align 1
br label %return
sw.default: ; preds = %entry
store i1 false, i1* %retval, align 1
br label %return
return: ; preds = %sw.default, %sw.bb
%1 = load i1, i1* %retval, align 1
ret i1 %1
}
; Function Attrs: mustprogress nounwind uwtable
define dso_local i32 @_ZNK15CArchiveCommand11GetPathModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #0 align 2 {
entry:
%retval = alloca i32, align 4
%this.addr = alloca %struct.CArchiveCommand*, align 8
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0
%0 = load i32, i32* %CommandType, align 4, !tbaa !7
switch i32 %0, label %sw.default [
i32 3, label %sw.bb
i32 5, label %sw.bb
]
sw.bb: ; preds = %entry, %entry
store i32 0, i32* %retval, align 4
br label %return
sw.default: ; preds = %entry
store i32 2, i32* %retval, align 4
br label %return
return: ; preds = %sw.default, %sw.bb
%1 = load i32, i32* %retval, align 4
ret i32 %1
}
; Function Attrs: mustprogress nounwind uwtable
define dso_local zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #0 align 2 {
entry:
%this.addr = alloca %struct.CArchiveCommand*, align 8
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0
%0 = load i32, i32* %CommandType, align 4, !tbaa !7
%cmp = icmp eq i32 %0, 0
br i1 %cmp, label %lor.end, label %lor.lhs.false
lor.lhs.false: ; preds = %entry
%CommandType2 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0
%1 = load i32, i32* %CommandType2, align 4, !tbaa !7
%cmp3 = icmp eq i32 %1, 1
br i1 %cmp3, label %lor.end, label %lor.rhs
lor.rhs: ; preds = %lor.lhs.false
%CommandType4 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0
%2 = load i32, i32* %CommandType4, align 4, !tbaa !7
%cmp5 = icmp eq i32 %2, 2
br label %lor.end
lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry
%3 = phi i1 [ true, %lor.lhs.false ], [ true, %entry ], [ %cmp5, %lor.rhs ]
ret i1 %3
}
; Function Attrs: uwtable
define internal void @__cxx_global_var_init() #1 section ".text.startup" {
entry:
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL21kUpdatePairStateIDSet, i32* getelementptr inbounds ([8 x i32], [8 x i32]* @.str, i64 0, i64 0))
%0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%class.CStringBase*)* @_ZN11CStringBaseIwED2Ev to void (i8*)*), i8* bitcast (%class.CStringBase* @_ZL21kUpdatePairStateIDSet to i8*), i8* @__dso_handle) #3
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %chars) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%chars.addr = alloca i32*, align 8
%length = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32* %chars, i32** %chars.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
store i32* null, i32** %_chars, align 8, !tbaa !10
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 0, i32* %_length, align 8, !tbaa !13
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
store i32 0, i32* %_capacity, align 4, !tbaa !14
%0 = bitcast i32* %length to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
%1 = load i32*, i32** %chars.addr, align 8, !tbaa !3
%call = call i32 @_Z11MyStringLenIwEiPKT_(i32* %1)
store i32 %call, i32* %length, align 4, !tbaa !15
%2 = load i32, i32* %length, align 4, !tbaa !15
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2)
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars2, align 8, !tbaa !10
%4 = load i32*, i32** %chars.addr, align 8, !tbaa !3
%call3 = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %4)
%5 = load i32, i32* %length, align 4, !tbaa !15
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 %5, i32* %_length4, align 8, !tbaa !13
%6 = bitcast i32* %length to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !10
%isnull = icmp eq i32* %0, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %entry
%1 = bitcast i32* %0 to i8*
call void @_ZdaPv(i8* %1) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %entry
ret void
}
; Function Attrs: nounwind
declare dso_local i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #3
; Function Attrs: uwtable
define internal void @__cxx_global_var_init.1() #1 section ".text.startup" {
entry:
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL22kUpdatePairActionIDSet, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.2, i64 0, i64 0))
%0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%class.CStringBase*)* @_ZN11CStringBaseIwED2Ev to void (i8*)*), i8* bitcast (%class.CStringBase* @_ZL22kUpdatePairActionIDSet to i8*), i8* @__dso_handle) #3
ret void
}
; Function Attrs: uwtable
define dso_local void @_ZN25CArchiveCommandLineParserC2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this) unnamed_addr #1 align 2 {
entry:
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !3
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
call void @_ZN18NCommandLineParser7CParserC1Ei(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, i32 30)
ret void
}
declare dso_local void @_ZN18NCommandLineParser7CParserC1Ei(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48), i32) unnamed_addr #4
; Function Attrs: mustprogress uwtable
define dso_local void @_ZN25CArchiveCommandLineParser6Parse1ERK13CObjectVectorI11CStringBaseIwEER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this, %class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #5 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8
%commandStrings.addr = alloca %class.CObjectVector*, align 8
%options.addr = alloca %struct.CArchiveCommandLineOptions*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%postString = alloca %class.CStringBase*, align 8
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !3
store %class.CObjectVector* %commandStrings, %class.CObjectVector** %commandStrings.addr, align 8, !tbaa !3
store %struct.CArchiveCommandLineOptions* %options, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%0 = load %class.CObjectVector*, %class.CObjectVector** %commandStrings.addr, align 8, !tbaa !3
invoke void @_ZN18NCommandLineParser7CParser12ParseStringsEPKNS_11CSwitchFormERK13CObjectVectorI11CStringBaseIwEE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, %"struct.NCommandLineParser::CSwitchForm"* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0), %class.CObjectVector* nonnull align 8 dereferenceable(32) %0)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
br label %try.cont
lpad: ; preds = %entry
%1 = landingpad { i8*, i32 }
catch i8* null
%2 = extractvalue { i8*, i32 } %1, 0
store i8* %2, i8** %exn.slot, align 8
%3 = extractvalue { i8*, i32 } %1, 1
store i32 %3, i32* %ehselector.slot, align 4
br label %catch
catch: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%4 = call i8* @__cxa_begin_catch(i8* %exn) #3
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %catch
call void @__cxa_end_catch()
br label %try.cont
try.cont: ; preds = %invoke.cont3, %invoke.cont
%5 = load %struct._IO_FILE*, %struct._IO_FILE** @stdin, align 8, !tbaa !3
%call = call i32 @fileno(%struct._IO_FILE* %5) #3
%call5 = call i32 @isatty(i32 %call) #3
%cmp = icmp ne i32 %call5, 0
%6 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsInTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %6, i32 0, i32 2
%frombool = zext i1 %cmp to i8
store i8 %frombool, i8* %IsInTerminal, align 2, !tbaa !16
%7 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8, !tbaa !3
%call6 = call i32 @fileno(%struct._IO_FILE* %7) #3
%call7 = call i32 @isatty(i32 %call6) #3
%cmp8 = icmp ne i32 %call7, 0
%8 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdOutTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %8, i32 0, i32 3
%frombool9 = zext i1 %cmp8 to i8
store i8 %frombool9, i8* %IsStdOutTerminal, align 1, !tbaa !29
%9 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !tbaa !3
%call10 = call i32 @fileno(%struct._IO_FILE* %9) #3
%call11 = call i32 @isatty(i32 %call10) #3
%cmp12 = icmp ne i32 %call11, 0
%10 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdErrTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %10, i32 0, i32 4
%frombool13 = zext i1 %cmp12 to i8
store i8 %frombool13, i8* %IsStdErrTerminal, align 4, !tbaa !30
%parser14 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call15 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser14, i64 20)
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call15, i32 0, i32 0
%11 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33
%tobool = trunc i8 %11 to i1
%12 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %12, i32 0, i32 5
%frombool16 = zext i1 %tobool to i8
store i8 %frombool16, i8* %StdInMode, align 1, !tbaa !34
%parser17 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call18 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser17, i64 21)
%ThereIs19 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call18, i32 0, i32 0
%13 = load i8, i8* %ThereIs19, align 8, !tbaa !31, !range !33
%tobool20 = trunc i8 %13 to i1
%14 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %14, i32 0, i32 6
%frombool21 = zext i1 %tobool20 to i8
store i8 %frombool21, i8* %StdOutMode, align 2, !tbaa !35
%parser22 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call23 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser22, i64 3)
%ThereIs24 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call23, i32 0, i32 0
%15 = load i8, i8* %ThereIs24, align 8, !tbaa !31, !range !33
%tobool25 = trunc i8 %15 to i1
%lnot = xor i1 %tobool25, true
%16 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%EnableHeaders = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %16, i32 0, i32 7
%frombool26 = zext i1 %lnot to i8
store i8 %frombool26, i8* %EnableHeaders, align 1, !tbaa !36
%parser27 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call28 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser27, i64 0)
%ThereIs29 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call28, i32 0, i32 0
%17 = load i8, i8* %ThereIs29, align 8, !tbaa !31, !range !33
%tobool30 = trunc i8 %17 to i1
br i1 %tobool30, label %lor.end, label %lor.lhs.false
lor.lhs.false: ; preds = %try.cont
%parser31 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call32 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser31, i64 1)
%ThereIs33 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call32, i32 0, i32 0
%18 = load i8, i8* %ThereIs33, align 8, !tbaa !31, !range !33
%tobool34 = trunc i8 %18 to i1
br i1 %tobool34, label %lor.end, label %lor.rhs
lor.rhs: ; preds = %lor.lhs.false
%parser35 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call36 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser35, i64 2)
%ThereIs37 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call36, i32 0, i32 0
%19 = load i8, i8* %ThereIs37, align 8, !tbaa !31, !range !33
%tobool38 = trunc i8 %19 to i1
br label %lor.end
lor.end: ; preds = %lor.rhs, %lor.lhs.false, %try.cont
%20 = phi i1 [ true, %lor.lhs.false ], [ true, %try.cont ], [ %tobool38, %lor.rhs ]
%21 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%HelpMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %21, i32 0, i32 0
%frombool39 = zext i1 %20 to i8
store i8 %frombool39, i8* %HelpMode, align 8, !tbaa !37
%22 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%LargePages = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %22, i32 0, i32 1
store i8 0, i8* %LargePages, align 1, !tbaa !38
%parser40 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call41 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser40, i64 25)
%ThereIs42 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call41, i32 0, i32 0
%23 = load i8, i8* %ThereIs42, align 8, !tbaa !31, !range !33
%tobool43 = trunc i8 %23 to i1
br i1 %tobool43, label %if.then, label %if.end50
if.then: ; preds = %lor.end
%24 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %24) #3
%parser44 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call45 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser44, i64 25)
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call45, i32 0, i32 3
%call46 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings)
store %class.CStringBase* %call46, %class.CStringBase** %postString, align 8, !tbaa !3
%25 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%call47 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %25)
br i1 %call47, label %if.then48, label %if.end
if.then48: ; preds = %if.then
%26 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%LargePages49 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %26, i32 0, i32 1
store i8 1, i8* %LargePages49, align 1, !tbaa !38
br label %if.end
lpad2: ; preds = %catch
%27 = landingpad { i8*, i32 }
cleanup
%28 = extractvalue { i8*, i32 } %27, 0
store i8* %28, i8** %exn.slot, align 8
%29 = extractvalue { i8*, i32 } %27, 1
store i32 %29, i32* %ehselector.slot, align 4
invoke void @__cxa_end_catch()
to label %invoke.cont4 unwind label %terminate.lpad
invoke.cont4: ; preds = %lpad2
br label %eh.resume
if.end: ; preds = %if.then48, %if.then
%30 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %30) #3
br label %if.end50
if.end50: ; preds = %if.end, %lor.end
ret void
eh.resume: ; preds = %invoke.cont4
%exn51 = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn51, 0
%lpad.val52 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val52
terminate.lpad: ; preds = %lpad2
%31 = landingpad { i8*, i32 }
catch i8* null
%32 = extractvalue { i8*, i32 } %31, 0
call void @__clang_call_terminate(i8* %32) #17
unreachable
}
declare dso_local void @_ZN18NCommandLineParser7CParser12ParseStringsEPKNS_11CSwitchFormERK13CObjectVectorI11CStringBaseIwEE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48), %"struct.NCommandLineParser::CSwitchForm"*, %class.CObjectVector* nonnull align 8 dereferenceable(32)) #4
declare dso_local i32 @__gxx_personality_v0(...)
declare dso_local i8* @__cxa_begin_catch(i8*)
; Function Attrs: mustprogress uwtable
define internal void @_ZL23ThrowUserErrorExceptionv() #5 {
entry:
%0 = load i8*, i8** @_ZL17kUserErrorMessage, align 8, !tbaa !3
call void @_ZL14ThrowExceptionPKc(i8* %0)
ret void
}
declare dso_local void @__cxa_end_catch()
; Function Attrs: noinline noreturn nounwind
define linkonce_odr hidden void @__clang_call_terminate(i8* %0) #6 comdat {
%2 = call i8* @__cxa_begin_catch(i8* %0) #3
call void @_ZSt9terminatev() #17
unreachable
}
declare dso_local void @_ZSt9terminatev()
; Function Attrs: nounwind
declare dso_local i32 @isatty(i32) #7
; Function Attrs: nounwind
declare dso_local i32 @fileno(%struct._IO_FILE*) #7
declare dso_local nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48), i64) #4
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #8
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%call = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this1, i32 0)
ret %class.CStringBase* %call
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%0 = load i32, i32* %_length, align 8, !tbaa !13
%cmp = icmp eq i32 %0, 0
ret i1 %cmp
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #8
; Function Attrs: mustprogress uwtable
define dso_local void @_ZN25CArchiveCommandLineParser6Parse2ER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #5 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8
%options.addr = alloca %struct.CArchiveCommandLineOptions*, align 8
%nonSwitchStrings = alloca %class.CObjectVector*, align 8
%numNonSwitchStrings = alloca i32, align 4
%recursedType = alloca i32, align 4
%codePage = alloca i32, align 4
%thereAreSwitchIncludes = alloca i8, align 1
%curCommandIndex = alloca i32, align 4
%thereIsArchiveName = alloca i8, align 1
%isExtractGroupCommand = alloca i8, align 1
%isExtractOrList = alloca i8, align 1
%archiveWildcardCensor = alloca %"class.NWildcard::CCensor", align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%directlyAddArchiveName = alloca i8, align 1
%ref.tmp = alloca %class.CStringBase, align 8
%ref.tmp167 = alloca %class.CStringBase, align 8
%cleanup.cond = alloca i1, align 1
%cleanup.cond170 = alloca i1, align 1
%arcName = alloca %class.CStringBase, align 8
%archivePaths = alloca %class.CObjectVector, align 8
%dirItems = alloca %class.CDirItems, align 8
%errorPaths = alloca %class.CObjectVector, align 8
%errorCodes = alloca %class.CRecordVector.6, align 8
%res = alloca i32, align 4
%i = alloca i32, align 4
%dirItem = alloca %struct.CDirItem*, align 8
%ref.tmp247 = alloca %class.CStringBase, align 8
%archivePathsFull = alloca %class.CObjectVector, align 8
%i276 = alloca i32, align 4
%fullPath = alloca %class.CStringBase, align 8
%indices = alloca %class.CRecordVector.4, align 8
%updateOptions = alloca %struct.CUpdateOptions*, align 8
%i499 = alloca i32, align 4
%postString = alloca %class.CStringBase, align 8
%pos = alloca i32, align 4
%logSize = alloca i32, align 4
%pos560 = alloca i32, align 4
%pos599 = alloca i32, align 4
%ref.tmp607 = alloca %class.CStringBase, align 8
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !3
store %struct.CArchiveCommandLineOptions* %options, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8
%0 = bitcast %class.CObjectVector** %nonSwitchStrings to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%NonSwitchStrings = getelementptr inbounds %"class.NCommandLineParser::CParser", %"class.NCommandLineParser::CParser"* %parser, i32 0, i32 2
store %class.CObjectVector* %NonSwitchStrings, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3
%1 = bitcast i32* %numNonSwitchStrings to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #3
%2 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3
%3 = bitcast %class.CObjectVector* %2 to %class.CBaseRecordVector*
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3)
store i32 %call, i32* %numNonSwitchStrings, align 4, !tbaa !15
%4 = load i32, i32* %numNonSwitchStrings, align 4, !tbaa !15
%cmp = icmp slt i32 %4, 1
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end
if.end: ; preds = %if.then, %entry
%5 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3
%call2 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %5, i32 0)
%6 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %6, i32 0, i32 11
%call3 = call zeroext i1 @_ZL19ParseArchiveCommandRK11CStringBaseIwER15CArchiveCommand(%class.CStringBase* nonnull align 8 dereferenceable(16) %call2, %struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command)
br i1 %call3, label %if.end5, label %if.then4
if.then4: ; preds = %if.end
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end5
if.end5: ; preds = %if.then4, %if.end
%parser6 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call7 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser6, i64 27)
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call7, i32 0, i32 0
%7 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33
%tobool = trunc i8 %7 to i1
%8 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%TechMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %8, i32 0, i32 15
%frombool = zext i1 %tobool to i8
store i8 %frombool, i8* %TechMode, align 8, !tbaa !39
%parser8 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call9 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser8, i64 29)
%ThereIs10 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call9, i32 0, i32 0
%9 = load i8, i8* %ThereIs10, align 8, !tbaa !31, !range !33
%tobool11 = trunc i8 %9 to i1
%10 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%CalcCrc = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %10, i32 0, i32 16
%frombool12 = zext i1 %tobool11 to i8
store i8 %frombool12, i8* %CalcCrc, align 1, !tbaa !40
%parser13 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call14 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser13, i64 28)
%ThereIs15 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call14, i32 0, i32 0
%11 = load i8, i8* %ThereIs15, align 8, !tbaa !31, !range !33
%tobool16 = trunc i8 %11 to i1
br i1 %tobool16, label %if.then17, label %if.end22
if.then17: ; preds = %if.end5
%parser18 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call19 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser18, i64 28)
%PostCharIndex = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call19, i32 0, i32 4
%12 = load i32, i32* %PostCharIndex, align 8, !tbaa !41
%cmp20 = icmp slt i32 %12, 0
%frombool21 = zext i1 %cmp20 to i8
store i8 %frombool21, i8* @g_CaseSensitive, align 1, !tbaa !42
br label %if.end22
if.end22: ; preds = %if.then17, %if.end5
%13 = bitcast i32* %recursedType to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %13) #3
%parser23 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call24 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser23, i64 18)
%ThereIs25 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call24, i32 0, i32 0
%14 = load i8, i8* %ThereIs25, align 8, !tbaa !31, !range !33
%tobool26 = trunc i8 %14 to i1
br i1 %tobool26, label %if.then27, label %if.else
if.then27: ; preds = %if.end22
%parser28 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call29 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser28, i64 18)
%PostCharIndex30 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call29, i32 0, i32 4
%15 = load i32, i32* %PostCharIndex30, align 8, !tbaa !41
%call31 = call i32 @_ZL24GetRecursedTypeFromIndexi(i32 %15)
store i32 %call31, i32* %recursedType, align 4, !tbaa !43
br label %if.end32
if.else: ; preds = %if.end22
store i32 2, i32* %recursedType, align 4, !tbaa !43
br label %if.end32
if.end32: ; preds = %if.else, %if.then27
%16 = bitcast i32* %codePage to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %16) #3
store i32 0, i32* %codePage, align 4, !tbaa !15
call void @llvm.lifetime.start.p0i8(i64 1, i8* %thereAreSwitchIncludes) #3
store i8 0, i8* %thereAreSwitchIncludes, align 1, !tbaa !42
%parser33 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call34 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser33, i64 11)
%ThereIs35 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call34, i32 0, i32 0
%17 = load i8, i8* %ThereIs35, align 8, !tbaa !31, !range !33
%tobool36 = trunc i8 %17 to i1
br i1 %tobool36, label %if.then37, label %if.end40
if.then37: ; preds = %if.end32
store i8 1, i8* %thereAreSwitchIncludes, align 1, !tbaa !42
%18 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %18, i32 0, i32 10
%parser38 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call39 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser38, i64 11)
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call39, i32 0, i32 3
%19 = load i32, i32* %recursedType, align 4, !tbaa !43
%20 = load i32, i32* %codePage, align 4, !tbaa !15
call void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings, i1 zeroext true, i32 %19, i32 %20)
br label %if.end40
if.end40: ; preds = %if.then37, %if.end32
%parser41 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call42 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser41, i64 12)
%ThereIs43 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call42, i32 0, i32 0
%21 = load i8, i8* %ThereIs43, align 8, !tbaa !31, !range !33
%tobool44 = trunc i8 %21 to i1
br i1 %tobool44, label %if.then45, label %if.end50
if.then45: ; preds = %if.end40
%22 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%WildcardCensor46 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %22, i32 0, i32 10
%parser47 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call48 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser47, i64 12)
%PostStrings49 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call48, i32 0, i32 3
%23 = load i32, i32* %recursedType, align 4, !tbaa !43
%24 = load i32, i32* %codePage, align 4, !tbaa !15
call void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor46, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings49, i1 zeroext false, i32 %23, i32 %24)
br label %if.end50
if.end50: ; preds = %if.then45, %if.end40
%25 = bitcast i32* %curCommandIndex to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %25) #3
store i32 1, i32* %curCommandIndex, align 4, !tbaa !15
call void @llvm.lifetime.start.p0i8(i64 1, i8* %thereIsArchiveName) #3
%parser51 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call52 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser51, i64 15)
%ThereIs53 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call52, i32 0, i32 0
%26 = load i8, i8* %ThereIs53, align 8, !tbaa !31, !range !33
%tobool54 = trunc i8 %26 to i1
br i1 %tobool54, label %land.end, label %land.lhs.true
land.lhs.true: ; preds = %if.end50
%27 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command55 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %27, i32 0, i32 11
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command55, i32 0, i32 0
%28 = load i32, i32* %CommandType, align 8, !tbaa !45
%cmp56 = icmp ne i32 %28, 7
br i1 %cmp56, label %land.rhs, label %land.end
land.rhs: ; preds = %land.lhs.true
%29 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command57 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %29, i32 0, i32 11
%CommandType58 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command57, i32 0, i32 0
%30 = load i32, i32* %CommandType58, align 8, !tbaa !45
%cmp59 = icmp ne i32 %30, 8
br label %land.end
land.end: ; preds = %land.rhs, %land.lhs.true, %if.end50
%31 = phi i1 [ false, %land.lhs.true ], [ false, %if.end50 ], [ %cmp59, %land.rhs ]
%frombool60 = zext i1 %31 to i8
store i8 %frombool60, i8* %thereIsArchiveName, align 1, !tbaa !42
call void @llvm.lifetime.start.p0i8(i64 1, i8* %isExtractGroupCommand) #3
%32 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command61 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %32, i32 0, i32 11
%call62 = call zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command61)
%frombool63 = zext i1 %call62 to i8
store i8 %frombool63, i8* %isExtractGroupCommand, align 1, !tbaa !42
call void @llvm.lifetime.start.p0i8(i64 1, i8* %isExtractOrList) #3
%33 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !42, !range !33
%tobool64 = trunc i8 %33 to i1
br i1 %tobool64, label %lor.end, label %lor.rhs
lor.rhs: ; preds = %land.end
%34 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command65 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %34, i32 0, i32 11
%CommandType66 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command65, i32 0, i32 0
%35 = load i32, i32* %CommandType66, align 8, !tbaa !45
%cmp67 = icmp eq i32 %35, 6
br label %lor.end
lor.end: ; preds = %lor.rhs, %land.end
%36 = phi i1 [ true, %land.end ], [ %cmp67, %lor.rhs ]
%frombool68 = zext i1 %36 to i8
store i8 %frombool68, i8* %isExtractOrList, align 1, !tbaa !42
%37 = load i8, i8* %isExtractOrList, align 1, !tbaa !42, !range !33
%tobool69 = trunc i8 %37 to i1
br i1 %tobool69, label %land.lhs.true70, label %if.end73
land.lhs.true70: ; preds = %lor.end
%38 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %38, i32 0, i32 5
%39 = load i8, i8* %StdInMode, align 1, !tbaa !34, !range !33
%tobool71 = trunc i8 %39 to i1
br i1 %tobool71, label %if.then72, label %if.end73
if.then72: ; preds = %land.lhs.true70
store i8 0, i8* %thereIsArchiveName, align 1, !tbaa !42
br label %if.end73
if.end73: ; preds = %if.then72, %land.lhs.true70, %lor.end
%40 = load i8, i8* %thereIsArchiveName, align 1, !tbaa !42, !range !33
%tobool74 = trunc i8 %40 to i1
br i1 %tobool74, label %if.then75, label %if.end85
if.then75: ; preds = %if.end73
%41 = load i32, i32* %curCommandIndex, align 4, !tbaa !15
%42 = load i32, i32* %numNonSwitchStrings, align 4, !tbaa !15
%cmp76 = icmp sge i32 %41, %42
br i1 %cmp76, label %if.then77, label %if.end78
if.then77: ; preds = %if.then75
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end78
if.end78: ; preds = %if.then77, %if.then75
%43 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3
%44 = load i32, i32* %curCommandIndex, align 4, !tbaa !15
%inc = add nsw i32 %44, 1
store i32 %inc, i32* %curCommandIndex, align 4, !tbaa !15
%call79 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %43, i32 %44)
%45 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %45, i32 0, i32 12
%call80 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName, %class.CStringBase* nonnull align 8 dereferenceable(16) %call79)
%46 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchiveName81 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %46, i32 0, i32 12
%call82 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName81)
br i1 %call82, label %if.then83, label %if.end84
if.then83: ; preds = %if.end78
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end84
if.end84: ; preds = %if.then83, %if.end78
br label %if.end85
if.end85: ; preds = %if.end84, %if.end73
%47 = load i32, i32* %curCommandIndex, align 4, !tbaa !15
%48 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%WildcardCensor86 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %48, i32 0, i32 10
%49 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3
%50 = load i32, i32* %recursedType, align 4, !tbaa !43
%51 = load i8, i8* %thereAreSwitchIncludes, align 1, !tbaa !42, !range !33
%tobool87 = trunc i8 %51 to i1
%52 = load i32, i32* %codePage, align 4, !tbaa !15
call void @_ZL33AddToCensorFromNonSwitchesStringsiRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEN13NRecursedType5EEnumEbj(i32 %47, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor86, %class.CObjectVector* nonnull align 8 dereferenceable(32) %49, i32 %50, i1 zeroext %tobool87, i32 %52)
%parser88 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call89 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser88, i64 6)
%ThereIs90 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call89, i32 0, i32 0
%53 = load i8, i8* %ThereIs90, align 8, !tbaa !31, !range !33
%tobool91 = trunc i8 %53 to i1
%54 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%YesToAll = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %54, i32 0, i32 8
%frombool92 = zext i1 %tobool91 to i8
store i8 %frombool92, i8* %YesToAll, align 8, !tbaa !46
%parser93 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call94 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser93, i64 26)
%ThereIs95 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call94, i32 0, i32 0
%55 = load i8, i8* %ThereIs95, align 8, !tbaa !31, !range !33
%tobool96 = trunc i8 %55 to i1
%lnot = xor i1 %tobool96, true
%conv = zext i1 %lnot to i32
store i32 %conv, i32* @global_use_lstat, align 4, !tbaa !15
%parser97 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call98 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser97, i64 7)
%ThereIs99 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call98, i32 0, i32 0
%56 = load i8, i8* %ThereIs99, align 8, !tbaa !31, !range !33
%tobool100 = trunc i8 %56 to i1
%57 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%PasswordEnabled = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %57, i32 0, i32 13
%frombool101 = zext i1 %tobool100 to i8
store i8 %frombool101, i8* %PasswordEnabled, align 8, !tbaa !47
%58 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%PasswordEnabled102 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %58, i32 0, i32 13
%59 = load i8, i8* %PasswordEnabled102, align 8, !tbaa !47, !range !33
%tobool103 = trunc i8 %59 to i1
br i1 %tobool103, label %if.then104, label %if.end110
if.then104: ; preds = %if.end85
%parser105 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call106 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser105, i64 7)
%PostStrings107 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call106, i32 0, i32 3
%call108 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings107, i32 0)
%60 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %60, i32 0, i32 14
%call109 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password, %class.CStringBase* nonnull align 8 dereferenceable(16) %call108)
br label %if.end110
if.end110: ; preds = %if.then104, %if.end85
%parser111 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call112 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser111, i64 24)
%ThereIs113 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call112, i32 0, i32 0
%61 = load i8, i8* %ThereIs113, align 8, !tbaa !31, !range !33
%tobool114 = trunc i8 %61 to i1
%62 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ShowDialog = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %62, i32 0, i32 9
%frombool115 = zext i1 %tobool114 to i8
store i8 %frombool115, i8* %ShowDialog, align 1, !tbaa !48
%parser116 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call117 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser116, i64 5)
%ThereIs118 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call117, i32 0, i32 0
%63 = load i8, i8* %ThereIs118, align 8, !tbaa !31, !range !33
%tobool119 = trunc i8 %63 to i1
br i1 %tobool119, label %if.then120, label %if.end126
if.then120: ; preds = %if.end110
%parser121 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call122 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser121, i64 5)
%PostStrings123 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call122, i32 0, i32 3
%call124 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings123, i32 0)
%64 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %64, i32 0, i32 24
%call125 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType, %class.CStringBase* nonnull align 8 dereferenceable(16) %call124)
br label %if.end126
if.end126: ; preds = %if.then120, %if.end110
%65 = load i8, i8* %isExtractOrList, align 1, !tbaa !42, !range !33
%tobool127 = trunc i8 %65 to i1
br i1 %tobool127, label %if.then128, label %if.else392
if.then128: ; preds = %if.end126
%66 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%WildcardCensor129 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %66, i32 0, i32 10
%call130 = call zeroext i1 @_ZNK9NWildcard7CCensor14AllAreRelativeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor129)
br i1 %call130, label %if.end132, label %if.then131
if.then131: ; preds = %if.then128
call void @_ZL14ThrowExceptionPKc(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.4, i64 0, i64 0))
br label %if.end132
if.end132: ; preds = %if.then131, %if.then128
%67 = bitcast %"class.NWildcard::CCensor"* %archiveWildcardCensor to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %67) #3
call void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor)
%parser133 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call134 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser133, i64 13)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.end132
%ThereIs135 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call134, i32 0, i32 0
%68 = load i8, i8* %ThereIs135, align 8, !tbaa !31, !range !33
%tobool136 = trunc i8 %68 to i1
br i1 %tobool136, label %if.then137, label %if.end143
if.then137: ; preds = %invoke.cont
%parser138 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call140 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser138, i64 13)
to label %invoke.cont139 unwind label %lpad
invoke.cont139: ; preds = %if.then137
%PostStrings141 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call140, i32 0, i32 3
%69 = load i32, i32* %codePage, align 4, !tbaa !15
invoke void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings141, i1 zeroext true, i32 2, i32 %69)
to label %invoke.cont142 unwind label %lpad
invoke.cont142: ; preds = %invoke.cont139
br label %if.end143
lpad: ; preds = %invoke.cont151, %if.then149, %if.end143, %invoke.cont139, %if.then137, %if.end132
%70 = landingpad { i8*, i32 }
cleanup
%71 = extractvalue { i8*, i32 } %70, 0
store i8* %71, i8** %exn.slot, align 8
%72 = extractvalue { i8*, i32 } %70, 1
store i32 %72, i32* %ehselector.slot, align 4
br label %ehcleanup390
if.end143: ; preds = %invoke.cont142, %invoke.cont
%parser144 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call146 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser144, i64 14)
to label %invoke.cont145 unwind label %lpad
invoke.cont145: ; preds = %if.end143
%ThereIs147 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call146, i32 0, i32 0
%73 = load i8, i8* %ThereIs147, align 8, !tbaa !31, !range !33
%tobool148 = trunc i8 %73 to i1
br i1 %tobool148, label %if.then149, label %if.end155
if.then149: ; preds = %invoke.cont145
%parser150 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call152 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser150, i64 14)
to label %invoke.cont151 unwind label %lpad
invoke.cont151: ; preds = %if.then149
%PostStrings153 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call152, i32 0, i32 3
%74 = load i32, i32* %codePage, align 4, !tbaa !15
invoke void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings153, i1 zeroext false, i32 2, i32 %74)
to label %invoke.cont154 unwind label %lpad
invoke.cont154: ; preds = %invoke.cont151
br label %if.end155
if.end155: ; preds = %invoke.cont154, %invoke.cont145
call void @llvm.lifetime.start.p0i8(i64 1, i8* %directlyAddArchiveName) #3
store i8 0, i8* %directlyAddArchiveName, align 1, !tbaa !42
%75 = load i8, i8* %thereIsArchiveName, align 1, !tbaa !42, !range !33
%tobool156 = trunc i8 %75 to i1
br i1 %tobool156, label %if.then157, label %if.end193
if.then157: ; preds = %if.end155
%76 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchiveName158 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %76, i32 0, i32 12
%77 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %77) #3
%78 = load i32*, i32** @_ZL18kUniversalWildcard, align 8, !tbaa !3
store i1 false, i1* %cleanup.cond, align 1
store i1 false, i1* %cleanup.cond170, align 1
invoke void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32* %78)
to label %invoke.cont160 unwind label %lpad159
invoke.cont160: ; preds = %if.then157
%call163 = invoke i32 @_ZNK11CStringBaseIwE4FindERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName158, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp)
to label %invoke.cont162 unwind label %lpad161
invoke.cont162: ; preds = %invoke.cont160
%cmp164 = icmp eq i32 %call163, -1
br i1 %cmp164, label %land.rhs165, label %land.end175
land.rhs165: ; preds = %invoke.cont162
%79 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchiveName166 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %79, i32 0, i32 12
%80 = bitcast %class.CStringBase* %ref.tmp167 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %80) #3
store i1 true, i1* %cleanup.cond, align 1
invoke void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.5, i64 0, i64 0))
to label %invoke.cont169 unwind label %lpad168
invoke.cont169: ; preds = %land.rhs165
store i1 true, i1* %cleanup.cond170, align 1
%call173 = invoke i32 @_ZNK11CStringBaseIwE4FindERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName166, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167)
to label %invoke.cont172 unwind label %lpad171
invoke.cont172: ; preds = %invoke.cont169
%cmp174 = icmp eq i32 %call173, -1
br label %land.end175
land.end175: ; preds = %invoke.cont172, %invoke.cont162
%81 = phi i1 [ false, %invoke.cont162 ], [ %cmp174, %invoke.cont172 ]
%cleanup.is_active = load i1, i1* %cleanup.cond170, align 1
br i1 %cleanup.is_active, label %cleanup.action, label %cleanup.done
cleanup.action: ; preds = %land.end175
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167) #3
br label %cleanup.done
cleanup.done: ; preds = %cleanup.action, %land.end175
%cleanup.is_active179 = load i1, i1* %cleanup.cond, align 1
br i1 %cleanup.is_active179, label %cleanup.action180, label %cleanup.done181
cleanup.action180: ; preds = %cleanup.done
%82 = bitcast %class.CStringBase* %ref.tmp167 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %82) #3
br label %cleanup.done181
cleanup.done181: ; preds = %cleanup.action180, %cleanup.done
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%83 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %83) #3
br i1 %81, label %if.then187, label %if.else188
if.then187: ; preds = %cleanup.done181
store i8 1, i8* %directlyAddArchiveName, align 1, !tbaa !42
br label %if.end192
lpad159: ; preds = %if.then157
%84 = landingpad { i8*, i32 }
cleanup
%85 = extractvalue { i8*, i32 } %84, 0
store i8* %85, i8** %exn.slot, align 8
%86 = extractvalue { i8*, i32 } %84, 1
store i32 %86, i32* %ehselector.slot, align 4
br label %ehcleanup186
lpad161: ; preds = %invoke.cont160
%87 = landingpad { i8*, i32 }
cleanup
%88 = extractvalue { i8*, i32 } %87, 0
store i8* %88, i8** %exn.slot, align 8
%89 = extractvalue { i8*, i32 } %87, 1
store i32 %89, i32* %ehselector.slot, align 4
br label %ehcleanup185
lpad168: ; preds = %land.rhs165
%90 = landingpad { i8*, i32 }
cleanup
%91 = extractvalue { i8*, i32 } %90, 0
store i8* %91, i8** %exn.slot, align 8
%92 = extractvalue { i8*, i32 } %90, 1
store i32 %92, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad171: ; preds = %invoke.cont169
%93 = landingpad { i8*, i32 }
cleanup
%94 = extractvalue { i8*, i32 } %93, 0
store i8* %94, i8** %exn.slot, align 8
%95 = extractvalue { i8*, i32 } %93, 1
store i32 %95, i32* %ehselector.slot, align 4
%cleanup.is_active176 = load i1, i1* %cleanup.cond170, align 1
br i1 %cleanup.is_active176, label %cleanup.action177, label %cleanup.done178
cleanup.action177: ; preds = %lpad171
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167) #3
br label %cleanup.done178
cleanup.done178: ; preds = %cleanup.action177, %lpad171
br label %ehcleanup
ehcleanup: ; preds = %cleanup.done178, %lpad168
%cleanup.is_active182 = load i1, i1* %cleanup.cond, align 1
br i1 %cleanup.is_active182, label %cleanup.action183, label %cleanup.done184
cleanup.action183: ; preds = %ehcleanup
%96 = bitcast %class.CStringBase* %ref.tmp167 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %96) #3
br label %cleanup.done184
cleanup.done184: ; preds = %cleanup.action183, %ehcleanup
br label %ehcleanup185
ehcleanup185: ; preds = %cleanup.done184, %lpad161
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
br label %ehcleanup186
ehcleanup186: ; preds = %ehcleanup185, %lpad159
%97 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %97) #3
br label %ehcleanup389
if.else188: ; preds = %cleanup.done181
%98 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchiveName189 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %98, i32 0, i32 12
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName189, i1 zeroext true, i32 2)
to label %invoke.cont191 unwind label %lpad190
invoke.cont191: ; preds = %if.else188
br label %if.end192
lpad190: ; preds = %if.then375, %if.end369, %invoke.cont365, %invoke.cont363, %invoke.cont360, %if.then358, %if.end352, %if.then350, %if.then342, %if.end193, %if.else188
%99 = landingpad { i8*, i32 }
cleanup
%100 = extractvalue { i8*, i32 } %99, 0
store i8* %100, i8** %exn.slot, align 8
%101 = extractvalue { i8*, i32 } %99, 1
store i32 %101, i32* %ehselector.slot, align 4
br label %ehcleanup389
if.end192: ; preds = %invoke.cont191, %if.then187
br label %if.end193
if.end193: ; preds = %if.end192, %if.end155
invoke void @_ZN9NWildcard7CCensor13ExtendExcludeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor)
to label %invoke.cont194 unwind label %lpad190
invoke.cont194: ; preds = %if.end193
%102 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdInMode195 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %102, i32 0, i32 5
%103 = load i8, i8* %StdInMode195, align 1, !tbaa !34, !range !33
%tobool196 = trunc i8 %103 to i1
br i1 %tobool196, label %if.then197, label %if.else213
if.then197: ; preds = %invoke.cont194
%104 = bitcast %class.CStringBase* %arcName to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %104) #3
%parser198 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call201 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser198, i64 20)
to label %invoke.cont200 unwind label %lpad199
invoke.cont200: ; preds = %if.then197
%PostStrings202 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call201, i32 0, i32 3
%call204 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings202)
to label %invoke.cont203 unwind label %lpad199
invoke.cont203: ; preds = %invoke.cont200
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %arcName, %class.CStringBase* nonnull align 8 dereferenceable(16) %call204)
to label %invoke.cont205 unwind label %lpad199
invoke.cont205: ; preds = %invoke.cont203
%105 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %105, i32 0, i32 20
%call208 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted, %class.CStringBase* nonnull align 8 dereferenceable(16) %arcName)
to label %invoke.cont207 unwind label %lpad206
invoke.cont207: ; preds = %invoke.cont205
%106 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %106, i32 0, i32 21
%call210 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted, %class.CStringBase* nonnull align 8 dereferenceable(16) %arcName)
to label %invoke.cont209 unwind label %lpad206
invoke.cont209: ; preds = %invoke.cont207
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %arcName) #3
%107 = bitcast %class.CStringBase* %arcName to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %107) #3
br label %if.end340
lpad199: ; preds = %invoke.cont203, %invoke.cont200, %if.then197
%108 = landingpad { i8*, i32 }
cleanup
%109 = extractvalue { i8*, i32 } %108, 0
store i8* %109, i8** %exn.slot, align 8
%110 = extractvalue { i8*, i32 } %108, 1
store i32 %110, i32* %ehselector.slot, align 4
br label %ehcleanup212
lpad206: ; preds = %invoke.cont207, %invoke.cont205
%111 = landingpad { i8*, i32 }
cleanup
%112 = extractvalue { i8*, i32 } %111, 0
store i8* %112, i8** %exn.slot, align 8
%113 = extractvalue { i8*, i32 } %111, 1
store i32 %113, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %arcName) #3
br label %ehcleanup212
ehcleanup212: ; preds = %lpad206, %lpad199
%114 = bitcast %class.CStringBase* %arcName to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %114) #3
br label %ehcleanup389
if.else213: ; preds = %invoke.cont194
%115 = bitcast %class.CObjectVector* %archivePaths to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %115) #3
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths)
to label %invoke.cont215 unwind label %lpad214
invoke.cont215: ; preds = %if.else213
%116 = bitcast %class.CDirItems* %dirItems to i8*
call void @llvm.lifetime.start.p0i8(i64 128, i8* %116) #3
invoke void @_ZN9CDirItemsC2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems)
to label %invoke.cont217 unwind label %lpad216
invoke.cont217: ; preds = %invoke.cont215
%117 = bitcast %class.CObjectVector* %errorPaths to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %117) #3
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths)
to label %invoke.cont219 unwind label %lpad218
invoke.cont219: ; preds = %invoke.cont217
%118 = bitcast %class.CRecordVector.6* %errorCodes to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %118) #3
invoke void @_ZN13CRecordVectorIjEC2Ev(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes)
to label %invoke.cont221 unwind label %lpad220
invoke.cont221: ; preds = %invoke.cont219
%119 = bitcast i32* %res to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %119) #3
%call224 = invoke i32 @_Z14EnumerateItemsRKN9NWildcard7CCensorER9CDirItemsP20IEnumDirItemCallbackR13CObjectVectorI11CStringBaseIwEER13CRecordVectorIjE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems, %struct.IEnumDirItemCallback* null, %class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths, %class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes)
to label %invoke.cont223 unwind label %lpad222
invoke.cont223: ; preds = %invoke.cont221
store i32 %call224, i32* %res, align 4, !tbaa !15
%120 = load i32, i32* %res, align 4, !tbaa !15
%cmp225 = icmp ne i32 %120, 0
br i1 %cmp225, label %if.then229, label %lor.lhs.false
lor.lhs.false: ; preds = %invoke.cont223
%121 = bitcast %class.CObjectVector* %errorPaths to %class.CBaseRecordVector*
%call227 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %121)
to label %invoke.cont226 unwind label %lpad222
invoke.cont226: ; preds = %lor.lhs.false
%cmp228 = icmp sgt i32 %call227, 0
br i1 %cmp228, label %if.then229, label %if.end230
if.then229: ; preds = %invoke.cont226, %invoke.cont223
%exception = call i8* @__cxa_allocate_exception(i64 8) #3
%122 = bitcast i8* %exception to i8**
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.6, i64 0, i64 0), i8** %122, align 16, !tbaa !3
invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad222
lpad214: ; preds = %if.else213
%123 = landingpad { i8*, i32 }
cleanup
%124 = extractvalue { i8*, i32 } %123, 0
store i8* %124, i8** %exn.slot, align 8
%125 = extractvalue { i8*, i32 } %123, 1
store i32 %125, i32* %ehselector.slot, align 4
br label %ehcleanup339
lpad216: ; preds = %invoke.cont215
%126 = landingpad { i8*, i32 }
cleanup
%127 = extractvalue { i8*, i32 } %126, 0
store i8* %127, i8** %exn.slot, align 8
%128 = extractvalue { i8*, i32 } %126, 1
store i32 %128, i32* %ehselector.slot, align 4
br label %ehcleanup260
lpad218: ; preds = %invoke.cont217
%129 = landingpad { i8*, i32 }
cleanup
%130 = extractvalue { i8*, i32 } %129, 0
store i8* %130, i8** %exn.slot, align 8
%131 = extractvalue { i8*, i32 } %129, 1
store i32 %131, i32* %ehselector.slot, align 4
br label %ehcleanup235
lpad220: ; preds = %invoke.cont219
%132 = landingpad { i8*, i32 }
cleanup
%133 = extractvalue { i8*, i32 } %132, 0
store i8* %133, i8** %exn.slot, align 8
%134 = extractvalue { i8*, i32 } %132, 1
store i32 %134, i32* %ehselector.slot, align 4
br label %ehcleanup233
lpad222: ; preds = %if.then229, %lor.lhs.false, %invoke.cont221
%135 = landingpad { i8*, i32 }
cleanup
%136 = extractvalue { i8*, i32 } %135, 0
store i8* %136, i8** %exn.slot, align 8
%137 = extractvalue { i8*, i32 } %135, 1
store i32 %137, i32* %ehselector.slot, align 4
%138 = bitcast i32* %res to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %138) #3
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.6*)*)(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes) #3
br label %ehcleanup233
if.end230: ; preds = %invoke.cont226
%139 = bitcast i32* %res to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %139) #3
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.6*)*)(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes) #3
%140 = bitcast %class.CRecordVector.6* %errorCodes to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %140) #3
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths) #3
%141 = bitcast %class.CObjectVector* %errorPaths to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %141) #3
%142 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %142) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %if.end230
%143 = load i32, i32* %i, align 4, !tbaa !15
%Items = getelementptr inbounds %class.CDirItems, %class.CDirItems* %dirItems, i32 0, i32 3
%144 = bitcast %class.CObjectVector.5* %Items to %class.CBaseRecordVector*
%call238 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %144)
to label %invoke.cont237 unwind label %lpad236
invoke.cont237: ; preds = %for.cond
%cmp239 = icmp slt i32 %143, %call238
br i1 %cmp239, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %invoke.cont237
%145 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %145) #3
br label %for.end
ehcleanup233: ; preds = %lpad222, %lpad220
%146 = bitcast %class.CRecordVector.6* %errorCodes to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %146) #3
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths) #3
br label %ehcleanup235
ehcleanup235: ; preds = %ehcleanup233, %lpad218
%147 = bitcast %class.CObjectVector* %errorPaths to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %147) #3
br label %ehcleanup259
lpad236: ; preds = %for.cond
%148 = landingpad { i8*, i32 }
cleanup
%149 = extractvalue { i8*, i32 } %148, 0
store i8* %149, i8** %exn.slot, align 8
%150 = extractvalue { i8*, i32 } %148, 1
store i32 %150, i32* %ehselector.slot, align 4
br label %ehcleanup258
for.body: ; preds = %invoke.cont237
%151 = bitcast %struct.CDirItem** %dirItem to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %151) #3
%Items240 = getelementptr inbounds %class.CDirItems, %class.CDirItems* %dirItems, i32 0, i32 3
%152 = load i32, i32* %i, align 4, !tbaa !15
%call243 = invoke nonnull align 8 dereferenceable(60) %struct.CDirItem* @_ZN13CObjectVectorI8CDirItemEixEi(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %Items240, i32 %152)
to label %invoke.cont242 unwind label %lpad241
invoke.cont242: ; preds = %for.body
store %struct.CDirItem* %call243, %struct.CDirItem** %dirItem, align 8, !tbaa !3
%153 = load %struct.CDirItem*, %struct.CDirItem** %dirItem, align 8, !tbaa !3
%call245 = invoke zeroext i1 @_ZNK8CDirItem5IsDirEv(%struct.CDirItem* nonnull align 8 dereferenceable(60) %153)
to label %invoke.cont244 unwind label %lpad241
invoke.cont244: ; preds = %invoke.cont242
br i1 %call245, label %if.end255, label %if.then246
if.then246: ; preds = %invoke.cont244
%154 = bitcast %class.CStringBase* %ref.tmp247 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %154) #3
%155 = load i32, i32* %i, align 4, !tbaa !15
invoke void @_ZNK9CDirItems10GetPhyPathEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp247, %class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems, i32 %155)
to label %invoke.cont249 unwind label %lpad248
invoke.cont249: ; preds = %if.then246
%call252 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp247)
to label %invoke.cont251 unwind label %lpad250
invoke.cont251: ; preds = %invoke.cont249
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp247) #3
%156 = bitcast %class.CStringBase* %ref.tmp247 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %156) #3
br label %if.end255
lpad241: ; preds = %invoke.cont242, %for.body
%157 = landingpad { i8*, i32 }
cleanup
%158 = extractvalue { i8*, i32 } %157, 0
store i8* %158, i8** %exn.slot, align 8
%159 = extractvalue { i8*, i32 } %157, 1
store i32 %159, i32* %ehselector.slot, align 4
br label %ehcleanup256
lpad248: ; preds = %if.then246
%160 = landingpad { i8*, i32 }
cleanup
%161 = extractvalue { i8*, i32 } %160, 0
store i8* %161, i8** %exn.slot, align 8
%162 = extractvalue { i8*, i32 } %160, 1
store i32 %162, i32* %ehselector.slot, align 4
br label %ehcleanup254
lpad250: ; preds = %invoke.cont249
%163 = landingpad { i8*, i32 }
cleanup
%164 = extractvalue { i8*, i32 } %163, 0
store i8* %164, i8** %exn.slot, align 8
%165 = extractvalue { i8*, i32 } %163, 1
store i32 %165, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp247) #3
br label %ehcleanup254
ehcleanup254: ; preds = %lpad250, %lpad248
%166 = bitcast %class.CStringBase* %ref.tmp247 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %166) #3
br label %ehcleanup256
if.end255: ; preds = %invoke.cont251, %invoke.cont244
%167 = bitcast %struct.CDirItem** %dirItem to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %167) #3
br label %for.inc
for.inc: ; preds = %if.end255
%168 = load i32, i32* %i, align 4, !tbaa !15
%inc257 = add nsw i32 %168, 1
store i32 %inc257, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !49
ehcleanup256: ; preds = %ehcleanup254, %lpad241
%169 = bitcast %struct.CDirItem** %dirItem to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %169) #3
br label %ehcleanup258
ehcleanup258: ; preds = %ehcleanup256, %lpad236
%170 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %170) #3
br label %ehcleanup259
for.end: ; preds = %for.cond.cleanup
call void @_ZN9CDirItemsD2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems) #3
%171 = bitcast %class.CDirItems* %dirItems to i8*
call void @llvm.lifetime.end.p0i8(i64 128, i8* %171) #3
%172 = load i8, i8* %directlyAddArchiveName, align 1, !tbaa !42, !range !33
%tobool261 = trunc i8 %172 to i1
br i1 %tobool261, label %if.then262, label %if.end267
if.then262: ; preds = %for.end
%173 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchiveName263 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %173, i32 0, i32 12
%call266 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName263)
to label %invoke.cont265 unwind label %lpad264
invoke.cont265: ; preds = %if.then262
br label %if.end267
ehcleanup259: ; preds = %ehcleanup258, %ehcleanup235
call void @_ZN9CDirItemsD2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems) #3
br label %ehcleanup260
ehcleanup260: ; preds = %ehcleanup259, %lpad216
%174 = bitcast %class.CDirItems* %dirItems to i8*
call void @llvm.lifetime.end.p0i8(i64 128, i8* %174) #3
br label %ehcleanup338
lpad264: ; preds = %if.then271, %if.end267, %if.then262
%175 = landingpad { i8*, i32 }
cleanup
%176 = extractvalue { i8*, i32 } %175, 0
store i8* %176, i8** %exn.slot, align 8
%177 = extractvalue { i8*, i32 } %175, 1
store i32 %177, i32* %ehselector.slot, align 4
br label %ehcleanup338
if.end267: ; preds = %invoke.cont265, %for.end
%178 = bitcast %class.CObjectVector* %archivePaths to %class.CBaseRecordVector*
%call269 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %178)
to label %invoke.cont268 unwind label %lpad264
invoke.cont268: ; preds = %if.end267
%cmp270 = icmp eq i32 %call269, 0
br i1 %cmp270, label %if.then271, label %if.end273
if.then271: ; preds = %invoke.cont268
%exception272 = call i8* @__cxa_allocate_exception(i64 8) #3
%179 = bitcast i8* %exception272 to i8**
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.7, i64 0, i64 0), i8** %179, align 16, !tbaa !3
invoke void @__cxa_throw(i8* %exception272, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad264
if.end273: ; preds = %invoke.cont268
%180 = bitcast %class.CObjectVector* %archivePathsFull to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %180) #3
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull)
to label %invoke.cont275 unwind label %lpad274
invoke.cont275: ; preds = %if.end273
%181 = bitcast i32* %i276 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %181) #3
store i32 0, i32* %i276, align 4, !tbaa !15
br label %for.cond277
for.cond277: ; preds = %for.inc296, %invoke.cont275
%182 = load i32, i32* %i276, align 4, !tbaa !15
%183 = bitcast %class.CObjectVector* %archivePaths to %class.CBaseRecordVector*
%call280 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %183)
to label %invoke.cont279 unwind label %lpad278
invoke.cont279: ; preds = %for.cond277
%cmp281 = icmp slt i32 %182, %call280
br i1 %cmp281, label %for.body282, label %for.end298
for.body282: ; preds = %invoke.cont279
%184 = bitcast %class.CStringBase* %fullPath to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %184) #3
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath)
to label %invoke.cont284 unwind label %lpad283
invoke.cont284: ; preds = %for.body282
%185 = load i32, i32* %i276, align 4, !tbaa !15
%call287 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, i32 %185)
to label %invoke.cont286 unwind label %lpad285
invoke.cont286: ; preds = %invoke.cont284
%call289 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call287)
to label %invoke.cont288 unwind label %lpad285
invoke.cont288: ; preds = %invoke.cont286
%call291 = invoke zeroext i1 @_ZN8NWindows5NFile10NDirectory17MyGetFullPathNameEPKwR11CStringBaseIwE(i32* %call289, %class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath)
to label %invoke.cont290 unwind label %lpad285
invoke.cont290: ; preds = %invoke.cont288
%call293 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull, %class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath)
to label %invoke.cont292 unwind label %lpad285
invoke.cont292: ; preds = %invoke.cont290
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) #3
%186 = bitcast %class.CStringBase* %fullPath to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %186) #3
br label %for.inc296
for.inc296: ; preds = %invoke.cont292
%187 = load i32, i32* %i276, align 4, !tbaa !15
%inc297 = add nsw i32 %187, 1
store i32 %inc297, i32* %i276, align 4, !tbaa !15
br label %for.cond277, !llvm.loop !51
lpad274: ; preds = %if.end273
%188 = landingpad { i8*, i32 }
cleanup
%189 = extractvalue { i8*, i32 } %188, 0
store i8* %189, i8** %exn.slot, align 8
%190 = extractvalue { i8*, i32 } %188, 1
store i32 %190, i32* %ehselector.slot, align 4
br label %ehcleanup337
lpad278: ; preds = %for.cond277
%191 = landingpad { i8*, i32 }
cleanup
%192 = extractvalue { i8*, i32 } %191, 0
store i8* %192, i8** %exn.slot, align 8
%193 = extractvalue { i8*, i32 } %191, 1
store i32 %193, i32* %ehselector.slot, align 4
br label %ehcleanup335
lpad283: ; preds = %for.body282
%194 = landingpad { i8*, i32 }
cleanup
%195 = extractvalue { i8*, i32 } %194, 0
store i8* %195, i8** %exn.slot, align 8
%196 = extractvalue { i8*, i32 } %194, 1
store i32 %196, i32* %ehselector.slot, align 4
br label %ehcleanup295
lpad285: ; preds = %invoke.cont290, %invoke.cont288, %invoke.cont286, %invoke.cont284
%197 = landingpad { i8*, i32 }
cleanup
%198 = extractvalue { i8*, i32 } %197, 0
store i8* %198, i8** %exn.slot, align 8
%199 = extractvalue { i8*, i32 } %197, 1
store i32 %199, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) #3
br label %ehcleanup295
ehcleanup295: ; preds = %lpad285, %lpad283
%200 = bitcast %class.CStringBase* %fullPath to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %200) #3
br label %ehcleanup335
for.end298: ; preds = %invoke.cont279
%201 = bitcast %class.CRecordVector.4* %indices to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %201) #3
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices)
to label %invoke.cont300 unwind label %lpad299
invoke.cont300: ; preds = %for.end298
invoke void @_Z13SortFileNamesRK13CObjectVectorI11CStringBaseIwEER13CRecordVectorIiE(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull, %class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices)
to label %invoke.cont302 unwind label %lpad301
invoke.cont302: ; preds = %invoke.cont300
%202 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchivePathsSorted303 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %202, i32 0, i32 20
%203 = bitcast %class.CObjectVector* %ArchivePathsSorted303 to %class.CBaseRecordVector*
%204 = bitcast %class.CRecordVector.4* %indices to %class.CBaseRecordVector*
%call305 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %204)
to label %invoke.cont304 unwind label %lpad301
invoke.cont304: ; preds = %invoke.cont302
invoke void @_ZN17CBaseRecordVector7ReserveEi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %203, i32 %call305)
to label %invoke.cont306 unwind label %lpad301
invoke.cont306: ; preds = %invoke.cont304
%205 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchivePathsFullSorted307 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %205, i32 0, i32 21
%206 = bitcast %class.CObjectVector* %ArchivePathsFullSorted307 to %class.CBaseRecordVector*
%207 = bitcast %class.CRecordVector.4* %indices to %class.CBaseRecordVector*
%call309 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %207)
to label %invoke.cont308 unwind label %lpad301
invoke.cont308: ; preds = %invoke.cont306
invoke void @_ZN17CBaseRecordVector7ReserveEi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %206, i32 %call309)
to label %invoke.cont310 unwind label %lpad301
invoke.cont310: ; preds = %invoke.cont308
store i32 0, i32* %i276, align 4, !tbaa !15
br label %for.cond311
for.cond311: ; preds = %for.inc330, %invoke.cont310
%208 = load i32, i32* %i276, align 4, !tbaa !15
%209 = bitcast %class.CRecordVector.4* %indices to %class.CBaseRecordVector*
%call313 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %209)
to label %invoke.cont312 unwind label %lpad301
invoke.cont312: ; preds = %for.cond311
%cmp314 = icmp slt i32 %208, %call313
br i1 %cmp314, label %for.body315, label %for.end332
for.body315: ; preds = %invoke.cont312
%210 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchivePathsSorted316 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %210, i32 0, i32 20
%211 = load i32, i32* %i276, align 4, !tbaa !15
%call318 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices, i32 %211)
to label %invoke.cont317 unwind label %lpad301
invoke.cont317: ; preds = %for.body315
%212 = load i32, i32* %call318, align 4, !tbaa !15
%call320 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, i32 %212)
to label %invoke.cont319 unwind label %lpad301
invoke.cont319: ; preds = %invoke.cont317
%call322 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted316, %class.CStringBase* nonnull align 8 dereferenceable(16) %call320)
to label %invoke.cont321 unwind label %lpad301
invoke.cont321: ; preds = %invoke.cont319
%213 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ArchivePathsFullSorted323 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %213, i32 0, i32 21
%214 = load i32, i32* %i276, align 4, !tbaa !15
%call325 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices, i32 %214)
to label %invoke.cont324 unwind label %lpad301
invoke.cont324: ; preds = %invoke.cont321
%215 = load i32, i32* %call325, align 4, !tbaa !15
%call327 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull, i32 %215)
to label %invoke.cont326 unwind label %lpad301
invoke.cont326: ; preds = %invoke.cont324
%call329 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted323, %class.CStringBase* nonnull align 8 dereferenceable(16) %call327)
to label %invoke.cont328 unwind label %lpad301
invoke.cont328: ; preds = %invoke.cont326
br label %for.inc330
for.inc330: ; preds = %invoke.cont328
%216 = load i32, i32* %i276, align 4, !tbaa !15
%inc331 = add nsw i32 %216, 1
store i32 %inc331, i32* %i276, align 4, !tbaa !15
br label %for.cond311, !llvm.loop !52
lpad299: ; preds = %for.end298
%217 = landingpad { i8*, i32 }
cleanup
%218 = extractvalue { i8*, i32 } %217, 0
store i8* %218, i8** %exn.slot, align 8
%219 = extractvalue { i8*, i32 } %217, 1
store i32 %219, i32* %ehselector.slot, align 4
br label %ehcleanup334
lpad301: ; preds = %invoke.cont326, %invoke.cont324, %invoke.cont321, %invoke.cont319, %invoke.cont317, %for.body315, %for.cond311, %invoke.cont308, %invoke.cont306, %invoke.cont304, %invoke.cont302, %invoke.cont300
%220 = landingpad { i8*, i32 }
cleanup
%221 = extractvalue { i8*, i32 } %220, 0
store i8* %221, i8** %exn.slot, align 8
%222 = extractvalue { i8*, i32 } %220, 1
store i32 %222, i32* %ehselector.slot, align 4
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices) #3
br label %ehcleanup334
for.end332: ; preds = %invoke.cont312
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices) #3
%223 = bitcast %class.CRecordVector.4* %indices to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %223) #3
%224 = bitcast i32* %i276 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %224) #3
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull) #3
%225 = bitcast %class.CObjectVector* %archivePathsFull to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %225) #3
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths) #3
%226 = bitcast %class.CObjectVector* %archivePaths to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %226) #3
br label %if.end340
ehcleanup334: ; preds = %lpad301, %lpad299
%227 = bitcast %class.CRecordVector.4* %indices to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %227) #3
br label %ehcleanup335
ehcleanup335: ; preds = %ehcleanup334, %ehcleanup295, %lpad278
%228 = bitcast i32* %i276 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %228) #3
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull) #3
br label %ehcleanup337
ehcleanup337: ; preds = %ehcleanup335, %lpad274
%229 = bitcast %class.CObjectVector* %archivePathsFull to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %229) #3
br label %ehcleanup338
ehcleanup338: ; preds = %ehcleanup337, %lpad264, %ehcleanup260
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths) #3
br label %ehcleanup339
ehcleanup339: ; preds = %ehcleanup338, %lpad214
%230 = bitcast %class.CObjectVector* %archivePaths to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %230) #3
br label %ehcleanup389
if.end340: ; preds = %for.end332, %invoke.cont209
%231 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !42, !range !33
%tobool341 = trunc i8 %231 to i1
br i1 %tobool341, label %if.then342, label %if.end388
if.then342: ; preds = %if.end340
%parser343 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%232 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %232, i32 0, i32 22
invoke void @_ZL16SetMethodOptionsRKN18NCommandLineParser7CParserER13CObjectVectorI9CPropertyE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser343, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties)
to label %invoke.cont344 unwind label %lpad190
invoke.cont344: ; preds = %if.then342
%233 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %233, i32 0, i32 6
%234 = load i8, i8* %StdOutMode, align 2, !tbaa !35, !range !33
%tobool345 = trunc i8 %234 to i1
br i1 %tobool345, label %land.lhs.true346, label %if.end352
land.lhs.true346: ; preds = %invoke.cont344
%235 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdOutTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %235, i32 0, i32 3
%236 = load i8, i8* %IsStdOutTerminal, align 1, !tbaa !29, !range !33
%tobool347 = trunc i8 %236 to i1
br i1 %tobool347, label %land.lhs.true348, label %if.end352
land.lhs.true348: ; preds = %land.lhs.true346
%237 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdErrTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %237, i32 0, i32 4
%238 = load i8, i8* %IsStdErrTerminal, align 4, !tbaa !30, !range !33
%tobool349 = trunc i8 %238 to i1
br i1 %tobool349, label %if.then350, label %if.end352
if.then350: ; preds = %land.lhs.true348
%exception351 = call i8* @__cxa_allocate_exception(i64 8) #3
%239 = bitcast i8* %exception351 to i8**
%240 = load i8*, i8** @_ZL18kSameTerminalError, align 8, !tbaa !3
store i8* %240, i8** %239, align 16, !tbaa !3
invoke void @__cxa_throw(i8* %exception351, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad190
if.end352: ; preds = %land.lhs.true348, %land.lhs.true346, %invoke.cont344
%parser353 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call355 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser353, i64 9)
to label %invoke.cont354 unwind label %lpad190
invoke.cont354: ; preds = %if.end352
%ThereIs356 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call355, i32 0, i32 0
%241 = load i8, i8* %ThereIs356, align 8, !tbaa !31, !range !33
%tobool357 = trunc i8 %241 to i1
br i1 %tobool357, label %if.then358, label %if.end369
if.then358: ; preds = %invoke.cont354
%parser359 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call361 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser359, i64 9)
to label %invoke.cont360 unwind label %lpad190
invoke.cont360: ; preds = %if.then358
%PostStrings362 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call361, i32 0, i32 3
%call364 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings362, i32 0)
to label %invoke.cont363 unwind label %lpad190
invoke.cont363: ; preds = %invoke.cont360
%242 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %242, i32 0, i32 18
%call366 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir, %class.CStringBase* nonnull align 8 dereferenceable(16) %call364)
to label %invoke.cont365 unwind label %lpad190
invoke.cont365: ; preds = %invoke.cont363
%243 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%OutputDir367 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %243, i32 0, i32 18
invoke void @_ZN8NWindows5NFile5NName22NormalizeDirPathPrefixER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir367)
to label %invoke.cont368 unwind label %lpad190
invoke.cont368: ; preds = %invoke.cont365
br label %if.end369
if.end369: ; preds = %invoke.cont368, %invoke.cont354
%244 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%OverwriteMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %244, i32 0, i32 19
store i32 0, i32* %OverwriteMode, align 8, !tbaa !53
%parser370 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call372 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser370, i64 22)
to label %invoke.cont371 unwind label %lpad190
invoke.cont371: ; preds = %if.end369
%ThereIs373 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call372, i32 0, i32 0
%245 = load i8, i8* %ThereIs373, align 8, !tbaa !31, !range !33
%tobool374 = trunc i8 %245 to i1
br i1 %tobool374, label %if.then375, label %if.else381
if.then375: ; preds = %invoke.cont371
%parser376 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call378 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser376, i64 22)
to label %invoke.cont377 unwind label %lpad190
invoke.cont377: ; preds = %if.then375
%PostCharIndex379 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call378, i32 0, i32 4
%246 = load i32, i32* %PostCharIndex379, align 8, !tbaa !41
%idxprom = sext i32 %246 to i64
%arrayidx = getelementptr inbounds [4 x i32], [4 x i32]* @k_OverwriteModes, i64 0, i64 %idxprom
%247 = load i32, i32* %arrayidx, align 4, !tbaa !54
%248 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%OverwriteMode380 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %248, i32 0, i32 19
store i32 %247, i32* %OverwriteMode380, align 8, !tbaa !53
br label %if.end387
if.else381: ; preds = %invoke.cont371
%249 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%YesToAll382 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %249, i32 0, i32 8
%250 = load i8, i8* %YesToAll382, align 8, !tbaa !46, !range !33
%tobool383 = trunc i8 %250 to i1
br i1 %tobool383, label %if.then384, label %if.end386
if.then384: ; preds = %if.else381
%251 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%OverwriteMode385 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %251, i32 0, i32 19
store i32 1, i32* %OverwriteMode385, align 8, !tbaa !53
br label %if.end386
if.end386: ; preds = %if.then384, %if.else381
br label %if.end387
if.end387: ; preds = %if.end386, %invoke.cont377
br label %if.end388
if.end388: ; preds = %if.end387, %if.end340
call void @llvm.lifetime.end.p0i8(i64 1, i8* %directlyAddArchiveName) #3
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor) #3
%252 = bitcast %"class.NWildcard::CCensor"* %archiveWildcardCensor to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %252) #3
br label %if.end637
ehcleanup389: ; preds = %ehcleanup339, %ehcleanup212, %lpad190, %ehcleanup186
call void @llvm.lifetime.end.p0i8(i64 1, i8* %directlyAddArchiveName) #3
br label %ehcleanup390
ehcleanup390: ; preds = %ehcleanup389, %lpad
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor) #3
%253 = bitcast %"class.NWildcard::CCensor"* %archiveWildcardCensor to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %253) #3
br label %ehcleanup639
if.else392: ; preds = %if.end126
%254 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command393 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %254, i32 0, i32 11
%call394 = call zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command393)
br i1 %call394, label %if.then395, label %if.else484
if.then395: ; preds = %if.else392
%255 = bitcast %struct.CUpdateOptions** %updateOptions to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %255) #3
%256 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %256, i32 0, i32 23
store %struct.CUpdateOptions* %UpdateOptions, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%257 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command396 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %257, i32 0, i32 11
%CommandType397 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command396, i32 0, i32 0
%258 = load i32, i32* %CommandType397, align 8, !tbaa !45
%parser398 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%259 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
call void @_ZL20SetAddCommandOptionsN12NCommandType5EEnumERKN18NCommandLineParser7CParserER14CUpdateOptions(i32 %258, %"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser398, %struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %259)
%parser399 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%260 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%MethodMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %260, i32 0, i32 0
%Properties = getelementptr inbounds %struct.CCompressionMethodMode, %struct.CCompressionMethodMode* %MethodMode, i32 0, i32 1
call void @_ZL16SetMethodOptionsRKN18NCommandLineParser7CParserER13CObjectVectorI9CPropertyE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser399, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties)
%parser400 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call401 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser400, i64 4)
%ThereIs402 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call401, i32 0, i32 0
%261 = load i8, i8* %ThereIs402, align 8, !tbaa !31, !range !33
%tobool403 = trunc i8 %261 to i1
%lnot404 = xor i1 %tobool403, true
%262 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%EnablePercents = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %262, i32 0, i32 25
%frombool405 = zext i1 %lnot404 to i8
store i8 %frombool405, i8* %EnablePercents, align 8, !tbaa !55
%263 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%EnablePercents406 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %263, i32 0, i32 25
%264 = load i8, i8* %EnablePercents406, align 8, !tbaa !55, !range !33
%tobool407 = trunc i8 %264 to i1
br i1 %tobool407, label %if.then408, label %if.end423
if.then408: ; preds = %if.then395
%265 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdOutMode409 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %265, i32 0, i32 6
%266 = load i8, i8* %StdOutMode409, align 2, !tbaa !35, !range !33
%tobool410 = trunc i8 %266 to i1
br i1 %tobool410, label %land.lhs.true411, label %lor.lhs.false414
land.lhs.true411: ; preds = %if.then408
%267 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdErrTerminal412 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %267, i32 0, i32 4
%268 = load i8, i8* %IsStdErrTerminal412, align 4, !tbaa !30, !range !33
%tobool413 = trunc i8 %268 to i1
br i1 %tobool413, label %lor.lhs.false414, label %if.then420
lor.lhs.false414: ; preds = %land.lhs.true411, %if.then408
%269 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdOutMode415 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %269, i32 0, i32 6
%270 = load i8, i8* %StdOutMode415, align 2, !tbaa !35, !range !33
%tobool416 = trunc i8 %270 to i1
br i1 %tobool416, label %if.end422, label %land.lhs.true417
land.lhs.true417: ; preds = %lor.lhs.false414
%271 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdOutTerminal418 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %271, i32 0, i32 3
%272 = load i8, i8* %IsStdOutTerminal418, align 1, !tbaa !29, !range !33
%tobool419 = trunc i8 %272 to i1
br i1 %tobool419, label %if.end422, label %if.then420
if.then420: ; preds = %land.lhs.true417, %land.lhs.true411
%273 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%EnablePercents421 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %273, i32 0, i32 25
store i8 0, i8* %EnablePercents421, align 8, !tbaa !55
br label %if.end422
if.end422: ; preds = %if.then420, %land.lhs.true417, %lor.lhs.false414
br label %if.end423
if.end423: ; preds = %if.end422, %if.then395
%parser424 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call425 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser424, i64 23)
%ThereIs426 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call425, i32 0, i32 0
%274 = load i8, i8* %ThereIs426, align 8, !tbaa !31, !range !33
%tobool427 = trunc i8 %274 to i1
%275 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %275, i32 0, i32 10
%frombool428 = zext i1 %tobool427 to i8
store i8 %frombool428, i8* %EMailMode, align 1, !tbaa !56
%276 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailMode429 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %276, i32 0, i32 10
%277 = load i8, i8* %EMailMode429, align 1, !tbaa !56, !range !33
%tobool430 = trunc i8 %277 to i1
br i1 %tobool430, label %if.then431, label %if.end450
if.then431: ; preds = %if.end423
%parser432 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call433 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser432, i64 23)
%PostStrings434 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call433, i32 0, i32 3
%call435 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings434)
%278 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailAddress = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %278, i32 0, i32 12
%call436 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress, %class.CStringBase* nonnull align 8 dereferenceable(16) %call435)
%279 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailAddress437 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %279, i32 0, i32 12
%call438 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress437)
%cmp439 = icmp sgt i32 %call438, 0
br i1 %cmp439, label %if.then440, label %if.end449
if.then440: ; preds = %if.then431
%280 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailAddress441 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %280, i32 0, i32 12
%call442 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress441)
%arrayidx443 = getelementptr inbounds i32, i32* %call442, i64 0
%281 = load i32, i32* %arrayidx443, align 4, !tbaa !57
%cmp444 = icmp eq i32 %281, 46
br i1 %cmp444, label %if.then445, label %if.end448
if.then445: ; preds = %if.then440
%282 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailRemoveAfter = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %282, i32 0, i32 11
store i8 1, i8* %EMailRemoveAfter, align 2, !tbaa !59
%283 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailAddress446 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %283, i32 0, i32 12
%call447 = call i32 @_ZN11CStringBaseIwE6DeleteEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress446, i32 0, i32 1)
br label %if.end448
if.end448: ; preds = %if.then445, %if.then440
br label %if.end449
if.end449: ; preds = %if.end448, %if.then431
br label %if.end450
if.end450: ; preds = %if.end449, %if.end423
%284 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdOutMode451 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %284, i32 0, i32 6
%285 = load i8, i8* %StdOutMode451, align 2, !tbaa !35, !range !33
%tobool452 = trunc i8 %285 to i1
%286 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%StdOutMode453 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %286, i32 0, i32 9
%frombool454 = zext i1 %tobool452 to i8
store i8 %frombool454, i8* %StdOutMode453, align 8, !tbaa !60
%287 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%StdInMode455 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %287, i32 0, i32 5
%288 = load i8, i8* %StdInMode455, align 1, !tbaa !34, !range !33
%tobool456 = trunc i8 %288 to i1
%289 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%StdInMode457 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %289, i32 0, i32 7
%frombool458 = zext i1 %tobool456 to i8
store i8 %frombool458, i8* %StdInMode457, align 1, !tbaa !61
%290 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%StdOutMode459 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %290, i32 0, i32 9
%291 = load i8, i8* %StdOutMode459, align 8, !tbaa !60, !range !33
%tobool460 = trunc i8 %291 to i1
br i1 %tobool460, label %land.lhs.true461, label %if.end466
land.lhs.true461: ; preds = %if.end450
%292 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%EMailMode462 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %292, i32 0, i32 10
%293 = load i8, i8* %EMailMode462, align 1, !tbaa !56, !range !33
%tobool463 = trunc i8 %293 to i1
br i1 %tobool463, label %if.then464, label %if.end466
if.then464: ; preds = %land.lhs.true461
%exception465 = call i8* @__cxa_allocate_exception(i64 8) #3
%294 = bitcast i8* %exception465 to i8**
store i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.8, i64 0, i64 0), i8** %294, align 16, !tbaa !3
call void @__cxa_throw(i8* %exception465, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
unreachable
if.end466: ; preds = %land.lhs.true461, %if.end450
%295 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%StdOutMode467 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %295, i32 0, i32 9
%296 = load i8, i8* %StdOutMode467, align 8, !tbaa !60, !range !33
%tobool468 = trunc i8 %296 to i1
br i1 %tobool468, label %land.lhs.true469, label %if.end474
land.lhs.true469: ; preds = %if.end466
%297 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%IsStdOutTerminal470 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %297, i32 0, i32 3
%298 = load i8, i8* %IsStdOutTerminal470, align 1, !tbaa !29, !range !33
%tobool471 = trunc i8 %298 to i1
br i1 %tobool471, label %if.then472, label %if.end474
if.then472: ; preds = %land.lhs.true469
%exception473 = call i8* @__cxa_allocate_exception(i64 8) #3
%299 = bitcast i8* %exception473 to i8**
%300 = load i8*, i8** @_ZL17kTerminalOutError, align 8, !tbaa !3
store i8* %300, i8** %299, align 16, !tbaa !3
call void @__cxa_throw(i8* %exception473, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
unreachable
if.end474: ; preds = %land.lhs.true469, %if.end466
%301 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%StdInMode475 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %301, i32 0, i32 7
%302 = load i8, i8* %StdInMode475, align 1, !tbaa !61, !range !33
%tobool476 = trunc i8 %302 to i1
br i1 %tobool476, label %if.then477, label %if.end483
if.then477: ; preds = %if.end474
%parser478 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call479 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser478, i64 20)
%PostStrings480 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call479, i32 0, i32 3
%call481 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings480)
%303 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3
%StdInFileName = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %303, i32 0, i32 8
%call482 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName, %class.CStringBase* nonnull align 8 dereferenceable(16) %call481)
br label %if.end483
if.end483: ; preds = %if.then477, %if.end474
%304 = bitcast %struct.CUpdateOptions** %updateOptions to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %304) #3
br label %if.end636
if.else484: ; preds = %if.else392
%305 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command485 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %305, i32 0, i32 11
%CommandType486 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command485, i32 0, i32 0
%306 = load i32, i32* %CommandType486, align 8, !tbaa !45
%cmp487 = icmp eq i32 %306, 7
br i1 %cmp487, label %if.then488, label %if.else628
if.then488: ; preds = %if.else484
%307 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%NumThreads = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %307, i32 0, i32 27
store i32 -1, i32* %NumThreads, align 8, !tbaa !62
%308 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%DictionarySize = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %308, i32 0, i32 28
store i32 -1, i32* %DictionarySize, align 4, !tbaa !63
%309 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%NumIterations = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %309, i32 0, i32 26
store i32 1, i32* %NumIterations, align 4, !tbaa !64
%310 = load i32, i32* %curCommandIndex, align 4, !tbaa !15
%311 = load i32, i32* %numNonSwitchStrings, align 4, !tbaa !15
%cmp489 = icmp slt i32 %310, %311
br i1 %cmp489, label %if.then490, label %if.end498
if.then490: ; preds = %if.then488
%312 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3
%313 = load i32, i32* %curCommandIndex, align 4, !tbaa !15
%inc491 = add nsw i32 %313, 1
store i32 %inc491, i32* %curCommandIndex, align 4, !tbaa !15
%call492 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %312, i32 %313)
%call493 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call492)
%314 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%NumIterations494 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %314, i32 0, i32 26
%call495 = call zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %call493, i32* nonnull align 4 dereferenceable(4) %NumIterations494)
br i1 %call495, label %if.end497, label %if.then496
if.then496: ; preds = %if.then490
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end497
if.end497: ; preds = %if.then496, %if.then490
br label %if.end498
if.end498: ; preds = %if.end497, %if.then488
%315 = bitcast i32* %i499 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %315) #3
store i32 0, i32* %i499, align 4, !tbaa !15
br label %for.cond500
for.cond500: ; preds = %for.inc624, %if.end498
%316 = load i32, i32* %i499, align 4, !tbaa !15
%parser501 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call502 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser501, i64 8)
%PostStrings503 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call502, i32 0, i32 3
%317 = bitcast %class.CObjectVector* %PostStrings503 to %class.CBaseRecordVector*
%call504 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %317)
%cmp505 = icmp slt i32 %316, %call504
br i1 %cmp505, label %for.body507, label %for.cond.cleanup506
for.cond.cleanup506: ; preds = %for.cond500
%318 = bitcast i32* %i499 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %318) #3
br label %for.end627
for.body507: ; preds = %for.cond500
%319 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %319) #3
%parser508 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
%call509 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser508, i64 8)
%PostStrings510 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call509, i32 0, i32 3
%320 = load i32, i32* %i499, align 4, !tbaa !15
%call511 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings510, i32 %320)
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString, %class.CStringBase* nonnull align 8 dereferenceable(16) %call511)
invoke void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont513 unwind label %lpad512
invoke.cont513: ; preds = %for.body507
%call515 = invoke i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont514 unwind label %lpad512
invoke.cont514: ; preds = %invoke.cont513
%cmp516 = icmp slt i32 %call515, 2
br i1 %cmp516, label %if.then517, label %if.end519
if.then517: ; preds = %invoke.cont514
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont518 unwind label %lpad512
invoke.cont518: ; preds = %if.then517
br label %if.end519
lpad512: ; preds = %if.else617, %land.lhs.true593, %if.else588, %land.lhs.true554, %if.else549, %if.end519, %if.then517, %invoke.cont513, %for.body507
%321 = landingpad { i8*, i32 }
cleanup
%322 = extractvalue { i8*, i32 } %321, 0
store i8* %322, i8** %exn.slot, align 8
%323 = extractvalue { i8*, i32 } %321, 1
store i32 %323, i32* %ehselector.slot, align 4
br label %ehcleanup622
if.end519: ; preds = %invoke.cont518, %invoke.cont514
%call521 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont520 unwind label %lpad512
invoke.cont520: ; preds = %if.end519
%arrayidx522 = getelementptr inbounds i32, i32* %call521, i64 0
%324 = load i32, i32* %arrayidx522, align 4, !tbaa !57
%cmp523 = icmp eq i32 %324, 68
br i1 %cmp523, label %if.then524, label %if.else549
if.then524: ; preds = %invoke.cont520
%325 = bitcast i32* %pos to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %325) #3
store i32 1, i32* %pos, align 4, !tbaa !15
%call527 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont526 unwind label %lpad525
invoke.cont526: ; preds = %if.then524
%326 = load i32, i32* %pos, align 4, !tbaa !15
%idxprom528 = sext i32 %326 to i64
%arrayidx529 = getelementptr inbounds i32, i32* %call527, i64 %idxprom528
%327 = load i32, i32* %arrayidx529, align 4, !tbaa !57
%cmp530 = icmp eq i32 %327, 61
br i1 %cmp530, label %if.then531, label %if.end533
if.then531: ; preds = %invoke.cont526
%328 = load i32, i32* %pos, align 4, !tbaa !15
%inc532 = add nsw i32 %328, 1
store i32 %inc532, i32* %pos, align 4, !tbaa !15
br label %if.end533
lpad525: ; preds = %if.then524
%329 = landingpad { i8*, i32 }
cleanup
%330 = extractvalue { i8*, i32 } %329, 0
store i8* %330, i8** %exn.slot, align 8
%331 = extractvalue { i8*, i32 } %329, 1
store i32 %331, i32* %ehselector.slot, align 4
br label %ehcleanup548
if.end533: ; preds = %if.then531, %invoke.cont526
%332 = bitcast i32* %logSize to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %332) #3
%call536 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont535 unwind label %lpad534
invoke.cont535: ; preds = %if.end533
%333 = load i32, i32* %pos, align 4, !tbaa !15
%idx.ext = sext i32 %333 to i64
%add.ptr = getelementptr inbounds i32, i32* %call536, i64 %idx.ext
%call538 = invoke zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %add.ptr, i32* nonnull align 4 dereferenceable(4) %logSize)
to label %invoke.cont537 unwind label %lpad534
invoke.cont537: ; preds = %invoke.cont535
br i1 %call538, label %if.end541, label %if.then539
if.then539: ; preds = %invoke.cont537
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont540 unwind label %lpad534
invoke.cont540: ; preds = %if.then539
br label %if.end541
lpad534: ; preds = %if.then543, %if.then539, %invoke.cont535, %if.end533
%334 = landingpad { i8*, i32 }
cleanup
%335 = extractvalue { i8*, i32 } %334, 0
store i8* %335, i8** %exn.slot, align 8
%336 = extractvalue { i8*, i32 } %334, 1
store i32 %336, i32* %ehselector.slot, align 4
%337 = bitcast i32* %logSize to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %337) #3
br label %ehcleanup548
if.end541: ; preds = %invoke.cont540, %invoke.cont537
%338 = load i32, i32* %logSize, align 4, !tbaa !15
%cmp542 = icmp ugt i32 %338, 31
br i1 %cmp542, label %if.then543, label %if.end545
if.then543: ; preds = %if.end541
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont544 unwind label %lpad534
invoke.cont544: ; preds = %if.then543
br label %if.end545
if.end545: ; preds = %invoke.cont544, %if.end541
%339 = load i32, i32* %logSize, align 4, !tbaa !15
%shl = shl i32 1, %339
%340 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%DictionarySize546 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %340, i32 0, i32 28
store i32 %shl, i32* %DictionarySize546, align 4, !tbaa !63
%341 = bitcast i32* %logSize to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %341) #3
%342 = bitcast i32* %pos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %342) #3
br label %if.end621
ehcleanup548: ; preds = %lpad534, %lpad525
%343 = bitcast i32* %pos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %343) #3
br label %ehcleanup622
if.else549: ; preds = %invoke.cont520
%call551 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont550 unwind label %lpad512
invoke.cont550: ; preds = %if.else549
%arrayidx552 = getelementptr inbounds i32, i32* %call551, i64 0
%344 = load i32, i32* %arrayidx552, align 4, !tbaa !57
%cmp553 = icmp eq i32 %344, 77
br i1 %cmp553, label %land.lhs.true554, label %if.else588
land.lhs.true554: ; preds = %invoke.cont550
%call556 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont555 unwind label %lpad512
invoke.cont555: ; preds = %land.lhs.true554
%arrayidx557 = getelementptr inbounds i32, i32* %call556, i64 1
%345 = load i32, i32* %arrayidx557, align 4, !tbaa !57
%cmp558 = icmp eq i32 %345, 84
br i1 %cmp558, label %if.then559, label %if.else588
if.then559: ; preds = %invoke.cont555
%346 = bitcast i32* %pos560 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %346) #3
store i32 2, i32* %pos560, align 4, !tbaa !15
%call563 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont562 unwind label %lpad561
invoke.cont562: ; preds = %if.then559
%347 = load i32, i32* %pos560, align 4, !tbaa !15
%idxprom564 = sext i32 %347 to i64
%arrayidx565 = getelementptr inbounds i32, i32* %call563, i64 %idxprom564
%348 = load i32, i32* %arrayidx565, align 4, !tbaa !57
%cmp566 = icmp eq i32 %348, 61
br i1 %cmp566, label %if.then567, label %if.end569
if.then567: ; preds = %invoke.cont562
%349 = load i32, i32* %pos560, align 4, !tbaa !15
%inc568 = add nsw i32 %349, 1
store i32 %inc568, i32* %pos560, align 4, !tbaa !15
br label %if.end569
lpad561: ; preds = %if.then583, %invoke.cont576, %if.then575, %if.end569, %if.then559
%350 = landingpad { i8*, i32 }
cleanup
%351 = extractvalue { i8*, i32 } %350, 0
store i8* %351, i8** %exn.slot, align 8
%352 = extractvalue { i8*, i32 } %350, 1
store i32 %352, i32* %ehselector.slot, align 4
%353 = bitcast i32* %pos560 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %353) #3
br label %ehcleanup622
if.end569: ; preds = %if.then567, %invoke.cont562
%call571 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont570 unwind label %lpad561
invoke.cont570: ; preds = %if.end569
%354 = load i32, i32* %pos560, align 4, !tbaa !15
%idxprom572 = sext i32 %354 to i64
%arrayidx573 = getelementptr inbounds i32, i32* %call571, i64 %idxprom572
%355 = load i32, i32* %arrayidx573, align 4, !tbaa !57
%cmp574 = icmp ne i32 %355, 0
br i1 %cmp574, label %if.then575, label %if.end586
if.then575: ; preds = %invoke.cont570
%call577 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont576 unwind label %lpad561
invoke.cont576: ; preds = %if.then575
%356 = load i32, i32* %pos560, align 4, !tbaa !15
%idx.ext578 = sext i32 %356 to i64
%add.ptr579 = getelementptr inbounds i32, i32* %call577, i64 %idx.ext578
%357 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%NumThreads580 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %357, i32 0, i32 27
%call582 = invoke zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %add.ptr579, i32* nonnull align 4 dereferenceable(4) %NumThreads580)
to label %invoke.cont581 unwind label %lpad561
invoke.cont581: ; preds = %invoke.cont576
br i1 %call582, label %if.end585, label %if.then583
if.then583: ; preds = %invoke.cont581
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont584 unwind label %lpad561
invoke.cont584: ; preds = %if.then583
br label %if.end585
if.end585: ; preds = %invoke.cont584, %invoke.cont581
br label %if.end586
if.end586: ; preds = %if.end585, %invoke.cont570
%358 = bitcast i32* %pos560 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %358) #3
br label %if.end620
if.else588: ; preds = %invoke.cont555, %invoke.cont550
%call590 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont589 unwind label %lpad512
invoke.cont589: ; preds = %if.else588
%arrayidx591 = getelementptr inbounds i32, i32* %call590, i64 0
%359 = load i32, i32* %arrayidx591, align 4, !tbaa !57
%cmp592 = icmp eq i32 %359, 77
br i1 %cmp592, label %land.lhs.true593, label %if.else617
land.lhs.true593: ; preds = %invoke.cont589
%call595 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont594 unwind label %lpad512
invoke.cont594: ; preds = %land.lhs.true593
%arrayidx596 = getelementptr inbounds i32, i32* %call595, i64 1
%360 = load i32, i32* %arrayidx596, align 4, !tbaa !57
%cmp597 = icmp eq i32 %360, 61
br i1 %cmp597, label %if.then598, label %if.else617
if.then598: ; preds = %invoke.cont594
%361 = bitcast i32* %pos599 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %361) #3
store i32 2, i32* %pos599, align 4, !tbaa !15
%call602 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont601 unwind label %lpad600
invoke.cont601: ; preds = %if.then598
%362 = load i32, i32* %pos599, align 4, !tbaa !15
%idxprom603 = sext i32 %362 to i64
%arrayidx604 = getelementptr inbounds i32, i32* %call602, i64 %idxprom603
%363 = load i32, i32* %arrayidx604, align 4, !tbaa !57
%cmp605 = icmp ne i32 %363, 0
br i1 %cmp605, label %if.then606, label %if.end615
if.then606: ; preds = %invoke.cont601
%364 = bitcast %class.CStringBase* %ref.tmp607 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %364) #3
invoke void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp607, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString, i32 2)
to label %invoke.cont609 unwind label %lpad608
invoke.cont609: ; preds = %if.then606
%365 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %365, i32 0, i32 29
%call612 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp607)
to label %invoke.cont611 unwind label %lpad610
invoke.cont611: ; preds = %invoke.cont609
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp607) #3
%366 = bitcast %class.CStringBase* %ref.tmp607 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %366) #3
br label %if.end615
lpad600: ; preds = %if.then598
%367 = landingpad { i8*, i32 }
cleanup
%368 = extractvalue { i8*, i32 } %367, 0
store i8* %368, i8** %exn.slot, align 8
%369 = extractvalue { i8*, i32 } %367, 1
store i32 %369, i32* %ehselector.slot, align 4
br label %ehcleanup616
lpad608: ; preds = %if.then606
%370 = landingpad { i8*, i32 }
cleanup
%371 = extractvalue { i8*, i32 } %370, 0
store i8* %371, i8** %exn.slot, align 8
%372 = extractvalue { i8*, i32 } %370, 1
store i32 %372, i32* %ehselector.slot, align 4
br label %ehcleanup614
lpad610: ; preds = %invoke.cont609
%373 = landingpad { i8*, i32 }
cleanup
%374 = extractvalue { i8*, i32 } %373, 0
store i8* %374, i8** %exn.slot, align 8
%375 = extractvalue { i8*, i32 } %373, 1
store i32 %375, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp607) #3
br label %ehcleanup614
ehcleanup614: ; preds = %lpad610, %lpad608
%376 = bitcast %class.CStringBase* %ref.tmp607 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %376) #3
br label %ehcleanup616
if.end615: ; preds = %invoke.cont611, %invoke.cont601
%377 = bitcast i32* %pos599 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %377) #3
br label %if.end619
ehcleanup616: ; preds = %ehcleanup614, %lpad600
%378 = bitcast i32* %pos599 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %378) #3
br label %ehcleanup622
if.else617: ; preds = %invoke.cont594, %invoke.cont589
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont618 unwind label %lpad512
invoke.cont618: ; preds = %if.else617
br label %if.end619
if.end619: ; preds = %invoke.cont618, %if.end615
br label %if.end620
if.end620: ; preds = %if.end619, %if.end586
br label %if.end621
if.end621: ; preds = %if.end620, %if.end545
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3
%379 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %379) #3
br label %for.inc624
for.inc624: ; preds = %if.end621
%380 = load i32, i32* %i499, align 4, !tbaa !15
%inc625 = add nsw i32 %380, 1
store i32 %inc625, i32* %i499, align 4, !tbaa !15
br label %for.cond500, !llvm.loop !65
ehcleanup622: ; preds = %ehcleanup616, %lpad561, %ehcleanup548, %lpad512
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3
%381 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %381) #3
%382 = bitcast i32* %i499 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %382) #3
br label %ehcleanup639
for.end627: ; preds = %for.cond.cleanup506
br label %if.end635
if.else628: ; preds = %if.else484
%383 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%Command629 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %383, i32 0, i32 11
%CommandType630 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command629, i32 0, i32 0
%384 = load i32, i32* %CommandType630, align 8, !tbaa !45
%cmp631 = icmp eq i32 %384, 8
br i1 %cmp631, label %if.then632, label %if.else633
if.then632: ; preds = %if.else628
br label %if.end634
if.else633: ; preds = %if.else628
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end634
if.end634: ; preds = %if.else633, %if.then632
br label %if.end635
if.end635: ; preds = %if.end634, %for.end627
br label %if.end636
if.end636: ; preds = %if.end635, %if.end483
br label %if.end637
if.end637: ; preds = %if.end636, %if.end388
%385 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3
%WildcardCensor638 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %385, i32 0, i32 10
call void @_ZN9NWildcard7CCensor13ExtendExcludeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor638)
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractOrList) #3
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #3
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereIsArchiveName) #3
%386 = bitcast i32* %curCommandIndex to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %386) #3
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereAreSwitchIncludes) #3
%387 = bitcast i32* %codePage to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %387) #3
%388 = bitcast i32* %recursedType to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %388) #3
%389 = bitcast i32* %numNonSwitchStrings to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %389) #3
%390 = bitcast %class.CObjectVector** %nonSwitchStrings to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %390) #3
ret void
ehcleanup639: ; preds = %ehcleanup622, %ehcleanup390
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractOrList) #3
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #3
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereIsArchiveName) #3
%391 = bitcast i32* %curCommandIndex to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %391) #3
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereAreSwitchIncludes) #3
%392 = bitcast i32* %codePage to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %392) #3
%393 = bitcast i32* %recursedType to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %393) #3
%394 = bitcast i32* %numNonSwitchStrings to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %394) #3
%395 = bitcast %class.CObjectVector** %nonSwitchStrings to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %395) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup639
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val648 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val648
unreachable: ; preds = %if.then350, %if.then271, %if.then229
unreachable
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CBaseRecordVector*, align 8
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
%0 = load i32, i32* %_size, align 4, !tbaa !66
ret i32 %0
}
; Function Attrs: mustprogress uwtable
define internal zeroext i1 @_ZL19ParseArchiveCommandRK11CStringBaseIwER15CArchiveCommand(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandString, %struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %command) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%retval = alloca i1, align 1
%commandString.addr = alloca %class.CStringBase*, align 8
%command.addr = alloca %struct.CArchiveCommand*, align 8
%commandStringUpper = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%postString = alloca %class.CStringBase, align 8
%commandIndex = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
store %class.CStringBase* %commandString, %class.CStringBase** %commandString.addr, align 8, !tbaa !3
store %struct.CArchiveCommand* %command, %struct.CArchiveCommand** %command.addr, align 8, !tbaa !3
%0 = bitcast %class.CStringBase* %commandStringUpper to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) #3
%1 = load %class.CStringBase*, %class.CStringBase** %commandString.addr, align 8, !tbaa !3
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper, %class.CStringBase* nonnull align 8 dereferenceable(16) %1)
invoke void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %2) #3
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont2 unwind label %lpad1
invoke.cont2: ; preds = %invoke.cont
%3 = bitcast i32* %commandIndex to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #3
%call = invoke i32 @_ZN18NCommandLineParser12ParseCommandEiPKNS_12CCommandFormERK11CStringBaseIwERS4_(i32 9, %"struct.NCommandLineParser::CCommandForm"* getelementptr inbounds ([9 x %"struct.NCommandLineParser::CCommandForm"], [9 x %"struct.NCommandLineParser::CCommandForm"]* @_ZL14g_CommandForms, i64 0, i64 0), %class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont4 unwind label %lpad3
invoke.cont4: ; preds = %invoke.cont2
store i32 %call, i32* %commandIndex, align 4, !tbaa !15
%4 = load i32, i32* %commandIndex, align 4, !tbaa !15
%cmp = icmp slt i32 %4, 0
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %invoke.cont4
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
lpad: ; preds = %entry
%5 = landingpad { i8*, i32 }
cleanup
%6 = extractvalue { i8*, i32 } %5, 0
store i8* %6, i8** %exn.slot, align 8
%7 = extractvalue { i8*, i32 } %5, 1
store i32 %7, i32* %ehselector.slot, align 4
br label %ehcleanup8
lpad1: ; preds = %invoke.cont
%8 = landingpad { i8*, i32 }
cleanup
%9 = extractvalue { i8*, i32 } %8, 0
store i8* %9, i8** %exn.slot, align 8
%10 = extractvalue { i8*, i32 } %8, 1
store i32 %10, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad3: ; preds = %invoke.cont2
%11 = landingpad { i8*, i32 }
cleanup
%12 = extractvalue { i8*, i32 } %11, 0
store i8* %12, i8** %exn.slot, align 8
%13 = extractvalue { i8*, i32 } %11, 1
store i32 %13, i32* %ehselector.slot, align 4
%14 = bitcast i32* %commandIndex to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %14) #3
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3
br label %ehcleanup
if.end: ; preds = %invoke.cont4
%15 = load i32, i32* %commandIndex, align 4, !tbaa !15
%16 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %command.addr, align 8, !tbaa !3
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %16, i32 0, i32 0
store i32 %15, i32* %CommandType, align 4, !tbaa !7
store i1 true, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end, %if.then
%17 = bitcast i32* %commandIndex to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %17) #3
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3
%18 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %18) #3
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper) #3
%19 = bitcast %class.CStringBase* %commandStringUpper to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %19) #3
%20 = load i1, i1* %retval, align 1
ret i1 %20
ehcleanup: ; preds = %lpad3, %lpad1
%21 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %21) #3
br label %ehcleanup8
ehcleanup8: ; preds = %ehcleanup, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper) #3
%22 = bitcast %class.CStringBase* %commandStringUpper to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %22) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup8
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val11 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val11
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
%call = call nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !3
%3 = bitcast i8* %2 to %class.CStringBase*
ret %class.CStringBase* %3
}
; Function Attrs: mustprogress nounwind uwtable
define internal i32 @_ZL24GetRecursedTypeFromIndexi(i32 %index) #0 {
entry:
%retval = alloca i32, align 4
%index.addr = alloca i32, align 4
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%0 = load i32, i32* %index.addr, align 4, !tbaa !15
switch i32 %0, label %sw.default [
i32 0, label %sw.bb
i32 1, label %sw.bb1
]
sw.bb: ; preds = %entry
store i32 1, i32* %retval, align 4
br label %return
sw.bb1: ; preds = %entry
store i32 2, i32* %retval, align 4
br label %return
sw.default: ; preds = %entry
store i32 0, i32* %retval, align 4
br label %return
return: ; preds = %sw.default, %sw.bb1, %sw.bb
%1 = load i32, i32* %retval, align 4
ret i32 %1
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %strings, i1 zeroext %include, i32 %commonRecursedType, i32 %codePage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8
%strings.addr = alloca %class.CObjectVector*, align 8
%include.addr = alloca i8, align 1
%commonRecursedType.addr = alloca i32, align 4
%codePage.addr = alloca i32, align 4
%i = alloca i32, align 4
%name = alloca %class.CStringBase*, align 8
%recursedType = alloca i32, align 4
%pos = alloca i32, align 4
%index = alloca i32, align 4
%ref.tmp = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%tail = alloca %class.CStringBase, align 8
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
store %class.CObjectVector* %strings, %class.CObjectVector** %strings.addr, align 8, !tbaa !3
%frombool = zext i1 %include to i8
store i8 %frombool, i8* %include.addr, align 1, !tbaa !42
store i32 %commonRecursedType, i32* %commonRecursedType.addr, align 4, !tbaa !43
store i32 %codePage, i32* %codePage.addr, align 4, !tbaa !15
%0 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%1 = load i32, i32* %i, align 4, !tbaa !15
%2 = load %class.CObjectVector*, %class.CObjectVector** %strings.addr, align 8, !tbaa !3
%3 = bitcast %class.CObjectVector* %2 to %class.CBaseRecordVector*
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3)
%cmp = icmp slt i32 %1, %call
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%4 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %4) #3
br label %for.end
for.body: ; preds = %for.cond
%5 = bitcast %class.CStringBase** %name to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %5) #3
%6 = load %class.CObjectVector*, %class.CObjectVector** %strings.addr, align 8, !tbaa !3
%7 = load i32, i32* %i, align 4, !tbaa !15
%call1 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %6, i32 %7)
store %class.CStringBase* %call1, %class.CStringBase** %name, align 8, !tbaa !3
%8 = bitcast i32* %recursedType to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %8) #3
%9 = bitcast i32* %pos to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %9) #3
store i32 0, i32* %pos, align 4, !tbaa !15
%10 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%call2 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %10)
%cmp3 = icmp slt i32 %call2, 2
br i1 %cmp3, label %if.then, label %if.end
if.then: ; preds = %for.body
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end
if.end: ; preds = %if.then, %for.body
%11 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%call4 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %11)
%12 = load i32, i32* %pos, align 4, !tbaa !15
%idxprom = sext i32 %12 to i64
%arrayidx = getelementptr inbounds i32, i32* %call4, i64 %idxprom
%13 = load i32, i32* %arrayidx, align 4, !tbaa !57
%call5 = call signext i32 @_Z11MyCharUpperw(i32 signext %13)
%cmp6 = icmp eq i32 %call5, 82
br i1 %cmp6, label %if.then7, label %if.else
if.then7: ; preds = %if.end
%14 = load i32, i32* %pos, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %pos, align 4, !tbaa !15
%15 = bitcast i32* %index to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %15) #3
%16 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %16) #3
%17 = load i32*, i32** @_ZL20kRecursedPostCharSet, align 8, !tbaa !3
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32* %17)
%18 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%call8 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %18)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.then7
%19 = load i32, i32* %pos, align 4, !tbaa !15
%idxprom9 = sext i32 %19 to i64
%arrayidx10 = getelementptr inbounds i32, i32* %call8, i64 %idxprom9
%20 = load i32, i32* %arrayidx10, align 4, !tbaa !57
%call12 = invoke i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32 signext %20)
to label %invoke.cont11 unwind label %lpad
invoke.cont11: ; preds = %invoke.cont
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%21 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %21) #3
store i32 %call12, i32* %index, align 4, !tbaa !15
%22 = load i32, i32* %index, align 4, !tbaa !15
%call13 = call i32 @_ZL24GetRecursedTypeFromIndexi(i32 %22)
store i32 %call13, i32* %recursedType, align 4, !tbaa !43
%23 = load i32, i32* %index, align 4, !tbaa !15
%cmp14 = icmp sge i32 %23, 0
br i1 %cmp14, label %if.then15, label %if.end17
if.then15: ; preds = %invoke.cont11
%24 = load i32, i32* %pos, align 4, !tbaa !15
%inc16 = add nsw i32 %24, 1
store i32 %inc16, i32* %pos, align 4, !tbaa !15
br label %if.end17
lpad: ; preds = %invoke.cont, %if.then7
%25 = landingpad { i8*, i32 }
cleanup
%26 = extractvalue { i8*, i32 } %25, 0
store i8* %26, i8** %exn.slot, align 8
%27 = extractvalue { i8*, i32 } %25, 1
store i32 %27, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%28 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %28) #3
%29 = bitcast i32* %index to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %29) #3
br label %ehcleanup
if.end17: ; preds = %if.then15, %invoke.cont11
%30 = bitcast i32* %index to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %30) #3
br label %if.end18
if.else: ; preds = %if.end
%31 = load i32, i32* %commonRecursedType.addr, align 4, !tbaa !43
store i32 %31, i32* %recursedType, align 4, !tbaa !43
br label %if.end18
if.end18: ; preds = %if.else, %if.end17
%32 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%call19 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %32)
%33 = load i32, i32* %pos, align 4, !tbaa !15
%add = add nsw i32 %33, 2
%cmp20 = icmp slt i32 %call19, %add
br i1 %cmp20, label %if.then21, label %if.end22
if.then21: ; preds = %if.end18
call void @_ZL23ThrowUserErrorExceptionv()
br label %if.end22
if.end22: ; preds = %if.then21, %if.end18
%34 = bitcast %class.CStringBase* %tail to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %34) #3
%35 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%36 = load i32, i32* %pos, align 4, !tbaa !15
%add23 = add nsw i32 %36, 1
call void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %tail, %class.CStringBase* nonnull align 8 dereferenceable(16) %35, i32 %add23)
%37 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%call26 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %37)
to label %invoke.cont25 unwind label %lpad24
invoke.cont25: ; preds = %if.end22
%38 = load i32, i32* %pos, align 4, !tbaa !15
%idxprom27 = sext i32 %38 to i64
%arrayidx28 = getelementptr inbounds i32, i32* %call26, i64 %idxprom27
%39 = load i32, i32* %arrayidx28, align 4, !tbaa !57
%cmp29 = icmp eq i32 %39, 33
br i1 %cmp29, label %if.then30, label %if.else32
if.then30: ; preds = %invoke.cont25
%40 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%41 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33
%tobool = trunc i8 %41 to i1
%42 = load i32, i32* %recursedType, align 4, !tbaa !43
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %40, %class.CStringBase* nonnull align 8 dereferenceable(16) %tail, i1 zeroext %tobool, i32 %42)
to label %invoke.cont31 unwind label %lpad24
invoke.cont31: ; preds = %if.then30
br label %if.end46
lpad24: ; preds = %if.else43, %invoke.cont39, %if.then38, %if.else32, %if.then30, %if.end22
%43 = landingpad { i8*, i32 }
cleanup
%44 = extractvalue { i8*, i32 } %43, 0
store i8* %44, i8** %exn.slot, align 8
%45 = extractvalue { i8*, i32 } %43, 1
store i32 %45, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %tail) #3
%46 = bitcast %class.CStringBase* %tail to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %46) #3
br label %ehcleanup
if.else32: ; preds = %invoke.cont25
%47 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3
%call34 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %47)
to label %invoke.cont33 unwind label %lpad24
invoke.cont33: ; preds = %if.else32
%48 = load i32, i32* %pos, align 4, !tbaa !15
%idxprom35 = sext i32 %48 to i64
%arrayidx36 = getelementptr inbounds i32, i32* %call34, i64 %idxprom35
%49 = load i32, i32* %arrayidx36, align 4, !tbaa !57
%cmp37 = icmp eq i32 %49, 64
br i1 %cmp37, label %if.then38, label %if.else43
if.then38: ; preds = %invoke.cont33
%50 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%call40 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %tail)
to label %invoke.cont39 unwind label %lpad24
invoke.cont39: ; preds = %if.then38
%51 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33
%tobool41 = trunc i8 %51 to i1
%52 = load i32, i32* %recursedType, align 4, !tbaa !43
%53 = load i32, i32* %codePage.addr, align 4, !tbaa !15
invoke void @_ZL23AddToCensorFromListFileRN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %50, i32* %call40, i1 zeroext %tobool41, i32 %52, i32 %53)
to label %invoke.cont42 unwind label %lpad24
invoke.cont42: ; preds = %invoke.cont39
br label %if.end45
if.else43: ; preds = %invoke.cont33
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont44 unwind label %lpad24
invoke.cont44: ; preds = %if.else43
br label %if.end45
if.end45: ; preds = %invoke.cont44, %invoke.cont42
br label %if.end46
if.end46: ; preds = %if.end45, %invoke.cont31
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %tail) #3
%54 = bitcast %class.CStringBase* %tail to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %54) #3
%55 = bitcast i32* %pos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %55) #3
%56 = bitcast i32* %recursedType to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %56) #3
%57 = bitcast %class.CStringBase** %name to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %57) #3
br label %for.inc
for.inc: ; preds = %if.end46
%58 = load i32, i32* %i, align 4, !tbaa !15
%inc49 = add nsw i32 %58, 1
store i32 %inc49, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !69
ehcleanup: ; preds = %lpad24, %lpad
%59 = bitcast i32* %pos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %59) #3
%60 = bitcast i32* %recursedType to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %60) #3
%61 = bitcast %class.CStringBase** %name to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %61) #3
%62 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %62) #3
br label %eh.resume
for.end: ; preds = %for.cond.cleanup
ret void
eh.resume: ; preds = %ehcleanup
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val51 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val51
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #5 comdat align 2 {
entry:
%retval = alloca %class.CStringBase*, align 8
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%cmp = icmp eq %class.CStringBase* %0, %this1
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8
br label %return
if.end: ; preds = %entry
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1)
%1 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %1, i32 0, i32 1
%2 = load i32, i32* %_length, align 8, !tbaa !13
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2)
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars, align 8, !tbaa !10
%4 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %4, i32 0, i32 0
%5 = load i32*, i32** %_chars2, align 8, !tbaa !10
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %5)
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1
%7 = load i32, i32* %_length3, align 8, !tbaa !13
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 %7, i32* %_length4, align 8, !tbaa !13
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8
br label %return
return: ; preds = %if.end, %if.then
%8 = load %class.CStringBase*, %class.CStringBase** %retval, align 8
ret %class.CStringBase* %8
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL33AddToCensorFromNonSwitchesStringsiRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEN13NRecursedType5EEnumEbj(i32 %startIndex, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %nonSwitchStrings, i32 %type, i1 zeroext %thereAreSwitchIncludes, i32 %codePage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%startIndex.addr = alloca i32, align 4
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8
%nonSwitchStrings.addr = alloca %class.CObjectVector*, align 8
%type.addr = alloca i32, align 4
%thereAreSwitchIncludes.addr = alloca i8, align 1
%codePage.addr = alloca i32, align 4
%ref.tmp = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%i = alloca i32, align 4
%s = alloca %class.CStringBase*, align 8
%ref.tmp10 = alloca %class.CStringBase, align 8
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
store %class.CObjectVector* %nonSwitchStrings, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3
store i32 %type, i32* %type.addr, align 4, !tbaa !43
%frombool = zext i1 %thereAreSwitchIncludes to i8
store i8 %frombool, i8* %thereAreSwitchIncludes.addr, align 1, !tbaa !42
store i32 %codePage, i32* %codePage.addr, align 4, !tbaa !15
%0 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3
%1 = bitcast %class.CObjectVector* %0 to %class.CBaseRecordVector*
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
%2 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%cmp = icmp eq i32 %call, %2
br i1 %cmp, label %land.lhs.true, label %if.end
land.lhs.true: ; preds = %entry
%3 = load i8, i8* %thereAreSwitchIncludes.addr, align 1, !tbaa !42, !range !33
%tobool = trunc i8 %3 to i1
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %land.lhs.true
%4 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%5 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %5) #3
%6 = load i32*, i32** @_ZL18kUniversalWildcard, align 8, !tbaa !3
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32* %6)
%7 = load i32, i32* %type.addr, align 4, !tbaa !43
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %4, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i1 zeroext true, i32 %7)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.then
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%8 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %8) #3
br label %if.end
lpad: ; preds = %if.then
%9 = landingpad { i8*, i32 }
cleanup
%10 = extractvalue { i8*, i32 } %9, 0
store i8* %10, i8** %exn.slot, align 8
%11 = extractvalue { i8*, i32 } %9, 1
store i32 %11, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%12 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %12) #3
br label %eh.resume
if.end: ; preds = %invoke.cont, %land.lhs.true, %entry
%13 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %13) #3
%14 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
store i32 %14, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %if.end
%15 = load i32, i32* %i, align 4, !tbaa !15
%16 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3
%17 = bitcast %class.CObjectVector* %16 to %class.CBaseRecordVector*
%call1 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %17)
%cmp2 = icmp slt i32 %15, %call1
br i1 %cmp2, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%18 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %18) #3
br label %for.end
for.body: ; preds = %for.cond
%19 = bitcast %class.CStringBase** %s to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %19) #3
%20 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3
%21 = load i32, i32* %i, align 4, !tbaa !15
%call3 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %20, i32 %21)
store %class.CStringBase* %call3, %class.CStringBase** %s, align 8, !tbaa !3
%22 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3
%call4 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %22)
br i1 %call4, label %if.then5, label %if.end6
if.then5: ; preds = %for.body
%exception = call i8* @__cxa_allocate_exception(i64 8) #3
%23 = bitcast i8* %exception to i8**
%24 = load i8*, i8** @_ZL14kEmptyFilePath, align 8, !tbaa !3
store i8* %24, i8** %23, align 16, !tbaa !3
call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
unreachable
if.end6: ; preds = %for.body
%25 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3
%call7 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %25)
%arrayidx = getelementptr inbounds i32, i32* %call7, i64 0
%26 = load i32, i32* %arrayidx, align 4, !tbaa !57
%cmp8 = icmp eq i32 %26, 64
br i1 %cmp8, label %if.then9, label %if.else
if.then9: ; preds = %if.end6
%27 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%28 = bitcast %class.CStringBase* %ref.tmp10 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %28) #3
%29 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3
call void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp10, %class.CStringBase* nonnull align 8 dereferenceable(16) %29, i32 1)
%call13 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp10)
to label %invoke.cont12 unwind label %lpad11
invoke.cont12: ; preds = %if.then9
%30 = load i32, i32* %type.addr, align 4, !tbaa !43
%31 = load i32, i32* %codePage.addr, align 4, !tbaa !15
invoke void @_ZL23AddToCensorFromListFileRN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %27, i32* %call13, i1 zeroext true, i32 %30, i32 %31)
to label %invoke.cont14 unwind label %lpad11
invoke.cont14: ; preds = %invoke.cont12
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp10) #3
%32 = bitcast %class.CStringBase* %ref.tmp10 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %32) #3
br label %if.end15
lpad11: ; preds = %invoke.cont12, %if.then9
%33 = landingpad { i8*, i32 }
cleanup
%34 = extractvalue { i8*, i32 } %33, 0
store i8* %34, i8** %exn.slot, align 8
%35 = extractvalue { i8*, i32 } %33, 1
store i32 %35, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp10) #3
%36 = bitcast %class.CStringBase* %ref.tmp10 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %36) #3
%37 = bitcast %class.CStringBase** %s to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %37) #3
%38 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %38) #3
br label %eh.resume
if.else: ; preds = %if.end6
%39 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%40 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3
%41 = load i32, i32* %type.addr, align 4, !tbaa !43
call void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %39, %class.CStringBase* nonnull align 8 dereferenceable(16) %40, i1 zeroext true, i32 %41)
br label %if.end15
if.end15: ; preds = %if.else, %invoke.cont14
%42 = bitcast %class.CStringBase** %s to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %42) #3
br label %for.inc
for.inc: ; preds = %if.end15
%43 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %43, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !70
for.end: ; preds = %for.cond.cleanup
ret void
eh.resume: ; preds = %lpad11, %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val16 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val16
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local zeroext i1 @_ZNK9NWildcard7CCensor14AllAreRelativeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) #5 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !3
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0
%0 = bitcast %class.CObjectVector.0* %Pairs to %class.CBaseRecordVector*
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0)
%cmp = icmp eq i32 %call, 1
br i1 %cmp, label %land.rhs, label %land.end
land.rhs: ; preds = %entry
%Pairs2 = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0
%call3 = call nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs2)
%Prefix = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %call3, i32 0, i32 0
%call4 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix)
br label %land.end
land.end: ; preds = %land.rhs, %entry
%1 = phi i1 [ false, %entry ], [ %call4, %land.rhs ]
ret i1 %1
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL14ThrowExceptionPKc(i8* %errorMessage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%errorMessage.addr = alloca i8*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store i8* %errorMessage, i8** %errorMessage.addr, align 8, !tbaa !3
%exception = call i8* @__cxa_allocate_exception(i64 16) #3
%0 = bitcast i8* %exception to %struct.CArchiveCommandLineException*
%1 = load i8*, i8** %errorMessage.addr, align 8, !tbaa !3
invoke void @_ZN28CArchiveCommandLineExceptionC2EPKc(%struct.CArchiveCommandLineException* nonnull align 8 dereferenceable(16) %0, i8* %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
call void @__cxa_throw(i8* %exception, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI28CArchiveCommandLineException to i8*), i8* bitcast (void (%class.CStringBase.9*)* @_ZN11CStringBaseIcED2Ev to i8*)) #18
unreachable
lpad: ; preds = %entry
%2 = landingpad { i8*, i32 }
cleanup
%3 = extractvalue { i8*, i32 } %2, 0
store i8* %3, i8** %exn.slot, align 8
%4 = extractvalue { i8*, i32 } %2, 1
store i32 %4, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception) #3
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val1 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val1
}
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #9 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !3
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs)
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%call = call i32 @_ZNK11CStringBaseIwE4FindERKS0_i(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, %class.CStringBase* nonnull align 8 dereferenceable(16) %0, i32 0)
ret i32 %call
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, %class.CStringBase* nonnull align 8 dereferenceable(16) %name, i1 zeroext %include, i32 %type) #5 {
entry:
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8
%name.addr = alloca %class.CStringBase*, align 8
%include.addr = alloca i8, align 1
%type.addr = alloca i32, align 4
%recursed = alloca i8, align 1
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
store %class.CStringBase* %name, %class.CStringBase** %name.addr, align 8, !tbaa !3
%frombool = zext i1 %include to i8
store i8 %frombool, i8* %include.addr, align 1, !tbaa !42
store i32 %type, i32* %type.addr, align 4, !tbaa !43
call void @llvm.lifetime.start.p0i8(i64 1, i8* %recursed) #3
store i8 0, i8* %recursed, align 1, !tbaa !42
%0 = load i32, i32* %type.addr, align 4, !tbaa !43
switch i32 %0, label %sw.epilog [
i32 1, label %sw.bb
i32 0, label %sw.bb2
]
sw.bb: ; preds = %entry
%1 = load %class.CStringBase*, %class.CStringBase** %name.addr, align 8, !tbaa !3
%call = call zeroext i1 @_Z23DoesNameContainWildCardRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %1)
%frombool1 = zext i1 %call to i8
store i8 %frombool1, i8* %recursed, align 1, !tbaa !42
br label %sw.epilog
sw.bb2: ; preds = %entry
store i8 1, i8* %recursed, align 1, !tbaa !42
br label %sw.epilog
sw.epilog: ; preds = %entry, %sw.bb2, %sw.bb
%2 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%3 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33
%tobool = trunc i8 %3 to i1
%4 = load %class.CStringBase*, %class.CStringBase** %name.addr, align 8, !tbaa !3
%5 = load i8, i8* %recursed, align 1, !tbaa !42, !range !33
%tobool3 = trunc i8 %5 to i1
call void @_ZN9NWildcard7CCensor7AddItemEbRK11CStringBaseIwEb(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %2, i1 zeroext %tobool, %class.CStringBase* nonnull align 8 dereferenceable(16) %4, i1 zeroext %tobool3)
call void @llvm.lifetime.end.p0i8(i64 1, i8* %recursed) #3
ret void
}
declare dso_local void @_ZN9NWildcard7CCensor13ExtendExcludeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32)) #4
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
store i32* null, i32** %_chars, align 8, !tbaa !10
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 0, i32* %_length, align 8, !tbaa !13
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
store i32 0, i32* %_capacity, align 4, !tbaa !14
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %0, i32 0, i32 1
%1 = load i32, i32* %_length2, align 8, !tbaa !13
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %1)
%_chars3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%2 = load i32*, i32** %_chars3, align 8, !tbaa !10
%3 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_chars4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %3, i32 0, i32 0
%4 = load i32*, i32** %_chars4, align 8, !tbaa !10
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %2, i32* %4)
%5 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %5, i32 0, i32 1
%6 = load i32, i32* %_length5, align 8, !tbaa !13
%_length6 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 %6, i32* %_length6, align 8, !tbaa !13
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %item) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%item.addr = alloca %class.CStringBase*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
store %class.CStringBase* %item, %class.CStringBase** %item.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
%call = call noalias nonnull i8* @_Znwm(i64 16) #19
%1 = bitcast i8* %call to %class.CStringBase*
%2 = load %class.CStringBase*, %class.CStringBase** %item.addr, align 8, !tbaa !3
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %1, %class.CStringBase* nonnull align 8 dereferenceable(16) %2)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%3 = bitcast %class.CStringBase* %1 to i8*
%call2 = call i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i8* %3)
ret i32 %call2
lpad: ; preds = %entry
%4 = landingpad { i8*, i32 }
cleanup
%5 = extractvalue { i8*, i32 } %4, 0
store i8* %5, i8** %exn.slot, align 8
%6 = extractvalue { i8*, i32 } %4, 1
store i32 %6, i32* %ehselector.slot, align 4
call void @_ZdlPv(i8* %call) #16
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val3
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71
ret void
}
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN9CDirItemsC2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %this) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CDirItems*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CDirItems* %this, %class.CDirItems** %this.addr, align 8, !tbaa !3
%this1 = load %class.CDirItems*, %class.CDirItems** %this.addr, align 8
%Prefixes = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %Prefixes)
%PhyParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 1
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %PhyParents)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%LogParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 2
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %LogParents)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%Items = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 3
invoke void @_ZN13CObjectVectorI8CDirItemEC2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %Items)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
br label %ehcleanup6
lpad2: ; preds = %invoke.cont
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad4: ; preds = %invoke.cont3
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %LogParents) #3
br label %ehcleanup
ehcleanup: ; preds = %lpad4, %lpad2
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %PhyParents) #3
br label %ehcleanup6
ehcleanup6: ; preds = %ehcleanup, %lpad
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %Prefixes) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup6
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val7
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIjEC2Ev(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.6*, align 8
store %class.CRecordVector.6* %this, %class.CRecordVector.6** %this.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector.6*, %class.CRecordVector.6** %this.addr, align 8
%0 = bitcast %class.CRecordVector.6* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 4)
%1 = bitcast %class.CRecordVector.6* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIjE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71
ret void
}
declare dso_local i32 @_Z14EnumerateItemsRKN9NWildcard7CCensorER9CDirItemsP20IEnumDirItemCallbackR13CObjectVectorI11CStringBaseIwEER13CRecordVectorIjE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32), %class.CDirItems* nonnull align 8 dereferenceable(128), %struct.IEnumDirItemCallback*, %class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CRecordVector.6* nonnull align 8 dereferenceable(32)) #4
declare dso_local i8* @__cxa_allocate_exception(i64)
declare dso_local void @__cxa_throw(i8*, i8*, i8*)
; Function Attrs: nounwind
declare dso_local void @_ZN17CBaseRecordVectorD2Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #7
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71
%1 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #17
unreachable
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(60) %struct.CDirItem* @_ZN13CObjectVectorI8CDirItemEixEi(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.5*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8
%0 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !3
%3 = bitcast i8* %2 to %struct.CDirItem*
ret %struct.CDirItem* %3
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local zeroext i1 @_ZNK8CDirItem5IsDirEv(%struct.CDirItem* nonnull align 8 dereferenceable(60) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %struct.CDirItem*, align 8
store %struct.CDirItem* %this, %struct.CDirItem** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CDirItem*, %struct.CDirItem** %this.addr, align 8
%Attrib = getelementptr inbounds %struct.CDirItem, %struct.CDirItem* %this1, i32 0, i32 5
%0 = load i32, i32* %Attrib, align 8, !tbaa !73
%and = and i32 %0, 16
%cmp = icmp ne i32 %and, 0
ret i1 %cmp
}
declare dso_local void @_ZNK9CDirItems10GetPhyPathEi(%class.CStringBase* sret(%class.CStringBase) align 8, %class.CDirItems* nonnull align 8 dereferenceable(128), i32) #4
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9CDirItemsD2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.CDirItems*, align 8
store %class.CDirItems* %this, %class.CDirItems** %this.addr, align 8, !tbaa !3
%this1 = load %class.CDirItems*, %class.CDirItems** %this.addr, align 8
%Items = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 3
call void @_ZN13CObjectVectorI8CDirItemED2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %Items) #3
%LogParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 2
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %LogParents) #3
%PhyParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 1
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %PhyParents) #3
%Prefixes = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %Prefixes) #3
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
store i32* null, i32** %_chars, align 8, !tbaa !10
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 0, i32* %_length, align 8, !tbaa !13
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
store i32 0, i32* %_capacity, align 4, !tbaa !14
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 3)
ret void
}
declare dso_local zeroext i1 @_ZN8NWindows5NFile10NDirectory17MyGetFullPathNameEPKwR11CStringBaseIwE(i32*, %class.CStringBase* nonnull align 8 dereferenceable(16)) #4
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !3
%3 = bitcast i8* %2 to %class.CStringBase*
ret %class.CStringBase* %3
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !10
ret i32* %0
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.4*, align 8
store %class.CRecordVector.4* %this, %class.CRecordVector.4** %this.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector.4*, %class.CRecordVector.4** %this.addr, align 8
%0 = bitcast %class.CRecordVector.4* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 4)
%1 = bitcast %class.CRecordVector.4* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIiE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71
ret void
}
declare dso_local void @_Z13SortFileNamesRK13CObjectVectorI11CStringBaseIwEER13CRecordVectorIiE(%class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CRecordVector.4* nonnull align 8 dereferenceable(32)) #4
declare dso_local void @_ZN17CBaseRecordVector7ReserveEi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32), i32) #4
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.4*, align 8
%index.addr = alloca i32, align 4
store %class.CRecordVector.4* %this, %class.CRecordVector.4** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CRecordVector.4*, %class.CRecordVector.4** %this.addr, align 8
%0 = bitcast %class.CRecordVector.4* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3
%1 = load i8*, i8** %_items, align 8, !tbaa !77
%2 = bitcast i8* %1 to i32*
%3 = load i32, i32* %index.addr, align 4, !tbaa !15
%idxprom = sext i32 %3 to i64
%arrayidx = getelementptr inbounds i32, i32* %2, i64 %idxprom
ret i32* %arrayidx
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL16SetMethodOptionsRKN18NCommandLineParser7CParserER13CObjectVectorI9CPropertyE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %properties) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%parser.addr = alloca %"class.NCommandLineParser::CParser"*, align 8
%properties.addr = alloca %class.CObjectVector.1*, align 8
%i = alloca i32, align 4
%property = alloca %struct.CProperty, align 8
%postString = alloca %class.CStringBase*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%index = alloca i32, align 4
%ref.tmp = alloca %class.CStringBase, align 8
%ref.tmp20 = alloca %class.CStringBase, align 8
store %"class.NCommandLineParser::CParser"* %parser, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
store %class.CObjectVector.1* %properties, %class.CObjectVector.1** %properties.addr, align 8, !tbaa !3
%0 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %0, i64 8)
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call, i32 0, i32 0
%1 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33
%tobool = trunc i8 %1 to i1
br i1 %tobool, label %if.then, label %if.end35
if.then: ; preds = %entry
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %if.then
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call1 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %4, i64 8)
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call1, i32 0, i32 3
%5 = bitcast %class.CObjectVector* %PostStrings to %class.CBaseRecordVector*
%call2 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %5)
%cmp = icmp slt i32 %3, %call2
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%6 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3
br label %for.end
for.body: ; preds = %for.cond
%7 = bitcast %struct.CProperty* %property to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %7) #3
call void @_ZN9CPropertyC2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %property)
%8 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %8) #3
%9 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call3 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %9, i64 8)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %for.body
%PostStrings4 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call3, i32 0, i32 3
%10 = load i32, i32* %i, align 4, !tbaa !15
%call6 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings4, i32 %10)
to label %invoke.cont5 unwind label %lpad
invoke.cont5: ; preds = %invoke.cont
store %class.CStringBase* %call6, %class.CStringBase** %postString, align 8, !tbaa !3
%11 = bitcast i32* %index to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %11) #3
%12 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%call9 = invoke i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %12, i32 signext 61)
to label %invoke.cont8 unwind label %lpad7
invoke.cont8: ; preds = %invoke.cont5
store i32 %call9, i32* %index, align 4, !tbaa !15
%13 = load i32, i32* %index, align 4, !tbaa !15
%cmp10 = icmp slt i32 %13, 0
br i1 %cmp10, label %if.then11, label %if.else
if.then11: ; preds = %invoke.cont8
%14 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %property, i32 0, i32 0
%call13 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name, %class.CStringBase* nonnull align 8 dereferenceable(16) %14)
to label %invoke.cont12 unwind label %lpad7
invoke.cont12: ; preds = %if.then11
br label %if.end
lpad: ; preds = %invoke.cont, %for.body
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
br label %ehcleanup31
lpad7: ; preds = %if.end, %if.then11, %invoke.cont5
%18 = landingpad { i8*, i32 }
cleanup
%19 = extractvalue { i8*, i32 } %18, 0
store i8* %19, i8** %exn.slot, align 8
%20 = extractvalue { i8*, i32 } %18, 1
store i32 %20, i32* %ehselector.slot, align 4
br label %ehcleanup30
if.else: ; preds = %invoke.cont8
%21 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %21) #3
%22 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%23 = load i32, i32* %index, align 4, !tbaa !15
invoke void @_ZNK11CStringBaseIwE4LeftEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %class.CStringBase* nonnull align 8 dereferenceable(16) %22, i32 %23)
to label %invoke.cont15 unwind label %lpad14
invoke.cont15: ; preds = %if.else
%Name16 = getelementptr inbounds %struct.CProperty, %struct.CProperty* %property, i32 0, i32 0
%call19 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name16, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp)
to label %invoke.cont18 unwind label %lpad17
invoke.cont18: ; preds = %invoke.cont15
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%24 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %24) #3
%25 = bitcast %class.CStringBase* %ref.tmp20 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %25) #3
%26 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%27 = load i32, i32* %index, align 4, !tbaa !15
%add = add nsw i32 %27, 1
invoke void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp20, %class.CStringBase* nonnull align 8 dereferenceable(16) %26, i32 %add)
to label %invoke.cont22 unwind label %lpad21
invoke.cont22: ; preds = %invoke.cont18
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %property, i32 0, i32 1
%call25 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp20)
to label %invoke.cont24 unwind label %lpad23
invoke.cont24: ; preds = %invoke.cont22
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp20) #3
%28 = bitcast %class.CStringBase* %ref.tmp20 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %28) #3
br label %if.end
lpad14: ; preds = %if.else
%29 = landingpad { i8*, i32 }
cleanup
%30 = extractvalue { i8*, i32 } %29, 0
store i8* %30, i8** %exn.slot, align 8
%31 = extractvalue { i8*, i32 } %29, 1
store i32 %31, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad17: ; preds = %invoke.cont15
%32 = landingpad { i8*, i32 }
cleanup
%33 = extractvalue { i8*, i32 } %32, 0
store i8* %33, i8** %exn.slot, align 8
%34 = extractvalue { i8*, i32 } %32, 1
store i32 %34, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
br label %ehcleanup
ehcleanup: ; preds = %lpad17, %lpad14
%35 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %35) #3
br label %ehcleanup30
lpad21: ; preds = %invoke.cont18
%36 = landingpad { i8*, i32 }
cleanup
%37 = extractvalue { i8*, i32 } %36, 0
store i8* %37, i8** %exn.slot, align 8
%38 = extractvalue { i8*, i32 } %36, 1
store i32 %38, i32* %ehselector.slot, align 4
br label %ehcleanup27
lpad23: ; preds = %invoke.cont22
%39 = landingpad { i8*, i32 }
cleanup
%40 = extractvalue { i8*, i32 } %39, 0
store i8* %40, i8** %exn.slot, align 8
%41 = extractvalue { i8*, i32 } %39, 1
store i32 %41, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp20) #3
br label %ehcleanup27
ehcleanup27: ; preds = %lpad23, %lpad21
%42 = bitcast %class.CStringBase* %ref.tmp20 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %42) #3
br label %ehcleanup30
if.end: ; preds = %invoke.cont24, %invoke.cont12
%43 = load %class.CObjectVector.1*, %class.CObjectVector.1** %properties.addr, align 8, !tbaa !3
%call29 = invoke i32 @_ZN13CObjectVectorI9CPropertyE3AddERKS0_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %43, %struct.CProperty* nonnull align 8 dereferenceable(32) %property)
to label %invoke.cont28 unwind label %lpad7
invoke.cont28: ; preds = %if.end
%44 = bitcast i32* %index to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %44) #3
%45 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %45) #3
call void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %property) #3
%46 = bitcast %struct.CProperty* %property to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %46) #3
br label %for.inc
for.inc: ; preds = %invoke.cont28
%47 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %47, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !78
ehcleanup30: ; preds = %ehcleanup27, %ehcleanup, %lpad7
%48 = bitcast i32* %index to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %48) #3
br label %ehcleanup31
ehcleanup31: ; preds = %ehcleanup30, %lpad
%49 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %49) #3
call void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %property) #3
%50 = bitcast %struct.CProperty* %property to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %50) #3
%51 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %51) #3
br label %eh.resume
for.end: ; preds = %for.cond.cleanup
br label %if.end35
if.end35: ; preds = %for.end, %entry
ret void
eh.resume: ; preds = %ehcleanup31
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val36 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val36
}
declare dso_local void @_ZN8NWindows5NFile5NName22NormalizeDirPathPrefixER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #4
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !3
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) #3
ret void
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL20SetAddCommandOptionsN12NCommandType5EEnumERKN18NCommandLineParser7CParserER14CUpdateOptions(i32 %commandType, %"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, %struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %options) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%commandType.addr = alloca i32, align 4
%parser.addr = alloca %"class.NCommandLineParser::CParser"*, align 8
%options.addr = alloca %struct.CUpdateOptions*, align 8
%defaultActionSet = alloca %"struct.NUpdateArchive::CActionSet", align 4
%updateMainCommand = alloca %struct.CUpdateArchiveCommand, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%postString = alloca %class.CStringBase*, align 8
%sv = alloca %class.CObjectVector*, align 8
%i = alloca i32, align 4
%size = alloca i64, align 8
store i32 %commandType, i32* %commandType.addr, align 4, !tbaa !79
store %"class.NCommandLineParser::CParser"* %parser, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
store %struct.CUpdateOptions* %options, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%0 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.lifetime.start.p0i8(i64 28, i8* %0) #3
%1 = load i32, i32* %commandType.addr, align 4, !tbaa !79
switch i32 %1, label %sw.default [
i32 0, label %sw.bb
i32 2, label %sw.bb1
]
sw.bb: ; preds = %entry
%2 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 bitcast (%"struct.NUpdateArchive::CActionSet"* @_ZN14NUpdateArchive13kAddActionSetE to i8*), i64 28, i1 false), !tbaa.struct !80
br label %sw.epilog
sw.bb1: ; preds = %entry
%3 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 bitcast (%"struct.NUpdateArchive::CActionSet"* @_ZN14NUpdateArchive16kDeleteActionSetE to i8*), i64 28, i1 false), !tbaa.struct !80
br label %sw.epilog
sw.default: ; preds = %entry
%4 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %4, i8* align 4 bitcast (%"struct.NUpdateArchive::CActionSet"* @_ZN14NUpdateArchive16kUpdateActionSetE to i8*), i64 28, i1 false), !tbaa.struct !80
br label %sw.epilog
sw.epilog: ; preds = %sw.default, %sw.bb1, %sw.bb
%5 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%UpdateArchiveItself = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %5, i32 0, i32 2
store i8 1, i8* %UpdateArchiveItself, align 8, !tbaa !82
%6 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %6, i32 0, i32 1
%7 = bitcast %class.CObjectVector.2* %Commands to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %7)
%8 = bitcast %struct.CUpdateArchiveCommand* %updateMainCommand to i8*
call void @llvm.lifetime.start.p0i8(i64 168, i8* %8) #3
call void @_ZN21CUpdateArchiveCommandC2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand)
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %updateMainCommand, i32 0, i32 2
%9 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet to i8*
%10 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %9, i8* align 4 %10, i64 28, i1 false), !tbaa.struct !80
%11 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%Commands2 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %11, i32 0, i32 1
%call = invoke i32 @_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands2, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %sw.epilog
%12 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call4 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %12, i64 16)
to label %invoke.cont3 unwind label %lpad
invoke.cont3: ; preds = %invoke.cont
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call4, i32 0, i32 0
%13 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33
%tobool = trunc i8 %13 to i1
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %invoke.cont3
%14 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%15 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call6 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %15, i64 16)
to label %invoke.cont5 unwind label %lpad
invoke.cont5: ; preds = %if.then
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call6, i32 0, i32 3
invoke void @_ZL24ParseUpdateCommandStringR14CUpdateOptionsRK13CObjectVectorI11CStringBaseIwEERKN14NUpdateArchive10CActionSetE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %14, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %defaultActionSet)
to label %invoke.cont7 unwind label %lpad
invoke.cont7: ; preds = %invoke.cont5
br label %if.end
lpad: ; preds = %if.end43, %invoke.cont39, %invoke.cont36, %if.then35, %if.end28, %if.end, %invoke.cont5, %if.then, %invoke.cont, %sw.epilog
%16 = landingpad { i8*, i32 }
cleanup
%17 = extractvalue { i8*, i32 } %16, 0
store i8* %17, i8** %exn.slot, align 8
%18 = extractvalue { i8*, i32 } %16, 1
store i32 %18, i32* %ehselector.slot, align 4
br label %ehcleanup65
if.end: ; preds = %invoke.cont7, %invoke.cont3
%19 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call9 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %19, i64 10)
to label %invoke.cont8 unwind label %lpad
invoke.cont8: ; preds = %if.end
%ThereIs10 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call9, i32 0, i32 0
%20 = load i8, i8* %ThereIs10, align 8, !tbaa !31, !range !33
%tobool11 = trunc i8 %20 to i1
br i1 %tobool11, label %if.then12, label %if.end28
if.then12: ; preds = %invoke.cont8
%21 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %21) #3
%22 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call15 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %22, i64 10)
to label %invoke.cont14 unwind label %lpad13
invoke.cont14: ; preds = %if.then12
%PostStrings16 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call15, i32 0, i32 3
%call18 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings16, i32 0)
to label %invoke.cont17 unwind label %lpad13
invoke.cont17: ; preds = %invoke.cont14
store %class.CStringBase* %call18, %class.CStringBase** %postString, align 8, !tbaa !3
%23 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%call20 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %23)
to label %invoke.cont19 unwind label %lpad13
invoke.cont19: ; preds = %invoke.cont17
br i1 %call20, label %if.then21, label %if.else
if.then21: ; preds = %invoke.cont19
%24 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%WorkingDir = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %24, i32 0, i32 13
%call23 = invoke zeroext i1 @_ZN8NWindows5NFile10NDirectory13MyGetTempPathER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir)
to label %invoke.cont22 unwind label %lpad13
invoke.cont22: ; preds = %if.then21
br label %if.end27
lpad13: ; preds = %if.else, %if.then21, %invoke.cont17, %invoke.cont14, %if.then12
%25 = landingpad { i8*, i32 }
cleanup
%26 = extractvalue { i8*, i32 } %25, 0
store i8* %26, i8** %exn.slot, align 8
%27 = extractvalue { i8*, i32 } %25, 1
store i32 %27, i32* %ehselector.slot, align 4
%28 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %28) #3
br label %ehcleanup65
if.else: ; preds = %invoke.cont19
%29 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3
%30 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%WorkingDir24 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %30, i32 0, i32 13
%call26 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir24, %class.CStringBase* nonnull align 8 dereferenceable(16) %29)
to label %invoke.cont25 unwind label %lpad13
invoke.cont25: ; preds = %if.else
br label %if.end27
if.end27: ; preds = %invoke.cont25, %invoke.cont22
%31 = bitcast %class.CStringBase** %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %31) #3
br label %if.end28
if.end28: ; preds = %if.end27, %invoke.cont8
%32 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call30 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %32, i64 19)
to label %invoke.cont29 unwind label %lpad
invoke.cont29: ; preds = %if.end28
%ThereIs31 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call30, i32 0, i32 0
%33 = load i8, i8* %ThereIs31, align 8, !tbaa !31, !range !33
%tobool32 = trunc i8 %33 to i1
%34 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%SfxMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %34, i32 0, i32 4
%frombool = zext i1 %tobool32 to i8
store i8 %frombool, i8* %SfxMode, align 8, !tbaa !83
%35 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%SfxMode33 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %35, i32 0, i32 4
%36 = load i8, i8* %SfxMode33, align 8, !tbaa !83, !range !33
%tobool34 = trunc i8 %36 to i1
br i1 %tobool34, label %if.then35, label %if.end43
if.then35: ; preds = %invoke.cont29
%37 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call37 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %37, i64 19)
to label %invoke.cont36 unwind label %lpad
invoke.cont36: ; preds = %if.then35
%PostStrings38 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call37, i32 0, i32 3
%call40 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings38, i32 0)
to label %invoke.cont39 unwind label %lpad
invoke.cont39: ; preds = %invoke.cont36
%38 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %38, i32 0, i32 5
%call42 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule, %class.CStringBase* nonnull align 8 dereferenceable(16) %call40)
to label %invoke.cont41 unwind label %lpad
invoke.cont41: ; preds = %invoke.cont39
br label %if.end43
if.end43: ; preds = %invoke.cont41, %invoke.cont29
%39 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call45 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %39, i64 17)
to label %invoke.cont44 unwind label %lpad
invoke.cont44: ; preds = %if.end43
%ThereIs46 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call45, i32 0, i32 0
%40 = load i8, i8* %ThereIs46, align 8, !tbaa !31, !range !33
%tobool47 = trunc i8 %40 to i1
br i1 %tobool47, label %if.then48, label %if.end64
if.then48: ; preds = %invoke.cont44
%41 = bitcast %class.CObjectVector** %sv to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %41) #3
%42 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3
%call51 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %42, i64 17)
to label %invoke.cont50 unwind label %lpad49
invoke.cont50: ; preds = %if.then48
%PostStrings52 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call51, i32 0, i32 3
store %class.CObjectVector* %PostStrings52, %class.CObjectVector** %sv, align 8, !tbaa !3
%43 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %43) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %invoke.cont50
%44 = load i32, i32* %i, align 4, !tbaa !15
%45 = load %class.CObjectVector*, %class.CObjectVector** %sv, align 8, !tbaa !3
%46 = bitcast %class.CObjectVector* %45 to %class.CBaseRecordVector*
%call53 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %46)
%cmp = icmp slt i32 %44, %call53
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%47 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %47) #3
br label %for.end
lpad49: ; preds = %if.then48
%48 = landingpad { i8*, i32 }
cleanup
%49 = extractvalue { i8*, i32 } %48, 0
store i8* %49, i8** %exn.slot, align 8
%50 = extractvalue { i8*, i32 } %48, 1
store i32 %50, i32* %ehselector.slot, align 4
br label %ehcleanup
for.body: ; preds = %for.cond
%51 = bitcast i64* %size to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %51) #3
%52 = load %class.CObjectVector*, %class.CObjectVector** %sv, align 8, !tbaa !3
%53 = load i32, i32* %i, align 4, !tbaa !15
%call56 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %52, i32 %53)
to label %invoke.cont55 unwind label %lpad54
invoke.cont55: ; preds = %for.body
%call58 = invoke zeroext i1 @_ZL16ParseComplexSizeRK11CStringBaseIwERy(%class.CStringBase* nonnull align 8 dereferenceable(16) %call56, i64* nonnull align 8 dereferenceable(8) %size)
to label %invoke.cont57 unwind label %lpad54
invoke.cont57: ; preds = %invoke.cont55
br i1 %call58, label %if.end61, label %if.then59
if.then59: ; preds = %invoke.cont57
invoke void @_ZL14ThrowExceptionPKc(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.51, i64 0, i64 0))
to label %invoke.cont60 unwind label %lpad54
invoke.cont60: ; preds = %if.then59
br label %if.end61
lpad54: ; preds = %if.end61, %if.then59, %invoke.cont55, %for.body
%54 = landingpad { i8*, i32 }
cleanup
%55 = extractvalue { i8*, i32 } %54, 0
store i8* %55, i8** %exn.slot, align 8
%56 = extractvalue { i8*, i32 } %54, 1
store i32 %56, i32* %ehselector.slot, align 4
%57 = bitcast i64* %size to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %57) #3
%58 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %58) #3
br label %ehcleanup
if.end61: ; preds = %invoke.cont60, %invoke.cont57
%59 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%VolumesSizes = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %59, i32 0, i32 14
%60 = load i64, i64* %size, align 8, !tbaa !84
%call63 = invoke i32 @_ZN13CRecordVectorIyE3AddEy(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %VolumesSizes, i64 %60)
to label %invoke.cont62 unwind label %lpad54
invoke.cont62: ; preds = %if.end61
%61 = bitcast i64* %size to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %61) #3
br label %for.inc
for.inc: ; preds = %invoke.cont62
%62 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %62, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !85
for.end: ; preds = %for.cond.cleanup
%63 = bitcast %class.CObjectVector** %sv to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %63) #3
br label %if.end64
ehcleanup: ; preds = %lpad54, %lpad49
%64 = bitcast %class.CObjectVector** %sv to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %64) #3
br label %ehcleanup65
if.end64: ; preds = %for.end, %invoke.cont44
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand) #3
%65 = bitcast %struct.CUpdateArchiveCommand* %updateMainCommand to i8*
call void @llvm.lifetime.end.p0i8(i64 168, i8* %65) #3
%66 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.lifetime.end.p0i8(i64 28, i8* %66) #3
ret void
ehcleanup65: ; preds = %ehcleanup, %lpad13, %lpad
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand) #3
%67 = bitcast %struct.CUpdateArchiveCommand* %updateMainCommand to i8*
call void @llvm.lifetime.end.p0i8(i64 168, i8* %67) #3
%68 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8*
call void @llvm.lifetime.end.p0i8(i64 28, i8* %68) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup65
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val68 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val68
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%0 = load i32, i32* %_length, align 8, !tbaa !13
ret i32 %0
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZN11CStringBaseIwE6DeleteEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %index, i32 %count) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%index.addr = alloca i32, align 4
%count.addr = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %count, i32* %count.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load i32, i32* %index.addr, align 4, !tbaa !15
%1 = load i32, i32* %count.addr, align 4, !tbaa !15
%add = add nsw i32 %0, %1
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%2 = load i32, i32* %_length, align 8, !tbaa !13
%cmp = icmp sgt i32 %add, %2
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%3 = load i32, i32* %_length2, align 8, !tbaa !13
%4 = load i32, i32* %index.addr, align 4, !tbaa !15
%sub = sub nsw i32 %3, %4
store i32 %sub, i32* %count.addr, align 4, !tbaa !15
br label %if.end
if.end: ; preds = %if.then, %entry
%5 = load i32, i32* %count.addr, align 4, !tbaa !15
%cmp3 = icmp sgt i32 %5, 0
br i1 %cmp3, label %if.then4, label %if.end8
if.then4: ; preds = %if.end
%6 = load i32, i32* %index.addr, align 4, !tbaa !15
%7 = load i32, i32* %index.addr, align 4, !tbaa !15
%8 = load i32, i32* %count.addr, align 4, !tbaa !15
%add5 = add nsw i32 %7, %8
call void @_ZN11CStringBaseIwE9MoveItemsEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %6, i32 %add5)
%9 = load i32, i32* %count.addr, align 4, !tbaa !15
%_length6 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%10 = load i32, i32* %_length6, align 8, !tbaa !13
%sub7 = sub nsw i32 %10, %9
store i32 %sub7, i32* %_length6, align 8, !tbaa !13
br label %if.end8
if.end8: ; preds = %if.then4, %if.end
%_length9 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%11 = load i32, i32* %_length9, align 8, !tbaa !13
ret i32 %11
}
; Function Attrs: mustprogress uwtable
define internal zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %s, i32* nonnull align 4 dereferenceable(4) %v) #5 {
entry:
%retval = alloca i1, align 1
%s.addr = alloca i32*, align 8
%v.addr = alloca i32*, align 8
%end = alloca i32*, align 8
%number = alloca i64, align 8
%cleanup.dest.slot = alloca i32, align 4
store i32* %s, i32** %s.addr, align 8, !tbaa !3
store i32* %v, i32** %v.addr, align 8, !tbaa !3
%0 = bitcast i32** %end to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3
%1 = bitcast i64* %number to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %1) #3
%2 = load i32*, i32** %s.addr, align 8, !tbaa !3
%call = call i64 @_Z21ConvertStringToUInt64PKwPS0_(i32* %2, i32** %end)
store i64 %call, i64* %number, align 8, !tbaa !84
%3 = load i32*, i32** %end, align 8, !tbaa !3
%4 = load i32, i32* %3, align 4, !tbaa !57
%cmp = icmp ne i32 %4, 0
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end: ; preds = %entry
%5 = load i64, i64* %number, align 8, !tbaa !84
%cmp1 = icmp ugt i64 %5, 4294967295
br i1 %cmp1, label %if.then2, label %if.end3
if.then2: ; preds = %if.end
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end3: ; preds = %if.end
%6 = load i64, i64* %number, align 8, !tbaa !84
%conv = trunc i64 %6 to i32
%7 = load i32*, i32** %v.addr, align 8, !tbaa !3
store i32 %conv, i32* %7, align 4, !tbaa !15
store i1 true, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end3, %if.then2, %if.then
%8 = bitcast i64* %number to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %8) #3
%9 = bitcast i32** %end to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %9) #3
%10 = load i1, i1* %retval, align 1
ret i1 %10
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !10
%call = call i32* @_Z13MyStringUpperPw(i32* %0)
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %startIndex) #5 comdat align 2 {
entry:
%result.ptr = alloca i8*, align 8
%this.addr = alloca %class.CStringBase*, align 8
%startIndex.addr = alloca i32, align 4
%0 = bitcast %class.CStringBase* %agg.result to i8*
store i8* %0, i8** %result.ptr, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%1 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%2 = load i32, i32* %_length, align 8, !tbaa !13
%3 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%sub = sub nsw i32 %2, %3
call void @_ZNK11CStringBaseIwE3MidEii(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %1, i32 %sub)
ret void
}
; Function Attrs: uwtable
define internal void @__cxx_global_var_init.27() #1 section ".text.startup" {
entry:
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.5, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.9, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([6 x i32], [6 x i32]* @.str.10, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.11, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.12, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.13, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 2), align 4, !tbaa !90
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.14, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.15, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.16, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 2), align 4, !tbaa !90
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.17, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 2), align 4, !tbaa !90
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.18, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.19, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 2), align 4, !tbaa !90
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.20, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 2), align 4, !tbaa !90
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.21, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 2), align 4, !tbaa !90
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.22, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 2), align 4, !tbaa !90
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.23, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.24, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 2), align 4, !tbaa !90
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.25, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 1), align 8, !tbaa !89
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 2), align 4, !tbaa !90
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.26, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 0), align 16, !tbaa !86
store i32 4, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 4), align 4, !tbaa !92
%0 = load i32*, i32** @_ZL20kRecursedPostCharSet, align 8, !tbaa !3
store i32* %0, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.28, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.29, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.30, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.31, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 0), align 16, !tbaa !86
store i32 4, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 2), align 4, !tbaa !90
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 3), align 16, !tbaa !91
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 4), align 4, !tbaa !92
%1 = load i32*, i32** @_ZL21kOverwritePostCharSet, align 8, !tbaa !3
store i32* %1, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.32, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.33, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.34, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 0), align 16, !tbaa !86
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.35, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.36, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.37, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 0), align 16, !tbaa !86
store i32 4, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 4), align 4, !tbaa !92
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.3, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 5), align 8, !tbaa !93
store i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.38, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 0), align 16, !tbaa !86
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 1), align 8, !tbaa !89
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 2), align 4, !tbaa !90
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 3), align 16, !tbaa !91
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 4), align 4, !tbaa !92
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 5), align 8, !tbaa !93
%2 = call {}* @llvm.invariant.start.p0i8(i64 960, i8* bitcast ([30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms to i8*))
ret void
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare {}* @llvm.invariant.start.p0i8(i64 immarg, i8* nocapture) #8
declare dso_local i32 @_ZN18NCommandLineParser12ParseCommandEiPKNS_12CCommandFormERK11CStringBaseIwERS4_(i32, %"struct.NCommandLineParser::CCommandForm"*, %class.CStringBase* nonnull align 8 dereferenceable(16), %class.CStringBase* nonnull align 8 dereferenceable(16)) #4
declare dso_local signext i32 @_Z11MyCharUpperw(i32 signext) #4
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 signext %c) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%c.addr = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %c, i32* %c.addr, align 4, !tbaa !57
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load i32, i32* %c.addr, align 4, !tbaa !57
%call = call i32 @_ZNK11CStringBaseIwE4FindEwi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 signext %0, i32 0)
ret i32 %call
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL23AddToCensorFromListFileRN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, i32* %fileName, i1 zeroext %include, i32 %type, i32 %codePage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8
%fileName.addr = alloca i32*, align 8
%include.addr = alloca i8, align 1
%type.addr = alloca i32, align 4
%codePage.addr = alloca i32, align 4
%names = alloca %class.CObjectVector, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%i = alloca i32, align 4
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
store i32* %fileName, i32** %fileName.addr, align 8, !tbaa !3
%frombool = zext i1 %include to i8
store i8 %frombool, i8* %include.addr, align 1, !tbaa !42
store i32 %type, i32* %type.addr, align 4, !tbaa !43
store i32 %codePage, i32* %codePage.addr, align 4, !tbaa !15
%0 = bitcast %class.CObjectVector* %names to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %0) #3
call void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names)
%1 = load i32*, i32** %fileName.addr, align 8, !tbaa !3
%call = invoke zeroext i1 @_ZN8NWindows5NFile5NFind13DoesFileExistEPKw(i32* %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
br i1 %call, label %if.end, label %if.then
if.then: ; preds = %invoke.cont
%exception = call i8* @__cxa_allocate_exception(i64 8) #3
%2 = bitcast i8* %exception to i8**
%3 = load i8*, i8** @_ZL19kCannotFindListFile, align 8, !tbaa !3
store i8* %3, i8** %2, align 16, !tbaa !3
invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad
lpad: ; preds = %if.then3, %if.end, %if.then, %entry
%4 = landingpad { i8*, i32 }
cleanup
%5 = extractvalue { i8*, i32 } %4, 0
store i8* %5, i8** %exn.slot, align 8
%6 = extractvalue { i8*, i32 } %4, 1
store i32 %6, i32* %ehselector.slot, align 4
br label %ehcleanup
if.end: ; preds = %invoke.cont
%7 = load i32*, i32** %fileName.addr, align 8, !tbaa !3
%8 = load i32, i32* %codePage.addr, align 4, !tbaa !15
%call2 = invoke zeroext i1 @_Z21ReadNamesFromListFilePKwR13CObjectVectorI11CStringBaseIwEEj(i32* %7, %class.CObjectVector* nonnull align 8 dereferenceable(32) %names, i32 %8)
to label %invoke.cont1 unwind label %lpad
invoke.cont1: ; preds = %if.end
br i1 %call2, label %if.end5, label %if.then3
if.then3: ; preds = %invoke.cont1
%exception4 = call i8* @__cxa_allocate_exception(i64 8) #3
%9 = bitcast i8* %exception4 to i8**
%10 = load i8*, i8** @_ZL18kIncorrectListFile, align 8, !tbaa !3
store i8* %10, i8** %9, align 16, !tbaa !3
invoke void @__cxa_throw(i8* %exception4, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad
if.end5: ; preds = %invoke.cont1
%11 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %11) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %if.end5
%12 = load i32, i32* %i, align 4, !tbaa !15
%13 = bitcast %class.CObjectVector* %names to %class.CBaseRecordVector*
%call6 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %13)
%cmp = icmp slt i32 %12, %call6
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%14 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %14) #3
br label %for.end
for.body: ; preds = %for.cond
%15 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3
%16 = load i32, i32* %i, align 4, !tbaa !15
%call9 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names, i32 %16)
to label %invoke.cont8 unwind label %lpad7
invoke.cont8: ; preds = %for.body
%17 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33
%tobool = trunc i8 %17 to i1
%18 = load i32, i32* %type.addr, align 4, !tbaa !43
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %15, %class.CStringBase* nonnull align 8 dereferenceable(16) %call9, i1 zeroext %tobool, i32 %18)
to label %invoke.cont10 unwind label %lpad7
invoke.cont10: ; preds = %invoke.cont8
br label %for.inc
for.inc: ; preds = %invoke.cont10
%19 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %19, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !94
lpad7: ; preds = %invoke.cont8, %for.body
%20 = landingpad { i8*, i32 }
cleanup
%21 = extractvalue { i8*, i32 } %20, 0
store i8* %21, i8** %exn.slot, align 8
%22 = extractvalue { i8*, i32 } %20, 1
store i32 %22, i32* %ehselector.slot, align 4
%23 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %23) #3
br label %ehcleanup
for.end: ; preds = %for.cond.cleanup
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names) #3
%24 = bitcast %class.CObjectVector* %names to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %24) #3
ret void
ehcleanup: ; preds = %lpad7, %lpad
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names) #3
%25 = bitcast %class.CObjectVector* %names to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %25) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val12 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val12
unreachable: ; preds = %if.then3, %if.then
unreachable
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindEwi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 signext %c, i32 %startIndex) #5 comdat align 2 {
entry:
%retval = alloca i32, align 4
%this.addr = alloca %class.CStringBase*, align 8
%c.addr = alloca i32, align 4
%startIndex.addr = alloca i32, align 4
%p = alloca i32*, align 8
%cleanup.dest.slot = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %c, i32* %c.addr, align 4, !tbaa !57
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = bitcast i32** %p to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%1 = load i32*, i32** %_chars, align 8, !tbaa !10
%2 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%idx.ext = sext i32 %2 to i64
%add.ptr = getelementptr inbounds i32, i32* %1, i64 %idx.ext
store i32* %add.ptr, i32** %p, align 8, !tbaa !3
br label %for.cond
for.cond: ; preds = %if.end5, %entry
%3 = load i32*, i32** %p, align 8, !tbaa !3
%4 = load i32, i32* %3, align 4, !tbaa !57
%5 = load i32, i32* %c.addr, align 4, !tbaa !57
%cmp = icmp eq i32 %4, %5
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %for.cond
%6 = load i32*, i32** %p, align 8, !tbaa !3
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%7 = load i32*, i32** %_chars2, align 8, !tbaa !10
%sub.ptr.lhs.cast = ptrtoint i32* %6 to i64
%sub.ptr.rhs.cast = ptrtoint i32* %7 to i64
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 4
%conv = trunc i64 %sub.ptr.div to i32
store i32 %conv, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end: ; preds = %for.cond
%8 = load i32*, i32** %p, align 8, !tbaa !3
%9 = load i32, i32* %8, align 4, !tbaa !57
%cmp3 = icmp eq i32 %9, 0
br i1 %cmp3, label %if.then4, label %if.end5
if.then4: ; preds = %if.end
store i32 -1, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end5: ; preds = %if.end
%10 = load i32*, i32** %p, align 8, !tbaa !3
%call = call i32* @_ZN11CStringBaseIwE18GetNextCharPointerEPw(i32* %10)
store i32* %call, i32** %p, align 8, !tbaa !3
br label %for.cond, !llvm.loop !95
cleanup: ; preds = %if.then4, %if.then
%11 = bitcast i32** %p to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %11) #3
%12 = load i32, i32* %retval, align 4
ret i32 %12
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32* @_ZN11CStringBaseIwE18GetNextCharPointerEPw(i32* %p) #5 comdat align 2 {
entry:
%p.addr = alloca i32*, align 8
store i32* %p, i32** %p.addr, align 8, !tbaa !3
%0 = load i32*, i32** %p.addr, align 8, !tbaa !3
%call = call i32* @_Z26MyStringGetNextCharPointerPw(i32* %0)
ret i32* %call
}
; Function Attrs: inlinehint mustprogress nounwind uwtable
define linkonce_odr dso_local i32* @_Z26MyStringGetNextCharPointerPw(i32* %p) #11 comdat {
entry:
%p.addr = alloca i32*, align 8
store i32* %p, i32** %p.addr, align 8, !tbaa !3
%0 = load i32*, i32** %p.addr, align 8, !tbaa !3
%add.ptr = getelementptr inbounds i32, i32* %0, i64 1
ret i32* %add.ptr
}
declare dso_local zeroext i1 @_ZN8NWindows5NFile5NFind13DoesFileExistEPKw(i32*) #4
declare dso_local zeroext i1 @_Z21ReadNamesFromListFilePKwR13CObjectVectorI11CStringBaseIwEEj(i32*, %class.CObjectVector* nonnull align 8 dereferenceable(32), i32) #4
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%call = call nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEEixEi(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1, i32 0)
ret %"struct.NWildcard::CPair"* %call
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEEixEi(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this, i32 %index) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
%call = call nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !3
%3 = bitcast i8* %2 to %"struct.NWildcard::CPair"*
ret %"struct.NWildcard::CPair"* %3
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
%index.addr = alloca i32, align 4
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3
%1 = load i8*, i8** %_items, align 8, !tbaa !77
%2 = bitcast i8* %1 to i8**
%3 = load i32, i32* %index.addr, align 4, !tbaa !15
%idxprom = sext i32 %3 to i64
%arrayidx = getelementptr inbounds i8*, i8** %2, i64 %idxprom
ret i8** %arrayidx
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN28CArchiveCommandLineExceptionC2EPKc(%struct.CArchiveCommandLineException* nonnull align 8 dereferenceable(16) %this, i8* %errorMessage) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %struct.CArchiveCommandLineException*, align 8
%errorMessage.addr = alloca i8*, align 8
store %struct.CArchiveCommandLineException* %this, %struct.CArchiveCommandLineException** %this.addr, align 8, !tbaa !3
store i8* %errorMessage, i8** %errorMessage.addr, align 8, !tbaa !3
%this1 = load %struct.CArchiveCommandLineException*, %struct.CArchiveCommandLineException** %this.addr, align 8
%0 = bitcast %struct.CArchiveCommandLineException* %this1 to %class.CStringBase.9*
%1 = load i8*, i8** %errorMessage.addr, align 8, !tbaa !3
call void @_ZN11CStringBaseIcEC2EPKc(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %0, i8* %1)
ret void
}
declare dso_local void @__cxa_free_exception(i8*)
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIcED2Ev(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase.9*, align 8
store %class.CStringBase.9* %this, %class.CStringBase.9** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase.9*, %class.CStringBase.9** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
%0 = load i8*, i8** %_chars, align 8, !tbaa !96
%isnull = icmp eq i8* %0, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %entry
call void @_ZdaPv(i8* %0) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %entry
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIcEC2EPKc(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this, i8* %chars) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase.9*, align 8
%chars.addr = alloca i8*, align 8
%length = alloca i32, align 4
store %class.CStringBase.9* %this, %class.CStringBase.9** %this.addr, align 8, !tbaa !3
store i8* %chars, i8** %chars.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase.9*, %class.CStringBase.9** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
store i8* null, i8** %_chars, align 8, !tbaa !96
%_length = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1
store i32 0, i32* %_length, align 8, !tbaa !98
%_capacity = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2
store i32 0, i32* %_capacity, align 4, !tbaa !99
%0 = bitcast i32* %length to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
%1 = load i8*, i8** %chars.addr, align 8, !tbaa !3
%call = call i32 @_Z11MyStringLenIcEiPKT_(i8* %1)
store i32 %call, i32* %length, align 4, !tbaa !15
%2 = load i32, i32* %length, align 4, !tbaa !15
call void @_ZN11CStringBaseIcE11SetCapacityEi(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this1, i32 %2)
%_chars2 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
%3 = load i8*, i8** %_chars2, align 8, !tbaa !96
%4 = load i8*, i8** %chars.addr, align 8, !tbaa !3
%call3 = call i8* @_Z12MyStringCopyIcEPT_S1_PKS0_(i8* %3, i8* %4)
%5 = load i32, i32* %length, align 4, !tbaa !15
%_length4 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1
store i32 %5, i32* %_length4, align 8, !tbaa !98
%6 = bitcast i32* %length to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3
ret void
}
; Function Attrs: inlinehint mustprogress nounwind uwtable
define linkonce_odr dso_local i32 @_Z11MyStringLenIcEiPKT_(i8* %s) #11 comdat {
entry:
%s.addr = alloca i8*, align 8
%i = alloca i32, align 4
store i8* %s, i8** %s.addr, align 8, !tbaa !3
%0 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%1 = load i8*, i8** %s.addr, align 8, !tbaa !3
%2 = load i32, i32* %i, align 4, !tbaa !15
%idxprom = sext i32 %2 to i64
%arrayidx = getelementptr inbounds i8, i8* %1, i64 %idxprom
%3 = load i8, i8* %arrayidx, align 1, !tbaa !81
%conv = sext i8 %3 to i32
%cmp = icmp ne i32 %conv, 0
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %for.inc
for.inc: ; preds = %for.body
%4 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %4, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !100
for.end: ; preds = %for.cond
%5 = load i32, i32* %i, align 4, !tbaa !15
%6 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3
ret i32 %5
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIcE11SetCapacityEi(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this, i32 %newCapacity) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase.9*, align 8
%newCapacity.addr = alloca i32, align 4
%realCapacity = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
%newBuffer = alloca i8*, align 8
%i = alloca i32, align 4
store %class.CStringBase.9* %this, %class.CStringBase.9** %this.addr, align 8, !tbaa !3
store i32 %newCapacity, i32* %newCapacity.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase.9*, %class.CStringBase.9** %this.addr, align 8
%0 = bitcast i32* %realCapacity to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
%1 = load i32, i32* %newCapacity.addr, align 4, !tbaa !15
%add = add nsw i32 %1, 1
store i32 %add, i32* %realCapacity, align 4, !tbaa !15
%2 = load i32, i32* %realCapacity, align 4, !tbaa !15
%_capacity = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2
%3 = load i32, i32* %_capacity, align 4, !tbaa !99
%cmp = icmp eq i32 %2, %3
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end: ; preds = %entry
%4 = bitcast i8** %newBuffer to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %4) #3
%5 = load i32, i32* %realCapacity, align 4, !tbaa !15
%conv = sext i32 %5 to i64
%call = call noalias nonnull i8* @_Znam(i64 %conv) #19
store i8* %call, i8** %newBuffer, align 8, !tbaa !3
%_capacity2 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2
%6 = load i32, i32* %_capacity2, align 4, !tbaa !99
%cmp3 = icmp sgt i32 %6, 0
br i1 %cmp3, label %if.then4, label %if.end9
if.then4: ; preds = %if.end
%7 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %7) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %if.then4
%8 = load i32, i32* %i, align 4, !tbaa !15
%_length = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1
%9 = load i32, i32* %_length, align 8, !tbaa !98
%cmp5 = icmp slt i32 %8, %9
br i1 %cmp5, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
store i32 2, i32* %cleanup.dest.slot, align 4
%10 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %10) #3
br label %for.end
for.body: ; preds = %for.cond
%_chars = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
%11 = load i8*, i8** %_chars, align 8, !tbaa !96
%12 = load i32, i32* %i, align 4, !tbaa !15
%idxprom = sext i32 %12 to i64
%arrayidx = getelementptr inbounds i8, i8* %11, i64 %idxprom
%13 = load i8, i8* %arrayidx, align 1, !tbaa !81
%14 = load i8*, i8** %newBuffer, align 8, !tbaa !3
%15 = load i32, i32* %i, align 4, !tbaa !15
%idxprom6 = sext i32 %15 to i64
%arrayidx7 = getelementptr inbounds i8, i8* %14, i64 %idxprom6
store i8 %13, i8* %arrayidx7, align 1, !tbaa !81
br label %for.inc
for.inc: ; preds = %for.body
%16 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %16, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !101
for.end: ; preds = %for.cond.cleanup
%_chars8 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
%17 = load i8*, i8** %_chars8, align 8, !tbaa !96
%isnull = icmp eq i8* %17, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.end
call void @_ZdaPv(i8* %17) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.end
br label %if.end9
if.end9: ; preds = %delete.end, %if.end
%18 = load i8*, i8** %newBuffer, align 8, !tbaa !3
%_chars10 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
store i8* %18, i8** %_chars10, align 8, !tbaa !96
%_chars11 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0
%19 = load i8*, i8** %_chars11, align 8, !tbaa !96
%_length12 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1
%20 = load i32, i32* %_length12, align 8, !tbaa !98
%idxprom13 = sext i32 %20 to i64
%arrayidx14 = getelementptr inbounds i8, i8* %19, i64 %idxprom13
store i8 0, i8* %arrayidx14, align 1, !tbaa !81
%21 = load i32, i32* %realCapacity, align 4, !tbaa !15
%_capacity15 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2
store i32 %21, i32* %_capacity15, align 4, !tbaa !99
%22 = bitcast i8** %newBuffer to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %22) #3
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end9, %if.then
%23 = bitcast i32* %realCapacity to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %23) #3
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %unreachable [
i32 0, label %cleanup.cont
i32 1, label %cleanup.cont
]
cleanup.cont: ; preds = %cleanup, %cleanup
ret void
unreachable: ; preds = %cleanup
unreachable
}
; Function Attrs: inlinehint mustprogress nounwind uwtable
define linkonce_odr dso_local i8* @_Z12MyStringCopyIcEPT_S1_PKS0_(i8* %dest, i8* %src) #11 comdat {
entry:
%dest.addr = alloca i8*, align 8
%src.addr = alloca i8*, align 8
%destStart = alloca i8*, align 8
store i8* %dest, i8** %dest.addr, align 8, !tbaa !3
store i8* %src, i8** %src.addr, align 8, !tbaa !3
%0 = bitcast i8** %destStart to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3
%1 = load i8*, i8** %dest.addr, align 8, !tbaa !3
store i8* %1, i8** %destStart, align 8, !tbaa !3
br label %while.cond
while.cond: ; preds = %while.body, %entry
%2 = load i8*, i8** %src.addr, align 8, !tbaa !3
%incdec.ptr = getelementptr inbounds i8, i8* %2, i32 1
store i8* %incdec.ptr, i8** %src.addr, align 8, !tbaa !3
%3 = load i8, i8* %2, align 1, !tbaa !81
%4 = load i8*, i8** %dest.addr, align 8, !tbaa !3
%incdec.ptr1 = getelementptr inbounds i8, i8* %4, i32 1
store i8* %incdec.ptr1, i8** %dest.addr, align 8, !tbaa !3
store i8 %3, i8* %4, align 1, !tbaa !81
%conv = sext i8 %3 to i32
%cmp = icmp ne i32 %conv, 0
br i1 %cmp, label %while.body, label %while.end
while.body: ; preds = %while.cond
br label %while.cond, !llvm.loop !102
while.end: ; preds = %while.cond
%5 = load i8*, i8** %destStart, align 8, !tbaa !3
%6 = bitcast i8** %destStart to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %6) #3
ret i8* %5
}
; Function Attrs: nobuiltin allocsize(0)
declare dso_local nonnull i8* @_Znam(i64) #12
; Function Attrs: nobuiltin nounwind
declare dso_local void @_ZdaPv(i8*) #13
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector.0* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 8)
%1 = bitcast %class.CRecordVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIPvE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71
%1 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #17
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CObjectVector.0* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %num, i32* %num.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load i32, i32* %num.addr, align 4, !tbaa !15
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !77
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !15
%10 = load i32, i32* %i, align 4, !tbaa !15
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3
%12 = bitcast i8* %11 to %"struct.NWildcard::CPair"*
%isnull = icmp eq %"struct.NWildcard::CPair"* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %12) #3
%13 = bitcast %"struct.NWildcard::CPair"* %12 to i8*
call void @_ZdlPv(i8* %13) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !103
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !15
%18 = load i32, i32* %num.addr, align 4, !tbaa !15
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i64 %itemSize) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CBaseRecordVector*, align 8
%itemSize.addr = alloca i64, align 8
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !3
store i64 %itemSize, i64* %itemSize.addr, align 8, !tbaa !104
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8
%0 = bitcast %class.CBaseRecordVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV17CBaseRecordVector, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71
%_capacity = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 1
store i32 0, i32* %_capacity, align 8, !tbaa !105
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
store i32 0, i32* %_size, align 4, !tbaa !66
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 3
store i8* null, i8** %_items, align 8, !tbaa !77
%_itemSize = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 4
%1 = load i64, i64* %itemSize.addr, align 8, !tbaa !104
store i64 %1, i64* %_itemSize, align 8, !tbaa !106
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvED0Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CRecordVector* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
declare dso_local void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32), i32, i32) unnamed_addr #4
; Function Attrs: nounwind
declare dso_local void @_ZN17CBaseRecordVectorD1Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #7
; Function Attrs: nounwind
declare dso_local void @_ZN17CBaseRecordVectorD0Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #7
; Function Attrs: nobuiltin nounwind
declare dso_local void @_ZdlPv(i8*) #13
declare dso_local void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) #4
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32* nonnull align 4 dereferenceable(4) %num) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CBaseRecordVector*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32*, align 8
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32* %num, i32** %num.addr, align 8, !tbaa !3
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8
%0 = load i32, i32* %index.addr, align 4, !tbaa !15
%1 = load i32*, i32** %num.addr, align 8, !tbaa !3
%2 = load i32, i32* %1, align 4, !tbaa !15
%add = add nsw i32 %0, %2
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
%3 = load i32, i32* %_size, align 4, !tbaa !66
%cmp = icmp sgt i32 %add, %3
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
%4 = load i32, i32* %_size2, align 4, !tbaa !66
%5 = load i32, i32* %index.addr, align 4, !tbaa !15
%sub = sub nsw i32 %4, %5
%6 = load i32*, i32** %num.addr, align 8, !tbaa !3
store i32 %sub, i32* %6, align 4, !tbaa !15
br label %if.end
if.end: ; preds = %if.then, %entry
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"struct.NWildcard::CPair"*, align 8
store %"struct.NWildcard::CPair"* %this, %"struct.NWildcard::CPair"** %this.addr, align 8, !tbaa !3
%this1 = load %"struct.NWildcard::CPair"*, %"struct.NWildcard::CPair"** %this.addr, align 8
%Head = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 1
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head) #3
%Prefix = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensorNode"*, align 8
store %"class.NWildcard::CCensorNode"* %this, %"class.NWildcard::CCensorNode"** %this.addr, align 8, !tbaa !3
%this1 = load %"class.NWildcard::CCensorNode"*, %"class.NWildcard::CCensorNode"** %this.addr, align 8
%ExcludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 4
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %ExcludeItems) #3
%IncludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 3
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %IncludeItems) #3
%SubNodes = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 2
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %SubNodes) #3
%Name = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 1
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.8*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8
%0 = bitcast %class.CObjectVector.8* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CItemEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71
%1 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #17
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.7*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.7* %this, %class.CObjectVector.7** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.7*, %class.CObjectVector.7** %this.addr, align 8
%0 = bitcast %class.CObjectVector.7* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71
%1 = bitcast %class.CObjectVector.7* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.7* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.7* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #17
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.8*, align 8
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CObjectVector.8* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.8*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %num, i32* %num.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8
%0 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load i32, i32* %num.addr, align 4, !tbaa !15
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !77
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !15
%10 = load i32, i32* %i, align 4, !tbaa !15
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3
%12 = bitcast i8* %11 to %"struct.NWildcard::CItem"*
%isnull = icmp eq %"struct.NWildcard::CItem"* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %12) #3
%13 = bitcast %"struct.NWildcard::CItem"* %12 to i8*
call void @_ZdlPv(i8* %13) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !107
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !15
%18 = load i32, i32* %num.addr, align 4, !tbaa !15
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"struct.NWildcard::CItem"*, align 8
store %"struct.NWildcard::CItem"* %this, %"struct.NWildcard::CItem"** %this.addr, align 8, !tbaa !3
%this1 = load %"struct.NWildcard::CItem"*, %"struct.NWildcard::CItem"** %this.addr, align 8
%PathParts = getelementptr inbounds %"struct.NWildcard::CItem", %"struct.NWildcard::CItem"* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PathParts) #3
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.7*, align 8
store %class.CObjectVector.7* %this, %class.CObjectVector.7** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.7*, %class.CObjectVector.7** %this.addr, align 8
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CObjectVector.7* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.7*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.7* %this, %class.CObjectVector.7** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %num, i32* %num.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.7*, %class.CObjectVector.7** %this.addr, align 8
%0 = bitcast %class.CObjectVector.7* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load i32, i32* %num.addr, align 4, !tbaa !15
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.7* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !77
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !15
%10 = load i32, i32* %i, align 4, !tbaa !15
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3
%12 = bitcast i8* %11 to %"class.NWildcard::CCensorNode"*
%isnull = icmp eq %"class.NWildcard::CCensorNode"* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %12) #3
%13 = bitcast %"class.NWildcard::CCensorNode"* %12 to i8*
call void @_ZdlPv(i8* %13) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !108
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.7* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !15
%18 = load i32, i32* %num.addr, align 4, !tbaa !15
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
declare dso_local zeroext i1 @_Z23DoesNameContainWildCardRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #4
declare dso_local void @_ZN9NWildcard7CCensor7AddItemEbRK11CStringBaseIwEb(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32), i1 zeroext, %class.CStringBase* nonnull align 8 dereferenceable(16), i1 zeroext) #4
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemEC2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.5*, align 8
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8
%0 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector.5* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI8CDirItemE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemED2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.5*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8
%0 = bitcast %class.CObjectVector.5* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI8CDirItemE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71
%1 = bitcast %class.CObjectVector.5* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #17
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemED0Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.5*, align 8
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8
call void @_ZN13CObjectVectorI8CDirItemED2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CObjectVector.5* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemE6DeleteEii(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.5*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %num, i32* %num.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8
%0 = bitcast %class.CObjectVector.5* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load i32, i32* %num.addr, align 4, !tbaa !15
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.5* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !77
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !15
%10 = load i32, i32* %i, align 4, !tbaa !15
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3
%12 = bitcast i8* %11 to %struct.CDirItem*
%isnull = icmp eq %struct.CDirItem* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN8CDirItemD2Ev(%struct.CDirItem* nonnull align 8 dereferenceable(60) %12) #3
%13 = bitcast %struct.CDirItem* %12 to i8*
call void @_ZdlPv(i8* %13) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !109
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !15
%18 = load i32, i32* %num.addr, align 4, !tbaa !15
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN8CDirItemD2Ev(%struct.CDirItem* nonnull align 8 dereferenceable(60) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CDirItem*, align 8
store %struct.CDirItem* %this, %struct.CDirItem** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CDirItem*, %struct.CDirItem** %this.addr, align 8
%Name = getelementptr inbounds %struct.CDirItem, %struct.CDirItem* %this1, i32 0, i32 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
ret void
}
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN9CPropertyC2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %this) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CProperty*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name)
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val2
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZNK11CStringBaseIwE4LeftEi(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %count) #5 comdat align 2 {
entry:
%result.ptr = alloca i8*, align 8
%this.addr = alloca %class.CStringBase*, align 8
%count.addr = alloca i32, align 4
%0 = bitcast %class.CStringBase* %agg.result to i8*
store i8* %0, i8** %result.ptr, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %count, i32* %count.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%1 = load i32, i32* %count.addr, align 4, !tbaa !15
call void @_ZNK11CStringBaseIwE3MidEii(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 0, i32 %1)
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZN13CObjectVectorI9CPropertyE3AddERKS0_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this, %struct.CProperty* nonnull align 8 dereferenceable(32) %item) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.1*, align 8
%item.addr = alloca %struct.CProperty*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !3
store %struct.CProperty* %item, %struct.CProperty** %item.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector*
%call = call noalias nonnull i8* @_Znwm(i64 32) #19
%1 = bitcast i8* %call to %struct.CProperty*
%2 = load %struct.CProperty*, %struct.CProperty** %item.addr, align 8, !tbaa !3
invoke void @_ZN9CPropertyC2ERKS_(%struct.CProperty* nonnull align 8 dereferenceable(32) %1, %struct.CProperty* nonnull align 8 dereferenceable(32) %2)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%3 = bitcast %struct.CProperty* %1 to i8*
%call2 = call i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i8* %3)
ret i32 %call2
lpad: ; preds = %entry
%4 = landingpad { i8*, i32 }
cleanup
%5 = extractvalue { i8*, i32 } %4, 0
store i8* %5, i8** %exn.slot, align 8
%6 = extractvalue { i8*, i32 } %4, 1
store i32 %6, i32* %ehselector.slot, align 4
call void @_ZdlPv(i8* %call) #16
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val3
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CProperty*, align 8
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value) #3
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZNK11CStringBaseIwE3MidEii(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %startIndex, i32 %count) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%result.ptr = alloca i8*, align 8
%this.addr = alloca %class.CStringBase*, align 8
%startIndex.addr = alloca i32, align 4
%count.addr = alloca i32, align 4
%result = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%i = alloca i32, align 4
%0 = bitcast %class.CStringBase* %agg.result to i8*
store i8* %0, i8** %result.ptr, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15
store i32 %count, i32* %count.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%1 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%2 = load i32, i32* %count.addr, align 4, !tbaa !15
%add = add nsw i32 %1, %2
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%3 = load i32, i32* %_length, align 8, !tbaa !13
%cmp = icmp sgt i32 %add, %3
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%4 = load i32, i32* %_length2, align 8, !tbaa !13
%5 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%sub = sub nsw i32 %4, %5
store i32 %sub, i32* %count.addr, align 4, !tbaa !15
br label %if.end
if.end: ; preds = %if.then, %entry
%6 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%cmp3 = icmp eq i32 %6, 0
br i1 %cmp3, label %land.lhs.true, label %if.end8
land.lhs.true: ; preds = %if.end
%7 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%8 = load i32, i32* %count.addr, align 4, !tbaa !15
%add4 = add nsw i32 %7, %8
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%9 = load i32, i32* %_length5, align 8, !tbaa !13
%cmp6 = icmp eq i32 %add4, %9
br i1 %cmp6, label %if.then7, label %if.end8
if.then7: ; preds = %land.lhs.true
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this1)
br label %return
if.end8: ; preds = %land.lhs.true, %if.end
%10 = bitcast %class.CStringBase* %result to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %10) #3
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %result)
%11 = load i32, i32* %count.addr, align 4, !tbaa !15
invoke void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %result, i32 %11)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.end8
%12 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %12) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %invoke.cont
%13 = load i32, i32* %i, align 4, !tbaa !15
%14 = load i32, i32* %count.addr, align 4, !tbaa !15
%cmp9 = icmp slt i32 %13, %14
br i1 %cmp9, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%15 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %15) #3
br label %for.end
lpad: ; preds = %for.end, %if.end8
%16 = landingpad { i8*, i32 }
cleanup
%17 = extractvalue { i8*, i32 } %16, 0
store i8* %17, i8** %exn.slot, align 8
%18 = extractvalue { i8*, i32 } %16, 1
store i32 %18, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %result) #3
%19 = bitcast %class.CStringBase* %result to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %19) #3
br label %eh.resume
for.body: ; preds = %for.cond
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%20 = load i32*, i32** %_chars, align 8, !tbaa !10
%21 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%22 = load i32, i32* %i, align 4, !tbaa !15
%add10 = add nsw i32 %21, %22
%idxprom = sext i32 %add10 to i64
%arrayidx = getelementptr inbounds i32, i32* %20, i64 %idxprom
%23 = load i32, i32* %arrayidx, align 4, !tbaa !57
%_chars11 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %result, i32 0, i32 0
%24 = load i32*, i32** %_chars11, align 8, !tbaa !10
%25 = load i32, i32* %i, align 4, !tbaa !15
%idxprom12 = sext i32 %25 to i64
%arrayidx13 = getelementptr inbounds i32, i32* %24, i64 %idxprom12
store i32 %23, i32* %arrayidx13, align 4, !tbaa !57
br label %for.inc
for.inc: ; preds = %for.body
%26 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %26, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !110
for.end: ; preds = %for.cond.cleanup
%_chars14 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %result, i32 0, i32 0
%27 = load i32*, i32** %_chars14, align 8, !tbaa !10
%28 = load i32, i32* %count.addr, align 4, !tbaa !15
%idxprom15 = sext i32 %28 to i64
%arrayidx16 = getelementptr inbounds i32, i32* %27, i64 %idxprom15
store i32 0, i32* %arrayidx16, align 4, !tbaa !57
%29 = load i32, i32* %count.addr, align 4, !tbaa !15
%_length17 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %result, i32 0, i32 1
store i32 %29, i32* %_length17, align 8, !tbaa !13
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %result)
to label %invoke.cont18 unwind label %lpad
invoke.cont18: ; preds = %for.end
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %result) #3
%30 = bitcast %class.CStringBase* %result to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %30) #3
br label %return
return: ; preds = %invoke.cont18, %if.then7
ret void
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val19 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val19
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %newCapacity) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%newCapacity.addr = alloca i32, align 4
%realCapacity = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
%newBuffer = alloca i32*, align 8
%i = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %newCapacity, i32* %newCapacity.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = bitcast i32* %realCapacity to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
%1 = load i32, i32* %newCapacity.addr, align 4, !tbaa !15
%add = add nsw i32 %1, 1
store i32 %add, i32* %realCapacity, align 4, !tbaa !15
%2 = load i32, i32* %realCapacity, align 4, !tbaa !15
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
%3 = load i32, i32* %_capacity, align 4, !tbaa !14
%cmp = icmp eq i32 %2, %3
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end: ; preds = %entry
%4 = bitcast i32** %newBuffer to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %4) #3
%5 = load i32, i32* %realCapacity, align 4, !tbaa !15
%conv = sext i32 %5 to i64
%6 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %conv, i64 4)
%7 = extractvalue { i64, i1 } %6, 1
%8 = extractvalue { i64, i1 } %6, 0
%9 = select i1 %7, i64 -1, i64 %8
%call = call noalias nonnull i8* @_Znam(i64 %9) #19
%10 = bitcast i8* %call to i32*
store i32* %10, i32** %newBuffer, align 8, !tbaa !3
%_capacity2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
%11 = load i32, i32* %_capacity2, align 4, !tbaa !14
%cmp3 = icmp sgt i32 %11, 0
br i1 %cmp3, label %if.then4, label %if.end9
if.then4: ; preds = %if.end
%12 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %12) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %if.then4
%13 = load i32, i32* %i, align 4, !tbaa !15
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%14 = load i32, i32* %_length, align 8, !tbaa !13
%cmp5 = icmp slt i32 %13, %14
br i1 %cmp5, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
store i32 2, i32* %cleanup.dest.slot, align 4
%15 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %15) #3
br label %for.end
for.body: ; preds = %for.cond
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%16 = load i32*, i32** %_chars, align 8, !tbaa !10
%17 = load i32, i32* %i, align 4, !tbaa !15
%idxprom = sext i32 %17 to i64
%arrayidx = getelementptr inbounds i32, i32* %16, i64 %idxprom
%18 = load i32, i32* %arrayidx, align 4, !tbaa !57
%19 = load i32*, i32** %newBuffer, align 8, !tbaa !3
%20 = load i32, i32* %i, align 4, !tbaa !15
%idxprom6 = sext i32 %20 to i64
%arrayidx7 = getelementptr inbounds i32, i32* %19, i64 %idxprom6
store i32 %18, i32* %arrayidx7, align 4, !tbaa !57
br label %for.inc
for.inc: ; preds = %for.body
%21 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %21, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !111
for.end: ; preds = %for.cond.cleanup
%_chars8 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%22 = load i32*, i32** %_chars8, align 8, !tbaa !10
%isnull = icmp eq i32* %22, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.end
%23 = bitcast i32* %22 to i8*
call void @_ZdaPv(i8* %23) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.end
br label %if.end9
if.end9: ; preds = %delete.end, %if.end
%24 = load i32*, i32** %newBuffer, align 8, !tbaa !3
%_chars10 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
store i32* %24, i32** %_chars10, align 8, !tbaa !10
%_chars11 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%25 = load i32*, i32** %_chars11, align 8, !tbaa !10
%_length12 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%26 = load i32, i32* %_length12, align 8, !tbaa !13
%idxprom13 = sext i32 %26 to i64
%arrayidx14 = getelementptr inbounds i32, i32* %25, i64 %idxprom13
store i32 0, i32* %arrayidx14, align 4, !tbaa !57
%27 = load i32, i32* %realCapacity, align 4, !tbaa !15
%_capacity15 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
store i32 %27, i32* %_capacity15, align 4, !tbaa !14
%28 = bitcast i32** %newBuffer to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %28) #3
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end9, %if.then
%29 = bitcast i32* %realCapacity to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %29) #3
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %unreachable [
i32 0, label %cleanup.cont
i32 1, label %cleanup.cont
]
cleanup.cont: ; preds = %cleanup, %cleanup
ret void
unreachable: ; preds = %cleanup
unreachable
}
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #14
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this, i8* %item) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
%item.addr = alloca i8*, align 8
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3
store i8* %item, i8** %item.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVector18ReserveOnePositionEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = load i8*, i8** %item.addr, align 8, !tbaa !3
%2 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %2, i32 0, i32 3
%3 = load i8*, i8** %_items, align 8, !tbaa !77
%4 = bitcast i8* %3 to i8**
%5 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %5, i32 0, i32 2
%6 = load i32, i32* %_size, align 4, !tbaa !66
%idxprom = sext i32 %6 to i64
%arrayidx = getelementptr inbounds i8*, i8** %4, i64 %idxprom
store i8* %1, i8** %arrayidx, align 8, !tbaa !3
%7 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %7, i32 0, i32 2
%8 = load i32, i32* %_size2, align 4, !tbaa !66
%inc = add nsw i32 %8, 1
store i32 %inc, i32* %_size2, align 4, !tbaa !66
ret i32 %8
}
; Function Attrs: nobuiltin allocsize(0)
declare dso_local nonnull i8* @_Znwm(i64) #12
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN9CPropertyC2ERKS_(%struct.CProperty* nonnull align 8 dereferenceable(32) %this, %struct.CProperty* nonnull align 8 dereferenceable(32) %0) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CProperty*, align 8
%.addr = alloca %struct.CProperty*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !3
store %struct.CProperty* %0, %struct.CProperty** %.addr, align 8, !tbaa !3
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0
%1 = load %struct.CProperty*, %struct.CProperty** %.addr, align 8, !tbaa !3
%Name2 = getelementptr inbounds %struct.CProperty, %struct.CProperty* %1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name, %class.CStringBase* nonnull align 8 dereferenceable(16) %Name2)
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1
%2 = load %struct.CProperty*, %struct.CProperty** %.addr, align 8, !tbaa !3
%Value3 = getelementptr inbounds %struct.CProperty, %struct.CProperty* %2, i32 0, i32 1
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value, %class.CStringBase* nonnull align 8 dereferenceable(16) %Value3)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val4
}
declare dso_local void @_ZN17CBaseRecordVector18ReserveOnePositionEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) #4
; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #15
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN21CUpdateArchiveCommandC2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %this) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CUpdateArchiveCommand*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CUpdateArchiveCommand* %this, %struct.CUpdateArchiveCommand** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %this.addr, align 8
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath)
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 1
invoke void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 2
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) #3
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val2
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %item) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.2*, align 8
%item.addr = alloca %struct.CUpdateArchiveCommand*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !3
store %struct.CUpdateArchiveCommand* %item, %struct.CUpdateArchiveCommand** %item.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector*
%call = call noalias nonnull i8* @_Znwm(i64 168) #19
%1 = bitcast i8* %call to %struct.CUpdateArchiveCommand*
%2 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %item.addr, align 8, !tbaa !3
invoke void @_ZN21CUpdateArchiveCommandC2ERKS_(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %1, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %2)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%3 = bitcast %struct.CUpdateArchiveCommand* %1 to i8*
%call2 = call i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i8* %3)
ret i32 %call2
lpad: ; preds = %entry
%4 = landingpad { i8*, i32 }
cleanup
%5 = extractvalue { i8*, i32 } %4, 0
store i8* %5, i8** %exn.slot, align 8
%6 = extractvalue { i8*, i32 } %4, 1
store i32 %6, i32* %ehselector.slot, align 4
call void @_ZdlPv(i8* %call) #16
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val3
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL24ParseUpdateCommandStringR14CUpdateOptionsRK13CObjectVectorI11CStringBaseIwEERKN14NUpdateArchive10CActionSetE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %options, %class.CObjectVector* nonnull align 8 dereferenceable(32) %updatePostStrings, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %defaultActionSet) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%options.addr = alloca %struct.CUpdateOptions*, align 8
%updatePostStrings.addr = alloca %class.CObjectVector*, align 8
%defaultActionSet.addr = alloca %"struct.NUpdateArchive::CActionSet"*, align 8
%i = alloca i32, align 4
%updateString = alloca %class.CStringBase*, align 8
%actionSet = alloca %"struct.NUpdateArchive::CActionSet", align 4
%postString = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%uc = alloca %struct.CUpdateArchiveCommand, align 8
%archivePath = alloca %class.CStringBase, align 8
store %struct.CUpdateOptions* %options, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
store %class.CObjectVector* %updatePostStrings, %class.CObjectVector** %updatePostStrings.addr, align 8, !tbaa !3
store %"struct.NUpdateArchive::CActionSet"* %defaultActionSet, %"struct.NUpdateArchive::CActionSet"** %defaultActionSet.addr, align 8, !tbaa !3
%0 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%1 = load i32, i32* %i, align 4, !tbaa !15
%2 = load %class.CObjectVector*, %class.CObjectVector** %updatePostStrings.addr, align 8, !tbaa !3
%3 = bitcast %class.CObjectVector* %2 to %class.CBaseRecordVector*
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3)
%cmp = icmp slt i32 %1, %call
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%4 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %4) #3
br label %for.end
for.body: ; preds = %for.cond
%5 = bitcast %class.CStringBase** %updateString to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %5) #3
%6 = load %class.CObjectVector*, %class.CObjectVector** %updatePostStrings.addr, align 8, !tbaa !3
%7 = load i32, i32* %i, align 4, !tbaa !15
%call1 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %6, i32 %7)
store %class.CStringBase* %call1, %class.CStringBase** %updateString, align 8, !tbaa !3
%8 = load %class.CStringBase*, %class.CStringBase** %updateString, align 8, !tbaa !3
%9 = load i32*, i32** @kUpdateIgnoreItselfPostStringID, align 8, !tbaa !3
%call2 = call i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %8, i32* %9)
%cmp3 = icmp eq i32 %call2, 0
br i1 %cmp3, label %if.then, label %if.else
if.then: ; preds = %for.body
%10 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%UpdateArchiveItself = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %10, i32 0, i32 2
%11 = load i8, i8* %UpdateArchiveItself, align 8, !tbaa !82, !range !33
%tobool = trunc i8 %11 to i1
br i1 %tobool, label %if.then4, label %if.end
if.then4: ; preds = %if.then
%12 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%UpdateArchiveItself5 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %12, i32 0, i32 2
store i8 0, i8* %UpdateArchiveItself5, align 8, !tbaa !82
%13 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %13, i32 0, i32 1
call void @_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands, i32 0, i32 1)
br label %if.end
if.end: ; preds = %if.then4, %if.then
br label %if.end51
if.else: ; preds = %for.body
%14 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8*
call void @llvm.lifetime.start.p0i8(i64 28, i8* %14) #3
%15 = load %"struct.NUpdateArchive::CActionSet"*, %"struct.NUpdateArchive::CActionSet"** %defaultActionSet.addr, align 8, !tbaa !3
%16 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8*
%17 = bitcast %"struct.NUpdateArchive::CActionSet"* %15 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %16, i8* align 4 %17, i64 28, i1 false), !tbaa.struct !80
%18 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %18) #3
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
%19 = load %class.CStringBase*, %class.CStringBase** %updateString, align 8, !tbaa !3
%call6 = invoke zeroext i1 @_ZL25ParseUpdateCommandString2RK11CStringBaseIwERN14NUpdateArchive10CActionSetERS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %19, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %actionSet, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.else
br i1 %call6, label %if.end9, label %if.then7
if.then7: ; preds = %invoke.cont
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont8 unwind label %lpad
invoke.cont8: ; preds = %if.then7
br label %if.end9
lpad: ; preds = %if.then26, %invoke.cont21, %if.else20, %if.then15, %if.end9, %if.then7, %if.else
%20 = landingpad { i8*, i32 }
cleanup
%21 = extractvalue { i8*, i32 } %20, 0
store i8* %21, i8** %exn.slot, align 8
%22 = extractvalue { i8*, i32 } %20, 1
store i32 %22, i32* %ehselector.slot, align 4
br label %ehcleanup48
if.end9: ; preds = %invoke.cont8, %invoke.cont
%call11 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont10 unwind label %lpad
invoke.cont10: ; preds = %if.end9
br i1 %call11, label %if.then12, label %if.else20
if.then12: ; preds = %invoke.cont10
%23 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%UpdateArchiveItself13 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %23, i32 0, i32 2
%24 = load i8, i8* %UpdateArchiveItself13, align 8, !tbaa !82, !range !33
%tobool14 = trunc i8 %24 to i1
br i1 %tobool14, label %if.then15, label %if.end19
if.then15: ; preds = %if.then12
%25 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%Commands16 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %25, i32 0, i32 1
%call18 = invoke nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands16, i32 0)
to label %invoke.cont17 unwind label %lpad
invoke.cont17: ; preds = %if.then15
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %call18, i32 0, i32 2
%26 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet to i8*
%27 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 4 %27, i64 28, i1 false), !tbaa.struct !80
br label %if.end19
if.end19: ; preds = %invoke.cont17, %if.then12
br label %if.end47
if.else20: ; preds = %invoke.cont10
%call22 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString)
to label %invoke.cont21 unwind label %lpad
invoke.cont21: ; preds = %if.else20
%arrayidx = getelementptr inbounds i32, i32* %call22, i64 0
%28 = load i32, i32* %arrayidx, align 4, !tbaa !57
%call24 = invoke signext i32 @_Z11MyCharUpperw(i32 signext %28)
to label %invoke.cont23 unwind label %lpad
invoke.cont23: ; preds = %invoke.cont21
%cmp25 = icmp ne i32 %call24, 33
br i1 %cmp25, label %if.then26, label %if.end28
if.then26: ; preds = %invoke.cont23
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont27 unwind label %lpad
invoke.cont27: ; preds = %if.then26
br label %if.end28
if.end28: ; preds = %invoke.cont27, %invoke.cont23
%29 = bitcast %struct.CUpdateArchiveCommand* %uc to i8*
call void @llvm.lifetime.start.p0i8(i64 168, i8* %29) #3
invoke void @_ZN21CUpdateArchiveCommandC2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc)
to label %invoke.cont30 unwind label %lpad29
invoke.cont30: ; preds = %if.end28
%30 = bitcast %class.CStringBase* %archivePath to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %30) #3
invoke void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %archivePath, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString, i32 1)
to label %invoke.cont32 unwind label %lpad31
invoke.cont32: ; preds = %invoke.cont30
%call35 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath)
to label %invoke.cont34 unwind label %lpad33
invoke.cont34: ; preds = %invoke.cont32
br i1 %call35, label %if.then36, label %if.end38
if.then36: ; preds = %invoke.cont34
invoke void @_ZL23ThrowUserErrorExceptionv()
to label %invoke.cont37 unwind label %lpad33
invoke.cont37: ; preds = %if.then36
br label %if.end38
lpad29: ; preds = %if.end28
%31 = landingpad { i8*, i32 }
cleanup
%32 = extractvalue { i8*, i32 } %31, 0
store i8* %32, i8** %exn.slot, align 8
%33 = extractvalue { i8*, i32 } %31, 1
store i32 %33, i32* %ehselector.slot, align 4
br label %ehcleanup46
lpad31: ; preds = %invoke.cont30
%34 = landingpad { i8*, i32 }
cleanup
%35 = extractvalue { i8*, i32 } %34, 0
store i8* %35, i8** %exn.slot, align 8
%36 = extractvalue { i8*, i32 } %34, 1
store i32 %36, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad33: ; preds = %invoke.cont39, %if.end38, %if.then36, %invoke.cont32
%37 = landingpad { i8*, i32 }
cleanup
%38 = extractvalue { i8*, i32 } %37, 0
store i8* %38, i8** %exn.slot, align 8
%39 = extractvalue { i8*, i32 } %37, 1
store i32 %39, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath) #3
br label %ehcleanup
if.end38: ; preds = %invoke.cont37, %invoke.cont34
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %uc, i32 0, i32 0
%call40 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath, %class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath)
to label %invoke.cont39 unwind label %lpad33
invoke.cont39: ; preds = %if.end38
%ActionSet41 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %uc, i32 0, i32 2
%40 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet41 to i8*
%41 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %40, i8* align 4 %41, i64 28, i1 false), !tbaa.struct !80
%42 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3
%Commands42 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %42, i32 0, i32 1
%call44 = invoke i32 @_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands42, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc)
to label %invoke.cont43 unwind label %lpad33
invoke.cont43: ; preds = %invoke.cont39
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath) #3
%43 = bitcast %class.CStringBase* %archivePath to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %43) #3
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc) #3
%44 = bitcast %struct.CUpdateArchiveCommand* %uc to i8*
call void @llvm.lifetime.end.p0i8(i64 168, i8* %44) #3
br label %if.end47
ehcleanup: ; preds = %lpad33, %lpad31
%45 = bitcast %class.CStringBase* %archivePath to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %45) #3
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc) #3
br label %ehcleanup46
ehcleanup46: ; preds = %ehcleanup, %lpad29
%46 = bitcast %struct.CUpdateArchiveCommand* %uc to i8*
call void @llvm.lifetime.end.p0i8(i64 168, i8* %46) #3
br label %ehcleanup48
if.end47: ; preds = %invoke.cont43, %if.end19
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3
%47 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %47) #3
%48 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8*
call void @llvm.lifetime.end.p0i8(i64 28, i8* %48) #3
br label %if.end51
ehcleanup48: ; preds = %ehcleanup46, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3
%49 = bitcast %class.CStringBase* %postString to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %49) #3
%50 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8*
call void @llvm.lifetime.end.p0i8(i64 28, i8* %50) #3
%51 = bitcast %class.CStringBase** %updateString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %51) #3
%52 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %52) #3
br label %eh.resume
if.end51: ; preds = %if.end47, %if.end
%53 = bitcast %class.CStringBase** %updateString to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %53) #3
br label %for.inc
for.inc: ; preds = %if.end51
%54 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %54, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !112
for.end: ; preds = %for.cond.cleanup
ret void
eh.resume: ; preds = %ehcleanup48
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val54 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val54
}
declare dso_local zeroext i1 @_ZN8NWindows5NFile10NDirectory13MyGetTempPathER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #4
; Function Attrs: mustprogress uwtable
define internal zeroext i1 @_ZL16ParseComplexSizeRK11CStringBaseIwERy(%class.CStringBase* nonnull align 8 dereferenceable(16) %src, i64* nonnull align 8 dereferenceable(8) %result) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%retval = alloca i1, align 1
%src.addr = alloca %class.CStringBase*, align 8
%result.addr = alloca i64*, align 8
%s = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%start = alloca i32*, align 8
%end = alloca i32*, align 8
%number = alloca i64, align 8
%numDigits = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
%numBits = alloca i32, align 4
store %class.CStringBase* %src, %class.CStringBase** %src.addr, align 8, !tbaa !3
store i64* %result, i64** %result.addr, align 8, !tbaa !3
%0 = bitcast %class.CStringBase* %s to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) #3
%1 = load %class.CStringBase*, %class.CStringBase** %src.addr, align 8, !tbaa !3
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, %class.CStringBase* nonnull align 8 dereferenceable(16) %1)
invoke void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast i32** %start to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %2) #3
%call = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s)
to label %invoke.cont2 unwind label %lpad1
invoke.cont2: ; preds = %invoke.cont
store i32* %call, i32** %start, align 8, !tbaa !3
%3 = bitcast i32** %end to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %3) #3
%4 = bitcast i64* %number to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %4) #3
%5 = load i32*, i32** %start, align 8, !tbaa !3
%call5 = invoke i64 @_Z21ConvertStringToUInt64PKwPS0_(i32* %5, i32** %end)
to label %invoke.cont4 unwind label %lpad3
invoke.cont4: ; preds = %invoke.cont2
store i64 %call5, i64* %number, align 8, !tbaa !84
%6 = bitcast i32* %numDigits to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %6) #3
%7 = load i32*, i32** %end, align 8, !tbaa !3
%8 = load i32*, i32** %start, align 8, !tbaa !3
%sub.ptr.lhs.cast = ptrtoint i32* %7 to i64
%sub.ptr.rhs.cast = ptrtoint i32* %8 to i64
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 4
%conv = trunc i64 %sub.ptr.div to i32
store i32 %conv, i32* %numDigits, align 4, !tbaa !15
%9 = load i32, i32* %numDigits, align 4, !tbaa !15
%cmp = icmp eq i32 %9, 0
br i1 %cmp, label %if.then, label %lor.lhs.false
lor.lhs.false: ; preds = %invoke.cont4
%call8 = invoke i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %lor.lhs.false
%10 = load i32, i32* %numDigits, align 4, !tbaa !15
%add = add nsw i32 %10, 1
%cmp9 = icmp sgt i32 %call8, %add
br i1 %cmp9, label %if.then, label %if.end
if.then: ; preds = %invoke.cont7, %invoke.cont4
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup26
lpad: ; preds = %entry
%11 = landingpad { i8*, i32 }
cleanup
%12 = extractvalue { i8*, i32 } %11, 0
store i8* %12, i8** %exn.slot, align 8
%13 = extractvalue { i8*, i32 } %11, 1
store i32 %13, i32* %ehselector.slot, align 4
br label %ehcleanup34
lpad1: ; preds = %invoke.cont
%14 = landingpad { i8*, i32 }
cleanup
%15 = extractvalue { i8*, i32 } %14, 0
store i8* %15, i8** %exn.slot, align 8
%16 = extractvalue { i8*, i32 } %14, 1
store i32 %16, i32* %ehselector.slot, align 4
br label %ehcleanup32
lpad3: ; preds = %invoke.cont2
%17 = landingpad { i8*, i32 }
cleanup
%18 = extractvalue { i8*, i32 } %17, 0
store i8* %18, i8** %exn.slot, align 8
%19 = extractvalue { i8*, i32 } %17, 1
store i32 %19, i32* %ehselector.slot, align 4
br label %ehcleanup28
lpad6: ; preds = %if.end, %lor.lhs.false
%20 = landingpad { i8*, i32 }
cleanup
%21 = extractvalue { i8*, i32 } %20, 0
store i8* %21, i8** %exn.slot, align 8
%22 = extractvalue { i8*, i32 } %20, 1
store i32 %22, i32* %ehselector.slot, align 4
br label %ehcleanup
if.end: ; preds = %invoke.cont7
%call11 = invoke i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s)
to label %invoke.cont10 unwind label %lpad6
invoke.cont10: ; preds = %if.end
%23 = load i32, i32* %numDigits, align 4, !tbaa !15
%cmp12 = icmp eq i32 %call11, %23
br i1 %cmp12, label %if.then13, label %if.end14
if.then13: ; preds = %invoke.cont10
%24 = load i64, i64* %number, align 8, !tbaa !84
%25 = load i64*, i64** %result.addr, align 8, !tbaa !3
store i64 %24, i64* %25, align 8, !tbaa !84
store i1 true, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup26
if.end14: ; preds = %invoke.cont10
%26 = bitcast i32* %numBits to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %26) #3
%call17 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s)
to label %invoke.cont16 unwind label %lpad15
invoke.cont16: ; preds = %if.end14
%27 = load i32, i32* %numDigits, align 4, !tbaa !15
%idxprom = sext i32 %27 to i64
%arrayidx = getelementptr inbounds i32, i32* %call17, i64 %idxprom
%28 = load i32, i32* %arrayidx, align 4, !tbaa !57
switch i32 %28, label %sw.default [
i32 66, label %sw.bb
i32 75, label %sw.bb18
i32 77, label %sw.bb19
i32 71, label %sw.bb20
]
lpad15: ; preds = %if.end14
%29 = landingpad { i8*, i32 }
cleanup
%30 = extractvalue { i8*, i32 } %29, 0
store i8* %30, i8** %exn.slot, align 8
%31 = extractvalue { i8*, i32 } %29, 1
store i32 %31, i32* %ehselector.slot, align 4
%32 = bitcast i32* %numBits to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %32) #3
br label %ehcleanup
sw.bb: ; preds = %invoke.cont16
%33 = load i64, i64* %number, align 8, !tbaa !84
%34 = load i64*, i64** %result.addr, align 8, !tbaa !3
store i64 %33, i64* %34, align 8, !tbaa !84
store i1 true, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
sw.bb18: ; preds = %invoke.cont16
store i32 10, i32* %numBits, align 4, !tbaa !15
br label %sw.epilog
sw.bb19: ; preds = %invoke.cont16
store i32 20, i32* %numBits, align 4, !tbaa !15
br label %sw.epilog
sw.bb20: ; preds = %invoke.cont16
store i32 30, i32* %numBits, align 4, !tbaa !15
br label %sw.epilog
sw.default: ; preds = %invoke.cont16
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
sw.epilog: ; preds = %sw.bb20, %sw.bb19, %sw.bb18
%35 = load i64, i64* %number, align 8, !tbaa !84
%36 = load i32, i32* %numBits, align 4, !tbaa !15
%sub = sub nsw i32 64, %36
%sh_prom = zext i32 %sub to i64
%shl = shl i64 1, %sh_prom
%cmp21 = icmp uge i64 %35, %shl
br i1 %cmp21, label %if.then22, label %if.end23
if.then22: ; preds = %sw.epilog
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end23: ; preds = %sw.epilog
%37 = load i64, i64* %number, align 8, !tbaa !84
%38 = load i32, i32* %numBits, align 4, !tbaa !15
%sh_prom24 = zext i32 %38 to i64
%shl25 = shl i64 %37, %sh_prom24
%39 = load i64*, i64** %result.addr, align 8, !tbaa !3
store i64 %shl25, i64* %39, align 8, !tbaa !84
store i1 true, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end23, %if.then22, %sw.default, %sw.bb
%40 = bitcast i32* %numBits to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %40) #3
br label %cleanup26
cleanup26: ; preds = %cleanup, %if.then13, %if.then
%41 = bitcast i32* %numDigits to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %41) #3
%42 = bitcast i64* %number to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %42) #3
%43 = bitcast i32** %end to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %43) #3
%44 = bitcast i32** %start to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %44) #3
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #3
%45 = bitcast %class.CStringBase* %s to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %45) #3
%46 = load i1, i1* %retval, align 1
ret i1 %46
ehcleanup: ; preds = %lpad15, %lpad6
%47 = bitcast i32* %numDigits to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %47) #3
br label %ehcleanup28
ehcleanup28: ; preds = %ehcleanup, %lpad3
%48 = bitcast i64* %number to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %48) #3
%49 = bitcast i32** %end to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %49) #3
br label %ehcleanup32
ehcleanup32: ; preds = %ehcleanup28, %lpad1
%50 = bitcast i32** %start to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %50) #3
br label %ehcleanup34
ehcleanup34: ; preds = %ehcleanup32, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #3
%51 = bitcast %class.CStringBase* %s to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %51) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup34
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val37 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val37
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZN13CRecordVectorIyE3AddEy(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %this, i64 %item) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.3*, align 8
%item.addr = alloca i64, align 8
store %class.CRecordVector.3* %this, %class.CRecordVector.3** %this.addr, align 8, !tbaa !3
store i64 %item, i64* %item.addr, align 8, !tbaa !84
%this1 = load %class.CRecordVector.3*, %class.CRecordVector.3** %this.addr, align 8
%0 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVector18ReserveOnePositionEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = load i64, i64* %item.addr, align 8, !tbaa !84
%2 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %2, i32 0, i32 3
%3 = load i8*, i8** %_items, align 8, !tbaa !77
%4 = bitcast i8* %3 to i64*
%5 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector*
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %5, i32 0, i32 2
%6 = load i32, i32* %_size, align 4, !tbaa !66
%idxprom = sext i32 %6 to i64
%arrayidx = getelementptr inbounds i64, i64* %4, i64 %idxprom
store i64 %1, i64* %arrayidx, align 8, !tbaa !84
%7 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector*
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %7, i32 0, i32 2
%8 = load i32, i32* %_size2, align 4, !tbaa !66
%inc = add nsw i32 %8, 1
store i32 %inc, i32* %_size2, align 4, !tbaa !66
ret i32 %8
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CUpdateArchiveCommand*, align 8
store %struct.CUpdateArchiveCommand* %this, %struct.CUpdateArchiveCommand** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %this.addr, align 8
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 1
call void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) #3
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) #3
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) unnamed_addr #1 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CArchivePath*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath)
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
%VolExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 4
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
%Temp = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 5
store i8 0, i8* %Temp, align 8, !tbaa !113
%TempPrefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 6
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont7
%TempPostfix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 7
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix)
to label %invoke.cont11 unwind label %lpad10
invoke.cont11: ; preds = %invoke.cont9
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
br label %ehcleanup15
lpad2: ; preds = %invoke.cont
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
br label %ehcleanup14
lpad4: ; preds = %invoke.cont3
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
br label %ehcleanup13
lpad6: ; preds = %invoke.cont5
%9 = landingpad { i8*, i32 }
cleanup
%10 = extractvalue { i8*, i32 } %9, 0
store i8* %10, i8** %exn.slot, align 8
%11 = extractvalue { i8*, i32 } %9, 1
store i32 %11, i32* %ehselector.slot, align 4
br label %ehcleanup12
lpad8: ; preds = %invoke.cont7
%12 = landingpad { i8*, i32 }
cleanup
%13 = extractvalue { i8*, i32 } %12, 0
store i8* %13, i8** %exn.slot, align 8
%14 = extractvalue { i8*, i32 } %12, 1
store i32 %14, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad10: ; preds = %invoke.cont9
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) #3
br label %ehcleanup
ehcleanup: ; preds = %lpad10, %lpad8
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) #3
br label %ehcleanup12
ehcleanup12: ; preds = %ehcleanup, %lpad6
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) #3
br label %ehcleanup13
ehcleanup13: ; preds = %ehcleanup12, %lpad4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
br label %ehcleanup14
ehcleanup14: ; preds = %ehcleanup13, %lpad2
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3
br label %ehcleanup15
ehcleanup15: ; preds = %ehcleanup14, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup15
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val16 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val16
}
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN21CUpdateArchiveCommandC2ERKS_(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %this, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %0) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CUpdateArchiveCommand*, align 8
%.addr = alloca %struct.CUpdateArchiveCommand*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CUpdateArchiveCommand* %this, %struct.CUpdateArchiveCommand** %this.addr, align 8, !tbaa !3
store %struct.CUpdateArchiveCommand* %0, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3
%this1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %this.addr, align 8
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 0
%1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3
%UserArchivePath2 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath, %class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath2)
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 1
%2 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3
%ArchivePath3 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %2, i32 0, i32 1
invoke void @_ZN12CArchivePathC2ERKS_(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath3)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 2
%3 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3
%ActionSet4 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %3, i32 0, i32 2
%4 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet to i8*
%5 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet4 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %4, i8* align 8 %5, i64 28, i1 false), !tbaa.struct !80
ret void
lpad: ; preds = %entry
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) #3
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val5
}
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN12CArchivePathC2ERKS_(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %0) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CArchivePath*, align 8
%.addr = alloca %struct.CArchivePath*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !3
store %struct.CArchivePath* %0, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0
%1 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%OriginalPath2 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath, %class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath2)
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1
%2 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%Prefix3 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %2, i32 0, i32 1
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix, %class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix3)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2
%3 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%Name4 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %3, i32 0, i32 2
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name, %class.CStringBase* nonnull align 8 dereferenceable(16) %Name4)
to label %invoke.cont6 unwind label %lpad5
invoke.cont6: ; preds = %invoke.cont
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3
%4 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%BaseExtension7 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %4, i32 0, i32 3
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension, %class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension7)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont6
%VolExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 4
%5 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%VolExtension10 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %5, i32 0, i32 4
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension, %class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension10)
to label %invoke.cont12 unwind label %lpad11
invoke.cont12: ; preds = %invoke.cont9
%Temp = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 5
%6 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%Temp13 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %6, i32 0, i32 5
%7 = load i8, i8* %Temp13, align 8, !tbaa !113, !range !33
%tobool = trunc i8 %7 to i1
%frombool = zext i1 %tobool to i8
store i8 %frombool, i8* %Temp, align 8, !tbaa !113
%TempPrefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 6
%8 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%TempPrefix14 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %8, i32 0, i32 6
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix, %class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix14)
to label %invoke.cont16 unwind label %lpad15
invoke.cont16: ; preds = %invoke.cont12
%TempPostfix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 7
%9 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3
%TempPostfix17 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %9, i32 0, i32 7
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix, %class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix17)
to label %invoke.cont19 unwind label %lpad18
invoke.cont19: ; preds = %invoke.cont16
ret void
lpad: ; preds = %entry
%10 = landingpad { i8*, i32 }
cleanup
%11 = extractvalue { i8*, i32 } %10, 0
store i8* %11, i8** %exn.slot, align 8
%12 = extractvalue { i8*, i32 } %10, 1
store i32 %12, i32* %ehselector.slot, align 4
br label %ehcleanup23
lpad5: ; preds = %invoke.cont
%13 = landingpad { i8*, i32 }
cleanup
%14 = extractvalue { i8*, i32 } %13, 0
store i8* %14, i8** %exn.slot, align 8
%15 = extractvalue { i8*, i32 } %13, 1
store i32 %15, i32* %ehselector.slot, align 4
br label %ehcleanup22
lpad8: ; preds = %invoke.cont6
%16 = landingpad { i8*, i32 }
cleanup
%17 = extractvalue { i8*, i32 } %16, 0
store i8* %17, i8** %exn.slot, align 8
%18 = extractvalue { i8*, i32 } %16, 1
store i32 %18, i32* %ehselector.slot, align 4
br label %ehcleanup21
lpad11: ; preds = %invoke.cont9
%19 = landingpad { i8*, i32 }
cleanup
%20 = extractvalue { i8*, i32 } %19, 0
store i8* %20, i8** %exn.slot, align 8
%21 = extractvalue { i8*, i32 } %19, 1
store i32 %21, i32* %ehselector.slot, align 4
br label %ehcleanup20
lpad15: ; preds = %invoke.cont12
%22 = landingpad { i8*, i32 }
cleanup
%23 = extractvalue { i8*, i32 } %22, 0
store i8* %23, i8** %exn.slot, align 8
%24 = extractvalue { i8*, i32 } %22, 1
store i32 %24, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad18: ; preds = %invoke.cont16
%25 = landingpad { i8*, i32 }
cleanup
%26 = extractvalue { i8*, i32 } %25, 0
store i8* %26, i8** %exn.slot, align 8
%27 = extractvalue { i8*, i32 } %25, 1
store i32 %27, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) #3
br label %ehcleanup
ehcleanup: ; preds = %lpad18, %lpad15
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) #3
br label %ehcleanup20
ehcleanup20: ; preds = %ehcleanup, %lpad11
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) #3
br label %ehcleanup21
ehcleanup21: ; preds = %ehcleanup20, %lpad8
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
br label %ehcleanup22
ehcleanup22: ; preds = %ehcleanup21, %lpad5
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3
br label %ehcleanup23
ehcleanup23: ; preds = %ehcleanup22, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) #3
br label %eh.resume
eh.resume: ; preds = %ehcleanup23
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val24 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val24
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %s) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca i32*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32* %s, i32** %s.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !10
%1 = load i32*, i32** %s.addr, align 8, !tbaa !3
%call = call i32 @_Z21MyStringCompareNoCasePKwS0_(i32* %0, i32* %1)
ret i32 %call
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.2*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %num, i32* %num.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load i32, i32* %num.addr, align 4, !tbaa !15
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.2* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !77
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !15
%10 = load i32, i32* %i, align 4, !tbaa !15
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3
%12 = bitcast i8* %11 to %struct.CUpdateArchiveCommand*
%isnull = icmp eq %struct.CUpdateArchiveCommand* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %12) #3
%13 = bitcast %struct.CUpdateArchiveCommand* %12 to i8*
call void @_ZdlPv(i8* %13) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !114
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !15
%18 = load i32, i32* %num.addr, align 4, !tbaa !15
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: mustprogress uwtable
define internal zeroext i1 @_ZL25ParseUpdateCommandString2RK11CStringBaseIwERN14NUpdateArchive10CActionSetERS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %command, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %actionSet, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%retval = alloca i1, align 1
%command.addr = alloca %class.CStringBase*, align 8
%actionSet.addr = alloca %"struct.NUpdateArchive::CActionSet"*, align 8
%postString.addr = alloca %class.CStringBase*, align 8
%i = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
%c = alloca i32, align 4
%statePos = alloca i32, align 4
%ref.tmp = alloca %class.CStringBase, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%actionPos = alloca i32, align 4
store %class.CStringBase* %command, %class.CStringBase** %command.addr, align 8, !tbaa !3
store %"struct.NUpdateArchive::CActionSet"* %actionSet, %"struct.NUpdateArchive::CActionSet"** %actionSet.addr, align 8, !tbaa !3
store %class.CStringBase* %postString, %class.CStringBase** %postString.addr, align 8, !tbaa !3
%0 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %cleanup.cont, %entry
%1 = load i32, i32* %i, align 4, !tbaa !15
%2 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3
%call = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %2)
%cmp = icmp slt i32 %1, %call
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
store i32 2, i32* %cleanup.dest.slot, align 4
br label %cleanup29
for.body: ; preds = %for.cond
%3 = bitcast i32* %c to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #3
%4 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3
%call1 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %4)
%5 = load i32, i32* %i, align 4, !tbaa !15
%idxprom = sext i32 %5 to i64
%arrayidx = getelementptr inbounds i32, i32* %call1, i64 %idxprom
%6 = load i32, i32* %arrayidx, align 4, !tbaa !57
%call2 = call signext i32 @_Z11MyCharUpperw(i32 signext %6)
store i32 %call2, i32* %c, align 4, !tbaa !57
%7 = bitcast i32* %statePos to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %7) #3
%8 = load i32, i32* %c, align 4, !tbaa !57
%call3 = call i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL21kUpdatePairStateIDSet, i32 signext %8)
store i32 %call3, i32* %statePos, align 4, !tbaa !15
%9 = load i32, i32* %statePos, align 4, !tbaa !15
%cmp4 = icmp slt i32 %9, 0
br i1 %cmp4, label %if.then, label %if.end
if.then: ; preds = %for.body
%10 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %10) #3
%11 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3
%12 = load i32, i32* %i, align 4, !tbaa !15
call void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %class.CStringBase* nonnull align 8 dereferenceable(16) %11, i32 %12)
%13 = load %class.CStringBase*, %class.CStringBase** %postString.addr, align 8, !tbaa !3
%call5 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %13, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.then
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%14 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %14) #3
store i1 true, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup27
lpad: ; preds = %if.then
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3
%18 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %18) #3
%19 = bitcast i32* %statePos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %19) #3
%20 = bitcast i32* %c to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %20) #3
%21 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %21) #3
br label %eh.resume
if.end: ; preds = %for.body
%22 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %22, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
%23 = load i32, i32* %i, align 4, !tbaa !15
%24 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3
%call6 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %24)
%cmp7 = icmp sge i32 %23, %call6
br i1 %cmp7, label %if.then8, label %if.end9
if.then8: ; preds = %if.end
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup27
if.end9: ; preds = %if.end
%25 = bitcast i32* %actionPos to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %25) #3
%26 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3
%call10 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %26)
%27 = load i32, i32* %i, align 4, !tbaa !15
%idxprom11 = sext i32 %27 to i64
%arrayidx12 = getelementptr inbounds i32, i32* %call10, i64 %idxprom11
%28 = load i32, i32* %arrayidx12, align 4, !tbaa !57
%call13 = call signext i32 @_Z11MyCharUpperw(i32 signext %28)
%call14 = call i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL22kUpdatePairActionIDSet, i32 signext %call13)
store i32 %call14, i32* %actionPos, align 4, !tbaa !15
%29 = load i32, i32* %actionPos, align 4, !tbaa !15
%cmp15 = icmp slt i32 %29, 0
br i1 %cmp15, label %if.then16, label %if.end17
if.then16: ; preds = %if.end9
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end17: ; preds = %if.end9
%30 = load i32, i32* %actionPos, align 4, !tbaa !15
%call18 = call i32 @_ZL23GetUpdatePairActionTypei(i32 %30)
%31 = load %"struct.NUpdateArchive::CActionSet"*, %"struct.NUpdateArchive::CActionSet"** %actionSet.addr, align 8, !tbaa !3
%StateActions = getelementptr inbounds %"struct.NUpdateArchive::CActionSet", %"struct.NUpdateArchive::CActionSet"* %31, i32 0, i32 0
%32 = load i32, i32* %statePos, align 4, !tbaa !15
%idxprom19 = sext i32 %32 to i64
%arrayidx20 = getelementptr inbounds [7 x i32], [7 x i32]* %StateActions, i64 0, i64 %idxprom19
store i32 %call18, i32* %arrayidx20, align 4, !tbaa !115
%33 = load i32, i32* %statePos, align 4, !tbaa !15
%idxprom21 = sext i32 %33 to i64
%arrayidx22 = getelementptr inbounds [7 x i32], [7 x i32]* @_ZL35kUpdatePairStateNotSupportedActions, i64 0, i64 %idxprom21
%34 = load i32, i32* %arrayidx22, align 4, !tbaa !15
%35 = load i32, i32* %actionPos, align 4, !tbaa !15
%cmp23 = icmp eq i32 %34, %35
br i1 %cmp23, label %if.then24, label %if.end25
if.then24: ; preds = %if.end17
store i1 false, i1* %retval, align 1
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end25: ; preds = %if.end17
%36 = load i32, i32* %i, align 4, !tbaa !15
%inc26 = add nsw i32 %36, 1
store i32 %inc26, i32* %i, align 4, !tbaa !15
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end25, %if.then24, %if.then16
%37 = bitcast i32* %actionPos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %37) #3
br label %cleanup27
cleanup27: ; preds = %cleanup, %if.then8, %invoke.cont
%38 = bitcast i32* %statePos to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %38) #3
%39 = bitcast i32* %c to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %39) #3
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %cleanup29 [
i32 0, label %cleanup.cont
]
cleanup.cont: ; preds = %cleanup27
br label %for.cond, !llvm.loop !117
cleanup29: ; preds = %cleanup27, %for.cond.cleanup
%40 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %40) #3
%cleanup.dest30 = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest30, label %unreachable [
i32 2, label %for.end
i32 1, label %return
]
for.end: ; preds = %cleanup29
%41 = load %class.CStringBase*, %class.CStringBase** %postString.addr, align 8, !tbaa !3
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %41)
store i1 true, i1* %retval, align 1
br label %return
return: ; preds = %for.end, %cleanup29
%42 = load i1, i1* %retval, align 1
ret i1 %42
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val31 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val31
unreachable: ; preds = %cleanup29
unreachable
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, i32 %index) #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.2*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !3
%3 = bitcast i8* %2 to %struct.CUpdateArchiveCommand*
ret %struct.CUpdateArchiveCommand* %3
}
declare dso_local i32 @_Z21MyStringCompareNoCasePKwS0_(i32*, i32*) #4
; Function Attrs: mustprogress uwtable
define internal i32 @_ZL23GetUpdatePairActionTypei(i32 %i) #5 {
entry:
%retval = alloca i32, align 4
%i.addr = alloca i32, align 4
store i32 %i, i32* %i.addr, align 4, !tbaa !15
%0 = load i32, i32* %i.addr, align 4, !tbaa !15
switch i32 %0, label %sw.epilog [
i32 0, label %sw.bb
i32 1, label %sw.bb1
i32 2, label %sw.bb2
i32 3, label %sw.bb3
]
sw.bb: ; preds = %entry
store i32 0, i32* %retval, align 4
br label %return
sw.bb1: ; preds = %entry
store i32 1, i32* %retval, align 4
br label %return
sw.bb2: ; preds = %entry
store i32 2, i32* %retval, align 4
br label %return
sw.bb3: ; preds = %entry
store i32 3, i32* %retval, align 4
br label %return
sw.epilog: ; preds = %entry
%exception = call i8* @__cxa_allocate_exception(i64 4) #3
%1 = bitcast i8* %exception to i32*
store i32 98111603, i32* %1, align 16, !tbaa !15
call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null) #18
unreachable
return: ; preds = %sw.bb3, %sw.bb2, %sw.bb1, %sw.bb
%2 = load i32, i32* %retval, align 4
ret i32 %2
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 0, i32* %_length, align 8, !tbaa !13
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !10
%arrayidx = getelementptr inbounds i32, i32* %0, i64 0
store i32 0, i32* %arrayidx, align 4, !tbaa !57
ret void
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
%index.addr = alloca i32, align 4
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3
%1 = load i8*, i8** %_items, align 8, !tbaa !77
%2 = bitcast i8* %1 to i8**
%3 = load i32, i32* %index.addr, align 4, !tbaa !15
%idxprom = sext i32 %3 to i64
%arrayidx = getelementptr inbounds i8*, i8** %2, i64 %idxprom
ret i8** %arrayidx
}
declare dso_local i64 @_Z21ConvertStringToUInt64PKwPS0_(i32*, i32**) #4
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CArchivePath*, align 8
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !3
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8
%TempPostfix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 7
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix) #3
%TempPrefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 6
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) #3
%VolExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) #3
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) #3
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) #3
ret void
}
; Function Attrs: inlinehint mustprogress nounwind uwtable
define linkonce_odr dso_local i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %dest, i32* %src) #11 comdat {
entry:
%dest.addr = alloca i32*, align 8
%src.addr = alloca i32*, align 8
%destStart = alloca i32*, align 8
store i32* %dest, i32** %dest.addr, align 8, !tbaa !3
store i32* %src, i32** %src.addr, align 8, !tbaa !3
%0 = bitcast i32** %destStart to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3
%1 = load i32*, i32** %dest.addr, align 8, !tbaa !3
store i32* %1, i32** %destStart, align 8, !tbaa !3
br label %while.cond
while.cond: ; preds = %while.body, %entry
%2 = load i32*, i32** %src.addr, align 8, !tbaa !3
%incdec.ptr = getelementptr inbounds i32, i32* %2, i32 1
store i32* %incdec.ptr, i32** %src.addr, align 8, !tbaa !3
%3 = load i32, i32* %2, align 4, !tbaa !57
%4 = load i32*, i32** %dest.addr, align 8, !tbaa !3
%incdec.ptr1 = getelementptr inbounds i32, i32* %4, i32 1
store i32* %incdec.ptr1, i32** %dest.addr, align 8, !tbaa !3
store i32 %3, i32* %4, align 4, !tbaa !57
%cmp = icmp ne i32 %3, 0
br i1 %cmp, label %while.body, label %while.end
while.body: ; preds = %while.cond
br label %while.cond, !llvm.loop !118
while.end: ; preds = %while.cond
%5 = load i32*, i32** %destStart, align 8, !tbaa !3
%6 = bitcast i32** %destStart to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %6) #3
ret i32* %5
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEED0Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CObjectVector* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3
store i32 %index, i32* %index.addr, align 4, !tbaa !15
store i32 %num, i32* %num.addr, align 4, !tbaa !15
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !15
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !15
%4 = load i32, i32* %num.addr, align 4, !tbaa !15
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !77
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !15
%10 = load i32, i32* %i, align 4, !tbaa !15
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3
%12 = bitcast i8* %11 to %class.CStringBase*
%isnull = icmp eq %class.CStringBase* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %12) #3
%13 = bitcast %class.CStringBase* %12 to i8*
call void @_ZdlPv(i8* %13) #16
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !119
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !15
%18 = load i32, i32* %num.addr, align 4, !tbaa !15
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
declare dso_local i32* @_Z13MyStringUpperPw(i32*) #4
; Function Attrs: inlinehint mustprogress nounwind uwtable
define linkonce_odr dso_local i32 @_Z11MyStringLenIwEiPKT_(i32* %s) #11 comdat {
entry:
%s.addr = alloca i32*, align 8
%i = alloca i32, align 4
store i32* %s, i32** %s.addr, align 8, !tbaa !3
%0 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3
store i32 0, i32* %i, align 4, !tbaa !15
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%1 = load i32*, i32** %s.addr, align 8, !tbaa !3
%2 = load i32, i32* %i, align 4, !tbaa !15
%idxprom = sext i32 %2 to i64
%arrayidx = getelementptr inbounds i32, i32* %1, i64 %idxprom
%3 = load i32, i32* %arrayidx, align 4, !tbaa !57
%cmp = icmp ne i32 %3, 0
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %for.inc
for.inc: ; preds = %for.body
%4 = load i32, i32* %i, align 4, !tbaa !15
%inc = add nsw i32 %4, 1
store i32 %inc, i32* %i, align 4, !tbaa !15
br label %for.cond, !llvm.loop !120
for.end: ; preds = %for.cond
%5 = load i32, i32* %i, align 4, !tbaa !15
%6 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3
ret i32 %5
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindERKS0_i(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 %startIndex) #0 comdat align 2 {
entry:
%retval = alloca i32, align 4
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca %class.CStringBase*, align 8
%startIndex.addr = alloca i32, align 4
%j = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%call = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %0)
br i1 %call, label %if.then, label %if.end
if.then: ; preds = %entry
%1 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
store i32 %1, i32* %retval, align 4
br label %return
if.end: ; preds = %entry
br label %for.cond
for.cond: ; preds = %for.inc19, %if.end
%2 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%3 = load i32, i32* %_length, align 8, !tbaa !13
%cmp = icmp slt i32 %2, %3
br i1 %cmp, label %for.body, label %for.end21
for.body: ; preds = %for.cond
%4 = bitcast i32* %j to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %4) #3
store i32 0, i32* %j, align 4, !tbaa !15
br label %for.cond2
for.cond2: ; preds = %for.inc, %for.body
%5 = load i32, i32* %j, align 4, !tbaa !15
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1
%7 = load i32, i32* %_length3, align 8, !tbaa !13
%cmp4 = icmp slt i32 %5, %7
br i1 %cmp4, label %land.rhs, label %land.end
land.rhs: ; preds = %for.cond2
%8 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%9 = load i32, i32* %j, align 4, !tbaa !15
%add = add nsw i32 %8, %9
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%10 = load i32, i32* %_length5, align 8, !tbaa !13
%cmp6 = icmp slt i32 %add, %10
br label %land.end
land.end: ; preds = %land.rhs, %for.cond2
%11 = phi i1 [ false, %for.cond2 ], [ %cmp6, %land.rhs ]
br i1 %11, label %for.body7, label %for.end
for.body7: ; preds = %land.end
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%12 = load i32*, i32** %_chars, align 8, !tbaa !10
%13 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%14 = load i32, i32* %j, align 4, !tbaa !15
%add8 = add nsw i32 %13, %14
%idxprom = sext i32 %add8 to i64
%arrayidx = getelementptr inbounds i32, i32* %12, i64 %idxprom
%15 = load i32, i32* %arrayidx, align 4, !tbaa !57
%16 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_chars9 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %16, i32 0, i32 0
%17 = load i32*, i32** %_chars9, align 8, !tbaa !10
%18 = load i32, i32* %j, align 4, !tbaa !15
%idxprom10 = sext i32 %18 to i64
%arrayidx11 = getelementptr inbounds i32, i32* %17, i64 %idxprom10
%19 = load i32, i32* %arrayidx11, align 4, !tbaa !57
%cmp12 = icmp ne i32 %15, %19
br i1 %cmp12, label %if.then13, label %if.end14
if.then13: ; preds = %for.body7
br label %for.end
if.end14: ; preds = %for.body7
br label %for.inc
for.inc: ; preds = %if.end14
%20 = load i32, i32* %j, align 4, !tbaa !15
%inc = add nsw i32 %20, 1
store i32 %inc, i32* %j, align 4, !tbaa !15
br label %for.cond2, !llvm.loop !121
for.end: ; preds = %if.then13, %land.end
%21 = load i32, i32* %j, align 4, !tbaa !15
%22 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3
%_length15 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %22, i32 0, i32 1
%23 = load i32, i32* %_length15, align 8, !tbaa !13
%cmp16 = icmp eq i32 %21, %23
br i1 %cmp16, label %if.then17, label %if.end18
if.then17: ; preds = %for.end
%24 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
store i32 %24, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.end18: ; preds = %for.end
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end18, %if.then17
%25 = bitcast i32* %j to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %25) #3
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %unreachable [
i32 0, label %cleanup.cont
i32 1, label %return
]
cleanup.cont: ; preds = %cleanup
br label %for.inc19
for.inc19: ; preds = %cleanup.cont
%26 = load i32, i32* %startIndex.addr, align 4, !tbaa !15
%inc20 = add nsw i32 %26, 1
store i32 %inc20, i32* %startIndex.addr, align 4, !tbaa !15
br label %for.cond, !llvm.loop !122
for.end21: ; preds = %for.cond
store i32 -1, i32* %retval, align 4
br label %return
return: ; preds = %for.end21, %cleanup, %if.then
%27 = load i32, i32* %retval, align 4
ret i32 %27
unreachable: ; preds = %cleanup
unreachable
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIiED0Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.4*, align 8
store %class.CRecordVector.4* %this, %class.CRecordVector.4** %this.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector.4*, %class.CRecordVector.4** %this.addr, align 8
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CRecordVector.4* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIjED0Ev(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.6*, align 8
store %class.CRecordVector.6* %this, %class.CRecordVector.6** %this.addr, align 8, !tbaa !3
%this1 = load %class.CRecordVector.6*, %class.CRecordVector.6** %this.addr, align 8
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.6*)*)(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %this1) #3
%0 = bitcast %class.CRecordVector.6* %this1 to i8*
call void @_ZdlPv(i8* %0) #16
ret void
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwE9MoveItemsEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %destIndex, i32 %srcIndex) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%destIndex.addr = alloca i32, align 4
%srcIndex.addr = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3
store i32 %destIndex, i32* %destIndex.addr, align 4, !tbaa !15
store i32 %srcIndex, i32* %srcIndex.addr, align 4, !tbaa !15
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !10
%1 = load i32, i32* %destIndex.addr, align 4, !tbaa !15
%idx.ext = sext i32 %1 to i64
%add.ptr = getelementptr inbounds i32, i32* %0, i64 %idx.ext
%2 = bitcast i32* %add.ptr to i8*
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars2, align 8, !tbaa !10
%4 = load i32, i32* %srcIndex.addr, align 4, !tbaa !15
%idx.ext3 = sext i32 %4 to i64
%add.ptr4 = getelementptr inbounds i32, i32* %3, i64 %idx.ext3
%5 = bitcast i32* %add.ptr4 to i8*
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%6 = load i32, i32* %_length, align 8, !tbaa !13
%7 = load i32, i32* %srcIndex.addr, align 4, !tbaa !15
%sub = sub nsw i32 %6, %7
%add = add nsw i32 %sub, 1
%conv = sext i32 %add to i64
%mul = mul i64 4, %conv
call void @llvm.memmove.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 %5, i64 %mul, i1 false)
ret void
}
; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1 immarg) #15
; Function Attrs: uwtable
define internal void @_GLOBAL__sub_I_ArchiveCommandLine.cpp() #1 section ".text.startup" {
entry:
call void @__cxx_global_var_init.27()
call void @__cxx_global_var_init()
call void @__cxx_global_var_init.1()
ret void
}
attributes #0 = { mustprogress nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }
attributes #4 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noinline noreturn nounwind }
attributes #7 = { nounwind "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { argmemonly nofree nosync nounwind willreturn }
attributes #9 = { inlinehint uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { inlinehint nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { inlinehint mustprogress nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #13 = { nobuiltin nounwind "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #14 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #15 = { argmemonly nofree nounwind willreturn }
attributes #16 = { builtin nounwind }
attributes #17 = { noreturn nounwind }
attributes #18 = { noreturn }
attributes #19 = { builtin allocsize(0) }
!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}
!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"uwtable", i32 1}
!2 = !{!"clang version 14.0.0"}
!3 = !{!4, !4, i64 0}
!4 = !{!"any pointer", !5, i64 0}
!5 = !{!"omnipotent char", !6, i64 0}
!6 = !{!"Simple C++ TBAA"}
!7 = !{!8, !9, i64 0}
!8 = !{!"_ZTS15CArchiveCommand", !9, i64 0}
!9 = !{!"_ZTSN12NCommandType5EEnumE", !5, i64 0}
!10 = !{!11, !4, i64 0}
!11 = !{!"_ZTS11CStringBaseIwE", !4, i64 0, !12, i64 8, !12, i64 12}
!12 = !{!"int", !5, i64 0}
!13 = !{!11, !12, i64 8}
!14 = !{!11, !12, i64 12}
!15 = !{!12, !12, i64 0}
!16 = !{!17, !18, i64 2}
!17 = !{!"_ZTS26CArchiveCommandLineOptions", !18, i64 0, !18, i64 1, !18, i64 2, !18, i64 3, !18, i64 4, !18, i64 5, !18, i64 6, !18, i64 7, !18, i64 8, !18, i64 9, !19, i64 16, !8, i64 48, !11, i64 56, !18, i64 72, !11, i64 80, !18, i64 96, !18, i64 97, !18, i64 98, !11, i64 104, !21, i64 120, !22, i64 128, !22, i64 160, !23, i64 192, !24, i64 224, !11, i64 544, !18, i64 560, !12, i64 564, !12, i64 568, !12, i64 572, !11, i64 576}
!18 = !{!"bool", !5, i64 0}
!19 = !{!"_ZTSN9NWildcard7CCensorE", !20, i64 0}
!20 = !{!"_ZTS13CObjectVectorIN9NWildcard5CPairEE"}
!21 = !{!"_ZTSN8NExtract14NOverwriteMode5EEnumE", !5, i64 0}
!22 = !{!"_ZTS13CObjectVectorI11CStringBaseIwEE"}
!23 = !{!"_ZTS13CObjectVectorI9CPropertyE"}
!24 = !{!"_ZTS14CUpdateOptions", !25, i64 0, !26, i64 40, !18, i64 72, !27, i64 80, !18, i64 200, !11, i64 208, !18, i64 224, !18, i64 225, !11, i64 232, !18, i64 248, !18, i64 249, !18, i64 250, !11, i64 256, !11, i64 272, !28, i64 288}
!25 = !{!"_ZTS22CCompressionMethodMode", !12, i64 0, !23, i64 8}
!26 = !{!"_ZTS13CObjectVectorI21CUpdateArchiveCommandE"}
!27 = !{!"_ZTS12CArchivePath", !11, i64 0, !11, i64 16, !11, i64 32, !11, i64 48, !11, i64 64, !18, i64 80, !11, i64 88, !11, i64 104}
!28 = !{!"_ZTS13CRecordVectorIyE"}
!29 = !{!17, !18, i64 3}
!30 = !{!17, !18, i64 4}
!31 = !{!32, !18, i64 0}
!32 = !{!"_ZTSN18NCommandLineParser13CSwitchResultE", !18, i64 0, !18, i64 1, !22, i64 8, !12, i64 40}
!33 = !{i8 0, i8 2}
!34 = !{!17, !18, i64 5}
!35 = !{!17, !18, i64 6}
!36 = !{!17, !18, i64 7}
!37 = !{!17, !18, i64 0}
!38 = !{!17, !18, i64 1}
!39 = !{!17, !18, i64 96}
!40 = !{!17, !18, i64 97}
!41 = !{!32, !12, i64 40}
!42 = !{!18, !18, i64 0}
!43 = !{!44, !44, i64 0}
!44 = !{!"_ZTSN13NRecursedType5EEnumE", !5, i64 0}
!45 = !{!17, !9, i64 48}
!46 = !{!17, !18, i64 8}
!47 = !{!17, !18, i64 72}
!48 = !{!17, !18, i64 9}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = distinct !{!51, !50}
!52 = distinct !{!52, !50}
!53 = !{!17, !21, i64 120}
!54 = !{!21, !21, i64 0}
!55 = !{!17, !18, i64 560}
!56 = !{!24, !18, i64 249}
!57 = !{!58, !58, i64 0}
!58 = !{!"wchar_t", !5, i64 0}
!59 = !{!24, !18, i64 250}
!60 = !{!24, !18, i64 248}
!61 = !{!24, !18, i64 225}
!62 = !{!17, !12, i64 568}
!63 = !{!17, !12, i64 572}
!64 = !{!17, !12, i64 564}
!65 = distinct !{!65, !50}
!66 = !{!67, !12, i64 12}
!67 = !{!"_ZTS17CBaseRecordVector", !12, i64 8, !12, i64 12, !4, i64 16, !68, i64 24}
!68 = !{!"long", !5, i64 0}
!69 = distinct !{!69, !50}
!70 = distinct !{!70, !50}
!71 = !{!72, !72, i64 0}
!72 = !{!"vtable pointer", !6, i64 0}
!73 = !{!74, !12, i64 48}
!74 = !{!"_ZTS8CDirItem", !75, i64 0, !76, i64 8, !76, i64 16, !76, i64 24, !11, i64 32, !12, i64 48, !12, i64 52, !12, i64 56}
!75 = !{!"long long", !5, i64 0}
!76 = !{!"_ZTS9_FILETIME", !12, i64 0, !12, i64 4}
!77 = !{!67, !4, i64 16}
!78 = distinct !{!78, !50}
!79 = !{!9, !9, i64 0}
!80 = !{i64 0, i64 28, !81}
!81 = !{!5, !5, i64 0}
!82 = !{!24, !18, i64 72}
!83 = !{!24, !18, i64 200}
!84 = !{!75, !75, i64 0}
!85 = distinct !{!85, !50}
!86 = !{!87, !4, i64 0}
!87 = !{!"_ZTSN18NCommandLineParser11CSwitchFormE", !4, i64 0, !88, i64 8, !18, i64 12, !12, i64 16, !12, i64 20, !4, i64 24}
!88 = !{!"_ZTSN18NCommandLineParser11NSwitchType5EEnumE", !5, i64 0}
!89 = !{!87, !88, i64 8}
!90 = !{!87, !18, i64 12}
!91 = !{!87, !12, i64 16}
!92 = !{!87, !12, i64 20}
!93 = !{!87, !4, i64 24}
!94 = distinct !{!94, !50}
!95 = distinct !{!95, !50}
!96 = !{!97, !4, i64 0}
!97 = !{!"_ZTS11CStringBaseIcE", !4, i64 0, !12, i64 8, !12, i64 12}
!98 = !{!97, !12, i64 8}
!99 = !{!97, !12, i64 12}
!100 = distinct !{!100, !50}
!101 = distinct !{!101, !50}
!102 = distinct !{!102, !50}
!103 = distinct !{!103, !50}
!104 = !{!68, !68, i64 0}
!105 = !{!67, !12, i64 8}
!106 = !{!67, !68, i64 24}
!107 = distinct !{!107, !50}
!108 = distinct !{!108, !50}
!109 = distinct !{!109, !50}
!110 = distinct !{!110, !50}
!111 = distinct !{!111, !50}
!112 = distinct !{!112, !50}
!113 = !{!27, !18, i64 80}
!114 = distinct !{!114, !50}
!115 = !{!116, !116, i64 0}
!116 = !{!"_ZTSN14NUpdateArchive11NPairAction5EEnumE", !5, i64 0}
!117 = distinct !{!117, !50}
!118 = distinct !{!118, !50}
!119 = distinct !{!119, !50}
!120 = distinct !{!120, !50}
!121 = distinct !{!121, !50}
!122 = distinct !{!122, !50}
This file has been truncated, but you can view the full file.
; ModuleID = '../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Console/Main.cpp'
source_filename = "../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Console/Main.cpp"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.GUID = type { i32, i16, i16, [8 x i8] }
%class.CStdOutStream = type { i8, %struct._IO_FILE* }
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] }
%struct._IO_marker = type opaque
%struct._IO_codecvt = type opaque
%struct._IO_wide_data = type opaque
%class.CObjectVector = type { %class.CRecordVector }
%class.CRecordVector = type { %class.CBaseRecordVector }
%class.CBaseRecordVector = type { i32 (...)**, i32, i32, i8*, i64 }
%struct.CArchiveCommandLineOptions = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %"class.NWildcard::CCensor", %struct.CArchiveCommand, %class.CStringBase, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, i32, %class.CObjectVector, %class.CObjectVector, %class.CObjectVector.1, %struct.CUpdateOptions, %class.CStringBase, i8, i32, i32, i32, %class.CStringBase }
%"class.NWildcard::CCensor" = type { %class.CObjectVector.0 }
%class.CObjectVector.0 = type { %class.CRecordVector }
%struct.CArchiveCommand = type { i32 }
%class.CObjectVector.1 = type { %class.CRecordVector }
%struct.CUpdateOptions = type { %struct.CCompressionMethodMode, %class.CObjectVector.2, i8, %struct.CArchivePath, i8, %class.CStringBase, i8, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, %class.CStringBase, %class.CRecordVector.3 }
%struct.CCompressionMethodMode = type { i32, %class.CObjectVector.1 }
%class.CObjectVector.2 = type { %class.CRecordVector }
%struct.CArchivePath = type { %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, i8, %class.CStringBase, %class.CStringBase }
%class.CRecordVector.3 = type { %class.CBaseRecordVector }
%class.CStringBase = type { i32*, i32, i32 }
%class.CArchiveCommandLineParser = type { %"class.NCommandLineParser::CParser" }
%"class.NCommandLineParser::CParser" = type { i32, %"struct.NCommandLineParser::CSwitchResult"*, %class.CObjectVector }
%"struct.NCommandLineParser::CSwitchResult" = type <{ i8, i8, [6 x i8], %class.CObjectVector, i32, [4 x i8] }>
%class.CCodecs = type { %struct.IUnknown, %class.CMyUnknownImp, %class.CObjectVector.4 }
%struct.IUnknown = type { i32 (...)** }
%class.CMyUnknownImp = type { i32 }
%class.CObjectVector.4 = type { %class.CRecordVector }
%class.CMyComPtr = type { %struct.IUnknown* }
%class.CRecordVector.5 = type { %class.CBaseRecordVector }
%struct.CArcInfoEx = type <{ i8, [7 x i8], %struct.IInArchive* ()*, %struct.IOutArchive* ()*, %class.CStringBase, %class.CObjectVector.6, %class.CBuffer, i8, [7 x i8] }>
%struct.IInArchive = type { %struct.IUnknown }
%struct.IOutArchive = type { %struct.IUnknown }
%class.CObjectVector.6 = type { %class.CRecordVector }
%class.CBuffer = type { i32 (...)**, i64, i8* }
%struct.CArcExtInfo = type { %class.CStringBase, %class.CStringBase }
%class.CExtractCallbackConsole = type { %struct.IExtractCallbackUI, %struct.ICryptoGetTextPassword, %class.CMyUnknownImp, i8, %class.CStringBase, i64, i64, i64, i64, %class.CStdOutStream* }
%struct.IExtractCallbackUI = type { %struct.IFolderArchiveExtractCallback }
%struct.IFolderArchiveExtractCallback = type { %struct.IProgress }
%struct.IProgress = type { %struct.IUnknown }
%struct.ICryptoGetTextPassword = type { %struct.IUnknown }
%class.CMyComPtr.7 = type { %struct.IFolderArchiveExtractCallback* }
%class.COpenCallbackConsole = type { %struct.IOpenCallbackUI, %class.CStdOutStream*, i8, i8, %class.CStringBase }
%struct.IOpenCallbackUI = type { i32 (...)** }
%struct.CExtractOptions = type { i8, i8, i8, i8, i8, i32, i32, %class.CStringBase, %class.CObjectVector.1 }
%struct.CDecompressStat = type { i64, i64, i64, i64, i64, i32 }
%class.CUpdateCallbackConsole = type { %struct.IUpdateCallbackUI2, %class.CPercentPrinter, i8, i8, i8, %class.CStdOutStream*, i8, i8, i8, %class.CStringBase, i8, %class.CObjectVector, %class.CRecordVector.5, %class.CObjectVector, %class.CRecordVector.5 }
%struct.IUpdateCallbackUI2 = type { %struct.IUpdateCallbackUI }
%struct.IUpdateCallbackUI = type { i32 (...)** }
%class.CPercentPrinter = type { i64, i64, i64, i64, i32, %class.CStdOutStream* }
%struct.CUpdateErrorInfo = type { %struct.CErrorInfo }
%struct.CErrorInfo = type { i32, %class.CStringBase, %class.CStringBase, %class.CStringBase }
%struct.CUpdateArchiveCommand = type <{ %class.CStringBase, %struct.CArchivePath, %"struct.NUpdateArchive::CActionSet", [4 x i8] }>
%"struct.NUpdateArchive::CActionSet" = type { [7 x i32] }
%struct.CSystemException = type { i32 }
%"struct.NWildcard::CPair" = type { %class.CStringBase, %"class.NWildcard::CCensorNode" }
%"class.NWildcard::CCensorNode" = type { %"class.NWildcard::CCensorNode"*, %class.CStringBase, %class.CObjectVector.8, %class.CObjectVector.9, %class.CObjectVector.9 }
%class.CObjectVector.8 = type { %class.CRecordVector }
%class.CObjectVector.9 = type { %class.CRecordVector }
%"struct.NWildcard::CItem" = type <{ %class.CObjectVector, i8, i8, i8, [5 x i8] }>
%struct.CProperty = type { %class.CStringBase, %class.CStringBase }
$_ZN13CObjectVectorI11CStringBaseIwEEC2Ev = comdat any
$_ZNK17CBaseRecordVector4SizeEv = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii = comdat any
$_ZN26CArchiveCommandLineOptionsC2Ev = comdat any
$_ZN7CCodecsC2Ev = comdat any
$_ZN9CMyComPtrI8IUnknownEC2EPS0_ = comdat any
$_ZN16CSystemExceptionC2Ei = comdat any
$_ZN13CRecordVectorIiEC2Ev = comdat any
$_ZN13CObjectVectorI10CArcInfoExEixEi = comdat any
$_ZN11CStringBaseIwEC2Ev = comdat any
$_ZNK13CObjectVectorI11CArcExtInfoEixEi = comdat any
$_ZN11CStringBaseIwEpLERKS0_ = comdat any
$_ZNK11CStringBaseIwE7IsEmptyEv = comdat any
$_ZN11CStringBaseIwEpLEPKw = comdat any
$_ZN11CStringBaseIwEpLEw = comdat any
$_ZNK7CBufferIhE11GetCapacityEv = comdat any
$_ZNK7CBufferIhEcvPKhEv = comdat any
$_ZN11CStringBaseIwED2Ev = comdat any
$_ZNK11CStringBaseIwE13CompareNoCaseEPKw = comdat any
$_ZN13CStdOutStreamcvP8_IO_FILEEv = comdat any
$_ZN23CExtractCallbackConsoleC2Ev = comdat any
$_ZN9CMyComPtrI29IFolderArchiveExtractCallbackEC2EPS0_ = comdat any
$_ZN11CStringBaseIwEaSERKS0_ = comdat any
$_ZN23CExtractCallbackConsole4InitEv = comdat any
$_ZN20COpenCallbackConsoleC2Ev = comdat any
$_ZN15CExtractOptionsC2Ev = comdat any
$_ZNK15CArchiveCommand10IsTestModeEv = comdat any
$_ZN13CObjectVectorI9CPropertyEaSERKS1_ = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv = comdat any
$_ZNK11CStringBaseIwEcvPKwEv = comdat any
$_ZN15CExtractOptionsD2Ev = comdat any
$_ZN20COpenCallbackConsoleD2Ev = comdat any
$_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev = comdat any
$_ZN11CStringBaseIwEaSEPKw = comdat any
$_ZN22CUpdateCallbackConsoleC2Ev = comdat any
$_ZN22CUpdateCallbackConsole4InitEP13CStdOutStream = comdat any
$_ZN16CUpdateErrorInfoC2Ev = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi = comdat any
$_ZNK12CArchivePath12GetFinalPathEv = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEEixEi = comdat any
$_ZN8NWindows6NError16MyFormatMessageWEj = comdat any
$_ZN13CRecordVectorIiEixEi = comdat any
$_ZN10CErrorInfoD2Ev = comdat any
$_ZN22CUpdateCallbackConsoleD2Ev = comdat any
$_ZN9CMyComPtrI8IUnknownED2Ev = comdat any
$_ZN25CArchiveCommandLineParserD2Ev = comdat any
$_ZN26CArchiveCommandLineOptionsD2Ev = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEED2Ev = comdat any
$_ZN9NWildcard7CCensorC2Ev = comdat any
$_ZN13CObjectVectorI9CPropertyEC2Ev = comdat any
$_ZN14CUpdateOptionsC2Ev = comdat any
$_ZN14CUpdateOptionsD2Ev = comdat any
$_ZN13CObjectVectorI9CPropertyED2Ev = comdat any
$_ZN9NWildcard7CCensorD2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev = comdat any
$_ZN13CRecordVectorIPvEC2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii = comdat any
$_ZN17CBaseRecordVectorC2Em = comdat any
$_ZN13CRecordVectorIPvED0Ev = comdat any
$__clang_call_terminate = comdat any
$_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi = comdat any
$_ZN9NWildcard5CPairD2Ev = comdat any
$_ZN9NWildcard11CCensorNodeD2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii = comdat any
$_ZN9NWildcard5CItemD2Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev = comdat any
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii = comdat any
$_ZN13CObjectVectorI9CPropertyED0Ev = comdat any
$_ZN13CObjectVectorI9CPropertyE6DeleteEii = comdat any
$_ZN9CPropertyD2Ev = comdat any
$_ZN22CCompressionMethodModeC2Ev = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandEC2Ev = comdat any
$_ZN12CArchivePathC2Ev = comdat any
$_ZN13CRecordVectorIyEC2Ev = comdat any
$_ZN12CArchivePathD2Ev = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev = comdat any
$_ZN22CCompressionMethodModeD2Ev = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandED0Ev = comdat any
$_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii = comdat any
$_ZN21CUpdateArchiveCommandD2Ev = comdat any
$_ZN13CRecordVectorIyED0Ev = comdat any
$_ZN8IUnknownC2Ev = comdat any
$_ZN13CMyUnknownImpC2Ev = comdat any
$_ZN13CObjectVectorI10CArcInfoExEC2Ev = comdat any
$_ZN7CCodecs14QueryInterfaceERK4GUIDPPv = comdat any
$_ZN7CCodecs6AddRefEv = comdat any
$_ZN7CCodecs7ReleaseEv = comdat any
$_ZN7CCodecsD2Ev = comdat any
$_ZN7CCodecsD0Ev = comdat any
$_ZN8IUnknownD0Ev = comdat any
$_ZN13CObjectVectorI10CArcInfoExED2Ev = comdat any
$_ZN13CObjectVectorI10CArcInfoExED0Ev = comdat any
$_ZN13CObjectVectorI10CArcInfoExE6DeleteEii = comdat any
$_ZN10CArcInfoExD2Ev = comdat any
$_ZN7CBufferIhED2Ev = comdat any
$_ZN13CObjectVectorI11CArcExtInfoED2Ev = comdat any
$_ZN7CBufferIhED0Ev = comdat any
$_ZN13CObjectVectorI11CArcExtInfoED0Ev = comdat any
$_ZN13CObjectVectorI11CArcExtInfoE6DeleteEii = comdat any
$_ZN11CArcExtInfoD2Ev = comdat any
$_ZeqRK4GUIDS1_ = comdat any
$_ZNK11CStringBaseIwE6LengthEv = comdat any
$_ZN18IExtractCallbackUIC2Ev = comdat any
$_ZN22ICryptoGetTextPasswordC2Ev = comdat any
$_ZN29IFolderArchiveExtractCallbackC2Ev = comdat any
$_ZN18IExtractCallbackUID0Ev = comdat any
$_ZN9IProgressC2Ev = comdat any
$_ZN29IFolderArchiveExtractCallbackD0Ev = comdat any
$_ZN9IProgressD0Ev = comdat any
$_ZN8IUnknownD2Ev = comdat any
$_ZN22ICryptoGetTextPasswordD0Ev = comdat any
$_ZN15IOpenCallbackUIC2Ev = comdat any
$_ZN18IUpdateCallbackUI2C2Ev = comdat any
$_ZN15CPercentPrinterC2Ey = comdat any
$_ZN17IUpdateCallbackUIC2Ev = comdat any
$_ZN10CErrorInfoC2Ev = comdat any
$_ZNK12CArchivePath17GetPathWithoutExtEv = comdat any
$_ZplIwE11CStringBaseIT_ERKS2_S4_ = comdat any
$_ZN11CStringBaseIwEC2Ew = comdat any
$_ZN11CStringBaseIwEC2ERKS0_ = comdat any
$_ZN11CStringBaseIwE11SetCapacityEi = comdat any
$_Z12MyStringCopyIwEPT_S1_PKS0_ = comdat any
$_ZN8NWindows6NError15MyFormatMessageEj = comdat any
$_ZN13CObjectVectorI11CStringBaseIwEED0Ev = comdat any
$_ZN11CStringBaseIwE5EmptyEv = comdat any
$_Z11MyStringLenIwEiPKT_ = comdat any
$_ZNK13CRecordVectorIPvEixEi = comdat any
$_ZN11CStringBaseIwE10GrowLengthEi = comdat any
$_ZN13CRecordVectorIiED0Ev = comdat any
$_ZN13CRecordVectorIPvEixEi = comdat any
$_ZN13CObjectVectorI9CPropertyEpLERKS1_ = comdat any
$_ZN13CObjectVectorI9CPropertyE3AddERKS0_ = comdat any
$_ZNK13CObjectVectorI9CPropertyEixEi = comdat any
$_ZN13CRecordVectorIPvE3AddES0_ = comdat any
$_ZN9CPropertyC2ERKS_ = comdat any
$_ZN13CObjectVectorIN9NWildcard5CPairEEixEi = comdat any
$_ZTS16CSystemException = comdat any
$_ZTI16CSystemException = comdat any
$_ZTV13CObjectVectorIN9NWildcard5CPairEE = comdat any
$_ZTS13CObjectVectorIN9NWildcard5CPairEE = comdat any
$_ZTS13CRecordVectorIPvE = comdat any
$_ZTI13CRecordVectorIPvE = comdat any
$_ZTI13CObjectVectorIN9NWildcard5CPairEE = comdat any
$_ZTV13CRecordVectorIPvE = comdat any
$_ZTV13CObjectVectorIN9NWildcard5CItemEE = comdat any
$_ZTS13CObjectVectorIN9NWildcard5CItemEE = comdat any
$_ZTI13CObjectVectorIN9NWildcard5CItemEE = comdat any
$_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any
$_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any
$_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any
$_ZTV13CObjectVectorI9CPropertyE = comdat any
$_ZTS13CObjectVectorI9CPropertyE = comdat any
$_ZTI13CObjectVectorI9CPropertyE = comdat any
$_ZTV13CObjectVectorI21CUpdateArchiveCommandE = comdat any
$_ZTS13CObjectVectorI21CUpdateArchiveCommandE = comdat any
$_ZTI13CObjectVectorI21CUpdateArchiveCommandE = comdat any
$_ZTV13CRecordVectorIyE = comdat any
$_ZTS13CRecordVectorIyE = comdat any
$_ZTI13CRecordVectorIyE = comdat any
$_ZTV7CCodecs = comdat any
$_ZTS7CCodecs = comdat any
$_ZTS8IUnknown = comdat any
$_ZTI8IUnknown = comdat any
$_ZTS13CMyUnknownImp = comdat any
$_ZTI13CMyUnknownImp = comdat any
$_ZTI7CCodecs = comdat any
$_ZTV8IUnknown = comdat any
$_ZTV13CObjectVectorI10CArcInfoExE = comdat any
$_ZTS13CObjectVectorI10CArcInfoExE = comdat any
$_ZTI13CObjectVectorI10CArcInfoExE = comdat any
$_ZTV7CBufferIhE = comdat any
$_ZTS7CBufferIhE = comdat any
$_ZTI7CBufferIhE = comdat any
$_ZTV13CObjectVectorI11CArcExtInfoE = comdat any
$_ZTS13CObjectVectorI11CArcExtInfoE = comdat any
$_ZTI13CObjectVectorI11CArcExtInfoE = comdat any
$_ZTV18IExtractCallbackUI = comdat any
$_ZTS18IExtractCallbackUI = comdat any
$_ZTS29IFolderArchiveExtractCallback = comdat any
$_ZTS9IProgress = comdat any
$_ZTI9IProgress = comdat any
$_ZTI29IFolderArchiveExtractCallback = comdat any
$_ZTI18IExtractCallbackUI = comdat any
$_ZTV29IFolderArchiveExtractCallback = comdat any
$_ZTV9IProgress = comdat any
$_ZTV22ICryptoGetTextPassword = comdat any
$_ZTS22ICryptoGetTextPassword = comdat any
$_ZTI22ICryptoGetTextPassword = comdat any
$_ZTV15IOpenCallbackUI = comdat any
$_ZTS15IOpenCallbackUI = comdat any
$_ZTI15IOpenCallbackUI = comdat any
$_ZTV18IUpdateCallbackUI2 = comdat any
$_ZTS18IUpdateCallbackUI2 = comdat any
$_ZTS17IUpdateCallbackUI = comdat any
$_ZTI17IUpdateCallbackUI = comdat any
$_ZTI18IUpdateCallbackUI2 = comdat any
$_ZTV17IUpdateCallbackUI = comdat any
$_ZTSN9NExitCode5EEnumE = comdat any
$_ZTIN9NExitCode5EEnumE = comdat any
$_ZTV13CObjectVectorI11CStringBaseIwEE = comdat any
$_ZTS13CObjectVectorI11CStringBaseIwEE = comdat any
$_ZTI13CObjectVectorI11CStringBaseIwEE = comdat any
$_ZTV13CRecordVectorIiE = comdat any
$_ZTS13CRecordVectorIiE = comdat any
$_ZTI13CRecordVectorIiE = comdat any
@IID_IUnknown = dso_local constant %struct.GUID { i32 0, i16 0, i16 0, [8 x i8] c"\C0\00\00\00\00\00\00F" }, align 4
@IID_IProgress = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\00\00\05\00\00" }, align 4
@IID_ISequentialInStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\01\00\00" }, align 4
@IID_ISequentialOutStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\02\00\00" }, align 4
@IID_IInStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\03\00\00" }, align 4
@IID_IOutStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\04\00\00" }, align 4
@IID_IStreamGetSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\06\00\00" }, align 4
@IID_IOutStreamFlush = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\07\00\00" }, align 4
@IID_IArchiveOpenCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\10\00\00" }, align 4
@IID_IArchiveExtractCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00 \00\00" }, align 4
@IID_IArchiveOpenVolumeCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\000\00\00" }, align 4
@IID_IInArchiveGetStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00@\00\00" }, align 4
@IID_IArchiveOpenSetSubArchiveName = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00P\00\00" }, align 4
@IID_IInArchive = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00`\00\00" }, align 4
@IID_IArchiveOpenSeq = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00a\00\00" }, align 4
@IID_IArchiveUpdateCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\80\00\00" }, align 4
@IID_IArchiveUpdateCallback2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\82\00\00" }, align 4
@IID_IOutArchive = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\A0\00\00" }, align 4
@IID_ISetProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\03\00\00" }, align 4
@IID_ICryptoGetTextPassword = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\05\00\10\00\00" }, align 4
@IID_ICryptoGetTextPassword2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\05\00\11\00\00" }, align 4
@IID_ICompressProgressInfo = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\04\00\00" }, align 4
@IID_ICompressCoder = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\05\00\00" }, align 4
@IID_ICompressCoder2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\18\00\00" }, align 4
@IID_ICompressSetCoderProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00 \00\00" }, align 4
@IID_ICompressSetDecoderProperties2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\22\00\00" }, align 4
@IID_ICompressWriteCoderProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00#\00\00" }, align 4
@IID_ICompressGetInStreamProcessedSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00$\00\00" }, align 4
@IID_ICompressSetCoderMt = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00%\00\00" }, align 4
@IID_ICompressGetSubStreamSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\000\00\00" }, align 4
@IID_ICompressSetInStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\001\00\00" }, align 4
@IID_ICompressSetOutStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\002\00\00" }, align 4
@IID_ICompressSetInStreamSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\003\00\00" }, align 4
@IID_ICompressSetOutStreamSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\004\00\00" }, align 4
@IID_ICompressSetBufSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\005\00\00" }, align 4
@IID_ICompressFilter = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00@\00\00" }, align 4
@IID_ICompressCodecsInfo = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00`\00\00" }, align 4
@IID_ISetCompressCodecsInfo = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00a\00\00" }, align 4
@IID_ICryptoProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\80\00\00" }, align 4
@IID_ICryptoResetInitVector = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\8C\00\00" }, align 4
@IID_ICryptoSetPassword = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\90\00\00" }, align 4
@IID_ICryptoSetCRC = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\A0\00\00" }, align 4
@IID_IFolderArchiveExtractCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\01\00\07\00\00" }, align 4
@g_StdOut = external dso_local global %class.CStdOutStream, align 8
@g_StdErr = external dso_local global %class.CStdOutStream, align 8
@g_StdStream = external dso_local global %class.CStdOutStream*, align 8
@_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global i8*
@_ZTS16CSystemException = linkonce_odr dso_local constant [19 x i8] c"16CSystemException\00", comdat, align 1
@_ZTI16CSystemException = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS16CSystemException, i32 0, i32 0) }, comdat, align 8
@_ZL10kNoFormats = internal global i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.36, i32 0, i32 0), align 8
@_ZTIPKc = external dso_local constant i8*
@_ZL26kUnsupportedArcTypeMessage = internal global i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.37, i32 0, i32 0), align 8
@.str = private unnamed_addr constant [9 x i8] c"Formats:\00", align 1
@.str.1 = private unnamed_addr constant [3 x i8] c" \00", align 1
@.str.2 = private unnamed_addr constant [3 x i32] [i32 32, i32 40, i32 0], align 4
@.str.3 = private unnamed_addr constant [8 x i8] c"Codecs:\00", align 1
@.str.4 = private unnamed_addr constant [4 x i32] [i32 67, i32 82, i32 67, i32 0], align 4
@.str.5 = private unnamed_addr constant [12 x i8] c"\0ACRC Error\0A\00", align 1
@.str.6 = private unnamed_addr constant [17 x i8] c"\0ADecoding Error\0A\00", align 1
@.str.7 = private unnamed_addr constant [8 x i8] c"Error: \00", align 1
@.str.8 = private unnamed_addr constant [11 x i8] c"Archives: \00", align 1
@.str.9 = private unnamed_addr constant [17 x i8] c"Archive Errors: \00", align 1
@.str.10 = private unnamed_addr constant [19 x i8] c"Sub items Errors: \00", align 1
@.str.11 = private unnamed_addr constant [10 x i8] c"Folders: \00", align 1
@.str.12 = private unnamed_addr constant [8 x i8] c"Files: \00", align 1
@.str.13 = private unnamed_addr constant [13 x i8] c"Size: \00", align 1
@.str.14 = private unnamed_addr constant [13 x i8] c"Compressed: \00", align 1
@.str.15 = private unnamed_addr constant [6 x i8] c"CRC: \00", align 1
@.str.16 = private unnamed_addr constant [9 x i8] c"Errors: \00", align 1
@_ZL17kDefaultSfxModule = internal global i32* getelementptr inbounds ([10 x i32], [10 x i32]* @.str.38, i32 0, i32 0), align 8
@.str.17 = private unnamed_addr constant [20 x i8] c"WARNINGS for files:\00", align 1
@.str.18 = private unnamed_addr constant [4 x i8] c" : \00", align 1
@.str.19 = private unnamed_addr constant [17 x i8] c"----------------\00", align 1
@.str.20 = private unnamed_addr constant [22 x i8] c"WARNING: Cannot find \00", align 1
@.str.21 = private unnamed_addr constant [6 x i8] c" file\00", align 1
@.str.22 = private unnamed_addr constant [2 x i8] c"s\00", align 1
@.str.23 = private unnamed_addr constant [2 x i32] [i32 10, i32 0], align 4
@.str.24 = private unnamed_addr constant [9 x i32] [i32 10, i32 69, i32 114, i32 114, i32 111, i32 114, i32 58, i32 10, i32 0], align 4
@_ZL15kEverythingIsOk = internal global i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.39, i32 0, i32 0), align 8
@.str.25 = private unnamed_addr constant [22 x i8] c"WARNING: Cannot open \00", align 1
@_ZL16kCopyrightString = internal global i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.34, i32 0, i32 0), align 8
@.str.26 = private unnamed_addr constant [10 x i8] c" (locale=\00", align 1
@.str.27 = private unnamed_addr constant [8 x i8] c",Utf16=\00", align 1
@global_use_utf16_conversion = external dso_local global i32, align 4
@.str.28 = private unnamed_addr constant [3 x i8] c"on\00", align 1
@.str.29 = private unnamed_addr constant [4 x i8] c"off\00", align 1
@.str.30 = private unnamed_addr constant [12 x i8] c",HugeFiles=\00", align 1
@.str.31 = private unnamed_addr constant [4 x i8] c"on,\00", align 1
@.str.32 = private unnamed_addr constant [8 x i8] c" CPUs)\0A\00", align 1
@.str.33 = private unnamed_addr constant [7 x i8] c" CPU)\0A\00", align 1
@_ZL11kHelpString = internal global i8* getelementptr inbounds ([1257 x i8], [1257 x i8]* @.str.35, i32 0, i32 0), align 8
@.str.34 = private unnamed_addr constant [89 x i8] c"\0A7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18\0Ap7zip Version 9.20\00", align 1
@.str.35 = private unnamed_addr constant [1257 x i8] c"\0AUsage: 7za <command> [<switches>...] <archive_name> [<file_names>...]\0A [<@listfiles...>]\0A\0A<Commands>\0A a: Add files to archive\0A b: Benchmark\0A d: Delete files from archive\0A e: Extract files from archive (without using directory names)\0A l: List contents of archive\0A t: Test integrity of archive\0A u: Update files to archive\0A x: eXtract files with full paths\0A<Switches>\0A -ai[r[-|0]]{@listfile|!wildcard}: Include archives\0A -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives\0A -bd: Disable percentage indicator\0A -i[r[-|0]]{@listfile|!wildcard}: Include filenames\0A -m{Parameters}: set compression Method\0A -o{Directory}: set Output directory\0A -p{Password}: set Password\0A -r[-|0]: Recurse subdirectories\0A -scs{UTF-8 | WIN | DOS}: set charset for list files\0A -sfx[{name}]: Create SFX archive\0A -si[{name}]: read data from stdin\0A -slt: show technical information for l (List) command\0A -so: write data to stdout\0A -ssc[-]: set sensitive case mode\0A -t{Type}: Set type of archive\0A -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options\0A -v{Size}[b|k|m|g]: Create volumes\0A -w[{path}]: assign Work directory. Empty path means a temporary directory\0A -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames\0A -y: assume Yes on all queries\0A\00", align 1
@_ZTV13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CPairEE to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTVN10__cxxabiv120__si_class_type_infoE = external dso_local global i8*
@_ZTS13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CPairEE\00", comdat, align 1
@_ZTS13CRecordVectorIPvE = linkonce_odr dso_local constant [20 x i8] c"13CRecordVectorIPvE\00", comdat, align 1
@_ZTI17CBaseRecordVector = external dso_local constant i8*
@_ZTI13CRecordVectorIPvE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @_ZTS13CRecordVectorIPvE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8
@_ZTI13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CPairEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CRecordVectorIPvE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector*)* @_ZN13CRecordVectorIPvED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8
@_ZTV17CBaseRecordVector = available_externally dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD1Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, align 8
@_ZTV13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CItemEE to i8*), i8* bitcast (void (%class.CObjectVector.9*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.9*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.9*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CItemEE\00", comdat, align 1
@_ZTI13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CItemEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant [43 x i8] c"13CObjectVectorIN9NWildcard11CCensorNodeEE\00", comdat, align 1
@_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CObjectVectorI9CPropertyE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI9CPropertyE to i8*), i8* bitcast (void (%class.CObjectVector.1*)* @_ZN13CObjectVectorI9CPropertyED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.1*)* @_ZN13CObjectVectorI9CPropertyED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.1*, i32, i32)* @_ZN13CObjectVectorI9CPropertyE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI9CPropertyE = linkonce_odr dso_local constant [28 x i8] c"13CObjectVectorI9CPropertyE\00", comdat, align 1
@_ZTI13CObjectVectorI9CPropertyE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @_ZTS13CObjectVectorI9CPropertyE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CObjectVectorI21CUpdateArchiveCommandE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI21CUpdateArchiveCommandE to i8*), i8* bitcast (void (%class.CObjectVector.2*)* @_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.2*)* @_ZN13CObjectVectorI21CUpdateArchiveCommandED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.2*, i32, i32)* @_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI21CUpdateArchiveCommandE = linkonce_odr dso_local constant [41 x i8] c"13CObjectVectorI21CUpdateArchiveCommandE\00", comdat, align 1
@_ZTI13CObjectVectorI21CUpdateArchiveCommandE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @_ZTS13CObjectVectorI21CUpdateArchiveCommandE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CRecordVectorIyE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIyE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.3*)* @_ZN13CRecordVectorIyED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CRecordVectorIyE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIyE\00", comdat, align 1
@_ZTI13CRecordVectorIyE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIyE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8
@_ZTV7CCodecs = linkonce_odr dso_local unnamed_addr constant { [7 x i8*] } { [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i64, i8*, i64 }* @_ZTI7CCodecs to i8*), i8* bitcast (i32 (%class.CCodecs*, %struct.GUID*, i8**)* @_ZN7CCodecs14QueryInterfaceERK4GUIDPPv to i8*), i8* bitcast (i32 (%class.CCodecs*)* @_ZN7CCodecs6AddRefEv to i8*), i8* bitcast (i32 (%class.CCodecs*)* @_ZN7CCodecs7ReleaseEv to i8*), i8* bitcast (void (%class.CCodecs*)* @_ZN7CCodecsD2Ev to i8*), i8* bitcast (void (%class.CCodecs*)* @_ZN7CCodecsD0Ev to i8*)] }, comdat, align 8
@_ZTVN10__cxxabiv121__vmi_class_type_infoE = external dso_local global i8*
@_ZTS7CCodecs = linkonce_odr dso_local constant [9 x i8] c"7CCodecs\00", comdat, align 1
@_ZTS8IUnknown = linkonce_odr dso_local constant [10 x i8] c"8IUnknown\00", comdat, align 1
@_ZTI8IUnknown = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @_ZTS8IUnknown, i32 0, i32 0) }, comdat, align 8
@_ZTS13CMyUnknownImp = linkonce_odr dso_local constant [16 x i8] c"13CMyUnknownImp\00", comdat, align 1
@_ZTI13CMyUnknownImp = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @_ZTS13CMyUnknownImp, i32 0, i32 0) }, comdat, align 8
@_ZTI7CCodecs = linkonce_odr dso_local constant { i8*, i8*, i32, i32, i8*, i64, i8*, i64 } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @_ZTS7CCodecs, i32 0, i32 0), i32 0, i32 2, i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*), i64 2, i8* bitcast ({ i8*, i8* }* @_ZTI13CMyUnknownImp to i8*), i64 2050 }, comdat, align 8
@_ZTV8IUnknown = linkonce_odr dso_local unnamed_addr constant { [7 x i8*] } { [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD0Ev to i8*)] }, comdat, align 8
@_ZTV13CObjectVectorI10CArcInfoExE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI10CArcInfoExE to i8*), i8* bitcast (void (%class.CObjectVector.4*)* @_ZN13CObjectVectorI10CArcInfoExED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.4*)* @_ZN13CObjectVectorI10CArcInfoExED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.4*, i32, i32)* @_ZN13CObjectVectorI10CArcInfoExE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI10CArcInfoExE = linkonce_odr dso_local constant [30 x i8] c"13CObjectVectorI10CArcInfoExE\00", comdat, align 1
@_ZTI13CObjectVectorI10CArcInfoExE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @_ZTS13CObjectVectorI10CArcInfoExE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV7CBufferIhE = linkonce_odr dso_local unnamed_addr constant { [4 x i8*] } { [4 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI7CBufferIhE to i8*), i8* bitcast (void (%class.CBuffer*)* @_ZN7CBufferIhED2Ev to i8*), i8* bitcast (void (%class.CBuffer*)* @_ZN7CBufferIhED0Ev to i8*)] }, comdat, align 8
@_ZTS7CBufferIhE = linkonce_odr dso_local constant [12 x i8] c"7CBufferIhE\00", comdat, align 1
@_ZTI7CBufferIhE = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @_ZTS7CBufferIhE, i32 0, i32 0) }, comdat, align 8
@_ZTV13CObjectVectorI11CArcExtInfoE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI11CArcExtInfoE to i8*), i8* bitcast (void (%class.CObjectVector.6*)* @_ZN13CObjectVectorI11CArcExtInfoED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.6*)* @_ZN13CObjectVectorI11CArcExtInfoED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.6*, i32, i32)* @_ZN13CObjectVectorI11CArcExtInfoE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI11CArcExtInfoE = linkonce_odr dso_local constant [31 x i8] c"13CObjectVectorI11CArcExtInfoE\00", comdat, align 1
@_ZTI13CObjectVectorI11CArcExtInfoE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @_ZTS13CObjectVectorI11CArcExtInfoE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@.str.36 = private unnamed_addr constant [53 x i8] c"7-Zip cannot find the code that works with archives.\00", align 1
@.str.37 = private unnamed_addr constant [25 x i8] c"Unsupported archive type\00", align 1
@_ZTV23CExtractCallbackConsole = external dso_local unnamed_addr constant { [19 x i8*], [8 x i8*] }, align 8
@_ZTV18IExtractCallbackUI = linkonce_odr dso_local unnamed_addr constant { [18 x i8*] } { [18 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI18IExtractCallbackUI to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IExtractCallbackUI*)* @_ZN18IExtractCallbackUID0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@_ZTS18IExtractCallbackUI = linkonce_odr dso_local constant [21 x i8] c"18IExtractCallbackUI\00", comdat, align 1
@_ZTS29IFolderArchiveExtractCallback = linkonce_odr dso_local constant [32 x i8] c"29IFolderArchiveExtractCallback\00", comdat, align 1
@_ZTS9IProgress = linkonce_odr dso_local constant [11 x i8] c"9IProgress\00", comdat, align 1
@_ZTI9IProgress = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_ZTS9IProgress, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*) }, comdat, align 8
@_ZTI29IFolderArchiveExtractCallback = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @_ZTS29IFolderArchiveExtractCallback, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI9IProgress to i8*) }, comdat, align 8
@_ZTI18IExtractCallbackUI = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @_ZTS18IExtractCallbackUI, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI29IFolderArchiveExtractCallback to i8*) }, comdat, align 8
@_ZTV29IFolderArchiveExtractCallback = linkonce_odr dso_local unnamed_addr constant { [13 x i8*] } { [13 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI29IFolderArchiveExtractCallback to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IFolderArchiveExtractCallback*)* @_ZN29IFolderArchiveExtractCallbackD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@_ZTV9IProgress = linkonce_odr dso_local unnamed_addr constant { [9 x i8*] } { [9 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI9IProgress to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IProgress*)* @_ZN9IProgressD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@_ZTV22ICryptoGetTextPassword = linkonce_odr dso_local unnamed_addr constant { [8 x i8*] } { [8 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI22ICryptoGetTextPassword to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.ICryptoGetTextPassword*)* @_ZN22ICryptoGetTextPasswordD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@_ZTS22ICryptoGetTextPassword = linkonce_odr dso_local constant [25 x i8] c"22ICryptoGetTextPassword\00", comdat, align 1
@_ZTI22ICryptoGetTextPassword = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @_ZTS22ICryptoGetTextPassword, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*) }, comdat, align 8
@_ZTV20COpenCallbackConsole = available_externally dso_local unnamed_addr constant { [9 x i8*] } { [9 x i8*] [i8* null, i8* bitcast (i8** @_ZTI20COpenCallbackConsole to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*)* @_ZN20COpenCallbackConsole15Open_CheckBreakEv to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, i64*, i64*)* @_ZN20COpenCallbackConsole13Open_SetTotalEPKyS1_ to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, i64*, i64*)* @_ZN20COpenCallbackConsole17Open_SetCompletedEPKyS1_ to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, i32**)* @_ZN20COpenCallbackConsole26Open_CryptoGetTextPasswordEPPw to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, %class.CStringBase*)* @_ZN20COpenCallbackConsole21Open_GetPasswordIfAnyER11CStringBaseIwE to i8*), i8* bitcast (i1 (%class.COpenCallbackConsole*)* @_ZN20COpenCallbackConsole21Open_WasPasswordAskedEv to i8*), i8* bitcast (void (%class.COpenCallbackConsole*)* @_ZN20COpenCallbackConsole30Open_ClearPasswordWasAskedFlagEv to i8*)] }, align 8
@_ZTI20COpenCallbackConsole = external dso_local constant i8*
@_ZTV15IOpenCallbackUI = linkonce_odr dso_local unnamed_addr constant { [9 x i8*] } { [9 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI15IOpenCallbackUI to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@_ZTS15IOpenCallbackUI = linkonce_odr dso_local constant [18 x i8] c"15IOpenCallbackUI\00", comdat, align 1
@_ZTI15IOpenCallbackUI = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @_ZTS15IOpenCallbackUI, i32 0, i32 0) }, comdat, align 8
@.str.38 = private unnamed_addr constant [10 x i32] [i32 55, i32 122, i32 67, i32 111, i32 110, i32 46, i32 115, i32 102, i32 120, i32 0], align 4
@_ZTV22CUpdateCallbackConsole = available_externally dso_local unnamed_addr constant { [20 x i8*] } { [20 x i8*] [i8* null, i8* bitcast (i8** @_ZTI22CUpdateCallbackConsole to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64)* @_ZN22CUpdateCallbackConsole8SetTotalEy to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64*)* @_ZN22CUpdateCallbackConsole12SetCompletedEPKy to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64*, i64*)* @_ZN22CUpdateCallbackConsole12SetRatioInfoEPKyS1_ to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole10CheckBreakEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole8FinilizeEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64)* @_ZN22CUpdateCallbackConsole11SetNumFilesEy to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i1)* @_ZN22CUpdateCallbackConsole9GetStreamEPKwb to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32)* @_ZN22CUpdateCallbackConsole13OpenFileErrorEPKwj to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32)* @_ZN22CUpdateCallbackConsole18SetOperationResultEi to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32**)* @_ZN22CUpdateCallbackConsole22CryptoGetTextPassword2EPiPPw to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32**)* @_ZN22CUpdateCallbackConsole21CryptoGetTextPasswordEPPw to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32)* @_ZN22CUpdateCallbackConsole10OpenResultEPKwi to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole13StartScanningEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64, i64, i32*)* @_ZN22CUpdateCallbackConsole12ScanProgressEyyPKw to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32)* @_ZN22CUpdateCallbackConsole15CanNotFindErrorEPKwj to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole14FinishScanningEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i1)* @_ZN22CUpdateCallbackConsole12StartArchiveEPKwb to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole13FinishArchiveEv to i8*)] }, align 8
@_ZTI22CUpdateCallbackConsole = external dso_local constant i8*
@_ZTV18IUpdateCallbackUI2 = linkonce_odr dso_local unnamed_addr constant { [20 x i8*] } { [20 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI18IUpdateCallbackUI2 to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@_ZTS18IUpdateCallbackUI2 = linkonce_odr dso_local constant [21 x i8] c"18IUpdateCallbackUI2\00", comdat, align 1
@_ZTS17IUpdateCallbackUI = linkonce_odr dso_local constant [20 x i8] c"17IUpdateCallbackUI\00", comdat, align 1
@_ZTI17IUpdateCallbackUI = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @_ZTS17IUpdateCallbackUI, i32 0, i32 0) }, comdat, align 8
@_ZTI18IUpdateCallbackUI2 = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @_ZTS18IUpdateCallbackUI2, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI17IUpdateCallbackUI to i8*) }, comdat, align 8
@_ZTV17IUpdateCallbackUI = linkonce_odr dso_local unnamed_addr constant { [13 x i8*] } { [13 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI17IUpdateCallbackUI to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8
@.str.39 = private unnamed_addr constant [17 x i8] c"Everything is Ok\00", align 1
@_ZL17kUserErrorMessage = internal global i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.40, i32 0, i32 0), align 8
@_ZTVN10__cxxabiv116__enum_type_infoE = external dso_local global i8*
@_ZTSN9NExitCode5EEnumE = linkonce_odr dso_local constant [19 x i8] c"N9NExitCode5EEnumE\00", comdat, align 1
@_ZTIN9NExitCode5EEnumE = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv116__enum_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTSN9NExitCode5EEnumE, i32 0, i32 0) }, comdat, align 8
@.str.40 = private unnamed_addr constant [23 x i8] c"Incorrect command line\00", align 1
@_ZTV13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI11CStringBaseIwEE to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector*, i32, i32)* @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant [34 x i8] c"13CObjectVectorI11CStringBaseIwEE\00", comdat, align 1
@_ZTI13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @_ZTS13CObjectVectorI11CStringBaseIwEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8
@_ZTV13CRecordVectorIiE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIiE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.5*)* @_ZN13CRecordVectorIiED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8
@_ZTS13CRecordVectorIiE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIiE\00", comdat, align 1
@_ZTI13CRecordVectorIiE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIiE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8
; Function Attrs: mustprogress uwtable
define dso_local i32 @_Z5Main2iPPKc(i32 %numArgs, i8** %args) #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%retval = alloca i32, align 4
%numArgs.addr = alloca i32, align 4
%args.addr = alloca i8**, align 8
%commandStrings = alloca %class.CObjectVector, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%cleanup.dest.slot = alloca i32, align 4
%options = alloca %struct.CArchiveCommandLineOptions, align 8
%parser = alloca %class.CArchiveCommandLineParser, align 8
%stdStream = alloca %class.CStdOutStream*, align 8
%codecs = alloca %class.CCodecs*, align 8
%compressCodecsInfo = alloca %class.CMyComPtr, align 8
%result = alloca i32, align 4
%isExtractGroupCommand = alloca i8, align 1
%formatIndices = alloca %class.CRecordVector.5, align 8
%i = alloca i32, align 4
%arc = alloca %struct.CArcInfoEx*, align 8
%s = alloca %class.CStringBase, align 8
%t = alloca i32, align 4
%ext = alloca %struct.CArcExtInfo*, align 8
%sig = alloca %class.CBuffer*, align 8
%j = alloca i64, align 8
%b = alloca i8, align 1
%res = alloca i32, align 4
%res212 = alloca i32, align 4
%ecs = alloca %class.CExtractCallbackConsole*, align 8
%extractCallback = alloca %class.CMyComPtr.7, align 8
%openCallback = alloca %class.COpenCallbackConsole, align 8
%eo = alloca %struct.CExtractOptions, align 8
%errorMessage = alloca %class.CStringBase, align 8
%stat = alloca %struct.CDecompressStat, align 8
%result305 = alloca i32, align 4
%s423 = alloca [16 x i8], align 16
%numErrors = alloca i64, align 8
%result460 = alloca i32, align 4
%uo = alloca %struct.CUpdateOptions*, align 8
%openCallback516 = alloca %class.COpenCallbackConsole, align 8
%passwordIsDefined = alloca i8, align 1
%callback = alloca %class.CUpdateCallbackConsole, align 8
%errorInfo = alloca %struct.CUpdateErrorInfo, align 8
%result568 = alloca i32, align 4
%i576 = alloca i32, align 4
%command = alloca %struct.CUpdateArchiveCommand*, align 8
%ref.tmp = alloca %class.CStringBase, align 8
%exitCode = alloca i32, align 4
%numErrors618 = alloca i32, align 4
%i623 = alloca i32, align 4
%ref.tmp638 = alloca %class.CStringBase, align 8
%message = alloca %class.CStringBase, align 8
%ref.tmp710 = alloca %class.CStringBase, align 8
%numErrors739 = alloca i32, align 4
%i764 = alloca i32, align 4
%ref.tmp779 = alloca %class.CStringBase, align 8
store i32 %numArgs, i32* %numArgs.addr, align 4, !tbaa !3
store i8** %args, i8*** %args.addr, align 8, !tbaa !7
%0 = bitcast %class.CObjectVector* %commandStrings to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %0) #16
call void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings)
%1 = load i32, i32* %numArgs.addr, align 4, !tbaa !3
%2 = load i8**, i8*** %args.addr, align 8, !tbaa !7
invoke void @_Z18mySplitCommandLineiPPKcR13CObjectVectorI11CStringBaseIwEE(i32 %1, i8** %2, %class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%3 = bitcast %class.CObjectVector* %commandStrings to %class.CBaseRecordVector*
%call = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3)
to label %invoke.cont1 unwind label %lpad
invoke.cont1: ; preds = %invoke.cont
%cmp = icmp eq i32 %call, 1
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %invoke.cont1
invoke void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) @g_StdOut, i1 zeroext true)
to label %invoke.cont2 unwind label %lpad
invoke.cont2: ; preds = %if.then
store i32 0, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup868
lpad: ; preds = %if.end, %if.then, %invoke.cont, %entry
%4 = landingpad { i8*, i32 }
cleanup
%5 = extractvalue { i8*, i32 } %4, 0
store i8* %5, i8** %exn.slot, align 8
%6 = extractvalue { i8*, i32 } %4, 1
store i32 %6, i32* %ehselector.slot, align 4
br label %ehcleanup869
if.end: ; preds = %invoke.cont1
invoke void @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings, i32 0, i32 1)
to label %invoke.cont3 unwind label %lpad
invoke.cont3: ; preds = %if.end
%7 = bitcast %struct.CArchiveCommandLineOptions* %options to i8*
call void @llvm.lifetime.start.p0i8(i64 592, i8* %7) #16
invoke void @_ZN26CArchiveCommandLineOptionsC2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
%8 = bitcast %class.CArchiveCommandLineParser* %parser to i8*
call void @llvm.lifetime.start.p0i8(i64 48, i8* %8) #16
invoke void @_ZN25CArchiveCommandLineParserC1Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
invoke void @_ZN25CArchiveCommandLineParser6Parse1ERK13CObjectVectorI11CStringBaseIwEER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser, %class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont7
%HelpMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 0
%9 = load i8, i8* %HelpMode, align 8, !tbaa !9, !range !25
%tobool = trunc i8 %9 to i1
br i1 %tobool, label %if.then10, label %if.end12
if.then10: ; preds = %invoke.cont9
invoke void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) @g_StdOut, i1 zeroext true)
to label %invoke.cont11 unwind label %lpad8
invoke.cont11: ; preds = %if.then10
store i32 0, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup860
lpad4: ; preds = %invoke.cont3
%10 = landingpad { i8*, i32 }
cleanup
%11 = extractvalue { i8*, i32 } %10, 0
store i8* %11, i8** %exn.slot, align 8
%12 = extractvalue { i8*, i32 } %10, 1
store i32 %12, i32* %ehselector.slot, align 4
br label %ehcleanup867
lpad6: ; preds = %invoke.cont5
%13 = landingpad { i8*, i32 }
cleanup
%14 = extractvalue { i8*, i32 } %13, 0
store i8* %14, i8** %exn.slot, align 8
%15 = extractvalue { i8*, i32 } %13, 1
store i32 %15, i32* %ehselector.slot, align 4
br label %ehcleanup863
lpad8: ; preds = %if.then14, %if.then10, %invoke.cont7
%16 = landingpad { i8*, i32 }
cleanup
%17 = extractvalue { i8*, i32 } %16, 0
store i8* %17, i8** %exn.slot, align 8
%18 = extractvalue { i8*, i32 } %16, 1
store i32 %18, i32* %ehselector.slot, align 4
br label %ehcleanup861
if.end12: ; preds = %invoke.cont9
%LargePages = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 1
%19 = load i8, i8* %LargePages, align 1, !tbaa !26, !range !25
%tobool13 = trunc i8 %19 to i1
br i1 %tobool13, label %if.then14, label %if.end16
if.then14: ; preds = %if.end12
invoke void @SetLargePageSize()
to label %invoke.cont15 unwind label %lpad8
invoke.cont15: ; preds = %if.then14
br label %if.end16
if.end16: ; preds = %invoke.cont15, %if.end12
%20 = bitcast %class.CStdOutStream** %stdStream to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %20) #16
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 6
%21 = load i8, i8* %StdOutMode, align 2, !tbaa !27, !range !25
%tobool17 = trunc i8 %21 to i1
br i1 %tobool17, label %cond.true, label %cond.false
cond.true: ; preds = %if.end16
br label %cond.end
cond.false: ; preds = %if.end16
br label %cond.end
cond.end: ; preds = %cond.false, %cond.true
%cond-lvalue = phi %class.CStdOutStream* [ @g_StdErr, %cond.true ], [ @g_StdOut, %cond.false ]
store %class.CStdOutStream* %cond-lvalue, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%22 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
store %class.CStdOutStream* %22, %class.CStdOutStream** @g_StdStream, align 8, !tbaa !7
%EnableHeaders = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 7
%23 = load i8, i8* %EnableHeaders, align 1, !tbaa !28, !range !25
%tobool18 = trunc i8 %23 to i1
br i1 %tobool18, label %if.then19, label %if.end22
if.then19: ; preds = %cond.end
%24 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
invoke void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %24, i1 zeroext false)
to label %invoke.cont21 unwind label %lpad20
invoke.cont21: ; preds = %if.then19
br label %if.end22
lpad20: ; preds = %if.end22, %if.then19
%25 = landingpad { i8*, i32 }
cleanup
%26 = extractvalue { i8*, i32 } %25, 0
store i8* %26, i8** %exn.slot, align 8
%27 = extractvalue { i8*, i32 } %25, 1
store i32 %27, i32* %ehselector.slot, align 4
br label %ehcleanup859
if.end22: ; preds = %invoke.cont21, %cond.end
invoke void @_ZN25CArchiveCommandLineParser6Parse2ER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options)
to label %invoke.cont23 unwind label %lpad20
invoke.cont23: ; preds = %if.end22
%28 = bitcast %class.CCodecs** %codecs to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %28) #16
%call26 = invoke noalias nonnull i8* @_Znwm(i64 48) #17
to label %invoke.cont25 unwind label %lpad24
invoke.cont25: ; preds = %invoke.cont23
%29 = bitcast i8* %call26 to %class.CCodecs*
invoke void @_ZN7CCodecsC2Ev(%class.CCodecs* nonnull align 8 dereferenceable(48) %29)
to label %invoke.cont28 unwind label %lpad27
invoke.cont28: ; preds = %invoke.cont25
store %class.CCodecs* %29, %class.CCodecs** %codecs, align 8, !tbaa !7
%30 = bitcast %class.CMyComPtr* %compressCodecsInfo to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %30) #16
%31 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%32 = bitcast %class.CCodecs* %31 to %struct.IUnknown*
invoke void @_ZN9CMyComPtrI8IUnknownEC2EPS0_(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %compressCodecsInfo, %struct.IUnknown* %32)
to label %invoke.cont30 unwind label %lpad29
invoke.cont30: ; preds = %invoke.cont28
%33 = bitcast i32* %result to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %33) #16
%34 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%call33 = invoke i32 @_ZN7CCodecs4LoadEv(%class.CCodecs* nonnull align 8 dereferenceable(48) %34)
to label %invoke.cont32 unwind label %lpad31
invoke.cont32: ; preds = %invoke.cont30
store i32 %call33, i32* %result, align 4, !tbaa !3
%35 = load i32, i32* %result, align 4, !tbaa !3
%cmp34 = icmp ne i32 %35, 0
br i1 %cmp34, label %if.then35, label %if.end38
if.then35: ; preds = %invoke.cont32
%exception = call i8* @__cxa_allocate_exception(i64 4) #16
%36 = bitcast i8* %exception to %struct.CSystemException*
%37 = load i32, i32* %result, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %36, i32 %37)
to label %invoke.cont37 unwind label %lpad36
invoke.cont37: ; preds = %if.then35
invoke void @__cxa_throw(i8* %exception, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad31
lpad24: ; preds = %invoke.cont23
%38 = landingpad { i8*, i32 }
cleanup
%39 = extractvalue { i8*, i32 } %38, 0
store i8* %39, i8** %exn.slot, align 8
%40 = extractvalue { i8*, i32 } %38, 1
store i32 %40, i32* %ehselector.slot, align 4
br label %ehcleanup857
lpad27: ; preds = %invoke.cont25
%41 = landingpad { i8*, i32 }
cleanup
%42 = extractvalue { i8*, i32 } %41, 0
store i8* %42, i8** %exn.slot, align 8
%43 = extractvalue { i8*, i32 } %41, 1
store i32 %43, i32* %ehselector.slot, align 4
call void @_ZdlPv(i8* %call26) #19
br label %ehcleanup857
lpad29: ; preds = %invoke.cont28
%44 = landingpad { i8*, i32 }
cleanup
%45 = extractvalue { i8*, i32 } %44, 0
store i8* %45, i8** %exn.slot, align 8
%46 = extractvalue { i8*, i32 } %44, 1
store i32 %46, i32* %ehselector.slot, align 4
br label %ehcleanup855
lpad31: ; preds = %invoke.cont37, %invoke.cont30
%47 = landingpad { i8*, i32 }
cleanup
%48 = extractvalue { i8*, i32 } %47, 0
store i8* %48, i8** %exn.slot, align 8
%49 = extractvalue { i8*, i32 } %47, 1
store i32 %49, i32* %ehselector.slot, align 4
br label %ehcleanup851
lpad36: ; preds = %if.then35
%50 = landingpad { i8*, i32 }
cleanup
%51 = extractvalue { i8*, i32 } %50, 0
store i8* %51, i8** %exn.slot, align 8
%52 = extractvalue { i8*, i32 } %50, 1
store i32 %52, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception) #16
br label %ehcleanup851
if.end38: ; preds = %invoke.cont32
call void @llvm.lifetime.start.p0i8(i64 1, i8* %isExtractGroupCommand) #16
%Command = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%call41 = invoke zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command)
to label %invoke.cont40 unwind label %lpad39
invoke.cont40: ; preds = %if.end38
%frombool = zext i1 %call41 to i8
store i8 %frombool, i8* %isExtractGroupCommand, align 1, !tbaa !29
%53 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%Formats = getelementptr inbounds %class.CCodecs, %class.CCodecs* %53, i32 0, i32 2
%54 = bitcast %class.CObjectVector.4* %Formats to %class.CBaseRecordVector*
%call43 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %54)
to label %invoke.cont42 unwind label %lpad39
invoke.cont42: ; preds = %invoke.cont40
%cmp44 = icmp eq i32 %call43, 0
br i1 %cmp44, label %land.lhs.true, label %if.end54
land.lhs.true: ; preds = %invoke.cont42
%55 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !29, !range !25
%tobool45 = trunc i8 %55 to i1
br i1 %tobool45, label %if.then52, label %lor.lhs.false
lor.lhs.false: ; preds = %land.lhs.true
%Command46 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command46, i32 0, i32 0
%56 = load i32, i32* %CommandType, align 8, !tbaa !30
%cmp47 = icmp eq i32 %56, 6
br i1 %cmp47, label %if.then52, label %lor.lhs.false48
lor.lhs.false48: ; preds = %lor.lhs.false
%Command49 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%call51 = invoke zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command49)
to label %invoke.cont50 unwind label %lpad39
invoke.cont50: ; preds = %lor.lhs.false48
br i1 %call51, label %if.then52, label %if.end54
if.then52: ; preds = %invoke.cont50, %lor.lhs.false, %land.lhs.true
%exception53 = call i8* @__cxa_allocate_exception(i64 8) #16
%57 = bitcast i8* %exception53 to i8**
%58 = load i8*, i8** @_ZL10kNoFormats, align 8, !tbaa !7
store i8* %58, i8** %57, align 16, !tbaa !7
invoke void @__cxa_throw(i8* %exception53, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad39
lpad39: ; preds = %if.then52, %lor.lhs.false48, %invoke.cont40, %if.end38
%59 = landingpad { i8*, i32 }
cleanup
%60 = extractvalue { i8*, i32 } %59, 0
store i8* %60, i8** %exn.slot, align 8
%61 = extractvalue { i8*, i32 } %59, 1
store i32 %61, i32* %ehselector.slot, align 4
br label %ehcleanup849
if.end54: ; preds = %invoke.cont50, %invoke.cont42
%62 = bitcast %class.CRecordVector.5* %formatIndices to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* %62) #16
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices)
to label %invoke.cont56 unwind label %lpad55
invoke.cont56: ; preds = %if.end54
%63 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 24
%call59 = invoke zeroext i1 @_ZNK7CCodecs24FindFormatForArchiveTypeERK11CStringBaseIwER13CRecordVectorIiE(%class.CCodecs* nonnull align 8 dereferenceable(48) %63, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices)
to label %invoke.cont58 unwind label %lpad57
invoke.cont58: ; preds = %invoke.cont56
br i1 %call59, label %if.end62, label %if.then60
if.then60: ; preds = %invoke.cont58
%exception61 = call i8* @__cxa_allocate_exception(i64 8) #16
%64 = bitcast i8* %exception61 to i8**
%65 = load i8*, i8** @_ZL26kUnsupportedArcTypeMessage, align 8, !tbaa !7
store i8* %65, i8** %64, align 16, !tbaa !7
invoke void @__cxa_throw(i8* %exception61, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad57
lpad55: ; preds = %if.end54
%66 = landingpad { i8*, i32 }
cleanup
%67 = extractvalue { i8*, i32 } %66, 0
store i8* %67, i8** %exn.slot, align 8
%68 = extractvalue { i8*, i32 } %66, 1
store i32 %68, i32* %ehselector.slot, align 4
br label %ehcleanup847
lpad57: ; preds = %if.else838, %if.else501, %if.then188, %invoke.cont69, %invoke.cont67, %if.then66, %if.then60, %invoke.cont56
%69 = landingpad { i8*, i32 }
cleanup
%70 = extractvalue { i8*, i32 } %69, 0
store i8* %70, i8** %exn.slot, align 8
%71 = extractvalue { i8*, i32 } %69, 1
store i32 %71, i32* %ehselector.slot, align 4
br label %ehcleanup845
if.end62: ; preds = %invoke.cont58
%Command63 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%CommandType64 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command63, i32 0, i32 0
%72 = load i32, i32* %CommandType64, align 8, !tbaa !30
%cmp65 = icmp eq i32 %72, 8
br i1 %cmp65, label %if.then66, label %if.else184
if.then66: ; preds = %if.end62
%73 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call68 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %73, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont67 unwind label %lpad57
invoke.cont67: ; preds = %if.then66
%call70 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call68, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
to label %invoke.cont69 unwind label %lpad57
invoke.cont69: ; preds = %invoke.cont67
%call72 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call70, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont71 unwind label %lpad57
invoke.cont71: ; preds = %invoke.cont69
%74 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %74) #16
store i32 0, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc174, %invoke.cont71
%75 = load i32, i32* %i, align 4, !tbaa !3
%76 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%Formats73 = getelementptr inbounds %class.CCodecs, %class.CCodecs* %76, i32 0, i32 2
%77 = bitcast %class.CObjectVector.4* %Formats73 to %class.CBaseRecordVector*
%call76 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %77)
to label %invoke.cont75 unwind label %lpad74
invoke.cont75: ; preds = %for.cond
%cmp77 = icmp slt i32 %75, %call76
br i1 %cmp77, label %for.body, label %for.end176
for.body: ; preds = %invoke.cont75
%78 = bitcast %struct.CArcInfoEx** %arc to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %78) #16
%79 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%Formats78 = getelementptr inbounds %class.CCodecs, %class.CCodecs* %79, i32 0, i32 2
%80 = load i32, i32* %i, align 4, !tbaa !3
%call81 = invoke nonnull align 8 dereferenceable(97) %struct.CArcInfoEx* @_ZN13CObjectVectorI10CArcInfoExEixEi(%class.CObjectVector.4* nonnull align 8 dereferenceable(32) %Formats78, i32 %80)
to label %invoke.cont80 unwind label %lpad79
invoke.cont80: ; preds = %for.body
store %struct.CArcInfoEx* %call81, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%81 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call83 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %81, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
to label %invoke.cont82 unwind label %lpad79
invoke.cont82: ; preds = %invoke.cont80
%82 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call85 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %82, i8 signext 32)
to label %invoke.cont84 unwind label %lpad79
invoke.cont84: ; preds = %invoke.cont82
%83 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%84 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%UpdateEnabled = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %84, i32 0, i32 0
%85 = load i8, i8* %UpdateEnabled, align 8, !tbaa !31, !range !25
%tobool86 = trunc i8 %85 to i1
%86 = zext i1 %tobool86 to i64
%cond = select i1 %tobool86, i8 67, i8 32
%call88 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %83, i8 signext %cond)
to label %invoke.cont87 unwind label %lpad79
invoke.cont87: ; preds = %invoke.cont84
%87 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%88 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%KeepName = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %88, i32 0, i32 7
%89 = load i8, i8* %KeepName, align 8, !tbaa !36, !range !25
%tobool89 = trunc i8 %89 to i1
%90 = zext i1 %tobool89 to i64
%cond90 = select i1 %tobool89, i8 75, i8 32
%call92 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %87, i8 signext %cond90)
to label %invoke.cont91 unwind label %lpad79
invoke.cont91: ; preds = %invoke.cont87
%91 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call94 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %91, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
to label %invoke.cont93 unwind label %lpad79
invoke.cont93: ; preds = %invoke.cont91
%92 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%93 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%Name = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %93, i32 0, i32 4
invoke void @_ZL11PrintStringR13CStdOutStreamRK11CStringBaseIwEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %92, %class.CStringBase* nonnull align 8 dereferenceable(16) %Name, i32 6)
to label %invoke.cont95 unwind label %lpad79
invoke.cont95: ; preds = %invoke.cont93
%94 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call97 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %94, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
to label %invoke.cont96 unwind label %lpad79
invoke.cont96: ; preds = %invoke.cont95
%95 = bitcast %class.CStringBase* %s to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %95) #16
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s)
to label %invoke.cont99 unwind label %lpad98
invoke.cont99: ; preds = %invoke.cont96
%96 = bitcast i32* %t to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %96) #16
store i32 0, i32* %t, align 4, !tbaa !3
br label %for.cond100
for.cond100: ; preds = %for.inc, %invoke.cont99
%97 = load i32, i32* %t, align 4, !tbaa !3
%98 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%Exts = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %98, i32 0, i32 5
%99 = bitcast %class.CObjectVector.6* %Exts to %class.CBaseRecordVector*
%call103 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %99)
to label %invoke.cont102 unwind label %lpad101
invoke.cont102: ; preds = %for.cond100
%cmp104 = icmp slt i32 %97, %call103
br i1 %cmp104, label %for.body105, label %for.cond.cleanup
for.cond.cleanup: ; preds = %invoke.cont102
store i32 5, i32* %cleanup.dest.slot, align 4
%100 = bitcast i32* %t to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %100) #16
br label %for.end
lpad74: ; preds = %invoke.cont179, %invoke.cont177, %for.end176, %for.cond
%101 = landingpad { i8*, i32 }
cleanup
%102 = extractvalue { i8*, i32 } %101, 0
store i8* %102, i8** %exn.slot, align 8
%103 = extractvalue { i8*, i32 } %101, 1
store i32 %103, i32* %ehselector.slot, align 4
br label %ehcleanup183
lpad79: ; preds = %invoke.cont95, %invoke.cont93, %invoke.cont91, %invoke.cont87, %invoke.cont84, %invoke.cont82, %invoke.cont80, %for.body
%104 = landingpad { i8*, i32 }
cleanup
%105 = extractvalue { i8*, i32 } %104, 0
store i8* %105, i8** %exn.slot, align 8
%106 = extractvalue { i8*, i32 } %104, 1
store i32 %106, i32* %ehselector.slot, align 4
br label %ehcleanup173
lpad98: ; preds = %invoke.cont96
%107 = landingpad { i8*, i32 }
cleanup
%108 = extractvalue { i8*, i32 } %107, 0
store i8* %108, i8** %exn.slot, align 8
%109 = extractvalue { i8*, i32 } %107, 1
store i32 %109, i32* %ehselector.slot, align 4
br label %ehcleanup172
lpad101: ; preds = %for.cond100
%110 = landingpad { i8*, i32 }
cleanup
%111 = extractvalue { i8*, i32 } %110, 0
store i8* %111, i8** %exn.slot, align 8
%112 = extractvalue { i8*, i32 } %110, 1
store i32 %112, i32* %ehselector.slot, align 4
br label %ehcleanup
for.body105: ; preds = %invoke.cont102
%113 = bitcast %struct.CArcExtInfo** %ext to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %113) #16
%114 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%Exts106 = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %114, i32 0, i32 5
%115 = load i32, i32* %t, align 4, !tbaa !3
%call109 = invoke nonnull align 8 dereferenceable(32) %struct.CArcExtInfo* @_ZNK13CObjectVectorI11CArcExtInfoEixEi(%class.CObjectVector.6* nonnull align 8 dereferenceable(32) %Exts106, i32 %115)
to label %invoke.cont108 unwind label %lpad107
invoke.cont108: ; preds = %for.body105
store %struct.CArcExtInfo* %call109, %struct.CArcExtInfo** %ext, align 8, !tbaa !7
%116 = load %struct.CArcExtInfo*, %struct.CArcExtInfo** %ext, align 8, !tbaa !7
%Ext = getelementptr inbounds %struct.CArcExtInfo, %struct.CArcExtInfo* %116, i32 0, i32 0
%call111 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, %class.CStringBase* nonnull align 8 dereferenceable(16) %Ext)
to label %invoke.cont110 unwind label %lpad107
invoke.cont110: ; preds = %invoke.cont108
%117 = load %struct.CArcExtInfo*, %struct.CArcExtInfo** %ext, align 8, !tbaa !7
%AddExt = getelementptr inbounds %struct.CArcExtInfo, %struct.CArcExtInfo* %117, i32 0, i32 1
%call113 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %AddExt)
to label %invoke.cont112 unwind label %lpad107
invoke.cont112: ; preds = %invoke.cont110
br i1 %call113, label %if.end122, label %if.then114
if.then114: ; preds = %invoke.cont112
%call116 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.2, i64 0, i64 0))
to label %invoke.cont115 unwind label %lpad107
invoke.cont115: ; preds = %if.then114
%118 = load %struct.CArcExtInfo*, %struct.CArcExtInfo** %ext, align 8, !tbaa !7
%AddExt117 = getelementptr inbounds %struct.CArcExtInfo, %struct.CArcExtInfo* %118, i32 0, i32 1
%call119 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, %class.CStringBase* nonnull align 8 dereferenceable(16) %AddExt117)
to label %invoke.cont118 unwind label %lpad107
invoke.cont118: ; preds = %invoke.cont115
%call121 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 signext 41)
to label %invoke.cont120 unwind label %lpad107
invoke.cont120: ; preds = %invoke.cont118
br label %if.end122
lpad107: ; preds = %if.end122, %invoke.cont118, %invoke.cont115, %if.then114, %invoke.cont110, %invoke.cont108, %for.body105
%119 = landingpad { i8*, i32 }
cleanup
%120 = extractvalue { i8*, i32 } %119, 0
store i8* %120, i8** %exn.slot, align 8
%121 = extractvalue { i8*, i32 } %119, 1
store i32 %121, i32* %ehselector.slot, align 4
%122 = bitcast %struct.CArcExtInfo** %ext to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %122) #16
br label %ehcleanup
if.end122: ; preds = %invoke.cont120, %invoke.cont112
%call124 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 signext 32)
to label %invoke.cont123 unwind label %lpad107
invoke.cont123: ; preds = %if.end122
%123 = bitcast %struct.CArcExtInfo** %ext to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %123) #16
br label %for.inc
for.inc: ; preds = %invoke.cont123
%124 = load i32, i32* %t, align 4, !tbaa !3
%inc = add nsw i32 %124, 1
store i32 %inc, i32* %t, align 4, !tbaa !3
br label %for.cond100, !llvm.loop !37
ehcleanup: ; preds = %lpad107, %lpad101
%125 = bitcast i32* %t to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %125) #16
br label %ehcleanup171
for.end: ; preds = %for.cond.cleanup
%126 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
invoke void @_ZL11PrintStringR13CStdOutStreamRK11CStringBaseIwEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %126, %class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 14)
to label %invoke.cont126 unwind label %lpad125
invoke.cont126: ; preds = %for.end
%127 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call128 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %127, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
to label %invoke.cont127 unwind label %lpad125
invoke.cont127: ; preds = %invoke.cont126
%128 = bitcast %class.CBuffer** %sig to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %128) #16
%129 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7
%StartSignature = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %129, i32 0, i32 6
store %class.CBuffer* %StartSignature, %class.CBuffer** %sig, align 8, !tbaa !7
%130 = bitcast i64* %j to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %130) #16
store i64 0, i64* %j, align 8, !tbaa !39
br label %for.cond129
for.cond129: ; preds = %for.inc163, %invoke.cont127
%131 = load i64, i64* %j, align 8, !tbaa !39
%132 = load %class.CBuffer*, %class.CBuffer** %sig, align 8, !tbaa !7
%call132 = invoke i64 @_ZNK7CBufferIhE11GetCapacityEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %132)
to label %invoke.cont131 unwind label %lpad130
invoke.cont131: ; preds = %for.cond129
%cmp133 = icmp ult i64 %131, %call132
br i1 %cmp133, label %for.body135, label %for.cond.cleanup134
for.cond.cleanup134: ; preds = %invoke.cont131
store i32 8, i32* %cleanup.dest.slot, align 4
%133 = bitcast i64* %j to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %133) #16
br label %for.end166
lpad125: ; preds = %invoke.cont126, %for.end
%134 = landingpad { i8*, i32 }
cleanup
%135 = extractvalue { i8*, i32 } %134, 0
store i8* %135, i8** %exn.slot, align 8
%136 = extractvalue { i8*, i32 } %134, 1
store i32 %136, i32* %ehselector.slot, align 4
br label %ehcleanup171
lpad130: ; preds = %for.cond129
%137 = landingpad { i8*, i32 }
cleanup
%138 = extractvalue { i8*, i32 } %137, 0
store i8* %138, i8** %exn.slot, align 8
%139 = extractvalue { i8*, i32 } %137, 1
store i32 %139, i32* %ehselector.slot, align 4
br label %ehcleanup165
for.body135: ; preds = %invoke.cont131
call void @llvm.lifetime.start.p0i8(i64 1, i8* %b) #16
%140 = load %class.CBuffer*, %class.CBuffer** %sig, align 8, !tbaa !7
%call138 = invoke i8* @_ZNK7CBufferIhEcvPKhEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %140)
to label %invoke.cont137 unwind label %lpad136
invoke.cont137: ; preds = %for.body135
%141 = load i64, i64* %j, align 8, !tbaa !39
%arrayidx = getelementptr inbounds i8, i8* %call138, i64 %141
%142 = load i8, i8* %arrayidx, align 1, !tbaa !40
store i8 %142, i8* %b, align 1, !tbaa !40
%143 = load i8, i8* %b, align 1, !tbaa !40
%conv = zext i8 %143 to i32
%cmp139 = icmp sgt i32 %conv, 32
br i1 %cmp139, label %land.lhs.true140, label %if.else
land.lhs.true140: ; preds = %invoke.cont137
%144 = load i8, i8* %b, align 1, !tbaa !40
%conv141 = zext i8 %144 to i32
%cmp142 = icmp slt i32 %conv141, 128
br i1 %cmp142, label %if.then143, label %if.else
if.then143: ; preds = %land.lhs.true140
%145 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%146 = load i8, i8* %b, align 1, !tbaa !40
%call145 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %145, i8 signext %146)
to label %invoke.cont144 unwind label %lpad136
invoke.cont144: ; preds = %if.then143
br label %if.end159
lpad136: ; preds = %if.end159, %invoke.cont155, %invoke.cont150, %invoke.cont148, %if.else, %if.then143, %for.body135
%147 = landingpad { i8*, i32 }
cleanup
%148 = extractvalue { i8*, i32 } %147, 0
store i8* %148, i8** %exn.slot, align 8
%149 = extractvalue { i8*, i32 } %147, 1
store i32 %149, i32* %ehselector.slot, align 4
call void @llvm.lifetime.end.p0i8(i64 1, i8* %b) #16
br label %ehcleanup165
if.else: ; preds = %land.lhs.true140, %invoke.cont137
%150 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%151 = load i8, i8* %b, align 1, !tbaa !40
%conv146 = zext i8 %151 to i32
%shr = ashr i32 %conv146, 4
%and = and i32 %shr, 15
%conv147 = trunc i32 %and to i8
%call149 = invoke signext i8 @_ZL6GetHexh(i8 zeroext %conv147)
to label %invoke.cont148 unwind label %lpad136
invoke.cont148: ; preds = %if.else
%call151 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %150, i8 signext %call149)
to label %invoke.cont150 unwind label %lpad136
invoke.cont150: ; preds = %invoke.cont148
%152 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%153 = load i8, i8* %b, align 1, !tbaa !40
%conv152 = zext i8 %153 to i32
%and153 = and i32 %conv152, 15
%conv154 = trunc i32 %and153 to i8
%call156 = invoke signext i8 @_ZL6GetHexh(i8 zeroext %conv154)
to label %invoke.cont155 unwind label %lpad136
invoke.cont155: ; preds = %invoke.cont150
%call158 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %152, i8 signext %call156)
to label %invoke.cont157 unwind label %lpad136
invoke.cont157: ; preds = %invoke.cont155
br label %if.end159
if.end159: ; preds = %invoke.cont157, %invoke.cont144
%154 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call161 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %154, i8 signext 32)
to label %invoke.cont160 unwind label %lpad136
invoke.cont160: ; preds = %if.end159
call void @llvm.lifetime.end.p0i8(i64 1, i8* %b) #16
br label %for.inc163
for.inc163: ; preds = %invoke.cont160
%155 = load i64, i64* %j, align 8, !tbaa !39
%inc164 = add i64 %155, 1
store i64 %inc164, i64* %j, align 8, !tbaa !39
br label %for.cond129, !llvm.loop !41
ehcleanup165: ; preds = %lpad136, %lpad130
%156 = bitcast i64* %j to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %156) #16
br label %ehcleanup170
for.end166: ; preds = %for.cond.cleanup134
%157 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call169 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %157, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont168 unwind label %lpad167
invoke.cont168: ; preds = %for.end166
%158 = bitcast %class.CBuffer** %sig to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %158) #16
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #16
%159 = bitcast %class.CStringBase* %s to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %159) #16
%160 = bitcast %struct.CArcInfoEx** %arc to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %160) #16
br label %for.inc174
for.inc174: ; preds = %invoke.cont168
%161 = load i32, i32* %i, align 4, !tbaa !3
%inc175 = add nsw i32 %161, 1
store i32 %inc175, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !42
lpad167: ; preds = %for.end166
%162 = landingpad { i8*, i32 }
cleanup
%163 = extractvalue { i8*, i32 } %162, 0
store i8* %163, i8** %exn.slot, align 8
%164 = extractvalue { i8*, i32 } %162, 1
store i32 %164, i32* %ehselector.slot, align 4
br label %ehcleanup170
ehcleanup170: ; preds = %lpad167, %ehcleanup165
%165 = bitcast %class.CBuffer** %sig to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %165) #16
br label %ehcleanup171
ehcleanup171: ; preds = %ehcleanup170, %lpad125, %ehcleanup
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #16
br label %ehcleanup172
ehcleanup172: ; preds = %ehcleanup171, %lpad98
%166 = bitcast %class.CStringBase* %s to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %166) #16
br label %ehcleanup173
ehcleanup173: ; preds = %ehcleanup172, %lpad79
%167 = bitcast %struct.CArcInfoEx** %arc to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %167) #16
br label %ehcleanup183
for.end176: ; preds = %invoke.cont75
%168 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call178 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %168, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont177 unwind label %lpad74
invoke.cont177: ; preds = %for.end176
%call180 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call178, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0))
to label %invoke.cont179 unwind label %lpad74
invoke.cont179: ; preds = %invoke.cont177
%call182 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call180, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont181 unwind label %lpad74
invoke.cont181: ; preds = %invoke.cont179
store i32 0, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
%169 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %169) #16
br label %cleanup844
ehcleanup183: ; preds = %ehcleanup173, %lpad74
%170 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %170) #16
br label %ehcleanup845
if.else184: ; preds = %if.end62
%Command185 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%CommandType186 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command185, i32 0, i32 0
%171 = load i32, i32* %CommandType186, align 8, !tbaa !30
%cmp187 = icmp eq i32 %171, 7
br i1 %cmp187, label %if.then188, label %if.else238
if.then188: ; preds = %if.else184
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 29
%call190 = invoke i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.4, i64 0, i64 0))
to label %invoke.cont189 unwind label %lpad57
invoke.cont189: ; preds = %if.then188
%cmp191 = icmp eq i32 %call190, 0
br i1 %cmp191, label %if.then192, label %if.else211
if.then192: ; preds = %invoke.cont189
%172 = bitcast i32* %res to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %172) #16
%173 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call195 = invoke %struct._IO_FILE* @_ZN13CStdOutStreamcvP8_IO_FILEEv(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %173)
to label %invoke.cont194 unwind label %lpad193
invoke.cont194: ; preds = %if.then192
%NumIterations = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 26
%174 = load i32, i32* %NumIterations, align 4, !tbaa !43
%NumThreads = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 27
%175 = load i32, i32* %NumThreads, align 8, !tbaa !44
%DictionarySize = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 28
%176 = load i32, i32* %DictionarySize, align 4, !tbaa !45
%call197 = invoke i32 @_Z11CrcBenchConP8_IO_FILEjjj(%struct._IO_FILE* %call195, i32 %174, i32 %175, i32 %176)
to label %invoke.cont196 unwind label %lpad193
invoke.cont196: ; preds = %invoke.cont194
store i32 %call197, i32* %res, align 4, !tbaa !3
%177 = load i32, i32* %res, align 4, !tbaa !3
%cmp198 = icmp ne i32 %177, 0
br i1 %cmp198, label %if.then199, label %if.end209
if.then199: ; preds = %invoke.cont196
%178 = load i32, i32* %res, align 4, !tbaa !3
%cmp200 = icmp eq i32 %178, 1
br i1 %cmp200, label %if.then201, label %if.end204
if.then201: ; preds = %if.then199
%179 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call203 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %179, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0))
to label %invoke.cont202 unwind label %lpad193
invoke.cont202: ; preds = %if.then201
store i32 2, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
lpad193: ; preds = %invoke.cont207, %if.then201, %invoke.cont194, %if.then192
%180 = landingpad { i8*, i32 }
cleanup
%181 = extractvalue { i8*, i32 } %180, 0
store i8* %181, i8** %exn.slot, align 8
%182 = extractvalue { i8*, i32 } %180, 1
store i32 %182, i32* %ehselector.slot, align 4
br label %ehcleanup210
if.end204: ; preds = %if.then199
%exception205 = call i8* @__cxa_allocate_exception(i64 4) #16
%183 = bitcast i8* %exception205 to %struct.CSystemException*
%184 = load i32, i32* %res, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %183, i32 %184)
to label %invoke.cont207 unwind label %lpad206
invoke.cont207: ; preds = %if.end204
invoke void @__cxa_throw(i8* %exception205, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad193
lpad206: ; preds = %if.end204
%185 = landingpad { i8*, i32 }
cleanup
%186 = extractvalue { i8*, i32 } %185, 0
store i8* %186, i8** %exn.slot, align 8
%187 = extractvalue { i8*, i32 } %185, 1
store i32 %187, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception205) #16
br label %ehcleanup210
if.end209: ; preds = %invoke.cont196
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %if.end209, %invoke.cont202
%188 = bitcast i32* %res to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %188) #16
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %cleanup844 [
i32 0, label %cleanup.cont
]
cleanup.cont: ; preds = %cleanup
br label %if.end237
ehcleanup210: ; preds = %lpad206, %lpad193
%189 = bitcast i32* %res to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %189) #16
br label %ehcleanup845
if.else211: ; preds = %invoke.cont189
%190 = bitcast i32* %res212 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %190) #16
%191 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call215 = invoke %struct._IO_FILE* @_ZN13CStdOutStreamcvP8_IO_FILEEv(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %191)
to label %invoke.cont214 unwind label %lpad213
invoke.cont214: ; preds = %if.else211
%NumIterations216 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 26
%192 = load i32, i32* %NumIterations216, align 4, !tbaa !43
%NumThreads217 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 27
%193 = load i32, i32* %NumThreads217, align 8, !tbaa !44
%DictionarySize218 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 28
%194 = load i32, i32* %DictionarySize218, align 4, !tbaa !45
%call220 = invoke i32 @_Z12LzmaBenchConP8_IO_FILEjjj(%struct._IO_FILE* %call215, i32 %192, i32 %193, i32 %194)
to label %invoke.cont219 unwind label %lpad213
invoke.cont219: ; preds = %invoke.cont214
store i32 %call220, i32* %res212, align 4, !tbaa !3
%195 = load i32, i32* %res212, align 4, !tbaa !3
%cmp221 = icmp ne i32 %195, 0
br i1 %cmp221, label %if.then222, label %if.end232
if.then222: ; preds = %invoke.cont219
%196 = load i32, i32* %res212, align 4, !tbaa !3
%cmp223 = icmp eq i32 %196, 1
br i1 %cmp223, label %if.then224, label %if.end227
if.then224: ; preds = %if.then222
%197 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call226 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %197, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0))
to label %invoke.cont225 unwind label %lpad213
invoke.cont225: ; preds = %if.then224
store i32 2, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup233
lpad213: ; preds = %invoke.cont230, %if.then224, %invoke.cont214, %if.else211
%198 = landingpad { i8*, i32 }
cleanup
%199 = extractvalue { i8*, i32 } %198, 0
store i8* %199, i8** %exn.slot, align 8
%200 = extractvalue { i8*, i32 } %198, 1
store i32 %200, i32* %ehselector.slot, align 4
br label %ehcleanup236
if.end227: ; preds = %if.then222
%exception228 = call i8* @__cxa_allocate_exception(i64 4) #16
%201 = bitcast i8* %exception228 to %struct.CSystemException*
%202 = load i32, i32* %res212, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %201, i32 %202)
to label %invoke.cont230 unwind label %lpad229
invoke.cont230: ; preds = %if.end227
invoke void @__cxa_throw(i8* %exception228, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad213
lpad229: ; preds = %if.end227
%203 = landingpad { i8*, i32 }
cleanup
%204 = extractvalue { i8*, i32 } %203, 0
store i8* %204, i8** %exn.slot, align 8
%205 = extractvalue { i8*, i32 } %203, 1
store i32 %205, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception228) #16
br label %ehcleanup236
if.end232: ; preds = %invoke.cont219
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup233
cleanup233: ; preds = %if.end232, %invoke.cont225
%206 = bitcast i32* %res212 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %206) #16
%cleanup.dest234 = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest234, label %cleanup844 [
i32 0, label %cleanup.cont235
]
cleanup.cont235: ; preds = %cleanup233
br label %if.end237
ehcleanup236: ; preds = %lpad229, %lpad213
%207 = bitcast i32* %res212 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %207) #16
br label %ehcleanup845
if.end237: ; preds = %cleanup.cont235, %cleanup.cont
br label %if.end842
if.else238: ; preds = %if.else184
%208 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !29, !range !25
%tobool239 = trunc i8 %208 to i1
br i1 %tobool239, label %if.then244, label %lor.lhs.false240
lor.lhs.false240: ; preds = %if.else238
%Command241 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%CommandType242 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command241, i32 0, i32 0
%209 = load i32, i32* %CommandType242, align 8, !tbaa !30
%cmp243 = icmp eq i32 %209, 6
br i1 %cmp243, label %if.then244, label %if.else501
if.then244: ; preds = %lor.lhs.false240, %if.else238
%210 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !29, !range !25
%tobool245 = trunc i8 %210 to i1
br i1 %tobool245, label %if.then246, label %if.else459
if.then246: ; preds = %if.then244
%211 = bitcast %class.CExtractCallbackConsole** %ecs to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %211) #16
%call249 = invoke noalias nonnull i8* @_Znwm(i64 80) #17
to label %invoke.cont248 unwind label %lpad247
invoke.cont248: ; preds = %if.then246
%212 = bitcast i8* %call249 to %class.CExtractCallbackConsole*
invoke void @_ZN23CExtractCallbackConsoleC2Ev(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %212)
to label %invoke.cont251 unwind label %lpad250
invoke.cont251: ; preds = %invoke.cont248
store %class.CExtractCallbackConsole* %212, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%213 = bitcast %class.CMyComPtr.7* %extractCallback to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %213) #16
%214 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%215 = bitcast %class.CExtractCallbackConsole* %214 to %struct.IFolderArchiveExtractCallback*
invoke void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackEC2EPS0_(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %extractCallback, %struct.IFolderArchiveExtractCallback* %215)
to label %invoke.cont254 unwind label %lpad253
invoke.cont254: ; preds = %invoke.cont251
%216 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%217 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%OutStream = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %217, i32 0, i32 9
store %class.CStdOutStream* %216, %class.CStdOutStream** %OutStream, align 8, !tbaa !46
%PasswordEnabled = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13
%218 = load i8, i8* %PasswordEnabled, align 8, !tbaa !49, !range !25
%tobool255 = trunc i8 %218 to i1
%219 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%PasswordIsDefined = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %219, i32 0, i32 3
%frombool256 = zext i1 %tobool255 to i8
store i8 %frombool256, i8* %PasswordIsDefined, align 4, !tbaa !50
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%220 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%Password257 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %220, i32 0, i32 4
%call260 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password257, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password)
to label %invoke.cont259 unwind label %lpad258
invoke.cont259: ; preds = %invoke.cont254
%221 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
invoke void @_ZN23CExtractCallbackConsole4InitEv(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %221)
to label %invoke.cont261 unwind label %lpad258
invoke.cont261: ; preds = %invoke.cont259
%222 = bitcast %class.COpenCallbackConsole* %openCallback to i8*
call void @llvm.lifetime.start.p0i8(i64 40, i8* %222) #16
invoke void @_ZN20COpenCallbackConsoleC2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback)
to label %invoke.cont263 unwind label %lpad262
invoke.cont263: ; preds = %invoke.cont261
%223 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%OutStream264 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback, i32 0, i32 1
store %class.CStdOutStream* %223, %class.CStdOutStream** %OutStream264, align 8, !tbaa !51
%PasswordEnabled265 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13
%224 = load i8, i8* %PasswordEnabled265, align 8, !tbaa !49, !range !25
%tobool266 = trunc i8 %224 to i1
%PasswordIsDefined267 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback, i32 0, i32 2
%frombool268 = zext i1 %tobool266 to i8
store i8 %frombool268, i8* %PasswordIsDefined267, align 8, !tbaa !53
%Password269 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%Password270 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback, i32 0, i32 4
%call273 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password270, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password269)
to label %invoke.cont272 unwind label %lpad271
invoke.cont272: ; preds = %invoke.cont263
%225 = bitcast %struct.CExtractOptions* %eo to i8*
call void @llvm.lifetime.start.p0i8(i64 64, i8* %225) #16
invoke void @_ZN15CExtractOptionsC2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo)
to label %invoke.cont275 unwind label %lpad274
invoke.cont275: ; preds = %invoke.cont272
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 5
%226 = load i8, i8* %StdInMode, align 1, !tbaa !54, !range !25
%tobool276 = trunc i8 %226 to i1
%StdInMode277 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 0
%frombool278 = zext i1 %tobool276 to i8
store i8 %frombool278, i8* %StdInMode277, align 8, !tbaa !55
%StdOutMode279 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 6
%227 = load i8, i8* %StdOutMode279, align 2, !tbaa !27, !range !25
%tobool280 = trunc i8 %227 to i1
%StdOutMode281 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 1
%frombool282 = zext i1 %tobool280 to i8
store i8 %frombool282, i8* %StdOutMode281, align 1, !tbaa !58
%Command283 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%call286 = invoke i32 @_ZNK15CArchiveCommand11GetPathModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command283)
to label %invoke.cont285 unwind label %lpad284
invoke.cont285: ; preds = %invoke.cont275
%PathMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 5
store i32 %call286, i32* %PathMode, align 8, !tbaa !59
%Command287 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%call289 = invoke zeroext i1 @_ZNK15CArchiveCommand10IsTestModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command287)
to label %invoke.cont288 unwind label %lpad284
invoke.cont288: ; preds = %invoke.cont285
%TestMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 3
%frombool290 = zext i1 %call289 to i8
store i8 %frombool290, i8* %TestMode, align 1, !tbaa !60
%OverwriteMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 19
%228 = load i32, i32* %OverwriteMode, align 8, !tbaa !61
%OverwriteMode291 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 6
store i32 %228, i32* %OverwriteMode291, align 4, !tbaa !62
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 18
%OutputDir292 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 7
%call294 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir292, %class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir)
to label %invoke.cont293 unwind label %lpad284
invoke.cont293: ; preds = %invoke.cont288
%YesToAll = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 8
%229 = load i8, i8* %YesToAll, align 8, !tbaa !63, !range !25
%tobool295 = trunc i8 %229 to i1
%YesToAll296 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 2
%frombool297 = zext i1 %tobool295 to i8
store i8 %frombool297, i8* %YesToAll296, align 2, !tbaa !64
%CalcCrc = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 16
%230 = load i8, i8* %CalcCrc, align 1, !tbaa !65, !range !25
%tobool298 = trunc i8 %230 to i1
%CalcCrc299 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 4
%frombool300 = zext i1 %tobool298 to i8
store i8 %frombool300, i8* %CalcCrc299, align 4, !tbaa !66
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 22
%Properties = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 8
%call302 = invoke nonnull align 8 dereferenceable(32) %class.CObjectVector.1* @_ZN13CObjectVectorI9CPropertyEaSERKS1_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties)
to label %invoke.cont301 unwind label %lpad284
invoke.cont301: ; preds = %invoke.cont293
%231 = bitcast %class.CStringBase* %errorMessage to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %231) #16
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage)
to label %invoke.cont304 unwind label %lpad303
invoke.cont304: ; preds = %invoke.cont301
%232 = bitcast %struct.CDecompressStat* %stat to i8*
call void @llvm.lifetime.start.p0i8(i64 48, i8* %232) #16
%233 = bitcast i32* %result305 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %233) #16
%234 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 20
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 21
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 10
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %WildcardCensor, i32 0, i32 0
%call308 = invoke nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs)
to label %invoke.cont307 unwind label %lpad306
invoke.cont307: ; preds = %invoke.cont304
%Head = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %call308, i32 0, i32 1
%235 = bitcast %class.COpenCallbackConsole* %openCallback to %struct.IOpenCallbackUI*
%236 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%237 = bitcast %class.CExtractCallbackConsole* %236 to %struct.IExtractCallbackUI*
%call310 = invoke i32 @_Z18DecompressArchivesP7CCodecsRK13CRecordVectorIiER13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeERK15CExtractOptionsP15IOpenCallbackUIP18IExtractCallbackUIRS7_R15CDecompressStat(%class.CCodecs* %234, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted, %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head, %struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo, %struct.IOpenCallbackUI* %235, %struct.IExtractCallbackUI* %237, %class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage, %struct.CDecompressStat* nonnull align 8 dereferenceable(48) %stat)
to label %invoke.cont309 unwind label %lpad306
invoke.cont309: ; preds = %invoke.cont307
store i32 %call310, i32* %result305, align 4, !tbaa !3
%call312 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage)
to label %invoke.cont311 unwind label %lpad306
invoke.cont311: ; preds = %invoke.cont309
br i1 %call312, label %if.end325, label %if.then313
if.then313: ; preds = %invoke.cont311
%238 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call315 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %238, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont314 unwind label %lpad306
invoke.cont314: ; preds = %if.then313
%call317 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call315, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
to label %invoke.cont316 unwind label %lpad306
invoke.cont316: ; preds = %invoke.cont314
%call319 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage)
to label %invoke.cont318 unwind label %lpad306
invoke.cont318: ; preds = %invoke.cont316
%call321 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call317, i32* %call319)
to label %invoke.cont320 unwind label %lpad306
invoke.cont320: ; preds = %invoke.cont318
%239 = load i32, i32* %result305, align 4, !tbaa !3
%cmp322 = icmp eq i32 %239, 0
br i1 %cmp322, label %if.then323, label %if.end324
if.then323: ; preds = %invoke.cont320
store i32 -2147467259, i32* %result305, align 4, !tbaa !3
br label %if.end324
lpad247: ; preds = %if.then246
%240 = landingpad { i8*, i32 }
cleanup
%241 = extractvalue { i8*, i32 } %240, 0
store i8* %241, i8** %exn.slot, align 8
%242 = extractvalue { i8*, i32 } %240, 1
store i32 %242, i32* %ehselector.slot, align 4
br label %ehcleanup458
lpad250: ; preds = %invoke.cont248
%243 = landingpad { i8*, i32 }
cleanup
%244 = extractvalue { i8*, i32 } %243, 0
store i8* %244, i8** %exn.slot, align 8
%245 = extractvalue { i8*, i32 } %243, 1
store i32 %245, i32* %ehselector.slot, align 4
call void @_ZdlPv(i8* %call249) #19
br label %ehcleanup458
lpad253: ; preds = %invoke.cont251
%246 = landingpad { i8*, i32 }
cleanup
%247 = extractvalue { i8*, i32 } %246, 0
store i8* %247, i8** %exn.slot, align 8
%248 = extractvalue { i8*, i32 } %246, 1
store i32 %248, i32* %ehselector.slot, align 4
br label %ehcleanup454
lpad258: ; preds = %invoke.cont259, %invoke.cont254
%249 = landingpad { i8*, i32 }
cleanup
%250 = extractvalue { i8*, i32 } %249, 0
store i8* %250, i8** %exn.slot, align 8
%251 = extractvalue { i8*, i32 } %249, 1
store i32 %251, i32* %ehselector.slot, align 4
br label %ehcleanup452
lpad262: ; preds = %invoke.cont261
%252 = landingpad { i8*, i32 }
cleanup
%253 = extractvalue { i8*, i32 } %252, 0
store i8* %253, i8** %exn.slot, align 8
%254 = extractvalue { i8*, i32 } %252, 1
store i32 %254, i32* %ehselector.slot, align 4
br label %ehcleanup450
lpad271: ; preds = %invoke.cont263
%255 = landingpad { i8*, i32 }
cleanup
%256 = extractvalue { i8*, i32 } %255, 0
store i8* %256, i8** %exn.slot, align 8
%257 = extractvalue { i8*, i32 } %255, 1
store i32 %257, i32* %ehselector.slot, align 4
br label %ehcleanup448
lpad274: ; preds = %invoke.cont272
%258 = landingpad { i8*, i32 }
cleanup
%259 = extractvalue { i8*, i32 } %258, 0
store i8* %259, i8** %exn.slot, align 8
%260 = extractvalue { i8*, i32 } %258, 1
store i32 %260, i32* %ehselector.slot, align 4
br label %ehcleanup446
lpad284: ; preds = %invoke.cont293, %invoke.cont288, %invoke.cont285, %invoke.cont275
%261 = landingpad { i8*, i32 }
cleanup
%262 = extractvalue { i8*, i32 } %261, 0
store i8* %262, i8** %exn.slot, align 8
%263 = extractvalue { i8*, i32 } %261, 1
store i32 %263, i32* %ehselector.slot, align 4
br label %ehcleanup444
lpad303: ; preds = %invoke.cont301
%264 = landingpad { i8*, i32 }
cleanup
%265 = extractvalue { i8*, i32 } %264, 0
store i8* %265, i8** %exn.slot, align 8
%266 = extractvalue { i8*, i32 } %264, 1
store i32 %266, i32* %ehselector.slot, align 4
br label %ehcleanup442
lpad306: ; preds = %invoke.cont416, %invoke.cont414, %invoke.cont412, %invoke.cont410, %invoke.cont408, %if.end407, %invoke.cont403, %invoke.cont400, %if.then399, %invoke.cont390, %invoke.cont387, %if.then386, %invoke.cont382, %invoke.cont374, %invoke.cont364, %invoke.cont361, %if.then360, %invoke.cont353, %invoke.cont350, %if.then349, %if.then344, %invoke.cont333, %invoke.cont330, %if.then329, %if.end325, %invoke.cont318, %invoke.cont316, %invoke.cont314, %if.then313, %invoke.cont309, %invoke.cont307, %invoke.cont304
%267 = landingpad { i8*, i32 }
cleanup
%268 = extractvalue { i8*, i32 } %267, 0
store i8* %268, i8** %exn.slot, align 8
%269 = extractvalue { i8*, i32 } %267, 1
store i32 %269, i32* %ehselector.slot, align 4
br label %ehcleanup436
if.end324: ; preds = %if.then323, %invoke.cont320
br label %if.end325
if.end325: ; preds = %if.end324, %invoke.cont311
%270 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call327 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %270, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont326 unwind label %lpad306
invoke.cont326: ; preds = %if.end325
%271 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumArchives = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %271, i32 0, i32 5
%272 = load i64, i64* %NumArchives, align 8, !tbaa !67
%cmp328 = icmp ugt i64 %272, 1
br i1 %cmp328, label %if.then329, label %if.end337
if.then329: ; preds = %invoke.cont326
%273 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call331 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %273, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
to label %invoke.cont330 unwind label %lpad306
invoke.cont330: ; preds = %if.then329
%274 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumArchives332 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %274, i32 0, i32 5
%275 = load i64, i64* %NumArchives332, align 8, !tbaa !67
%call334 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call331, i64 %275)
to label %invoke.cont333 unwind label %lpad306
invoke.cont333: ; preds = %invoke.cont330
%call336 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call334, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont335 unwind label %lpad306
invoke.cont335: ; preds = %invoke.cont333
br label %if.end337
if.end337: ; preds = %invoke.cont335, %invoke.cont326
%276 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumArchiveErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %276, i32 0, i32 6
%277 = load i64, i64* %NumArchiveErrors, align 8, !tbaa !68
%cmp338 = icmp ne i64 %277, 0
br i1 %cmp338, label %if.then341, label %lor.lhs.false339
lor.lhs.false339: ; preds = %if.end337
%278 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumFileErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %278, i32 0, i32 7
%279 = load i64, i64* %NumFileErrors, align 8, !tbaa !69
%cmp340 = icmp ne i64 %279, 0
br i1 %cmp340, label %if.then341, label %if.end377
if.then341: ; preds = %lor.lhs.false339, %if.end337
%280 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumArchives342 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %280, i32 0, i32 5
%281 = load i64, i64* %NumArchives342, align 8, !tbaa !67
%cmp343 = icmp ugt i64 %281, 1
br i1 %cmp343, label %if.then344, label %if.end369
if.then344: ; preds = %if.then341
%282 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call346 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %282, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont345 unwind label %lpad306
invoke.cont345: ; preds = %if.then344
%283 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumArchiveErrors347 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %283, i32 0, i32 6
%284 = load i64, i64* %NumArchiveErrors347, align 8, !tbaa !68
%cmp348 = icmp ne i64 %284, 0
br i1 %cmp348, label %if.then349, label %if.end357
if.then349: ; preds = %invoke.cont345
%285 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call351 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %285, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.9, i64 0, i64 0))
to label %invoke.cont350 unwind label %lpad306
invoke.cont350: ; preds = %if.then349
%286 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumArchiveErrors352 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %286, i32 0, i32 6
%287 = load i64, i64* %NumArchiveErrors352, align 8, !tbaa !68
%call354 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call351, i64 %287)
to label %invoke.cont353 unwind label %lpad306
invoke.cont353: ; preds = %invoke.cont350
%call356 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call354, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont355 unwind label %lpad306
invoke.cont355: ; preds = %invoke.cont353
br label %if.end357
if.end357: ; preds = %invoke.cont355, %invoke.cont345
%288 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumFileErrors358 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %288, i32 0, i32 7
%289 = load i64, i64* %NumFileErrors358, align 8, !tbaa !69
%cmp359 = icmp ne i64 %289, 0
br i1 %cmp359, label %if.then360, label %if.end368
if.then360: ; preds = %if.end357
%290 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call362 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %290, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.10, i64 0, i64 0))
to label %invoke.cont361 unwind label %lpad306
invoke.cont361: ; preds = %if.then360
%291 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7
%NumFileErrors363 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %291, i32 0, i32 7
%292 = load i64, i64* %NumFileErrors363, align 8, !tbaa !69
%call365 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call362, i64 %292)
to label %invoke.cont364 unwind label %lpad306
invoke.cont364: ; preds = %invoke.cont361
%call367 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call365, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont366 unwind label %lpad306
invoke.cont366: ; preds = %invoke.cont364
br label %if.end368
if.end368: ; preds = %invoke.cont366, %if.end357
br label %if.end369
if.end369: ; preds = %if.end368, %if.then341
%293 = load i32, i32* %result305, align 4, !tbaa !3
%cmp370 = icmp ne i32 %293, 0
br i1 %cmp370, label %if.then371, label %if.end376
if.then371: ; preds = %if.end369
%exception372 = call i8* @__cxa_allocate_exception(i64 4) #16
%294 = bitcast i8* %exception372 to %struct.CSystemException*
%295 = load i32, i32* %result305, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %294, i32 %295)
to label %invoke.cont374 unwind label %lpad373
invoke.cont374: ; preds = %if.then371
invoke void @__cxa_throw(i8* %exception372, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad306
lpad373: ; preds = %if.then371
%296 = landingpad { i8*, i32 }
cleanup
%297 = extractvalue { i8*, i32 } %296, 0
store i8* %297, i8** %exn.slot, align 8
%298 = extractvalue { i8*, i32 } %296, 1
store i32 %298, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception372) #16
br label %ehcleanup436
if.end376: ; preds = %if.end369
store i32 2, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup435
if.end377: ; preds = %lor.lhs.false339
%299 = load i32, i32* %result305, align 4, !tbaa !3
%cmp378 = icmp ne i32 %299, 0
br i1 %cmp378, label %if.then379, label %if.end384
if.then379: ; preds = %if.end377
%exception380 = call i8* @__cxa_allocate_exception(i64 4) #16
%300 = bitcast i8* %exception380 to %struct.CSystemException*
%301 = load i32, i32* %result305, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %300, i32 %301)
to label %invoke.cont382 unwind label %lpad381
invoke.cont382: ; preds = %if.then379
invoke void @__cxa_throw(i8* %exception380, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad306
lpad381: ; preds = %if.then379
%302 = landingpad { i8*, i32 }
cleanup
%303 = extractvalue { i8*, i32 } %302, 0
store i8* %303, i8** %exn.slot, align 8
%304 = extractvalue { i8*, i32 } %302, 1
store i32 %304, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception380) #16
br label %ehcleanup436
if.end384: ; preds = %if.end377
%NumFolders = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 3
%305 = load i64, i64* %NumFolders, align 8, !tbaa !70
%cmp385 = icmp ne i64 %305, 0
br i1 %cmp385, label %if.then386, label %if.end394
if.then386: ; preds = %if.end384
%306 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call388 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %306, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.11, i64 0, i64 0))
to label %invoke.cont387 unwind label %lpad306
invoke.cont387: ; preds = %if.then386
%NumFolders389 = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 3
%307 = load i64, i64* %NumFolders389, align 8, !tbaa !70
%call391 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call388, i64 %307)
to label %invoke.cont390 unwind label %lpad306
invoke.cont390: ; preds = %invoke.cont387
%call393 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call391, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont392 unwind label %lpad306
invoke.cont392: ; preds = %invoke.cont390
br label %if.end394
if.end394: ; preds = %invoke.cont392, %if.end384
%NumFiles = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 4
%308 = load i64, i64* %NumFiles, align 8, !tbaa !72
%cmp395 = icmp ne i64 %308, 1
br i1 %cmp395, label %if.then399, label %lor.lhs.false396
lor.lhs.false396: ; preds = %if.end394
%NumFolders397 = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 3
%309 = load i64, i64* %NumFolders397, align 8, !tbaa !70
%cmp398 = icmp ne i64 %309, 0
br i1 %cmp398, label %if.then399, label %if.end407
if.then399: ; preds = %lor.lhs.false396, %if.end394
%310 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call401 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %310, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0))
to label %invoke.cont400 unwind label %lpad306
invoke.cont400: ; preds = %if.then399
%NumFiles402 = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 4
%311 = load i64, i64* %NumFiles402, align 8, !tbaa !72
%call404 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call401, i64 %311)
to label %invoke.cont403 unwind label %lpad306
invoke.cont403: ; preds = %invoke.cont400
%call406 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call404, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont405 unwind label %lpad306
invoke.cont405: ; preds = %invoke.cont403
br label %if.end407
if.end407: ; preds = %invoke.cont405, %lor.lhs.false396
%312 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call409 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %312, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.13, i64 0, i64 0))
to label %invoke.cont408 unwind label %lpad306
invoke.cont408: ; preds = %if.end407
%UnpackSize = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 1
%313 = load i64, i64* %UnpackSize, align 8, !tbaa !73
%call411 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call409, i64 %313)
to label %invoke.cont410 unwind label %lpad306
invoke.cont410: ; preds = %invoke.cont408
%call413 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call411, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont412 unwind label %lpad306
invoke.cont412: ; preds = %invoke.cont410
%call415 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call413, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0))
to label %invoke.cont414 unwind label %lpad306
invoke.cont414: ; preds = %invoke.cont412
%PackSize = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 2
%314 = load i64, i64* %PackSize, align 8, !tbaa !74
%call417 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call415, i64 %314)
to label %invoke.cont416 unwind label %lpad306
invoke.cont416: ; preds = %invoke.cont414
%call419 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call417, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont418 unwind label %lpad306
invoke.cont418: ; preds = %invoke.cont416
%CalcCrc420 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 16
%315 = load i8, i8* %CalcCrc420, align 1, !tbaa !65, !range !25
%tobool421 = trunc i8 %315 to i1
br i1 %tobool421, label %if.then422, label %if.end434
if.then422: ; preds = %invoke.cont418
%316 = bitcast [16 x i8]* %s423 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %316) #16
%CrcSum = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 5
%317 = load i32, i32* %CrcSum, align 8, !tbaa !75
%arraydecay = getelementptr inbounds [16 x i8], [16 x i8]* %s423, i64 0, i64 0
invoke void @_Z27ConvertUInt32ToHexWithZerosjPc(i32 %317, i8* %arraydecay)
to label %invoke.cont425 unwind label %lpad424
invoke.cont425: ; preds = %if.then422
%318 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call427 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %318, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0))
to label %invoke.cont426 unwind label %lpad424
invoke.cont426: ; preds = %invoke.cont425
%arraydecay428 = getelementptr inbounds [16 x i8], [16 x i8]* %s423, i64 0, i64 0
%call430 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call427, i8* %arraydecay428)
to label %invoke.cont429 unwind label %lpad424
invoke.cont429: ; preds = %invoke.cont426
%call432 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call430, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont431 unwind label %lpad424
invoke.cont431: ; preds = %invoke.cont429
%319 = bitcast [16 x i8]* %s423 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %319) #16
br label %if.end434
lpad424: ; preds = %invoke.cont429, %invoke.cont426, %invoke.cont425, %if.then422
%320 = landingpad { i8*, i32 }
cleanup
%321 = extractvalue { i8*, i32 } %320, 0
store i8* %321, i8** %exn.slot, align 8
%322 = extractvalue { i8*, i32 } %320, 1
store i32 %322, i32* %ehselector.slot, align 4
%323 = bitcast [16 x i8]* %s423 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %323) #16
br label %ehcleanup436
if.end434: ; preds = %invoke.cont431, %invoke.cont418
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup435
cleanup435: ; preds = %if.end434, %if.end376
%324 = bitcast i32* %result305 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %324) #16
%325 = bitcast %struct.CDecompressStat* %stat to i8*
call void @llvm.lifetime.end.p0i8(i64 48, i8* %325) #16
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) #16
%326 = bitcast %class.CStringBase* %errorMessage to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %326) #16
call void @_ZN15CExtractOptionsD2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo) #16
%327 = bitcast %struct.CExtractOptions* %eo to i8*
call void @llvm.lifetime.end.p0i8(i64 64, i8* %327) #16
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback) #16
%328 = bitcast %class.COpenCallbackConsole* %openCallback to i8*
call void @llvm.lifetime.end.p0i8(i64 40, i8* %328) #16
call void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %extractCallback) #16
%329 = bitcast %class.CMyComPtr.7* %extractCallback to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %329) #16
%330 = bitcast %class.CExtractCallbackConsole** %ecs to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %330) #16
%cleanup.dest456 = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest456, label %cleanup844 [
i32 0, label %cleanup.cont457
]
cleanup.cont457: ; preds = %cleanup435
br label %if.end500
ehcleanup436: ; preds = %lpad424, %lpad381, %lpad373, %lpad306
%331 = bitcast i32* %result305 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %331) #16
%332 = bitcast %struct.CDecompressStat* %stat to i8*
call void @llvm.lifetime.end.p0i8(i64 48, i8* %332) #16
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) #16
br label %ehcleanup442
ehcleanup442: ; preds = %ehcleanup436, %lpad303
%333 = bitcast %class.CStringBase* %errorMessage to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %333) #16
br label %ehcleanup444
ehcleanup444: ; preds = %ehcleanup442, %lpad284
call void @_ZN15CExtractOptionsD2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo) #16
br label %ehcleanup446
ehcleanup446: ; preds = %ehcleanup444, %lpad274
%334 = bitcast %struct.CExtractOptions* %eo to i8*
call void @llvm.lifetime.end.p0i8(i64 64, i8* %334) #16
br label %ehcleanup448
ehcleanup448: ; preds = %ehcleanup446, %lpad271
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback) #16
br label %ehcleanup450
ehcleanup450: ; preds = %ehcleanup448, %lpad262
%335 = bitcast %class.COpenCallbackConsole* %openCallback to i8*
call void @llvm.lifetime.end.p0i8(i64 40, i8* %335) #16
br label %ehcleanup452
ehcleanup452: ; preds = %ehcleanup450, %lpad258
call void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %extractCallback) #16
br label %ehcleanup454
ehcleanup454: ; preds = %ehcleanup452, %lpad253
%336 = bitcast %class.CMyComPtr.7* %extractCallback to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %336) #16
br label %ehcleanup458
ehcleanup458: ; preds = %ehcleanup454, %lpad250, %lpad247
%337 = bitcast %class.CExtractCallbackConsole** %ecs to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %337) #16
br label %ehcleanup845
if.else459: ; preds = %if.then244
%338 = bitcast i64* %numErrors to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %338) #16
store i64 0, i64* %numErrors, align 8, !tbaa !76
%339 = bitcast i32* %result460 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %339) #16
%340 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%StdInMode461 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 5
%341 = load i8, i8* %StdInMode461, align 1, !tbaa !54, !range !25
%tobool462 = trunc i8 %341 to i1
%ArchivePathsSorted463 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 20
%ArchivePathsFullSorted464 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 21
%WildcardCensor465 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 10
%Pairs466 = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %WildcardCensor465, i32 0, i32 0
%call469 = invoke nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs466)
to label %invoke.cont468 unwind label %lpad467
invoke.cont468: ; preds = %if.else459
%Head470 = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %call469, i32 0, i32 1
%EnableHeaders471 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 7
%342 = load i8, i8* %EnableHeaders471, align 1, !tbaa !28, !range !25
%tobool472 = trunc i8 %342 to i1
%TechMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 15
%343 = load i8, i8* %TechMode, align 8, !tbaa !77, !range !25
%tobool473 = trunc i8 %343 to i1
%PasswordEnabled474 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13
%Password475 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%call477 = invoke i32 @_Z12ListArchivesP7CCodecsRK13CRecordVectorIiEbR13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeEbbRbRS7_Ry(%class.CCodecs* %340, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices, i1 zeroext %tobool462, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted463, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted464, %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head470, i1 zeroext %tobool472, i1 zeroext %tobool473, i8* nonnull align 1 dereferenceable(1) %PasswordEnabled474, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password475, i64* nonnull align 8 dereferenceable(8) %numErrors)
to label %invoke.cont476 unwind label %lpad467
invoke.cont476: ; preds = %invoke.cont468
store i32 %call477, i32* %result460, align 4, !tbaa !3
%344 = load i64, i64* %numErrors, align 8, !tbaa !76
%cmp478 = icmp ugt i64 %344, 0
br i1 %cmp478, label %if.then479, label %if.end486
if.then479: ; preds = %invoke.cont476
%call481 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) @g_StdOut, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont480 unwind label %lpad467
invoke.cont480: ; preds = %if.then479
%call483 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call481, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0))
to label %invoke.cont482 unwind label %lpad467
invoke.cont482: ; preds = %invoke.cont480
%345 = load i64, i64* %numErrors, align 8, !tbaa !76
%call485 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call483, i64 %345)
to label %invoke.cont484 unwind label %lpad467
invoke.cont484: ; preds = %invoke.cont482
store i32 2, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup494
lpad467: ; preds = %invoke.cont491, %invoke.cont482, %invoke.cont480, %if.then479, %invoke.cont468, %if.else459
%346 = landingpad { i8*, i32 }
cleanup
%347 = extractvalue { i8*, i32 } %346, 0
store i8* %347, i8** %exn.slot, align 8
%348 = extractvalue { i8*, i32 } %346, 1
store i32 %348, i32* %ehselector.slot, align 4
br label %ehcleanup495
if.end486: ; preds = %invoke.cont476
%349 = load i32, i32* %result460, align 4, !tbaa !3
%cmp487 = icmp ne i32 %349, 0
br i1 %cmp487, label %if.then488, label %if.end493
if.then488: ; preds = %if.end486
%exception489 = call i8* @__cxa_allocate_exception(i64 4) #16
%350 = bitcast i8* %exception489 to %struct.CSystemException*
%351 = load i32, i32* %result460, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %350, i32 %351)
to label %invoke.cont491 unwind label %lpad490
invoke.cont491: ; preds = %if.then488
invoke void @__cxa_throw(i8* %exception489, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad467
lpad490: ; preds = %if.then488
%352 = landingpad { i8*, i32 }
cleanup
%353 = extractvalue { i8*, i32 } %352, 0
store i8* %353, i8** %exn.slot, align 8
%354 = extractvalue { i8*, i32 } %352, 1
store i32 %354, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception489) #16
br label %ehcleanup495
if.end493: ; preds = %if.end486
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup494
cleanup494: ; preds = %if.end493, %invoke.cont484
%355 = bitcast i32* %result460 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %355) #16
%356 = bitcast i64* %numErrors to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %356) #16
%cleanup.dest497 = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest497, label %cleanup844 [
i32 0, label %cleanup.cont498
]
cleanup.cont498: ; preds = %cleanup494
br label %if.end500
ehcleanup495: ; preds = %lpad490, %lpad467
%357 = bitcast i32* %result460 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %357) #16
%358 = bitcast i64* %numErrors to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %358) #16
br label %ehcleanup845
if.end500: ; preds = %cleanup.cont498, %cleanup.cont457
br label %if.end841
if.else501: ; preds = %lor.lhs.false240
%Command502 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11
%call504 = invoke zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command502)
to label %invoke.cont503 unwind label %lpad57
invoke.cont503: ; preds = %if.else501
br i1 %call504, label %if.then505, label %if.else838
if.then505: ; preds = %invoke.cont503
%359 = bitcast %struct.CUpdateOptions** %uo to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %359) #16
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 23
store %struct.CUpdateOptions* %UpdateOptions, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%360 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%SfxMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %360, i32 0, i32 4
%361 = load i8, i8* %SfxMode, align 8, !tbaa !78, !range !25
%tobool506 = trunc i8 %361 to i1
br i1 %tobool506, label %land.lhs.true507, label %if.end515
land.lhs.true507: ; preds = %if.then505
%362 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %362, i32 0, i32 5
%call510 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule)
to label %invoke.cont509 unwind label %lpad508
invoke.cont509: ; preds = %land.lhs.true507
br i1 %call510, label %if.then511, label %if.end515
if.then511: ; preds = %invoke.cont509
%363 = load i32*, i32** @_ZL17kDefaultSfxModule, align 8, !tbaa !7
%364 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%SfxModule512 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %364, i32 0, i32 5
%call514 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule512, i32* %363)
to label %invoke.cont513 unwind label %lpad508
invoke.cont513: ; preds = %if.then511
br label %if.end515
lpad508: ; preds = %if.then511, %land.lhs.true507
%365 = landingpad { i8*, i32 }
cleanup
%366 = extractvalue { i8*, i32 } %365, 0
store i8* %366, i8** %exn.slot, align 8
%367 = extractvalue { i8*, i32 } %365, 1
store i32 %367, i32* %ehselector.slot, align 4
br label %ehcleanup837
if.end515: ; preds = %invoke.cont513, %invoke.cont509, %if.then505
%368 = bitcast %class.COpenCallbackConsole* %openCallback516 to i8*
call void @llvm.lifetime.start.p0i8(i64 40, i8* %368) #16
invoke void @_ZN20COpenCallbackConsoleC2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback516)
to label %invoke.cont518 unwind label %lpad517
invoke.cont518: ; preds = %if.end515
%369 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%OutStream519 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback516, i32 0, i32 1
store %class.CStdOutStream* %369, %class.CStdOutStream** %OutStream519, align 8, !tbaa !51
call void @llvm.lifetime.start.p0i8(i64 1, i8* %passwordIsDefined) #16
%PasswordEnabled520 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13
%370 = load i8, i8* %PasswordEnabled520, align 8, !tbaa !49, !range !25
%tobool521 = trunc i8 %370 to i1
br i1 %tobool521, label %land.rhs, label %land.end
land.rhs: ; preds = %invoke.cont518
%Password522 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%call525 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password522)
to label %invoke.cont524 unwind label %lpad523
invoke.cont524: ; preds = %land.rhs
%lnot = xor i1 %call525, true
br label %land.end
land.end: ; preds = %invoke.cont524, %invoke.cont518
%371 = phi i1 [ false, %invoke.cont518 ], [ %lnot, %invoke.cont524 ]
%frombool526 = zext i1 %371 to i8
store i8 %frombool526, i8* %passwordIsDefined, align 1, !tbaa !29
%372 = load i8, i8* %passwordIsDefined, align 1, !tbaa !29, !range !25
%tobool527 = trunc i8 %372 to i1
%PasswordIsDefined528 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback516, i32 0, i32 2
%frombool529 = zext i1 %tobool527 to i8
store i8 %frombool529, i8* %PasswordIsDefined528, align 8, !tbaa !53
%Password530 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%Password531 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback516, i32 0, i32 4
%call533 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password531, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password530)
to label %invoke.cont532 unwind label %lpad523
invoke.cont532: ; preds = %land.end
%373 = bitcast %class.CUpdateCallbackConsole* %callback to i8*
call void @llvm.lifetime.start.p0i8(i64 232, i8* %373) #16
invoke void @_ZN22CUpdateCallbackConsoleC2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback)
to label %invoke.cont535 unwind label %lpad534
invoke.cont535: ; preds = %invoke.cont532
%EnablePercents = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 25
%374 = load i8, i8* %EnablePercents, align 8, !tbaa !79, !range !25
%tobool536 = trunc i8 %374 to i1
%EnablePercents537 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 6
%frombool538 = zext i1 %tobool536 to i8
store i8 %frombool538, i8* %EnablePercents537, align 8, !tbaa !80
%375 = load i8, i8* %passwordIsDefined, align 1, !tbaa !29, !range !25
%tobool539 = trunc i8 %375 to i1
%PasswordIsDefined540 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 8
%frombool541 = zext i1 %tobool539 to i8
store i8 %frombool541, i8* %PasswordIsDefined540, align 2, !tbaa !84
%PasswordEnabled542 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13
%376 = load i8, i8* %PasswordEnabled542, align 8, !tbaa !49, !range !25
%tobool543 = trunc i8 %376 to i1
br i1 %tobool543, label %land.rhs544, label %land.end549
land.rhs544: ; preds = %invoke.cont535
%Password545 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%call548 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password545)
to label %invoke.cont547 unwind label %lpad546
invoke.cont547: ; preds = %land.rhs544
br label %land.end549
land.end549: ; preds = %invoke.cont547, %invoke.cont535
%377 = phi i1 [ false, %invoke.cont535 ], [ %call548, %invoke.cont547 ]
%AskPassword = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 10
%frombool550 = zext i1 %377 to i8
store i8 %frombool550, i8* %AskPassword, align 8, !tbaa !85
%Password551 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14
%Password552 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 9
%call554 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password552, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password551)
to label %invoke.cont553 unwind label %lpad546
invoke.cont553: ; preds = %land.end549
%378 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%StdOutMode555 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %378, i32 0, i32 9
%379 = load i8, i8* %StdOutMode555, align 8, !tbaa !86, !range !25
%tobool556 = trunc i8 %379 to i1
%StdOutMode557 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 7
%frombool558 = zext i1 %tobool556 to i8
store i8 %frombool558, i8* %StdOutMode557, align 1, !tbaa !87
%380 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
invoke void @_ZN22CUpdateCallbackConsole4InitEP13CStdOutStream(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback, %class.CStdOutStream* %380)
to label %invoke.cont559 unwind label %lpad546
invoke.cont559: ; preds = %invoke.cont553
%381 = bitcast %struct.CUpdateErrorInfo* %errorInfo to i8*
call void @llvm.lifetime.start.p0i8(i64 56, i8* %381) #16
invoke void @_ZN16CUpdateErrorInfoC2Ev(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo)
to label %invoke.cont561 unwind label %lpad560
invoke.cont561: ; preds = %invoke.cont559
%382 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%383 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 12
%call564 = invoke zeroext i1 @_ZN14CUpdateOptions4InitEPK7CCodecsRK13CRecordVectorIiERK11CStringBaseIwE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %382, %class.CCodecs* %383, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName)
to label %invoke.cont563 unwind label %lpad562
invoke.cont563: ; preds = %invoke.cont561
br i1 %call564, label %if.end567, label %if.then565
if.then565: ; preds = %invoke.cont563
%exception566 = call i8* @__cxa_allocate_exception(i64 8) #16
%384 = bitcast i8* %exception566 to i8**
%385 = load i8*, i8** @_ZL26kUnsupportedArcTypeMessage, align 8, !tbaa !7
store i8* %385, i8** %384, align 16, !tbaa !7
invoke void @__cxa_throw(i8* %exception566, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18
to label %unreachable unwind label %lpad562
lpad517: ; preds = %if.end515
%386 = landingpad { i8*, i32 }
cleanup
%387 = extractvalue { i8*, i32 } %386, 0
store i8* %387, i8** %exn.slot, align 8
%388 = extractvalue { i8*, i32 } %386, 1
store i32 %388, i32* %ehselector.slot, align 4
br label %ehcleanup835
lpad523: ; preds = %land.end, %land.rhs
%389 = landingpad { i8*, i32 }
cleanup
%390 = extractvalue { i8*, i32 } %389, 0
store i8* %390, i8** %exn.slot, align 8
%391 = extractvalue { i8*, i32 } %389, 1
store i32 %391, i32* %ehselector.slot, align 4
br label %ehcleanup831
lpad534: ; preds = %invoke.cont532
%392 = landingpad { i8*, i32 }
cleanup
%393 = extractvalue { i8*, i32 } %392, 0
store i8* %393, i8** %exn.slot, align 8
%394 = extractvalue { i8*, i32 } %392, 1
store i32 %394, i32* %ehselector.slot, align 4
br label %ehcleanup829
lpad546: ; preds = %invoke.cont553, %land.end549, %land.rhs544
%395 = landingpad { i8*, i32 }
cleanup
%396 = extractvalue { i8*, i32 } %395, 0
store i8* %396, i8** %exn.slot, align 8
%397 = extractvalue { i8*, i32 } %395, 1
store i32 %397, i32* %ehselector.slot, align 4
br label %ehcleanup827
lpad560: ; preds = %invoke.cont559
%398 = landingpad { i8*, i32 }
cleanup
%399 = extractvalue { i8*, i32 } %398, 0
store i8* %399, i8** %exn.slot, align 8
%400 = extractvalue { i8*, i32 } %398, 1
store i32 %400, i32* %ehselector.slot, align 4
br label %ehcleanup825
lpad562: ; preds = %if.then565, %invoke.cont561
%401 = landingpad { i8*, i32 }
cleanup
%402 = extractvalue { i8*, i32 } %401, 0
store i8* %402, i8** %exn.slot, align 8
%403 = extractvalue { i8*, i32 } %401, 1
store i32 %403, i32* %ehselector.slot, align 4
br label %ehcleanup823
if.end567: ; preds = %invoke.cont563
%404 = bitcast i32* %result568 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %404) #16
%405 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7
%WildcardCensor569 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 10
%406 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%407 = bitcast %class.COpenCallbackConsole* %openCallback516 to %struct.IOpenCallbackUI*
%408 = bitcast %class.CUpdateCallbackConsole* %callback to %struct.IUpdateCallbackUI2*
%call572 = invoke i32 @_Z13UpdateArchiveP7CCodecsRKN9NWildcard7CCensorER14CUpdateOptionsR16CUpdateErrorInfoP15IOpenCallbackUIP18IUpdateCallbackUI2(%class.CCodecs* %405, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor569, %struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %406, %struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo, %struct.IOpenCallbackUI* %407, %struct.IUpdateCallbackUI2* %408)
to label %invoke.cont571 unwind label %lpad570
invoke.cont571: ; preds = %if.end567
store i32 %call572, i32* %result568, align 4, !tbaa !3
%409 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%SfxMode573 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %409, i32 0, i32 4
%410 = load i8, i8* %SfxMode573, align 8, !tbaa !78, !range !25
%tobool574 = trunc i8 %410 to i1
br i1 %tobool574, label %if.then575, label %if.end604
if.then575: ; preds = %invoke.cont571
%411 = bitcast i32* %i576 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %411) #16
store i32 0, i32* %i576, align 4, !tbaa !3
br label %for.cond577
for.cond577: ; preds = %for.inc599, %if.then575
%412 = load i32, i32* %i576, align 4, !tbaa !3
%413 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %413, i32 0, i32 1
%414 = bitcast %class.CObjectVector.2* %Commands to %class.CBaseRecordVector*
%call580 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %414)
to label %invoke.cont579 unwind label %lpad578
invoke.cont579: ; preds = %for.cond577
%cmp581 = icmp slt i32 %412, %call580
br i1 %cmp581, label %for.body583, label %for.cond.cleanup582
for.cond.cleanup582: ; preds = %invoke.cont579
store i32 11, i32* %cleanup.dest.slot, align 4
%415 = bitcast i32* %i576 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %415) #16
br label %for.end603
lpad570: ; preds = %if.end567
%416 = landingpad { i8*, i32 }
cleanup
%417 = extractvalue { i8*, i32 } %416, 0
store i8* %417, i8** %exn.slot, align 8
%418 = extractvalue { i8*, i32 } %416, 1
store i32 %418, i32* %ehselector.slot, align 4
br label %ehcleanup821
lpad578: ; preds = %for.cond577
%419 = landingpad { i8*, i32 }
cleanup
%420 = extractvalue { i8*, i32 } %419, 0
store i8* %420, i8** %exn.slot, align 8
%421 = extractvalue { i8*, i32 } %419, 1
store i32 %421, i32* %ehselector.slot, align 4
br label %ehcleanup602
for.body583: ; preds = %invoke.cont579
%422 = bitcast %struct.CUpdateArchiveCommand** %command to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* %422) #16
%423 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%Commands584 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %423, i32 0, i32 1
%424 = load i32, i32* %i576, align 4, !tbaa !3
%call587 = invoke nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands584, i32 %424)
to label %invoke.cont586 unwind label %lpad585
invoke.cont586: ; preds = %for.body583
store %struct.CUpdateArchiveCommand* %call587, %struct.CUpdateArchiveCommand** %command, align 8, !tbaa !7
%425 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7
%StdOutMode588 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %425, i32 0, i32 9
%426 = load i8, i8* %StdOutMode588, align 8, !tbaa !86, !range !25
%tobool589 = trunc i8 %426 to i1
br i1 %tobool589, label %if.end597, label %if.then590
if.then590: ; preds = %invoke.cont586
%427 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %427) #16
%428 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %command, align 8, !tbaa !7
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %428, i32 0, i32 1
invoke void @_ZNK12CArchivePath12GetFinalPathEv(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath)
to label %invoke.cont592 unwind label %lpad591
invoke.cont592: ; preds = %if.then590
invoke void @_Z12myAddExeFlagRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp)
to label %invoke.cont594 unwind label %lpad593
invoke.cont594: ; preds = %invoke.cont592
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16
%429 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %429) #16
br label %if.end597
lpad585: ; preds = %for.body583
%430 = landingpad { i8*, i32 }
cleanup
%431 = extractvalue { i8*, i32 } %430, 0
store i8* %431, i8** %exn.slot, align 8
%432 = extractvalue { i8*, i32 } %430, 1
store i32 %432, i32* %ehselector.slot, align 4
br label %ehcleanup598
lpad591: ; preds = %if.then590
%433 = landingpad { i8*, i32 }
cleanup
%434 = extractvalue { i8*, i32 } %433, 0
store i8* %434, i8** %exn.slot, align 8
%435 = extractvalue { i8*, i32 } %433, 1
store i32 %435, i32* %ehselector.slot, align 4
br label %ehcleanup596
lpad593: ; preds = %invoke.cont592
%436 = landingpad { i8*, i32 }
cleanup
%437 = extractvalue { i8*, i32 } %436, 0
store i8* %437, i8** %exn.slot, align 8
%438 = extractvalue { i8*, i32 } %436, 1
store i32 %438, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16
br label %ehcleanup596
ehcleanup596: ; preds = %lpad593, %lpad591
%439 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %439) #16
br label %ehcleanup598
if.end597: ; preds = %invoke.cont594, %invoke.cont586
%440 = bitcast %struct.CUpdateArchiveCommand** %command to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %440) #16
br label %for.inc599
for.inc599: ; preds = %if.end597
%441 = load i32, i32* %i576, align 4, !tbaa !3
%inc600 = add nsw i32 %441, 1
store i32 %inc600, i32* %i576, align 4, !tbaa !3
br label %for.cond577, !llvm.loop !88
ehcleanup598: ; preds = %ehcleanup596, %lpad585
%442 = bitcast %struct.CUpdateArchiveCommand** %command to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %442) #16
br label %ehcleanup602
ehcleanup602: ; preds = %ehcleanup598, %lpad578
%443 = bitcast i32* %i576 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %443) #16
br label %ehcleanup821
for.end603: ; preds = %for.cond.cleanup582
br label %if.end604
if.end604: ; preds = %for.end603, %invoke.cont571
%444 = bitcast i32* %exitCode to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %444) #16
store i32 0, i32* %exitCode, align 4, !tbaa !3
%CantFindFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13
%445 = bitcast %class.CObjectVector* %CantFindFiles to %class.CBaseRecordVector*
%call607 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %445)
to label %invoke.cont606 unwind label %lpad605
invoke.cont606: ; preds = %if.end604
%cmp608 = icmp sgt i32 %call607, 0
br i1 %cmp608, label %if.then609, label %if.end675
if.then609: ; preds = %invoke.cont606
%446 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call611 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %446, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont610 unwind label %lpad605
invoke.cont610: ; preds = %if.then609
%447 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call613 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %447, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.17, i64 0, i64 0))
to label %invoke.cont612 unwind label %lpad605
invoke.cont612: ; preds = %invoke.cont610
%call615 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call613, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont614 unwind label %lpad605
invoke.cont614: ; preds = %invoke.cont612
%call617 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call615, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont616 unwind label %lpad605
invoke.cont616: ; preds = %invoke.cont614
%448 = bitcast i32* %numErrors618 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %448) #16
%CantFindFiles619 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13
%449 = bitcast %class.CObjectVector* %CantFindFiles619 to %class.CBaseRecordVector*
%call622 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %449)
to label %invoke.cont621 unwind label %lpad620
invoke.cont621: ; preds = %invoke.cont616
store i32 %call622, i32* %numErrors618, align 4, !tbaa !3
%450 = bitcast i32* %i623 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %450) #16
store i32 0, i32* %i623, align 4, !tbaa !3
br label %for.cond624
for.cond624: ; preds = %for.inc652, %invoke.cont621
%451 = load i32, i32* %i623, align 4, !tbaa !3
%452 = load i32, i32* %numErrors618, align 4, !tbaa !3
%cmp625 = icmp slt i32 %451, %452
br i1 %cmp625, label %for.body627, label %for.cond.cleanup626
for.cond.cleanup626: ; preds = %for.cond624
store i32 14, i32* %cleanup.dest.slot, align 4
%453 = bitcast i32* %i623 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %453) #16
br label %for.end656
lpad605: ; preds = %invoke.cont614, %invoke.cont612, %invoke.cont610, %if.then609, %if.end604
%454 = landingpad { i8*, i32 }
cleanup
%455 = extractvalue { i8*, i32 } %454, 0
store i8* %455, i8** %exn.slot, align 8
%456 = extractvalue { i8*, i32 } %454, 1
store i32 %456, i32* %ehselector.slot, align 4
br label %ehcleanup819
lpad620: ; preds = %if.end671, %if.then668, %invoke.cont663, %invoke.cont661, %invoke.cont659, %invoke.cont657, %for.end656, %invoke.cont616
%457 = landingpad { i8*, i32 }
cleanup
%458 = extractvalue { i8*, i32 } %457, 0
store i8* %458, i8** %exn.slot, align 8
%459 = extractvalue { i8*, i32 } %457, 1
store i32 %459, i32* %ehselector.slot, align 4
br label %ehcleanup674
for.body627: ; preds = %for.cond624
%460 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%CantFindFiles628 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13
%461 = load i32, i32* %i623, align 4, !tbaa !3
%call631 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles628, i32 %461)
to label %invoke.cont630 unwind label %lpad629
invoke.cont630: ; preds = %for.body627
%call633 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call631)
to label %invoke.cont632 unwind label %lpad629
invoke.cont632: ; preds = %invoke.cont630
%call635 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %460, i32* %call633)
to label %invoke.cont634 unwind label %lpad629
invoke.cont634: ; preds = %invoke.cont632
%call637 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call635, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
to label %invoke.cont636 unwind label %lpad629
invoke.cont636: ; preds = %invoke.cont634
%462 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%463 = bitcast %class.CStringBase* %ref.tmp638 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %463) #16
%CantFindCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 14
%464 = load i32, i32* %i623, align 4, !tbaa !3
%call641 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes, i32 %464)
to label %invoke.cont640 unwind label %lpad639
invoke.cont640: ; preds = %invoke.cont636
%465 = load i32, i32* %call641, align 4, !tbaa !3
invoke void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp638, i32 %465)
to label %invoke.cont642 unwind label %lpad639
invoke.cont642: ; preds = %invoke.cont640
%call645 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp638)
to label %invoke.cont644 unwind label %lpad643
invoke.cont644: ; preds = %invoke.cont642
%call647 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %462, i32* %call645)
to label %invoke.cont646 unwind label %lpad643
invoke.cont646: ; preds = %invoke.cont644
%call649 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call647, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont648 unwind label %lpad643
invoke.cont648: ; preds = %invoke.cont646
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp638) #16
%466 = bitcast %class.CStringBase* %ref.tmp638 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %466) #16
br label %for.inc652
for.inc652: ; preds = %invoke.cont648
%467 = load i32, i32* %i623, align 4, !tbaa !3
%inc653 = add nsw i32 %467, 1
store i32 %inc653, i32* %i623, align 4, !tbaa !3
br label %for.cond624, !llvm.loop !89
lpad629: ; preds = %invoke.cont634, %invoke.cont632, %invoke.cont630, %for.body627
%468 = landingpad { i8*, i32 }
cleanup
%469 = extractvalue { i8*, i32 } %468, 0
store i8* %469, i8** %exn.slot, align 8
%470 = extractvalue { i8*, i32 } %468, 1
store i32 %470, i32* %ehselector.slot, align 4
br label %ehcleanup655
lpad639: ; preds = %invoke.cont640, %invoke.cont636
%471 = landingpad { i8*, i32 }
cleanup
%472 = extractvalue { i8*, i32 } %471, 0
store i8* %472, i8** %exn.slot, align 8
%473 = extractvalue { i8*, i32 } %471, 1
store i32 %473, i32* %ehselector.slot, align 4
br label %ehcleanup651
lpad643: ; preds = %invoke.cont646, %invoke.cont644, %invoke.cont642
%474 = landingpad { i8*, i32 }
cleanup
%475 = extractvalue { i8*, i32 } %474, 0
store i8* %475, i8** %exn.slot, align 8
%476 = extractvalue { i8*, i32 } %474, 1
store i32 %476, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp638) #16
br label %ehcleanup651
ehcleanup651: ; preds = %lpad643, %lpad639
%477 = bitcast %class.CStringBase* %ref.tmp638 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %477) #16
br label %ehcleanup655
ehcleanup655: ; preds = %ehcleanup651, %lpad629
%478 = bitcast i32* %i623 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %478) #16
br label %ehcleanup674
for.end656: ; preds = %for.cond.cleanup626
%479 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call658 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %479, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.19, i64 0, i64 0))
to label %invoke.cont657 unwind label %lpad620
invoke.cont657: ; preds = %for.end656
%call660 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call658, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont659 unwind label %lpad620
invoke.cont659: ; preds = %invoke.cont657
%480 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call662 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %480, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.20, i64 0, i64 0))
to label %invoke.cont661 unwind label %lpad620
invoke.cont661: ; preds = %invoke.cont659
%481 = load i32, i32* %numErrors618, align 4, !tbaa !3
%call664 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call662, i32 %481)
to label %invoke.cont663 unwind label %lpad620
invoke.cont663: ; preds = %invoke.cont661
%call666 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call664, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0))
to label %invoke.cont665 unwind label %lpad620
invoke.cont665: ; preds = %invoke.cont663
%482 = load i32, i32* %numErrors618, align 4, !tbaa !3
%cmp667 = icmp sgt i32 %482, 1
br i1 %cmp667, label %if.then668, label %if.end671
if.then668: ; preds = %invoke.cont665
%483 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call670 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %483, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.22, i64 0, i64 0))
to label %invoke.cont669 unwind label %lpad620
invoke.cont669: ; preds = %if.then668
br label %if.end671
if.end671: ; preds = %invoke.cont669, %invoke.cont665
%484 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call673 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %484, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont672 unwind label %lpad620
invoke.cont672: ; preds = %if.end671
store i32 1, i32* %exitCode, align 4, !tbaa !3
%485 = bitcast i32* %numErrors618 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %485) #16
br label %if.end675
ehcleanup674: ; preds = %ehcleanup655, %lpad620
%486 = bitcast i32* %numErrors618 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %486) #16
br label %ehcleanup819
if.end675: ; preds = %invoke.cont672, %invoke.cont606
%487 = load i32, i32* %result568, align 4, !tbaa !3
%cmp676 = icmp ne i32 %487, 0
br i1 %cmp676, label %if.then677, label %if.end738
if.then677: ; preds = %if.end675
%488 = bitcast %class.CStringBase* %message to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %488) #16
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %message)
to label %invoke.cont679 unwind label %lpad678
invoke.cont679: ; preds = %if.then677
%489 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%Message = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %489, i32 0, i32 3
%call682 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Message)
to label %invoke.cont681 unwind label %lpad680
invoke.cont681: ; preds = %invoke.cont679
br i1 %call682, label %if.end689, label %if.then683
if.then683: ; preds = %invoke.cont681
%490 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%Message684 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %490, i32 0, i32 3
%call686 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %Message684)
to label %invoke.cont685 unwind label %lpad680
invoke.cont685: ; preds = %if.then683
%call688 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0))
to label %invoke.cont687 unwind label %lpad680
invoke.cont687: ; preds = %invoke.cont685
br label %if.end689
lpad678: ; preds = %if.then677
%491 = landingpad { i8*, i32 }
cleanup
%492 = extractvalue { i8*, i32 } %491, 0
store i8* %492, i8** %exn.slot, align 8
%493 = extractvalue { i8*, i32 } %491, 1
store i32 %493, i32* %ehselector.slot, align 4
br label %ehcleanup737
lpad680: ; preds = %invoke.cont734, %invoke.cont727, %invoke.cont725, %if.then724, %if.end721, %invoke.cont715, %invoke.cont703, %if.then701, %if.end698, %invoke.cont694, %if.then692, %if.end689, %invoke.cont685, %if.then683, %invoke.cont679
%494 = landingpad { i8*, i32 }
cleanup
%495 = extractvalue { i8*, i32 } %494, 0
store i8* %495, i8** %exn.slot, align 8
%496 = extractvalue { i8*, i32 } %494, 1
store i32 %496, i32* %ehselector.slot, align 4
br label %ehcleanup736
if.end689: ; preds = %invoke.cont687, %invoke.cont681
%497 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%FileName = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %497, i32 0, i32 1
%call691 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName)
to label %invoke.cont690 unwind label %lpad680
invoke.cont690: ; preds = %if.end689
br i1 %call691, label %if.end698, label %if.then692
if.then692: ; preds = %invoke.cont690
%498 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%FileName693 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %498, i32 0, i32 1
%call695 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %FileName693)
to label %invoke.cont694 unwind label %lpad680
invoke.cont694: ; preds = %if.then692
%call697 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0))
to label %invoke.cont696 unwind label %lpad680
invoke.cont696: ; preds = %invoke.cont694
br label %if.end698
if.end698: ; preds = %invoke.cont696, %invoke.cont690
%499 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%FileName2 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %499, i32 0, i32 2
%call700 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName2)
to label %invoke.cont699 unwind label %lpad680
invoke.cont699: ; preds = %if.end698
br i1 %call700, label %if.end707, label %if.then701
if.then701: ; preds = %invoke.cont699
%500 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%FileName2702 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %500, i32 0, i32 2
%call704 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %FileName2702)
to label %invoke.cont703 unwind label %lpad680
invoke.cont703: ; preds = %if.then701
%call706 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0))
to label %invoke.cont705 unwind label %lpad680
invoke.cont705: ; preds = %invoke.cont703
br label %if.end707
if.end707: ; preds = %invoke.cont705, %invoke.cont699
%501 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%SystemError = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %501, i32 0, i32 0
%502 = load i32, i32* %SystemError, align 8, !tbaa !90
%cmp708 = icmp ne i32 %502, 0
br i1 %cmp708, label %if.then709, label %if.end721
if.then709: ; preds = %if.end707
%503 = bitcast %class.CStringBase* %ref.tmp710 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %503) #16
%504 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo*
%SystemError711 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %504, i32 0, i32 0
%505 = load i32, i32* %SystemError711, align 8, !tbaa !90
invoke void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp710, i32 %505)
to label %invoke.cont713 unwind label %lpad712
invoke.cont713: ; preds = %if.then709
%call716 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp710)
to label %invoke.cont715 unwind label %lpad714
invoke.cont715: ; preds = %invoke.cont713
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp710) #16
%506 = bitcast %class.CStringBase* %ref.tmp710 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %506) #16
%call720 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0))
to label %invoke.cont719 unwind label %lpad680
invoke.cont719: ; preds = %invoke.cont715
br label %if.end721
lpad712: ; preds = %if.then709
%507 = landingpad { i8*, i32 }
cleanup
%508 = extractvalue { i8*, i32 } %507, 0
store i8* %508, i8** %exn.slot, align 8
%509 = extractvalue { i8*, i32 } %507, 1
store i32 %509, i32* %ehselector.slot, align 4
br label %ehcleanup718
lpad714: ; preds = %invoke.cont713
%510 = landingpad { i8*, i32 }
cleanup
%511 = extractvalue { i8*, i32 } %510, 0
store i8* %511, i8** %exn.slot, align 8
%512 = extractvalue { i8*, i32 } %510, 1
store i32 %512, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp710) #16
br label %ehcleanup718
ehcleanup718: ; preds = %lpad714, %lpad712
%513 = bitcast %class.CStringBase* %ref.tmp710 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %513) #16
br label %ehcleanup736
if.end721: ; preds = %invoke.cont719, %if.end707
%call723 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %message)
to label %invoke.cont722 unwind label %lpad680
invoke.cont722: ; preds = %if.end721
br i1 %call723, label %if.end731, label %if.then724
if.then724: ; preds = %invoke.cont722
%514 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call726 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %514, i32* getelementptr inbounds ([9 x i32], [9 x i32]* @.str.24, i64 0, i64 0))
to label %invoke.cont725 unwind label %lpad680
invoke.cont725: ; preds = %if.then724
%call728 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %message)
to label %invoke.cont727 unwind label %lpad680
invoke.cont727: ; preds = %invoke.cont725
%call730 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call726, i32* %call728)
to label %invoke.cont729 unwind label %lpad680
invoke.cont729: ; preds = %invoke.cont727
br label %if.end731
if.end731: ; preds = %invoke.cont729, %invoke.cont722
%exception732 = call i8* @__cxa_allocate_exception(i64 4) #16
%515 = bitcast i8* %exception732 to %struct.CSystemException*
%516 = load i32, i32* %result568, align 4, !tbaa !3
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %515, i32 %516)
to label %invoke.cont734 unwind label %lpad733
invoke.cont734: ; preds = %if.end731
invoke void @__cxa_throw(i8* %exception732, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18
to label %unreachable unwind label %lpad680
lpad733: ; preds = %if.end731
%517 = landingpad { i8*, i32 }
cleanup
%518 = extractvalue { i8*, i32 } %517, 0
store i8* %518, i8** %exn.slot, align 8
%519 = extractvalue { i8*, i32 } %517, 1
store i32 %519, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception732) #16
br label %ehcleanup736
ehcleanup736: ; preds = %lpad733, %ehcleanup718, %lpad680
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %message) #16
br label %ehcleanup737
ehcleanup737: ; preds = %ehcleanup736, %lpad678
%520 = bitcast %class.CStringBase* %message to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %520) #16
br label %ehcleanup819
if.end738: ; preds = %if.end675
%521 = bitcast i32* %numErrors739 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %521) #16
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 11
%522 = bitcast %class.CObjectVector* %FailedFiles to %class.CBaseRecordVector*
%call742 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %522)
to label %invoke.cont741 unwind label %lpad740
invoke.cont741: ; preds = %if.end738
store i32 %call742, i32* %numErrors739, align 4, !tbaa !3
%523 = load i32, i32* %numErrors739, align 4, !tbaa !3
%cmp743 = icmp eq i32 %523, 0
br i1 %cmp743, label %if.then744, label %if.else755
if.then744: ; preds = %invoke.cont741
%CantFindFiles745 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13
%524 = bitcast %class.CObjectVector* %CantFindFiles745 to %class.CBaseRecordVector*
%call747 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %524)
to label %invoke.cont746 unwind label %lpad740
invoke.cont746: ; preds = %if.then744
%cmp748 = icmp eq i32 %call747, 0
br i1 %cmp748, label %if.then749, label %if.end754
if.then749: ; preds = %invoke.cont746
%525 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%526 = load i8*, i8** @_ZL15kEverythingIsOk, align 8, !tbaa !7
%call751 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %525, i8* %526)
to label %invoke.cont750 unwind label %lpad740
invoke.cont750: ; preds = %if.then749
%call753 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call751, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont752 unwind label %lpad740
invoke.cont752: ; preds = %invoke.cont750
br label %if.end754
lpad740: ; preds = %if.end812, %if.then809, %invoke.cont804, %invoke.cont802, %invoke.cont800, %invoke.cont798, %for.end797, %invoke.cont760, %invoke.cont758, %invoke.cont756, %if.else755, %invoke.cont750, %if.then749, %if.then744, %if.end738
%527 = landingpad { i8*, i32 }
cleanup
%528 = extractvalue { i8*, i32 } %527, 0
store i8* %528, i8** %exn.slot, align 8
%529 = extractvalue { i8*, i32 } %527, 1
store i32 %529, i32* %ehselector.slot, align 4
br label %ehcleanup817
if.end754: ; preds = %invoke.cont752, %invoke.cont746
br label %if.end815
if.else755: ; preds = %invoke.cont741
%530 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call757 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %530, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont756 unwind label %lpad740
invoke.cont756: ; preds = %if.else755
%531 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call759 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %531, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.17, i64 0, i64 0))
to label %invoke.cont758 unwind label %lpad740
invoke.cont758: ; preds = %invoke.cont756
%call761 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call759, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont760 unwind label %lpad740
invoke.cont760: ; preds = %invoke.cont758
%call763 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call761, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont762 unwind label %lpad740
invoke.cont762: ; preds = %invoke.cont760
%532 = bitcast i32* %i764 to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %532) #16
store i32 0, i32* %i764, align 4, !tbaa !3
br label %for.cond765
for.cond765: ; preds = %for.inc793, %invoke.cont762
%533 = load i32, i32* %i764, align 4, !tbaa !3
%534 = load i32, i32* %numErrors739, align 4, !tbaa !3
%cmp766 = icmp slt i32 %533, %534
br i1 %cmp766, label %for.body768, label %for.cond.cleanup767
for.cond.cleanup767: ; preds = %for.cond765
store i32 17, i32* %cleanup.dest.slot, align 4
%535 = bitcast i32* %i764 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %535) #16
br label %for.end797
for.body768: ; preds = %for.cond765
%536 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%FailedFiles769 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 11
%537 = load i32, i32* %i764, align 4, !tbaa !3
%call772 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles769, i32 %537)
to label %invoke.cont771 unwind label %lpad770
invoke.cont771: ; preds = %for.body768
%call774 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call772)
to label %invoke.cont773 unwind label %lpad770
invoke.cont773: ; preds = %invoke.cont771
%call776 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %536, i32* %call774)
to label %invoke.cont775 unwind label %lpad770
invoke.cont775: ; preds = %invoke.cont773
%call778 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call776, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
to label %invoke.cont777 unwind label %lpad770
invoke.cont777: ; preds = %invoke.cont775
%538 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%539 = bitcast %class.CStringBase* %ref.tmp779 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %539) #16
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 12
%540 = load i32, i32* %i764, align 4, !tbaa !3
%call782 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes, i32 %540)
to label %invoke.cont781 unwind label %lpad780
invoke.cont781: ; preds = %invoke.cont777
%541 = load i32, i32* %call782, align 4, !tbaa !3
invoke void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp779, i32 %541)
to label %invoke.cont783 unwind label %lpad780
invoke.cont783: ; preds = %invoke.cont781
%call786 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp779)
to label %invoke.cont785 unwind label %lpad784
invoke.cont785: ; preds = %invoke.cont783
%call788 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %538, i32* %call786)
to label %invoke.cont787 unwind label %lpad784
invoke.cont787: ; preds = %invoke.cont785
%call790 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call788, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont789 unwind label %lpad784
invoke.cont789: ; preds = %invoke.cont787
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp779) #16
%542 = bitcast %class.CStringBase* %ref.tmp779 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %542) #16
br label %for.inc793
for.inc793: ; preds = %invoke.cont789
%543 = load i32, i32* %i764, align 4, !tbaa !3
%inc794 = add nsw i32 %543, 1
store i32 %inc794, i32* %i764, align 4, !tbaa !3
br label %for.cond765, !llvm.loop !92
lpad770: ; preds = %invoke.cont775, %invoke.cont773, %invoke.cont771, %for.body768
%544 = landingpad { i8*, i32 }
cleanup
%545 = extractvalue { i8*, i32 } %544, 0
store i8* %545, i8** %exn.slot, align 8
%546 = extractvalue { i8*, i32 } %544, 1
store i32 %546, i32* %ehselector.slot, align 4
br label %ehcleanup796
lpad780: ; preds = %invoke.cont781, %invoke.cont777
%547 = landingpad { i8*, i32 }
cleanup
%548 = extractvalue { i8*, i32 } %547, 0
store i8* %548, i8** %exn.slot, align 8
%549 = extractvalue { i8*, i32 } %547, 1
store i32 %549, i32* %ehselector.slot, align 4
br label %ehcleanup792
lpad784: ; preds = %invoke.cont787, %invoke.cont785, %invoke.cont783
%550 = landingpad { i8*, i32 }
cleanup
%551 = extractvalue { i8*, i32 } %550, 0
store i8* %551, i8** %exn.slot, align 8
%552 = extractvalue { i8*, i32 } %550, 1
store i32 %552, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp779) #16
br label %ehcleanup792
ehcleanup792: ; preds = %lpad784, %lpad780
%553 = bitcast %class.CStringBase* %ref.tmp779 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %553) #16
br label %ehcleanup796
ehcleanup796: ; preds = %ehcleanup792, %lpad770
%554 = bitcast i32* %i764 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %554) #16
br label %ehcleanup817
for.end797: ; preds = %for.cond.cleanup767
%555 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call799 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %555, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.19, i64 0, i64 0))
to label %invoke.cont798 unwind label %lpad740
invoke.cont798: ; preds = %for.end797
%call801 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call799, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont800 unwind label %lpad740
invoke.cont800: ; preds = %invoke.cont798
%556 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call803 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %556, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.25, i64 0, i64 0))
to label %invoke.cont802 unwind label %lpad740
invoke.cont802: ; preds = %invoke.cont800
%557 = load i32, i32* %numErrors739, align 4, !tbaa !3
%call805 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call803, i32 %557)
to label %invoke.cont804 unwind label %lpad740
invoke.cont804: ; preds = %invoke.cont802
%call807 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call805, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0))
to label %invoke.cont806 unwind label %lpad740
invoke.cont806: ; preds = %invoke.cont804
%558 = load i32, i32* %numErrors739, align 4, !tbaa !3
%cmp808 = icmp sgt i32 %558, 1
br i1 %cmp808, label %if.then809, label %if.end812
if.then809: ; preds = %invoke.cont806
%559 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call811 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %559, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.22, i64 0, i64 0))
to label %invoke.cont810 unwind label %lpad740
invoke.cont810: ; preds = %if.then809
br label %if.end812
if.end812: ; preds = %invoke.cont810, %invoke.cont806
%560 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
%call814 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %560, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream)
to label %invoke.cont813 unwind label %lpad740
invoke.cont813: ; preds = %if.end812
store i32 1, i32* %exitCode, align 4, !tbaa !3
br label %if.end815
if.end815: ; preds = %invoke.cont813, %if.end754
%561 = load i32, i32* %exitCode, align 4, !tbaa !3
store i32 %561, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
%562 = bitcast i32* %numErrors739 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %562) #16
%563 = bitcast i32* %exitCode to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %563) #16
%564 = bitcast i32* %result568 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %564) #16
call void bitcast (void (%struct.CErrorInfo*)* @_ZN10CErrorInfoD2Ev to void (%struct.CUpdateErrorInfo*)*)(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo) #16
%565 = bitcast %struct.CUpdateErrorInfo* %errorInfo to i8*
call void @llvm.lifetime.end.p0i8(i64 56, i8* %565) #16
call void @_ZN22CUpdateCallbackConsoleD2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback) #16
%566 = bitcast %class.CUpdateCallbackConsole* %callback to i8*
call void @llvm.lifetime.end.p0i8(i64 232, i8* %566) #16
call void @llvm.lifetime.end.p0i8(i64 1, i8* %passwordIsDefined) #16
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback516) #16
%567 = bitcast %class.COpenCallbackConsole* %openCallback516 to i8*
call void @llvm.lifetime.end.p0i8(i64 40, i8* %567) #16
%568 = bitcast %struct.CUpdateOptions** %uo to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %568) #16
br label %cleanup844
ehcleanup817: ; preds = %ehcleanup796, %lpad740
%569 = bitcast i32* %numErrors739 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %569) #16
br label %ehcleanup819
ehcleanup819: ; preds = %ehcleanup817, %ehcleanup737, %ehcleanup674, %lpad605
%570 = bitcast i32* %exitCode to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %570) #16
br label %ehcleanup821
ehcleanup821: ; preds = %ehcleanup819, %ehcleanup602, %lpad570
%571 = bitcast i32* %result568 to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %571) #16
br label %ehcleanup823
ehcleanup823: ; preds = %ehcleanup821, %lpad562
call void bitcast (void (%struct.CErrorInfo*)* @_ZN10CErrorInfoD2Ev to void (%struct.CUpdateErrorInfo*)*)(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo) #16
br label %ehcleanup825
ehcleanup825: ; preds = %ehcleanup823, %lpad560
%572 = bitcast %struct.CUpdateErrorInfo* %errorInfo to i8*
call void @llvm.lifetime.end.p0i8(i64 56, i8* %572) #16
br label %ehcleanup827
ehcleanup827: ; preds = %ehcleanup825, %lpad546
call void @_ZN22CUpdateCallbackConsoleD2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback) #16
br label %ehcleanup829
ehcleanup829: ; preds = %ehcleanup827, %lpad534
%573 = bitcast %class.CUpdateCallbackConsole* %callback to i8*
call void @llvm.lifetime.end.p0i8(i64 232, i8* %573) #16
br label %ehcleanup831
ehcleanup831: ; preds = %ehcleanup829, %lpad523
call void @llvm.lifetime.end.p0i8(i64 1, i8* %passwordIsDefined) #16
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback516) #16
br label %ehcleanup835
ehcleanup835: ; preds = %ehcleanup831, %lpad517
%574 = bitcast %class.COpenCallbackConsole* %openCallback516 to i8*
call void @llvm.lifetime.end.p0i8(i64 40, i8* %574) #16
br label %ehcleanup837
ehcleanup837: ; preds = %ehcleanup835, %lpad508
%575 = bitcast %struct.CUpdateOptions** %uo to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %575) #16
br label %ehcleanup845
if.else838: ; preds = %invoke.cont503
%576 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7
invoke void @_ZL16PrintHelpAndExitR13CStdOutStream(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %576)
to label %invoke.cont839 unwind label %lpad57
invoke.cont839: ; preds = %if.else838
br label %if.end840
if.end840: ; preds = %invoke.cont839
br label %if.end841
if.end841: ; preds = %if.end840, %if.end500
br label %if.end842
if.end842: ; preds = %if.end841, %if.end237
br label %if.end843
if.end843: ; preds = %if.end842
store i32 0, i32* %retval, align 4
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup844
cleanup844: ; preds = %if.end843, %if.end815, %cleanup494, %cleanup435, %cleanup233, %cleanup, %invoke.cont181
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices) #16
%577 = bitcast %class.CRecordVector.5* %formatIndices to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %577) #16
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #16
%578 = bitcast i32* %result to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %578) #16
call void @_ZN9CMyComPtrI8IUnknownED2Ev(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %compressCodecsInfo) #16
%579 = bitcast %class.CMyComPtr* %compressCodecsInfo to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %579) #16
%580 = bitcast %class.CCodecs** %codecs to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %580) #16
%581 = bitcast %class.CStdOutStream** %stdStream to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %581) #16
br label %cleanup860
ehcleanup845: ; preds = %ehcleanup837, %ehcleanup495, %ehcleanup458, %ehcleanup236, %ehcleanup210, %ehcleanup183, %lpad57
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices) #16
br label %ehcleanup847
ehcleanup847: ; preds = %ehcleanup845, %lpad55
%582 = bitcast %class.CRecordVector.5* %formatIndices to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %582) #16
br label %ehcleanup849
ehcleanup849: ; preds = %ehcleanup847, %lpad39
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #16
br label %ehcleanup851
ehcleanup851: ; preds = %ehcleanup849, %lpad36, %lpad31
%583 = bitcast i32* %result to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %583) #16
call void @_ZN9CMyComPtrI8IUnknownED2Ev(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %compressCodecsInfo) #16
br label %ehcleanup855
ehcleanup855: ; preds = %ehcleanup851, %lpad29
%584 = bitcast %class.CMyComPtr* %compressCodecsInfo to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %584) #16
br label %ehcleanup857
ehcleanup857: ; preds = %ehcleanup855, %lpad27, %lpad24
%585 = bitcast %class.CCodecs** %codecs to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %585) #16
br label %ehcleanup859
ehcleanup859: ; preds = %ehcleanup857, %lpad20
%586 = bitcast %class.CStdOutStream** %stdStream to i8*
call void @llvm.lifetime.end.p0i8(i64 8, i8* %586) #16
br label %ehcleanup861
cleanup860: ; preds = %cleanup844, %invoke.cont11
call void @_ZN25CArchiveCommandLineParserD2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser) #16
%587 = bitcast %class.CArchiveCommandLineParser* %parser to i8*
call void @llvm.lifetime.end.p0i8(i64 48, i8* %587) #16
call void @_ZN26CArchiveCommandLineOptionsD2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #16
%588 = bitcast %struct.CArchiveCommandLineOptions* %options to i8*
call void @llvm.lifetime.end.p0i8(i64 592, i8* %588) #16
br label %cleanup868
ehcleanup861: ; preds = %ehcleanup859, %lpad8
call void @_ZN25CArchiveCommandLineParserD2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser) #16
br label %ehcleanup863
ehcleanup863: ; preds = %ehcleanup861, %lpad6
%589 = bitcast %class.CArchiveCommandLineParser* %parser to i8*
call void @llvm.lifetime.end.p0i8(i64 48, i8* %589) #16
call void @_ZN26CArchiveCommandLineOptionsD2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #16
br label %ehcleanup867
ehcleanup867: ; preds = %ehcleanup863, %lpad4
%590 = bitcast %struct.CArchiveCommandLineOptions* %options to i8*
call void @llvm.lifetime.end.p0i8(i64 592, i8* %590) #16
br label %ehcleanup869
cleanup868: ; preds = %cleanup860, %invoke.cont2
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings) #16
%591 = bitcast %class.CObjectVector* %commandStrings to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %591) #16
%592 = load i32, i32* %retval, align 4
ret i32 %592
ehcleanup869: ; preds = %ehcleanup867, %lpad
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings) #16
%593 = bitcast %class.CObjectVector* %commandStrings to i8*
call void @llvm.lifetime.end.p0i8(i64 32, i8* %593) #16
br label %eh.resume
eh.resume: ; preds = %ehcleanup869
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val872 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val872
unreachable: ; preds = %invoke.cont734, %if.then565, %invoke.cont491, %invoke.cont382, %invoke.cont374, %invoke.cont230, %invoke.cont207, %if.then60, %if.then52, %invoke.cont37
unreachable
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
ret void
}
declare dso_local void @_Z18mySplitCommandLineiPPKcR13CObjectVectorI11CStringBaseIwEE(i32, i8**, %class.CObjectVector* nonnull align 8 dereferenceable(32)) #3
declare dso_local i32 @__gxx_personality_v0(...)
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CBaseRecordVector*, align 8
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !7
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
%0 = load i32, i32* %_size, align 4, !tbaa !95
ret i32 %0
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %s, i1 zeroext %needHelp) #0 {
entry:
%s.addr = alloca %class.CStdOutStream*, align 8
%needHelp.addr = alloca i8, align 1
%nbcpu = alloca i32, align 4
store %class.CStdOutStream* %s, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%frombool = zext i1 %needHelp to i8
store i8 %frombool, i8* %needHelp.addr, align 1, !tbaa !29
%0 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%1 = load i8*, i8** @_ZL16kCopyrightString, align 8, !tbaa !7
%call = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %0, i8* %1)
%call1 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.26, i64 0, i64 0))
%call2 = call i8* @_Z12my_getlocalev()
%call3 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call1, i8* %call2)
%call4 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0))
%2 = load i32, i32* @global_use_utf16_conversion, align 4, !tbaa !3
%tobool = icmp ne i32 %2, 0
br i1 %tobool, label %if.then, label %if.else
if.then: ; preds = %entry
%3 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%call5 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i64 0, i64 0))
br label %if.end
if.else: ; preds = %entry
%4 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%call6 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %4, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
br label %if.end
if.end: ; preds = %if.else, %if.then
%5 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%call7 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %5, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.30, i64 0, i64 0))
%6 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%call8 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%7 = bitcast i32* %nbcpu to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %7) #16
%call9 = call i32 @_ZN8NWindows7NSystem21GetNumberOfProcessorsEv()
store i32 %call9, i32* %nbcpu, align 4, !tbaa !3
%8 = load i32, i32* %nbcpu, align 4, !tbaa !3
%cmp = icmp sgt i32 %8, 1
br i1 %cmp, label %if.then10, label %if.else13
if.then10: ; preds = %if.end
%9 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%10 = load i32, i32* %nbcpu, align 4, !tbaa !3
%call11 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %9, i32 %10)
%call12 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call11, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0))
br label %if.end16
if.else13: ; preds = %if.end
%11 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%12 = load i32, i32* %nbcpu, align 4, !tbaa !3
%call14 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %11, i32 %12)
%call15 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call14, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i64 0, i64 0))
br label %if.end16
if.end16: ; preds = %if.else13, %if.then10
%13 = load i8, i8* %needHelp.addr, align 1, !tbaa !29, !range !25
%tobool17 = trunc i8 %13 to i1
br i1 %tobool17, label %if.then18, label %if.end20
if.then18: ; preds = %if.end16
%14 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%15 = load i8*, i8** @_ZL11kHelpString, align 8, !tbaa !7
%call19 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %14, i8* %15)
br label %if.end20
if.end20: ; preds = %if.then18, %if.end16
%16 = bitcast i32* %nbcpu to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %16) #16
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
store i32 %num, i32* %num.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16
store i32 0, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !3
%4 = load i32, i32* %num.addr, align 4, !tbaa !3
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !97
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !3
%10 = load i32, i32* %i, align 4, !tbaa !3
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7
%12 = bitcast i8* %11 to %class.CStringBase*
%isnull = icmp eq %class.CStringBase* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %12) #16
%13 = bitcast %class.CStringBase* %12 to i8*
call void @_ZdlPv(i8* %13) #19
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !3
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !98
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !3
%18 = load i32, i32* %num.addr, align 4, !tbaa !3
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN26CArchiveCommandLineOptionsC2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CArchiveCommandLineOptions*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CArchiveCommandLineOptions* %this, %struct.CArchiveCommandLineOptions** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %this.addr, align 8
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 5
store i8 0, i8* %StdInMode, align 1, !tbaa !54
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 6
store i8 0, i8* %StdOutMode, align 2, !tbaa !27
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 10
call void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor)
%Command = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 11
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 12
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 14
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 18
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 20
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 21
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont7
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 22
invoke void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties)
to label %invoke.cont11 unwind label %lpad10
invoke.cont11: ; preds = %invoke.cont9
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 23
invoke void @_ZN14CUpdateOptionsC2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %UpdateOptions)
to label %invoke.cont13 unwind label %lpad12
invoke.cont13: ; preds = %invoke.cont11
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 24
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType)
to label %invoke.cont15 unwind label %lpad14
invoke.cont15: ; preds = %invoke.cont13
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 29
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method)
to label %invoke.cont17 unwind label %lpad16
invoke.cont17: ; preds = %invoke.cont15
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
br label %ehcleanup24
lpad2: ; preds = %invoke.cont
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
br label %ehcleanup23
lpad4: ; preds = %invoke.cont3
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
br label %ehcleanup22
lpad6: ; preds = %invoke.cont5
%9 = landingpad { i8*, i32 }
cleanup
%10 = extractvalue { i8*, i32 } %9, 0
store i8* %10, i8** %exn.slot, align 8
%11 = extractvalue { i8*, i32 } %9, 1
store i32 %11, i32* %ehselector.slot, align 4
br label %ehcleanup21
lpad8: ; preds = %invoke.cont7
%12 = landingpad { i8*, i32 }
cleanup
%13 = extractvalue { i8*, i32 } %12, 0
store i8* %13, i8** %exn.slot, align 8
%14 = extractvalue { i8*, i32 } %12, 1
store i32 %14, i32* %ehselector.slot, align 4
br label %ehcleanup20
lpad10: ; preds = %invoke.cont9
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
br label %ehcleanup19
lpad12: ; preds = %invoke.cont11
%18 = landingpad { i8*, i32 }
cleanup
%19 = extractvalue { i8*, i32 } %18, 0
store i8* %19, i8** %exn.slot, align 8
%20 = extractvalue { i8*, i32 } %18, 1
store i32 %20, i32* %ehselector.slot, align 4
br label %ehcleanup18
lpad14: ; preds = %invoke.cont13
%21 = landingpad { i8*, i32 }
cleanup
%22 = extractvalue { i8*, i32 } %21, 0
store i8* %22, i8** %exn.slot, align 8
%23 = extractvalue { i8*, i32 } %21, 1
store i32 %23, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad16: ; preds = %invoke.cont15
%24 = landingpad { i8*, i32 }
cleanup
%25 = extractvalue { i8*, i32 } %24, 0
store i8* %25, i8** %exn.slot, align 8
%26 = extractvalue { i8*, i32 } %24, 1
store i32 %26, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType) #16
br label %ehcleanup
ehcleanup: ; preds = %lpad16, %lpad14
call void @_ZN14CUpdateOptionsD2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %UpdateOptions) #16
br label %ehcleanup18
ehcleanup18: ; preds = %ehcleanup, %lpad12
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) #16
br label %ehcleanup19
ehcleanup19: ; preds = %ehcleanup18, %lpad10
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted) #16
br label %ehcleanup20
ehcleanup20: ; preds = %ehcleanup19, %lpad8
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted) #16
br label %ehcleanup21
ehcleanup21: ; preds = %ehcleanup20, %lpad6
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16
br label %ehcleanup22
ehcleanup22: ; preds = %ehcleanup21, %lpad4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16
br label %ehcleanup23
ehcleanup23: ; preds = %ehcleanup22, %lpad2
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName) #16
br label %ehcleanup24
ehcleanup24: ; preds = %ehcleanup23, %lpad
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor) #16
br label %eh.resume
eh.resume: ; preds = %ehcleanup24
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val25 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val25
}
declare dso_local void @_ZN25CArchiveCommandLineParserC1Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48)) unnamed_addr #3
declare dso_local void @_ZN25CArchiveCommandLineParser6Parse1ERK13CObjectVectorI11CStringBaseIwEER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48), %class.CObjectVector* nonnull align 8 dereferenceable(32), %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592)) #3
declare dso_local void @SetLargePageSize() #3
declare dso_local void @_ZN25CArchiveCommandLineParser6Parse2ER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48), %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592)) #3
; Function Attrs: nobuiltin allocsize(0)
declare dso_local nonnull i8* @_Znwm(i64) #5
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN7CCodecsC2Ev(%class.CCodecs* nonnull align 8 dereferenceable(48) %this) unnamed_addr #6 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CCodecs*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CCodecs* %this, %class.CCodecs** %this.addr, align 8, !tbaa !7
%this1 = load %class.CCodecs*, %class.CCodecs** %this.addr, align 8
%0 = bitcast %class.CCodecs* %this1 to %struct.IUnknown*
call void @_ZN8IUnknownC2Ev(%struct.IUnknown* nonnull align 8 dereferenceable(8) %0) #16
%1 = bitcast %class.CCodecs* %this1 to i8*
%2 = getelementptr inbounds i8, i8* %1, i64 8
%3 = bitcast i8* %2 to %class.CMyUnknownImp*
invoke void @_ZN13CMyUnknownImpC2Ev(%class.CMyUnknownImp* nonnull align 4 dereferenceable(4) %3)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%4 = bitcast %class.CCodecs* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [7 x i8*] }, { [7 x i8*] }* @_ZTV7CCodecs, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %4, align 8, !tbaa !93
%Formats = getelementptr inbounds %class.CCodecs, %class.CCodecs* %this1, i32 0, i32 2
invoke void @_ZN13CObjectVectorI10CArcInfoExEC2Ev(%class.CObjectVector.4* nonnull align 8 dereferenceable(32) %Formats)
to label %invoke.cont2 unwind label %lpad
invoke.cont2: ; preds = %invoke.cont
ret void
lpad: ; preds = %invoke.cont, %entry
%5 = landingpad { i8*, i32 }
cleanup
%6 = extractvalue { i8*, i32 } %5, 0
store i8* %6, i8** %exn.slot, align 8
%7 = extractvalue { i8*, i32 } %5, 1
store i32 %7, i32* %ehselector.slot, align 4
%8 = bitcast %class.CCodecs* %this1 to %struct.IUnknown*
call void @_ZN8IUnknownD2Ev(%struct.IUnknown* nonnull align 8 dereferenceable(8) %8) #16
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val3
}
; Function Attrs: nobuiltin nounwind
declare dso_local void @_ZdlPv(i8*) #7
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN9CMyComPtrI8IUnknownEC2EPS0_(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %this, %struct.IUnknown* %p) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CMyComPtr*, align 8
%p.addr = alloca %struct.IUnknown*, align 8
store %class.CMyComPtr* %this, %class.CMyComPtr** %this.addr, align 8, !tbaa !7
store %struct.IUnknown* %p, %struct.IUnknown** %p.addr, align 8, !tbaa !7
%this1 = load %class.CMyComPtr*, %class.CMyComPtr** %this.addr, align 8
%0 = load %struct.IUnknown*, %struct.IUnknown** %p.addr, align 8, !tbaa !7
%_p = getelementptr inbounds %class.CMyComPtr, %class.CMyComPtr* %this1, i32 0, i32 0
store %struct.IUnknown* %0, %struct.IUnknown** %_p, align 8, !tbaa !99
%cmp = icmp ne %struct.IUnknown* %0, null
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%1 = load %struct.IUnknown*, %struct.IUnknown** %p.addr, align 8, !tbaa !7
%2 = bitcast %struct.IUnknown* %1 to i32 (%struct.IUnknown*)***
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %2, align 8, !tbaa !93
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 1
%3 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8
%call = call i32 %3(%struct.IUnknown* nonnull align 8 dereferenceable(8) %1)
br label %if.end
if.end: ; preds = %if.then, %entry
ret void
}
declare dso_local i32 @_ZN7CCodecs4LoadEv(%class.CCodecs* nonnull align 8 dereferenceable(48)) #3
declare dso_local i8* @__cxa_allocate_exception(i64)
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %this, i32 %errorCode) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %struct.CSystemException*, align 8
%errorCode.addr = alloca i32, align 4
store %struct.CSystemException* %this, %struct.CSystemException** %this.addr, align 8, !tbaa !7
store i32 %errorCode, i32* %errorCode.addr, align 4, !tbaa !3
%this1 = load %struct.CSystemException*, %struct.CSystemException** %this.addr, align 8
%ErrorCode = getelementptr inbounds %struct.CSystemException, %struct.CSystemException* %this1, i32 0, i32 0
%0 = load i32, i32* %errorCode.addr, align 4, !tbaa !3
store i32 %0, i32* %ErrorCode, align 4, !tbaa !101
ret void
}
declare dso_local void @__cxa_free_exception(i8*)
declare dso_local void @__cxa_throw(i8*, i8*, i8*)
declare dso_local zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4)) #3
declare dso_local zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4)) #3
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.5*, align 8
store %class.CRecordVector.5* %this, %class.CRecordVector.5** %this.addr, align 8, !tbaa !7
%this1 = load %class.CRecordVector.5*, %class.CRecordVector.5** %this.addr, align 8
%0 = bitcast %class.CRecordVector.5* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 4)
%1 = bitcast %class.CRecordVector.5* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIiE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
ret void
}
declare dso_local zeroext i1 @_ZNK7CCodecs24FindFormatForArchiveTypeERK11CStringBaseIwER13CRecordVectorIiE(%class.CCodecs* nonnull align 8 dereferenceable(48), %class.CStringBase* nonnull align 8 dereferenceable(16), %class.CRecordVector.5* nonnull align 8 dereferenceable(32)) #3
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16), %class.CStdOutStream* (%class.CStdOutStream*)*) #3
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_Z4endlR13CStdOutStream(%class.CStdOutStream* nonnull align 8 dereferenceable(16)) #3
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i8*) #3
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(97) %struct.CArcInfoEx* @_ZN13CObjectVectorI10CArcInfoExEixEi(%class.CObjectVector.4* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.4*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector.4* %this, %class.CObjectVector.4** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.4*, %class.CObjectVector.4** %this.addr, align 8
%0 = bitcast %class.CObjectVector.4* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !7
%3 = bitcast i8* %2 to %struct.CArcInfoEx*
ret %struct.CArcInfoEx* %3
}
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i8 signext) #3
; Function Attrs: mustprogress uwtable
define internal void @_ZL11PrintStringR13CStdOutStreamRK11CStringBaseIwEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %stdStream, %class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 %size) #0 {
entry:
%stdStream.addr = alloca %class.CStdOutStream*, align 8
%s.addr = alloca %class.CStringBase*, align 8
%size.addr = alloca i32, align 4
%len = alloca i32, align 4
%i = alloca i32, align 4
store %class.CStdOutStream* %stdStream, %class.CStdOutStream** %stdStream.addr, align 8, !tbaa !7
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !7
store i32 %size, i32* %size.addr, align 4, !tbaa !3
%0 = bitcast i32* %len to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #16
%1 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%call = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %1)
store i32 %call, i32* %len, align 4, !tbaa !3
%2 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream.addr, align 8, !tbaa !7
%3 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%call1 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %3)
%call2 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %2, i32* %call1)
%4 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %4) #16
%5 = load i32, i32* %len, align 4, !tbaa !3
store i32 %5, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%6 = load i32, i32* %i, align 4, !tbaa !3
%7 = load i32, i32* %size.addr, align 4, !tbaa !3
%cmp = icmp slt i32 %6, %7
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%8 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %8) #16
br label %for.end
for.body: ; preds = %for.cond
%9 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream.addr, align 8, !tbaa !7
%call3 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %9, i8 signext 32)
br label %for.inc
for.inc: ; preds = %for.body
%10 = load i32, i32* %i, align 4, !tbaa !3
%inc = add nsw i32 %10, 1
store i32 %inc, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !103
for.end: ; preds = %for.cond.cleanup
%11 = bitcast i32* %len to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %11) #16
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
store i32* null, i32** %_chars, align 8, !tbaa !104
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 0, i32* %_length, align 8, !tbaa !105
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2
store i32 0, i32* %_capacity, align 4, !tbaa !106
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 3)
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(32) %struct.CArcExtInfo* @_ZNK13CObjectVectorI11CArcExtInfoEixEi(%class.CObjectVector.6* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.6*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector.6* %this, %class.CObjectVector.6** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.6*, %class.CObjectVector.6** %this.addr, align 8
%0 = bitcast %class.CObjectVector.6* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
%call = call nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !7
%3 = bitcast i8* %2 to %struct.CArcExtInfo*
ret %struct.CArcExtInfo* %3
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %0, i32 0, i32 1
%1 = load i32, i32* %_length, align 8, !tbaa !105
call void @_ZN11CStringBaseIwE10GrowLengthEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %1)
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%2 = load i32*, i32** %_chars, align 8, !tbaa !104
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%3 = load i32, i32* %_length2, align 8, !tbaa !105
%idx.ext = sext i32 %3 to i64
%add.ptr = getelementptr inbounds i32, i32* %2, i64 %idx.ext
%4 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%_chars3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %4, i32 0, i32 0
%5 = load i32*, i32** %_chars3, align 8, !tbaa !104
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %add.ptr, i32* %5)
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1
%7 = load i32, i32* %_length4, align 8, !tbaa !105
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%8 = load i32, i32* %_length5, align 8, !tbaa !105
%add = add nsw i32 %8, %7
store i32 %add, i32* %_length5, align 8, !tbaa !105
ret %class.CStringBase* %this1
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%0 = load i32, i32* %_length, align 8, !tbaa !105
%cmp = icmp eq i32 %0, 0
ret i1 %cmp
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %s) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca i32*, align 8
%len = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
store i32* %s, i32** %s.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = bitcast i32* %len to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #16
%1 = load i32*, i32** %s.addr, align 8, !tbaa !7
%call = call i32 @_Z11MyStringLenIwEiPKT_(i32* %1)
store i32 %call, i32* %len, align 4, !tbaa !3
%2 = load i32, i32* %len, align 4, !tbaa !3
call void @_ZN11CStringBaseIwE10GrowLengthEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2)
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars, align 8, !tbaa !104
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%4 = load i32, i32* %_length, align 8, !tbaa !105
%idx.ext = sext i32 %4 to i64
%add.ptr = getelementptr inbounds i32, i32* %3, i64 %idx.ext
%5 = load i32*, i32** %s.addr, align 8, !tbaa !7
%call2 = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %add.ptr, i32* %5)
%6 = load i32, i32* %len, align 4, !tbaa !3
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%7 = load i32, i32* %_length3, align 8, !tbaa !105
%add = add nsw i32 %7, %6
store i32 %add, i32* %_length3, align 8, !tbaa !105
%8 = bitcast i32* %len to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %8) #16
ret %class.CStringBase* %this1
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 signext %c) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%c.addr = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
store i32 %c, i32* %c.addr, align 4, !tbaa !107
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
call void @_ZN11CStringBaseIwE10GrowLengthEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 1)
%0 = load i32, i32* %c.addr, align 4, !tbaa !107
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%1 = load i32*, i32** %_chars, align 8, !tbaa !104
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%2 = load i32, i32* %_length, align 8, !tbaa !105
%idxprom = sext i32 %2 to i64
%arrayidx = getelementptr inbounds i32, i32* %1, i64 %idxprom
store i32 %0, i32* %arrayidx, align 4, !tbaa !107
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars2, align 8, !tbaa !104
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
%4 = load i32, i32* %_length3, align 8, !tbaa !105
%inc = add nsw i32 %4, 1
store i32 %inc, i32* %_length3, align 8, !tbaa !105
%idxprom4 = sext i32 %inc to i64
%arrayidx5 = getelementptr inbounds i32, i32* %3, i64 %idxprom4
store i32 0, i32* %arrayidx5, align 4, !tbaa !107
ret %class.CStringBase* %this1
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i64 @_ZNK7CBufferIhE11GetCapacityEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CBuffer*, align 8
store %class.CBuffer* %this, %class.CBuffer** %this.addr, align 8, !tbaa !7
%this1 = load %class.CBuffer*, %class.CBuffer** %this.addr, align 8
%_capacity = getelementptr inbounds %class.CBuffer, %class.CBuffer* %this1, i32 0, i32 1
%0 = load i64, i64* %_capacity, align 8, !tbaa !109
ret i64 %0
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i8* @_ZNK7CBufferIhEcvPKhEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CBuffer*, align 8
store %class.CBuffer* %this, %class.CBuffer** %this.addr, align 8, !tbaa !7
%this1 = load %class.CBuffer*, %class.CBuffer** %this.addr, align 8
%_items = getelementptr inbounds %class.CBuffer, %class.CBuffer* %this1, i32 0, i32 2
%0 = load i8*, i8** %_items, align 8, !tbaa !110
ret i8* %0
}
; Function Attrs: inlinehint mustprogress nounwind uwtable
define internal signext i8 @_ZL6GetHexh(i8 zeroext %value) #9 {
entry:
%value.addr = alloca i8, align 1
store i8 %value, i8* %value.addr, align 1, !tbaa !40
%0 = load i8, i8* %value.addr, align 1, !tbaa !40
%conv = zext i8 %0 to i32
%cmp = icmp slt i32 %conv, 10
br i1 %cmp, label %cond.true, label %cond.false
cond.true: ; preds = %entry
%1 = load i8, i8* %value.addr, align 1, !tbaa !40
%conv1 = zext i8 %1 to i32
%add = add nsw i32 48, %conv1
br label %cond.end
cond.false: ; preds = %entry
%2 = load i8, i8* %value.addr, align 1, !tbaa !40
%conv2 = zext i8 %2 to i32
%sub = sub nsw i32 %conv2, 10
%add3 = add nsw i32 65, %sub
br label %cond.end
cond.end: ; preds = %cond.false, %cond.true
%cond = phi i32 [ %add, %cond.true ], [ %add3, %cond.false ]
%conv4 = trunc i32 %cond to i8
ret i8 %conv4
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !104
%isnull = icmp eq i32* %0, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %entry
%1 = bitcast i32* %0 to i8*
call void @_ZdaPv(i8* %1) #19
br label %delete.end
delete.end: ; preds = %delete.notnull, %entry
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %s) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca i32*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
store i32* %s, i32** %s.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !104
%1 = load i32*, i32** %s.addr, align 8, !tbaa !7
%call = call i32 @_Z21MyStringCompareNoCasePKwS0_(i32* %0, i32* %1)
ret i32 %call
}
declare dso_local i32 @_Z11CrcBenchConP8_IO_FILEjjj(%struct._IO_FILE*, i32, i32, i32) #3
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local %struct._IO_FILE* @_ZN13CStdOutStreamcvP8_IO_FILEEv(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CStdOutStream*, align 8
store %class.CStdOutStream* %this, %class.CStdOutStream** %this.addr, align 8, !tbaa !7
%this1 = load %class.CStdOutStream*, %class.CStdOutStream** %this.addr, align 8
%_stream = getelementptr inbounds %class.CStdOutStream, %class.CStdOutStream* %this1, i32 0, i32 1
%0 = load %struct._IO_FILE*, %struct._IO_FILE** %_stream, align 8, !tbaa !111
ret %struct._IO_FILE* %0
}
declare dso_local i32 @_Z12LzmaBenchConP8_IO_FILEjjj(%struct._IO_FILE*, i32, i32, i32) #3
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN23CExtractCallbackConsoleC2Ev(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CExtractCallbackConsole*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CExtractCallbackConsole* %this, %class.CExtractCallbackConsole** %this.addr, align 8, !tbaa !7
%this1 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %this.addr, align 8
%0 = bitcast %class.CExtractCallbackConsole* %this1 to %struct.IExtractCallbackUI*
call void @_ZN18IExtractCallbackUIC2Ev(%struct.IExtractCallbackUI* nonnull align 8 dereferenceable(8) %0) #16
%1 = bitcast %class.CExtractCallbackConsole* %this1 to i8*
%2 = getelementptr inbounds i8, i8* %1, i64 8
%3 = bitcast i8* %2 to %struct.ICryptoGetTextPassword*
call void @_ZN22ICryptoGetTextPasswordC2Ev(%struct.ICryptoGetTextPassword* nonnull align 8 dereferenceable(8) %3) #16
%4 = bitcast %class.CExtractCallbackConsole* %this1 to i8*
%5 = getelementptr inbounds i8, i8* %4, i64 16
%6 = bitcast i8* %5 to %class.CMyUnknownImp*
call void @_ZN13CMyUnknownImpC2Ev(%class.CMyUnknownImp* nonnull align 4 dereferenceable(4) %6)
%7 = bitcast %class.CExtractCallbackConsole* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [19 x i8*], [8 x i8*] }, { [19 x i8*], [8 x i8*] }* @_ZTV23CExtractCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %7, align 8, !tbaa !93
%8 = bitcast %class.CExtractCallbackConsole* %this1 to i8*
%add.ptr = getelementptr inbounds i8, i8* %8, i64 8
%9 = bitcast i8* %add.ptr to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [19 x i8*], [8 x i8*] }, { [19 x i8*], [8 x i8*] }* @_ZTV23CExtractCallbackConsole, i32 0, inrange i32 1, i32 2) to i32 (...)**), i32 (...)*** %9, align 8, !tbaa !93
%Password = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 4
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
ret void
lpad: ; preds = %entry
%10 = landingpad { i8*, i32 }
cleanup
%11 = extractvalue { i8*, i32 } %10, 0
store i8* %11, i8** %exn.slot, align 8
%12 = extractvalue { i8*, i32 } %10, 1
store i32 %12, i32* %ehselector.slot, align 4
%13 = bitcast %class.CExtractCallbackConsole* %this1 to i8*
%14 = getelementptr inbounds i8, i8* %13, i64 8
%15 = bitcast i8* %14 to %struct.ICryptoGetTextPassword*
call void bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to void (%struct.ICryptoGetTextPassword*)*)(%struct.ICryptoGetTextPassword* nonnull align 8 dereferenceable(8) %15) #16
%16 = bitcast %class.CExtractCallbackConsole* %this1 to %struct.IExtractCallbackUI*
call void bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to void (%struct.IExtractCallbackUI*)*)(%struct.IExtractCallbackUI* nonnull align 8 dereferenceable(8) %16) #16
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val2
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackEC2EPS0_(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %this, %struct.IFolderArchiveExtractCallback* %p) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CMyComPtr.7*, align 8
%p.addr = alloca %struct.IFolderArchiveExtractCallback*, align 8
store %class.CMyComPtr.7* %this, %class.CMyComPtr.7** %this.addr, align 8, !tbaa !7
store %struct.IFolderArchiveExtractCallback* %p, %struct.IFolderArchiveExtractCallback** %p.addr, align 8, !tbaa !7
%this1 = load %class.CMyComPtr.7*, %class.CMyComPtr.7** %this.addr, align 8
%0 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %p.addr, align 8, !tbaa !7
%_p = getelementptr inbounds %class.CMyComPtr.7, %class.CMyComPtr.7* %this1, i32 0, i32 0
store %struct.IFolderArchiveExtractCallback* %0, %struct.IFolderArchiveExtractCallback** %_p, align 8, !tbaa !113
%cmp = icmp ne %struct.IFolderArchiveExtractCallback* %0, null
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%1 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %p.addr, align 8, !tbaa !7
%2 = bitcast %struct.IFolderArchiveExtractCallback* %1 to %struct.IUnknown*
%3 = bitcast %struct.IUnknown* %2 to i32 (%struct.IUnknown*)***
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %3, align 8, !tbaa !93
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 1
%4 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8
%call = call i32 %4(%struct.IUnknown* nonnull align 8 dereferenceable(8) %2)
br label %if.end
if.end: ; preds = %if.then, %entry
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #0 comdat align 2 {
entry:
%retval = alloca %class.CStringBase*, align 8
%this.addr = alloca %class.CStringBase*, align 8
%s.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%cmp = icmp eq %class.CStringBase* %0, %this1
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8
br label %return
if.end: ; preds = %entry
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1)
%1 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %1, i32 0, i32 1
%2 = load i32, i32* %_length, align 8, !tbaa !105
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2)
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars, align 8, !tbaa !104
%4 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %4, i32 0, i32 0
%5 = load i32*, i32** %_chars2, align 8, !tbaa !104
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %5)
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1
%7 = load i32, i32* %_length3, align 8, !tbaa !105
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 %7, i32* %_length4, align 8, !tbaa !105
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8
br label %return
return: ; preds = %if.end, %if.then
%8 = load %class.CStringBase*, %class.CStringBase** %retval, align 8
ret %class.CStringBase* %8
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local void @_ZN23CExtractCallbackConsole4InitEv(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CExtractCallbackConsole*, align 8
store %class.CExtractCallbackConsole* %this, %class.CExtractCallbackConsole** %this.addr, align 8, !tbaa !7
%this1 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %this.addr, align 8
%NumArchives = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 5
store i64 0, i64* %NumArchives, align 8, !tbaa !67
%NumArchiveErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 6
store i64 0, i64* %NumArchiveErrors, align 8, !tbaa !68
%NumFileErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 7
store i64 0, i64* %NumFileErrors, align 8, !tbaa !69
%NumFileErrorsInCurrentArchive = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 8
store i64 0, i64* %NumFileErrorsInCurrentArchive, align 8, !tbaa !115
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN20COpenCallbackConsoleC2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.COpenCallbackConsole*, align 8
store %class.COpenCallbackConsole* %this, %class.COpenCallbackConsole** %this.addr, align 8, !tbaa !7
%this1 = load %class.COpenCallbackConsole*, %class.COpenCallbackConsole** %this.addr, align 8
%0 = bitcast %class.COpenCallbackConsole* %this1 to %struct.IOpenCallbackUI*
call void @_ZN15IOpenCallbackUIC2Ev(%struct.IOpenCallbackUI* nonnull align 8 dereferenceable(8) %0) #16
%1 = bitcast %class.COpenCallbackConsole* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [9 x i8*] }, { [9 x i8*] }* @_ZTV20COpenCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
%PasswordIsDefined = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 2
store i8 0, i8* %PasswordIsDefined, align 8, !tbaa !53
%PasswordWasAsked = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 3
store i8 0, i8* %PasswordWasAsked, align 1, !tbaa !116
%Password = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 4
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password)
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN15CExtractOptionsC2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CExtractOptions*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CExtractOptions* %this, %struct.CExtractOptions** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CExtractOptions*, %struct.CExtractOptions** %this.addr, align 8
%StdInMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 0
store i8 0, i8* %StdInMode, align 8, !tbaa !55
%StdOutMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 1
store i8 0, i8* %StdOutMode, align 1, !tbaa !58
%YesToAll = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 2
store i8 0, i8* %YesToAll, align 2, !tbaa !64
%TestMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 3
store i8 0, i8* %TestMode, align 1, !tbaa !60
%CalcCrc = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 4
store i8 0, i8* %CalcCrc, align 4, !tbaa !66
%PathMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 5
store i32 0, i32* %PathMode, align 8, !tbaa !59
%OverwriteMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 6
store i32 0, i32* %OverwriteMode, align 4, !tbaa !62
%OutputDir = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 7
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir)
%Properties = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 8
invoke void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val2
}
declare dso_local i32 @_ZNK15CArchiveCommand11GetPathModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4)) #3
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local zeroext i1 @_ZNK15CArchiveCommand10IsTestModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %struct.CArchiveCommand*, align 8
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0
%0 = load i32, i32* %CommandType, align 4, !tbaa !117
%cmp = icmp eq i32 %0, 3
ret i1 %cmp
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(32) %class.CObjectVector.1* @_ZN13CObjectVectorI9CPropertyEaSERKS1_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %v) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.1*, align 8
%v.addr = alloca %class.CObjectVector.1*, align 8
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7
store %class.CObjectVector.1* %v, %class.CObjectVector.1** %v.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %v.addr, align 8, !tbaa !7
%call = call nonnull align 8 dereferenceable(32) %class.CObjectVector.1* @_ZN13CObjectVectorI9CPropertyEpLERKS1_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this1, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %1)
ret %class.CObjectVector.1* %call
}
declare dso_local i32 @_Z18DecompressArchivesP7CCodecsRK13CRecordVectorIiER13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeERK15CExtractOptionsP15IOpenCallbackUIP18IExtractCallbackUIRS7_R15CDecompressStat(%class.CCodecs*, %class.CRecordVector.5* nonnull align 8 dereferenceable(32), %class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CObjectVector* nonnull align 8 dereferenceable(32), %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120), %struct.CExtractOptions* nonnull align 8 dereferenceable(64), %struct.IOpenCallbackUI*, %struct.IExtractCallbackUI*, %class.CStringBase* nonnull align 8 dereferenceable(16), %struct.CDecompressStat* nonnull align 8 dereferenceable(48)) #3
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%call = call nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEEixEi(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1, i32 0)
ret %"struct.NWildcard::CPair"* %call
}
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i32*) #3
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%0 = load i32*, i32** %_chars, align 8, !tbaa !104
ret i32* %0
}
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i64) #3
declare dso_local void @_Z27ConvertUInt32ToHexWithZerosjPc(i32, i8*) #3
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN15CExtractOptionsD2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CExtractOptions*, align 8
store %struct.CExtractOptions* %this, %struct.CExtractOptions** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CExtractOptions*, %struct.CExtractOptions** %this.addr, align 8
%Properties = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 8
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties) #16
%OutputDir = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 7
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.COpenCallbackConsole*, align 8
store %class.COpenCallbackConsole* %this, %class.COpenCallbackConsole** %this.addr, align 8, !tbaa !7
%this1 = load %class.COpenCallbackConsole*, %class.COpenCallbackConsole** %this.addr, align 8
%0 = bitcast %class.COpenCallbackConsole* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [9 x i8*] }, { [9 x i8*] }* @_ZTV20COpenCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%Password = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CMyComPtr.7*, align 8
store %class.CMyComPtr.7* %this, %class.CMyComPtr.7** %this.addr, align 8, !tbaa !7
%this1 = load %class.CMyComPtr.7*, %class.CMyComPtr.7** %this.addr, align 8
%_p = getelementptr inbounds %class.CMyComPtr.7, %class.CMyComPtr.7* %this1, i32 0, i32 0
%0 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %_p, align 8, !tbaa !113
%tobool = icmp ne %struct.IFolderArchiveExtractCallback* %0, null
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %entry
%_p2 = getelementptr inbounds %class.CMyComPtr.7, %class.CMyComPtr.7* %this1, i32 0, i32 0
%1 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %_p2, align 8, !tbaa !113
%2 = bitcast %struct.IFolderArchiveExtractCallback* %1 to %struct.IUnknown*
%3 = bitcast %struct.IUnknown* %2 to i32 (%struct.IUnknown*)***
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %3, align 8, !tbaa !93
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 2
%4 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8
%call = invoke i32 %4(%struct.IUnknown* nonnull align 8 dereferenceable(8) %2)
to label %invoke.cont unwind label %terminate.lpad
invoke.cont: ; preds = %if.then
br label %if.end
if.end: ; preds = %invoke.cont, %entry
ret void
terminate.lpad: ; preds = %if.then
%5 = landingpad { i8*, i32 }
catch i8* null
%6 = extractvalue { i8*, i32 } %5, 0
call void @__clang_call_terminate(i8* %6) #20
unreachable
}
declare dso_local i32 @_Z12ListArchivesP7CCodecsRK13CRecordVectorIiEbR13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeEbbRbRS7_Ry(%class.CCodecs*, %class.CRecordVector.5* nonnull align 8 dereferenceable(32), i1 zeroext, %class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CObjectVector* nonnull align 8 dereferenceable(32), %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120), i1 zeroext, i1 zeroext, i8* nonnull align 1 dereferenceable(1), %class.CStringBase* nonnull align 8 dereferenceable(16), i64* nonnull align 8 dereferenceable(8)) #3
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %chars) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CStringBase*, align 8
%chars.addr = alloca i32*, align 8
%length = alloca i32, align 4
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7
store i32* %chars, i32** %chars.addr, align 8, !tbaa !7
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1)
%0 = bitcast i32* %length to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #16
%1 = load i32*, i32** %chars.addr, align 8, !tbaa !7
%call = call i32 @_Z11MyStringLenIwEiPKT_(i32* %1)
store i32 %call, i32* %length, align 4, !tbaa !3
%2 = load i32, i32* %length, align 4, !tbaa !3
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2)
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0
%3 = load i32*, i32** %_chars, align 8, !tbaa !104
%4 = load i32*, i32** %chars.addr, align 8, !tbaa !7
%call2 = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %4)
%5 = load i32, i32* %length, align 4, !tbaa !3
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1
store i32 %5, i32* %_length, align 8, !tbaa !105
%6 = bitcast i32* %length to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #16
ret %class.CStringBase* %this1
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN22CUpdateCallbackConsoleC2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CUpdateCallbackConsole*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CUpdateCallbackConsole* %this, %class.CUpdateCallbackConsole** %this.addr, align 8, !tbaa !7
%this1 = load %class.CUpdateCallbackConsole*, %class.CUpdateCallbackConsole** %this.addr, align 8
%0 = bitcast %class.CUpdateCallbackConsole* %this1 to %struct.IUpdateCallbackUI2*
call void @_ZN18IUpdateCallbackUI2C2Ev(%struct.IUpdateCallbackUI2* nonnull align 8 dereferenceable(8) %0) #16
%1 = bitcast %class.CUpdateCallbackConsole* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [20 x i8*] }, { [20 x i8*] }* @_ZTV22CUpdateCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
%m_PercentPrinter = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 1
call void @_ZN15CPercentPrinterC2Ey(%class.CPercentPrinter* nonnull align 8 dereferenceable(48) %m_PercentPrinter, i64 65536)
%m_WarningsMode = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 4
store i8 0, i8* %m_WarningsMode, align 2, !tbaa !118
%EnablePercents = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 6
store i8 1, i8* %EnablePercents, align 8, !tbaa !80
%StdOutMode = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 7
store i8 0, i8* %StdOutMode, align 1, !tbaa !87
%PasswordIsDefined = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 8
store i8 0, i8* %PasswordIsDefined, align 2, !tbaa !84
%Password = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 9
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password)
%AskPassword = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 10
store i8 0, i8* %AskPassword, align 8, !tbaa !85
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%CantFindFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 13
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
%CantFindCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 14
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
ret void
lpad: ; preds = %entry
%2 = landingpad { i8*, i32 }
cleanup
%3 = extractvalue { i8*, i32 } %2, 0
store i8* %3, i8** %exn.slot, align 8
%4 = extractvalue { i8*, i32 } %2, 1
store i32 %4, i32* %ehselector.slot, align 4
br label %ehcleanup9
lpad2: ; preds = %invoke.cont
%5 = landingpad { i8*, i32 }
cleanup
%6 = extractvalue { i8*, i32 } %5, 0
store i8* %6, i8** %exn.slot, align 8
%7 = extractvalue { i8*, i32 } %5, 1
store i32 %7, i32* %ehselector.slot, align 4
br label %ehcleanup8
lpad4: ; preds = %invoke.cont3
%8 = landingpad { i8*, i32 }
cleanup
%9 = extractvalue { i8*, i32 } %8, 0
store i8* %9, i8** %exn.slot, align 8
%10 = extractvalue { i8*, i32 } %8, 1
store i32 %10, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad6: ; preds = %invoke.cont5
%11 = landingpad { i8*, i32 }
cleanup
%12 = extractvalue { i8*, i32 } %11, 0
store i8* %12, i8** %exn.slot, align 8
%13 = extractvalue { i8*, i32 } %11, 1
store i32 %13, i32* %ehselector.slot, align 4
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles) #16
br label %ehcleanup
ehcleanup: ; preds = %lpad6, %lpad4
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes) #16
br label %ehcleanup8
ehcleanup8: ; preds = %ehcleanup, %lpad2
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles) #16
br label %ehcleanup9
ehcleanup9: ; preds = %ehcleanup8, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16
br label %eh.resume
eh.resume: ; preds = %ehcleanup9
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val10 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val10
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN22CUpdateCallbackConsole4InitEP13CStdOutStream(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this, %class.CStdOutStream* %outStream) #0 comdat align 2 {
entry:
%this.addr = alloca %class.CUpdateCallbackConsole*, align 8
%outStream.addr = alloca %class.CStdOutStream*, align 8
store %class.CUpdateCallbackConsole* %this, %class.CUpdateCallbackConsole** %this.addr, align 8, !tbaa !7
store %class.CStdOutStream* %outStream, %class.CStdOutStream** %outStream.addr, align 8, !tbaa !7
%this1 = load %class.CUpdateCallbackConsole*, %class.CUpdateCallbackConsole** %this.addr, align 8
%m_NeedBeClosed = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 2
store i8 0, i8* %m_NeedBeClosed, align 8, !tbaa !119
%m_NeedNewLine = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 3
store i8 0, i8* %m_NeedNewLine, align 1, !tbaa !120
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11
%0 = bitcast %class.CObjectVector* %FailedFiles to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0)
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12
%1 = bitcast %class.CRecordVector.5* %FailedCodes to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
%2 = load %class.CStdOutStream*, %class.CStdOutStream** %outStream.addr, align 8, !tbaa !7
%OutStream = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 5
store %class.CStdOutStream* %2, %class.CStdOutStream** %OutStream, align 8, !tbaa !121
%3 = load %class.CStdOutStream*, %class.CStdOutStream** %outStream.addr, align 8, !tbaa !7
%m_PercentPrinter = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 1
%OutStream2 = getelementptr inbounds %class.CPercentPrinter, %class.CPercentPrinter* %m_PercentPrinter, i32 0, i32 5
store %class.CStdOutStream* %3, %class.CStdOutStream** %OutStream2, align 8, !tbaa !122
ret void
}
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN16CUpdateErrorInfoC2Ev(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %this) unnamed_addr #6 comdat align 2 {
entry:
%this.addr = alloca %struct.CUpdateErrorInfo*, align 8
store %struct.CUpdateErrorInfo* %this, %struct.CUpdateErrorInfo** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CUpdateErrorInfo*, %struct.CUpdateErrorInfo** %this.addr, align 8
%0 = bitcast %struct.CUpdateErrorInfo* %this1 to %struct.CErrorInfo*
call void @_ZN10CErrorInfoC2Ev(%struct.CErrorInfo* nonnull align 8 dereferenceable(56) %0)
ret void
}
declare dso_local zeroext i1 @_ZN14CUpdateOptions4InitEPK7CCodecsRK13CRecordVectorIiERK11CStringBaseIwE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320), %class.CCodecs*, %class.CRecordVector.5* nonnull align 8 dereferenceable(32), %class.CStringBase* nonnull align 8 dereferenceable(16)) #3
declare dso_local i32 @_Z13UpdateArchiveP7CCodecsRKN9NWildcard7CCensorER14CUpdateOptionsR16CUpdateErrorInfoP15IOpenCallbackUIP18IUpdateCallbackUI2(%class.CCodecs*, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32), %struct.CUpdateOptions* nonnull align 8 dereferenceable(320), %struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56), %struct.IOpenCallbackUI*, %struct.IUpdateCallbackUI2*) #3
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, i32 %index) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.2*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !7
%3 = bitcast i8* %2 to %struct.CUpdateArchiveCommand*
ret %struct.CUpdateArchiveCommand* %3
}
declare dso_local void @_Z12myAddExeFlagRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #3
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZNK12CArchivePath12GetFinalPathEv(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) #0 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%result.ptr = alloca i8*, align 8
%this.addr = alloca %struct.CArchivePath*, align 8
%nrvo = alloca i1, align 1
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
%ref.tmp = alloca %class.CStringBase, align 8
%ref.tmp2 = alloca %class.CStringBase, align 8
%0 = bitcast %class.CStringBase* %agg.result to i8*
store i8* %0, i8** %result.ptr, align 8
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8
store i1 false, i1* %nrvo, align 1
call void @_ZNK12CArchivePath17GetPathWithoutExtEv(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %this1)
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3
%call = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
br i1 %call, label %if.end, label %if.then
if.then: ; preds = %invoke.cont
%1 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) #16
%2 = bitcast %class.CStringBase* %ref.tmp2 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %2) #16
invoke void @_ZN11CStringBaseIwEC2Ew(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2, i32 signext 46)
to label %invoke.cont4 unwind label %lpad3
invoke.cont4: ; preds = %if.then
%BaseExtension5 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3
invoke void @_ZplIwE11CStringBaseIT_ERKS2_S4_(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2, %class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension5)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont4
%call10 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont7
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2) #16
%3 = bitcast %class.CStringBase* %ref.tmp2 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) #16
%4 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %4) #16
br label %if.end
lpad: ; preds = %entry
%5 = landingpad { i8*, i32 }
cleanup
%6 = extractvalue { i8*, i32 } %5, 0
store i8* %6, i8** %exn.slot, align 8
%7 = extractvalue { i8*, i32 } %5, 1
store i32 %7, i32* %ehselector.slot, align 4
br label %ehcleanup13
lpad3: ; preds = %if.then
%8 = landingpad { i8*, i32 }
cleanup
%9 = extractvalue { i8*, i32 } %8, 0
store i8* %9, i8** %exn.slot, align 8
%10 = extractvalue { i8*, i32 } %8, 1
store i32 %10, i32* %ehselector.slot, align 4
br label %ehcleanup11
lpad6: ; preds = %invoke.cont4
%11 = landingpad { i8*, i32 }
cleanup
%12 = extractvalue { i8*, i32 } %11, 0
store i8* %12, i8** %exn.slot, align 8
%13 = extractvalue { i8*, i32 } %11, 1
store i32 %13, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad8: ; preds = %invoke.cont7
%14 = landingpad { i8*, i32 }
cleanup
%15 = extractvalue { i8*, i32 } %14, 0
store i8* %15, i8** %exn.slot, align 8
%16 = extractvalue { i8*, i32 } %14, 1
store i32 %16, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16
br label %ehcleanup
ehcleanup: ; preds = %lpad8, %lpad6
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2) #16
br label %ehcleanup11
ehcleanup11: ; preds = %ehcleanup, %lpad3
%17 = bitcast %class.CStringBase* %ref.tmp2 to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %17) #16
%18 = bitcast %class.CStringBase* %ref.tmp to i8*
call void @llvm.lifetime.end.p0i8(i64 16, i8* %18) #16
br label %ehcleanup13
if.end: ; preds = %invoke.cont9, %invoke.cont
store i1 true, i1* %nrvo, align 1
%nrvo.val = load i1, i1* %nrvo, align 1
br i1 %nrvo.val, label %nrvo.skipdtor, label %nrvo.unused
nrvo.unused: ; preds = %if.end
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result) #16
br label %nrvo.skipdtor
nrvo.skipdtor: ; preds = %nrvo.unused, %if.end
ret void
ehcleanup13: ; preds = %ehcleanup11, %lpad
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result) #16
br label %eh.resume
eh.resume: ; preds = %ehcleanup13
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val14
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%index.addr = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1)
%2 = load i8*, i8** %call, align 8, !tbaa !7
%3 = bitcast i8* %2 to %class.CStringBase*
ret %class.CStringBase* %3
}
; Function Attrs: inlinehint mustprogress uwtable
define linkonce_odr dso_local void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, i32 %messageID) #11 comdat {
entry:
%result.ptr = alloca i8*, align 8
%messageID.addr = alloca i32, align 4
%0 = bitcast %class.CStringBase* %agg.result to i8*
store i8* %0, i8** %result.ptr, align 8
store i32 %messageID, i32* %messageID.addr, align 4, !tbaa !3
%1 = load i32, i32* %messageID.addr, align 4, !tbaa !3
call void @_ZN8NWindows6NError15MyFormatMessageEj(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, i32 %1)
ret void
}
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %this, i32 %index) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector.5*, align 8
%index.addr = alloca i32, align 4
store %class.CRecordVector.5* %this, %class.CRecordVector.5** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
%this1 = load %class.CRecordVector.5*, %class.CRecordVector.5** %this.addr, align 8
%0 = bitcast %class.CRecordVector.5* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3
%1 = load i8*, i8** %_items, align 8, !tbaa !97
%2 = bitcast i8* %1 to i32*
%3 = load i32, i32* %index.addr, align 4, !tbaa !3
%idxprom = sext i32 %3 to i64
%arrayidx = getelementptr inbounds i32, i32* %2, i64 %idxprom
ret i32* %arrayidx
}
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i32) #3
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN10CErrorInfoD2Ev(%struct.CErrorInfo* nonnull align 8 dereferenceable(56) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CErrorInfo*, align 8
store %struct.CErrorInfo* %this, %struct.CErrorInfo** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CErrorInfo*, %struct.CErrorInfo** %this.addr, align 8
%Message = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %this1, i32 0, i32 3
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Message) #16
%FileName2 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %this1, i32 0, i32 2
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName2) #16
%FileName = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %this1, i32 0, i32 1
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName) #16
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN22CUpdateCallbackConsoleD2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CUpdateCallbackConsole*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CUpdateCallbackConsole* %this, %class.CUpdateCallbackConsole** %this.addr, align 8, !tbaa !7
%this1 = load %class.CUpdateCallbackConsole*, %class.CUpdateCallbackConsole** %this.addr, align 8
%0 = bitcast %class.CUpdateCallbackConsole* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [20 x i8*] }, { [20 x i8*] }* @_ZTV22CUpdateCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%1 = bitcast %class.CUpdateCallbackConsole* %this1 to i32 (%class.CUpdateCallbackConsole*)***
%vtable = load i32 (%class.CUpdateCallbackConsole*)**, i32 (%class.CUpdateCallbackConsole*)*** %1, align 8, !tbaa !93
%vfn = getelementptr inbounds i32 (%class.CUpdateCallbackConsole*)*, i32 (%class.CUpdateCallbackConsole*)** %vtable, i64 4
%2 = load i32 (%class.CUpdateCallbackConsole*)*, i32 (%class.CUpdateCallbackConsole*)** %vfn, align 8
%call = invoke i32 %2(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%CantFindCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 14
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes) #16
%CantFindFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 13
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles) #16
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes) #16
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles) #16
%Password = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 9
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%CantFindCodes2 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 14
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes2) #16
%CantFindFiles3 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 13
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles3) #16
%FailedCodes4 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes4) #16
%FailedFiles5 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles5) #16
%Password6 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 9
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password6) #16
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #20
unreachable
}
; Function Attrs: mustprogress uwtable
define internal void @_ZL16PrintHelpAndExitR13CStdOutStream(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %s) #0 {
entry:
%s.addr = alloca %class.CStdOutStream*, align 8
store %class.CStdOutStream* %s, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%0 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%1 = load i8*, i8** @_ZL11kHelpString, align 8, !tbaa !7
%call = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %0, i8* %1)
%2 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7
%3 = load i8*, i8** @_ZL17kUserErrorMessage, align 8, !tbaa !7
call void @_ZL28ShowMessageAndThrowExceptionR13CStdOutStreamPKcN9NExitCode5EEnumE(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %2, i8* %3, i32 7)
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN9CMyComPtrI8IUnknownED2Ev(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CMyComPtr*, align 8
store %class.CMyComPtr* %this, %class.CMyComPtr** %this.addr, align 8, !tbaa !7
%this1 = load %class.CMyComPtr*, %class.CMyComPtr** %this.addr, align 8
%_p = getelementptr inbounds %class.CMyComPtr, %class.CMyComPtr* %this1, i32 0, i32 0
%0 = load %struct.IUnknown*, %struct.IUnknown** %_p, align 8, !tbaa !99
%tobool = icmp ne %struct.IUnknown* %0, null
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %entry
%_p2 = getelementptr inbounds %class.CMyComPtr, %class.CMyComPtr* %this1, i32 0, i32 0
%1 = load %struct.IUnknown*, %struct.IUnknown** %_p2, align 8, !tbaa !99
%2 = bitcast %struct.IUnknown* %1 to i32 (%struct.IUnknown*)***
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %2, align 8, !tbaa !93
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 2
%3 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8
%call = invoke i32 %3(%struct.IUnknown* nonnull align 8 dereferenceable(8) %1)
to label %invoke.cont unwind label %terminate.lpad
invoke.cont: ; preds = %if.then
br label %if.end
if.end: ; preds = %invoke.cont, %entry
ret void
terminate.lpad: ; preds = %if.then
%4 = landingpad { i8*, i32 }
catch i8* null
%5 = extractvalue { i8*, i32 } %4, 0
call void @__clang_call_terminate(i8* %5) #20
unreachable
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN25CArchiveCommandLineParserD2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !7
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0
call void @_ZN18NCommandLineParser7CParserD1Ev(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser) #16
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN26CArchiveCommandLineOptionsD2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CArchiveCommandLineOptions*, align 8
store %struct.CArchiveCommandLineOptions* %this, %struct.CArchiveCommandLineOptions** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %this.addr, align 8
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 29
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method) #16
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 24
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType) #16
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 23
call void @_ZN14CUpdateOptionsD2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %UpdateOptions) #16
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 22
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) #16
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 21
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted) #16
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 20
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted) #16
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 18
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 14
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 12
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName) #16
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 10
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor) #16
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8
%0 = bitcast %class.CObjectVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%1 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #20
unreachable
}
declare dso_local i8* @_Z12my_getlocalev() #3
declare dso_local i32 @_ZN8NWindows7NSystem21GetNumberOfProcessorsEv() #3
; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #6 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !7
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs)
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.1*, align 8
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector.1* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI9CPropertyE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN14CUpdateOptionsC2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CUpdateOptions*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CUpdateOptions* %this, %struct.CUpdateOptions** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %this.addr, align 8
%MethodMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 0
call void @_ZN22CCompressionMethodModeC2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %MethodMode)
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 1
invoke void @_ZN13CObjectVectorI21CUpdateArchiveCommandEC2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%UpdateArchiveItself = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 2
store i8 1, i8* %UpdateArchiveItself, align 8, !tbaa !123
%ArchivePath = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 3
invoke void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%SfxMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 4
store i8 0, i8* %SfxMode, align 8, !tbaa !78
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 5
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
%OpenShareForWrite = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 6
store i8 0, i8* %OpenShareForWrite, align 8, !tbaa !124
%StdInMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 7
store i8 0, i8* %StdInMode, align 1, !tbaa !125
%StdInFileName = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 8
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
%StdOutMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 9
store i8 0, i8* %StdOutMode, align 8, !tbaa !86
%EMailMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 10
store i8 0, i8* %EMailMode, align 1, !tbaa !126
%EMailRemoveAfter = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 11
store i8 0, i8* %EMailRemoveAfter, align 2, !tbaa !127
%EMailAddress = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 12
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont7
%WorkingDir = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 13
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir)
to label %invoke.cont11 unwind label %lpad10
invoke.cont11: ; preds = %invoke.cont9
%VolumesSizes = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 14
invoke void @_ZN13CRecordVectorIyEC2Ev(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %VolumesSizes)
to label %invoke.cont13 unwind label %lpad12
invoke.cont13: ; preds = %invoke.cont11
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
br label %ehcleanup18
lpad2: ; preds = %invoke.cont
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
br label %ehcleanup17
lpad4: ; preds = %invoke.cont3
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
br label %ehcleanup16
lpad6: ; preds = %invoke.cont5
%9 = landingpad { i8*, i32 }
cleanup
%10 = extractvalue { i8*, i32 } %9, 0
store i8* %10, i8** %exn.slot, align 8
%11 = extractvalue { i8*, i32 } %9, 1
store i32 %11, i32* %ehselector.slot, align 4
br label %ehcleanup15
lpad8: ; preds = %invoke.cont7
%12 = landingpad { i8*, i32 }
cleanup
%13 = extractvalue { i8*, i32 } %12, 0
store i8* %13, i8** %exn.slot, align 8
%14 = extractvalue { i8*, i32 } %12, 1
store i32 %14, i32* %ehselector.slot, align 4
br label %ehcleanup14
lpad10: ; preds = %invoke.cont9
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad12: ; preds = %invoke.cont11
%18 = landingpad { i8*, i32 }
cleanup
%19 = extractvalue { i8*, i32 } %18, 0
store i8* %19, i8** %exn.slot, align 8
%20 = extractvalue { i8*, i32 } %18, 1
store i32 %20, i32* %ehselector.slot, align 4
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir) #16
br label %ehcleanup
ehcleanup: ; preds = %lpad12, %lpad10
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress) #16
br label %ehcleanup14
ehcleanup14: ; preds = %ehcleanup, %lpad8
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName) #16
br label %ehcleanup15
ehcleanup15: ; preds = %ehcleanup14, %lpad6
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule) #16
br label %ehcleanup16
ehcleanup16: ; preds = %ehcleanup15, %lpad4
call void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) #16
br label %ehcleanup17
ehcleanup17: ; preds = %ehcleanup16, %lpad2
call void @_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands) #16
br label %ehcleanup18
ehcleanup18: ; preds = %ehcleanup17, %lpad
call void @_ZN22CCompressionMethodModeD2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %MethodMode) #16
br label %eh.resume
eh.resume: ; preds = %ehcleanup18
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val19 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val19
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN14CUpdateOptionsD2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CUpdateOptions*, align 8
store %struct.CUpdateOptions* %this, %struct.CUpdateOptions** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %this.addr, align 8
%VolumesSizes = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 14
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.3*)*)(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %VolumesSizes) #16
%WorkingDir = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 13
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir) #16
%EMailAddress = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 12
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress) #16
%StdInFileName = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 8
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName) #16
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 5
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule) #16
%ArchivePath = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 3
call void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) #16
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 1
call void @_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands) #16
%MethodMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 0
call void @_ZN22CCompressionMethodModeD2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %MethodMode) #16
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.1*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8
%0 = bitcast %class.CObjectVector.1* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI9CPropertyE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%1 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #20
unreachable
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !7
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) #16
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector.0* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !7
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector*
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 8)
%1 = bitcast %class.CRecordVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIPvE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%1 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #20
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1) #16
%0 = bitcast %class.CObjectVector.0* %this1 to i8*
call void @_ZdlPv(i8* %0) #19
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.0*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
store i32 %num, i32* %num.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16
store i32 0, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !3
%4 = load i32, i32* %num.addr, align 4, !tbaa !3
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !97
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !3
%10 = load i32, i32* %i, align 4, !tbaa !3
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7
%12 = bitcast i8* %11 to %"struct.NWildcard::CPair"*
%isnull = icmp eq %"struct.NWildcard::CPair"* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %12) #16
%13 = bitcast %"struct.NWildcard::CPair"* %12 to i8*
call void @_ZdlPv(i8* %13) #19
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !3
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !128
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !3
%18 = load i32, i32* %num.addr, align 4, !tbaa !3
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i64 %itemSize) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CBaseRecordVector*, align 8
%itemSize.addr = alloca i64, align 8
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !7
store i64 %itemSize, i64* %itemSize.addr, align 8, !tbaa !39
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8
%0 = bitcast %class.CBaseRecordVector* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV17CBaseRecordVector, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%_capacity = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 1
store i32 0, i32* %_capacity, align 8, !tbaa !129
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
store i32 0, i32* %_size, align 4, !tbaa !95
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 3
store i8* null, i8** %_items, align 8, !tbaa !97
%_itemSize = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 4
%1 = load i64, i64* %itemSize.addr, align 8, !tbaa !39
store i64 %1, i64* %_itemSize, align 8, !tbaa !130
ret void
}
; Function Attrs: nounwind
declare dso_local void @_ZN17CBaseRecordVectorD2Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #12
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvED0Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %class.CRecordVector*, align 8
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !7
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this1) #16
%0 = bitcast %class.CRecordVector* %this1 to i8*
call void @_ZdlPv(i8* %0) #19
ret void
}
declare dso_local void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32), i32, i32) unnamed_addr #3
; Function Attrs: nounwind
declare dso_local void @_ZN17CBaseRecordVectorD1Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #12
; Function Attrs: nounwind
declare dso_local void @_ZN17CBaseRecordVectorD0Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #12
declare dso_local void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) #3
; Function Attrs: noinline noreturn nounwind
define linkonce_odr hidden void @__clang_call_terminate(i8* %0) #13 comdat {
%2 = call i8* @__cxa_begin_catch(i8* %0) #16
call void @_ZSt9terminatev() #20
unreachable
}
declare dso_local i8* @__cxa_begin_catch(i8*)
declare dso_local void @_ZSt9terminatev()
; Function Attrs: mustprogress nounwind uwtable
define linkonce_odr dso_local void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32* nonnull align 4 dereferenceable(4) %num) #4 comdat align 2 {
entry:
%this.addr = alloca %class.CBaseRecordVector*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32*, align 8
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
store i32* %num, i32** %num.addr, align 8, !tbaa !7
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8
%0 = load i32, i32* %index.addr, align 4, !tbaa !3
%1 = load i32*, i32** %num.addr, align 8, !tbaa !7
%2 = load i32, i32* %1, align 4, !tbaa !3
%add = add nsw i32 %0, %2
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
%3 = load i32, i32* %_size, align 4, !tbaa !95
%cmp = icmp sgt i32 %add, %3
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2
%4 = load i32, i32* %_size2, align 4, !tbaa !95
%5 = load i32, i32* %index.addr, align 4, !tbaa !3
%sub = sub nsw i32 %4, %5
%6 = load i32*, i32** %num.addr, align 8, !tbaa !7
store i32 %sub, i32* %6, align 4, !tbaa !3
br label %if.end
if.end: ; preds = %if.then, %entry
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"struct.NWildcard::CPair"*, align 8
store %"struct.NWildcard::CPair"* %this, %"struct.NWildcard::CPair"** %this.addr, align 8, !tbaa !7
%this1 = load %"struct.NWildcard::CPair"*, %"struct.NWildcard::CPair"** %this.addr, align 8
%Head = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 1
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head) #16
%Prefix = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #16
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"class.NWildcard::CCensorNode"*, align 8
store %"class.NWildcard::CCensorNode"* %this, %"class.NWildcard::CCensorNode"** %this.addr, align 8, !tbaa !7
%this1 = load %"class.NWildcard::CCensorNode"*, %"class.NWildcard::CCensorNode"** %this.addr, align 8
%ExcludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 4
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %ExcludeItems) #16
%IncludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 3
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %IncludeItems) #16
%SubNodes = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 2
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %SubNodes) #16
%Name = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 1
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #16
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.9*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.9* %this, %class.CObjectVector.9** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.9*, %class.CObjectVector.9** %this.addr, align 8
%0 = bitcast %class.CObjectVector.9* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CItemEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%1 = bitcast %class.CObjectVector.9* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.9* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.9* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #20
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %class.CObjectVector.8*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8
%0 = bitcast %class.CObjectVector.8* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93
%1 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector*
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%2 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
catch i8* null
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector*
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16
br label %terminate.handler
terminate.handler: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
call void @__clang_call_terminate(i8* %exn) #20
unreachable
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.9*, align 8
store %class.CObjectVector.9* %this, %class.CObjectVector.9** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.9*, %class.CObjectVector.9** %this.addr, align 8
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this1) #16
%0 = bitcast %class.CObjectVector.9* %this1 to i8*
call void @_ZdlPv(i8* %0) #19
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.9*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.9* %this, %class.CObjectVector.9** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
store i32 %num, i32* %num.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.9*, %class.CObjectVector.9** %this.addr, align 8
%0 = bitcast %class.CObjectVector.9* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16
store i32 0, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !3
%4 = load i32, i32* %num.addr, align 4, !tbaa !3
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.9* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !97
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !3
%10 = load i32, i32* %i, align 4, !tbaa !3
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7
%12 = bitcast i8* %11 to %"struct.NWildcard::CItem"*
%isnull = icmp eq %"struct.NWildcard::CItem"* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %12) #16
%13 = bitcast %"struct.NWildcard::CItem"* %12 to i8*
call void @_ZdlPv(i8* %13) #19
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !3
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !131
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.9* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !3
%18 = load i32, i32* %num.addr, align 4, !tbaa !3
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %"struct.NWildcard::CItem"*, align 8
store %"struct.NWildcard::CItem"* %this, %"struct.NWildcard::CItem"** %this.addr, align 8, !tbaa !7
%this1 = load %"struct.NWildcard::CItem"*, %"struct.NWildcard::CItem"** %this.addr, align 8
%PathParts = getelementptr inbounds %"struct.NWildcard::CItem", %"struct.NWildcard::CItem"* %this1, i32 0, i32 0
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PathParts) #16
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.8*, align 8
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this1) #16
%0 = bitcast %class.CObjectVector.8* %this1 to i8*
call void @_ZdlPv(i8* %0) #19
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.8*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
store i32 %num, i32* %num.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8
%0 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16
store i32 0, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !3
%4 = load i32, i32* %num.addr, align 4, !tbaa !3
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !97
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !3
%10 = load i32, i32* %i, align 4, !tbaa !3
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7
%12 = bitcast i8* %11 to %"class.NWildcard::CCensorNode"*
%isnull = icmp eq %"class.NWildcard::CCensorNode"* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %12) #16
%13 = bitcast %"class.NWildcard::CCensorNode"* %12 to i8*
call void @_ZdlPv(i8* %13) #19
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !3
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !132
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !3
%18 = load i32, i32* %num.addr, align 4, !tbaa !3
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: nounwind uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyED0Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.1*, align 8
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this1) #16
%0 = bitcast %class.CObjectVector.1* %this1 to i8*
call void @_ZdlPv(i8* %0) #19
ret void
}
; Function Attrs: mustprogress uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyE6DeleteEii(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.1*, align 8
%index.addr = alloca i32, align 4
%num.addr = alloca i32, align 4
%i = alloca i32, align 4
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7
store i32 %index, i32* %index.addr, align 4, !tbaa !3
store i32 %num, i32* %num.addr, align 4, !tbaa !3
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector*
%1 = load i32, i32* %index.addr, align 4, !tbaa !3
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr)
%2 = bitcast i32* %i to i8*
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16
store i32 0, i32* %i, align 4, !tbaa !3
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%3 = load i32, i32* %i, align 4, !tbaa !3
%4 = load i32, i32* %num.addr, align 4, !tbaa !3
%cmp = icmp slt i32 %3, %4
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
%5 = bitcast i32* %i to i8*
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16
br label %for.end
for.body: ; preds = %for.cond
%6 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector*
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3
%7 = load i8*, i8** %_items, align 8, !tbaa !97
%8 = bitcast i8* %7 to i8**
%9 = load i32, i32* %index.addr, align 4, !tbaa !3
%10 = load i32, i32* %i, align 4, !tbaa !3
%add = add nsw i32 %9, %10
%idxprom = sext i32 %add to i64
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7
%12 = bitcast i8* %11 to %struct.CProperty*
%isnull = icmp eq %struct.CProperty* %12, null
br i1 %isnull, label %delete.end, label %delete.notnull
delete.notnull: ; preds = %for.body
call void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %12) #16
%13 = bitcast %struct.CProperty* %12 to i8*
call void @_ZdlPv(i8* %13) #19
br label %delete.end
delete.end: ; preds = %delete.notnull, %for.body
br label %for.inc
for.inc: ; preds = %delete.end
%14 = load i32, i32* %i, align 4, !tbaa !3
%inc = add nsw i32 %14, 1
store i32 %inc, i32* %i, align 4, !tbaa !3
br label %for.cond, !llvm.loop !133
for.end: ; preds = %for.cond.cleanup
%15 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector*
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector*
%17 = load i32, i32* %index.addr, align 4, !tbaa !3
%18 = load i32, i32* %num.addr, align 4, !tbaa !3
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18)
ret void
}
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 {
entry:
%this.addr = alloca %struct.CProperty*, align 8
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value) #16
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #16
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN22CCompressionMethodModeC2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %struct.CCompressionMethodMode*, align 8
store %struct.CCompressionMethodMode* %this, %struct.CCompressionMethodMode** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CCompressionMethodMode*, %struct.CCompressionMethodMode** %this.addr, align 8
%FormatIndex = getelementptr inbounds %struct.CCompressionMethodMode, %struct.CCompressionMethodMode* %this1, i32 0, i32 0
store i32 -1, i32* %FormatIndex, align 8, !tbaa !134
%Properties = getelementptr inbounds %struct.CCompressionMethodMode, %struct.CCompressionMethodMode* %this1, i32 0, i32 1
call void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties)
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN13CObjectVectorI21CUpdateArchiveCommandEC2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 {
entry:
%this.addr = alloca %class.CObjectVector.2*, align 8
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !7
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector*
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0)
%1 = bitcast %class.CObjectVector.2* %this1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI21CUpdateArchiveCommandE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93
ret void
}
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %struct.CArchivePath*, align 8
%exn.slot = alloca i8*, align 8
%ehselector.slot = alloca i32, align 4
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !7
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath)
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull alig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment