본문 바로가기

카테고리 없음

iOS Reverse Engineering - Case 1

 

 

 

Directory

Container Tree

더보기
➜  Millie 4BCC644D-9819-477B-AC15-DB1AA078F0F4 tree
.
├── Documents
│   ├── default.realm
│   ├── default.realm.lock
│   ├── default.realm.management
│   │   ├── access_control.balance.mx
│   │   ├── access_control.control.mx
│   │   └── access_control.write.mx
│   ├── epubViewer
│   │   └── dist
│   │       ├── Drawing.js
│   │       ├── app.js
│   │       ├── ePub.js
│   │       └── index.html
│   └── preload.json
├── Library
│   ├── Application Support
│   │   ├── Google
│   │   │   ├── FIRApp
│   │   │   │   ├── FIREBASE_DIAGNOSTICS_HEARTBEAT_DATE
│   │   │   │   └── HEARTBEAT_INFO_STORAGE
│   │   │   └── Measurement
│   │   │       ├── google-app-measurement.sql
│   │   │       └── google_experimentation_database.sql
│   │   └── com.crashlytics
│   │       └── CLSUserDefaults.plist
│   ├── Caches
│   │   ├── WebKit
│   │   │   ├── CacheStorage
│   │   │   │   ├── 65193E196770AF156D50FB9B0EEA8E02F0872FD7
│   │   │   │   │   ├── Version 16
│   │   │   │   │   │   ├── Blobs
│   │   │   │   │   │   └── salt
│   │   │   │   │   ├── estimatedsize
│   │   │   │   │   └── origin
│   │   │   │   └── salt
│   │   │   ├── NetworkCache
│   │   │   │   └── Version 16
│   │   │   │       ├── Blobs
│   │   │   │       │   ├── 0036C7C008C952D8A4458EE7B1E6625C7C76DB4F
│   │   │   │       │   ├── 0054E30C86E3FC30EA6F36E4F1C513A66FAC0656
│   │   │   │       │   ├── 02DEF3AA9CF584B1BA8ABDD34D7577AA5343341D
│   │   │   │       │   ├── 04A10E7FAE9EB7EE20D1D945C988F4B937654EB7
│   │   │   │       │   ├── 0807A46547E3A8249378FF3D59155DBCADE20644
│   │   │   │       │   ├── 0A6A8277B4CDB8770E51800C5C5B87390A406B5F
│   │   │   │       │   ├── 0CA9C18A4D652A58AC64CAF9B8CE7D2373ECC282
│   │   │   │       │   ├── 12AB650E7017C2D7BF8396229220D75A81C61A4E
│   │   │   │       │   ├── 159E5A6807798D9992010C81FE3452E4AEBEBD7A
│   │   │   │       │   ├── 17ADB8917B58DA49ABD64AD9BC752C191B06D427
│   │   │   │       │   ├── 180F1F738B7E804FE2A112837CD24694F7BB7C7A
│   │   │   │       │   ├── 1AD3A7170E374E23C5ED8D2497C91637570FC233
│   │   │   │       │   ├── 1D30866DE6DAC6B59616488A28EAAF8D920ED966
│   │   │   │       │   ├── 1DDE76E08CEC6EFF0077EF8E8996D0A818BACD6F
│   │   │   │       │   ├── 1DFA383EE5087CCF6C0AA4812FD6EDA7A9DDD91D
│   │   │   │       │   ├── 1EF09C1FB09BC0D7EB5AAA7FD0731F49D04829A9
│   │   │   │       │   ├── 1FDEC1AAD85D7E995A219E480508E1F62E7BA28E
│   │   │   │       │   ├── 20B9F1F3237E323CA6663100666B9AD4D5586FE1
│   │   │   │       │   ├── 22F816EE1CFC458999E96D7AEB3A0F47AA54AC92
│   │   │   │       │   ├── 25DEF4DA8EB3EC6EE726BF628E8D0A4BEFCCBD7A
│   │   │   │       │   ├── 26661C2F2054F0D45BBAC10DCD96238B375FBB02
│   │   │   │       │   ├── 2945B32ED502979BB6E34EDCB4E476D00B14360D
│   │   │   │       │   ├── 31F4C36B70A471D29BCC37CAB857881A7FD55389
│   │   │   │       │   ├── 3314776025FEA8918A29C6DC9831AE865B529027
│   │   │   │       │   ├── 336F22C96F2190E71700CC2D415965E85302C524
│   │   │   │       │   ├── 3654EB62B10A3230B50BAF3DB8CB7973BF60476D
│   │   │   │       │   ├── 368B7538A71B35D2685464FB02BBE439CA4BA2C2
│   │   │   │       │   ├── 38192690407CB2DF9CE6D3B486819C01FDA83E0C
│   │   │   │       │   ├── 3AD9186859D0885105DE5D85F01D433B808BD873
│   │   │   │       │   ├── 3F0C67E5194C7B93563D098B67E6FA635B64D8C6
│   │   │   │       │   ├── 3FD69658FAB3496624ABCA565D7231066F6A569A
│   │   │   │       │   ├── 41ADC10ACC0A75314650D3C9B7BB1F19B20ABCFF
│   │   │   │       │   ├── 42E9874BA8F4C9F0AA6BED0CE3C97D0ECBA55439
│   │   │   │       │   ├── 4309EEF1C877FC1F2E48050FC142D0DAF0D0D680
│   │   │   │       │   ├── 4621B3E946F85CF1712BEF0432D70CCEE5DD9B2B
│   │   │   │       │   ├── 49495ABEB4E504A4D908977F3AEC9BA71D6728AC
│   │   │   │       │   ├── 4C3B1A6700BEA8D7CE134B28E1B744B134C681AB
│   │   │   │       │   ├── 50EF998BBAEDA458542D6D8BDB4A3789C7971255
│   │   │   │       │   ├── 51B95FA60C63F44A1B367C83189B0F58144042CA
│   │   │   │       │   ├── 51D8EBDD4BE9C25231FB6D9552D33DA9DEBD3ED6
│   │   │   │       │   ├── 561E1A26C35FE36B0061CB682B65FC7E853DAE43
│   │   │   │       │   ├── 5F712380872F4F20A40EAE128436237C305E2955
│   │   │   │       │   ├── 5FC1E698A3334EB777BDAAE944E2D1FF1F1CA7E1
│   │   │   │       │   ├── 5FC5FB357A4ECD95201FBE1D090DD80CC4E23F6A
│   │   │   │       │   ├── 5FE904BE3639ADB04CA6B6CC9D1892B9AEF2B611
│   │   │   │       │   ├── 602CA9C7D2BDB4AE67B76680903B8927D66B66EB
│   │   │   │       │   ├── 62577A35993E5C85FD710F911B2C40C649DC06E3
│   │   │   │       │   ├── 67792358ABF4834116F747829EDC3EFAA1097A76
│   │   │   │       │   ├── 6A1D88036BB793A842D9555E951D7993FA64B5B6
│   │   │   │       │   ├── 6A4D3F2DFDDE3B012695273F29E2A1729DF6020C
│   │   │   │       │   ├── 6AD24292D64058FA72737C17ED47A62B97434AFD
│   │   │   │       │   ├── 6C6E5CD7C85BE93C4837DE575433BA00A3CAC7EA
│   │   │   │       │   ├── 6FC38DFFA36026CF38B9A4BB45C54E812898E50E
│   │   │   │       │   ├── 75C35BDFC8248533DCF5882AE72F2FCDEF3A767F
│   │   │   │       │   ├── 772A980C1BBCDC75BF06544067F7E19BBD897631
│   │   │   │       │   ├── 7876FCC040643C8BA9A809FF3B35A05C129EDF74
│   │   │   │       │   ├── 80146358BAEBD8D2AB96D9080AE82DA0AC43B03E
│   │   │   │       │   ├── 803F198C248C70FE5E06AFFC97FB85E67FF12AAE
│   │   │   │       │   ├── 82BBA782D4D0621E0A8A5EB9DE7564D164984057
│   │   │   │       │   ├── 82BBB8B5A7115DCA71CC35901239D0066EFA555B
│   │   │   │       │   ├── 8306399E8BC4911C5C1E25F606D629C8C13DED6F
│   │   │   │       │   ├── 8308F51DE918A543259501479EAB584DAA236E20
│   │   │   │       │   ├── 83D0CA582C241149F9FF26298E4C40DC0B7C8850
│   │   │   │       │   ├── 84CD73A2150134AA3652F8E1BADCBE111A931337
│   │   │   │       │   ├── 85E1DA00A764A0D1B52A3E5AC2C1D0298190F6B2
│   │   │   │       │   ├── 8688B213EBB00D3C906CA52254DA9FD83C18B3FF
│   │   │   │       │   ├── 88C389712457216B0581DFB285DC95E564B5333E
│   │   │   │       │   ├── 8A1BBDDC4B24C1C6E87D4F0A9B572195525B0947
│   │   │   │       │   ├── 9038FFD83AEF54155DAA566888F7B059768C553A
│   │   │   │       │   ├── 9487173B17EEBF6001F28BE111C216ACB1D9E1E0
│   │   │   │       │   ├── 9954F3740348D274581F0E9C244B606173FB1C80
│   │   │   │       │   ├── 9985535E6B892136C831BCF580AFAFC080560803
│   │   │   │       │   ├── A070F5E14573FB70AB2B017BF53453FFDD5DC048
│   │   │   │       │   ├── A2345BD502061A2CCDF87DE775829FB44362E98A
│   │   │   │       │   ├── A2CD4F273F887BA8A91AAE146A68462270608408
│   │   │   │       │   ├── A4F525F228F751A2A3C96E2F7DF865A71BDE34F9
│   │   │   │       │   ├── A88661FDF3222EA63D026CE3EE4CDECAE518D49B
│   │   │   │       │   ├── AAB335D1ECE79F74B4163A0FCF78BA4C88D33976
│   │   │   │       │   ├── AAD205BE9CFEADE2E4C25A169051DA5B4535201C
│   │   │   │       │   ├── AB0997B1334BD98D9D6CE5C9ED6B8B4B73F37D8E
│   │   │   │       │   ├── AE56FE4BE41D669DCA36F70E78A8D3143C6B4A52
│   │   │   │       │   ├── AE7CACD6C40DDA8A22CB9492D7E806B22AEC9562
│   │   │   │       │   ├── B03EFEE70514FBFB84FB8DD1217FA7B65DDA6EF5
│   │   │   │       │   ├── B1561EE2184CD0A1F0A2776BCA4D2641745D160B
│   │   │   │       │   ├── B191F0114EC230442D146F59A2CEB909E2724671
│   │   │   │       │   ├── B44A10B9D05BF186339F9EBE95990758B77F1706
│   │   │   │       │   ├── B53261038ED4E1430BF58B88C65ADDE6CCF575C7
│   │   │   │       │   ├── B7A8E4DCE46E533246012128C3F72D12E8247388
│   │   │   │       │   ├── BAC0B60BB5A9CD9BD7B6307A28DDE7F1BDFF4AEA
│   │   │   │       │   ├── BCC08901B05B43EC5826A8D7D4AF01DE6DC2AC6F
│   │   │   │       │   ├── C6CFAF66F12BF4FAA69A1BBF53BA619748A97622
│   │   │   │       │   ├── CA68F202FF1F33CD647AC06E61695E4BB1520859
│   │   │   │       │   ├── CB3D8B12294A8EA6046206A1089CDA3AC5D2DAA6
│   │   │   │       │   ├── CE4249E39DC14F23062451533CD164CC1546FFCB
│   │   │   │       │   ├── CE8268694B35854D9145C5C7E445C659786B999D
│   │   │   │       │   ├── D1AB1DD975B46A546D9E4CC76091433763E110C6
│   │   │   │       │   ├── D361DBCEF33CA4B7B6AB7C326A7B6E39008DDF26
│   │   │   │       │   ├── D54AEC0F00973E32ED6489FE8F3F71C355BE5902
│   │   │   │       │   ├── DB3AB85F61CB3BF5C67508FF44F58F0EB0DF96D8
│   │   │   │       │   ├── DBE2D2C2ACB16DBB30C57125503EBFD3D94C0ECE
│   │   │   │       │   ├── E2A4184321B688CF3CAA7216647B3F80A0FB5FD8
│   │   │   │       │   ├── E2D70E0F81B246EBA7043E8E78E8DDB3D1B8EDB0
│   │   │   │       │   ├── E3BFA3C0A9A6FA115AD9DA636129BF5846267ADA
│   │   │   │       │   ├── E4922ABEF81A372361B92F84C154B0D0C824DA2A
│   │   │   │       │   ├── E9B30B976D2BE221E46CD71EF4ED791447AE2C87
│   │   │   │       │   ├── E9BF9C9CCACE157AC10D4F82DBF105E6E878F444
│   │   │   │       │   ├── EA924F6D32AD68B3D46DC1F5779B5A9D2A40E7A1
│   │   │   │       │   ├── EB67BD6602DF7EE6844AB55F84AAF3361001B6E5
│   │   │   │       │   ├── ECDA0F3BA4AEC2440308067F6A996F493747FC44
│   │   │   │       │   ├── ED05CA9E0D03EA7A9D3F3F9E102B16BEA338CA2B
│   │   │   │       │   ├── EE84C1D81286424DD004BBE1E2147701F668FCE1
│   │   │   │       │   ├── F0460B0B0509AC17B3679BAE5F65053FC16EE718
│   │   │   │       │   ├── F0659E31AA4E6C159A152F18C1B20F65150DADD6
│   │   │   │       │   ├── F06BD352AAE9D14882DFCD1E334DB421CD937DA8
│   │   │   │       │   ├── F096F85869287C8FFFA49AF871711C5BF7D2D7A3
│   │   │   │       │   ├── F307C465D9426C44C20A9228626C3673162B5E25
│   │   │   │       │   ├── F3608416BE78C4C3B94AEEA4115B84CF78E7264F
│   │   │   │       │   ├── F3953F0610EB261929F2AEE2D489607594B1F3F9
│   │   │   │       │   ├── F581C7E1885DBE61BE3527DDAD2FECE24D65DB3D
│   │   │   │       │   ├── F59F78F995D2375869AA5746D097E2BDCF5D56D5
│   │   │   │       │   ├── F7B8BB3631CF7ABE76678DB4722ADC8262930956
│   │   │   │       │   ├── FA419DCF45CC8F1C2BFC3F8294C39B8E89DC989E
│   │   │   │       │   ├── FAC57EDDE81FE91B0DFFBE9DCDDED7A19CDF8D0D
│   │   │   │       │   ├── FE23EC512ADA462277B4E91E4477FBEF30DB29D1
│   │   │   │       │   └── FF4925BBA7357246C3500B100ADE10B2A356FBBC
│   │   │   │       ├── Records
│   │   │   │       │   └── FEC2884C53B900765C95E0AF5B7DA9E3A3656F85
│   │   │   │       │       └── Resource
│   │   │   │       │           ├── 019BAF30EFA59573B8106BC1E3FADCFCD5472ADF
│   │   │   │       │           ├── 019BAF30EFA59573B8106BC1E3FADCFCD5472ADF-blob
│   │   │   │       │           ├── 051D4DE657368D1F4C2A4FB25448DFF179E906A2
│   │   │   │       │           ├── 051D4DE657368D1F4C2A4FB25448DFF179E906A2-blob
│   │   │   │       │           ├── 053202630937E4CA0F20CC89547BCDD31878FFBF
│   │   │   │       │           ├── 053202630937E4CA0F20CC89547BCDD31878FFBF-blob
│   │   │   │       │           ├── 06AD853A0E6C5EC86905037486AA7E19EA0E92C5
│   │   │   │       │           ├── 0987B6FB5AD458A08DD56CEECE3F151BCE5CCACE
│   │   │   │       │           ├── 0B231A289B7D4E88FCCB1FA837904186C668E981
│   │   │   │       │           ├── 0D58EAF4230D1264ACCEAFE8EE6F601AA8B591D7
│   │   │   │       │           ├── 0DB3F6B41CEA14C65438646D32F3432F8EE0825D
│   │   │   │       │           ├── 0DB3F6B41CEA14C65438646D32F3432F8EE0825D-blob
│   │   │   │       │           ├── 0E33C3DFD2166B069BB811323C65357067C86BE4
│   │   │   │       │           ├── 0E33C3DFD2166B069BB811323C65357067C86BE4-blob
│   │   │   │       │           ├── 0E92C87296329CD5E49E28AD7C1EF7C7F9DC148F
│   │   │   │       │           ├── 0FF232C0F76BD57ECDDBAE4DC5522BABA9484DE4
│   │   │   │       │           ├── 0FF232C0F76BD57ECDDBAE4DC5522BABA9484DE4-blob
│   │   │   │       │           ├── 13BC405794692DA8DB07D95CEF9421A3D1508C2B
│   │   │   │       │           ├── 13BC405794692DA8DB07D95CEF9421A3D1508C2B-blob
│   │   │   │       │           ├── 13E779B69972DE29F3BD76F0C71D89CA8CD73C22
│   │   │   │       │           ├── 13E779B69972DE29F3BD76F0C71D89CA8CD73C22-blob
│   │   │   │       │           ├── 13ED764B26C99821AE7A41CAD487158321C36B07
│   │   │   │       │           ├── 13ED764B26C99821AE7A41CAD487158321C36B07-blob
│   │   │   │       │           ├── 1431EE4318AFE02D37D747A82F57C4F371DAA77C
│   │   │   │       │           ├── 1431EE4318AFE02D37D747A82F57C4F371DAA77C-blob
│   │   │   │       │           ├── 1444C93B128C9B61E121E650156CC52F2BCB33EE
│   │   │   │       │           ├── 15789D6BE508EAE92B8A447FA9A020E11F01F4B2
│   │   │   │       │           ├── 15789D6BE508EAE92B8A447FA9A020E11F01F4B2-blob
│   │   │   │       │           ├── 15B138F62EBC504A0106B75D663FEB2578FF81C6
│   │   │   │       │           ├── 1736727CBF2F44D48BDE2D4976B678BB53E2680C
│   │   │   │       │           ├── 1736727CBF2F44D48BDE2D4976B678BB53E2680C-blob
│   │   │   │       │           ├── 1846FECF5B22949D53FBCCBDCEF18272FA74E3AB
│   │   │   │       │           ├── 1846FECF5B22949D53FBCCBDCEF18272FA74E3AB-blob
│   │   │   │       │           ├── 184FEB40942580366E0CDEE683BE976554951391
│   │   │   │       │           ├── 18DE9132424A9CB37C6A5492132AEAD1F5231D9C
│   │   │   │       │           ├── 18DE9132424A9CB37C6A5492132AEAD1F5231D9C-blob
│   │   │   │       │           ├── 18FD39C62CDEAA9FE14C84E14FAFF789AB1A13FF
│   │   │   │       │           ├── 1945A6B5C12BDB4E6FF24BB88B76FAB414717843
│   │   │   │       │           ├── 1CD1C718121F2E583135A0F06087F6E1315ADAC6
│   │   │   │       │           ├── 1DBB9B68E68558113BA1405B20F28F6346E273DD
│   │   │   │       │           ├── 1F45C9412F2AC8FE64C109A80C2A51FA31BCCE0D
│   │   │   │       │           ├── 1F45C9412F2AC8FE64C109A80C2A51FA31BCCE0D-blob
│   │   │   │       │           ├── 1FEC95A676EA7580A53F978E2351B6866D7E38DC
│   │   │   │       │           ├── 20BA69555131FEA30D6F765AD4A0794E0DD186C2
│   │   │   │       │           ├── 219FEE28708E2EA74A0A6B046414D570CCAB9D4A
│   │   │   │       │           ├── 219FEE28708E2EA74A0A6B046414D570CCAB9D4A-blob
│   │   │   │       │           ├── 23AAE079ECC44322A55C565A4EF81BB942335CE2
│   │   │   │       │           ├── 23C1BDCA06280983E78A61B01090474A13881149
│   │   │   │       │           ├── 23C1BDCA06280983E78A61B01090474A13881149-blob
│   │   │   │       │           ├── 24295878A0380C8B78B050B2CB3292358AA26EBA
│   │   │   │       │           ├── 252E2875DF83BDAF08FCDFABFBE912A66B559106
│   │   │   │       │           ├── 252E2875DF83BDAF08FCDFABFBE912A66B559106-blob
│   │   │   │       │           ├── 2558FA24A96C6569258DB045460C3E1AB67D0830
│   │   │   │       │           ├── 256E9E4C62D1D240A27881EA743961FBF24B6929
│   │   │   │       │           ├── 256E9E4C62D1D240A27881EA743961FBF24B6929-blob
│   │   │   │       │           ├── 25A336500F5D538AC596AA74C56E2BC1995E5ABE
│   │   │   │       │           ├── 29F59DBD8FEE1303DACAF87CAE5033BEB47D3C47
│   │   │   │       │           ├── 2A57CB67CB57F84D80F13A46D0DE326E85657377
│   │   │   │       │           ├── 2A978E14EDCF07C0C17D372B4B9B5DD0CD783BD6
│   │   │   │       │           ├── 2A978E14EDCF07C0C17D372B4B9B5DD0CD783BD6-blob
│   │   │   │       │           ├── 2A9947458EB4B8320336D23E4DDE20D4AB3CD428
│   │   │   │       │           ├── 2A9947458EB4B8320336D23E4DDE20D4AB3CD428-blob
│   │   │   │       │           ├── 2B527227684D82A45DEA47E2032ABBCA6003963A
│   │   │   │       │           ├── 2B6E16322A88ABC6D681289A07E886CEDC156187
│   │   │   │       │           ├── 2B6E16322A88ABC6D681289A07E886CEDC156187-blob
│   │   │   │       │           ├── 2B72B2797E5C8F5AC7B2FA355DA4200B9087F520
│   │   │   │       │           ├── 2B72B2797E5C8F5AC7B2FA355DA4200B9087F520-blob
│   │   │   │       │           ├── 2C1A5D419536FF141146F71A3A8D7C2226D59259
│   │   │   │       │           ├── 2C3FCE6F3A164E23C47B24D72C25B40F6526BC1F
│   │   │   │       │           ├── 2C3FCE6F3A164E23C47B24D72C25B40F6526BC1F-blob
│   │   │   │       │           ├── 2DA78B5EE6A8E1DE86FA0AAC9A8896FE27131587
│   │   │   │       │           ├── 2E9DEED4BB670E5D39C8EFF35691CAA43A76EC49
│   │   │   │       │           ├── 2E9DEED4BB670E5D39C8EFF35691CAA43A76EC49-blob
│   │   │   │       │           ├── 2ED2BB1B411F25703B4FA2D7BF1EDA24C48641B9
│   │   │   │       │           ├── 2ED2BB1B411F25703B4FA2D7BF1EDA24C48641B9-blob
│   │   │   │       │           ├── 2F8F272EAD88EA7B31D3685AD3340CE2DB9B1095
│   │   │   │       │           ├── 2F8F272EAD88EA7B31D3685AD3340CE2DB9B1095-blob
│   │   │   │       │           ├── 2FED6482D1F084022C10D47D44A07E77B0FADF86
│   │   │   │       │           ├── 2FED6482D1F084022C10D47D44A07E77B0FADF86-blob
│   │   │   │       │           ├── 30D5F54E04D349D3AD30DE511654BE9B965A6BF3
│   │   │   │       │           ├── 31CB14D3810FDE4B11643D292871956131F11382
│   │   │   │       │           ├── 31CB14D3810FDE4B11643D292871956131F11382-blob
│   │   │   │       │           ├── 31F2804D8325D722059D23150ADF539E7D010478
│   │   │   │       │           ├── 3330E2FC386D390DFFE60AF7A542422A989B28B9
│   │   │   │       │           ├── 3330E2FC386D390DFFE60AF7A542422A989B28B9-blob
│   │   │   │       │           ├── 348BFF301082D9292DF8A8C822B9B130EEFE487A
│   │   │   │       │           ├── 36CAEE73B5AD295E747DEBB1C291A757C15E6530
│   │   │   │       │           ├── 377C326C3AB3F23AAC016D4AC9C722FBF6BC85A9
│   │   │   │       │           ├── 377C326C3AB3F23AAC016D4AC9C722FBF6BC85A9-blob
│   │   │   │       │           ├── 3A5FAE2084EC2BD90E6D6B385BC54E2B2C8A94E2
│   │   │   │       │           ├── 3AC81627C2D7120EAFA8147E28634D07E2A98218
│   │   │   │       │           ├── 3AC81627C2D7120EAFA8147E28634D07E2A98218-blob
│   │   │   │       │           ├── 3AD6B28ADE3676AA44A5ADD9EEC994104C918D94
│   │   │   │       │           ├── 3AD6B28ADE3676AA44A5ADD9EEC994104C918D94-blob
│   │   │   │       │           ├── 3C447205DA2FEB6B2E3912C0EBE38791CA654B2C
│   │   │   │       │           ├── 3C447205DA2FEB6B2E3912C0EBE38791CA654B2C-blob
│   │   │   │       │           ├── 3CF23A3B3B1300C1D8D9CD0C851B81A946A792D9
│   │   │   │       │           ├── 3CF23A3B3B1300C1D8D9CD0C851B81A946A792D9-blob
│   │   │   │       │           ├── 41E925C163880DB19377E243187FCAF772F3F684
│   │   │   │       │           ├── 41E925C163880DB19377E243187FCAF772F3F684-blob
│   │   │   │       │           ├── 426F93518F2768B6014B378336C87C09945F8289
│   │   │   │       │           ├── 43C0064F95BDA4F0812F50ECD8500E2665D8F7AE
│   │   │   │       │           ├── 452B55FE9EE1ECF69F5B308DD7621C01A2D9EDB9
│   │   │   │       │           ├── 452B55FE9EE1ECF69F5B308DD7621C01A2D9EDB9-blob
│   │   │   │       │           ├── 4552EFDC3DC9AE5382E3B4DE18EFC71DD03D3BA5
│   │   │   │       │           ├── 4552EFDC3DC9AE5382E3B4DE18EFC71DD03D3BA5-blob
│   │   │   │       │           ├── 47B95CEA97B0B4833A133D2DB18F3368CCD10650
│   │   │   │       │           ├── 47B95CEA97B0B4833A133D2DB18F3368CCD10650-blob
│   │   │   │       │           ├── 4A8C7D968045A585D487F3BAB23A6E993F50C7B1
│   │   │   │       │           ├── 4A8C7D968045A585D487F3BAB23A6E993F50C7B1-blob
│   │   │   │       │           ├── 4BE46753F77649332C794C5BE738F452E2101DD7
│   │   │   │       │           ├── 4C1A38A907DCCBDF2381075F8C74E4E3B4131DE9
│   │   │   │       │           ├── 4C1A38A907DCCBDF2381075F8C74E4E3B4131DE9-blob
│   │   │   │       │           ├── 4C2DCDE3E9BF081A019809BB1F8DD382662D135B
│   │   │   │       │           ├── 4C2DCDE3E9BF081A019809BB1F8DD382662D135B-blob
│   │   │   │       │           ├── 4C8B2475C96B318982E1FC2243F07DE7E004A814
│   │   │   │       │           ├── 4C8B2475C96B318982E1FC2243F07DE7E004A814-blob
│   │   │   │       │           ├── 4D23C37D0C864B7BC5631661FABA281E4E2BED8F
│   │   │   │       │           ├── 4E0C61A3DC66CD9D8C2E23282683807D61A26F17
│   │   │   │       │           ├── 4E0C61A3DC66CD9D8C2E23282683807D61A26F17-blob
│   │   │   │       │           ├── 4E63815998AB62147B7A7FC2EB6011359A43FED5
│   │   │   │       │           ├── 4E63815998AB62147B7A7FC2EB6011359A43FED5-blob
│   │   │   │       │           ├── 4F410D33EEDF4E46FB1AF7647D261BE66B537419
│   │   │   │       │           ├── 4F9C5E04243AA682DA798F8F18FE88CEC83CB4F5
│   │   │   │       │           ├── 51438DCA0F0BEA59B09F67E6BF41C46F598F9AC3
│   │   │   │       │           ├── 51438DCA0F0BEA59B09F67E6BF41C46F598F9AC3-blob
│   │   │   │       │           ├── 52600A65A9EB9A38CF492AB2C7123FCEC7A5B359
│   │   │   │       │           ├── 52709866CF293A68F7FBC532F2E963E510A07099
│   │   │   │       │           ├── 52709866CF293A68F7FBC532F2E963E510A07099-blob
│   │   │   │       │           ├── 531E96CAFF7A6F01FEDDD6885F7F0F9917E9DE6B
│   │   │   │       │           ├── 55F242CA94B5732E946E94431008EC923858A34A
│   │   │   │       │           ├── 55F242CA94B5732E946E94431008EC923858A34A-blob
│   │   │   │       │           ├── 5A4A774A0439D9D332CF262695F0B705E6DF48CC
│   │   │   │       │           ├── 5A724E2EA2D4C08287E54EB9C989FF879D4C6E2E
│   │   │   │       │           ├── 5CD05DA3A042CCDDB32BAFE826B6BFD5EC672547
│   │   │   │       │           ├── 5DB03A2E37D2BEED8388D2174C6EECB058899028
│   │   │   │       │           ├── 5DB03A2E37D2BEED8388D2174C6EECB058899028-blob
│   │   │   │       │           ├── 5EF16D96B1A2DC2978C5B33B1049812D37FDB7E7
│   │   │   │       │           ├── 5EF16D96B1A2DC2978C5B33B1049812D37FDB7E7-blob
│   │   │   │       │           ├── 5F503FCE2DCFE7B785757F9B6AEE4FF4E2D9D690
│   │   │   │       │           ├── 5F503FCE2DCFE7B785757F9B6AEE4FF4E2D9D690-blob
│   │   │   │       │           ├── 5FCE621A65E57FC71A0F8C7F146985098742429B
│   │   │   │       │           ├── 5FCE621A65E57FC71A0F8C7F146985098742429B-blob
│   │   │   │       │           ├── 63B146B5057A02C3A9FF5A40640B46B978C8CDAC
│   │   │   │       │           ├── 63C72F4BD3FD21482EA127FD8034A77CFC2E5026
│   │   │   │       │           ├── 63C72F4BD3FD21482EA127FD8034A77CFC2E5026-blob
│   │   │   │       │           ├── 65509C35D5530E9D52C4D7884FD6C5A9F875A8F4
│   │   │   │       │           ├── 65509C35D5530E9D52C4D7884FD6C5A9F875A8F4-blob
│   │   │   │       │           ├── 655E163ACDAE9D84A44EB38BB7AA109A0F39068A
│   │   │   │       │           ├── 65F6647CFE33B75DF27DD0593EF7C10F9661C1C1
│   │   │   │       │           ├── 6681098C53DB900C957E2A4745BCCF76E0FE5676
│   │   │   │       │           ├── 6681098C53DB900C957E2A4745BCCF76E0FE5676-blob
│   │   │   │       │           ├── 6810945F11E3F8355E5A759FAF2DD89F4620E8A3
│   │   │   │       │           ├── 6AFE7F0DCB625927D9135A300D11E39A2CB8C570
│   │   │   │       │           ├── 6AFE7F0DCB625927D9135A300D11E39A2CB8C570-blob
│   │   │   │       │           ├── 6C1B44815EAB97EF89F7A8BDD408C23C830F1A46
│   │   │   │       │           ├── 6C1B44815EAB97EF89F7A8BDD408C23C830F1A46-blob
│   │   │   │       │           ├── 6D1533549DDDCC2835351A9D71C5E895B6B1FC16
│   │   │   │       │           ├── 6DD76A3F7C4EA5FFD9F4D3220EE53C1B6AA210B7
│   │   │   │       │           ├── 6DECAB8AF9B54065F087F84B206D7F41703F9040
│   │   │   │       │           ├── 6DF521372F5A0ED551CC85468150D6C4BAEB265C
│   │   │   │       │           ├── 7067B2D3253D5CF49854B4247B396BCBAF8A4ABB
│   │   │   │       │           ├── 7067B2D3253D5CF49854B4247B396BCBAF8A4ABB-blob
│   │   │   │       │           ├── 745C45822C4BA9D70AFC8A81ED297265A6C8D49F
│   │   │   │       │           ├── 745C45822C4BA9D70AFC8A81ED297265A6C8D49F-blob
│   │   │   │       │           ├── 74B55C6EC0F3C9F9EFD4D3C16B9F60CDEB3977C7
│   │   │   │       │           ├── 74B55C6EC0F3C9F9EFD4D3C16B9F60CDEB3977C7-blob
│   │   │   │       │           ├── 7660F7BEA55ECD335CCD5EF7EA92C3FCB5B4F5BB
│   │   │   │       │           ├── 7660F7BEA55ECD335CCD5EF7EA92C3FCB5B4F5BB-blob
│   │   │   │       │           ├── 7685E41C9AA57B637FC4D19EA65EB82924749D49
│   │   │   │       │           ├── 7685E41C9AA57B637FC4D19EA65EB82924749D49-blob
│   │   │   │       │           ├── 777CACF84CB52BACA63B80312717549B5A3C016F
│   │   │   │       │           ├── 79A448E63147ABD282277D0D8CEC0C9D2A02FA1E
│   │   │   │       │           ├── 79A448E63147ABD282277D0D8CEC0C9D2A02FA1E-blob
│   │   │   │       │           ├── 7AEEA4ED057C28A7270056B653A9E3FB04A153F6
│   │   │   │       │           ├── 7CE6CCE67579736F2EEFE8BCD33DBCF0DED2A23F
│   │   │   │       │           ├── 7CE6CCE67579736F2EEFE8BCD33DBCF0DED2A23F-blob
│   │   │   │       │           ├── 7E481991A17A0516245CD0D3CA07342BC5BD2CC6
│   │   │   │       │           ├── 7E481991A17A0516245CD0D3CA07342BC5BD2CC6-blob
│   │   │   │       │           ├── 7F30262A0AA0B8AF3EABA71DECDCC85BF77F9B90
│   │   │   │       │           ├── 7F30262A0AA0B8AF3EABA71DECDCC85BF77F9B90-blob
│   │   │   │       │           ├── 817A5E19D4345BA61E522A6CDDF00A14C308B2B7
│   │   │   │       │           ├── 8378BA994BF3E6705F446198CCBBABD01EBE91FB
│   │   │   │       │           ├── 8378BA994BF3E6705F446198CCBBABD01EBE91FB-blob
│   │   │   │       │           ├── 8383E28C0D0A7C4C906519A85B71EDFB836581B9
│   │   │   │       │           ├── 8383E28C0D0A7C4C906519A85B71EDFB836581B9-blob
│   │   │   │       │           ├── 83BE94A4F7B84AF59B75CB3B3700BAB4E865F4CF
│   │   │   │       │           ├── 83BE94A4F7B84AF59B75CB3B3700BAB4E865F4CF-blob
│   │   │   │       │           ├── 8420D7DBC80F0D7A353D1FF41624EF3220E36966
│   │   │   │       │           ├── 871CB2A5838C7BAE7CEC509787958662A2644178
│   │   │   │       │           ├── 88E395A0FF29895B2DC7FBA6D11D69350A3C061B
│   │   │   │       │           ├── 8B402B7796F942B2C613740BB6456BF07FBA256A
│   │   │   │       │           ├── 8B402B7796F942B2C613740BB6456BF07FBA256A-blob
│   │   │   │       │           ├── 8C9E75396728E2DA73B06BD572526E8ED1C7C0F0
│   │   │   │       │           ├── 8D4481F731DA92E1A0961D4A94E9DE13B89359E8
│   │   │   │       │           ├── 8D4481F731DA92E1A0961D4A94E9DE13B89359E8-blob
│   │   │   │       │           ├── 8E13409772ABA09F76024FACB8425EFBEEF32BB6
│   │   │   │       │           ├── 8E13409772ABA09F76024FACB8425EFBEEF32BB6-blob
│   │   │   │       │           ├── 91F5FA516620CFA555C306F8CDFF31712711B8BD
│   │   │   │       │           ├── 91F5FA516620CFA555C306F8CDFF31712711B8BD-blob
│   │   │   │       │           ├── 929F5E6AAE24131CB8720156A53E17D6BC936B18
│   │   │   │       │           ├── 929F5E6AAE24131CB8720156A53E17D6BC936B18-blob
│   │   │   │       │           ├── 945B5F315274DEC4F3ADD7AC1A54180110C68644
│   │   │   │       │           ├── 945B5F315274DEC4F3ADD7AC1A54180110C68644-blob
│   │   │   │       │           ├── 95E3DE23111BAE0677899B2F62BB2B0975FFBB89
│   │   │   │       │           ├── 95E3DE23111BAE0677899B2F62BB2B0975FFBB89-blob
│   │   │   │       │           ├── 968E1A8A9DEB66AF82CCE6973B0485B2F66D4E3D
│   │   │   │       │           ├── 968E1A8A9DEB66AF82CCE6973B0485B2F66D4E3D-blob
│   │   │   │       │           ├── 978E8CD51E63BAD446C4A43945E8003414E9012F
│   │   │   │       │           ├── 978E8CD51E63BAD446C4A43945E8003414E9012F-blob
│   │   │   │       │           ├── 97AA0EE76DF0FA1087F887E6B59AFAC53919F84A
│   │   │   │       │           ├── 97AA0EE76DF0FA1087F887E6B59AFAC53919F84A-blob
│   │   │   │       │           ├── 97B678BEFBB1749C11E5CEA1A02852DFC61093BD
│   │   │   │       │           ├── 9A8E08FADC70CA861358D9F4D9CB1348D827FEDC
│   │   │   │       │           ├── 9AB51ABDCF1008E4C886C65D97AAF53EA0D87F49
│   │   │   │       │           ├── 9C851BCA9ADFAD20926762CE61F28030A514F175
│   │   │   │       │           ├── 9C851BCA9ADFAD20926762CE61F28030A514F175-blob
│   │   │   │       │           ├── 9D8F18864558091EB587C9DAD7D5D78213B55E1E
│   │   │   │       │           ├── 9E16EB3FD391B079A557809A149AD5F7F9F1B1D4
│   │   │   │       │           ├── 9EDABEB59F687EEEF112738DF83F73B2614DFC18
│   │   │   │       │           ├── 9EDABEB59F687EEEF112738DF83F73B2614DFC18-blob
│   │   │   │       │           ├── 9F6FF78C1099757030FCF9BA9DDBB65E9EBD3088
│   │   │   │       │           ├── 9F6FF78C1099757030FCF9BA9DDBB65E9EBD3088-blob
│   │   │   │       │           ├── A01AF3190517C84EC3A108BD0AA1ACA460F7393A
│   │   │   │       │           ├── A27F212F8FE7D5FD6D18D1489B0F5C02A9BB839E
│   │   │   │       │           ├── A27F212F8FE7D5FD6D18D1489B0F5C02A9BB839E-blob
│   │   │   │       │           ├── A36372AA312421669DF6E00DD6126132CD7C27C6
│   │   │   │       │           ├── A36372AA312421669DF6E00DD6126132CD7C27C6-blob
│   │   │   │       │           ├── A58127212A2902BC523A58B1A9427731CA184B56
│   │   │   │       │           ├── A58127212A2902BC523A58B1A9427731CA184B56-blob
│   │   │   │       │           ├── A602FB7CD0CE91B7AC231434ECFD1A6E3B63327D
│   │   │   │       │           ├── A602FB7CD0CE91B7AC231434ECFD1A6E3B63327D-blob
│   │   │   │       │           ├── A68DFF61FB99F4A0778757FCC10F7A2D7F4F9F1D
│   │   │   │       │           ├── A6CD0372A4929DA30FAC4EC59058A98ED5D26817
│   │   │   │       │           ├── A6CD0372A4929DA30FAC4EC59058A98ED5D26817-blob
│   │   │   │       │           ├── A77A290F7272659C0BF5F30EA02408178B7EDCE1
│   │   │   │       │           ├── A77A290F7272659C0BF5F30EA02408178B7EDCE1-blob
│   │   │   │       │           ├── A78DFF8F7C3D21A59D92FB986C6EC8C4A729F00B
│   │   │   │       │           ├── A78DFF8F7C3D21A59D92FB986C6EC8C4A729F00B-blob
│   │   │   │       │           ├── A9D80EAC5E0FDD88212D4D13F7239B501228DEBF
│   │   │   │       │           ├── A9D80EAC5E0FDD88212D4D13F7239B501228DEBF-blob
│   │   │   │       │           ├── AC6ADAB4CB316D74E0F48BFBCE43C7CCEF727569
│   │   │   │       │           ├── AD99A5B4C29004BC8534BB3A9823B2C0DCDF6BE3
│   │   │   │       │           ├── B059B7330ACCE5CD390F2C4230F85030CD9DB2C6
│   │   │   │       │           ├── B0621636FD41644354F6FC23CAECF3C47B8E3E9C
│   │   │   │       │           ├── B0621636FD41644354F6FC23CAECF3C47B8E3E9C-blob
│   │   │   │       │           ├── B1E330BD71CE00709CA8B5794EDBD984F6A05E6A
│   │   │   │       │           ├── B1E330BD71CE00709CA8B5794EDBD984F6A05E6A-blob
│   │   │   │       │           ├── B247C16F4D6CC7324C2942C508D851F1766C4C08
│   │   │   │       │           ├── B39955586D244F047B8D6580D3911C03372A68F0
│   │   │   │       │           ├── B39955586D244F047B8D6580D3911C03372A68F0-blob
│   │   │   │       │           ├── B3F689D57C09CA814737214726DBB8706BF4C4A7
│   │   │   │       │           ├── B433DC9C50C2A3838815A4C8CA39130F8C459772
│   │   │   │       │           ├── B433DC9C50C2A3838815A4C8CA39130F8C459772-blob
│   │   │   │       │           ├── B7BF6F67938DA474115116D8F628B210EDA7723F
│   │   │   │       │           ├── B7BF6F67938DA474115116D8F628B210EDA7723F-blob
│   │   │   │       │           ├── B8FEF2120B92BBEB0607FBA6F71E52708E769458
│   │   │   │       │           ├── B8FEF2120B92BBEB0607FBA6F71E52708E769458-blob
│   │   │   │       │           ├── B9BA9537326233CA435E01E2F1E5C20E00924512
│   │   │   │       │           ├── BCB7DCEA22A9273E42011B84589F6AD5A91FCB03
│   │   │   │       │           ├── BCB7DCEA22A9273E42011B84589F6AD5A91FCB03-blob
│   │   │   │       │           ├── BDCC2F20DDF77C3FE66C7DCAADCCEE7486D93414
│   │   │   │       │           ├── BDCC2F20DDF77C3FE66C7DCAADCCEE7486D93414-blob
│   │   │   │       │           ├── BE48CD56A42A706AFA17D380739627FE8EBBB53D
│   │   │   │       │           ├── BF102D0C06979DB7AE4931CA02D607A8FCAD60EE
│   │   │   │       │           ├── C0515FEFC42A5D7E2718112855D4EC1090E2BB9F
│   │   │   │       │           ├── C16650D65F57AB6CD43A0753D49625591117A641
│   │   │   │       │           ├── C16650D65F57AB6CD43A0753D49625591117A641-blob
│   │   │   │       │           ├── C957C01F03A826030EDEF74F42E02D849C52518F
│   │   │   │       │           ├── C971B1A97155957B765B3F91A1C84D1C4545057F
│   │   │   │       │           ├── C971B1A97155957B765B3F91A1C84D1C4545057F-blob
│   │   │   │       │           ├── CA58B6CB5D049A70D330A71948C3C60FA39446F6
│   │   │   │       │           ├── CA58B6CB5D049A70D330A71948C3C60FA39446F6-blob
│   │   │   │       │           ├── CC313B7126ED95E585EC3CCCCD187B0E9E603811
│   │   │   │       │           ├── CC4511CA68704CE504CFF539948BA31933B0BF49
│   │   │   │       │           ├── CC4511CA68704CE504CFF539948BA31933B0BF49-blob
│   │   │   │       │           ├── CE52E555BFCC460D8CA139279B9DFC1EA98D0356
│   │   │   │       │           ├── CFCB7592F95AD8328075F8A092F55C31ADE60C62
│   │   │   │       │           ├── CFCB7592F95AD8328075F8A092F55C31ADE60C62-blob
│   │   │   │       │           ├── D4DBFFE268ECDB2C026C3BB2FC667B9715789156
│   │   │   │       │           ├── D6770BBFDF5843709DBFF70392B9B60CDB7F816A
│   │   │   │       │           ├── D6770BBFDF5843709DBFF70392B9B60CDB7F816A-blob
│   │   │   │       │           ├── D79D384D0E3FACC3AC70A38ABDF05D5124E1B8BB
│   │   │   │       │           ├── D84B7C3F8095DD2DB22B2BAEC087DC6C1A0EFF90
│   │   │   │       │           ├── D84B7C3F8095DD2DB22B2BAEC087DC6C1A0EFF90-blob
│   │   │   │       │           ├── D8C714E3FC4143E8F63AFAC19984D641BAA2B6B4
│   │   │   │       │           ├── D8C714E3FC4143E8F63AFAC19984D641BAA2B6B4-blob
│   │   │   │       │           ├── DA0012F4096B3EBCB12F6EA3D9C510B8EE148D0F
│   │   │   │       │           ├── DA0012F4096B3EBCB12F6EA3D9C510B8EE148D0F-blob
│   │   │   │       │           ├── DB5BE7451D7D018A3B392D3AEAE179E55B85890E
│   │   │   │       │           ├── DB5BE7451D7D018A3B392D3AEAE179E55B85890E-blob
│   │   │   │       │           ├── DBC7FD09E93EB37A630A7AA22342DFDF7B1635A8
│   │   │   │       │           ├── DC1C3B9406085F3D34AD6E63943AC05DD473B830
│   │   │   │       │           ├── DCB57E9A607891565BE866A8861B610D2B9E559F
│   │   │   │       │           ├── DD07D4E690661ADB642D2D361837223F50304EED
│   │   │   │       │           ├── DD07D4E690661ADB642D2D361837223F50304EED-blob
│   │   │   │       │           ├── DD9CB001E0F5B736095A6E6B28658D1574B7C5D5
│   │   │   │       │           ├── DDA2D19C70112E8A77E606C4A2F1E6A927542173
│   │   │   │       │           ├── DDA2D19C70112E8A77E606C4A2F1E6A927542173-blob
│   │   │   │       │           ├── DF5592E1CAFD7C9274E5ECCEE1B1804A81F4384B
│   │   │   │       │           ├── E0B253D04F5EEF5483FE3C0884AE9D0760EA3288
│   │   │   │       │           ├── E0B253D04F5EEF5483FE3C0884AE9D0760EA3288-blob
│   │   │   │       │           ├── E3DAA45071C0AB2223767C89C0D3DE2792903A02
│   │   │   │       │           ├── E3DAA45071C0AB2223767C89C0D3DE2792903A02-blob
│   │   │   │       │           ├── E61035AF283EF14D7C8256D59D8C8FBBE4A3C625
│   │   │   │       │           ├── E66CCA83CB955682691D593B2B2F79DEC07AC35F
│   │   │   │       │           ├── E66CCA83CB955682691D593B2B2F79DEC07AC35F-blob
│   │   │   │       │           ├── E799ACEC27F15BA4C1BEBECC558E0354838E0695
│   │   │   │       │           ├── E799ACEC27F15BA4C1BEBECC558E0354838E0695-blob
│   │   │   │       │           ├── E7EB55EF53D63B6A0E796BFC853271D6335D7532
│   │   │   │       │           ├── E8C56822FA70DA1BB28CCE2E7B543264E91C8777
│   │   │   │       │           ├── E969F23378C9ADA9AC6055834142ABADC9C0EA16
│   │   │   │       │           ├── EA3D9D62E4CBDA620F5420E1F07CB4BCB88DCE31
│   │   │   │       │           ├── EA8F71116F4DA67D06FFFBFD09E443816EF07BFF
│   │   │   │       │           ├── EA8F71116F4DA67D06FFFBFD09E443816EF07BFF-blob
│   │   │   │       │           ├── EADEF42866AA931068121F0EBC75647488ABF3EF
│   │   │   │       │           ├── EADEF42866AA931068121F0EBC75647488ABF3EF-blob
│   │   │   │       │           ├── EBA47EDFD372A7DC36BB9AD93518BA73C65A7AA0
│   │   │   │       │           ├── EBA47EDFD372A7DC36BB9AD93518BA73C65A7AA0-blob
│   │   │   │       │           ├── EC1C54FA3FFF57066E889A49C5D41517E4373F93
│   │   │   │       │           ├── EC1C54FA3FFF57066E889A49C5D41517E4373F93-blob
│   │   │   │       │           ├── ED0D24F7581698A5EB98276590D45E13B5FE194E
│   │   │   │       │           ├── ED0D24F7581698A5EB98276590D45E13B5FE194E-blob
│   │   │   │       │           ├── ED1635AE2EED0534911EFAE50D0592A556FC4372
│   │   │   │       │           ├── EE6266672BC8A091427629687D9FFD26A5D3B27A
│   │   │   │       │           ├── EE6266672BC8A091427629687D9FFD26A5D3B27A-blob
│   │   │   │       │           ├── EF6B05E8E289334D66CA7EE8F8946C43FB94B0BC
│   │   │   │       │           ├── EF6B05E8E289334D66CA7EE8F8946C43FB94B0BC-blob
│   │   │   │       │           ├── F1DDF0E04A79C5743966830E51DBB4C394C8AC8C
│   │   │   │       │           ├── F2F851D8CCB0F02B966669D8B8CE65193241EFBC
│   │   │   │       │           ├── F2F851D8CCB0F02B966669D8B8CE65193241EFBC-blob
│   │   │   │       │           ├── F6787AE9030201B00313BABDDC67B8F2A806114E
│   │   │   │       │           ├── F6787AE9030201B00313BABDDC67B8F2A806114E-blob
│   │   │   │       │           ├── FBFFD33ADE19725741FFE194B07EAB7102E443E1
│   │   │   │       │           ├── FBFFD33ADE19725741FFE194B07EAB7102E443E1-blob
│   │   │   │       │           ├── FC6DCAD9D3604BC0133B8A9892288FC5E523C797
│   │   │   │       │           ├── FCD6505AA86F7882C372AC36135246035FB5E4C6
│   │   │   │       │           ├── FCD6505AA86F7882C372AC36135246035FB5E4C6-blob
│   │   │   │       │           ├── FCEBBD5BFC3A02BBEA0B7D50CF47B3E3B2B4E120
│   │   │   │       │           └── FD50AA18B957C22E0E61A735EB9A88B669CBBA74
│   │   │   │       └── salt
│   │   │   ├── OfflineWebApplicationCache
│   │   │   └── ServiceWorkers
│   │   ├── appsflyer-v1
│   │   ├── com.apple.WebKit.Networking
│   │   ├── com.apple.WebKit.WebContent
│   │   │   └── com.apple.metal
│   │   │       ├── functions.data
│   │   │       ├── functions.maps
│   │   │       ├── functions1.data
│   │   │       ├── functions1.maps
│   │   │       ├── functions2.data
│   │   │       ├── functions2.maps
│   │   │       ├── functions3.data
│   │   │       ├── functions3.maps
│   │   │       ├── functions4.data
│   │   │       ├── functions4.maps
│   │   │       ├── functions5.data
│   │   │       ├── functions5.maps
│   │   │       ├── functions6.data
│   │   │       ├── functions6.maps
│   │   │       ├── functions7.data
│   │   │       ├── functions7.maps
│   │   │       ├── functions8.data
│   │   │       ├── functions8.maps
│   │   │       ├── libraries.data
│   │   │       ├── libraries.maps
│   │   │       ├── libraries1.data
│   │   │       ├── libraries1.maps
│   │   │       ├── libraries2.data
│   │   │       ├── libraries2.maps
│   │   │       ├── libraries3.data
│   │   │       ├── libraries3.maps
│   │   │       ├── libraries4.data
│   │   │       ├── libraries4.maps
│   │   │       ├── libraries5.data
│   │   │       ├── libraries5.maps
│   │   │       ├── libraries6.data
│   │   │       ├── libraries6.maps
│   │   │       ├── libraries7.data
│   │   │       ├── libraries7.maps
│   │   │       ├── libraries8.data
│   │   │       └── libraries8.maps
│   │   ├── com.crashlytics.data
│   │   │   └── kr.co.millie.MillieShelf
│   │   │       └── v5
│   │   │           ├── reports
│   │   │           │   ├── active
│   │   │           │   │   └── 7c218e8865f047fe8564b9a942e5f84d
│   │   │           │   │       ├── binary_images.clsrecord
│   │   │           │   │       ├── internal_incremental_kv.clsrecord
│   │   │           │   │       ├── log_a.clsrecord
│   │   │           │   │       ├── metadata.clsrecord
│   │   │           │   │       └── sdk.log
│   │   │           │   ├── prepared
│   │   │           │   └── processing
│   │   │           └── settings
│   │   │               ├── cache-key.json
│   │   │               └── settings.json
│   │   ├── com.hackemist.SDImageCache
│   │   │   └── default
│   │   │       ├── 065cdb46c398c561277d7776ede59f99.jpg
│   │   │       ├── 10bb774bcaea2b5bc9dfcb23f7311261.jpg
│   │   │       ├── 4350904106b568fd96d3f1fb750beae6.jpg
│   │   │       ├── 61e50365e2d5854d37ec82554ebb6c46.jpg
│   │   │       ├── 6559c187d6ba3a13494d35c654f97044.jpg
│   │   │       ├── 719fc00d256d0b370edfd0cd563e99be.jpg
│   │   │       └── 94e8d9e2f9fda5410c82c67293fc344c.jpg
│   │   ├── cover.jpg
│   │   ├── google-sdks-events
│   │   │   └── GDTCORFlatFileStorage
│   │   │       ├── gdt_batch_data
│   │   │       ├── gdt_event_data
│   │   │       │   ├── 1000
│   │   │       │   ├── 1001
│   │   │       │   │   └── 7B69C4F9DA0547DDA5FC69382BED3882-1-1648293539-137
│   │   │       │   ├── 1002
│   │   │       │   └── 1003
│   │   │       └── gdt_library_data
│   │   │           └── GDTCORFlatFileStorageBatchIDCounter
│   │   └── kr.co.millie.MillieShelf
│   │       ├── Cache.db
│   │       ├── Cache.db-shm
│   │       ├── Cache.db-wal
│   │       └── fsCachedData
│   │           ├── 0974AA2E-6056-4BAE-BAF9-3AF817A07FD1
│   │           ├── 0C719FCA-2A74-46A2-A203-BFB02088B3CD
│   │           ├── 0DCF273C-7B05-4D48-A809-F1EEF5FF24CD
│   │           ├── 100B216D-B391-4A98-A7A5-F0819C4A8F3F
│   │           ├── 1926CE66-4E60-494C-A03C-F5124F01DF81
│   │           ├── 210BF32C-9764-4AC1-8000-486B9E47D6DB
│   │           ├── 245D6241-8A95-481C-96FD-16DCDFE80AFE
│   │           ├── 2506F67F-70BD-44DA-82C3-4E63F5B219DE
│   │           ├── 2D8C1948-A994-477F-A3DB-95F8B3AD6013
│   │           ├── 319B96D9-C7DC-4011-80D3-1FE0C53398FC
│   │           ├── 3597A30B-527C-438E-8F2D-51DF7674BF95
│   │           ├── 3A35073B-1807-4CA9-8C9B-40742129F57D
│   │           ├── 3B5475F9-A964-4647-8128-4922828C80F5
│   │           ├── 3B632B22-9ACF-48B7-B0AD-1819D8C5A845
│   │           ├── 3C69181A-7A6D-4A6A-BDB8-6C4C6F4AAD03
│   │           ├── 3F1C47B6-DAC2-465A-9D7F-EDD08A475C56
│   │           ├── 47FAAB00-327B-4CD8-9165-4AD8BAEAD7A8
│   │           ├── 4CD7C547-0330-422D-9E01-ADF7804B73E3
│   │           ├── 4DA25854-ECC3-48A5-B4E0-B8E808D4F460
│   │           ├── 5A448692-F65F-44EF-9946-48A019F86FE2
│   │           ├── 5BF01B09-0118-4950-9F4F-B7704938E04C
│   │           ├── 5E74095F-A3F7-4EE4-9035-75EB6A9E015B
│   │           ├── 617A5F81-C666-4CE0-A4C1-1B2084E1EE64
│   │           ├── 6392CDE0-8E97-4236-A96F-3B1FE8D1CCA9
│   │           ├── 6730D313-0D72-4227-9DEB-557177C52EA0
│   │           ├── 6A16FE6F-78ED-4F3E-A0FE-B587D0FC16E0
│   │           ├── 6EBDDC4E-43AF-4DBC-9EAF-49B006CDA7D3
│   │           ├── 733F6A7D-BB82-46B5-9F17-3E26958513A9
│   │           ├── 744CB459-43A3-4877-A280-E3042A565BE7
│   │           ├── 7CF5EC48-D4FA-4FE2-A1A1-D45BA6769463
│   │           ├── 7DE2EE2D-1C98-496F-A37E-6D8BEB62DD17
│   │           ├── 832B323A-4820-427D-ABD0-110D9A00872F
│   │           ├── 852FAD3A-EA97-444C-9963-7C9B194E6173
│   │           ├── 87FEB367-5575-4032-82D8-FC6A05CE343C
│   │           ├── 8DA90CC1-4B39-4B22-A86B-302AD8D38C13
│   │           ├── 904B8B91-3D6F-435E-9DB7-9BD91EB9B1D1
│   │           ├── 982BE65F-AAF2-4E23-8121-6C0E5C071051
│   │           ├── 9BA82E84-76AD-4528-8076-F3DB7AF5645F
│   │           ├── 9F73139D-ED42-4A03-AFF9-7950D6A00229
│   │           ├── A1955013-AE58-4B82-A292-073DADDB4223
│   │           ├── A2763DC2-2DE2-42B4-8DF4-7EADB8B97DA8
│   │           ├── A606B316-A15D-46E5-AD1D-C6E65790971C
│   │           ├── B111EF61-D511-488E-9F07-C16F77D9297D
│   │           ├── B3DB7BAE-595F-4423-B1E6-04280E4B11B5
│   │           ├── BAB6CEE8-B632-47F6-B0BC-33A4700D997A
│   │           ├── BCD25FA5-80BA-49F8-A7DE-58D5DADEEA5F
│   │           ├── BDA27D8E-5226-41A7-AA8B-8DC243EA36DC
│   │           ├── C1A73145-C1F0-4C48-910C-34F1F565FB9C
│   │           ├── C1D37F9C-A58A-4A37-B704-F3065FA6F3CB
│   │           ├── CECDA95F-27A7-4360-B548-B0ACBA250B0B
│   │           ├── CEE7968C-9196-414D-9A36-E22155E1E095
│   │           ├── D31C4CD6-A760-4DF2-87F3-4374D9F98A4A
│   │           ├── DA171797-99DE-417E-BDCB-690DC0201E85
│   │           ├── DE3E56A8-4C1A-413A-BFB3-8924764AF2C6
│   │           ├── E04EDE4C-931F-4B02-AC24-EC775E9C5182
│   │           ├── E756CC4C-A3AE-489E-89F3-2C13AF55251B
│   │           ├── E8369E8A-D31C-4647-AD99-074E354434F7
│   │           ├── F35E8CAA-D8B7-4DCE-9098-453536049DB9
│   │           ├── F68E0C5F-4560-46EE-9A87-8B2B508B93CE
│   │           ├── FE507B10-522D-464F-92F4-C0858214B893
│   │           └── FE86294C-5DD1-4CD0-AF3C-B89EB17BE77D
│   ├── Cookies
│   │   └── Cookies.binarycookies
│   ├── Preferences
│   │   ├── APMAnalyticsSuiteName.plist
│   │   ├── APMExperimentSuiteName.plist
│   │   ├── com.apple.EmojiCache.plist
│   │   ├── com.firebase.FIRInstallations.plist
│   │   ├── com.google.gmp.measurement.monitor.plist
│   │   ├── com.google.gmp.measurement.plist
│   │   └── kr.co.millie.MillieShelf.plist
│   ├── Saved Application State
│   │   └── kr.co.millie.MillieShelf.savedState
│   │       └── KnownSceneSessions
│   │           └── data.data
│   ├── SplashBoard
│   │   └── Snapshots
│   │       ├── kr.co.millie.MillieShelf - {DEFAULT GROUP}
│   │       │   ├── B9A5D08B-A9D0-4629-A25A-AE1FC5E3CF70@2x.ktx
│   │       │   └── downscaled
│   │       │       └── C957AB3E-4264-40E6-BBEE-83FE1F6FC832@2x.ktx
│   │       └── sceneID:kr.co.millie.MillieShelf-default
│   │           ├── 0323F946-AD2F-46E6-AB9C-90DE2F242DB3@2x.ktx
│   │           ├── 48962E29-7E48-4003-B521-51978764F3E2@2x.ktx
│   │           ├── 7577E324-0E8E-4B4C-9E4C-2603BBFAA8B5@2x.ktx
│   │           ├── DC542708-BDA4-41DE-B738-1D7B9E7623EC@2x.ktx
│   │           └── downscaled
│   │               ├── 40BC8972-7CB5-418D-AB11-CDED6A4E7A0E@2x.ktx
│   │               ├── 4C6421AE-10BD-45F9-AF95-AA7AFF025BFA@2x.ktx
│   │               ├── A6C0F12B-E488-490F-BB49-E723CD6FFD63@2x.ktx
│   │               └── ED07E57F-2331-44B5-AFBF-2AF8F1F720ED@2x.ktx
│   ├── WebKit
│   │   └── WebsiteData
│   │       ├── IndexedDB
│   │       │   ├── v0
│   │       │   │   ├── v0
│   │       │   │   │   ├── v0
│   │       │   │   │   │   ├── v0
│   │       │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   ├── v0
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   │   └── v1
│   │       │   │   │   │   │   └── v1
│   │       │   │   │   │   └── v1
│   │       │   │   │   └── v1
│   │       │   │   └── v1
│   │       │   └── v1
│   │       ├── LocalStorage
│   │       │   ├── https_www.millie.co.kr_0.localstorage
│   │       │   ├── https_www.millie.co.kr_0.localstorage-shm
│   │       │   └── https_www.millie.co.kr_0.localstorage-wal
│   │       ├── MediaKeys
│   │       ├── ResourceLoadStatistics
│   │       └── WebSQL
│   ├── com-facebook-sdk-AppEventsTimeSpent.json
│   ├── com-facebook-sdk-PersistedAnonymousID.json
│   └── com-facebook-sdk-like-data
├── StoreKit
│   └── receipt
├── SystemData
└── tmp
    ├── CFNetworkDownload_0oNdxj.tmp
    ├── CFNetworkDownload_1Ofymn.tmp
    ├── CFNetworkDownload_P67zoV.tmp
    ├── CFNetworkDownload_ZGGkCb.tmp
    ├── CFNetworkDownload_dkL040.tmp
    ├── CFNetworkDownload_eyS51M.tmp
    ├── CFNetworkDownload_ofl9Mo.tmp
    ├── CFNetworkDownload_qRl91d.tmp
    ├── CFNetworkDownload_t5wr9V.tmp
    ├── CFNetworkDownload_uPvKKL.tmp
    ├── WebKit
    │   └── MediaCache
    │       ├── CachedMedia-6dPwpI
    │       └── diskcacherepository.plist
    ├── com.apple.dyld
    │   └── MillieShelf-AF536F25A8AAC4F4DFEBB4005FBA353F26964DA8075CD7D77ED7A788BD82DEED.closure
    └── instrument
        └── crash_lib_data_0C8B1056DBC34CDABFD7F5D48AA45937.json

106 directories, 642 files

 

 

 

 

Objection

ios hooking list classes

ios hooking list classes.txt
0.94MB

 

ios hooking search classes

ios hooking search classes.txt
0.00MB

더보기

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking search classes decrypt
_TtCV21DistributedEvaluation38SubmitDecryptedUnmaskingSharesResponseP33_6D1DCF6DAA8FC0673D90BB00503E2C6913_StorageClass
_TtCVV21DistributedEvaluation37SubmitDecryptedUnmaskingSharesRequest14UnmaskingShareP33_6D1DCF6DAA8FC0673D90BB00503E2C6913_StorageClass
SDWebImageDownloaderDecryptor
CUBitCoderDecryptResponse
CUBitCoderDecryptRequest
RNDecryptor
ZZStandardDecryptInputStream
ZZAESDecryptInputStream

Found 8 classes



kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking search classes encrypt
_TtCV21DistributedEvaluation36SubmitEncryptedMaskingSharesResponseP33_6D1DCF6DAA8FC0673D90BB00503E2C6913_StorageClass
_TtCVV21DistributedEvaluation15EncryptedShares9PlaintextP33_6D1DCF6DAA8FC0673D90BB00503E2C6913_StorageClass
ACDPropertyEncryption
epubbase.EPubEncryptKey
EncryptUtils
NEIKEv2EncryptedPayload
NEIKEv2EncryptedFragmentPayload
NEIKEv2EncryptionProtocol
CUBitCoderEncryptRequest
SACFScriptEncryptionParameters
MCEncryptedProfileServicePayload
IDSRealTimeEncryptionProxy
_IDSRealTimeEncryptionProxy
IDSSocketPairOTREncryptedMessage
IDSSocketPairEncryptedMessage
CKEncryptedData
CKEncryptedEmptyArray
CKEncryptedLocationArray
CKEncryptedDateArray
CKEncryptedLongLongArray
CKEncryptedDoubleArray
CKEncryptedStringArray
CKEncryptedLocation
CKEncryptedReference
CKEncryptedDate
CKEncryptedDouble
CKEncryptedLongLong
CKEncryptedString
CKEncryptedRecordValueStore
_SFSharablePasswordEncryptionInformation
WBSEncryptedCloudKeyValueStore
IMNicknameEncryptionPreKey
IMNicknameEncryptionKey
IMNicknameFieldEncryptionKey
IMNicknameEncryptionCipherRecordField
IMNicknameEncryptionPlainRecordField
IMNicknameEncryptionHelpers
IMNicknameEncryptionTag
IMNicknameEncryptionRecordTag
IMNicknameEncryptionFieldTag
DESPFLEncryptor
AWDIDSRealTimeEncryptionMissingPrekeys
AWDIDSRealTimeEncryptionMembershipChangeEventFirstMKMTimeDelta
AWDIDSRealTimeEncryptionFirstReceivedPacketMKMTimeDelta
CKDPRecordFieldValueEncryptedValue
IMSharedUtilitiesProtoCloudKitEncryptedGroupAction
IMSharedUtilitiesProtoCloudKitEncryptedGroupTitleChange
IMSharedUtilitiesProtoCloudKitEncryptedParticipantChange
IMSharedUtilitiesProtoCloudKitEncryptedMessageAction
IMSharedUtilitiesProtoCloudKitEncryptedLocationShareStatusChange
IMSharedUtilitiesProtoCloudKitEncryptedMessage
DESEncryptedData
RNEncryptor
CTEncryptionStatusInfo

Found 54 classes



kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking search classes epub
epubbase.MediaPlayer
epubbase.EPubWebViewParams
epubbase.PreloadData
epubbase.EPubBookTtsLocation
epubbase.AudioPlayListItem
epubbase.MainAudio
epubbase.PenJsReceiverWrapper
epubbase.PenJsCallWrapper
epubbase.EPubBook
epubbase.EPubBookTocItem
epubbase.PreloadUtils
epubbase.EPubBookTts
epubbase.BrushToolSettings
epubbase.MediaItem
epubbase.SharedPreferences
epubbase.JsPenLayerReceiverWrapper
epubbase.JsReceiverWrapper
epubbase.JsCallerWrapper
epubbase.PageLocation
epubbase.EPubBookTtsItem
epubbase.EPubEncryptKey
epubbase.EPubViewParams
epubbase.AudioTocItem
epubbase.AudioMetaItem
epubbase.Footnote
epubbase.PenLayer
epubbase.Range
epubbase.AudioBookParams
epubbase.EPubSearchResultItem
epubbase.AudioBookPlayer
epubbase.EPubBookMetadata
epubbase.AudioMeta
_TtCC8epubbase13AudioPlayList16PlayListPosition
epubbase.AudioPlayList
epubbase.ContentEvent
epubbase.EPubSearchResult
epubbase.EPubCfiObject
epubbase.EPubBookToc
PLServerChangePublisher
PLClientChangePublisher
AWDIMessageNicknamePublished
AWDBltPrimaryDevicePublicationToResponseDelay
epubbase.ForceTouchGestureRecognizer
FBSDKAppEventsAtePublisher
FBSDKAtePublisherFactory
epubbase.EPubView
epubbase.PenLayerView
epubbase.PenLayerWebView
epubbase.EPubWebView

Found 49 classes



kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking search classes drm
CBEDRModule
ICRemoveMediaDRMOperation

Found 2 classes



kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking search classes jail

Found 0 classes

 

ios hooking list class_methods RNDecryptor

더보기

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods RNDecryptor
+ decryptData:withSettings:password:error:
+ decryptData:withSettings:encryptionKey:HMACKey:error:
+ decryptData:withPassword:error:
+ decryptData:withEncryptionKey:HMACKey:error:
- initWithPassword:handler:
- initWithEncryptionKey:HMACKey:handler:
- consumeHeaderFromData:
- updateOptionsForPreamble:
- setHMACKey:
- HMACKey
- hasV1HMAC
- setHasV1HMAC:
- password
- .cxx_destruct
- setPassword:
- finish
- settings
- setSettings:
- addData:
- encryptionKey
- setEncryptionKey:
- decryptData:
- inData

Found 23 methods

---

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods RNEncryptor
+ encryptData:withSettings:password:error:
+ encryptData:withSettings:password:IV:encryptionSalt:HMACSalt:error:
+ encryptData:withSettings:encryptionKey:HMACKey:error:
+ encryptData:withSettings:encryptionKey:HMACKey:IV:error:
- initWithSettings:password:handler:
- initWithSettings:password:IV:encryptionSalt:HMACSalt:handler:
- initWithSettings:encryptionKey:HMACKey:handler:
- initWithSettings:encryptionKey:HMACKey:IV:handler:
- setIV:
- setEncryptionSalt:
- setHMACSalt:
- encryptionSalt
- HMACSalt
- haveWrittenHeader
- setHaveWrittenHeader:
- .cxx_destruct
- finish
- header
- addData:
- IV

Found 20 methods

---

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods RNCryptor
+ synchronousResultForCryptor:data:error:
+ keyForPassword:salt:settings:
+ randomDataOfLength:
- setHMACLength:
- cleanupAndNotifyWithError:
- outData
- hasHMAC
- HMACLength
- dealloc
- setQueue:
- queue
- handler
- options
- .cxx_destruct
- error
- setHandler:
- setError:
- setFinished:
- isFinished
- engine
- setOptions:
- finish
- setEngine:
- initWithHandler:
- addData:
- setResponseQueue:
- responseQueue

Found 27 methods

---

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods RNCryptorEngine
- initWithOperation:settings:key:IV:error:
- addData:error:
- dealloc
- .cxx_destruct
- buffer
- finishWithError:
- cryptor

Found 7 methods

---

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods RNCryptorLoader
- initWithOperations::::
- addData::
- removeData::
- load
- error
- finish
- initWithHandler:
- write
- read
- setResponseQueue:
- randomDataOfLength:

Found 11 methods

---

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods RNCryptorUnLoader
+ error
+ unload
+ finish
+ check

Found 4 methods

---

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # ios hooking list class_methods AppsFlyerAES128Crypto
+ AESKeyForPassword:salt:
+ encrypt:withObject:
+ randomDataOfLength:

Found 3 methods

---

 

ios monitor crypto

더보기

kr.co.millie.MillieShelf on (iPad: 13.5) [usb] # (agent) [190564] [CCCryptorCreate] (
  op : kCCDecrypt
  alg : kCCAlgorithmAES128
  options : kCCOptionPKCS7Padding
  keyLength : 32
  key : 6b696c6c734d696c213200000000000000000000000000000000000000000000
)
(agent) [190564] [CCCryptorUpdate] (
  dataIn : 31771bb738be37c375dc1f611140d5ce
)
(agent) [190564] [CCCryptorFinal] (
  dataOut : 333633393530350014011f611140d5ce501cfc83020000000000000000000000
)

...

 

Frida (Grapefruit)

 

 

FLEX (FLEXible, Flex3beta, ...)

 

 

 

 

Hopper Disassembler

Hopper.m
0.08MB

더보기

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 password:(void *)arg4 error:(void * *)arg5 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    var_40 = [objc_alloc() initWithPassword:0x0 handler:0x10068a9a0];

    memcpy(&saved_fp - 0xa8, r3, 0x68);

    memcpy(&stack[-288], &saved_fp - 0xa8, 0x68);

    [var_40 setSettings:&stack[-288]];

    var_170 = [[self synchronousResultForCryptor:var_40 data:0x0 error:r5] retain];

    objc_storeStrong(&saved_fp - 0x40, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_170 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 encryptionKey:(void *)arg4 HMACKey:(void *)arg5 error:(void * *)arg6 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    var_48 = [objc_alloc() initWithEncryptionKey:0x0 HMACKey:0x0 handler:0x10068a9c0];

    memcpy(&saved_fp - 0xb0, r3, 0x68);

    memcpy(&stack[-296], &saved_fp - 0xb0, 0x68);

    [var_48 setSettings:&stack[-296]];

    var_188 = [[self synchronousResultForCryptor:var_48 data:0x0 error:r6] retain];

    objc_storeStrong(&saved_fp - 0x48, 0x0);

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_188 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withPassword:(void *)arg3 error:(void * *)arg4 {

    objc_storeStrong(&saved_fp - 0x18, arg2);

    objc_storeStrong(&saved_fp - 0x20, arg3);

    var_68 = [[self synchronousResultForCryptor:[objc_alloc() initWithPassword:0x0 handler:0x10068a9e0] data:0x0 error:arg4] retain];

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x20, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    r0 = [var_68 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withEncryptionKey:(void *)arg3 HMACKey:(void *)arg4 error:(void * *)arg5 {

    objc_storeStrong(&saved_fp - 0x18, arg2);

    objc_storeStrong(&saved_fp - 0x20, arg3);

    objc_storeStrong(&saved_fp - 0x28, arg4);

    var_80 = [[self synchronousResultForCryptor:[objc_alloc() initWithEncryptionKey:0x0 HMACKey:0x0 handler:0x10068aa00] data:0x0 error:arg5] retain];

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    objc_storeStrong(&saved_fp - 0x20, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    r0 = [var_80 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

-(void *)initWithEncryptionKey:(void *)arg2 HMACKey:(void *)arg3 handler:(void *)arg4 {

    r31 = r31 - 0x90;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    objc_storeStrong(r29 - 0x18, arg2);

    objc_storeStrong(r29 - 0x20, arg3);

    objc_storeStrong(r29 - 0x28, arg4);

    *((r29 - 0x38) + 0x8) = *0x1007494a0;

    r0 = [[r29 - 0x38 super] initWithHandler:0x0];

    var_8 = r0;

    objc_storeStrong(r29 - 0x8, r0);

    if (var_8 != 0x0) {

            r0 = [0x0 copy];

            r9 = var_8->_encryptionKey;

            var_8->_encryptionKey = r0;

            [r9 release];

            r0 = [0x0 copy];

            r9 = var_8->_HMACKey;

            var_8->_HMACKey = r0;

            [r9 release];

            memcpy((int64_t *)&var_8->_settings, 0x1005fa548, 0x68);

    }

    var_70 = [var_8 retain];

    objc_storeStrong(r29 - 0x28, 0x0);

    objc_storeStrong(r29 - 0x20, 0x0);

    objc_storeStrong(r29 - 0x18, 0x0);

    objc_storeStrong(r29 - 0x8, 0x0);

    r0 = var_70;

    return r0;

}

 

 

/* @class RNDecryptor */

-(void *)initWithPassword:(void *)arg2 handler:(void *)arg3 {

    r31 = r31 - 0x60;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    objc_storeStrong(r29 - 0x18, arg2);

    objc_storeStrong(r29 - 0x20, arg3);

    r0 = [self initWithEncryptionKey:0x0 HMACKey:0x0 handler:0x0];

    var_8 = r0;

    objc_storeStrong(r29 - 0x8, r0);

    if (var_8 != 0x0) {

            r0 = [0x0 copy];

            r9 = var_8->_password;

            var_8->_password = r0;

            [r9 release];

            memcpy((int64_t *)&var_8->_settings, 0x1005fa548, 0x68);

    }

    var_48 = [var_8 retain];

    objc_storeStrong(r29 - 0x20, 0x0);

    objc_storeStrong(r29 - 0x18, 0x0);

    objc_storeStrong(r29 - 0x8, 0x0);

    r0 = var_48;

    return r0;

}

/* @class RNDecryptor */

-(void *)inData {

    r31 = r31 - 0x20;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    var_8 = self;

    if (var_8->__inData == 0x0) {

            r0 = [NSMutableData data];

            r0 = [r0 retain];

            r9 = var_8->__inData;

            var_8->__inData = r0;

            [r9 release];

    }

    r0 = var_8->__inData;

    r0 = objc_retainAutoreleaseReturnValue(r0);

    return r0;

}

 

/* @class RNDecryptor */

-(void)decryptData:(void *)arg2 {

    objc_storeStrong(&saved_fp - 0x18, arg2);

    r0 = [self queue];

    r0 = [r0 retain];

    *(&var_48 + 0x10) = 0x1004de1e4;

    *(&var_48 + 0x18) = 0x10068a6d8;

    *(&var_48 + 0x20) = [self retain];

    *(&var_48 + 0x28) = [0x0 retain];

    dispatch_async(r0, &var_48);

    [r0 release];

    objc_storeStrong(&var_48 + 0x28, 0x0);

    objc_storeStrong(&var_48 + 0x20, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    return;

}

 

/* @class RNDecryptor */

-(void)addData:(void *)arg2 {

    r31 = r31 - 0xa0;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    var_8 = self;

    objc_storeStrong(r29 - 0x18, arg2);

    if (([var_8 isFinished] & 0x1) == 0x0) {

            r0 = [var_8 inData];

            r0 = [r0 retain];

            [r0 appendData:0x0];

            [r0 release];

            r0 = [var_8 engine];

            r29 = r29;

            r0 = [r0 retain];

            if (r0 != 0x0) {

                    if (CPU_FLAGS & NE) {

                            r9 = 0x1;

                    }

            }

            [r0 release];

            if (((r9 ^ 0x1) & 0x1) != 0x0) {

                    r0 = [var_8 inData];

                    r29 = r29;

                    var_50 = [r0 retain];

                    [var_8 consumeHeaderFromData:var_50];

                    [var_50 release];

            }

            r0 = [var_8 engine];

            r29 = r29;

            r0 = [r0 retain];

            [r0 release];

            if (r0 != 0x0) {

                    var_28 = [var_8 HMACLength];

                    r0 = [var_8 inData];

                    r29 = r29;

                    r0 = [r0 retain];

                    var_68 = [r0 length];

                    [r0 release];

                    if (r10 >= 0x0) {

                            var_80 = [[var_8 inData] retain];

                            r0 = [var_8 inData];

                            r0 = [r0 retain];

                            var_88 = r0;

                            r0 = [var_80 _RNConsumeToIndex:[r0 length] - var_28];

                            r29 = r29;

                            var_30 = [r0 retain];

                            [var_88 release];

                            [var_80 release];

                            [var_8 decryptData:var_30];

                            objc_storeStrong(r29 - 0x30, 0x0);

                    }

            }

    }

    objc_storeStrong(r29 - 0x18, 0x0);

    return;

}

 

/* @class RNDecryptor */

-(bool)updateOptionsForPreamble:(void *)arg2 {

    r31 = r31 - 0x1c0;

    var_10 = r28;

    stack[-24] = r27;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    *((r29 - 0x38) + 0x18) = self;

    *((r29 - 0x38) + 0x10) = _cmd;

    *((r29 - 0x38) + 0x8) = 0x0;

    var_180 = r29 - 0x38;

    objc_storeStrong(r29 - 0x30, arg2);

    *var_180 = [objc_retainAutorelease(*(var_180 + 0x8)) bytes];

    if (*(int8_t *)*var_180 == 0x2) {

            [*(var_180 + 0x18) setOptions:*(int8_t *)(*var_180 + 0x1)];

            [*(var_180 + 0x18) settings];

            *(int8_t *)((r29 - 0xa0) + 0x44) = 0x1;

            *(int8_t *)((r29 - 0xa0) + 0x64) = 0x1;

            memcpy(&stack[-280], r29 - 0xa0, 0x68);

            var_1A0 = *(var_180 + 0x18);

            memcpy(&stack[-384], &stack[-280], 0x68);

            [var_1A0 setSettings:&stack[-384]];

            var_11 = 0x1;

    }

    else {

            r10 = *(int8_t *)*var_180;

            r10 = r10 - *(int8_t *)0x1005fa5b0;

            if (r10 == 0x0) {

                    [*(var_180 + 0x18) setOptions:*(int8_t *)(*var_180 + 0x1)];

                    var_11 = 0x1;

            }

            else {

                    var_11 = 0x0 & 0x1;

            }

    }

    objc_storeStrong(r29 - 0x30, 0x0);

    r0 = var_11 & 0x1;

    return r0;

}

 

/* @class RNDecryptor */

-(void)consumeHeaderFromData:(void *)arg2 {

    var_10 = r28;

    stack[-24] = r27;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    r31 = r31 + 0xffffffffffffffe0 - 0x750;

    var_58 = self;

    var_590 = &stack[-896];

    objc_storeStrong(r29 - 0x68, arg2);

    if ([0x0 length] >= 0x2) {

            r0 = [0x0 subdataWithRange:0x0];

            r29 = r29;

            var_5A0 = [r0 retain];

            var_5A4 = [var_58 updateOptionsForPreamble:var_5A0] ^ 0x1;

            [var_5A0 release];

            if ((var_5A4 & 0x1) == 0x0) {

                    [var_58 settings];

                    var_88 = var_E0 + 0x2;

                    if (([var_58 options] & 0x1) != 0x0) {

                            [var_58 settings];

                            [var_58 settings];

                            var_88 = var_88 + var_128 + var_170;

                    }

                    r0 = [0x0 length];

                    r8 = r0 - var_88;

                    if (r8 >= 0x0) {

                            var_1C8 = [[0x0 subdataWithRange:0x0] retain];

                            r0 = [0x0 _RNConsumeToIndex:0x2];

                            r29 = r29;

                            r0 = [r0 retain];

                            [[r0 mutableCopy] release];

                            [r0 release];

                            if (([var_58 options] & 0x1) != 0x0) {

                                    [var_58 settings];

                                    var_1E8 = [[0x0 _RNConsumeToIndex:var_220] retain];

                                    [var_58 settings];

                                    [[0x0 _RNConsumeToIndex:r2] retain];

                                    var_630 = [var_58 class];

                                    var_648 = [[var_58 password] retain];

                                    [var_58 settings];

                                    *(int128_t *)(var_590 + 0x90) = *(int128_t *)(&stack[-856] + 0x28);

                                    *(int128_t *)(var_590 + 0xa0) = *(int128_t *)(&stack[-856] + 0x38);

                                    var_668 = [[var_630 keyForPassword:var_648 salt:var_1E8 settings:&stack[-752]] retain];

                                    [var_58 setEncryptionKey:var_668];

                                    [var_668 release];

                                    [var_648 release];

                                    var_670 = [var_58 class];

                                    var_680 = [[var_58 password] retain];

                                    [var_58 settings];

                                    *(int128_t *)var_590 = *(int128_t *)(&stack[-1000] + 0x48);

                                    *(int128_t *)(var_590 + 0x10) = *(int128_t *)(&stack[-1000] + 0x58);

                                    r0 = [var_670 keyForPassword:r2 salt:r3 settings:r4];

                                    r29 = r29;

                                    var_698 = [r0 retain];

                                    [var_58 setHMACKey:var_698];

                                    [var_698 release];

                                    [var_680 release];

                                    [var_58 setPassword:0x0];

                                    objc_storeStrong(&var_258, 0x0);

                                    objc_storeStrong(&var_1E8, 0x0);

                            }

                            [var_58 settings];

                            var_3E0 = [[0x0 _RNConsumeToIndex:var_438] retain];

                            var_6C8 = objc_alloc();

                            [var_58 settings];

                            var_6D8 = [[var_58 encryptionKey] retain];

                            var_6E8 = [var_6C8 initWithOperation:0x1 settings:&stack[-1216] key:var_6D8 IV:var_3E0 error:&var_4B8];

                            objc_storeStrong(&var_1E0, 0x0);

                            [var_58 setEngine:var_6E8];

                            [var_6E8 release];

                            [var_6D8 release];

                            [var_58 setEncryptionKey:0x0];

                            r0 = [var_58 engine];

                            r29 = r29;

                            r0 = [r0 retain];

                            if (r0 != 0x0) {

                                    if (CPU_FLAGS & NE) {

                                            r12 = 0x1;

                                    }

                            }

                            [r0 release];

                            if (((r12 ^ 0x1) & 0x1) == 0x0) {

                                    r0 = [var_58 HMACKey];

                                    r29 = r29;

                                    r0 = [r0 retain];

                                    [r0 release];

                                    if (r0 != 0x0) {

                                            [var_58 settings];

                                            r0 = [var_58 HMACKey];

                                            r0 = [r0 retain];

                                            var_728 = r0;

                                            var_730 = [objc_retainAutorelease(r0) bytes];

                                            r0 = [var_58 HMACKey];

                                            r29 = r29;

                                            CCHmacInit((int64_t *)&var_58->_HMACContext, var_504, var_730, [[r0 retain] length]);

                                            [r0 release];

                                            [var_728 release];

                                            [var_58 settings];

                                            [var_58 setHMACLength:var_568];

                                            [var_58 setHMACKey:0x0];

                                            if (([var_58 hasV1HMAC] & 0x1) == 0x0) {

                                                    CCHmacUpdate((int64_t *)&var_58->_HMACContext, [objc_retainAutorelease(var_1C8) bytes], [var_1C8 length]);

                                            }

                                    }

                            }

                            else {

                                    [var_58 cleanupAndNotifyWithError:0x0];

                            }

                            objc_storeStrong(&var_3E0, 0x0);

                            objc_storeStrong(&var_1E0, 0x0);

                            objc_storeStrong(&var_1C8, 0x0);

                    }

            }

            else {

                    var_5C8 = [[NSDictionary dictionaryWithObject:@"Unknown header" forKey:**_NSLocalizedDescriptionKey] retain];

                    r0 = [NSError errorWithDomain:*0x10068aae0 code:0x2 userInfo:var_5C8];

                    r29 = r29;

                    var_5D0 = [r0 retain];

                    [var_58 cleanupAndNotifyWithError:var_5D0];

                    [var_5D0 release];

                    [var_5C8 release];

            }

    }

    objc_storeStrong(r29 - 0x68, 0x0);

    return;

}

 

 

/* @class RNDecryptor */

-(void)finish {

    r31 = r31 - 0x60;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    var_8 = self;

    if (([var_8 isFinished] & 0x1) == 0x0) {

            r0 = [var_8 queue];

            r0 = [r0 retain];

            *(&var_38 + 0x10) = 0x1004df2c8;

            *(&var_38 + 0x18) = 0x10068a6a8;

            *(&var_38 + 0x20) = [var_8 retain];

            dispatch_async(r0, &var_38);

            [r0 release];

            objc_storeStrong(&var_38 + 0x20, 0x0);

    }

    return;

}

/* @class RNDecryptor */

-(void *)encryptionKey {

    r0 = objc_getProperty(self, _cmd, sign_extend_64(*(int32_t *)ivar_offset(_encryptionKey)), 0x0 & 0x1);

    return r0;

}

 

 

/* @class RNDecryptor */

-(void)setEncryptionKey:(void *)arg2 {

    objc_setProperty_nonatomic_copy();

    return;

}

 

/* @class RNDecryptor */

-(void *)HMACKey {

    r0 = objc_getProperty(self, _cmd, sign_extend_64(*(int32_t *)ivar_offset(_HMACKey)), 0x0 & 0x1);

    return r0;

}

 

/* @class RNDecryptor */

-(void)setHMACKey:(void *)arg2 {

    objc_setProperty_nonatomic_copy();

    return;

}

 

/* @class RNDecryptor */

-(void *)password {

    r0 = objc_getProperty(self, _cmd, sign_extend_64(*(int32_t *)ivar_offset(_password)), 0x0 & 0x1);

    return r0;

}

 

/* @class RNDecryptor */

-(void)setPassword:(void *)arg2 {

    objc_setProperty_nonatomic_copy();

    return;

}

 

/* @class RNDecryptor */

-(struct _RNCryptorSettings)settings {

    r0 = memcpy(r8, (int64_t *)&self->_settings, 0x68);

    return r0;

}

 

/* @class RNDecryptor */

-(void)setSettings:(struct _RNCryptorSettings)arg2 {

    memcpy(&r2, &arg2, 0x8);

    memcpy((int64_t *)&self->_settings, r2, 0x68);

    return;

}

 

/* @class RNDecryptor */

-(bool)hasV1HMAC {

    r0 = *(int8_t *)(int64_t *)&self->_hasV1HMAC & 0x1;

    return r0;

}

 

/* @class RNDecryptor */

-(void)setHasV1HMAC:(bool)arg2 {

    *(int8_t *)(int64_t *)&self->_hasV1HMAC = arg2 & 0x1 & 0x1;

    return;

}

 

/* @class RNDecryptor */

-(void).cxx_destruct {

    objc_storeStrong((int64_t *)&self->_password, 0x0);

    objc_storeStrong((int64_t *)&self->_HMACKey, 0x0);

    objc_storeStrong((int64_t *)&self->_encryptionKey, 0x0);

    objc_storeStrong((int64_t *)&self->__inData, 0x0);

    return;

}

 

/* @class NSString */

-(void *)decryptWithKey:(void *)arg2 {

    r22 = [arg2 retain];

    r0 = [NSData dataWithBase64EncodedString:self];

    r0 = [r0 retain];

    r20 = [[r0 AES256DecryptWithKey:r22] retain];

    [r22 release];

    [r0 release];

    r19 = [objc_alloc() initWithData:r2 encoding:r3];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSString */

-(void *)decrypt {

    r0 = [self decryptWithKey:@"killsMil!2"];

    return r0;

}

 

/* @class NSString */

-(void *)decryptData {

    r0 = [CommonMethod UUIDSetting];

    r0 = [r0 retain];

    r20 = [[NSString stringWithFormat:@"2bc37a1%@a1eb1f0421f07f3260b148745"] retain];

    [r0 release];

    r19 = [[self decryptWithKey:r20] retain];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class MillieFileManager */

+(void)PlistEdit:(void *)arg2 objectAtindex:(int)arg3 filePath:(void *)arg4 crypt:(bool)arg5 {

    var_40 = r26;

    stack[-72] = r25;

    r31 = r31 + 0xffffffffffffffb0;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    r19 = arg5;

    r22 = self;

    r20 = [arg2 retain];

    r21 = [arg4 retain];

    r2 = [NSDictionary class];

    if ([r20 isKindOfClass:r2] != 0x0) {

            r0 = [CommonMethod cleanDictionary:r20];

            r29 = r29;

            r24 = [r0 retain];

            [r20 release];

            r20 = r24;

    }

    r24 = objc_alloc();

    r25 = [[r22 ReadPlist:r21 crypt:r19] retain];

    r24 = [r24 initWithArray:r25];

    [r25 release];

    if (r24 != 0x0) {

            asm { sxtw       x2, w23 };

            [r24 replaceObjectAtIndex:r2 withObject:r20];

            [r22 WritePlistFile:r24 filePath:r21 crypt:r19];

    }

    [r24 release];

    [r21 release];

    [r20 release];

    return;

}

 

/* @class RNEncryptor */

+(void *)encryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 password:(void *)arg4 error:(void * *)arg5 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    var_E0 = objc_alloc();

    memcpy(&stack[-184], r3, 0x68);

    var_108 = [[self synchronousResultForCryptor:[var_E0 initWithSettings:&stack[-184] password:0x0 handler:0x10068a628] data:0x0 error:r5] retain];

    objc_storeStrong(&saved_fp - 0x40, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_108 autorelease];

    return r0;

}

 

/* @class RNEncryptor */

+(void *)encryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 password:(void *)arg4 IV:(void *)arg5 encryptionSalt:(void *)arg6 HMACSalt:(void *)arg7 error:(void * *)arg8 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    objc_storeStrong(&saved_fp - 0x40, r6);

    objc_storeStrong(&saved_fp - 0x48, r7);

    var_128 = objc_alloc();

    memcpy(&stack[-208], r3, 0x68);

    var_168 = [[self synchronousResultForCryptor:[var_128 initWithSettings:&stack[-208] password:0x0 IV:0x0 encryptionSalt:0x0 HMACSalt:0x0 handler:0x10068a648] data:0x0 error:arg8] retain];

    objc_storeStrong(&saved_fp - 0x58, 0x0);

    objc_storeStrong(&saved_fp - 0x48, 0x0);

    objc_storeStrong(&saved_fp - 0x40, 0x0);

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_168 autorelease];

    return r0;

}

 

/* @class RNEncryptor */

+(void *)encryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 encryptionKey:(void *)arg4 HMACKey:(void *)arg5 error:(void * *)arg6 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    var_F8 = objc_alloc();

    memcpy(&stack[-192], r3, 0x68);

    var_128 = [[self synchronousResultForCryptor:[var_F8 initWithSettings:&stack[-192] encryptionKey:0x0 HMACKey:0x0 handler:0x10068a668] data:0x0 error:r6] retain];

    objc_storeStrong(&saved_fp - 0x48, 0x0);

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_128 autorelease];

    return r0;

}

 

/* @class RNEncryptor */

+(void *)encryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 encryptionKey:(void *)arg4 HMACKey:(void *)arg5 IV:(void *)arg6 error:(void * *)arg7 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    objc_storeStrong(&saved_fp - 0x40, r6);

    var_110 = objc_alloc();

    memcpy(&stack[-200], r3, 0x68);

    var_148 = [[self synchronousResultForCryptor:[var_110 initWithSettings:&stack[-200] encryptionKey:0x0 HMACKey:0x0 IV:0x0 handler:0x10068a688] data:0x0 error:r7] retain];

    objc_storeStrong(&saved_fp - 0x50, 0x0);

    objc_storeStrong(&saved_fp - 0x40, 0x0);

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_148 autorelease];

    return r0;

}

 

/* @class RNEncryptor */

-(void *)initWithSettings:(struct _RNCryptorSettings)arg2 encryptionKey:(void *)arg3 HMACKey:(void *)arg4 handler:(void *)arg5 {

    memcpy(&r2, &arg2, 0x8);

    objc_storeStrong(&saved_fp - 0x28, r3);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    var_100 = [[[self class] randomDataOfLength:*(r2 + 0x10)] retain];

    memcpy(&stack[-176], 0x1005fa548, 0x68);

    r0 = [self initWithSettings:&stack[-176] encryptionKey:0x0 HMACKey:0x0 IV:var_100 handler:0x0];

    var_120 = [r0 retain];

    [var_100 release];

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    r0 = var_120;

    return r0;

}

 

/* @class RNEncryptor */

-(void *)initWithSettings:(struct _RNCryptorSettings)arg2 encryptionKey:(void *)arg3 HMACKey:(void *)arg4 IV:(void *)arg5 handler:(void *)arg6 {

    memcpy(&r2, &arg2, 0x8);

    r31 = r31 - 0x1a0;

    var_10 = r28;

    stack[-24] = r27;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    *((r29 - 0x48) + 0x28) = self;

    *((r29 - 0x48) + 0x20) = _cmd;

    *((r29 - 0x48) + 0x18) = 0x0;

    var_E0 = r29 - 0x48;

    var_E8 = r2;

    objc_storeStrong(r29 - 0x30, r3);

    *(var_E0 + 0x10) = 0x0;

    objc_storeStrong(r29 - 0x38, r4);

    *(var_E0 + 0x8) = 0x0;

    objc_storeStrong(r29 - 0x40, r5);

    *var_E0 = 0x0;

    objc_storeStrong(r29 - 0x48, r6);

    r2 = *var_E0;

    *(var_E0 + 0x28) = 0x0;

    *((r29 - 0x58) + 0x8) = *0x100749498;

    r0 = [[r29 - 0x58 super] initWithHandler:r2];

    *(var_E0 + 0x28) = r0;

    objc_storeStrong(r29 - 0x20, r0);

    if (*(var_E0 + 0x28) != 0x0) {

            [*(var_E0 + 0x28) setIV:*(var_E0 + 0x8)];

            if (*(var_E0 + 0x10) != 0x0) {

                    CCHmacInit(*(var_E0 + 0x28) + sign_extend_64(*(int32_t *)ivar_offset(_HMACContext)), *(int32_t *)(var_E8 + 0x1c), [objc_retainAutorelease(*(var_E0 + 0x10)) bytes], [*(var_E0 + 0x10) length]);

                    [*(var_E0 + 0x28) setHMACLength:*(var_E8 + 0x20)];

            }

            var_140 = objc_alloc();

            var_148 = *(var_E0 + 0x18);

            var_150 = [[*(var_E0 + 0x28) IV] retain];

            memcpy(&stack[-224], var_E8, 0x68);

            r11 = 0x0;

            var_170 = [var_140 initWithOperation:r11 settings:&stack[-224] key:var_148 IV:var_150 error:r29 - 0x68];

            objc_storeStrong(r29 - 0x60, 0x0);

            [*(var_E0 + 0x28) setEngine:var_170];

            [var_170 release];

            [var_150 release];

            r0 = *(var_E0 + 0x28);

            r0 = [r0 engine];

            r29 = r29;

            r0 = [r0 retain];

            if (r0 != 0x0) {

                    r11 = 0x0;

                    if (CPU_FLAGS & NE) {

                            r11 = 0x1;

                    }

            }

            [r0 release];

            if (((r11 ^ 0x1) & 0x1) == 0x0) {

                    var_D4 = 0x0;

            }

            else {

                    [*(var_E0 + 0x28) cleanupAndNotifyWithError:0x0];

                    objc_storeStrong(r29 - 0x20, 0x0);

                    *(var_E0 + 0x30) = 0x0;

                    var_D4 = 0x1;

            }

            objc_storeStrong(r29 - 0x60, 0x0);

            r9 = var_D4;

            if (r9 == 0x0) {

                    if (CPU_FLAGS & E) {

                            r9 = 0x1;

                    }

            }

            if (((r9 ^ 0x1) & 0x1) == 0x0) {

                    *(var_E0 + 0x30) = [*(var_E0 + 0x28) retain];

            }

    }

    else {

            *(var_E0 + 0x30) = [*(var_E0 + 0x28) retain];

    }

    objc_storeStrong(r29 - 0x48, 0x0);

    objc_storeStrong(r29 - 0x40, 0x0);

    objc_storeStrong(r29 - 0x38, 0x0);

    objc_storeStrong(r29 - 0x30, 0x0);

    objc_storeStrong(r29 - 0x20, 0x0);

    r0 = *(var_E0 + 0x30);

    return r0;

}

 

/* @class RNEncryptor */

-(void *)initWithSettings:(struct _RNCryptorSettings)arg2 password:(void *)arg3 IV:(void *)arg4 encryptionSalt:(void *)arg5 HMACSalt:(void *)arg6 handler:(void *)arg7 {

    memcpy(&r2, &arg2, 0x8);

    r31 = r31 - 0x1c0;

    var_10 = r28;

    stack[-24] = r27;

    saved_fp = r29;

    stack[-8] = r30;

    objc_storeStrong(&saved_fp - 0x28, r3);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    objc_storeStrong(&saved_fp - 0x40, r6);

    objc_storeStrong(&saved_fp - 0x48, r7);

    r0 = [self class];

    *(int128_t *)(&saved_fp - 0x70) = *(int128_t *)(r2 + 0x28);

    *(int128_t *)((&saved_fp - 0x70) + 0x10) = *(int128_t *)(r2 + 0x38);

    var_50 = [[r0 keyForPassword:0x0 salt:0x0 settings:&saved_fp - 0x70] retain];

    r0 = [self class];

    r0 = [r0 keyForPassword:r2 salt:r3 settings:r4];

    r29 = &saved_fp;

    var_78 = [r0 retain];

    memcpy(&stack[-280], r2, 0x68);

    r0 = [self initWithSettings:&stack[-280] encryptionKey:var_50 HMACKey:var_78 IV:0x0 handler:0x0];

    var_18 = r0;

    objc_storeStrong(&saved_fp - 0x18, r0);

    if (var_18 != 0x0) {

            [var_18 setOptions:([var_18 options] & 0xff | 0x1) & 0xff];

            [var_18 setEncryptionSalt:0x0];

            [var_18 setHMACSalt:0x0];

    }

    var_1A8 = [var_18 retain];

    objc_storeStrong(r29 - 0x78, 0x0);

    objc_storeStrong(r29 - 0x50, 0x0);

    objc_storeStrong(r29 - 0x48, 0x0);

    objc_storeStrong(r29 - 0x40, 0x0);

    objc_storeStrong(r29 - 0x38, 0x0);

    objc_storeStrong(r29 - 0x30, 0x0);

    objc_storeStrong(r29 - 0x28, 0x0);

    objc_storeStrong(r29 - 0x18, 0x0);

    r0 = var_1A8;

    return r0;

}

 

/* @class RNEncryptor */

-(void *)encryptionSalt {

    r0 = self->_encryptionSalt;

    return r0;

}

 

/* @class RNEncryptor */

-(void)setEncryptionSalt:(void *)arg2 {

    objc_storeStrong((int64_t *)&self->_encryptionSalt, arg2);

    return;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 password:(void *)arg4 error:(void * *)arg5 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    var_40 = [objc_alloc() initWithPassword:0x0 handler:0x10068a9a0];

    memcpy(&saved_fp - 0xa8, r3, 0x68);

    memcpy(&stack[-288], &saved_fp - 0xa8, 0x68);

    [var_40 setSettings:&stack[-288]];

    var_170 = [[self synchronousResultForCryptor:var_40 data:0x0 error:r5] retain];

    objc_storeStrong(&saved_fp - 0x40, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_170 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withSettings:(struct _RNCryptorSettings)arg3 encryptionKey:(void *)arg4 HMACKey:(void *)arg5 error:(void * *)arg6 {

    memcpy(&r3, &arg3, 0x8);

    objc_storeStrong(&saved_fp - 0x28, arg2);

    objc_storeStrong(&saved_fp - 0x30, r4);

    objc_storeStrong(&saved_fp - 0x38, r5);

    var_48 = [objc_alloc() initWithEncryptionKey:0x0 HMACKey:0x0 handler:0x10068a9c0];

    memcpy(&saved_fp - 0xb0, r3, 0x68);

    memcpy(&stack[-296], &saved_fp - 0xb0, 0x68);

    [var_48 setSettings:&stack[-296]];

    var_188 = [[self synchronousResultForCryptor:var_48 data:0x0 error:r6] retain];

    objc_storeStrong(&saved_fp - 0x48, 0x0);

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    r0 = [var_188 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withPassword:(void *)arg3 error:(void * *)arg4 {

    objc_storeStrong(&saved_fp - 0x18, arg2);

    objc_storeStrong(&saved_fp - 0x20, arg3);

    var_68 = [[self synchronousResultForCryptor:[objc_alloc() initWithPassword:0x0 handler:0x10068a9e0] data:0x0 error:arg4] retain];

    objc_storeStrong(&saved_fp - 0x30, 0x0);

    objc_storeStrong(&saved_fp - 0x20, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    r0 = [var_68 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

+(void *)decryptData:(void *)arg2 withEncryptionKey:(void *)arg3 HMACKey:(void *)arg4 error:(void * *)arg5 {

    objc_storeStrong(&saved_fp - 0x18, arg2);

    objc_storeStrong(&saved_fp - 0x20, arg3);

    objc_storeStrong(&saved_fp - 0x28, arg4);

    var_80 = [[self synchronousResultForCryptor:[objc_alloc() initWithEncryptionKey:0x0 HMACKey:0x0 handler:0x10068aa00] data:0x0 error:arg5] retain];

    objc_storeStrong(&saved_fp - 0x38, 0x0);

    objc_storeStrong(&saved_fp - 0x28, 0x0);

    objc_storeStrong(&saved_fp - 0x20, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    r0 = [var_80 autorelease];

    return r0;

}

 

/* @class RNDecryptor */

-(void)decryptData:(void *)arg2 {

    objc_storeStrong(&saved_fp - 0x18, arg2);

    r0 = [self queue];

    r0 = [r0 retain];

    *(&var_48 + 0x10) = 0x1004de1e4;

    *(&var_48 + 0x18) = 0x10068a6d8;

    *(&var_48 + 0x20) = [self retain];

    *(&var_48 + 0x28) = [0x0 retain];

    dispatch_async(r0, &var_48);

    [r0 release];

    objc_storeStrong(&var_48 + 0x28, 0x0);

    objc_storeStrong(&var_48 + 0x20, 0x0);

    objc_storeStrong(&saved_fp - 0x18, 0x0);

    return;

}

 

/* @class RNCryptorEngine */

-(struct _CCCryptor *)cryptor {

    r0 = *(self + 0x8);

    return r0;

}

 

 

 

 

 

 

/* @class RNCryptorEngine */

-(void *)initWithOperation:(unsigned int)arg2 settings:(struct _RNCryptorSettings)arg3 key:(void *)arg4 IV:(void *)arg5 error:(void * *)arg6 {

    memcpy(&r3, &arg3, 0x8);

    r31 = r31 - 0xc0;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    var_1C = arg2;

    var_58 = r3;

    objc_storeStrong(r29 - 0x28, r4);

    objc_storeStrong(r29 - 0x30, r5);

    var_38 = r6;

    *((r29 - 0x48) + 0x8) = *0x100749490;

    r0 = [[r29 - 0x48 super] init];

    var_10 = r0;

    objc_storeStrong(r29 - 0x10, r0);

    if (var_10 == 0x0) goto loc_1004b54b8;

 

loc_1004b5370:

    var_4C = CCCryptorCreate(var_1C, *(int32_t *)var_58, *(int32_t *)(var_58 + 0x18), [objc_retainAutorelease(0x0) bytes], [0x0 length], [objc_retainAutorelease(0x0) bytes], var_10 + 0x8);

    if ((var_4C != 0x0) || (*(var_10 + 0x8) == 0x0)) goto loc_1004b5420;

 

loc_1004b5488:

    r0 = [NSMutableData data];

    r29 = r29;

    r0 = [r0 retain];

    r9 = *(var_10 + 0x10);

    *(var_10 + 0x10) = r0;

    [r9 release];

    goto loc_1004b54b8;

 

loc_1004b54b8:

    var_8 = [var_10 retain];

    goto loc_1004b54cc;

 

loc_1004b54cc:

    objc_storeStrong(r29 - 0x30, 0x0);

    objc_storeStrong(r29 - 0x28, 0x0);

    objc_storeStrong(r29 - 0x10, 0x0);

    r0 = var_8;

    return r0;

 

loc_1004b5420:

    if (var_38 != 0x0) {

            r0 = [NSError errorWithDomain:*0x10068aae0 code:sign_extend_64(var_4C) userInfo:0x0];

            r29 = r29;

            *var_38 = [[r0 retain] autorelease];

    }

    objc_storeStrong(r29 - 0x10, 0x0);

    var_8 = 0x0;

    goto loc_1004b54cc;

}

 

/* @class RNCryptorEngine */

-(void)dealloc {

    r31 = r31 - 0x30;

    saved_fp = r29;

    stack[-8] = r30;

    var_8 = self;

    if (*(var_8 + 0x8) != 0x0) {

            CCCryptorRelease(*(var_8 + 0x8));

    }

    *(&var_20 + 0x8) = *0x100749490;

    [[&var_20 super] dealloc];

    return;

}

 

/* @class RNCryptorEngine */

-(void *)addData:(void *)arg2 error:(void * *)arg3 {

    r31 = r31 - 0xf0;

    saved_fp = r29;

    stack[-8] = r30;

    objc_storeStrong(&saved_fp - 0x40, arg2);

    var_48 = arg3;

    r0 = [self buffer];

    r29 = &saved_fp;

    var_50 = [r0 retain];

    [var_50 setLength:CCCryptorGetOutputLength([self cryptor], [0x0 length], 0x1)];

    var_5C = CCCryptorUpdate([self cryptor], [objc_retainAutorelease(0x0) bytes], [0x0 length], [objc_retainAutorelease(var_50) mutableBytes], [var_50 length], r29 - 0x58);

    if (var_5C != 0x0) {

            if (var_48 != 0x0) {

                    r0 = [NSError errorWithDomain:*0x10068aae0 code:sign_extend_64(var_5C) userInfo:0x0];

                    r29 = r29;

                    *var_48 = [[r0 retain] autorelease];

            }

            var_28 = 0x0;

    }

    else {

            r0 = [var_50 subdataWithRange:0x0];

            r29 = r29;

            var_28 = [r0 retain];

    }

    objc_storeStrong(r29 - 0x50, 0x0);

    objc_storeStrong(r29 - 0x40, 0x0);

    r0 = [var_28 autorelease];

    return r0;

}

 

/* @class RNCryptorEngine */

-(void *)finishWithError:(void * *)arg2 {

    r31 = r31 - 0x90;

    saved_fp = r29;

    stack[-8] = r30;

    var_40 = arg2;

    r0 = [self buffer];

    r29 = &saved_fp;

    var_48 = [r0 retain];

    var_70 = [self cryptor];

    var_78 = [objc_retainAutorelease(var_48) mutableBytes];

    r0 = [var_48 length];

    r0 = CCCryptorFinal(var_70, var_78, r0, &var_50);

    var_54 = r0;

    if (var_54 != 0x0) {

            if (var_40 != 0x0) {

                    *var_40 = [[[NSError errorWithDomain:*0x10068aae0 code:sign_extend_64(var_54) userInfo:0x0] retain] autorelease];

            }

            var_28 = 0x0;

    }

    else {

            var_28 = [[var_48 subdataWithRange:0x0] retain];

    }

    objc_storeStrong(&var_48, 0x0);

    r0 = [var_28 autorelease];

    return r0;

}

 

/* @class RNCryptorEngine */

-(struct _CCCryptor *)cryptor {

    r0 = *(self + 0x8);

    return r0;

}

 

/* @class RNCryptorEngine */

-(void *)buffer {

    r0 = *(self + 0x10);

    return r0;

}

 

/* @class RNCryptorEngine */

-(void).cxx_destruct {

    objc_storeStrong(self + 0x10, 0x0);

    return;

}

 

/* @class RNCryptor */

+(void *)synchronousResultForCryptor:(void *)arg2 data:(void *)arg3 error:(void * *)arg4 {

    r31 = r31 - 0x140;

    var_10 = r28;

    stack[-24] = r27;

    saved_fp = r29;

    stack[-8] = r30;

    *((&saved_fp - 0x50) + 0x30) = self;

    *((&saved_fp - 0x50) + 0x28) = _cmd;

    *((&saved_fp - 0x50) + 0x20) = 0x0;

    var_E8 = &saved_fp - 0x50;

    objc_storeStrong(&saved_fp - 0x30, arg2);

    *(var_E8 + 0x18) = 0x0;

    objc_storeStrong(&saved_fp - 0x38, arg3);

    *(var_E8 + 0x10) = arg4;

    *(var_E8 + 0x8) = dispatch_semaphore_create(0x0);

    r0 = [NSMutableData data];

    r29 = &saved_fp;

    *var_E8 = [r0 retain];

    *((r29 - 0x80) + 0x8) = r29 - 0x80;

    *((r29 - 0x80) + 0x18) = 0x1004e4130;

    *((r29 - 0x80) + 0x20) = 0x1004e4184;

    *((r29 - 0x80) + 0x28) = 0x0;

    *(&var_C0 + 0x10) = 0x1004e41b4;

    *(&var_C0 + 0x18) = 0x10068aae8;

    var_100 = (r29 - 0x80) + 0x28;

    var_118 = &var_C0 + 0x20;

    *(&var_C0 + 0x20) = [*var_E8 retain];

    *(&var_C0 + 0x30) = r29 - 0x80;

    var_120 = &var_C0 + 0x28;

    *(&var_C0 + 0x28) = [*(var_E8 + 0x8) retain];

    r2 = objc_retainBlock(&var_C0);

    [*(var_E8 + 0x20) setHandler:r2];

    [*(var_E8 + 0x20) setResponseQueue:dispatch_queue_create("net.robnapier.RNEncryptor.response", 0x0)];

    [*(var_E8 + 0x20) addData:*(var_E8 + 0x18)];

    [*(var_E8 + 0x20) finish];

    dispatch_semaphore_wait(*(var_E8 + 0x8), 0xffffffffffffffff);

    if (*(var_78 + 0x28) != 0x0) {

            if (*(var_E8 + 0x10) != 0x0) {

                    **(var_E8 + 0x10) = objc_retainAutorelease(*(var_78 + 0x28));

            }

            *(var_E8 + 0x38) = 0x0;

    }

    else {

            *(var_E8 + 0x38) = [*var_E8 retain];

    }

    objc_storeStrong(&var_D8, 0x0);

    objc_storeStrong(r29 - 0x88, 0x0);

    objc_storeStrong(var_120, 0x0);

    objc_storeStrong(var_118, 0x0);

    _Block_object_dispose(r29 - 0x80, 0x8);

    objc_storeStrong(var_100, 0x0);

    objc_storeStrong(r29 - 0x50, 0x0);

    objc_storeStrong(r29 - 0x48, 0x0);

    objc_storeStrong(r29 - 0x38, 0x0);

    objc_storeStrong(r29 - 0x30, 0x0);

    r0 = *(var_E8 + 0x38);

    r0 = [r0 autorelease];

    return r0;

}

 

/* @class RNCryptor */

+(void *)keyForPassword:(void *)arg2 salt:(void *)arg3 settings:(struct _RNCryptorKeyDerivationSettings)arg4 {

    memcpy(&r4, &arg4, 0x8);

    r31 = r31 - 0xf0;

    saved_fp = r29;

    stack[-8] = r30;

    var_50 = r4;

    objc_storeStrong(&saved_fp - 0x18, arg2);

    objc_storeStrong(&saved_fp - 0x20, arg3);

    r0 = [NSMutableData dataWithLength:*var_50];

    r29 = &saved_fp;

    var_28 = [r0 retain];

    if ((*(int8_t *)(var_50 + 0x1c) & 0x1) == 0x0) {

            r0 = [0x0 dataUsingEncoding:0x4];

            r29 = r29;

            var_30 = [r0 retain];

            [0x0 release];

    }

    else {

            r0 = [NSData dataWithBytes:[objc_retainAutorelease(0x0) UTF8String] length:[0x0 length]];

            r29 = r29;

            var_30 = [r0 retain];

            [0x0 release];

    }

    var_6C = *(int32_t *)(var_50 + 0x10);

    var_88 = [objc_retainAutorelease(var_30) bytes];

    var_98 = [var_30 length];

    var_A0 = [objc_retainAutorelease(0x0) bytes];

    var_A8 = [0x0 length];

    var_AC = *(int32_t *)(var_50 + 0x14);

    var_B0 = *(int32_t *)(var_50 + 0x18);

    var_B8 = [objc_retainAutorelease(var_28) mutableBytes];

    stack[-240] = [var_28 length];

    sub_1004e45f0(var_6C, var_88, var_98, var_A0, var_A8, var_AC, var_B0, var_B8, stack[-240]);

    var_D0 = [var_28 retain];

    objc_storeStrong(r29 - 0x30, 0x0);

    objc_storeStrong(r29 - 0x28, 0x0);

    objc_storeStrong(r29 - 0x20, 0x0);

    objc_storeStrong(r29 - 0x18, 0x0);

    r0 = [var_D0 autorelease];

    return r0;

}

 

/* @class RNCryptor */

+(void *)randomDataOfLength:(unsigned long long)arg2 {

    r31 = r31 - 0x70;

    saved_fp = r29;

    stack[-8] = r30;

    var_18 = arg2;

    var_30 = *_SecRandomCopyBytes;

    r0 = [NSMutableData dataWithLength:var_18];

    r29 = &saved_fp;

    var_20 = [r0 retain];

    if (var_30 != 0x0) {

            SecRandomCopyBytes(0x0, var_18, [objc_retainAutorelease(var_20) mutableBytes]);

    }

    else {

            sub_1004e4a88(0x0, var_18, [objc_retainAutorelease(var_20) mutableBytes]);

    }

    var_60 = [var_20 retain];

    objc_storeStrong(r29 - 0x20, 0x0);

    r0 = [var_60 autorelease];

    return r0;

}

 

/* @class RNCryptor */

-(void *)initWithHandler:(void *)arg2 {

    r31 = r31 - 0xb0;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    objc_storeStrong(r29 - 0x18, arg2);

    *((r29 - 0x28) + 0x8) = *0x1007494a8;

    r0 = [[r29 - 0x28 super] init];

    var_8 = r0;

    objc_storeStrong(r29 - 0x8, r0);

    if (var_8 != 0x0) {

            var_58 = [NSStringFromClass([var_8 class]) retain];

            var_30 = [[@"net.robnapier.response." stringByAppendingString:var_58] retain];

            var_68 = r29 - 0x30;

            [var_58 release];

            r0 = objc_retainAutorelease(var_30);

            r0 = [r0 UTF8String];

            r0 = dispatch_queue_create(r0, 0x0);

            r9 = *(var_8 + 0x10);

            *(var_8 + 0x10) = r0;

            [r9 release];

            var_80 = [NSStringFromClass([var_8 class]) retain];

            var_38 = [[@"net.robnapier." stringByAppendingString:r2] retain];

            var_88 = r29 - 0x38;

            [var_80 release];

            r0 = objc_retainAutorelease(var_38);

            r0 = [r0 UTF8String];

            r0 = dispatch_queue_create(r0, 0x0);

            r9 = *(var_8 + 0x28);

            *(var_8 + 0x28) = r0;

            [r9 release];

            r0 = [NSMutableData data];

            r29 = r29;

            r0 = [r0 retain];

            r9 = *(var_8 + 0x20);

            *(var_8 + 0x20) = r0;

            [r9 release];

            r0 = [0x0 copy];

            r9 = *(var_8 + 0x40);

            *(var_8 + 0x40) = r0;

            [r9 release];

            objc_storeStrong(var_88, 0x0);

            objc_storeStrong(var_68, 0x0);

    }

    var_98 = [var_8 retain];

    objc_storeStrong(r29 - 0x18, 0x0);

    objc_storeStrong(r29 - 0x8, 0x0);

    r0 = var_98;

    return r0;

}

 

/* @class RNCryptor */

-(void)dealloc {

    r31 = r31 - 0x30;

    saved_fp = r29;

    stack[-8] = r30;

    var_8 = self;

    if (*(var_8 + 0x10) != 0x0) {

            objc_storeStrong(var_8 + 0x10, 0x0);

    }

    if (*(var_8 + 0x28) != 0x0) {

            objc_storeStrong(var_8 + 0x28, 0x0);

    }

    *(&var_20 + 0x8) = *0x1007494a8;

    [[&var_20 super] dealloc];

    return;

}

 

/* @class RNCryptor */

-(void)setResponseQueue:(void *)arg2 {

    r31 = r31 - 0x30;

    saved_fp = r29;

    stack[-8] = r30;

    var_8 = self;

    r0 = objc_storeStrong(&var_18, arg2);

    objc_storeStrong(var_8 + 0x10, var_18);

    objc_storeStrong(&var_18, 0x0);

    return;

}

 

/* @class RNCryptor */

-(void)addData:(void *)arg2 {

    objc_storeStrong(&var_18, arg2);

    objc_storeStrong(&var_18, 0x0);

    return;

}

 

/* @class RNCryptor */

-(void)finish {

    return;

}

 

/* @class RNCryptor */

-(void)cleanupAndNotifyWithError:(void *)arg2 {

    r31 = r31 - 0x80;

    saved_fp = r29;

    stack[-8] = r30;

    var_8 = self;

    objc_storeStrong(&saved_fp - 0x18, arg2);

    [var_8 setError:0x0];

    [var_8 setFinished:0x1];

    r0 = [var_8 handler];

    r29 = &saved_fp;

    r0 = [r0 retain];

    [r0 release];

    if (r0 != 0x0) {

            r0 = [var_8 responseQueue];

            r29 = r29;

            r0 = [r0 retain];

            *(&var_40 + 0x10) = 0x1004e509c;

            *(&var_40 + 0x18) = 0x10068a6a8;

            *(&var_40 + 0x20) = [var_8 retain];

            dispatch_sync(r0, &var_40);

            [r0 release];

            [var_8 setHandler:0x0];

            objc_storeStrong(&var_40 + 0x20, 0x0);

    }

    objc_storeStrong(r29 - 0x18, 0x0);

    return;

}

 

/* @class RNCryptor */

-(bool)hasHMAC {

    r31 = r31 - 0x20;

    saved_fp = r29;

    stack[-8] = r30;

    if ([self HMACLength] > 0x0) {

            if (CPU_FLAGS & A) {

                    r9 = 0x1;

            }

    }

    r0 = r9 & 0x1;

    return r0;

}

 

/* @class RNCryptor */

-(void *)responseQueue {

    r0 = *(self + 0x10);

    return r0;

}

 

/* @class RNCryptor */

-(void *)engine {

    r0 = *(self + 0x18);

    return r0;

}

 

/* @class RNCryptor */

-(void)setEngine:(void *)arg2 {

    objc_storeStrong(self + 0x18, arg2);

    return;

}

 

/* @class RNCryptor */

-(void *)outData {

    r0 = *(self + 0x20);

    return r0;

}

 

/* @class RNCryptor */

-(void *)queue {

    r0 = *(self + 0x28);

    return r0;

}

 

/* @class RNCryptor */

-(void)setQueue:(void *)arg2 {

    objc_storeStrong(self + 0x28, arg2);

    return;

}

 

/* @class RNCryptor */

-(unsigned long long)HMACLength {

    r0 = *(self + 0x30);

    return r0;

}

 

/* @class RNCryptor */

-(void)setHMACLength:(unsigned long long)arg2 {

    *(self + 0x30) = arg2;

    return;

}

 

 

 

 

 

 

/* @class KOSecurityCenter */

-(void *)cipherWithCCCrypt:(void *)arg2 key:(void *)arg3 operation:(unsigned int)arg4 {

    var_50 = r28;

    stack[-88] = r27;

    var_40 = r26;

    stack[-72] = r25;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    r31 = r31 + 0xffffffffffffffa0 - 0x1d0;

    r22 = arg4;

    r21 = self;

    r19 = [arg2 retain];

    r24 = [arg3 retain];

    if ((r19 == 0x0) || (r24 == 0x0)) goto loc_100017a30;

 

loc_100017864:

    r20 = [r19 length];

    var_208 = r24;

    r0 = objc_retainAutorelease(r24);

    r25 = r0;

    r0 = [r0 bytes];

    r0 = CCCryptorCreate(r22, 0x0, 0x3, r0, 0x10, r29 - 0xd0, &var_1F8);

    if (r0 == 0x0) goto loc_100017bfc;

 

loc_1000178c4:

    asm { sxtw       x28, w0 };

    r0 = @(0x1a2);

    r29 = r29;

    r0 = [r0 retain];

    r27 = r0;

    r8 = @"E";

    if (r22 == 0x1) {

            if (!CPU_FLAGS & E) {

                    r8 = @"E";

            }

            else {

                    r8 = @"D";

            }

    }

    r24 = @selector(bytes);

    r0 = objc_retainAutorelease(r25);

    [[r21 hexString:objc_msgSend(r0, r24) length:[r0 length]] retain];

    [[NSError errorWithDomain:@"KOTokenCryptoErrorDomain" code:r28 userInfo:[[NSDictionary dictionaryWithObjects:r29 - 0xf0 forKeys:&var_110 count:0x4] retain]] retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r20 release];

    [r22 release];

    [r21 release];

    r0 = r27;

    goto loc_100017fe4;

 

loc_100017fe4:

    [r0 release];

    r23 = 0x0;

    goto loc_100017fec;

 

loc_100017fec:

    r24 = var_208;

    goto loc_100017ff0;

 

loc_100017ff0:

    var_60 = **___stack_chk_guard;

    [r24 release];

    [r19 release];

    if (**___stack_chk_guard == var_60) {

            r0 = [r23 autorelease];

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

 

loc_100017bfc:

    r0 = CCCryptorGetOutputLength(0x0, r20, 0x1);

    r28 = r0;

    r0 = malloc(r0);

    r26 = r0;

    bzero(r0, r28);

    r0 = objc_retainAutorelease(r19);

    var_210 = r0;

    r0 = objc_msgSend(r0, r24);

    r0 = CCCryptorUpdate(0x0, r0, r20, r26, r28, &var_200);

    if (r0 == 0x0) goto loc_100017df4;

 

loc_100017c58:

    if (r26 != 0x0) {

            free(r26);

    }

    r8 = &@selector(incrementScreenInstanceID);

    r26 = *(r8 + 0xcd0);

    asm { sxtw       x8, w20 };

    var_220 = r8;

    r0 = @(0x1be);

    r29 = r29;

    r0 = [r0 retain];

    r28 = r0;

    r8 = @"E";

    if (r22 == 0x1) {

            if (!CPU_FLAGS & E) {

                    r8 = @"E";

            }

            else {

                    r8 = @"D";

            }

    }

    r24 = @selector(bytes);

    r0 = objc_retainAutorelease(r25);

    r20 = [[r21 hexString:objc_msgSend(r0, r24) length:[r0 length]] retain];

    r0 = objc_retainAutorelease(var_210);

    r21 = [[r21 hexString:objc_msgSend(r0, r24) length:[r0 length]] retain];

    r22 = [[NSDictionary dictionaryWithObjects:&var_138 forKeys:&var_160 count:0x5] retain];

    r0 = [r26 errorWithDomain:r2 code:r3 userInfo:r4];

    goto loc_100017fa4;

 

loc_100017fa4:

    [r0 retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r23 release];

    [r22 release];

    [r21 release];

    [r20 release];

    r0 = r28;

    goto loc_100017fe4;

 

loc_100017df4:

    r0 = CCCryptorFinal(0x0, r26 + 0x0, r28 - 0x0, &var_200);

    if (r0 == 0x0) goto loc_10001803c;

 

loc_100017e0c:

    if (r26 != 0x0) {

            free(r26);

    }

    r8 = &@selector(incrementScreenInstanceID);

    r26 = *(r8 + 0xcd0);

    asm { sxtw       x8, w20 };

    var_220 = r8;

    r0 = @(0x1d6);

    r29 = r29;

    r0 = [r0 retain];

    r28 = r0;

    r8 = @"E";

    if (r22 == 0x1) {

            if (!CPU_FLAGS & E) {

                    r8 = @"E";

            }

            else {

                    r8 = @"D";

            }

    }

    r24 = @selector(bytes);

    r0 = objc_retainAutorelease(r25);

    r20 = [[r21 hexString:objc_msgSend(r0, r24) length:[r0 length]] retain];

    r0 = objc_retainAutorelease(var_210);

    r21 = [[r21 hexString:objc_msgSend(r0, r24) length:[r0 length]] retain];

    r22 = [[NSDictionary dictionaryWithObjects:&var_188 forKeys:&var_1B0 count:0x5] retain];

    r0 = [r26 errorWithDomain:r2 code:r3 userInfo:r4];

    goto loc_100017fa4;

 

loc_10001803c:

    r25 = 0x0;

    if (0x0 != 0x0) {

            CCCryptorRelease(0x0);

    }

    r0 = [NSData dataWithBytes:r2 length:r3];

    r29 = r29;

    r0 = [r0 retain];

    r23 = r0;

    if (r0 == 0x0) {

            r0 = @(0x1ea);

            r29 = r29;

            r0 = [r0 retain];

            r24 = r0;

            r8 = @"E";

            if (r22 == 0x1) {

                    if (!CPU_FLAGS & E) {

                            r8 = @"E";

                    }

                    else {

                            r8 = @"D";

                    }

            }

            [[r21 hexString:r26 length:r25] retain];

            [[NSError errorWithDomain:@"KOTokenOtherErrorDomain" code:0x4 userInfo:[[NSDictionary dictionaryWithObjects:&var_1D0 forKeys:&var_1F0 count:0x4] retain]] retain];

            [KOSecurityCenter postNotificationWithError:r2];

            [r25 release];

            [r22 release];

            [r21 release];

            [r24 release];

    }

    if (r26 != 0x0) {

            free(r26);

    }

    goto loc_100017fec;

 

loc_100017a30:

    if (r19 != 0x0) {

            r0 = @(0x18c);

            r29 = r29;

            r0 = [r0 retain];

            r20 = r0;

            r9 = @"E";

            if (r22 == 0x1) {

                    if (!CPU_FLAGS & E) {

                            r9 = @"E";

                    }

                    else {

                            r9 = @"D";

                    }

            }

            r22 = [[NSDictionary dictionaryWithObjects:r29 - 0xa8 forKeys:r29 - 0xc0 count:0x3] retain];

            r0 = [NSError errorWithDomain:r2 code:r3 userInfo:r4];

    }

    else {

            r0 = @(0x186);

            r29 = r29;

            r0 = [r0 retain];

            r20 = r0;

            r9 = @"E";

            if (r22 == 0x1) {

                    if (!CPU_FLAGS & E) {

                            r9 = @"E";

                    }

                    else {

                            r9 = @"D";

                    }

            }

            r22 = [[NSDictionary dictionaryWithObjects:r29 - 0x78 forKeys:r29 - 0x90 count:0x3] retain];

            r0 = [NSError errorWithDomain:r2 code:r3 userInfo:r4];

    }

    [r0 retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r23 release];

    [r22 release];

    [r20 release];

    r23 = 0x0;

    goto loc_100017ff0;

}

 

 

 

 

 

/* @class NSData */

-(void *)AES256DecryptWithKey:(void *)arg2 {

    r31 = r31 - 0x80;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    [arg2 getCString:&var_50 maxLength:0x21 encoding:0x4];

    r0 = [self length];

    r21 = r0;

    r22 = r0 + 0x10;

    r19 = malloc(r22);

    r0 = objc_retainAutorelease(self);

    r0 = [r0 bytes];

    r0 = CCCrypt(0x1, 0x0, 0x1, &var_50, 0x20, 0x0, r0, r21, r19, r22, &var_58);

    if (r0 != 0x0) {

            free(r19);

            r0 = 0x0;

    }

    else {

            r0 = [NSData dataWithBytesNoCopy:r19 length:var_58];

            r0 = [r0 retain];

    }

    if (**___stack_chk_guard == **___stack_chk_guard) {

            r0 = [r0 autorelease];

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

}

 

/* @class NSData */

-(void *)AES256DecryptWithKey:(void *)arg2 andIv:(void *)arg3 {

    var_40 = r26;

    stack[-72] = r25;

    r29 = &saved_fp;

    var_70 = q0;

    var_60 = q0;

    r22 = [arg3 retain];

    [arg2 retain];

    r0 = [r22 length];

    r26 = &var_80;

    bzero(&var_80 - (r0 + 0x10 & 0xfffffffffffffff0), r0 + 0x1);

    [r23 getCString:r29 - 0x70 maxLength:0x21 encoding:0x4];

    [r23 release];

    [r22 getCString:r20 maxLength:r24 encoding:0x4];

    [r22 release];

    r0 = [self length];

    r21 = malloc(r0 + 0x10);

    if (CCCrypt(0x1, 0x0, 0x1, r29 - 0x70, 0x20, r20, [objc_retainAutorelease(self) bytes], r0, r21, r0 + 0x10, r29 - 0x78) != 0x0) {

            free(r21);

            r0 = 0x0;

    }

    else {

            r0 = [NSData dataWithBytesNoCopy:r21 length:0x0];

            r29 = r29;

            r0 = [r0 retain];

    }

    if (**___stack_chk_guard == **___stack_chk_guard) {

            r0 = [r0 autorelease];

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

}

 

/* @class NSData */

-(void *)AES256DecryptWithUUIDKey {

    r21 = [[CommonMethod UUIDSetting] retain];

    r20 = [[NSString stringWithFormat:@"millieshelf%@"] retain];

    r19 = [[self AES256DecryptWithKey:r20] retain];

    [r20 release];

    [r21 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSData */

-(void *)AES256DecryptWithBundleID {

    r0 = [NSBundle bundleForClass:[self class]];

    r0 = [r0 retain];

    r20 = r0;

    r0 = [r0 infoDictionary];

    r0 = [r0 retain];

    r23 = [[r0 objectForKey:@"CFBundleIdentifier"] retain];

    r21 = [[NSString stringWithFormat:@"millieshelf%@"] retain];

    r19 = [[self AES256DecryptWithKey:r21] retain];

    [r21 release];

    [r23 release];

    [r0 release];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class CommonMethod */

+(void *)getFiltToDecryptData:(void *)arg2 andKey:(void *)arg3 {

    r22 = [arg3 retain];

    r19 = [[NSData dataWithContentsOfFile:arg2] retain];

    r20 = [[CommonMethod getDecryptKey:r22] retain];

    [r22 release];

    r21 = [[r19 AES256DecryptWithKey:r20] retain];

    [r20 release];

    [r19 release];

    r0 = [r21 autorelease];

    return r0;

}

 

/* @class CommonMethod */

+(void *)getDecryptKey:(void *)arg2 {

    r0 = [@"0000000000000000" stringByAppendingString:arg2];

    r0 = [r0 retain];

    r21 = r0;

    r0 = [r21 substringFromIndex:[r0 length] - [@"0000000000000000" length]];

    r0 = [r0 retain];

    r19 = [[r0 stringByAppendingString:@"millie0123456789"] retain];

    [r0 release];

    [r21 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSString */

-(void *)decryptWithKey:(void *)arg2 {

    r22 = [arg2 retain];

    r0 = [NSData dataWithBase64EncodedString:self];

    r0 = [r0 retain];

    r20 = [[r0 AES256DecryptWithKey:r22] retain];

    [r22 release];

    [r0 release];

    r19 = [objc_alloc() initWithData:r2 encoding:r3];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSData */

+(void *)dataWithBase64EncodedString:(void *)arg2 {

    r20 = [arg2 retain];

    r19 = [objc_allocWithZone(@class(NSData)) initWithBase64EncodedString:r20];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

 

/* @class NSString */

-(void *)decrypt {

    r0 = [self decryptWithKey:@"killsMil!2"];

    return r0;

}

 

/* @class NSString */

-(void *)decryptData {

    r0 = [CommonMethod UUIDSetting];

    r0 = [r0 retain];

    r20 = [[NSString stringWithFormat:@"2bc37a1%@a1eb1f0421f07f3260b148745"] retain];

    [r0 release];

    r19 = [[self decryptWithKey:r20] retain];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSData */

-(void *)AES256EncryptWithKey:(void *)arg2 {

    r31 = r31 - 0x80;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    [arg2 getCString:&var_50 maxLength:0x21 encoding:0x4];

    r0 = [self length];

    r21 = r0;

    r22 = r0 + 0x10;

    r19 = malloc(r22);

    r0 = objc_retainAutorelease(self);

    r0 = [r0 bytes];

    r0 = CCCrypt(0x0, 0x0, 0x1, &var_50, 0x20, 0x0, r0, r21, r19, r22, &var_58);

    if (r0 != 0x0) {

            free(r19);

            r0 = 0x0;

    }

    else {

            r0 = [NSData dataWithBytesNoCopy:r19 length:var_58];

            r0 = [r0 retain];

    }

    if (**___stack_chk_guard == **___stack_chk_guard) {

            r0 = [r0 autorelease];

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

}

 

/* @class NSData */

-(void *)AES256EncryptWithUUIDKey {

    r21 = [[CommonMethod UUIDSetting] retain];

    r20 = [[NSString stringWithFormat:@"millieshelf%@"] retain];

    r19 = [[self AES256EncryptWithKey:r20] retain];

    [r20 release];

    [r21 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSData */

-(void *)AES256EncryptWithBundleID {

    r0 = [NSBundle bundleForClass:[self class]];

    r0 = [r0 retain];

    r20 = r0;

    r0 = [r0 infoDictionary];

    r0 = [r0 retain];

    r23 = [[r0 objectForKey:@"CFBundleIdentifier"] retain];

    r21 = [[NSString stringWithFormat:@"millieshelf%@"] retain];

    r19 = [[self AES256EncryptWithKey:r21] retain];

    [r21 release];

    [r23 release];

    [r0 release];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSString */

-(void *)encryptWithKey:(void *)arg2 {

    r21 = [arg2 retain];

    r0 = [self dataUsingEncoding:0x4];

    r0 = [r0 retain];

    r20 = [[r0 AES256EncryptWithKey:r21] retain];

    [r21 release];

    [r0 release];

    r19 = [[r20 base64Encoding] retain];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class NSData */

-(void *)base64Encoding {

    r0 = [self base64EncodingWithLineLength:0x0];

    return r0;

}

 

/* @class NSString */

-(void *)encrypt {

    r0 = [self encryptWithKey:@"killsMil!2"];

    return r0;

}

 

/* @class NSString */

-(void *)encryptData {

    r0 = [CommonMethod UUIDSetting];

    r0 = [r0 retain];

    r20 = [[NSString stringWithFormat:@"2bc37a1%@a1eb1f0421f07f3260b148745"] retain];

    [r0 release];

    r19 = [[self encryptWithKey:r20] retain];

    [r20 release];

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class AFSDKEvent */

-(void *)encryptWithData:(void *)arg2 {

    r31 = r31 - 0x40;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    r20 = self;

    r0 = [arg2 retain];

    r19 = r0;

    if (r0 != 0x0) {

            r22 = [[r20 key] retain];

            r20 = [[AppsFlyerAES128Crypto encrypt:r19 withObject:r22] retain];

            [r22 release];

    }

    else {

            r20 = [[NSData dataWithBytes:r2 length:r3] retain];

    }

    [r19 release];

    r0 = [r20 autorelease];

    return r0;

}

 

 

 

/* @class AppsFlyerAES128Crypto */

+(void *)encrypt:(void *)arg2 withObject:(void *)arg3 {

    r31 = r31 - 0xb0;

    var_50 = r28;

    stack[-88] = r27;

    var_40 = r26;

    stack[-72] = r25;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r21 = [arg2 retain];

    r24 = [arg3 retain];

    r22 = [[AppsFlyerAES128Crypto randomDataOfLength:0x10] retain];

    r19 = [[NSData dataWithBytes:&var_58 length:0x8] retain];

    r0 = [self class];

    r0 = [r0 AESKeyForPassword:r24 salt:r19];

    r29 = &saved_fp;

    r25 = [r0 retain];

    [r24 release];

    r20 = [objc_alloc() initWithData:r25 encoding:0x1];

    if (*(int8_t *)0x1007f61e1 != 0x0) {

            sub_1003ede8c(0x5, "+[AppsFlyerAES128Crypto encrypt:withObject:]", @"key: %@");

    }

    r0 = [AppsFlyerProxyManager sharedManager];

    r29 = r29;

    r0 = [r0 retain];

    r27 = [r0 isRemoteDebugging];

    [r0 release];

    if (r27 != 0x0) {

            sub_1003e8ef0(0x5, "+[AppsFlyerAES128Crypto encrypt:withObject:]", @"key: %@");

    }

    var_68 = r19;

    r0 = [AppsFlyerProxyManager sharedManager];

    r29 = r29;

    r0 = [r0 retain];

    var_80 = @selector(isRemoteDebugging);

    r27 = [r0 isRemoteDebugging];

    [r0 release];

    if (r27 != 0x0) {

            sub_1003e8ef0(0x4, "+[AppsFlyerAES128Crypto encrypt:withObject:]", @"key: %@");

    }

    var_70 = r20;

    r0 = [NSMutableData dataWithLength:[r21 length] + 0x10];

    r29 = r29;

    r28 = [r0 retain];

    r0 = objc_retainAutorelease(r25);

    r25 = r0;

    r27 = [r0 bytes];

    r20 = [r25 length];

    r0 = objc_retainAutorelease(r22);

    r22 = r0;

    r23 = [r0 bytes];

    r0 = objc_retainAutorelease(r21);

    r19 = [r0 bytes];

    r24 = [r0 length];

    [r0 release];

    r0 = objc_retainAutorelease(r28);

    r21 = r0;

    r28 = [r0 mutableBytes];

    r0 = [r21 length];

    r0 = CCCrypt(0x0, 0x0, 0x1, r27, r20, r23, r19, r24, r28, r0, &var_60);

    if (r0 != 0x0) {

            r26 = r0;

            sub_1003ede8c(0x1, "+[AppsFlyerAES128Crypto encrypt:withObject:]", @"Unable to encrypt data: %i");

            r0 = [AppsFlyerProxyManager sharedManager];

            r0 = [r0 retain];

            r20 = objc_msgSend(r0, var_80);

            [r0 release];

            if (r20 != 0x0) {

                    sub_1003e8ef0(0x1, "+[AppsFlyerAES128Crypto encrypt:withObject:]", @"Unable to encrypt data: %i");

            }

            r23 = 0x0;

            r19 = var_68;

    }

    else {

            [r21 setLength:var_60];

            r0 = [NSMutableData dataWithData:r21];

            r0 = [r0 retain];

            r23 = r0;

            [r0 appendData:r22];

            r19 = var_68;

            [r23 appendData:r19];

    }

    [r21 release];

    [var_70 release];

    [r25 release];

    [r19 release];

    [r22 release];

    r0 = [r23 autorelease];

    return r0;

}

 

/* @class AppsFlyerAES128Crypto */

+(void *)randomDataOfLength:(unsigned long long)arg2 {

    r31 = r31 - 0x40;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r0 = [NSMutableData dataWithLength:r2];

    r29 = &saved_fp;

    r0 = [r0 retain];

    r21 = **_kSecRandomDefault;

    r0 = objc_retainAutorelease(r0);

    r19 = r0;

    if (SecRandomCopyBytes(r21, arg2, [r0 mutableBytes]) != 0x0) {

            *(int32_t *)__error();

            sub_1003ede8c(0x1, "+[AppsFlyerAES128Crypto randomDataOfLength:]", @"Unable to generate random bytes: %d");

            r0 = [AppsFlyerProxyManager sharedManager];

            r0 = [r0 retain];

            r21 = [r0 isRemoteDebugging];

            [r0 release];

            if (r21 != 0x0) {

                    *(int32_t *)__error();

                    sub_1003e8ef0(0x1, "+[AppsFlyerAES128Crypto randomDataOfLength:]", @"Unable to generate random bytes: %d");

            }

    }

    r0 = [r19 autorelease];

    return r0;

}

 

/* @class AppsFlyerAES128Crypto */

+(void *)AESKeyForPassword:(void *)arg2 salt:(void *)arg3 {

    r31 = r31 - 0x60;

    var_40 = r26;

    stack[-72] = r25;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r20 = [arg2 retain];

    r19 = [arg3 retain];

    r0 = [NSMutableData dataWithLength:0x10];

    r29 = &saved_fp;

    r21 = [r0 retain];

    r0 = objc_retainAutorelease(r20);

    r20 = [r0 UTF8String];

    r23 = [r0 lengthOfBytesUsingEncoding:0x4];

    [r0 release];

    r0 = objc_retainAutorelease(r19);

    r22 = [r0 bytes];

    r25 = [r0 length];

    [r0 release];

    r0 = objc_retainAutorelease(r21);

    r19 = r0;

    r21 = [r0 mutableBytes];

    r0 = [r19 length];

    r0 = CCKeyDerivationPBKDF(0x2, r20, r23, r22, r25, 0x1, 0x2710, r21, r0);

    if (r0 != 0x0) {

            r20 = r0;

            sub_1003ede8c(0x1, "+[AppsFlyerAES128Crypto AESKeyForPassword:salt:]", @"Unable to create AES key for password: %d");

            r0 = [AppsFlyerProxyManager sharedManager];

            r0 = [r0 retain];

            r22 = [r0 isRemoteDebugging];

            [r0 release];

            if (r22 != 0x0) {

                    sub_1003e8ef0(0x1, "+[AppsFlyerAES128Crypto AESKeyForPassword:salt:]", @"Unable to create AES key for password: %d");

            }

    }

    r0 = [r19 autorelease];

    return r0;

}

 

 

 

/* @class KOSecureStorage */

-(void *)encryptWithPlainText:(void *)arg2 {

    var_50 = r28;

    stack[-88] = r27;

    var_40 = r26;

    stack[-72] = r25;

    r29 = &saved_fp;

    r31 = r31 + 0xffffffffffffffa0 - 0x40;

    r20 = self;

    r0 = [arg2 retain];

    r19 = r0;

    var_80 = q0;

    var_70 = q0;

    if (r0 == 0x0) goto loc_10000c680;

 

loc_10000c478:

    r0 = [r19 dataUsingEncoding:r2];

    r29 = r29;

    r0 = [r0 retain];

    if (r0 == 0x0) goto loc_10000c6d8;

 

loc_10000c498:

    r22 = r0;

    r0 = [r20 identifierForVendor];

    r29 = r29;

    r0 = [r0 retain];

    [r0 release];

    if (r0 == 0x0) goto loc_10000c760;

 

loc_10000c4c4:

    r21 = @selector(identifierForVendor);

    r21 = [objc_msgSend(r20, r21) retain];

    r25 = r29 - 0x80;

    [r20 generateKey:r29 - 0x80 uuid:r21];

    [r21 release];

    r0 = [NSMutableString string];

    r29 = r29;

    r21 = [r0 retain];

    r26 = 0x0;

    do {

            r23 = @selector(appendFormat:);

            *(r31 + 0xfffffffffffffff0) = *(int8_t *)(r25 + r26);

            objc_msgSend(r21, r23);

            r31 = r31 + 0x0;

            r26 = r26 + 0x1;

    } while (r26 != 0x20);

    var_88 = 0x0;

    r0 = [r22 length];

    r26 = &var_90;

    r27 = r0 + 0x10;

    r23 = &var_90 - (r0 + 0x1f & 0xfffffffffffffff0);

    r0 = objc_retainAutorelease(r22);

    r22 = r0;

    if (CCCrypt(0x0, 0x0, 0x3, r29 - 0x80, 0x20, 0x0, [r0 bytes], [r22 length], r23, r27, r29 - 0x88) == 0x0) goto loc_10000c7e0;

 

loc_10000c5f4:

    r24 = @selector(length);

    r23 = @class(NSError);

    asm { sxtw       x24, w0 };

    r0 = [r23 errorWithDomain:@"KOTokenCryptoErrorDomain" code:r24 userInfo:[[r20 userInfoWithDescription:@"Encrypt error." line:0x194] retain]];

    r29 = r29;

    [r0 retain];

    [r20 postNotificationWithError:r2];

    [r23 release];

    r0 = r25;

    goto loc_10000c674;

 

loc_10000c674:

    [r0 release];

    r0 = 0x0;

    goto loc_10000c808;

 

loc_10000c808:

    r20 = [r0 retain];

    [r21 release];

    [r22 release];

    [r20 release];

    goto loc_10000c82c;

 

loc_10000c82c:

    var_58 = **___stack_chk_guard;

    [r19 release];

    if (**___stack_chk_guard == var_58) {

            r0 = [r20 autorelease];

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

 

loc_10000c7e0:

    var_88 = 0x0;

    r0 = [NSData dataWithBytes:r2 length:r3];

    r29 = r29;

    r0 = [r0 retain];

    if (r0 == 0x0) goto loc_10000c870;

    goto loc_10000c808;

 

loc_10000c870:

    r0 = [NSError errorWithDomain:@"KOTokenOtherErrorDomain" code:0x4 userInfo:[[r20 userInfoWithDescription:@"cipher cannot be converted to NSData." line:0x18d] retain]];

    r29 = r29;

    [r0 retain];

    [r20 postNotificationWithError:r2];

    [r23 release];

    r0 = r24;

    goto loc_10000c674;

 

loc_10000c760:

    r0 = [NSError errorWithDomain:@"KOTokenOtherErrorDomain" code:0x5 userInfo:[[r20 userInfoWithDescription:@"device identifier is null." line:0x169] retain]];

    r29 = r29;

    [r0 retain];

    [r20 postNotificationWithError:r2];

    [r21 release];

    r0 = r23;

    goto loc_10000c74c;

 

loc_10000c74c:

    [r0 release];

    [r22 release];

    r20 = 0x0;

    goto loc_10000c82c;

 

loc_10000c6d8:

    r22 = [[r20 userInfoWithDescription:@"plain text cannot be converted to NSData." line:0x162] retain];

    r0 = [NSError errorWithDomain:r2 code:r3 userInfo:r4];

    r29 = r29;

    goto loc_10000c72c;

 

loc_10000c72c:

    [r0 retain];

    [r20 postNotificationWithError:r2];

    r0 = r21;

    goto loc_10000c74c;

 

loc_10000c680:

    r22 = [[r20 userInfoWithDescription:@"plain text is null." line:0x15a] retain];

    r0 = [NSError errorWithDomain:r2 code:r3 userInfo:r4];

    r29 = r29;

    goto loc_10000c72c;

}

 

 

 

 

/* @class KOSecurityCenter */

-(bool)saveKeychainItem:(void *)arg2 encrypt:(bool)arg3 withLabel:(void *)arg4 {

    var_50 = r28;

    stack[-88] = r27;

    var_40 = r26;

    stack[-72] = r25;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r29 = &saved_fp;

    r31 = r31 + 0xffffffffffffffa0 - 0x1a0;

    r23 = arg3;

    r22 = self;

    r20 = [arg2 retain];

    r19 = [arg4 retain];

    r0 = [r20 retain];

    r20 = r0;

    r21 = r0;

    if (r0 != 0x0) {

            r21 = r20;

            if (r23 != 0x0) {

                    r24 = [[r22 getSymmetricKey] retain];

                    r0 = [r22 cipherWithCCCrypt:r2 key:r3 operation:r4];

                    r29 = r29;

                    r21 = [r0 retain];

                    [r20 release];

                    [r24 release];

            }

    }

    if (r21 == 0x0) goto loc_100015fa4;

 

loc_100015c2c:

    r0 = [r22 appIdentifier];

    r29 = r29;

    r0 = [r0 retain];

    [r0 release];

    if (r0 == 0x0) goto loc_100015ec4;

 

loc_100015c54:

    r0 = [r22 retrieveKeychainItemEncrypted:r23 withLabel:r19];

    r29 = r29;

    r0 = [r0 retain];

    [r0 release];

    if (r0 == 0x0) goto loc_100015fac;

 

loc_100015c88:

    r0 = [r22 appIdentifier];

    r29 = r29;

    r0 = [r0 retain];

    r22 = [NSDictionary dictionaryWithObjects:&var_160 forKeys:&var_190 count:0x6];

    r22 = SecItemUpdate(r22, [NSDictionary dictionaryWithObjects:&stack[-424] forKeys:&var_1A0 count:0x1]);

    [r0 release];

    if (r22 == 0x0) goto loc_1000161c8;

 

loc_100015d80:

    r24 = [objc_alloc() initWithData:r20 encoding:0x4];

    asm { sxtw       x27, w22 };

    r9 = @"SecItemUpdate error.";

    r0 = @(0xa0);

    r29 = r29;

    r0 = [r0 retain];

    r26 = r0;

    if (r24 == 0x0) {

            if (!CPU_FLAGS & E) {

                    r9 = r24;

            }

            else {

                    r9 = @"(null)";

            }

    }

    r8 = @"(null)";

    if (r19 == 0x0) {

            if (!CPU_FLAGS & E) {

                    r8 = r19;

            }

            else {

                    r8 = @"(null)";

            }

    }

    [[NSError errorWithDomain:@"KOTokenSecItemErrorDomain" code:r27 userInfo:[[NSDictionary dictionaryWithObjects:&var_1C0 forKeys:&var_1E0 count:0x4] retain]] retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r27 release];

    [r23 release];

    [r26 release];

    r0 = r24;

    goto loc_1000161c4;

 

loc_1000161c4:

    [r0 release];

    goto loc_1000161c8;

 

loc_1000161c8:

    if (r22 == 0x0) {

            if (CPU_FLAGS & E) {

                    r22 = 0x1;

            }

    }

    goto loc_1000161d0;

 

loc_1000161d0:

    var_60 = **___stack_chk_guard;

    [r21 release];

    [r19 release];

    [r20 release];

    if (**___stack_chk_guard == var_60) {

            r0 = r22;

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

 

loc_100015fac:

    r0 = [r22 appIdentifier];

    r29 = r29;

    r0 = [r0 retain];

    r8 = *_kSecAttrAccessible;

    r22 = SecItemAdd([NSDictionary dictionaryWithObjects:r2 forKeys:r3 count:r4], 0x0);

    [r0 release];

    if (r22 == 0x0) goto loc_1000161c8;

 

loc_100016084:

    r23 = [objc_alloc() initWithData:r20 encoding:0x4];

    asm { sxtw       x27, w22 };

    r9 = @"SecItemAdd error.";

    r0 = @(0x8e);

    r29 = r29;

    r0 = [r0 retain];

    r26 = r0;

    if (r23 == 0x0) {

            if (!CPU_FLAGS & E) {

                    r9 = r23;

            }

            else {

                    r9 = @"(null)";

            }

    }

    r8 = @"(null)";

    if (r19 == 0x0) {

            if (!CPU_FLAGS & E) {

                    r8 = r19;

            }

            else {

                    r8 = @"(null)";

            }

    }

    [[NSError errorWithDomain:@"KOTokenSecItemErrorDomain" code:r27 userInfo:[[NSDictionary dictionaryWithObjects:r2 forKeys:r3 count:r4] retain]] retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r27 release];

    [r24 release];

    [r26 release];

    r0 = r23;

    goto loc_1000161c4;

 

loc_100015ec4:

    [@(0x7d) retain];

    [[NSError errorWithDomain:@"KOTokenOtherErrorDomain" code:0x1 userInfo:[[NSDictionary dictionaryWithObjects:r29 - 0x70 forKeys:r29 - 0x80 count:0x2] retain]] retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r23 release];

    [r25 release];

    [r24 release];

    goto loc_100015fa4;

 

loc_100015fa4:

    r22 = 0x0;

    goto loc_1000161d0;

}

 

 

 

 

/* @class KOSecurityCenter */

-(void *)retrieveKeychainItemEncrypted:(bool)arg2 withLabel:(void *)arg3 {

    r31 = r31 - 0x130;

    var_50 = r28;

    stack[-88] = r27;

    var_40 = r26;

    stack[-72] = r25;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r21 = arg2;

    r20 = self;

    r19 = [arg3 retain];

    r0 = [r20 appIdentifier];

    r29 = &saved_fp;

    r0 = [r0 retain];

    [r0 release];

    if (r0 == 0x0) goto loc_100016418;

 

loc_100016294:

    r23 = [[r20 appIdentifier] retain];

    r0 = @(YES);

    r29 = r29;

    r25 = [r0 retain];

    r0 = [NSDictionary dictionaryWithObjects:&var_B0 forKeys:&var_E8 count:0x7];

    r0 = SecItemCopyMatching(r0, &var_120);

    r24 = r0;

    [r25 release];

    [r23 release];

    if (r24 == 0xffffffffffff9d2c) goto loc_1000165ec;

 

loc_1000163b0:

    if (r24 != 0x0) goto loc_1000164f8;

 

loc_1000163b4:

    r22 = var_120;

    if (r21 != 0x0) {

            r21 = [[r20 getSymmetricKey] retain];

            r20 = [[r20 cipherWithCCCrypt:r2 key:r3 operation:r4] retain];

            [r22 release];

            [r21 release];

            r22 = r20;

    }

    goto loc_1000165f0;

 

loc_1000165f0:

    var_58 = **___stack_chk_guard;

    [r19 release];

    if (**___stack_chk_guard == var_58) {

            r0 = [r22 autorelease];

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

 

loc_1000164f8:

    r27 = &@selector(incrementScreenInstanceID);

    asm { sxtw       x23, w24 };

    r0 = *(r27 + 0xca8);

    r0 = [r0 numberWithInt:0xbd];

    r29 = r29;

    r0 = [r0 retain];

    r24 = r0;

    r8 = @"(null)";

    if (r19 == 0x0) {

            if (!CPU_FLAGS & E) {

                    r8 = r19;

            }

            else {

                    r8 = @"(null)";

            }

    }

    [[NSError errorWithDomain:@"KOTokenSecItemErrorDomain" code:r23 userInfo:[[NSDictionary dictionaryWithObjects:&var_100 forKeys:&var_118 count:0x3] retain]] retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r21 release];

    [r22 release];

    r0 = r24;

    goto loc_1000165e8;

 

loc_1000165e8:

    [r0 release];

    goto loc_1000165ec;

 

loc_1000165ec:

    r22 = 0x0;

    goto loc_1000165f0;

 

loc_100016418:

    [@(0xad) retain];

    [[NSError errorWithDomain:@"KOTokenOtherErrorDomain" code:0x1 userInfo:[[NSDictionary dictionaryWithObjects:r29 - 0x68 forKeys:r29 - 0x78 count:0x2] retain]] retain];

    [KOSecurityCenter postNotificationWithError:r2];

    [r21 release];

    [r23 release];

    r0 = r22;

    goto loc_1000165e8;

}

 

 

 

 

 

 

/* @class AppsFlyerLib */

-(bool)skipAdvancedJailbreakValidation {

    r0 = *(int8_t *)(self + 0x1c);

    return r0;

}

 

/* @class AppsFlyerLib */

-(void)setSkipAdvancedJailbreakValidation:(bool)arg2 {

    *(int8_t *)(self + 0x1c) = arg2;

    return;

}

 

 

/* @class AppsFlyerUtils */

+(bool)isJailbrokenWithSkipAdvancedJailbreakValidation:(bool)arg2 {

    var_50 = r28;

    stack[-88] = r27;

    var_40 = r26;

    stack[-72] = r25;

    var_30 = r24;

    stack[-56] = r23;

    var_20 = r22;

    stack[-40] = r21;

    var_10 = r20;

    stack[-24] = r19;

    saved_fp = r29;

    stack[-8] = r30;

    r31 = r31 + 0xffffffffffffffa0 - 0x1b0;

    var_1F4 = arg2;

    r0 = [NSArray arrayWithObjects:&var_108 count:0x15];

    r29 = &saved_fp;

    r0 = [r0 retain];

    var_1C0 = q0;

    r0 = [r0 retain];

    r19 = r0;

    r0 = [r0 countByEnumeratingWithState:r2 objects:r3 count:r4];

    r22 = r0;

    if (r0 == 0x0) goto loc_1003eaf38;

 

loc_1003eae90:

    r27 = *var_1C0;

    goto loc_1003eaea4;

 

loc_1003eaea4:

    r20 = 0x0;

    goto loc_1003eaeb0;

 

loc_1003eaeb0:

    if (*var_1C0 != r27) {

            objc_enumerationMutation(r19);

    }

    r0 = [NSFileManager defaultManager];

    r29 = r29;

    r0 = [r0 retain];

    r25 = [r0 fileExistsAtPath:r2];

    [r0 release];

    if (r25 != 0x0) goto loc_1003eaf50;

 

loc_1003eaf04:

    r20 = r20 + 0x1;

    if (r20 < r22) goto loc_1003eaeb0;

 

loc_1003eaf10:

    r0 = [r19 countByEnumeratingWithState:r2 objects:r3 count:r4];

    r22 = r0;

    if (r0 != 0x0) goto loc_1003eaea4;

 

loc_1003eaf38:

    [r19 release];

    if ((var_1F4 & 0x1) != 0x0) {

            r20 = 0x0;

    }

    else {

            r0 = [NSFileManager class];

            r0 = class_getMethodImplementation(r0, @selector(fileExistsAtPath:));

            r0 = dladdr(r0, &var_1F0);

            if (r0 != 0x0) {

                    r20 = 0x0;

                    r0 = [NSString stringWithFormat:r2];

                    r0 = [r0 retain];

                    r21 = r0;

                    if ([r0 compare:@"/System/Library/Frameworks/Foundation.framework/Foundation"] != 0x0) {

                            r20 = 0x0;

                            if (CPU_FLAGS & NE) {

                                    r20 = 0x1;

                            }

                    }

                    [r21 release];

            }

            else {

                    sub_1003ede8c(0x4, "+[AppsFlyerUtils isJailbrokenWithSkipAdvancedJailbreakValidation:]", @"Unable to find `Foundation` framework");

                    r0 = [AppsFlyerProxyManager sharedManager];

                    r0 = [r0 retain];

                    r22 = [r0 isRemoteDebugging];

                    [r0 release];

                    r20 = 0x1;

                    if (r22 != 0x0) {

                            r20 = 0x1;

                            sub_1003e8ef0(0x4, "+[AppsFlyerUtils isJailbrokenWithSkipAdvancedJailbreakValidation:]", @"Unable to find `Foundation` framework");

                    }

            }

    }

    goto loc_1003eaf5c;

 

loc_1003eaf5c:

    var_60 = **___stack_chk_guard;

    [r19 release];

    if (**___stack_chk_guard == var_60) {

            r0 = r20;

    }

    else {

            r0 = __stack_chk_fail();

    }

    return r0;

 

loc_1003eaf50:

    [r19 release];

    r20 = 0x1;

    goto loc_1003eaf5c;

}

 

 

 

 

 

 

https://github.com/RNCryptor/RNCryptor

https://github.com/RNCryptor/RNCryptor-objc

RNDecrypt (RNCryptor NSObject)