Instantly share code, notes, and snippets.

@Naville /Dope.ll Secret
Created Dec 27, 2017

Embed
What would you like to do?
; 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