Jtool ARMv7 & Swift support

Used for discussing the various tools in the book as well as encouraging members to share tools

Jtool ARMv7 & Swift support

Postby Chili » Tue Feb 09, 2016 10:27 pm

Hello Johnny,
Thanks for your hard work it is very well appreciated.

I'm trying to use jtool on a swift sample (Fat armv7 and arm64, too big to upload with 2MB limit) and it provide errors on each architecture such as the enclosed,
does jtool support swift binaries? does it support armv7?
I am running it on a simple swift chat application (https://github.com/QuickBlox/quickblox- ... master.zip)

and getting the enclosed error:

Disassembling from file offset 0x738510, Address 0x10028c510
ERROR IN INSTR ADD imm @0x10029eed4 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x10029eee4 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x10029eeec - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x10029eef4 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a58ec - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a5abc - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a5c8c - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a5e5c - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a602c - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a7b94 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a80dc - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a80f4 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a839c - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a83ac - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a83d0 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a851c - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a8738 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a8ff8 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a90ec - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a9258 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a935c - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a9c58 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002a9c64 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa094 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa0c8 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa0e8 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa234 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa4d4 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa4e0 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aa5a4 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002aaf18 - q.v. C5.6.4
ERROR IN INSTR ADD imm @0x1002ab314 - q.v. C5.6.4
Error: Address 1002e62c0's offset in the file is 7938752, which is greater than the file size (5447648)! Cannot continue.
Disassembling from file offset 0x7ae468, Address 0x100302468
Error: Address 1002dbff0's offset in the file is 7897072, which is greater than the file size (5447648)! Cannot continue.
Error: Address 1002afe30's offset in the file is 7716400, which is greater than the file size (5447648)! Cannot continue.
Error: Address 1002def88's offset in the file is 7909256, which is greater than the file size (5447648)! Cannot continue.
Disassembling from file offset 0x73689c, Address 0x10028a89c
Disassembling from file offset 0x734c40, Address 0x100288c40
Disassembling from file offset 0x7ae288, Address 0x100302288
Disassembling from file offset 0x7b5920, Address 0x100309920
Disassembling from file offset 0x7b5884, Address 0x100309884
Dumping from address 0x1003a9b20 (Segment: __DATA.__bss)
Error: Address 1003a9b20's offset in the file is 8739616, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100324280 (Segment: __DATA.__cfstring)
Error: Address 100324280's offset in the file is 8192640, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x1003aa368 (Segment: __DATA.__common)
Error: Address 1003aa368's offset in the file is 8741736, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100311b10 (Segment: __DATA.__const)
Error: Address 100311b10's offset in the file is 8117008, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x1003a5030 (Segment: __DATA.__data)
Error: Address 1003a5030's offset in the file is 8720432, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100310000 (Segment: __DATA.__got)
Error: Address 100310000's offset in the file is 8110080, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100310828 (Segment: __DATA.__la_symbol_ptr)
Error: Address 100310828's offset in the file is 8112168, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100336780 (Segment: __DATA.__objc_catlist)
Error: Address 100336780's offset in the file is 8267648, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100335ae0 (Segment: __DATA.__objc_classlist)
Error: Address 100335ae0's offset in the file is 8264416, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100399b30 (Segment: __DATA.__objc_classrefs)
Error: Address 100399b30's offset in the file is 8674096, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100336e10 (Segment: __DATA.__objc_const)
Error: Address 100336e10's offset in the file is 8269328, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x10039c690 (Segment: __DATA.__objc_data)
Error: Address 10039c690's offset in the file is 8685200, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100336e08 (Segment: __DATA.__objc_imageinfo)
Error: Address 100336e08's offset in the file is 8269320, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x10039b0a0 (Segment: __DATA.__objc_ivar)
Error: Address 10039b0a0's offset in the file is 8679584, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100336768 (Segment: __DATA.__objc_nlclslist)
Error: Address 100336768's offset in the file is 8267624, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100336b30 (Segment: __DATA.__objc_protolist)
Error: Address 100336b30's offset in the file is 8268592, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100399ab0 (Segment: __DATA.__objc_protorefs)
Error: Address 100399ab0's offset in the file is 8673968, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x100390120 (Segment: __DATA.__objc_selrefs)
Error: Address 100390120's offset in the file is 8634656, which is greater than the file size (5447648)! Cannot continue.
Dumping from address 0x10039a858 (Segment: __DATA.__objc_superrefs)
Error: Address 10039a858's offset in the file is 8677464, which is greater than the file size (5447648)! Cannot continue.
Chili
 
Posts: 2
Joined: Tue Feb 09, 2016 10:20 pm

Re: Jtool ARMv7 & Swift support

Postby morpheus » Thu Feb 11, 2016 11:04 pm

Could be a bug, or likely unhandled. Do me a favor and upload just the arm64 portion. I don't purport to support ARMv7 anymore (I did for the longest time, then grew frustrated at the thumb/ARM32 disassembly and decided to just fully support ARM64).

I might bring ARM32 back. It's just a lot of work, and I have other priorities..

Still, definitely get me a look at the ARM64 portion of the exe, please. The github only had the ar(5) archives of the frameworks (which are now correctly identified, thanks to you :)
morpheus
Site Admin
 
Posts: 532
Joined: Thu Apr 11, 2013 6:24 pm

Re: Jtool ARMv7 & Swift support

Postby onthewater » Tue Aug 23, 2016 7:56 pm

Hi and thank you for all the effort you have put into this. Like the previous question does jTool fully support Swift apps yet?

I try to run jTool disassembly on a swift binary and got seg fault on bin as well. I am running tool v1-ε^2 (Reykjavik), compiled on Jun 14 2016

$ ./jtool -d ./02-bin1_64
Segmentation fault: 11

I can duplicate this on several samples.
Any suggestions are welcomed.

I can supply the binary if needed. It's ~6 megs in size, over the upload limit.
onthewater
 
Posts: 2
Joined: Tue Aug 23, 2016 7:34 pm

Re: Jtool ARMv7 & Swift support

Postby morpheus » Thu Aug 25, 2016 10:00 pm

Please DO supply the binary! A dropbox link would be appreciated (no Google drive since I dont have a Gmail address).

JTool is getting closer to having those epsilons removed, and be a full featured 1.0. And Swift will be supported. You might also want to try the latest build, at NewOSXBook.com/files/jtool.tar
morpheus
Site Admin
 
Posts: 532
Joined: Thu Apr 11, 2013 6:24 pm

Re: Jtool ARMv7 & Swift support

Postby NJJN » Fri Aug 26, 2016 5:18 am

Mr. J,
Please update the "right here" link for jtool.html page from

http://newosxbook.com/tools/jtool.tar <--- update the link to

http://newosxBook.com/files/jtool.tar <--- Latest

Thanks!
Attachments
update-link-for-jtool.html.jpg
update-link-for-jtool.html.jpg (248.06 KiB) Viewed 5874 times
NJJN
 
Posts: 9
Joined: Sat Feb 27, 2016 12:09 pm

Re: Jtool ARMv7 & Swift support

Postby morpheus » Fri Aug 26, 2016 11:53 am

actually should have been /tools...

Anyway, now there are one and the same. Thank you for pointing out.
morpheus
Site Admin
 
Posts: 532
Joined: Thu Apr 11, 2013 6:24 pm

Re: Jtool ARMv7 & Swift support

Postby darkknight » Tue Sep 06, 2016 4:38 am

hmmm I also have a simple Swift binary and jtool can dump symbols, list segments etc. But disassembling results in Segmentation fault: 11 as well...

This is jtool v1-ε (Ottawa) with decompilation callbacks from machlib, compiled on May 20 2016 06:50:13
darkknight
 
Posts: 66
Joined: Mon Apr 18, 2016 10:49 pm

Re: Jtool ARMv7 & Swift support

Postby darkknight » Tue Sep 06, 2016 4:48 am

Sorry wasn't running the latest. So I updated to the latest(compiled on Aug 25 2016 17:52:1) and enabled debug and got:
jtool Seg Fault.png
jtool Seg Fault.png (35.83 KiB) Viewed 5782 times


So I disabled Objective-C and it was good.
darkknight
 
Posts: 66
Joined: Mon Apr 18, 2016 10:49 pm

Re: Jtool ARMv7 & Swift support

Postby onthewater » Mon Sep 12, 2016 4:07 pm

Sorry for the late reply. Here is the binary. It still causes seg fault 11. https://www.dropbox.com/s/19xyc3z14yh1jjg/bin1_64?dl=0.

$ ./jtool
This is jtool v1-ε^3 (San Francisco), compiled on Aug 25 2016 17:52:17


$ ./jtool -d bin1_64

Segmentation fault: 11
onthewater
 
Posts: 2
Joined: Tue Aug 23, 2016 7:34 pm

Re: Jtool ARMv7 & Swift support

Postby darkknight » Mon Sep 12, 2016 5:08 pm

Well this works

Code: Select all
NOOBJC=1 jtool -d bin1_64


Code: Select all
DarkKnight:Desktop michael$ NOOBJC=1 jtool -d bin1_64

Snip ---->
Warning: companion file ./bin1_64.ARM64.62C34C60-BC35-3A03-9654-9E1435E4D349 not found
Disassembling from file offset 0x67e0, Address 0x1000067e0
   1000067e0   STP    X20, X19, [SP,#-32]!   ;
   1000067e4   STP    X29, X30, [SP,#16]   ;
   1000067e8   ADD    X29, SP, #16       X29 = 0x1000067fc -|
   1000067ec   ADRP   X8, 1298             ; ->R8 = 0x100518000
   1000067f0   LDR    X8, [X8, #3408]   ; -R8 = *(R8 + 3408) = .. *(0x100518d50, no sym) = 0x10 ... ?..
   1000067f4   -LDR   X19, [X0, X8 ...]   ; -R0 = *(R0 + 0) = .. *(0x0, no sym) = 0x100000cfeedfacf ... (null)?..
   1000067f8   CMP    X19, #0           ;
   1000067fc   B.GE   0x10000680c       ;
   100006800   AND    X0, X19, #0x0     ;
   100006804   BL     libswiftCore.dylib::_swift_unknownRetain   ; 0x1003376cc
   100006808   B      0x10000681c
   10000680c   UBFX   X8, X19#63        ;
; // if (R8  != 0) then goto 0x10000681c
   100006810   CBNZ   X8, 0x10000681c   ;
   100006814   MOV    X0, X19           ; --X0 = X19 = 0x0
   100006818   BL     libswiftCore.dylib::_swift_retain   ; 0x100337660
   10000681c   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006820   LDR    X3, [X8, #2880]   ; -R3 = *(R8 + 2880) = .. *(0x100519b40, no sym) = 0x0 ... ?..
; // if (R3  != 0) then goto 0x100006848
   100006824   CBNZ   X3, 0x100006848   ;
   100006828   ADRP   X0, 1287             ; ->R0 = 0x10050d000
   10000682c   ADD    X0, X0, #1496      X0 = 0x10050d5d8 -|
   100006830   BL     libswiftCore.dylib::_swift_getInitializedObjCClass   ; 0x1003375e8
   100006834   BL     libswiftCore.dylib::_swift_getObjCClassMetadata   ; 0x1003375f4
   100006838   MOV    X3, X0            ; --X3 = X0 = 0x0
   10000683c   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006840   ADD    X8, X8, #2880      X8 = 0x100519b40 -|
   100006844   @TODO                    ;
   100006848   ADRP   X8, 1050             ; ->R8 = 0x100420000
   10000684c   LDR    X8, [X8, #1280]   ; -R8 = *(R8 + 1280) = .. *(0x100420500, no sym) = -libswiftCore.dylib::__TMdSS-
   100006850   ADD    X1, X8, #8         X1 = 0x2410000118303240 -|
   100006854   ADRP   X2, 1050             ; ->R2 = 0x100420000
   100006858   LDR    X2, [X2, #1440]   ; -R2 = *(R2 + 1440) = .. *(0x1004205a0, no sym) = -libswiftCore.dylib::__TWPSSSs8Hashable-
   10000685c   MOV    X0, X19           ; --X0 = X19 = 0x0
   100006860   BL     libswiftFoundation.dylib::__TF10Foundation32_convertDictionaryToNSDictionaryUSs8Hashable___FGVSs10DictionaryQ_Q0__CSo12NSDictionary   ; 0x100337348
   100006864   LDP    X29, X30, [SP,#16]   ;
   100006868   LDP    X20, X19, [SP],#32   ;
   10000686c   B      libobjc.A.dylib::_objc_autoreleaseReturnValue   ; 0x100336490
   100006870   STP    X20, X19, [SP,#-32]!   ;
   100006874   STP    X29, X30, [SP,#16]   ;
   100006878   ADD    X29, SP, #16       X29 = 0x10000688c -|
   10000687c   MOV    X20, X0           ; --X20 = X0 = 0x0
   100006880   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006884   LDR    X8, [X8, #3408]   ; -R8 = *(R8 + 3408) = .. *(0x100518d50, no sym) = 0x10 ... ?..
   100006888   -LDR   X19, [X20, X8 ...]   ; -R0 = *(R0 + 0) = .. *(0x0, no sym) = 0x100000cfeedfacf ... (null)?..
   10000688c   CMP    X19, #0           ;
   100006890   B.GE   0x1000068a0       ;
   100006894   AND    X0, X19, #0x0     ;
   100006898   BL     libswiftCore.dylib::_swift_unknownRetain   ; 0x1003376cc
   10000689c   B      0x1000068b0
   1000068a0   UBFX   X8, X19#63        ;
; // if (R8  != 0) then goto 0x1000068b0
   1000068a4   CBNZ   X8, 0x1000068b0   ;
   1000068a8   MOV    X0, X19           ; --X0 = X19 = 0x0
   1000068ac   BL     libswiftCore.dylib::_swift_retain   ; 0x100337660
   1000068b0   MOV    X0, X20           ; --X0 = X20 = 0x0
   1000068b4   BL     libobjc.A.dylib::_objc_release   ; 0x1003365b0
   1000068b8   MOV    X0, X19           ; --X0 = X19 = 0x0
   1000068bc   LDP    X29, X30, [SP,#16]   ;
   1000068c0   LDP    X20, X19, [SP],#32   ;
   1000068c4   RET                      ;
   1000068c8   STP    X22, X21, [SP,#-48]!   ;
   1000068cc   STP    X20, X19, [SP,#16]   ;
   1000068d0   STP    X29, X30, [SP,#32]   ;
   1000068d4   ADD    X29, SP, #32       X29 = 0x1000068f8 -|
   1000068d8   MOV    X20, X2           ; --X20 = X2 = 0x0
   1000068dc   MOV    X19, X0           ; --X19 = X0 = 0x0
   1000068e0   ADRP   X8, 1299             ; ->R8 = 0x100519000
   1000068e4   LDR    X21, [X8, #2880]   ; -R21 = *(R8 + 2880) = .. *(0x100519b40, no sym) = 0x0 ... ?..
   1000068e8   MOV    X0, X20           ; --X0 = X20 = 0x0
   1000068ec   BL     libobjc.A.dylib::_objc_retain   ; 0x1003365bc
   1000068f0   MOV    X0, X19           ; --X0 = X19 = 0x0
   1000068f4   BL     libobjc.A.dylib::_objc_retain   ; 0x1003365bc
; // if (R21  != 0) then goto 0x10000691c
   1000068f8   CBNZ   X21, 0x10000691c   ;
   1000068fc   ADRP   X0, 1287             ; ->R0 = 0x10050d000
   100006900   ADD    X0, X0, #1496      X0 = 0x10050d5d8 -|
   100006904   BL     libswiftCore.dylib::_swift_getInitializedObjCClass   ; 0x1003375e8
   100006908   BL     libswiftCore.dylib::_swift_getObjCClassMetadata   ; 0x1003375f4
   10000690c   MOV    X21, X0           ; --X21 = X0 = 0x0
   100006910   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006914   ADD    X8, X8, #2880      X8 = 0x100519b40 -|
   100006918   @TODO                    ;
   10000691c   ADRP   X8, 1050             ; ->R8 = 0x100420000
   100006920   LDR    X8, [X8, #1280]   ; -R8 = *(R8 + 1280) = .. *(0x100420500, no sym) = -libswiftCore.dylib::__TMdSS-
   100006924   ADD    X1, X8, #8         X1 = 0x2410000118600000 -|
   100006928   ADRP   X2, 1050             ; ->R2 = 0x100420000
   10000692c   LDR    X2, [X2, #1440]   ; -R2 = *(R2 + 1440) = .. *(0x1004205a0, no sym) = -libswiftCore.dylib::__TWPSSSs8Hashable-
   100006930   MOV    X0, X20           ; --X0 = X20 = 0x0
   100006934   MOV    X3, X21           ; --X3 = X21 = 0x0
   100006938   BL     libswiftFoundation.dylib::__TF10Foundation32_convertNSDictionaryToDictionaryUSs8Hashable___FCSo12NSDictionaryGVSs10DictionaryQ_Q0__   ; 0x100337354
   10000693c   MOV    X20, X0           ; --X20 = X0 = 0x0
   100006940   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006944   LDR    X8, [X8, #3408]   ; -R8 = *(R8 + 3408) = .. *(0x100518d50, no sym) = 0x10 ... ?..
   100006948   -LDR   X21, [X19, X8 ...]   ; -R0 = *(R0 + 0) = .. *(0x0, no sym) = 0x100000cfeedfacf ... (null)?..
   10000694c   STR    X20, [X19, xX8] ..    (?); -R20 = *(R19 + 0) = .. *(0x0, no sym) = 0x100000cfeedfacf ... (null)?..= X20
   100006950   CMP    X20, #0           ;
   100006954   B.GE   0x100006964       ;
   100006958   AND    X0, X20, #0x0     ;
   10000695c   BL     libswiftCore.dylib::_swift_unknownRetain   ; 0x1003376cc
   100006960   B      0x100006974
   100006964   UBFX   X8, X20#63        ;
; // if (R8  != 0) then goto 0x100006974
   100006968   CBNZ   X8, 0x100006974   ;
   10000696c   MOV    X0, X20           ; --X0 = X20 = 0x100000cfeedfacf
   100006970   BL     libswiftCore.dylib::_swift_retain   ; 0x100337660
   100006974   CMP    X21, #0           ;
   100006978   B.GE   0x100006988       ;
   10000697c   AND    X0, X21, #0x0     ;
   100006980   BL     libswiftCore.dylib::_swift_unknownRelease   ; 0x1003376c0
   100006984   B      0x100006998
   100006988   UBFX   X8, X21#63        ;
; // if (R8  != 0) then goto 0x100006998
   10000698c   CBNZ   X8, 0x100006998   ;
   100006990   MOV    X0, X21           ; --X0 = X21 = 0x0
   100006994   BL     libswiftCore.dylib::_swift_release   ; 0x10033763c
   100006998   MOV    X0, X19           ; --X0 = X19 = 0x0
   10000699c   BL     libobjc.A.dylib::_objc_release   ; 0x1003365b0
   1000069a0   CMP    X20, #0           ;
   1000069a4   B.GE   0x1000069bc       ;
   1000069a8   AND    X0, X20, #0x0     ;
   1000069ac   LDP    X29, X30, [SP,#32]   ;
   1000069b0   LDP    X20, X19, [SP,#16]   ;
   1000069b4   LDP    X22, X21, [SP],#48   ;
   1000069b8   B      libswiftCore.dylib::_swift_unknownRelease   ; 0x1003376c0
   1000069bc   UBFX   X8, X20#63        ;
; // if (R8  != 0) then goto 0x1000069d8
   1000069c0   CBNZ   X8, 0x1000069d8   ;
   1000069c4   MOV    X0, X20           ; --X0 = X20 = 0x100000cfeedfacf
   1000069c8   LDP    X29, X30, [SP,#32]   ;
   1000069cc   LDP    X20, X19, [SP,#16]   ;
   1000069d0   LDP    X22, X21, [SP],#48   ;
   1000069d4   B      libswiftCore.dylib::_swift_release   ; 0x10033763c
   1000069d8   LDP    X29, X30, [SP,#32]   ;
   1000069dc   LDP    X20, X19, [SP,#16]   ;
   1000069e0   LDP    X22, X21, [SP],#48   ;
   1000069e4   RET                      ;
   1000069e8   STP    X22, X21, [SP,#-48]!   ;
   1000069ec   STP    X20, X19, [SP,#16]   ;
   1000069f0   STP    X29, X30, [SP,#32]   ;
   1000069f4   ADD    X29, SP, #32       X29 = 0x100006a18 -|
   1000069f8   MOV    X20, X1           ; --X20 = X1 = 0x0
   1000069fc   MOV    X19, X0           ; --X19 = X0 = 0x100000cfeedfacf
   100006a00   UBFX   X22, X19#63       ;
   100006a04   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006a08   LDR    X8, [X8, #3408]   ; -R8 = *(R8 + 3408) = .. *(0x100518d50, no sym) = 0x10 ... ?..
   100006a0c   -LDR   X21, [X20, X8 ...]   ???; -R0 = *(R0 + 0) = .. *(0x100000cfeedfacf, no sym) =
   100006a10   STR    X19, [X20, xX8] ..    (?); -R19 = *(R20 + 0) = .. *(0x0, no sym) = 0x100000cfeedfacf ... (null)?..= X19
   100006a14   CMP    X19, #0           ;
   100006a18   B.GE   0x100006a28       ;
   100006a1c   AND    X0, X19, #0x0     ;
   100006a20   BL     libswiftCore.dylib::_swift_unknownRetain   ; 0x1003376cc
   100006a24   B      0x100006a34
; // if (R22  != 0) then goto 0x100006a34
   100006a28   CBNZ   X22, 0x100006a34   ;
   100006a2c   MOV    X0, X19           ; --X0 = X19 = 0x100000cfeedfacf
   100006a30   BL     libswiftCore.dylib::_swift_retain   ; 0x100337660
   100006a34   CMP    X21, #0           ;
   100006a38   B.GE   0x100006a48       ;
   100006a3c   AND    X0, X21, #0x0     ;
   100006a40   BL     libswiftCore.dylib::_swift_unknownRelease   ; 0x1003376c0
   100006a44   B      0x100006a58
   100006a48   UBFX   X8, X21#63        ;
; // if (R8  != 0) then goto 0x100006a58
   100006a4c   CBNZ   X8, 0x100006a58   ;
   100006a50   MOV    X0, X21           ; --X0 = X21 = 0x0
   100006a54   BL     libswiftCore.dylib::_swift_release   ; 0x10033763c
   100006a58   MOV    X0, X20           ; --X0 = X20 = 0x0
   100006a5c   BL     libobjc.A.dylib::_objc_release   ; 0x1003365b0
   100006a60   CMP    X19, #0           ;
   100006a64   B.GE   0x100006a7c       ;
   100006a68   AND    X0, X19, #0x0     ;
   100006a6c   LDP    X29, X30, [SP,#32]   ;
   100006a70   LDP    X20, X19, [SP,#16]   ;
   100006a74   LDP    X22, X21, [SP],#48   ;
   100006a78   B      libswiftCore.dylib::_swift_unknownRelease   ; 0x1003376c0
; // if (R22  != 0) then goto 0x100006a94
   100006a7c   CBNZ   X22, 0x100006a94   ;
   100006a80   MOV    X0, X19           ; --X0 = X19 = 0x100000cfeedfacf
   100006a84   LDP    X29, X30, [SP,#32]   ;
   100006a88   LDP    X20, X19, [SP,#16]   ;
   100006a8c   LDP    X22, X21, [SP],#48   ;
   100006a90   B      libswiftCore.dylib::_swift_release   ; 0x10033763c
   100006a94   LDP    X29, X30, [SP,#32]   ;
   100006a98   LDP    X20, X19, [SP,#16]   ;
   100006a9c   LDP    X22, X21, [SP],#48   ;
   100006aa0   RET                      ;
   100006aa4   STP    X20, X19, [SP,#-32]!   ;
   100006aa8   STP    X29, X30, [SP,#16]   ;
   100006aac   ADD    X29, SP, #16       X29 = 0x100006ac0 -|
   100006ab0   MOVZ   X2, 0x0              ; ->R2 = 0x0
   100006ab4   ADRP   X19, 1306            ; ->R19 = 0x100520000
   100006ab8   ADD    X19, X19, #560     X19 = 0x100520230 -|
   100006abc   ADR    X1, #44              ; ->R1 = 0x100006ae8
   100006ac0   NOP                      ;
   100006ac4   MOV    X0, X19           ; --X0 = X19 = 0x100520230
   100006ac8   BL     libswiftCore.dylib::_swift_once   ; 0x100337624
   100006acc   LDR    X19, [X19, #8]    ; -R19 = *(R19 + 8) = .. *(0x100520238, no sym) = 0x0 ... ?..
   100006ad0   MOV    X0, X19           ; --X0 = X19 = 0x0
   100006ad4   BL     libobjc.A.dylib::_objc_retain   ; 0x1003365bc
   100006ad8   MOV    X0, X19           ; --X0 = X19 = 0x0
   100006adc   LDP    X29, X30, [SP,#16]   ;
   100006ae0   LDP    X20, X19, [SP],#32   ;
   100006ae4   RET                      ;
   100006ae8   STP    X22, X21, [SP,#-48]!   ;
   100006aec   STP    X20, X19, [SP,#16]   ;
   100006af0   STP    X29, X30, [SP,#32]   ;
   100006af4   ADD    X29, SP, #32       X29 = 0x100006b18 -|
   100006af8   SUB    SP, SP, 16           ; SP -= 0x10 (stack frame)
   100006afc   ADRP   X8, 1307             ; ->R8 = 0x100521000
   100006b00   LDR    X19, [X8, #2776]   ; -R19 = *(R8 + 2776) = .. *(0x100521ad8, no sym) = 0x0 ... ?..
; // if (R19  != 0) then goto 0x100006b28
   100006b04   CBNZ   X19, 0x100006b28   ;
   100006b08   ADRP   X8, 1284             ; ->R8 = 0x10050a000
   100006b0c   ADD    X8, X8, #464       X8 = 0x10050a1d0 -|
   100006b10   ADD    X0, X8, #16        X0 = 0x10050a1e0 -|
   100006b14   BL     libswiftCore.dylib::_swift_getInitializedObjCClass   ; 0x1003375e8
   100006b18   MOV    X19, X0           ; --X19 = X0 = 0x0
   100006b1c   ADRP   X8, 1307             ; ->R8 = 0x100521000
   100006b20   ADD    X8, X8, #2776      X8 = 0x100521ad8 -|
   100006b24   @TODO                    ;
   100006b28   ADRP   X8, 1266             ; ->R8 = 0x1004f8000
   100006b2c   LDR    X1, [X8, #3384]   ; -R1 = *(R8 + 3384) = .. *(0x1004f8d38, no sym) = -allocWithZone:-
   100006b30   MOVZ   X2, 0x0              ; ->R2 = 0x0
   100006b34   MOV    X0, X19           ; --X0 = X19 = 0x0
   100006b38   BL     libobjc.A.dylib::_objc_msgSend   ; 0x100336580
; [? allocWithZone:?]
   100006b3c   MOV    X20, X0           ; --X20 = X0 = 0x0
   100006b40   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006b44   LDR    X0, [X8, #3464]   ; -R0 = *(R8 + 3464) = .. *(0x100518d88, no sym) = 0x0 ... ?..
; // if (?  != 0) then goto 0x100006ba4
   100006b48   CBNZ   X0, 0x100006ba4   ;
   100006b4c   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006b50   LDR    X2, [X8, #2880]   ; -R2 = *(R8 + 2880) = .. *(0x100519b40, no sym) = 0x0 ... ?..
; // if (R2  != 0) then goto 0x100006b78
   100006b54   CBNZ   X2, 0x100006b78   ;
   100006b58   ADRP   X0, 1287             ; ->R0 = 0x10050d000
   100006b5c   ADD    X0, X0, #1496      X0 = 0x10050d5d8 -|
   100006b60   BL     libswiftCore.dylib::_swift_getInitializedObjCClass   ; 0x1003375e8
   100006b64   BL     libswiftCore.dylib::_swift_getObjCClassMetadata   ; 0x1003375f4
   100006b68   MOV    X2, X0            ; --X2 = X0 = 0x0
   100006b6c   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006b70   ADD    X8, X8, #2880      X8 = 0x100519b40 -|
   100006b74   @TODO                    ;
   100006b78   ADRP   X8, 1050             ; ->R8 = 0x100420000
   100006b7c   LDR    X8, [X8, #1280]   ; -R8 = *(R8 + 1280) = .. *(0x100420500, no sym) = -libswiftCore.dylib::__TMdSS-
   100006b80   ADD    X1, X8, #8         X1 = 0x24100001183032a0 -|
   100006b84   ADRP   X0, 1050             ; ->R0 = 0x100420000
   100006b88   LDR    X0, [X0, #1216]   ; -R0 = *(R0 + 1216) = .. *(0x1004204c0, no sym) = -libswiftCore.dylib::__TMPdCSs29_NativeDictionaryStorageOwner-
   100006b8c   ADRP   X3, 1050             ; ->R3 = 0x100420000
   100006b90   LDR    X3, [X3, #1440]   ; -R3 = *(R3 + 1440) = .. *(0x1004205a0, no sym) = -libswiftCore.dylib::__TWPSSSs8Hashable-
   100006b94   BL     libswiftCore.dylib::_swift_getGenericMetadata3   ; 0x1003375dc
   100006b98   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006b9c   ADD    X8, X8, #3464      X8 = 0x100518d88 -|
   100006ba0   @TODO                    ;
   100006ba4   ORR    X1, XZR, #0x20       ; ->R1 = 0x20
   100006ba8   ORR    X2, XZR, #0x0        ; ->R2 = 0x0
   100006bac   BL     libswiftCore.dylib::_swift_allocObject   ; 0x1003374f8
   100006bb0   MOV    X21, X0           ; --X21 = X0 = 0x0
   100006bb4   STR    XZR, [X21, #16]   ;= 0x0
   100006bb8   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006bbc   LDR    X0, [X8, #3472]   ; -R0 = *(R8 + 3472) = .. *(0x100518d90, no sym) = 0x0 ... ?..
; // if (?  != 0) then goto 0x100006c14
   100006bc0   CBNZ   X0, 0x100006c14   ;
   100006bc4   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006bc8   LDR    X2, [X8, #2880]   ; -R2 = *(R8 + 2880) = .. *(0x100519b40, no sym) = 0x0 ... ?..
; // if (R2  != 0) then goto 0x100006bf0
   100006bcc   CBNZ   X2, 0x100006bf0   ;
   100006bd0   ADRP   X0, 1287             ; ->R0 = 0x10050d000
   100006bd4   ADD    X0, X0, #1496      X0 = 0x10050d5d8 -|
   100006bd8   BL     libswiftCore.dylib::_swift_getInitializedObjCClass   ; 0x1003375e8
   100006bdc   BL     libswiftCore.dylib::_swift_getObjCClassMetadata   ; 0x1003375f4
   100006be0   MOV    X2, X0            ; --X2 = X0 = 0x0
   100006be4   ADRP   X8, 1299             ; ->R8 = 0x100519000
   100006be8   ADD    X8, X8, #2880      X8 = 0x100519b40 -|
   100006bec   @TODO                    ;
   100006bf0   ADRP   X8, 1050             ; ->R8 = 0x100420000
   100006bf4   LDR    X8, [X8, #1280]   ; -R8 = *(R8 + 1280) = .. *(0x100420500, no sym) = -libswiftCore.dylib::__TMdSS-
   100006bf8   ADD    X1, X8, #8         X1 = 0x2410000118303330 -|
   100006bfc   ADRP   X0, 1050             ; ->R0 = 0x100420000
   100006c00   LDR    X0, [X0, #1208]   ; -R0 = *(R0 + 1208) = .. *(0x1004204b8, no sym) = -libswiftCore.dylib::__TMPdCSs28_NativeDictionaryStorageImpl-
   100006c04   BL     libswiftCore.dylib::_swift_getGenericMetadata2   ; 0x1003375d0
   100006c08   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006c0c   ADD    X8, X8, #3472      X8 = 0x100518d90 -|
   100006c10   @TODO                    ;
   100006c14   ORR    X1, XZR, #0x78       ; ->R1 = 0x78
   100006c18   ORR    X2, XZR, #0x0        ; ->R2 = 0x0
   100006c1c   BL     libswiftCore.dylib::_swift_bufferAllocate   ; 0x10033751c
   100006c20   MOVZ   X8, 0x0              ; ->R8 = 0x0
   100006c24   ORR    X9, XZR, #0x4        ; ->R9 = 0x4
   100006c28   STP    X9, XZR, [X0,#16]   ;
   100006c2c   ORR    X9, XZR, #0x0        ; ->R9 = 0x0
   100006c30   MOVK   X9, 0x3ff5, LSL 48    X9 = 0x3ff5000000000000 -|
   100006c34   STR    X9, [X0, #32]     ;= X9  0x3ff5000000000000
   100006c38   MOVZ   X9, 0x28             ; ->R9 = 0x28
   100006c3c   ORR    W10, WZR, #0x1       ; ->R10 = 0x1
   100006c40   MADD   X11, X8, X9, X0   ;
   100006c44   STP    XZR, XZR, [X11,#56]   ;
   100006c48   STP    XZR, XZR, [X11,#40]   ;
   100006c4c   STRB   W10, [X11, #72]   ;= X10  0x1
   100006c50   CMN    X8, #1             X0 = 0xffffffffffffffff -|
   100006c54   CSINC  W11, W31, W31, VC   ;
; // if (R11  != 0) then goto 0x100006ca8
   100006c58   TBNZ   W11, #0, 0x100006ca8   ;
   100006c5c   CMP    X8, #2            ;
   100006c60   B.LT   0x100006c40       ;
   100006c64   STR    X0, [X21, #24]    ;= X0  0xffffffffffffffff
   100006c68   ADRP   X8, 1298             ; ->R8 = 0x100518000
   100006c6c   LDR    X8, [X8, #3408]   ; -R8 = *(R8 + 3408) = .. *(0x100518d50, no sym) = 0x10 ... ?..
   100006c70   STR    X21, [X20, xX8] ..    (?); -R21 = *(R20 + 0) = .. *(0x0, no sym) = 0x100000cfeedfacf ... (null)?..= X21
   100006c74   STP    X20, X19, [SP,#0]   ;
   100006c78   ADRP   X8, 1266             ; ->R8 = 0x1004f8000
   100006c7c   LDR    X1, [X8, #3392]   ; -R1 = *(R8 + 3392) = .. *(0x1004f8d40, no sym) = -init-
   100006c80   ADD    X0, SP, #0         X0 = 0x100006c84 -|
   100006c84   BL     libobjc.A.dylib::_objc_msgSendSuper2   ; 0x100336598
; [? init]
   100006c88   ADRP   X8, 1306             ; ->R8 = 0x100520000
   100006c8c   ADD    X8, X8, #560       X8 = 0x100520230 -|
   100006c90   STR    X0, [X8, #8]      ;= X0  0x0
   100006c94   SUB    X31, X29, #32        ; SP = R29 - 0x20
   100006c98   LDP    X29, X30, [SP,#
darkknight
 
Posts: 66
Joined: Mon Apr 18, 2016 10:49 pm


Return to Tools

Who is online

Users browsing this forum: No registered users and 3 guests