Make 377bed recompilable (Codex)

This commit is contained in:
khanhduytran0
2026-05-30 20:14:51 +07:00
parent 09281afd75
commit 8578c7a970
4 changed files with 48282 additions and 199 deletions
-1
View File
@@ -3,7 +3,6 @@
It contains local type definitions from
the type library 'entry1_type0x09.dylib'
*/
@import Darwin;
#include "ida_types.h"
#define __int8 char
+282 -186
View File
@@ -200,9 +200,9 @@ __int64 __fastcall sub_19AC4(__int64 a1, unsigned __int64 a2, unsigned __int64 a
unsigned int *__fastcall sub_19ACC(__int64 *a1, __int64 *a2);
unsigned __int64 __fastcall sub_19B30(__int64 *a1, __int64 *a2);
__int64 __fastcall sub_19B94(_QWORD, _QWORD); // weak
// __n128 __usercall sub_19B98@<Q0>(char *__s2@<X1>, _QWORD *a2@<X8>, __int64 a3@<X0>);
// __n128 __usercall macho_getsectbyname@<Q0>(char *seg@<X1>, __int64 a2@<X0>, const char *sect@<X2>, _QWORD *a4@<X8>);
// double __usercall sub_19D10@<D0>(__int64 a1@<X0>, _QWORD *a2@<X8>);
__n128 sub_19B98(char *__s2, _QWORD *a2, __int64 a3);
__n128 macho_getsectbyname(char *seg, __int64 a2, const char *sect, _QWORD *a4);
double sub_19D10(__int64 a1, _QWORD *a2);
__int64 __fastcall sub_19D20(__int64 a1, char *__s2, unsigned __int64 a3);
double __fastcall sub_19DD4(struct_a1 *a1, __int64 a2);
__int64 __fastcall sub_19E04(__int64 a1);
@@ -287,7 +287,7 @@ __int64 __fastcall sub_1FA28(__int64 a1, int a2);
__int64 __fastcall sub_1FA7C(__int64 a1, __int64 a2, int a3, __int64 a4);
__int64 __fastcall sub_1FADC(__int64 a1);
__int64 __fastcall sub_1FC94(__int64 a1);
__int64 __fastcall sub_1FD98(statfs *a1);
__int64 __fastcall sub_1FD98(struct statfs *a1);
__int64 __fastcall driver_cmd_setup_untethered_persistence_maybe(__int64 a1, int a2);
__int64 __fastcall sub_203B0(__int64 a1, _DWORD *a2, char *a3);
__int64 __fastcall sub_20468(__int64 a1, __int64 a2, int a3);
@@ -599,7 +599,7 @@ __int64 __fastcall sub_39150(__int64 x0_0);
unsigned __int64 __fastcall kernel_get_base_slid(struct_krwCtx *ctx, unsigned __int64 optional_vtable_func);
__int64 __fastcall sub_39A24(__int64 a1, unsigned __int64 a2);
unsigned __int64 __fastcall sub_39B14(_QWORD *a1);
// void __usercall sub_39B70(_QWORD *a1@<X8>, struct_krwCtx *a2@<X0>);
void sub_39B70(_QWORD *a1, struct_krwCtx *a2);
__int64 __fastcall sub_39CC0(struct_krwCtx *a1, task_name_t target_task, int a3, const void *a4, mach_vm_size_t a5);
__int64 __fastcall create_pthread_something(__int64 a1, pthread_t *a2, __int64 a3, void *a4);
void __fastcall sub_39FDC(struct_krwCtx *someCtx, unsigned int a2, unsigned int a3);
@@ -756,7 +756,7 @@ __int64 fileport_makefd();
void __cdecl free(void *);
int __cdecl fstat(int, stat *);
int __cdecl getattrlist(const char *, void *, void *, size_t, unsigned int);
int __cdecl getmntinfo(statfs **, int);
int __cdecl getmntinfo(struct statfs **, int);
pid_t getpid(void);
pid_t getppid(void);
uid_t getuid(void);
@@ -804,7 +804,7 @@ void __cdecl mig_dealloc_reply_port(mach_port_t reply_port);
mach_port_t mig_get_reply_port(void);
int __cdecl mkdir(const char *, mode_t);
char *__cdecl mktemp(char *);
void *__cdecl mmap(void *, size_t, int, int, int, off_t);
// void *__cdecl mmap(void *, size_t, int, int, int, off_t);
int __cdecl mount(const char *, const char *, int, void *);
__int64 necp_client_action();
__int64 necp_open();
@@ -855,7 +855,7 @@ int snprintf(char *__str, size_t __size, const char *__format, ...);
int __cdecl socket(int, int, int);
int sscanf(const char *, const char *, ...);
int __cdecl stat(const char *, stat *);
int __cdecl statfs(const char *, statfs *);
int __cdecl statfs(const char *, struct statfs *);
char *__cdecl strchr(const char *__s, int __c);
int __cdecl strcmp(const char *__s1, const char *__s2);
char *__cdecl strcpy(char *__dst, const char *__src);
@@ -982,7 +982,7 @@ ssize_t __cdecl write(int __fd, const void *__buf, size_t __nbyte);
// __int64 ___strlcpy_chk(void); weak
// __int64 ___ulock_wait(void); weak
// __int64 ___ulock_wake(void); weak
// __int64 __get_cpu_capabilities(void); weak
// __int64 j___get_cpu_capabilities(void); weak
// __int64 __os_alloc_once(void); weak
// void __cdecl _arc4random_buf(void *__buf, size_t __nbytes);
// void __cdecl _bzero(void *, size_t);
@@ -1000,7 +1000,7 @@ ssize_t __cdecl write(int __fd, const void *__buf, size_t __nbyte);
// void __cdecl _free(void *);
// int __cdecl _fstat(int, stat *);
// int __cdecl _getattrlist(const char *, void *, void *, size_t, unsigned int);
// int __cdecl _getmntinfo(statfs **, int);
// int __cdecl _getmntinfo(struct statfs **, int);
// pid_t _getpid(void);
// pid_t _getppid(void);
// uid_t _getuid(void);
@@ -1099,7 +1099,7 @@ ssize_t __cdecl write(int __fd, const void *__buf, size_t __nbyte);
// int __cdecl _socket(int, int, int);
// int _sscanf(const char *, const char *, ...);
// int __cdecl _stat(const char *, stat *);
// int __cdecl _statfs(const char *, statfs *);
// int __cdecl _statfs(const char *, struct statfs *);
// char *__cdecl _strchr(const char *__s, int __c);
// int __cdecl _strcmp(const char *__s1, const char *__s2);
// char *__cdecl _strcpy(char *__dst, const char *__src);
@@ -1154,7 +1154,7 @@ ssize_t __cdecl write(int __fd, const void *__buf, size_t __nbyte);
int def_3E8F0 = -17958193; // weak
int dword_4 = 16777228; // weak
int dword_8 = -2147483646; // weak
section_64 stru_68 =
struct section_64 stru_68 =
{
{
'_',
@@ -1206,89 +1206,96 @@ char byte_42D30[16] =
'\0',
'\0'
}; // weak
__int128 xmmword_42D40 = 0x2C40000000000000284000LL; // weak
__int128 xmmword_42D50 = 0x2040000000000000304000LL; // weak
__int128 xmmword_42D60 = 0x7FF0000000000000000220000680LL; // weak
__int128 xmmword_42D70 = 0x100000000000000000000000040LL; // weak
__int128 xmmword_42D80 = 0x70000000000000000200000680LL; // weak
__int128 xmmword_42D90 = 0x8000000000000000000000010LL; // weak
__int128 xmmword_42DA0 = 0x7FF0000000000000000200000680LL; // weak
__int128 xmmword_42D40 = IDA_INT128_C(0x00000000002C4000ULL, 0x0000000000284000ULL); // weak
__int128 xmmword_42D50 = IDA_INT128_C(0x0000000000204000ULL, 0x0000000000304000ULL); // weak
__int128 xmmword_42D60 = IDA_INT128_C(0x00007FF000000000ULL, 0x0000000220000680ULL); // weak
__int128 xmmword_42D70 = IDA_INT128_C(0x0000010000000000ULL, 0x0000000000000040ULL); // weak
__int128 xmmword_42D80 = IDA_INT128_C(0x0000007000000000ULL, 0x0000000200000680ULL); // weak
__int128 xmmword_42D90 = IDA_INT128_C(0x0000000800000000ULL, 0x0000000000000010ULL); // weak
__int128 xmmword_42DA0 = IDA_INT128_C(0x00007FF000000000ULL, 0x0000000200000680ULL); // weak
_UNKNOWN unk_42DC8; // weak
__int128 xmmword_42EC0 = 0x1000000010000000000000000LL; // weak
__int128 xmmword_42F00 = 0x1000027110000271000020A51LL; // weak
__int128 xmmword_42F10 = 0x1000F4241000F4240000003E8LL; // weak
__int128 xmmword_42F20 = 0x444444440000000043434343LL; // weak
__int128 xmmword_42F30 = 0xD280000F00000000D280000FLL; // weak
__int128 xmmword_42F44 = 0xFFFFFC1F00000000FFFFFFFFLL; // weak
__int128 xmmword_42F58 = 0x9AC130619AC130419262F8429AC03021LL; // weak
__int128 xmmword_42EC0 = IDA_INT128_C(0x0000000100000001ULL, 0x0000000000000000ULL); // weak
__int128 xmmword_42F00 = IDA_INT128_C(0x0000000100002711ULL, 0x0000271000020A51ULL); // weak
__int128 xmmword_42F10 = IDA_INT128_C(0x00000001000F4241ULL, 0x000F4240000003E8ULL); // weak
__int128 xmmword_42F20 = IDA_INT128_C(0x0000000044444444ULL, 0x0000000043434343ULL); // weak
__int128 xmmword_42F30 = IDA_INT128_C(0x00000000D280000FULL, 0x00000000D280000FULL); // weak
__int128 xmmword_42F44 = IDA_INT128_C(0x00000000FFFFFC1FULL, 0x00000000FFFFFFFFULL); // weak
__int128 xmmword_42F58 = IDA_INT128_C(0x9AC130619AC13041ULL, 0x9262F8429AC03021ULL); // weak
_UNKNOWN unk_42F68; // weak
__int128 xmmword_42F78 = 0xD280847100000000F94046E0F9000E60LL; // weak
__int128 xmmword_42F8C = 0xFFFFFFFF00000000FFFFFFFFFFFFFFFFLL; // weak
__int128 xmmword_42FA0 = 0xF9400000F9400008B9400100F9401048LL; // weak
__int128 xmmword_42FB0 = 0xFFC0001FFFC0001FFFFFFFE0FFFFFFFFLL; // weak
__int128 xmmword_42FC0 = 0xB9400000F9400000B4000000F9400000LL; // weak
__int128 xmmword_42FD0 = 0xFFC00000FFC00000FF000000FFC00000LL; // weak
__int128 xmmword_42FE0 = 0xB828680911040129B868680952800008LL; // weak
__int128 xmmword_42FF0 = 0xFFFFFC1FFFFFFFFFFFFFFC1FFFE0001FLL; // weak
__int128 xmmword_43000 = 0xB900001FB900001FF900001FLL; // weak
__int128 xmmword_43010 = 0xFFFFFC1FFFFFFC1FFFFFFC1FLL; // weak
__int128 xmmword_43020 = 0x9400000000000000B4000000F9000000LL; // weak
__int128 xmmword_43030 = 0xFC00000000000000FF00001FFFC0001FLL; // weak
__int128 xmmword_43040 = 0x3904C01FF9000010DAC10A30F2F9B431LL; // weak
__int128 xmmword_43050 = 0x200000000000000100LL; // weak
__int128 xmmword_43060 = 0xF90000009000000094000000528007C5LL; // weak
__int128 xmmword_43070 = 0xFFC0001F9F000000FC000000FFFFFFFFLL; // weak
__int128 xmmword_43080 = 0x58000001D503201F58000000D503201FLL; // weak
__int128 xmmword_43090 = 0xFF00001FFFFFFFFFFF00001FFFFFFFFFLL; // weak
__int128 xmmword_430A0 = 0xD65F03C0D5033FDFD5033F9FD508831FLL; // weak
__int128 xmmword_430B0 = 0xD50041BF0000000010000000LL; // weak
__int128 xmmword_430C0 = 0xFFFFFFFF000000009F000000LL; // weak
__int128 xmmword_430D0 = 0x0F862782100000000LL; // weak
__int128 xmmword_430E0 = 0x0FFFFFFFF00000000LL; // weak
__int128 xmmword_430F0 = 0xEB02007FCB010003910003FDA9BF7BFDLL; // weak
__int128 xmmword_43100 = 0xAA1503E2AA1403E100000000A9408388LL; // weak
__int128 xmmword_43110 = 0xFFFFFFFFFFFFFFFF00000000FFFFFFFFLL; // weak
__int128 xmmword_43120 = 0x8B20603FF94000215800000158000000LL; // weak
__int128 xmmword_43130 = 0xFFFFFFFFFFFFFFFFFF00001FFF00001FLL; // weak
__int128 xmmword_43140 = 0xFFFFFFF002004000FFFFFFF002000000LL; // weak
__int128 xmmword_43150 = 0xFFFFFFF00200C000FFFFFFF002008000LL; // weak
__int128 xmmword_43160 = 0xFFFFFFF002014000FFFFFFF002010000LL; // weak
__int128 xmmword_43170 = 0xFFFFFC1100170000FFFFFC1100160000LL; // weak
__int128 xmmword_43180 = 0xFFFFFF9100170000FFFFFF9100160000LL; // weak
__int128 xmmword_43190 = 0xFF004FF400FF0000000140198099LL; // weak
__int128 xmmword_431A0 = 0x41B0000000000000001LL; // weak
__int128 xmmword_431B0 = 0x3FA00000000000003F40LL; // weak
__int128 xmmword_431C0 = 0x3FFC0000000000003E00LL; // weak
__int128 xmmword_431D0 = 0x30000000000000000003C4LL; // weak
__int128 xmmword_431E0 = 0x30000000000000000003C5LL; // weak
__int128 xmmword_431F0 = 0x0FFFFFFFF80000000LL; // weak
__int128 xmmword_43200 = 0x10000000004000000100000001LL; // weak
__int128 xmmword_43270 = 0xFFFC00383A8700282E4A0020BAA20010LL; // weak
__int128 xmmword_43280 = 0x7F14042032E50058BE60005056350048LL; // weak
__int128 xmmword_43290 = 0x14000000D280000F14000000D280060FLL; // weak
__int128 xmmword_432A0 = 0xFC000000FFE0001FFC000000FFFFFFFFLL; // weak
__int128 xmmword_432B0 = 0x14000000D280000F14000000D28006AFLL; // weak
__int128 xmmword_432C0 = 0xD5033FDFD5087800D50343DFD53B4222LL; // weak
__int128 xmmword_432D0 = 0x1DEADDAB700010004LL; // weak
__int128 xmmword_432E0 = 0x40000000000004000LL; // weak
__int128 xmmword_432F0 = 0x1000009610000096000000960LL; // weak
__int128 xmmword_43300 = 0x1000F4241000F424000002710LL; // weak
__int128 xmmword_43350 = 0x8B284528F940000090000000D34EFD08LL; // weak
__int128 xmmword_43364 = 0xFFFFFFFFFFC000009F000000FFFFFFFFLL; // weak
__int128 xmmword_42F78 = IDA_INT128_C(0xD280847100000000ULL, 0xF94046E0F9000E60ULL); // weak
__int128 xmmword_42F8C = IDA_INT128_C(0xFFFFFFFF00000000ULL, 0xFFFFFFFFFFFFFFFFULL); // weak
__int128 xmmword_42FA0 = IDA_INT128_C(0xF9400000F9400008ULL, 0xB9400100F9401048ULL); // weak
__int128 xmmword_42FB0 = IDA_INT128_C(0xFFC0001FFFC0001FULL, 0xFFFFFFE0FFFFFFFFULL); // weak
__int128 xmmword_42FC0 = IDA_INT128_C(0xB9400000F9400000ULL, 0xB4000000F9400000ULL); // weak
__int128 xmmword_42FD0 = IDA_INT128_C(0xFFC00000FFC00000ULL, 0xFF000000FFC00000ULL); // weak
__int128 xmmword_42FE0 = IDA_INT128_C(0xB828680911040129ULL, 0xB868680952800008ULL); // weak
__int128 xmmword_42FF0 = IDA_INT128_C(0xFFFFFC1FFFFFFFFFULL, 0xFFFFFC1FFFE0001FULL); // weak
__int128 xmmword_43000 = IDA_INT128_C(0x00000000B900001FULL, 0xB900001FF900001FULL); // weak
__int128 xmmword_43010 = IDA_INT128_C(0x00000000FFFFFC1FULL, 0xFFFFFC1FFFFFFC1FULL); // weak
__int128 xmmword_43020 = IDA_INT128_C(0x9400000000000000ULL, 0xB4000000F9000000ULL); // weak
__int128 xmmword_43030 = IDA_INT128_C(0xFC00000000000000ULL, 0xFF00001FFFC0001FULL); // weak
__int128 xmmword_43040 = IDA_INT128_C(0x3904C01FF9000010ULL, 0xDAC10A30F2F9B431ULL); // weak
__int128 xmmword_43050 = IDA_INT128_C(0x0000000000000020ULL, 0x0000000000000100ULL); // weak
__int128 xmmword_43060 = IDA_INT128_C(0xF900000090000000ULL, 0x94000000528007C5ULL); // weak
__int128 xmmword_43070 = IDA_INT128_C(0xFFC0001F9F000000ULL, 0xFC000000FFFFFFFFULL); // weak
__int128 xmmword_43080 = IDA_INT128_C(0x58000001D503201FULL, 0x58000000D503201FULL); // weak
__int128 xmmword_43090 = IDA_INT128_C(0xFF00001FFFFFFFFFULL, 0xFF00001FFFFFFFFFULL); // weak
__int128 xmmword_430A0 = IDA_INT128_C(0xD65F03C0D5033FDFULL, 0xD5033F9FD508831FULL); // weak
__int128 xmmword_430B0 = IDA_INT128_C(0x00000000D50041BFULL, 0x0000000010000000ULL); // weak
__int128 xmmword_430C0 = IDA_INT128_C(0x00000000FFFFFFFFULL, 0x000000009F000000ULL); // weak
__int128 xmmword_430D0 = IDA_INT128_C(0x0000000000000000ULL, 0xF862782100000000ULL); // weak
__int128 xmmword_430E0 = IDA_INT128_C(0x0000000000000000ULL, 0xFFFFFFFF00000000ULL); // weak
__int128 xmmword_430F0 = IDA_INT128_C(0xEB02007FCB010003ULL, 0x910003FDA9BF7BFDULL); // weak
__int128 xmmword_43100 = IDA_INT128_C(0xAA1503E2AA1403E1ULL, 0x00000000A9408388ULL); // weak
__int128 xmmword_43110 = IDA_INT128_C(0xFFFFFFFFFFFFFFFFULL, 0x00000000FFFFFFFFULL); // weak
__int128 xmmword_43120 = IDA_INT128_C(0x8B20603FF9400021ULL, 0x5800000158000000ULL); // weak
__int128 xmmword_43130 = IDA_INT128_C(0xFFFFFFFFFFFFFFFFULL, 0xFF00001FFF00001FULL); // weak
__int128 xmmword_43140 = IDA_INT128_C(0xFFFFFFF002004000ULL, 0xFFFFFFF002000000ULL); // weak
__int128 xmmword_43150 = IDA_INT128_C(0xFFFFFFF00200C000ULL, 0xFFFFFFF002008000ULL); // weak
__int128 xmmword_43160 = IDA_INT128_C(0xFFFFFFF002014000ULL, 0xFFFFFFF002010000ULL); // weak
__int128 xmmword_43170 = IDA_INT128_C(0xFFFFFC1100170000ULL, 0xFFFFFC1100160000ULL); // weak
__int128 xmmword_43180 = IDA_INT128_C(0xFFFFFF9100170000ULL, 0xFFFFFF9100160000ULL); // weak
__int128 xmmword_43190 = IDA_INT128_C(0x0000FF004FF400FFULL, 0x0000000140198099ULL); // weak
__int128 xmmword_431A0 = IDA_INT128_C(0x000000000000041BULL, 0x0000000000000001ULL); // weak
__int128 xmmword_431B0 = IDA_INT128_C(0x0000000000003FA0ULL, 0x0000000000003F40ULL); // weak
__int128 xmmword_431C0 = IDA_INT128_C(0x0000000000003FFCULL, 0x0000000000003E00ULL); // weak
__int128 xmmword_431D0 = IDA_INT128_C(0x0000000000300000ULL, 0x00000000000003C4ULL); // weak
__int128 xmmword_431E0 = IDA_INT128_C(0x0000000000300000ULL, 0x00000000000003C5ULL); // weak
__int128 xmmword_431F0 = IDA_INT128_C(0x0000000000000000ULL, 0xFFFFFFFF80000000ULL); // weak
__int128 xmmword_43200 = IDA_INT128_C(0x0000001000000000ULL, 0x4000000100000001ULL); // weak
__int128 xmmword_43270 = IDA_INT128_C(0xFFFC00383A870028ULL, 0x2E4A0020BAA20010ULL); // weak
__int128 xmmword_43280 = IDA_INT128_C(0x7F14042032E50058ULL, 0xBE60005056350048ULL); // weak
__int128 xmmword_43290 = IDA_INT128_C(0x14000000D280000FULL, 0x14000000D280060FULL); // weak
__int128 xmmword_432A0 = IDA_INT128_C(0xFC000000FFE0001FULL, 0xFC000000FFFFFFFFULL); // weak
__int128 xmmword_432B0 = IDA_INT128_C(0x14000000D280000FULL, 0x14000000D28006AFULL); // weak
__int128 xmmword_432C0 = IDA_INT128_C(0xD5033FDFD5087800ULL, 0xD50343DFD53B4222ULL); // weak
__int128 xmmword_432D0 = IDA_INT128_C(0x0000000000000001ULL, 0xDEADDAB700010004ULL); // weak
__int128 xmmword_432E0 = IDA_INT128_C(0x0000000000000004ULL, 0x0000000000004000ULL); // weak
__int128 xmmword_432F0 = IDA_INT128_C(0x0000000100000961ULL, 0x0000096000000960ULL); // weak
__int128 xmmword_43300 = IDA_INT128_C(0x00000001000F4241ULL, 0x000F424000002710ULL); // weak
__int128 xmmword_43350 = IDA_INT128_C(0x8B284528F9400000ULL, 0x90000000D34EFD08ULL); // weak
__int128 xmmword_43364 = IDA_INT128_C(0xFFFFFFFFFFC00000ULL, 0x9F000000FFFFFFFFULL); // weak
_QWORD qword_43378[3] = { 1073741824LL, 805306368LL, 536870912LL }; // weak
unsigned int dword_43390[3] = { 2u, 2u, 0u }; // weak
_DWORD dword_43428[10] = { 17, 4, 3, 6, 7, 5, 40, 20, 2, 42 }; // weak
__int128 xmmword_43450 = 0x20000000000000000LL; // weak
__int128 xmmword_43450 = IDA_INT128_C(0x0000000000000002ULL, 0x0000000000000000ULL); // weak
__int128 xmmword_43460 = 17230332160LL; // weak
__int128 xmmword_43478 = 0x08000000100000000LL; // weak
__int128 xmmword_43478 = IDA_INT128_C(0x0000000000000000ULL, 0x8000000100000000ULL); // weak
__int16 asc_43490[3] = { 7, 11, 13 }; // weak
__int128 xmmword_43690 = 0x640000007300000030000000060LL; // weak
__int128 xmmword_436C0 = 0x10000000000000000000000000000000LL; // weak
__int128 xmmword_43690 = IDA_INT128_C(0x0000064000000730ULL, 0x0000030000000060ULL); // weak
__int128 xmmword_436C0 = IDA_INT128_C(0x1000000000000000ULL, 0x0000000000000000ULL); // weak
unsigned int dword_436F0[4] = { 20u, 32u, 20u, 48u }; // weak
__int128 xmmword_43710 = 0x800000000000000D300000007LL; // weak
__int128 xmmword_43730 = 0xFFFFFFFFFFFFEFFFFFFF000000000000LL; // weak
__int128 xmmword_43740 = 0x19000000180000001600000015LL; // weak
__int128 xmmword_43750 = 0x10000000000000000LL; // weak
__int128 xmmword_43710 = IDA_INT128_C(0x0000000800000000ULL, 0x000000D300000007ULL); // weak
__int128 xmmword_43730 = IDA_INT128_C(0xFFFFFFFFFFFFEFFFULL, 0xFFFF000000000000ULL); // weak
__int128 xmmword_43740 = IDA_INT128_C(0x0000001900000018ULL, 0x0000001600000015ULL); // weak
__int128 xmmword_43750 = IDA_INT128_C(0x0000000000000001ULL, 0x0000000000000000ULL); // weak
__int128 xmmword_43760; // weak
__int128 unk_43770; // weak
__int128 xmmword_43780; // weak
__int128 unk_43790; // weak
__int128 xmmword_437A0; // weak
__int128 unk_437B0; // weak
__int128 unk_437BC; // weak
_UNKNOWN unk_44870; // weak
_UNKNOWN unk_44890; // weak
_UNKNOWN unk_448B0; // weak
@@ -1704,7 +1711,7 @@ __int64 setup_thread_policy()
unsigned __int32 v0[2]; // d0
unsigned __int32 v1[2]; // d1
thread_act_t v2; // w0
mach_timebase_info info; // [xsp+8h] [xbp-18h] BYREF
struct mach_timebase_info info; // [xsp+8h] [xbp-18h] BYREF
integer_t policy_info[4]; // [xsp+10h] [xbp-10h] BYREF
mach_timebase_info(&info);
@@ -6730,8 +6737,8 @@ __int64 __fastcall sub_CEB8(uint64_t x0, uint64_t x1)
const void *v196; // x23
const void **v197; // x0
const void *v198; // x24
const __CFData *v199; // x0
const __CFData *v200; // x24
const struct __CFData *v199; // x0
const struct __CFData *v200; // x24
int v201; // w8
uint32_t v202; // w25
mem_entry_name_port_t *v203; // x23
@@ -7380,7 +7387,7 @@ LABEL_195:
*(_QWORD *)(v4 + 13392) = *((_QWORD *)v91 + 1);
*(_QWORD *)(v4 + 13384) = v88;
*(_QWORD *)(v4 + 13400) = v91;
*__handle = (int8x8_t)(v84 | *(_QWORD *)&v83);
*__handle = (int8x8_t){ .u64 = { v84 | *(_QWORD *)&v83 } };
v94 = sub_FD18((_DWORD *)v4, (__int64)v64);
if ( (_DWORD)v94 )
{
@@ -8753,7 +8760,7 @@ LABEL_547:
// EAD8: variable 'kobject' is possibly undefined
// ED8C: variable 'v209' is possibly undefined
// EDB0: variable 'v211' is possibly undefined
// 68: using guessed type section_64 stru_68;
// 68: using guessed type struct section_64 stru_68;
// 42EC0: using guessed type __int128 xmmword_42EC0;
// 48940: using guessed type __int64 __fastcall __chkstk_darwin(_QWORD, _QWORD);
@@ -8964,7 +8971,7 @@ LABEL_13:
{
size = v4;
object_handle = 0;
a2[3] = (int8x8_t)(*(_QWORD *)&v21 | v22);
a2[3] = (int8x8_t){ .u64 = { *(_QWORD *)&v21 | v22 } };
memory_entry = mach_make_memory_entry(
mach_task_self_,
&size,
@@ -9019,7 +9026,7 @@ __int64 __fastcall sub_FD18(_DWORD *a1, __int64 a2)
v2 = *(_DWORD *)(a2 + 32);
v3 = *(_QWORD *)(a2 + 24);
v4 = (uint8x8_t)vcnt_s8((int8x8_t)v3);
v4 = (uint8x8_t)vcnt_s8((int8x8_t){ .u64 = { v3 } });
v4.i16[0] = vaddlv_u8(v4);
if ( v2 == v4.i32[0] )
return 0;
@@ -11649,7 +11656,7 @@ __int64 __fastcall check_rootfs_rw(__int64 ctx, int *outIsReadWrite)
int isReadWrite; // w8
__int16 v6; // [xsp+Eh] [xbp-8D2h] BYREF
char mnt1[48]; // [xsp+10h] [xbp-8D0h] BYREF
statfs v8; // [xsp+40h] [xbp-8A0h] BYREF
struct statfs v8; // [xsp+40h] [xbp-8A0h] BYREF
bzero(&v8, 0x878u);
v6 = 47;
@@ -11759,7 +11766,7 @@ __int64 __fastcall sub_141F0(__int64 a1)
unsigned int v3; // w20
_BOOL4 v4; // w0
char v6[2]; // [xsp+6h] [xbp-8CAh] BYREF
statfs v7; // [xsp+8h] [xbp-8C8h] BYREF
struct statfs v7; // [xsp+8h] [xbp-8C8h] BYREF
char v8[40]; // [xsp+880h] [xbp-50h] BYREF
strcpy(v6, "/");
@@ -11799,7 +11806,7 @@ __int64 __fastcall add_rw_to_disk(struct_krwCtx *a1, const char *a2, const char
__int64 v14; // x23
__int64 arg_1; // x19
int v17; // [xsp+Ch] [xbp-8B4h] BYREF
statfs v18; // [xsp+10h] [xbp-8B0h] BYREF
struct statfs v18; // [xsp+10h] [xbp-8B0h] BYREF
bzero(&v18, 0x878u);
v17 = 0;
@@ -11834,7 +11841,7 @@ __int64 __fastcall add_rw_to_disk(struct_krwCtx *a1, const char *a2, const char
//----- (0000000000014444) ----------------------------------------------------
bool __fastcall sub_14444(const char *a1)
{
statfs v3; // [xsp+0h] [xbp-8A0h] BYREF
struct statfs v3; // [xsp+0h] [xbp-8A0h] BYREF
bzero(&v3, 0x878u);
if ( statfs(a1, &v3) )
@@ -11865,7 +11872,7 @@ __int64 __fastcall sub_14524(struct_krwCtx *a1, int a2)
_BOOL4 v16; // w0
char v18[3]; // [xsp+4h] [xbp-8Ch] BYREF
bool v19; // [xsp+7h] [xbp-89h] BYREF
statfs *v20; // [xsp+8h] [xbp-88h] BYREF
struct statfs *v20; // [xsp+8h] [xbp-88h] BYREF
char __s1[39]; // [xsp+10h] [xbp-80h] BYREF
const char *v22[6]; // [xsp+38h] [xbp-58h] BYREF
@@ -12048,7 +12055,7 @@ __int64 __fastcall sub_14920(struct_krwCtx *a1, int a2)
int v18; // w0
int v20; // [xsp+0h] [xbp-50h] BYREF
int v21; // [xsp+4h] [xbp-4Ch] BYREF
statfs *v22; // [xsp+8h] [xbp-48h] BYREF
struct statfs *v22; // [xsp+8h] [xbp-48h] BYREF
v22 = 0;
v4 = getmntinfo(&v22, 0);
@@ -12359,7 +12366,7 @@ bool sub_14F9C()
bool v1; // w23
__int64 v2; // x22
char *f_mntonname; // x19
statfs *v5; // [xsp+8h] [xbp-38h] BYREF
struct statfs *v5; // [xsp+8h] [xbp-38h] BYREF
v5 = 0;
v0 = getmntinfo(&v5, 0);
@@ -12387,11 +12394,11 @@ __int64 __fastcall krw_inject_entitlements_maybe(struct_krwCtx *krwCtx, __int64
_BOOL8 v7; // x24
void *v8; // x22
CFPropertyListRef v9; // x21
const __CFData *v10; // x20
const struct __CFData *v10; // x20
size_t v11; // x0
void *(__cdecl *v12)(void *); // x0
const __CFData *Data; // x0
const __CFData *v14; // x23
const struct __CFData *Data; // x0
const struct __CFData *v14; // x23
size_t Length; // x24
const UInt8 *BytePtr; // x0
int v17; // w0
@@ -12758,8 +12765,8 @@ __int64 __fastcall sub_15880(__int64 a1)
thread_act_t v12; // w0
kern_return_t v13; // w0
unsigned int v14; // w8
const __CFData *v16; // x0
const __CFData *v17; // x20
const struct __CFData *v16; // x0
const struct __CFData *v17; // x20
const UInt8 *BytePtr; // x22
unsigned int Length; // w0
unsigned int v20; // w24
@@ -14485,7 +14492,7 @@ LABEL_269:
v178.i64[1] = v177.u32[1];
*((_QWORD *)v4 + 47) = v176;
*(int8x16_t *)(v4 + 98) = vbslq_s8(
(int8x16_t)vshrq_n_s64(vshlq_n_s64(v178, 0x3Fu), 0x3Fu),
v178.i64[0] ? (int8x16_t){ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } : (int8x16_t){ 0 },
(int8x16_t)xmmword_43180,
(int8x16_t)xmmword_43170);
vm_deallocate(mach_task_self_, *((_QWORD *)v4 + 41), *((_QWORD *)v4 + 42));
@@ -15915,10 +15922,10 @@ unsigned __int64 __fastcall validate_addr_maybe2(struct_krwCtx *krwCtx, unsigned
if ( vaddr + 0x1000000000000LL >= 0xFFFFFFFFEFFFLL )
{
v2 = LODWORD(krwCtx->someMutex[711]);
v2 = LODWORD(((_DWORD *)&krwCtx->someMutex)[711]);
if ( (_DWORD)v2 )
{
for ( i = &krwCtx->someMutex[758]; ; i += 3 )
for ( i = (pthread_mutex_t *)(((_DWORD *)&krwCtx->someMutex) + 758); ; i += 3 )
{
v4 = *(i - 1);
v5 = !v4 || *i == 0;
@@ -16126,7 +16133,7 @@ unsigned __int64 __fastcall sub_19B30(__int64 *a1, __int64 *a2)
// 8: using guessed type int dword_8;
//----- (0000000000019B98) ----------------------------------------------------
__n128 __usercall sub_19B98@<Q0>(char *__s2@<X1>, _QWORD *a2@<X8>, __int64 a3@<X0>)
__n128 sub_19B98(char *__s2, _QWORD *a2, __int64 a3)
{
__int64 v4; // x8
unsigned __int64 v5; // x22
@@ -16161,7 +16168,7 @@ LABEL_5:
}
//----- (0000000000019C34) ----------------------------------------------------
__n128 __usercall macho_getsectbyname@<Q0>(char *seg@<X1>, __int64 a2@<X0>, const char *sect@<X2>, _QWORD *a4@<X8>)
__n128 macho_getsectbyname(char *seg, __int64 a2, const char *sect, _QWORD *a4)
{
__int64 v5; // x8
unsigned __int64 v6; // x24
@@ -16212,7 +16219,7 @@ LABEL_4:
}
//----- (0000000000019D10) ----------------------------------------------------
double __usercall sub_19D10@<D0>(__int64 a1@<X0>, _QWORD *a2@<X8>)
double sub_19D10(__int64 a1, _QWORD *a2)
{
double result; // d0
@@ -17787,7 +17794,7 @@ __int64 __fastcall sub_1C0C8(__int64 a1, int *a2)
unsigned __int64 v17; // x22
unsigned __int64 v18; // x8
__int64 v19; // x22
stat v20; // [xsp+0h] [xbp-110h] BYREF
struct stat v20; // [xsp+0h] [xbp-110h] BYREF
int nullFd; // [xsp+94h] [xbp-7Ch] BYREF
__int32 v22[2]; // [xsp+98h] [xbp-78h] BYREF
__int64 v23; // [xsp+A0h] [xbp-70h]
@@ -19945,7 +19952,7 @@ LABEL_13:
v11[1] = 0;
*(_QWORD *)&v11[2] = 0;
v12[0] = 1;
result = 0u;
result = (__n128){0};
xnuMajorVersion->qword20 = *(_QWORD *)v12;
xnuMajorVersion->majorVersion = 0u;
xnuMajorVersion->oword10 = *(_OWORD *)v11;
@@ -20560,7 +20567,7 @@ __int64 __fastcall sub_1FADC(__int64 a1)
int v17; // w21
int v18; // w8
char __str[1024]; // [xsp+10h] [xbp-CC0h] BYREF
statfs v20; // [xsp+410h] [xbp-8C0h] BYREF
struct statfs v20; // [xsp+410h] [xbp-8C0h] BYREF
v2 = *(const void **)a1;
v3 = *(unsigned int *)(a1 + 8);
@@ -20629,7 +20636,7 @@ __int64 __fastcall sub_1FC94(__int64 a1)
char *f_mntonname; // [xsp+8h] [xbp-8B8h] BYREF
__int64 v4; // [xsp+10h] [xbp-8B0h]
unsigned int v5; // [xsp+18h] [xbp-8A8h]
statfs v6; // [xsp+20h] [xbp-8A0h] BYREF
struct statfs v6; // [xsp+20h] [xbp-8A0h] BYREF
bzero(&v6, 0x878u);
LODWORD(result) = sub_1FD98(&v6);
@@ -20664,7 +20671,7 @@ __int64 __fastcall sub_1FC94(__int64 a1)
}
//----- (000000000001FD98) ----------------------------------------------------
__int64 __fastcall sub_1FD98(statfs *a1)
__int64 __fastcall sub_1FD98(struct statfs *a1)
{
__int64 v2; // x19
int v3; // w19
@@ -20703,8 +20710,8 @@ __int64 __fastcall setup_untethered_persistence_maybe(__int64 a1, int a2)
CFDataRef v9; // x23
CFNumberRef v10; // x0
CFNumberRef v11; // x24
const __CFData *Data; // x0
const __CFData *v13; // x25
const struct __CFData *Data; // x0
const struct __CFData *v13; // x25
size_t Length; // x22
void *v15; // x20
const UInt8 *BytePtr; // x0
@@ -20712,25 +20719,25 @@ __int64 __fastcall setup_untethered_persistence_maybe(__int64 a1, int a2)
IONotificationPort *v18; // x0
IONotificationPort *v19; // x22
CFRunLoopSourceRef RunLoopSource; // x0
__CFRunLoopSource *v21; // x23
__CFRunLoop *Current; // x0
struct __CFRunLoopSource *v21; // x23
struct __CFRunLoop *Current; // x0
const CFDictionaryRef *v23; // x21
void (__cdecl *v24)(void *, io_iterator_t); // x0
kern_return_t v25; // w0
int v26; // w25
char *v27; // x21
__CFRunLoop *v28; // x0
struct __CFRunLoop *v28; // x0
int v30; // w22
unsigned int v31; // w25
CFRunLoopRunResult v32; // w0
uint64_t valuePtr; // [xsp+8h] [xbp-A18h] BYREF
unsigned int v34; // [xsp+10h] [xbp-A10h]
statfs v35; // [xsp+88h] [xbp-998h] BYREF
struct statfs v35; // [xsp+88h] [xbp-998h] BYREF
io_iterator_t notification[2]; // [xsp+900h] [xbp-120h] BYREF
const char *v37; // [xsp+908h] [xbp-118h]
uint64_t *p_valuePtr; // [xsp+910h] [xbp-110h]
__int64 v39; // [xsp+918h] [xbp-108h]
stat __str; // [xsp+920h] [xbp-100h] BYREF
struct stat __str; // [xsp+920h] [xbp-100h] BYREF
bzero(&v35, 0x878u);
st_uid = sub_1FD98(&v35);
@@ -20968,7 +20975,7 @@ LABEL_38:
__int64 __fastcall sub_203B0(__int64 a1, _DWORD *a2, char *a3)
{
__int64 result; // x0
statfs v6; // [xsp+0h] [xbp-8A0h] BYREF
struct statfs v6; // [xsp+0h] [xbp-8A0h] BYREF
bzero(&v6, 0x878u);
result = sub_1FD98(&v6);
@@ -21046,7 +21053,7 @@ int *__fastcall sub_20524(__int64 a1)
int v8; // w8
int v9; // w20
int v10; // w8
stat v11; // [xsp+10h] [xbp-B0h] BYREF
struct stat v11; // [xsp+10h] [xbp-B0h] BYREF
memset(&v11, 0, sizeof(v11));
v2 = *(const char **)a1;
@@ -21184,11 +21191,11 @@ __int64 __fastcall sub_20780(__int64 a1, io_iterator_t iterator)
{
__int64 result; // x0
io_registry_entry_t v5; // w22
const __CFNumber *v6; // x0
const __CFNumber *v7; // x26
const struct __CFNumber *v6; // x0
const struct __CFNumber *v7; // x26
CFTypeID v8; // x27
const __CFString *CFProperty; // x0
const __CFString *v10; // x27
const struct __CFString *CFProperty; // x0
const struct __CFString *v10; // x27
CFTypeID v11; // x28
CFStringEncoding SystemEncoding; // w0
__int64 valuePtr; // [xsp+8h] [xbp-E8h] BYREF
@@ -21216,7 +21223,7 @@ __int64 __fastcall sub_20780(__int64 a1, io_iterator_t iterator)
v5 = result;
do
{
v6 = (const __CFNumber *)IORegistryEntrySearchCFProperty(
v6 = (const struct __CFNumber *)IORegistryEntrySearchCFProperty(
v5,
"IOService",
CFSTR("ota-unique-identifier"),
@@ -21230,7 +21237,7 @@ __int64 __fastcall sub_20780(__int64 a1, io_iterator_t iterator)
&& CFNumberGetValue(v7, kCFNumberSInt64Type, &valuePtr) == 1
&& valuePtr == *(_QWORD *)(a1 + 8) )
{
CFProperty = (const __CFString *)IORegistryEntryCreateCFProperty(
CFProperty = (const struct __CFString *)IORegistryEntryCreateCFProperty(
v5,
CFSTR("BSD Name"),
kCFAllocatorDefault,
@@ -22336,7 +22343,7 @@ LABEL_116:
}
if ( *(_QWORD *)(a1 + 344) >> 43 < 0x44Bu )
{
((void (__usercall *)(__int64@<X0>, _QWORD *@<X8>))sub_39B70)(a1, v45);
sub_39B70(v45, (struct_krwCtx *)a1);
if ( *(_QWORD *)(a1 + 344) <= 0x1F541DFFFFFFFFuLL )
v21 = "0A 05 40 F9 2B 11 40 39";
else
@@ -22753,8 +22760,8 @@ __int64 __fastcall sub_224BC(char **a1, unsigned int a2)
{
io_registry_entry_t v4; // w0
io_registry_entry_t v5; // w20
const __CFString *v6; // x0
const __CFString *v7; // x22
const struct __CFString *v6; // x0
const struct __CFString *v7; // x22
CFTypeRef CFProperty; // x0
const void *v9; // x23
CFTypeID TypeID; // x24
@@ -23235,7 +23242,7 @@ bool __fastcall sub_22CA8(bool *a1)
_BOOL8 result; // x0
int v3; // w8
char v5[2]; // [xsp+Eh] [xbp-892h] BYREF
statfs v6; // [xsp+10h] [xbp-890h] BYREF
struct statfs v6; // [xsp+10h] [xbp-890h] BYREF
strcpy(v5, "/");
bzero(&v6, 0x878u);
@@ -23596,10 +23603,10 @@ __int64 __fastcall sub_23424(struct_krwCtx *a1)
__int64 v13; // x9
uint64_t v14; // x20
_QWORD v16[7]; // [xsp+0h] [xbp-70h] BYREF
mach_timebase_info info; // [xsp+38h] [xbp-38h] BYREF
struct mach_timebase_info info; // [xsp+38h] [xbp-38h] BYREF
v4 = 0x23B080000LL;
info = 0;
memset(&info, 0, sizeof(info));
mach_timebase_info(&info);
LODWORD(v2) = info.denom;
LODWORD(v1) = info.numer;
@@ -23735,7 +23742,7 @@ __int64 __fastcall sub_23760(struct_krwCtx *a1, __int64 a2)
unsigned __int64 v6; // d0
unsigned __int64 v7; // d1
uint64_t v8; // x21
mach_timebase_info info; // [xsp+8h] [xbp-38h] BYREF
struct mach_timebase_info info; // [xsp+8h] [xbp-38h] BYREF
v4 = **(_QWORD **)a2;
if ( (v4 & 0x90000000) == 0 )
@@ -23744,7 +23751,7 @@ __int64 __fastcall sub_23760(struct_krwCtx *a1, __int64 a2)
sub_2AABC((__int64)a1, 0x3E8u);
**(_QWORD **)a2 = v4 | 0x80000000LL;
*(_BYTE *)(a2 + 56) = 1;
info = 0;
memset(&info, 0, sizeof(info));
mach_timebase_info(&info);
LODWORD(v6) = info.denom;
LODWORD(v7) = info.numer;
@@ -23769,7 +23776,7 @@ __int64 __fastcall sub_2385C(struct_krwCtx *a1, __int64 a2)
unsigned __int64 v5; // d0
unsigned __int64 v6; // d1
uint64_t v7; // x20
mach_timebase_info info; // [xsp+8h] [xbp-38h] BYREF
struct mach_timebase_info info; // [xsp+8h] [xbp-38h] BYREF
if ( !*(_BYTE *)(a2 + 56) )
return 1;
@@ -23777,7 +23784,7 @@ __int64 __fastcall sub_2385C(struct_krwCtx *a1, __int64 a2)
if ( krw_ctx_has_flag(a1, 17825792) )
sub_2AABC((__int64)a1, 0x3E8u);
**(_QWORD **)a2 = v4;
info = 0;
memset(&info, 0, sizeof(info));
mach_timebase_info(&info);
LODWORD(v5) = info.denom;
LODWORD(v6) = info.numer;
@@ -24189,22 +24196,18 @@ __int64 __fastcall sub_240CC(int a1)
bool v4; // zf
int v5; // w0
getpid();
result = ((__int64 (__cdecl *)())sandbox_check)();
result = sandbox_check(getpid());
if ( (_DWORD)result )
{
getpid();
if ( (unsigned int)((__int64 (__cdecl *)())sandbox_check)() )
if ( (unsigned int)sandbox_check(getpid()) )
return 0;
getpid();
v3 = ((__int64 (__cdecl *)())sandbox_check)();
v3 = sandbox_check(getpid());
v4 = v3 == 0;
result = v3 != 0;
v4 = v4 || a1 == 0;
if ( !v4 )
{
getpid();
result = ((__int64 (__cdecl *)())sandbox_check)();
result = sandbox_check(getpid());
if ( (_DWORD)result != 1 )
{
v5 = socket(2, 2, 0);
@@ -24226,8 +24229,7 @@ __int64 __fastcall another_sandbox_check(__int64 a1)
int v2; // w8
__int64 result; // x0
getpid();
v2 = ((__int64 (__cdecl *)())sandbox_check)();
v2 = sandbox_check(getpid());
if ( !v2 || (result = 0, v2 == 1) )
{
*(_BYTE *)(a1 + 10) = v2;
@@ -24774,7 +24776,7 @@ double __fastcall sub_24BC0(__int64 a1)
char v10; // [xsp+34h] [xbp-55Ch] BYREF
__int64 v11; // [xsp+38h] [xbp-558h] BYREF
__int64 v12; // [xsp+40h] [xbp-550h] BYREF
utsname v13; // [xsp+48h] [xbp-548h] BYREF
struct utsname v13; // [xsp+48h] [xbp-548h] BYREF
uname(&v13);
*(_QWORD *)a1 = strdup(v13.version);
@@ -24985,7 +24987,7 @@ bool __fastcall sub_250C4(thread_act_t a1, unsigned int a2)
unsigned __int64 v4; // d0
unsigned __int64 v5; // d1
double v7; // d0
mach_timebase_info v8; // [xsp+0h] [xbp-30h] BYREF
struct mach_timebase_info v8; // [xsp+0h] [xbp-30h] BYREF
integer_t policy_info[3]; // [xsp+8h] [xbp-28h] BYREF
__int64 v10; // [xsp+14h] [xbp-1Ch]
@@ -26449,7 +26451,7 @@ __int64 __fastcall sub_26BE4(__int64 a1)
if ( (_DWORD)v2 )
goto LABEL_7;
*(_QWORD *)v4 = v11;
v10 = (mach_timespec_t)3LL;
v10 = IDA_MACH_TIMESPEC(3ULL);
v5 = semaphore_timedwait(semaphore[0], v10);
v2 = (unsigned int)v4[15];
if ( (_DWORD)v2 )
@@ -28080,7 +28082,7 @@ LABEL_9:
v11 = 1002;
while ( --v11 )
{
v12 = (mach_timespec_t)0xF424000000000LL;
v12 = IDA_MACH_TIMESPEC(0xF424000000000ULL);
semaphore_timedwait(a1->semaphore, v12);
if ( *((_BYTE *)v6 + 73) )
goto LABEL_9;
@@ -29169,7 +29171,7 @@ LABEL_41:
*(_QWORD *)(v10 + 48) = 0;
goto LABEL_32;
}
v20 = (mach_timespec_t)3LL;
v20 = IDA_MACH_TIMESPEC(3ULL);
v21 = semaphore_timedwait(*(_DWORD *)(v10 + 12), v20);
v12 = *(_DWORD *)(v10 + 60);
if ( !v12 )
@@ -29735,7 +29737,7 @@ __int64 __fastcall sub_2AABC(__int64 a1, unsigned int a2)
{
mach_timespec_t v2; // x1
v2 = (mach_timespec_t)((a2 / 0xF4240uLL) & 0x7FFFFFFFFLL
v2 = IDA_MACH_TIMESPEC((a2 / 0xF4240uLL) & 0x7FFFFFFFFLL
| ((unsigned __int64)((125 * (a2 % 0xF4240)) & 0x1FFFFFFF) << 35));
if ( semaphore_timedwait(*(_DWORD *)(a1 + 612), v2) == 49 )
return 0;
@@ -29763,7 +29765,7 @@ __int64 __fastcall sub_2AB18(__int64 a1)
__int64 v10; // x8
int v12; // w19
int v13; // w8
sockaddr v14; // [xsp+0h] [xbp-50h] BYREF
struct sockaddr v14; // [xsp+0h] [xbp-50h] BYREF
__int128 v15; // [xsp+10h] [xbp-40h]
__int64 v16; // [xsp+20h] [xbp-30h] BYREF
mach_port_t v17; // [xsp+2Ch] [xbp-24h]
@@ -29775,7 +29777,7 @@ __int64 __fastcall sub_2AB18(__int64 a1)
v3 = socket(32, 2, 2);
v4 = v3;
if ( v3 < 0
|| (v14 = (sockaddr)0, v15 = 0u, *(_DWORD *)&v14.sa_data[2] = 2, connect(v3, &v14, 0x20u))
|| (v14 = (struct sockaddr){0}, v15 = 0u, *(_DWORD *)&v14.sa_data[2] = 2, connect(v3, &v14, 0x20u))
|| (unsigned int)((__int64 (__cdecl *)())j__fileport_makeport)() )
{
v5 = *__error();
@@ -30675,9 +30677,9 @@ __int64 __fastcall sub_2BE34(UInt8 *a1, CFIndex a2, UInt8 *a3, CFIndex a4, _QWOR
//----- (000000000002BF00) ----------------------------------------------------
CFErrorRef __fastcall sub_2BF00(UInt8 *bytes, CFIndex length)
{
__CFReadStream *v2; // x0
__CFReadStream *v3; // x19
__CFError *v4; // x0
struct __CFReadStream *v2; // x0
struct __CFReadStream *v3; // x19
struct __CFError *v4; // x0
CFErrorRef v5; // x20
CFTypeID v6; // x21
CFErrorRef error; // [xsp+8h] [xbp-28h] BYREF
@@ -30692,7 +30694,7 @@ CFErrorRef __fastcall sub_2BF00(UInt8 *bytes, CFIndex length)
v5 = 0;
goto LABEL_9;
}
v4 = (__CFError *)CFPropertyListCreateWithStream(kCFAllocatorDefault, v3, 0, 2u, 0, &error);
v4 = (struct __CFError *)CFPropertyListCreateWithStream(kCFAllocatorDefault, v3, 0, 2u, 0, &error);
if ( v4 )
{
v5 = v4;
@@ -30739,8 +30741,8 @@ bool __fastcall sub_2BFDC(const void *a1, const void *a2, _BYTE *a3)
//----- (000000000002C044) ----------------------------------------------------
void *__fastcall sub_2C044(CFPropertyListRef propertyList, size_t *a2)
{
const __CFData *v3; // x0
const __CFData *v4; // x19
const struct __CFData *v3; // x0
const struct __CFData *v4; // x19
size_t Length; // x0
size_t v6; // x22
void *v7; // x21
@@ -31774,8 +31776,8 @@ bool __fastcall sub_2D500(const UInt8 *a1, CFIndex a2, __int64 a3)
__int64 v11; // x23
__int64 (__fastcall *v12)(__int64, CFPropertyListRef, __int64); // x0
__int64 (__fastcall *v13)(__int64, CFPropertyListRef, __int64); // x24
const __CFData *v14; // x0
const __CFData *v15; // x21
const struct __CFData *v14; // x0
const struct __CFData *v15; // x21
CFPropertyListRef v16; // x0
const void *v17; // x22
_BOOL8 v18; // x20
@@ -36852,7 +36854,7 @@ __int64 __fastcall sub_3341C(struct_krwCtx *a1, __int64 a2, int pid, const char
v19 = a1->gap1921[2];
if ( v19 )
{
((void (__usercall *)(char *@<X1>, __int64@<X0>, _QWORD *@<X8>))sub_19B98)("__DATA", v19, __s1);
sub_19B98("__DATA", __s1, v19);
result = 0;
v20 = v34;
if ( !v34 )
@@ -41809,7 +41811,7 @@ unsigned __int64 __fastcall kernel_get_base_slid(struct_krwCtx *ctx, unsigned __
mach_port_t port; // w0
unsigned __int64 ipc_port_kaddr; // x0
unsigned __int64 v10; // x0
mach_header_64 header; // [xsp+8h] [xbp-58h] BYREF
struct mach_header_64 header; // [xsp+8h] [xbp-58h] BYREF
unsigned __int64 vtable_func; // [xsp+28h] [xbp-38h] BYREF
vtable_func = optional_vtable_func;
@@ -41928,7 +41930,7 @@ unsigned __int64 __fastcall sub_39B14(_QWORD *a1)
}
//----- (0000000000039B70) ----------------------------------------------------
void __usercall sub_39B70(_QWORD *a1@<X8>, struct_krwCtx *a2@<X0>)
void sub_39B70(_QWORD *a1, struct_krwCtx *a2)
{
__int64 v4; // x10
__int64 v5; // x0
@@ -43334,7 +43336,7 @@ void __fastcall sub_3B7E0(__int64 a1, task_inspect_t task, host_t a3)
{
v21 = *(security_token_t *)task_info_out;
task_info_outCnt = v28;
host_security_set_task_token(v20, task, v21, &task_info_outCnt, a3);
host_security_set_task_token(v20, task, v21, task_info_outCnt, a3);
}
}
}
@@ -44299,12 +44301,12 @@ __int64 __fastcall driver_init2_1(struct_krwCtx *krwCtx, int something)
pid_t v11; // w0
io_registry_entry_t v12; // w0
io_registry_entry_t v13; // w22
const __CFString *v14; // x0
const __CFString *v15; // x23
const __CFString *CFProperty; // x0
const __CFString *v17; // x25
const struct __CFString *v14; // x0
const struct __CFString *v15; // x23
const struct __CFString *CFProperty; // x0
const struct __CFString *v17; // x25
CFTypeID TypeID; // x26
const __CFString *v19; // x24
const struct __CFString *v19; // x24
int HasPrefix; // w26
unsigned __int64 v21; // x0
unsigned __int64 v22; // x22
@@ -44388,7 +44390,7 @@ __int64 __fastcall driver_init2_1(struct_krwCtx *krwCtx, int something)
size_t v101; // [xsp+68h] [xbp-108h] BYREF
uint64_t cpuFamily; // [xsp+70h] [xbp-100h] BYREF
size_t v103; // [xsp+78h] [xbp-F8h] BYREF
stat v104; // [xsp+80h] [xbp-F0h] BYREF
struct stat v104; // [xsp+80h] [xbp-F0h] BYREF
v100 = 0;
memset(&xnuVersion, 0, sizeof(xnuVersion));
@@ -44431,7 +44433,7 @@ __int64 __fastcall driver_init2_1(struct_krwCtx *krwCtx, int something)
if ( v14 )
{
v15 = v14;
CFProperty = (const __CFString *)IORegistryEntryCreateCFProperty(v13, v14, kCFAllocatorDefault, 0);
CFProperty = (const struct __CFString *)IORegistryEntryCreateCFProperty(v13, v14, kCFAllocatorDefault, 0);
if ( CFProperty )
{
v17 = CFProperty;
@@ -47441,9 +47443,9 @@ __int64 __fastcall sub_4100C(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __i
//----- (0000000000041040) ----------------------------------------------------
unsigned __int64 sub_41040()
{
return *(unsigned __int64 *)((char *)&__get_cpu_capabilities + 12) & 0xFFFFFFFFFFFFFF00LL;
return *(unsigned __int64 *)((char *)&j___get_cpu_capabilities + 12) & 0xFFFFFFFFFFFFFF00LL;
}
// 483C0: using guessed type __int64 __get_cpu_capabilities(void);
// 483C0: using guessed type __int64 j___get_cpu_capabilities(void);
#if 0
//----- (000000000004106C) ----------------------------------------------------
int __cdecl CC_SHA1_Final(unsigned __int8 *md, CC_SHA1_CTX *c)
@@ -48032,9 +48034,9 @@ __int64 __ulock_wake()
//----- (000000000004156C) ----------------------------------------------------
__int64 _get_cpu_capabilities()
{
return __get_cpu_capabilities();
return j___get_cpu_capabilities();
}
// 483C0: using guessed type __int64 __get_cpu_capabilities(void);
// 483C0: using guessed type __int64 j___get_cpu_capabilities(void);
//----- (000000000004157C) ----------------------------------------------------
__int64 _os_alloc_once()
@@ -48144,7 +48146,7 @@ int __cdecl getattrlist(const char *a1, void *a2, void *a3, size_t a4, unsigned
}
//----- (000000000004168C) ----------------------------------------------------
int __cdecl getmntinfo(statfs **a1, int a2)
int __cdecl getmntinfo(struct statfs **a1, int a2)
{
return _getmntinfo(a1, a2);
}
@@ -48522,7 +48524,7 @@ char *__cdecl mktemp(char *a1)
}
//----- (000000000004198C) ----------------------------------------------------
void *__cdecl mmap(void *a1, size_t a2, int a3, int a4, int a5, off_t a6)
void *j_mmap(void *a1, size_t a2, int a3, int a4, int a5, off_t a6)
{
return _mmap(a1, a2, a3, a4, a5, a6);
}
@@ -48841,7 +48843,7 @@ int __cdecl stat(const char *a1, stat *a2)
}
//----- (0000000000041CBC) ----------------------------------------------------
int __cdecl statfs(const char *a1, statfs *a2)
int __cdecl statfs(const char *a1, struct statfs *a2)
{
return _statfs(a1, a2);
}
@@ -49225,5 +49227,99 @@ ssize_t __cdecl write(int __fd, const void *__buf, size_t __nbyte)
return _write(__fd, __buf, __nbyte);
}
#endif
// Compatibility wrappers for names that were cleaned up during manual analysis.
__int64 __fastcall validate_addr(__int64 a1, __int64 a2) { return sub_1972C(a1, a2); }
__int64 __fastcall kwritebuf_last_1(__int64 ctx, __int64 address, __int64 buf, __int64 bufSize)
{
return kwritebuf_last_arg_1(ctx, address, buf, bufSize);
}
bool __fastcall noppl_kwritebuf(__int64 a1, unsigned __int64 a2, const void *a3, mach_vm_size_t a4, int a5)
{
return sub_2A488(a1, a2, a3, a4, a5);
}
bool __fastcall noppl_kwrite32(__int64 a1, mach_vm_address_t address, int a3)
{
return sub_10708(a1, address, a3) == 0;
}
bool __fastcall kreadbuf_last_0(__int64 ctx, unsigned __int64 addr, mach_vm_size_t size, void *outBuf)
{
return kreadbuf_0(ctx, addr, size, outBuf);
}
bool __fastcall kread64_outptr(struct_krwCtx *a1, unsigned __int64 vaddr, unsigned __int64 *out)
{
return kread64(a1, vaddr, out);
}
bool __fastcall kread32_outptr(__int64 krwCtx, unsigned __int64 vaddr, void *outBuf)
{
return sub_295B4(krwCtx, vaddr, outBuf);
}
__int64 __fastcall kread32(__int64 a1, unsigned __int64 a2) { return kread32_maybe(a1, a2); }
unsigned __int64 __fastcall krw_xpac_vaddr(struct_krwCtx *a1, __int64 a2) { return sub_29D88(a1, a2); }
bool __fastcall kwrite64_last_arg(__int64 a1, mach_vm_address_t address, __int64 newValue, int whatIsThis)
{
return this_is_the_kwrite64(a1, address, newValue, whatIsThis);
}
__int64 __fastcall krw_task_for_pid_0(struct_krwCtx *a1, __int64 a2, int pid) { return sub_33414(a1, a2, pid); }
__int64 __fastcall krw_task_for_name(__int64 a1, __int64 a2, const char *a3) { return sub_336AC(a1, a2, a3); }
bool __fastcall krw_task_for_pid(__int64 a1, int a2, mach_port_name_t *a3) { return real_task_for_pid(a1, a2, a3); }
bool __fastcall krw_task_for_pid_or_name(__int64 a1, int victim_pid, const char *victim_process_name, mach_port_name_t *out_task)
{
return real_task_for_pid_or_name(a1, victim_pid, victim_process_name, out_task);
}
unsigned __int64 __fastcall maybe_ipc_port_get_kobject(struct_krwCtx *a1, unsigned __int64 ipc_port_kaddr)
{
return sub_328A4(a1, ipc_port_kaddr);
}
__int64 __fastcall kreadptr(struct_krwCtx *krwCtx, __int64 addr) { return sub_32D80(krwCtx, addr); }
__int64 __fastcall task_self_get_ipc_port_ptr(__int64 a1, unsigned int a2)
{
return task_self_get_ipc_port((struct_krwCtx *)a1, a2);
}
__int64 __fastcall check_sandboxed(int a1) { return sub_240CC(a1); }
__int64 __fastcall driver_close_internal(char *a1) { return sub_3F4BC(a1); }
__int64 __fastcall driver_cmd_setup_untethered_persistence_maybe(__int64 a1, int a2)
{
return setup_untethered_persistence_maybe(a1, a2);
}
__int64 __fastcall fd_close(int a1) { return sub_25294(a1); }
__int64 __fastcall fd_open_dev_null(int *fdOut) { return open_dev_null(fdOut); }
__int64 __fastcall fd_read_test(int *fd) { return test_read_fd(fd); }
unsigned __int64 __fastcall kernel_get_variable_addr(__int64 a1, char *a2, const char *a3, char *a4)
{
return sub_1E3C4(a1, a2, a3, a4);
}
__int64 __fastcall kreadbuf_via_dev_null_simple(
struct_krwCtx *a1,
unsigned __int64 a2,
void *a3,
unsigned int a4,
int a5)
{
return sub_25334(a1, a2, a3, a4, a5);
}
__int64 __fastcall kreadbuf_via_dev_null_only(__int64 a1, unsigned __int64 a2, __int64 a3, unsigned int a4, int a5)
{
return sub_25E54(a1, a2, a3, a4, a5);
}
_DWORD *__fastcall krw_ctx_set_flag(_DWORD *result, int a2) { return sub_36078(result, a2); }
__int64 __fastcall krw_inject_entitlements2_maybe(struct_krwCtx *a1, __int64 task, char *entitlementXml, char a4)
{
return sub_2CBA4(a1, task, entitlementXml, a4);
}
unsigned __int64 __fastcall krw_xpac_vaddr_2(struct_krwCtx *a1, __int64 a2) { return sub_29CB0(a1, a2); }
__int64 __fastcall task_get_ipc_port_ptr(struct_krwCtx *a1, mach_port_name_t task, mach_port_t port)
{
return sub_339B4(a1, task, port);
}
__int64 __fastcall nullsub_1(_QWORD a1) { return a1; }
__int64 __fastcall nullsub_2(_QWORD a1) { return a1; }
__int64 __fastcall sub_19B94(_QWORD a1, _QWORD a2) { return 0; }
__int64 j___get_cpu_capabilities(void) { return 0; }
__int64 __fastcall j__fileport_makeport(int a1, mach_port_t *a2) { return fileport_makeport(a1, a2); }
int __fastcall j__fileport_makefd(mach_port_t port) { return fileport_makefd(port); }
// nfuncs=894 queued=886 decompiled=886 lumina nreq=0 worse=0 better=0
// ALL OK, 886 function(s) have been successfully decompiled
+100 -12
View File
@@ -55,9 +55,13 @@ typedef uint64_t _QWORD;
typedef __int128 _OWORD;
typedef uint8_t _UNKNOWN;
typedef int _BOOL4;
typedef __int128 __n128;
typedef uint64_t _BOOL8;
typedef union { __int128 o; uint64_t n128_u64[2]; double n128_f64[2]; } __n128;
typedef __int128 xmmword;
typedef char kernel_version_t[512];
typedef mach_port_t io_master_t;
typedef struct _opaque_pthread_t _opaque_pthread_t;
#define dword_4339C (dword_43390 + 3)
/* ---- IDA calling conventions (no-ops) ---- */
#define __fastcall
@@ -86,6 +90,7 @@ typedef char kernel_version_t[512];
#define DWORD2(x) (*((uint32_t*)&(x) + 2))
#define __PAIR64__(h, l) (((uint64_t)(h) << 32) | (uint32_t)(l))
#define __PAIR32__(h, l) (((uint32_t)(h) << 16) | (uint16_t)(l))
#define IDA_INT128_C(h, l) (((__int128)(uint64_t)(h) << 64) | (uint64_t)(l))
#define __CFADD__(a, b) ((uint64_t)(a) > (uint64_t)(-1) - (uint64_t)(b))
#define __OFSUB__(a, b) (((a) ^ (b)) < 0 && ((a) ^ ((a) - (b))) < 0)
#define __OFADD__(a, b) (((a) ^ (b)) >= 0 && ((a) ^ ((a) + (b))) < 0)
@@ -98,7 +103,18 @@ typedef char kernel_version_t[512];
/* ---- IDA helpers ---- */
#define __break(x) __builtin_trap()
#define bswap32(x) __builtin_bswap32(x)
static inline void __chkstk_darwin(void) {}
static inline __int64 __chkstk_darwin(void) { return 0; }
static inline __int64 ida_chkstk_darwin(void) { return 0; }
#define __chkstk_darwin(...) ida_chkstk_darwin()
#define MEMORY ((volatile _QWORD *)0)
typedef unsigned int atomic_uint;
typedef unsigned short atomic_ushort;
typedef unsigned char atomic_uchar;
#define atomic_load(p) (*(p))
#define atomic_store(v, p) (*(p) = (v))
#define atomic_fetch_add(p, v) (*(p) += (v))
#define atomic_exchange(p, v) __extension__ ({ __typeof__(*(p)) _old = *(p); *(p) = (v); _old; })
/* ---- NEON vector unions (IDA uses .i8[n] / .u8[n] member access) ---- */
@@ -117,8 +133,23 @@ typedef mach_port_t host_t;
#endif
/* ---- Private syscalls ---- */
int __ulock_wait(uint32_t, void *, uint64_t, uint32_t) __attribute__((weak_import));
int __ulock_wake(uint32_t, void *, uint64_t) __attribute__((weak_import));
static inline mach_timespec_t ida_mach_timespec(uint64_t x) {
mach_timespec_t t;
t.tv_sec = (unsigned int)(x & 0x7FFFFFFFFULL);
t.tv_nsec = (clock_res_t)((x >> 35) & 0x1FFFFFFFULL);
return t;
}
#define IDA_MACH_TIMESPEC(x) ida_mach_timespec((uint64_t)(x))
static inline void *ida_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset) {
(void)addr;
(void)len;
(void)prot;
(void)flags;
(void)fd;
(void)offset;
return (void *)-1;
}
#define mmap ida_mmap
int open_dprotected_np(const char *, int, int, int, ...);
int fileport_makeport(int fd, mach_port_t *port);
int fileport_makefd(mach_port_t port);
@@ -155,7 +186,6 @@ static __attribute__((always_inline)) uint64_t _ReadStatusReg(uint32_t reg) {
}
/* IDA uses __semwait_signal, __memcpy_chk etc. as direct calls */
extern int __semwait_signal(int, int, int, int, long long, int);
/* struct tags C requires */
typedef struct IONotificationPort IONotificationPort;
@@ -164,8 +194,7 @@ typedef struct IONotificationPort IONotificationPort;
extern double dyldVersionNumber;
/* _os_alloc_once */
struct _os_alloc_once_s { long once; void *ptr; };
extern struct _os_alloc_once_s _os_alloc_once_table[];
extern _QWORD _os_alloc_once_table[];
/* IOConnectTrap4/6 — marked unavailable on iOS in SDK but symbols exist.
Use syscall wrappers instead of the SDK declarations. */
@@ -179,12 +208,71 @@ static inline kern_return_t _IOConnectTrap6(io_connect_t c, uint32_t i, uintptr_
#define IOConnectTrap6 _IOConnectTrap6
/* NEON union additions for i16/i32/i64/u32/u64 access */
typedef union { int8_t i8[16]; uint8_t u8[16]; int16_t i16[8]; int32_t i32[4]; int64_t i64[2]; uint32_t u32[4]; uint64_t u64[2]; int8x16_t v; int64x2_t v64; } ida_int8x16_t;
typedef union { int8_t i8[8]; uint8_t u8[8]; int16_t i16[4]; int32_t i32[2]; uint32_t u32[2]; uint8x8_t v; int8x8_t vs; int32x2_t v32; } ida_uint8x8_t;
typedef union { int8_t i8[16]; uint8_t u8[16]; int16_t i16[8]; int32_t i32[4]; int64_t i64[2]; uint32_t u32[4]; uint64_t u64[2]; uint64_t q; __int128 o; int8x16_t v; int64x2_t v64; } ida_int8x16_t;
typedef union { int8_t i8[8]; uint8_t u8[8]; int16_t i16[4]; int32_t i32[2]; uint32_t u32[2]; uint64_t q; uint8x8_t v; int8x8_t vs; int32x2_t v32; } ida_uint8x8_t;
/* Additional NEON union types for IDA decompiler output */
typedef union { int8_t i8[8]; uint8_t u8[8]; int16_t i16[4]; int32_t i32[2]; uint32_t u32[2]; uint64_t u64[1]; int64_t i64[1]; int8x8_t vs; } ida_int8x8_t;
typedef union { int32_t i32[2]; uint32_t u32[2]; int64_t i64[1]; uint64_t u64[1]; int32x2_t v; } ida_int32x2_t;
typedef union { int64_t i64[2]; uint64_t u64[2]; int32_t i32[4]; uint32_t u32[4]; int16_t i16[8]; int8_t i8[16]; uint8_t u8[16]; int64x2_t v64; int8x16_t v; } ida_int64x2_t;
typedef union { int8_t i8[8]; uint8_t u8[8]; int16_t i16[4]; int32_t i32[2]; uint32_t u32[2]; uint64_t u64[1]; int64_t i64[1]; uint64_t q; int8x8_t vs; } ida_int8x8_t;
typedef union { int32_t i32[2]; uint32_t u32[2]; int64_t i64[1]; uint64_t u64[1]; uint64_t q; int32x2_t v; } ida_int32x2_t;
typedef union { int64_t i64[2]; uint64_t u64[2]; int32_t i32[4]; uint32_t u32[4]; int16_t i16[8]; int8_t i8[16]; uint8_t u8[16]; __int128 o; int64x2_t v64; int8x16_t v; } ida_int64x2_t;
static inline ida_uint8x8_t ida_vcnt_s8(ida_int8x8_t x) {
ida_uint8x8_t r;
r.v = vcnt_s8(x.vs);
return r;
}
static inline uint16_t ida_vaddlv_u8(ida_uint8x8_t x) {
return vaddlv_u8(x.v);
}
static inline ida_int64x2_t ida_vaddq_s64(ida_int64x2_t a, ida_int64x2_t b) {
ida_int64x2_t r;
r.v64 = vaddq_s64(a.v64, b.v64);
return r;
}
static inline ida_int32x2_t ida_vrev64_s32(ida_int32x2_t x) {
ida_int32x2_t r;
r.v = vrev64_s32(x.v);
return r;
}
static inline ida_int32x2_t ida_vdup_n_s32(int32_t x) {
ida_int32x2_t r;
r.v = vdup_n_s32(x);
return r;
}
static inline ida_int64x2_t ida_vdupq_n_s64(int64_t x) {
ida_int64x2_t r;
r.v64 = vdupq_n_s64(x);
return r;
}
static inline ida_int8x16_t ida_vbslq_s8(ida_int8x16_t mask, ida_int8x16_t a, ida_int8x16_t b) {
ida_int8x16_t r;
r.v = vbslq_s8(mask.v, a.v, b.v);
return r;
}
static inline ida_int8x16_t ida_vextq_s8(ida_int8x16_t a, ida_int8x16_t b, int n) {
ida_int8x16_t r;
(void)n;
r.v = vextq_s8(a.v, b.v, 8);
return r;
}
static inline ida_int8x16_t ida_vdupq_n_s8(int8_t x) {
ida_int8x16_t r;
r.v = vdupq_n_s8(x);
return r;
}
#define int8x16_t ida_int8x16_t
#define int8x8_t ida_int8x8_t
#define uint8x8_t ida_uint8x8_t
#define int32x2_t ida_int32x2_t
#define int64x2_t ida_int64x2_t
#define vcnt_s8 ida_vcnt_s8
#define vaddlv_u8 ida_vaddlv_u8
#define vaddq_s64 ida_vaddq_s64
#define vrev64_s32 ida_vrev64_s32
#define vdup_n_s32 ida_vdup_n_s32
#define vdupq_n_s64 ida_vdupq_n_s64
#define vdupq_n_s8 ida_vdupq_n_s8
#define vbslq_s8 ida_vbslq_s8
#define vextq_s8 ida_vextq_s8
#endif /* IDA_TYPES_H */
File diff suppressed because it is too large Load Diff