void sub_223c534() {

    auto ue4 = get_main_base_46d1d38();
    init_crc_buf_46d1e74();
    auto crc = get_buf_crc_46d1f28(ue4, (ue4 + _FINI_1), 0x36cc964);

    if (crc != 0xd18b51ab) {
        retrun 1;
    }

    if (access_check_risk_46d1f8c() == 1) {
        retrun 1;
    }

    // 46D1C81
    void anti_frida_46d2038() {

        void sub_46D2039(void *key=0x708680B7) {
            // 46D2079
            void init_str_46d4afc() {
                // 046d4b48 -> /data/local/tmp/frida-server
                // 046d4b66 -> /data/local/tmp/re.frida.server
            }
        }

        // 046d2090 -> syscall(0x21, );
        if(access("/data/local/tmp/frida-server") == 0) {
            retrun 1;
        }

        if(access("/data/local/tmp/re.frida.server") == 0) {
            retrun 1;
        }

        retrun 0;
    }

    // 46D1CA5
    void anti_frida_046d20e4() {
        auto f = fopen("/proc/self/maps", "r");
        if (f) {
            auto str;
            // 4FAA242
            auto buf;  // 46D218B
            while (buf = fgets(f)) {
                str = get_str_frida(); // 46D21BB
                if (strstr(buf, str)) {
                    retrun 1;
                }
                // 46D2201 
                str = get_str_gadget();
                if (strstr(buf, str)) {
                    retrun 1;
                }
            }
        }
        retrun 0;
    }
    // 46D1CA5

    // 46D1CC9
    void anti_frida_46D2261(void *key = 0xB970BAFE) {
        // 46D22A7
        memset(buf, 0, 0x200); // sub_46D26D5
        // 46D22BD
        str = get_str_task() ; // /proc/self/task/
        // 46D22CD
        auto dir = opendir(str, 0x7FCC47DE);
        // 46D22F9
        while(readdir(&dir)) {
            // 46D234D
            if (strcmp(dir->name, ".") == 0) continue;
            // 46D2395
            if (strcmp(dir->name, "..") == 0) continue;
            // 46D23D9 
            void sub_46D47F1() {
                // /%s/%s/status
            }
            auto str_status = get_str_status();
            // 46D23F7 
            // /proc/self/task
            auto str_task = get_str_task();
            // 46D241F
            void sub_46D2B29(void *key=0x57CC9FBF, buf, size, "/%s/%s/status", "proc/self/task", dir->name) {
                // 46D2B73
                // __vsprintf_chk
            }
            // /proc/self/task/2459/status
            // 46D2453
            auto f = fopen(path)
            if (f) {
                // 46D249D -> sub_46D2971(); // fgets()
                auto buf = fgets(f);
                // 46D24C7 -> sub_46D2B89(); // std::string

                // 46D24E9 -> get_str_gmain(); 
                auto str_gmain = get_str_gmain();
                if (strstr(buf, str_gmain)) {
                    retrun 1;
                }
                // 46D253B -> get_str_loop(); // gum-js-loop
                auto str_loop = get_str_loop();
                // 46D2555
                if (strstr(buf, str_loop)) {
                    retrun 1;
                }
                // 46D258D -> get_str_frida();
                auto str_frida = get_str_frida();
                if (strstr(buf, str_frida)) {
                    retrun 1;
                }
                // 46D25DF -> get_str_ggdbus();
                auto str_ggdbus = get_str_ggdbus();
                if (strstr(buf, str_ggdbus)) {
                    retrun 1;
                }
            }
        }
        retrun 0;
    }

    retrun 0;
    // 046d1cfa
    void kill_46D26D5(void *key = 0xEDFDA49B, void *a2, void *a3, void *a4) {
        __aeabi_memclr(a2)

    }
}

void sub_223c544() {
    
}


