char **compile() { __int64 v0; // x0 char **v1; // x6 char **v2; // x21 void *v3; // x5 void *v4; // x23 _QWORD *v5; // x4 _QWORD *v6; // x24 const char **v7; // x3 const char **v8; // x27 __int64 v9; // x2 __int64 v10; // x25 FILE *v11; // x1 FILE *v12; // x22 const char *v13; // x26 _OWORD *v14; // x19 _BYTE *v15; // x20 const void *v16; // x0 const void *v17; // x0 char *v18; // x0 char *v19; // x20 size_t v20; // x22 __int64 v21; // x0 char v22; // w22 __int64 v23; // x0 xpc_object_t _14; // x22 char **v25; // x23 int v26; // w0 int v27; // w26 __int64 v28; // x26 __int64 v29; // x27 const char *v30; // x22 const char **v31; // x28 __int64 v32; // x26 FILE *v33; // x0 FILE *v34; // x27 __int64 v35; // x26 char v36; // w22 const char *v37; // t1 __int64 v38; // x0 __int64 v39; // x0 __int64 v40; // x0 __int64 v41; // x25 off_t v42; // x0 unsigned __int64 v43; // x25 const char **v44; // x8 void *v45; // x0 xpc_object_t value_11; // x0 _QWORD *v47; // x23 __int64 v48; // x24 _DWORD *v49; // x0 int v50; // w27 int v51; // w26 __int64 v52; // x28 __int64 v53; // x0 __int64 v54; // x25 _QWORD *v55; // x0 __int64 v56; // x0 __int64 *v57; // x8 __int64 v58; // x9 int v59; // w24 void *v60; // x26 __int64 inited; // x0 _QWORD *v62; // x25 _DWORD *v63; // x0 __int64 v64; // x27 bool v65; // cf __int64 v66; // x24 __int64 v67; // x28 __int64 v68; // x26 __int64 v69; // x0 __int64 v70; // x0 __int64 v71; // x0 __int64 v72; // x0 __int64 v73; // x0 __int64 v74; // x0 __int64 v75; // x0 char v76; // w8 unsigned __int64 v77; // x28 __int64 *v78; // x24 __int64 v79; // x0 __int64 v80; // x0 __int64 v81; // x0 unsigned __int64 v82; // x28 char v83; // w8 unsigned __int64 v84; // x28 __int64 *v85; // x24 __int64 v86; // x28 __int64 v87; // x0 __int64 v88; // x0 __int64 v89; // x0 __int64 v90; // x0 __int64 v91; // x0 __int64 v92; // x0 __int64 v93; // x0 __int64 v94; // x0 __int64 v95; // x0 __int64 v96; // x0 __int64 v97; // x0 __int64 v98; // x0 __int64 v99; // x0 __int64 v100; // x0 __int64 v101; // x0 __int64 v102; // x0 __int64 v103; // x0 __int64 v104; // x0 __int64 v105; // x0 __int64 v106; // x26 __int64 v107; // x0 __int64 v108; // x8 __int64 v109; // x26 __int64 v110; // x24 size_t v111; // x0 __int64 *v112; // x0 __int64 v113; // x0 __int64 v114; // x0 int v115; // w8 int k; // w24 __int64 v117; // x25 __int64 v118; // x26 _QWORD *v119; // x21 _QWORD *v120; // x21 __int64 v121; // t1 __int64 v122; // x8 _QWORD *v123; // x8 __int64 v124; // x9 __int64 v125; // t1 __int64 v126; // x21 FILE *v127; // x0 FILE **v128; // x21 FILE *v129; // t1 __int64 v130; // x8 void *v131; // x0 void *v132; // x0 __int64 v134; // x0 __int64 v135; // x0 __int64 v136; // x0 __int64 v137; // x25 __int64 v138; // x26 __int64 v139; // x27 void *v140; // x0 void *v141; // x24 __int64 v142; // x0 char **v143; // x0 __int64 v144; // x0 __int64 v145; // x23 int *v146; // x0 char *v147; // x0 __int64 v148; // x26 const char *v149; // x28 __int64 v150; // x0 __int64 v151; // x26 __int64 v152; // x0 __int64 v153; // x26 __int64 v154; // x0 xpc_object_t v155; // x0 __int64 v156; // x2 __int64 v157; // x24 __int64 v158; // x28 unsigned __int64 i; // x25 __int64 v160; // x24 const char *v161; // x27 FILE *v162; // x26 int v163; // w0 __int64 v164; // x0 __int128 *v165; // x1 char *v166; // x0 __int64 v167; // x25 char **v168; // x24 __int64 v169; // x0 __int64 v170; // x26 __int64 v171; // x0 __int64 v172; // x8 __int64 v173; // x26 __int64 v174; // x24 void *v175; // x0 char v176; // w24 __int64 v177; // x0 void *v178; // x0 __int64 v179; // x25 unsigned __int64 j; // x26 __int64 v181; // x25 __int64 *v182; // x27 __int64 v183; // x9 __int128 v184; // [xsp+0h] [xbp-1240h] const char *v185; // [xsp+0h] [xbp-1240h] double v186; // [xsp+0h] [xbp-1240h] const char *v187; // [xsp+0h] [xbp-1240h] _QWORD *v188; // [xsp+0h] [xbp-1240h] double v189; // [xsp+0h] [xbp-1240h] void *v190; // [xsp+38h] [xbp-1208h] __int64 v191; // [xsp+40h] [xbp-1200h] __int64 v192; // [xsp+40h] [xbp-1200h] __int64 v193; // [xsp+48h] [xbp-11F8h] char **v194; // [xsp+50h] [xbp-11F0h] BYREF _QWORD *v195; // [xsp+58h] [xbp-11E8h] BYREF __int64 immutable; // [xsp+60h] [xbp-11E0h] BYREF void *v197; // [xsp+68h] [xbp-11D8h] BYREF __int64 v198; // [xsp+70h] [xbp-11D0h] BYREF _QWORD *v199; // [xsp+78h] [xbp-11C8h] BYREF void *v200; // [xsp+80h] [xbp-11C0h] BYREF __int64 v201[5]; // [xsp+88h] [xbp-11B8h] BYREF __int64 v202[5]; // [xsp+B0h] [xbp-1190h] BYREF __int64 v203[6]; // [xsp+D8h] [xbp-1168h] BYREF __int64 v204[6]; // [xsp+108h] [xbp-1138h] BYREF __int64 v205[6]; // [xsp+138h] [xbp-1108h] BYREF __int64 v206[6]; // [xsp+168h] [xbp-10D8h] BYREF __int64 v207[6]; // [xsp+198h] [xbp-10A8h] BYREF __int64 v208[6]; // [xsp+1C8h] [xbp-1078h] BYREF __int64 v209[6]; // [xsp+1F8h] [xbp-1048h] BYREF __int64 v210[6]; // [xsp+228h] [xbp-1018h] BYREF __int64 v211[2]; // [xsp+258h] [xbp-FE8h] BYREF __int64 (__fastcall *v212)(); // [xsp+268h] [xbp-FD8h] void *v213; // [xsp+270h] [xbp-FD0h] __int64 v214; // [xsp+278h] [xbp-FC8h] __int64 v215[2]; // [xsp+280h] [xbp-FC0h] BYREF __int64 (__fastcall *v216)(); // [xsp+290h] [xbp-FB0h] void *v217; // [xsp+298h] [xbp-FA8h] __int64 v218; // [xsp+2A0h] [xbp-FA0h] __int64 v219[2]; // [xsp+2A8h] [xbp-F98h] BYREF __int64 (__fastcall *v220)(); // [xsp+2B8h] [xbp-F88h] void *v221; // [xsp+2C0h] [xbp-F80h] _QWORD *v222; // [xsp+2C8h] [xbp-F78h] __objc2_class *v223; // [xsp+2D0h] [xbp-F70h] BYREF __int64 v224; // [xsp+2D8h] [xbp-F68h] __int64 (__fastcall *v225)(); // [xsp+2E0h] [xbp-F60h] void *v226; // [xsp+2E8h] [xbp-F58h] __int64 v227; // [xsp+2F0h] [xbp-F50h] __objc2_class *v228; // [xsp+2F8h] [xbp-F48h] BYREF __int64 v229; // [xsp+300h] [xbp-F40h] __int64 (__fastcall *v230)(); // [xsp+308h] [xbp-F38h] void *v231; // [xsp+310h] [xbp-F30h] _QWORD *v232; // [xsp+318h] [xbp-F28h] __int64 v233; // [xsp+320h] [xbp-F20h] char ***v234; // [xsp+328h] [xbp-F18h] __int128 v235; // [xsp+330h] [xbp-F10h] BYREF __int128 v236; // [xsp+340h] [xbp-F00h] BYREF __int128 v237; // [xsp+350h] [xbp-EF0h] __int128 v238; // [xsp+360h] [xbp-EE0h] __int128 v239; // [xsp+370h] [xbp-ED0h] __int128 v240; // [xsp+380h] [xbp-EC0h] __int128 v241; // [xsp+390h] [xbp-EB0h] __int128 v242; // [xsp+3A0h] [xbp-EA0h] __int64 v243; // [xsp+3B0h] [xbp-E90h] BYREF char *v244; // [xsp+B50h] [xbp-6F0h] unsigned int v245; // [xsp+B58h] [xbp-6E8h] int v246; // [xsp+B5Ch] [xbp-6E4h] BYREF __int64 v247[11]; // [xsp+F60h] [xbp-2E0h] BYREF __int64 v248; // [xsp+FB8h] [xbp-288h] BYREF __int64 v249; // [xsp+11B8h] [xbp-88h] char **v250; // [xsp+11C8h] [xbp-78h] v0 = off_1ED3EBAC8(); v2 = v1; v4 = v3; v6 = v5; v8 = v7; v10 = v9; v12 = v11; v13 = v0; v194 = 0LL; v14 = j__calloc_26(1uLL, 0x100uLL); *v14 = 1; v14[2] = 0u; v14[3] = 0u; *(v14 + 8) = 0LL; v15 = j__calloc_26(1uLL, 0x48uLL); *v15 = 1; v15[4] = 1; sb_context_retain(v14); *(v15 + 8) = v14; *(v14 + 9) = v15; *(v14 + 27) = 0LL; if ( *v14 != 2 ) j____assert_rtn_18("sb_context_new", "context.c", 40, "context->refcnt == INTERNAL_REFERENCE_COUNT + 1"); v195 = v14; v16 = *(v14 + 30); if ( v16 ) j___Block_release_18(v16); *(v14 + 30) = j___Block_copy_18(&__block_literal_global_396); v17 = *(v14 + 31); if ( v17 ) j___Block_release_18(v17); *(v14 + 31) = j___Block_copy_18(&__block_literal_global_8_5); v18 = j__calloc_26(1uLL, 0x30uLL); v19 = v18; if ( !v18 ) { v23 = *(v14 + 30); if ( v23 ) (*(v23 + 16))(v23, &sb_error_out_of_memory_oom_error); _14 = 0LL; goto LABEL_14; } *v18 = 1; sb_context_retain(v14); *(v19 + 2) = v14; v19[45] = 1; if ( !v13 ) { if ( !v12 ) { if ( v8 ) { v30 = *v8; if ( *v8 ) { v31 = v8 + 1; while ( 1 ) { v32 = *(v19 + 2); v33 = j__fopen_15(v30, "r"); if ( !v33 ) break; v34 = v33; v35 = sb_buffer_with_contents_of_file(v32, v33, &v194); j__fclose_16(v34); *&v235 = v35; if ( !v35 ) goto LABEL_106; v36 = sb_program_add_source_buffer(v19, v30, v35, &v194); sb_buffer_release(&v235); if ( (v36 & 1) == 0 ) goto LABEL_106; v37 = *v31++; v30 = v37; if ( !v37 ) goto LABEL_38; } v145 = *j____error_27(); v146 = j____error_27(); v147 = j__strerror_15(*v146); sb_error_set_with_format(v32, &v194, "failed to open \"%s\" for reading: (#%d) %s", v30, v145, v147); goto LABEL_106; } } goto LABEL_38; } j__flockfile(v12); v26 = j__fileno_5(v12); if ( v26 < 0 || (v27 = v26, j__bzero_30(&v235, 0x400uLL), j__fcntl_13(v27, 50, &v235)) ) { if ( v10 ) { v28 = 0LL; LABEL_21: v29 = v28; v28 = sb_textbuf_with_string_copy(*(v19 + 2), v10, &v194); if ( !v28 ) { LABEL_103: if ( v29 ) { *&v235 = v29; sb_buffer_release(&v235); } goto LABEL_105; } LABEL_36: v40 = sb_program_source_alloc(v19, &v194); if ( v40 ) { v41 = v40; v42 = j__ftello_0(v12); *(v41 + 40) = 0; *(v41 + 32) = v29; *v41 = v28; *(v41 + 8) = v12; *(v41 + 16) = v42; goto LABEL_38; } *&v235 = v28; sb_buffer_release(&v235); goto LABEL_103; } v38 = sb_buffer_alloc(*(v19 + 2), 0LL, &v194); if ( v38 ) { v28 = v38; v29 = 0LL; *(v38 + 16) = *(v38 + 16) & 0xFD00000000000000LL | 0xD; *(v38 + 24) = ""; goto LABEL_36; } } else { v39 = sb_textbuf_with_string_copy(*(v19 + 2), &v235, &v194); if ( v39 ) { v28 = v39; if ( !v10 ) { sb_buffer_retain(v39); v29 = v28; goto LABEL_36; } goto LABEL_21; } } LABEL_105: j__funlockfile(v12); LABEL_106: _14 = 0LL; goto LABEL_107; } v20 = j__strlen_31(v13); v21 = sb_buffer_alloc(v14, 0LL, &v194); if ( !v21 ) goto LABEL_106; *(v21 + 16) = *(v21 + 16) & 0xFD00000000000000LL | v20 & 0xFFFFFFFFFFFFFFLL; *(v21 + 24) = v13; *&v235 = v21; v22 = sb_program_add_source_buffer(v19, v10, v21, &v194); sb_buffer_release(&v235); if ( (v22 & 1) == 0 ) goto LABEL_106; LABEL_38: if ( v6 ) { _14 = j__xpc_dictionary_create_14(0LL, 0LL, 0LL); if ( v6[1] ) { v43 = 0LL; do { v44 = (*v6 + 8 * v43); v43 += 2LL; j__xpc_dictionary_set_string_13(_14, *v44, v44[1]); } while ( v43 < v6[1] ); } if ( v4 ) j__xpc_dictionary_set_value_10(_14, "entitlements", v4); if ( !_14 ) { v113 = *(v14 + 30); v25 = &sb_error_out_of_memory_oom_error; if ( v113 ) (*(v113 + 16))(v113, &sb_error_out_of_memory_oom_error); _14 = 0LL; goto LABEL_15; } v45 = *(v19 + 4); if ( v45 ) j__xpc_release_14(v45); *(v19 + 4) = j__xpc_retain_9(_14); v19[44] = 1; v19[45] = j__xpc_dictionary_get_value_11(_14, "NO_IMPLICIT_RULES") == 0LL; value_11 = j__xpc_dictionary_get_value_11(_14, "ENABLE_PATTERN_VARIABLES"); v19[46] = value_11 != 0LL; v199 = 0LL; immutable = 0LL; v197 = 0LL; if ( !value_11 ) { v47 = 0LL; goto LABEL_52; } } else { _14 = 0LL; *(v19 + 45) = 257; v199 = 0LL; immutable = 0LL; v197 = 0LL; } v48 = *(v19 + 2); v49 = j__calloc_26(1uLL, 0x28uLL); if ( v49 ) { v47 = v49; *v49 = 1; sb_context_retain(v48); v47[1] = v48; v47[3] = 0LL; v47[4] = 0LL; v199 = v47; LABEL_52: v50 = v19[45]; v51 = v19[47]; v52 = *(v19 + 2); v53 = sb_policy_new(v52, 0LL, 190LL, &v194); if ( !v53 ) goto LABEL_147; v54 = v53; *&v235 = v53; v55 = j__calloc_26(1uLL, 0x38uLL); if ( !v55 ) { v134 = *(v52 + 240); if ( v134 ) (*(v134 + 16))(v134, &sb_error_out_of_memory_oom_error); v194 = &sb_error_out_of_memory_oom_error; sb_policy_release(&v235); goto LABEL_147; } *v55 = 1; v55[1] = v54; v193 = v55; v56 = sb_context_retain_modification(v52, v52 + 12); v57 = (v52 + 40); v58 = *(v52 + 40); *(v193 + 32) = v58; *(v193 + 24) = v52; if ( v58 ) *(v58 + 40) = v193 + 32; *v57 = v193; *(v193 + 40) = v57; *(v193 + 48) = 0LL; v198 = v193; if ( v51 ) v59 = (2 * (v50 != 0)) | 4; else v59 = 2 * (v50 != 0); v60 = *(v19 + 4); v200 = 0LL; inited = scheme_init_new(v56); if ( !inited ) { v135 = *(v52 + 240); if ( v135 ) (*(v135 + 16))(v135, &sb_error_out_of_memory_oom_error); v194 = &sb_error_out_of_memory_oom_error; goto LABEL_146; } v62 = inited; v63 = j__calloc_26(1uLL, 0x88uLL); if ( !v63 ) { v136 = *(v52 + 240); if ( v136 ) (*(v136 + 16))(v136, &sb_error_out_of_memory_oom_error); v194 = &sb_error_out_of_memory_oom_error; goto LABEL_145; } v64 = v63; v200 = v63; *v63 = 1LL; v63[3] = v59; sb_context_retain(v52); *(v64 + 24) = v52; v65 = __CFADD__((*v193)++, 1); if ( v65 ) j____assert_rtn_18("sb_profile_retain", "profile.c", 91, "profile->refcnt > 0"); *(v64 + 16) = v193; *(v64 + 48) = *(v193 + 8); v66 = v193; if ( v47 ) { sb_pattern_varset_retain(v47); *(v64 + 32) = v47; sb_profile_set_pattern_variables(*(v64 + 16), v47); v66 = *(v64 + 16); } *(v64 + 56) = v62; scheme_set_external_data(v62, v64); if ( (*(v64 + 12) & 4) != 0 ) scheme_enable_full_backtraces(v62, 1LL); scheme_set_output_port_string(v62, 0LL, 0LL, ""); if ( *(v64 + 64) ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 288, "parser->sym_condition == NULL"); if ( *(v64 + 72) ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 289, "parser->sym_operation == NULL"); if ( *(v64 + 80) ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 290, "parser->sym_modifier == NULL"); if ( *(v64 + 88) ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 291, "parser->sym_msgfilter == NULL"); if ( *(v64 + 96) ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 292, "parser->sym_deprecated == NULL"); v190 = v60; if ( *(v64 + 104) ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 293, "parser->sym_nop == NULL"); v191 = v66; v67 = *(v64 + 56); v68 = *(v67 + 4616); v69 = mk_symbol(v67, "condition"); *(v64 + 64) = gc_protect(v67, 0LL, v69); v70 = mk_symbol(v67, "operation"); *(v64 + 72) = gc_protect(v67, 0LL, v70); v71 = mk_symbol(v67, "modifier"); *(v64 + 80) = gc_protect(v67, 0LL, v71); v72 = mk_symbol(v67, "message-filter"); *(v64 + 88) = gc_protect(v67, 0LL, v72); v73 = mk_symbol(v67, "deprecated"); *(v64 + 96) = gc_protect(v67, 0LL, v73); v74 = mk_symbol(v67, "no-op"); *(v64 + 104) = gc_protect(v67, 0LL, v74); v184 = *(v64 + 64); _define_list(v67, "*sbpl-type-symbols*"); gc_unprotect(v67, 6LL); if ( *(v67 + 4616) != v68 ) j____assert_rtn_18("define_type_symbols", "sbpl_parser.c", 313, "sc->gc_protect_lst == initial_gc_protect_lst"); v75 = mk_foreign_func(v62, version); _define_symbol(v62, "version", v75); define_action(v64, "allow", 1LL); define_action(v64, "deny", 0LL); define_action(v64, "delegate", 2LL); v76 = 0; v77 = 0LL; v219[0] = &OBJC_CLASS_____NSStackBlock__; v219[1] = 0x40000000LL; v220 = __sb_sbpl_parser_init_scheme_block_invoke; v221 = &__block_descriptor_tmp_22_3323; v222 = v62; LOBYTE(v235) = 0; v78 = &modifier_info; do { if ( *v78 ) { (v220)(v219, *v78, v77, &v235); v76 = v235; } if ( v77 > 0x12 ) break; ++v77; v78 += 4; } while ( (v76 & 1) == 0 ); v228 = &OBJC_CLASS_____NSStackBlock__; v229 = 0x40000000LL; v230 = __sb_sbpl_parser_init_scheme_block_invoke_3; v231 = &__block_descriptor_tmp_27_3324; v232 = v62; v233 = v64; v79 = mk_foreign_block(v62, &v228); _define_symbol(v62, "with", v79); v80 = mk_foreign_func(v62, operation_expand); _define_symbol(v62, "operation-expand", v80); v81 = mk_foreign_func(v62, operations_allowed_by_default); _define_symbol(v62, "operations-allowed-by-default", v81); v82 = 0LL; v215[0] = &OBJC_CLASS_____NSStackBlock__; v215[1] = 0x40000000LL; v216 = __sb_sbpl_parser_init_scheme_block_invoke_4; v217 = &__block_descriptor_tmp_30_3328; v218 = v64; LOBYTE(v235) = 0; do { (v216)(v215, operation_names[v82], v82, &v235); if ( v235 ) break; v65 = v82++ >= 0xC3; } while ( !v65 ); v83 = 0; v84 = 0LL; v211[0] = &OBJC_CLASS_____NSStackBlock__; v211[1] = 0x40000000LL; v212 = __sb_sbpl_parser_init_scheme_block_invoke_5; v213 = &__block_descriptor_tmp_31_11; v214 = v64; LOBYTE(v235) = 0; v85 = &filter_info; do { if ( *v85 ) { (v212)(v211, *v85, v84, &v235); v83 = v235; } if ( v84 > 0x5C ) break; ++v84; v85 += 4; } while ( (v83 & 1) == 0 ); define_combination_filter(v64, "require-all", sb_condition_conjunction); define_combination_filter(v64, "require-any", sb_condition_disjunction); v86 = *(v64 + 56); *&v235 = &OBJC_CLASS_____NSStackBlock__; *(&v235 + 1) = 0x40000000LL; *&v236 = __define_wrapper_filter_block_invoke; *(&v236 + 1) = &__block_descriptor_tmp_203_0; *&v237 = "require-not"; *(&v237 + 1) = v64; *&v238 = sb_condition_negation; v87 = mk_foreign_block(v86, &v235); _define_symbol(v86, "require-not", v87); mk_foreign_func(v62, sbpl_enter_message_filter_context); _define_symbol(v62, "%sbpl-enter-message-filter-context", v184); mk_foreign_func(v62, sbpl_leave_message_filter_context); _define_symbol(v62, "%sbpl-leave-message-filter-context", v185); v210[0] = &OBJC_CLASS_____NSStackBlock__; v210[1] = 0x40000000LL; v210[2] = __sb_sbpl_parser_init_scheme_block_invoke_6; v210[3] = &__block_descriptor_tmp_38_3336; v210[4] = v191; v210[5] = v62; v88 = mk_foreign_block(v62, v210); _define_symbol(v62, "disable-callouts", v88); v209[0] = &OBJC_CLASS_____NSStackBlock__; v209[1] = 0x40000000LL; v209[2] = __sb_sbpl_parser_init_scheme_block_invoke_7; v209[3] = &__block_descriptor_tmp_40_3338; v209[4] = v191; v209[5] = v62; v89 = mk_foreign_block(v62, v209); _define_symbol(v62, "disable-full-symbolication", v89); v208[0] = &OBJC_CLASS_____NSStackBlock__; v208[1] = 0x40000000LL; v208[2] = __sb_sbpl_parser_init_scheme_block_invoke_8; v208[3] = &__block_descriptor_tmp_42_3340; v208[4] = v191; v208[5] = v62; mk_foreign_block(v62, v208); _define_symbol(v62, "%extends-protobox", v186); v90 = mk_foreign_func(v62, regex_quote); _define_symbol(v62, "regex-quote", v90); v91 = mk_foreign_func(v62, variable_quote); _define_symbol(v62, "variable-quote", v91); v207[0] = &OBJC_CLASS_____NSStackBlock__; v207[1] = 0x40000000LL; v207[2] = __sb_sbpl_parser_init_scheme_block_invoke_9; v207[3] = &__block_descriptor_tmp_48_3344; v207[4] = v62; v207[5] = v64; v92 = mk_foreign_block(v62, v207); _define_symbol(v62, "sbpl-filter?", v92); v206[0] = &OBJC_CLASS_____NSStackBlock__; v206[1] = 0x40000000LL; v206[2] = __sb_sbpl_parser_init_scheme_block_invoke_11; v206[3] = &__block_descriptor_tmp_51_15; v206[4] = v62; v206[5] = v64; v93 = mk_foreign_block(v62, v206); _define_symbol(v62, "sbpl-modifier?", v93); v205[0] = &OBJC_CLASS_____NSStackBlock__; v205[1] = 0x40000000LL; v205[2] = __sb_sbpl_parser_init_scheme_block_invoke_13; v205[3] = &__block_descriptor_tmp_54_3347; v205[4] = v62; v205[5] = v64; v94 = mk_foreign_block(v62, v205); _define_symbol(v62, "sbpl-operation?", v94); v204[0] = &OBJC_CLASS_____NSStackBlock__; v204[1] = 0x40000000LL; v204[2] = __sb_sbpl_parser_init_scheme_block_invoke_15; v204[3] = &__block_descriptor_tmp_57_6; v204[4] = v62; v204[5] = v64; v95 = mk_foreign_block(v62, v204); _define_symbol(v62, "sbpl-message-filter?", v95); v96 = mk_foreign_func(v62, sbpl_filter_eqv); _define_symbol(v62, "sbpl-filter-eqv?", v96); v97 = mk_foreign_func(v62, sbpl_filter_eqv); _define_symbol(v62, "sbpl-message-filter-eqv?", v97); v98 = mk_foreign_func(v62, sbpl_operation_eqv); _define_symbol(v62, "sbpl-operation-eqv?", v98); v203[0] = &OBJC_CLASS_____NSStackBlock__; v203[1] = 0x40000000LL; v203[2] = __sb_sbpl_parser_init_scheme_block_invoke_17; v203[3] = &__block_descriptor_tmp_62_3353; v203[4] = v64; v203[5] = v62; mk_foreign_block(v62, v203); _define_symbol(v62, "%sbpl-modifier-properties", v187); v202[0] = &OBJC_CLASS_____NSStackBlock__; v202[1] = 0x40000000LL; v202[2] = __sb_sbpl_parser_init_scheme_block_invoke_18; v202[3] = &__block_descriptor_tmp_64_8; v202[4] = v64; v99 = mk_foreign_block(v62, v202); _define_symbol(v62, "sbpl-operation-can-return?", v99); v201[0] = &OBJC_CLASS_____NSStackBlock__; v201[1] = 0x40000000LL; v201[2] = __sb_sbpl_parser_init_scheme_block_invoke_19; v201[3] = &__block_descriptor_tmp_67_9; v201[4] = v64; v100 = mk_foreign_block(v62, v201); _define_symbol(v62, "sbpl-version-compatible?", v100); v101 = mk_string(v62, "com.apple.sandbox.container"); _define_symbol(v62, "*ios-sandbox-container*", v101); v102 = mk_string(v62, "com.apple.sandbox.application-group"); _define_symbol(v62, "*ios-sandbox-application-group*", v102); v103 = mk_string(v62, "com.apple.sandbox.system-container"); _define_symbol(v62, "*ios-sandbox-system-container*", v103); v104 = mk_string(v62, "com.apple.sandbox.system-group"); _define_symbol(v62, "*ios-sandbox-system-group*", v104); v105 = mk_string(v62, "mac"); _define_symbol(v62, "*target-platform*", v105); v106 = mk_string(v62, "/System/Library/Sandbox/Profiles"); mk_string(v62, "/usr/share/sandbox"); v188 = v106; _define_list(v62, "*default-import-search-paths*"); v107 = mk_string(v62, "com.apple.sandbox.executable"); _define_symbol(v62, "*sandbox-executable-bundle*", v107); v108 = 53LL; if ( (*(v64 + 12) & 2) == 0 ) v108 = 59LL; _define_symbol(v62, "*apply-implicit-policy*", v62[v108]); v241 = 0u; v242 = 0u; v239 = 0u; v240 = 0u; v237 = 0u; v238 = 0u; v235 = 0u; v236 = 0u; v109 = v62[87]; scheme_set_error_port_string(v62, &v235, &v243, ""); if ( scheme_load_string(v62, init_scm, "") || scheme_load_string(v62, sbpl_scm, "") || scheme_load_string(v62, policy_scm, "") ) { v110 = *(v64 + 24); v111 = j__strspn_1(&v235, " -"); sb_error_set_with_format(v110, &v194, "error loading standard libraries: %s", &v235 + v111); if ( !v194 ) j____assert_rtn_18("sb_sbpl_parser_new", "sbpl_parser.c", 2566, "errorp == NULL || *errorp != NULL"); if ( v200 ) { v112 = &v200; LABEL_95: sb_sbpl_parser_release(v112); LABEL_146: sb_profile_release(&v198); LABEL_147: if ( v47 ) sb_pattern_varset_release(&v199); goto LABEL_149; } LABEL_145: scheme_deinit(v62); j__free_34(v62); goto LABEL_146; } v62[87] = v109; v148 = *(v64 + 56); v149 = symname(*(v148 + 648)); v223 = &OBJC_CLASS_____NSStackBlock__; v224 = 0x40000000LL; v225 = __define_error_handler_block_invoke; v226 = &__block_descriptor_tmp_229_1; v227 = v64; v150 = mk_foreign_block(v148, &v223); _define_symbol(v148, v149, v150); v151 = *(v64 + 56); v152 = mk_foreign_block(v151, &__block_literal_global_3380); _define_symbol(v151, "error", v152); v153 = *(v64 + 56); v223 = &OBJC_CLASS_____NSStackBlock__; v224 = 0x40000000LL; v225 = __define_on_open_handler_block_invoke; v226 = &__block_descriptor_tmp_254; v227 = v64; mk_foreign_block(v153, &v223); _define_symbol(v153, "%notify-file-open", v188); if ( v190 ) { v154 = xpc2sc(v62, v190); _define_symbol(v62, "*params*", v154); if ( j__xpc_get_type_15(v190) == &OBJC_CLASS___OS_xpc_dictionary ) { v155 = j__xpc_dictionary_get_value_11(v190, "entitlements"); if ( v155 ) { v156 = xpc2sc(v62, v155); _define_symbol(v62, "*entitlements*", v156); } } } else { _define_symbol(v62, "*params*", v62[47]); } v157 = v200; v197 = v200; if ( !v200 ) goto LABEL_146; if ( v47 ) sb_profile_set_pattern_variables(v193, v47); v192 = v157; if ( *(v19 + 1) ) { v158 = 0LL; for ( i = 0LL; i < *(v19 + 1); ++i ) { v160 = *(v19 + 1) + v158; v161 = *(*v160 + 24LL); j__fseeko_1(*(v160 + 8), *(v160 + 16), 0); v162 = *(v160 + 8); v157 = v192; if ( !v161 ) { j__bzero_30(&v235, 0x400uLL); v163 = j__fileno_5(v162); if ( (v163 & 0x80000000) == 0 && !j__fcntl_13(v163, 50, &v235) ) { v166 = j__strrchr_14(&v235, 47); if ( v166 ) v165 = (v166 + 1); else v165 = &v235; v164 = v192; goto LABEL_182; } v161 = ""; } v164 = v192; v165 = v161; LABEL_182: if ( (_parse_file(v164, v165, v162, &v194) & 1) == 0 ) goto LABEL_239; v158 += 48LL; } } if ( *(v157 + 10) ) { v167 = *(v157 + 24); v168 = sb_error_new(v167, "parser already finalized", 0LL); v169 = *(v167 + 240); if ( v169 ) (*(v169 + 16))(v169, v168); v194 = v168; goto LABEL_239; } v170 = *(v157 + 56); *(v157 + 112) = 0LL; v171 = scheme_global(v170, "%finalize", v189); scheme_call(v170, v171, *(v170 + 376)); if ( *(v170 + 16) ) { v194 = *(v157 + 112); LABEL_239: v112 = &v197; goto LABEL_95; } *(v157 + 10) = 1; v172 = *(v19 + 3); v173 = *(v193 + 24); v228 = &OBJC_CLASS_____NSStackBlock__; v229 = 0x40000000LL; v230 = __sb_bytecode_output_profile_block_invoke; v231 = &__block_descriptor_tmp_100_7; v232 = v193; v233 = v172; v234 = &v194; j__bzero_30(&v236, 0xE90uLL); *&v235 = v173; *(&v235 + 1) = sb_mutable_buffer_new(v173, &v194); if ( !*(&v235 + 1) || (v247[0] = sb_condition_list_new(v173, &v194)) == 0 ) { v176 = 0; LABEL_218: if ( v236 ) j__free_34(v236); v178 = v244; if ( v244 ) { if ( !v245 ) goto LABEL_225; v179 = 0LL; for ( j = 0LL; j < v245; ++j ) { sb_buffer_release(&v244[v179]); v179 += 16LL; } v178 = v244; if ( v244 ) LABEL_225: j__free_34(v178); v245 = 0; } v181 = v249; if ( v249 ) { v182 = &v248; do { v210[0] = *v182; *v182++ = 0LL; sb_buffer_release(v210); --v181; } while ( v181 ); } if ( (v176 & 1) != 0 ) { immutable = sb_mutable_buffer_make_immutable(&v235 + 8, &v194); if ( immutable ) { v183 = *(v192 + 4); if ( v183 < *(v19 + 10) ) { sb_error_set_with_format( *(v19 + 2), &v194, "SBPL version %u or greater is required (got version %u)", *(v19 + 10), v183); sb_buffer_release(&immutable); } } } else { if ( *(&v235 + 1) ) sb_mutable_buffer_release(&v235 + 8); if ( v250 ) v194 = v250; immutable = 0LL; } goto LABEL_239; } v174 = *(v173 + 28); if ( v174 ) { v175 = j__calloc_26(*(v173 + 28), 0x18uLL); if ( !v175 ) { v177 = *(v173 + 240); if ( v177 ) (*(v177 + 16))(v177, &sb_error_out_of_memory_oom_error); v176 = 0; v194 = &sb_error_out_of_memory_oom_error; *&v236 = 0LL; LABEL_217: sb_condition_list_release(v247); goto LABEL_218; } *&v236 = v175; *(&v236 + 1) = v174; } j__memset_24(&v246, 255, 0x400uLL); v176 = (v230)(&v228, &v235); if ( !v247[0] ) goto LABEL_218; goto LABEL_217; } v114 = *(v48 + 240); if ( v114 ) (*(v114 + 16))(v114, &sb_error_out_of_memory_oom_error); v194 = &sb_error_out_of_memory_oom_error; LABEL_149: v137 = immutable; if ( !immutable ) goto LABEL_107; *&v235 = immutable; if ( *immutable != 1 ) { if ( !*immutable ) j____assert_rtn_18("sb_buffer_convert_iovec", "buffer.c", 329, "buffer->refcnt > 0"); v138 = *(immutable + 16); goto LABEL_154; } v138 = *(immutable + 16); if ( (v138 & 0x200000000000000LL) == 0 ) { LABEL_154: v139 = *(immutable + 8); v140 = j__malloc_34(v138 & 0xFFFFFFFFFFFFFFLL); if ( v140 ) { v141 = v140; j__memcpy_31(v140, *(v137 + 24), v138 & 0xFFFFFFFFFFFFFFLL); v138 = *(v137 + 16); sb_buffer_release(&v235); goto LABEL_160; } v142 = *(v139 + 240); if ( v142 ) (*(v142 + 16))(v142, &sb_error_out_of_memory_oom_error); v194 = &sb_error_out_of_memory_oom_error; sb_buffer_release(&v235); LABEL_107: v25 = v194; if ( !v194 ) goto LABEL_109; goto LABEL_108; } v141 = *(immutable + 24); *(immutable + 16) = v138 & 0xFDFFFFFFFFFFFFFFLL; sb_buffer_release(&v235); if ( !v141 ) goto LABEL_107; LABEL_160: v143 = j__malloc_34(0x18uLL); if ( !v143 ) { j__free_34(v141); v14 = v195; v144 = v195[30]; if ( v144 ) (*(v144 + 16))(v144, &sb_error_out_of_memory_oom_error); LABEL_14: v25 = &sb_error_out_of_memory_oom_error; LABEL_15: v194 = &sb_error_out_of_memory_oom_error; LABEL_108: j__asprintf_11(v2, "%s", *v25); v25 = 0LL; goto LABEL_109; } v25 = v143; *v143 = 0LL; v143[1] = v141; v143[2] = (v138 & 0xFFFFFFFFFFFFFFLL); if ( v194 ) j____assert_rtn_18("compile", "compile.c", 137, "error == NULL"); LABEL_109: if ( _14 ) j__xpc_release_14(_14); if ( v19 ) { if ( !*v19 ) j____assert_rtn_18("sb_program_release", "program.c", 175, "program->refcnt > 0"); v115 = *v19 - 1; *v19 = v115; if ( !v115 ) { sb_context_release(v19 + 16); for ( k = *(v19 + 1); k; *(v19 + 1) = k ) { v117 = (k - 1); v118 = *(v19 + 1); v119 = (v118 + 48LL * v117); *&v235 = *v119; *v119 = 0LL; sb_buffer_release(&v235); v121 = v119[3]; v120 = v119 + 3; if ( v121 ) sb_buffer_release(v120); v122 = v118 + 48 * v117; v125 = *(v122 + 32); v123 = (v122 + 32); v124 = v125; if ( v125 ) { *&v235 = v124; *v123 = 0LL; sb_buffer_release(&v235); } v126 = v118 + 48 * v117; v129 = *(v126 + 8); v128 = (v126 + 8); v127 = v129; if ( v129 ) { j__funlockfile(v127); if ( *(v118 + 48 * v117 + 40) ) j__fclose_16(*v128); *v128 = 0LL; } v130 = *(v19 + 1); if ( k != v130 ) { j__memmove_25((*(v19 + 1) + 48 * v117), (*(v19 + 1) + 48 * v117 + 48), 48 * (v130 + ~v117)); k = *(v19 + 1); } --k; } v131 = *(v19 + 1); if ( v131 ) j__free_34(v131); if ( *(v19 + 3) ) sb_condition_list_release(v19 + 24); v132 = *(v19 + 4); if ( v132 ) j__xpc_release_14(v132); j__free_34(v19); } } if ( v14 ) sb_context_release(&v195); return v25; }