This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '/mnt/d/Dev/Source/iOS/crackhelper/.theos/obj/arm64/test.xm.mm' | |
source_filename = "/mnt/d/Dev/Source/iOS/crackhelper/.theos/obj/arm64/test.xm.mm" | |
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" | |
target triple = "arm64-apple-ios9.2.0-macho-" | |
%0 = type opaque | |
%1 = type opaque | |
%struct._class_t = type { %struct._class_t*, %struct._class_t*, %struct._objc_cache*, i8* (i8*, i8*)**, %struct._class_ro_t* } | |
%struct._objc_cache = type opaque | |
%struct._class_ro_t = type { i32, i32, i32, i8*, i8*, %struct.__method_list_t*, %struct._objc_protocol_list*, %struct._ivar_list_t*, i8*, %struct._prop_list_t* } | |
%struct.__method_list_t = type { i32, i32, [0 x %struct._objc_method] } | |
%struct._objc_method = type { i8*, i8*, i8* } | |
%struct._objc_protocol_list = type { i64, [0 x %struct._protocol_t*] } | |
%struct._protocol_t = type { i8*, i8*, %struct._objc_protocol_list*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct._prop_list_t*, i32, i32, i8**, i8*, %struct._prop_list_t* } | |
%struct._ivar_list_t = type { i32, i32, [0 x %struct._ivar_t] } | |
%struct._ivar_t = type { i32*, i8*, i8*, i32, i32 } | |
%struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] } | |
%struct._prop_t = type { i8*, i8* } | |
%struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } | |
%struct.__sFILEX = type opaque | |
%struct.__sbuf = type { i8*, i32 } | |
@"OBJC_CLASS_$_NSBundle" = external global %struct._class_t | |
@"OBJC_CLASSLIST_REFERENCES_$_" = private global %struct._class_t* @"OBJC_CLASS_$_NSBundle", section "__DATA,__objc_classrefs,regular,no_dead_strip", align 8 | |
@OBJC_METH_VAR_NAME_ = private unnamed_addr constant [11 x i8] c"mainBundle\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@OBJC_SELECTOR_REFERENCES_ = private externally_initialized global i8* getelementptr inbounds ([11 x i8], [11 x i8]* @OBJC_METH_VAR_NAME_, i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@OBJC_METH_VAR_NAME_.1 = private unnamed_addr constant [17 x i8] c"bundleIdentifier\00", section "__TEXT,__objc_methname,cstring_literals", align 1 | |
@OBJC_SELECTOR_REFERENCES_.2 = private externally_initialized global i8* getelementptr inbounds ([17 x i8], [17 x i8]* @OBJC_METH_VAR_NAME_.1, i64 0, i64 0), section "__DATA,__objc_selrefs,literal_pointers,no_dead_strip", align 8 | |
@__stdoutp = external local_unnamed_addr global %struct.__sFILE*, align 8 | |
@__stderrp = external local_unnamed_addr global %struct.__sFILE*, align 8 | |
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* bitcast (void (i32, i8**, i8**)* @_ZL24_logosLocalCtor_ec8759d9iPPcS0_ to void ()*), i8* null }] | |
@llvm.compiler.used = appending global [5 x i8*] [i8* bitcast (%struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_" to i8*), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @OBJC_METH_VAR_NAME_, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_ to i8*), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_.2 to i8*)], section "llvm.metadata" | |
; Function Attrs: optsize ssp uwtable | |
define internal void @_ZL24_logosLocalCtor_ec8759d9iPPcS0_(i32, i8** nocapture readnone, i8** nocapture readnone) #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
%4 = load i8*, i8** bitcast (%struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_" to i8**), align 8 | |
%5 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_, align 8, !invariant.load !21 | |
%6 = tail call %0* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to %0* (i8*, i8*)*)(i8* %4, i8* %5) #3 | |
%7 = bitcast %0* %6 to i8* | |
%8 = tail call i8* @objc_retainAutoreleasedReturnValue(i8* %7) #4 | |
%9 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.2, align 8, !invariant.load !21 | |
%10 = invoke %1* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to %1* (i8*, i8*)*)(i8* %7, i8* %9) #3 | |
to label %11 unwind label %16 | |
; <label>:11: ; preds = %3 | |
%12 = bitcast %1* %10 to i8* | |
%13 = tail call i8* @objc_retainAutoreleasedReturnValue(i8* %12) #4 | |
%14 = load %struct.__sFILE*, %struct.__sFILE** @__stdoutp, align 8, !tbaa !22 | |
tail call void @setbuf(%struct.__sFILE* %14, i8* null) #3 | |
%15 = load %struct.__sFILE*, %struct.__sFILE** @__stderrp, align 8, !tbaa !22 | |
tail call void @setbuf(%struct.__sFILE* %15, i8* null) #3 | |
tail call void @objc_release(i8* %12) #4, !clang.imprecise_release !21 | |
tail call void @objc_release(i8* %7) #4, !clang.imprecise_release !21 | |
ret void | |
; <label>:16: ; preds = %3 | |
%17 = landingpad { i8*, i32 } | |
cleanup | |
tail call void @objc_release(i8* %7) #4, !clang.imprecise_release !21 | |
resume { i8*, i32 } %17 | |
} | |
; Function Attrs: nonlazybind | |
declare i8* @objc_msgSend(i8*, i8*, ...) local_unnamed_addr #1 | |
declare i8* @objc_retainAutoreleasedReturnValue(i8* returned) local_unnamed_addr | |
; Function Attrs: nounwind optsize | |
declare void @setbuf(%struct.__sFILE* nocapture, i8*) local_unnamed_addr #2 | |
; Function Attrs: nonlazybind | |
declare void @objc_release(i8*) local_unnamed_addr #1 | |
declare i32 @__gxx_personality_v0(...) | |
attributes #0 = { optsize ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="cyclone" "target-features"="+crypto,+fp-armv8,+neon,+zcm,+zcz" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #1 = { nonlazybind } | |
attributes #2 = { nounwind optsize "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="cyclone" "target-features"="+crypto,+fp-armv8,+neon,+zcm,+zcz" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #3 = { optsize } | |
attributes #4 = { nounwind } | |
!clang.arc.retainAutoreleasedReturnValueMarker = !{!0} | |
!llvm.module.flags = !{!1, !2, !3, !4, !5, !6, !7} | |
!llvm.linker.options = !{!8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19} | |
!llvm.ident = !{!20} | |
!0 = !{!"mov\09fp, fp\09\09# marker for objc_retainAutoreleaseReturnValue"} | |
!1 = !{i32 1, !"Objective-C Version", i32 2} | |
!2 = !{i32 1, !"Objective-C Image Info Version", i32 0} | |
!3 = !{i32 1, !"Objective-C Image Info Section", !"__DATA,__objc_imageinfo,regular,no_dead_strip"} | |
!4 = !{i32 4, !"Objective-C Garbage Collection", i32 0} | |
!5 = !{i32 1, !"Objective-C Class Properties", i32 64} | |
!6 = !{i32 1, !"wchar_size", i32 4} | |
!7 = !{i32 7, !"PIC Level", i32 2} | |
!8 = !{!"-framework", !"UIKit"} | |
!9 = !{!"-framework", !"CoreText"} | |
!10 = !{!"-framework", !"QuartzCore"} | |
!11 = !{!"-framework", !"CoreImage"} | |
!12 = !{!"-framework", !"CoreVideo"} | |
!13 = !{!"-framework", !"OpenGLES"} | |
!14 = !{!"-framework", !"Metal"} | |
!15 = !{!"-framework", !"Foundation"} | |
!16 = !{!"-framework", !"CFNetwork"} | |
!17 = !{!"-framework", !"Security"} | |
!18 = !{!"-framework", !"CoreGraphics"} | |
!19 = !{!"-framework", !"CoreFoundation"} | |
!20 = !{!"clang version 5.0.1-svn319952-1~exp1 (branches/release_50)"} | |
!21 = !{} | |
!22 = !{!23, !23, i64 0} | |
!23 = !{!"any pointer", !24, i64 0} | |
!24 = !{!"omnipotent char", !25, i64 0} | |
!25 = !{!"Simple C++ TBAA"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment