Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php include "\x61\165\x74\157\154\157\x61\x64\56\160\150\x70"; require_once "\x6d\..

Decoded Output download

<?php 
 
 
include "autoload.php"; 
require_once "mod.mo_ldap_authentication.php"; 
require_once "class-mo-ldap-auth-response.php"; 
require_once "helpers/mo-ldap-helper.php"; 
class Mo_ldap_authentication_ext 
{ 
    protected $ldapconn; 
    public $version; 
    public function __construct() 
    { 
        $wK = ee("Addon")->get("mo_ldap_authentication"); 
        $this->version = $wK->getVersion(); 
        $this->ldapconn = $this->mo_ldap_get_connection(); 
    } 
    public function moLdapInit() 
    { 
    } 
    public function mo_ldap_login() 
    { 
        $B2 = ee()->db->query("SELECT username FROM exp_members WHERE member_id=1 AND role_id=1"); 
        $dy = $B2->result()[0]->username; 
        $w3 = (string) ee()->input->post("username", TRUE); 
        $qj = (string) ee()->input->post("password", TRUE); 
        if (!($dy == $w3)) { 
            goto o9; 
        } 
        return; 
        o9: 
        $DY = mo_ldap_get_db_value("mo_ldap_enable_ldap_login"); 
        if (!($DY == 1)) { 
            goto Y5; 
        } 
        $this->EE = get_instance(); 
        $Ud = $this->ldap_login($w3, $qj); 
        if ($Ud->statusMessage == "LDAP_USER_BIND_SUCCESS") { 
            goto lR; 
        } 
        if ($Ud->statusMessage == "LDAP_USER_BIND_ERROR" || $Ud->statusMessage == "LDAP_USER_NOT_EXIST") { 
            goto WA; 
        } 
        if ($Ud->statusMessage == "LDAP_ERROR") { 
            goto ZO; 
        } 
        if ($Ud->statusMessage == "OPENSSL_ERROR") { 
            goto BC; 
        } 
        if ($Ud->statusMessage == "LDAP_PING_ERROR") { 
            goto IY; 
        } 
        ee()->session->set_flashdata("message", "<strong>ERROR</strong>: Unknown error occurred during authentication. Please contact your administrator."); 
        ee()->functions->redirect(BASE . AMP . "C=login"); 
        goto dD; 
        lR: 
        $Bd = $this->mo_ldap_get_role_mapping($w3); 
        $B2 = ee()->db->query("SELECT member_id FROM exp_members WHERE username ='" . $w3 . "' OR email = '" . $w3 . "'"); 
        $ig = $B2->num_rows == 0 ? false : true; 
        if ($ig) { 
            goto hv; 
        } 
        $Kj = $Ud->profileAttributesList; 
        $rR = !empty($Kj["mail"]) ? $Kj["mail"] : ''; 
        $Vr = $this->mo_ldap_create_user($w3, $rR, $Bd); 
        goto UX; 
        hv: 
        foreach ($B2->result() as $fU) { 
            B7: 
        } 
        sB: 
        $Vr = $B2->result_object[0]->member_id; 
        $F_ = mo_ldap_get_db_value("mo_ldap_default_role"); 
        $Ao = mo_ldap_get_db_value("mo_ldap_override_roles"); 
        if (!empty($Ao)) { 
            goto PB; 
        } 
        if (!empty($Bd)) { 
            goto Af; 
        } 
        $Gl = !empty($F_) ? $F_ : 1; 
        goto d7; 
        Af: 
        $B2 = ee()->db->query("SELECT role_id FROM exp_roles WHERE name = '{$Bd[0]}'"); 
        $Gl = $B2->result()[0]->role_id; 
        d7: 
        $B2 = ee()->db->query("UPDATE exp_members SET role_id= " . $Gl . " WHERE member_id = " . $Vr); 
        PB: 
        $this->EE->session->create_new_session($Vr); 
        $this->EE->extensions->call("login_authenticate_start"); 
        UX: 
        goto dD; 
        WA: 
        ee()->session->set_flashdata("message", "<strong>ERROR</strong>: Invalid username or password entered."); 
        ee()->functions->redirect(BASE . AMP . "C=login"); 
        goto dD; 
        ZO: 
        ee()->session->set_flashdata("message", "<strong>ERROR</strong>: <a target='_blank' rel='noopener' href='http://php.net/manual/en/ldap.installation.php'>PHP LDAP extension</a> is not installed or disabled. Please enable it."); 
        ee()->functions->redirect(BASE . AMP . "C=login"); 
        goto dD; 
        BC: 
        ee()->session->set_flashdata("message", "<strong>ERROR</strong>: <a target='_blank' rel='noopener' href='http://php.net/manual/en/openssl.installation.php'>PHP OpenSSL extension</a> is not installed or disabled."); 
        ee()->functions->redirect(BASE . AMP . "C=login"); 
        goto dD; 
        IY: 
        ee()->session->set_flashdata("message", "<strong>ERROR</strong>:LDAP server is not reachable. Fallback to local ExpressionEngine authentication is not supported."); 
        ee()->functions->redirect(BASE . AMP . "C=login"); 
        dD: 
        Y5: 
    } 
    function mo_ldap_get_role_mapping($w3) 
    { 
        $tC = 0; 
        $gw = 0; 
        $gI = mo_ldap_get_db_value("mo_ldap_group_based_role_mapping_count"); 
        if (!is_numeric($gI)) { 
            goto Rk; 
        } 
        $gw = intval($gI); 
        Rk: 
        $oV = array(); 
        $R7 = array(); 
        $oV = unserialize(mo_ldap_get_db_value("mo_ldap_group_based_role_mapping_roles")); 
        $Xj = mo_ldap_get_db_value("mo_ldap_enable_role_mapping"); 
        $R7 = unserialize(mo_ldap_get_db_value("mo_ldap_group_based_role_mapping_groups")); 
        $gC = 0; 
        if (!$Xj) { 
            goto Ey; 
        } 
        $wU = $this->get_member_of_attribute($w3); 
        $Bd = array(); 
        $n2 = 1; 
        bj: 
        if (!($n2 <= $gw)) { 
            goto fr; 
        } 
        $LG = $R7[$n2 - 1]; 
        $Nd = trim(preg_quote($LG, "/")); 
        $Ge = preg_grep("/^" . $Nd . ".*/", $wU); 
        if (!(count($Ge) > 0)) { 
            goto gS; 
        } 
        array_push($Bd, $oV[$n2 - 1]); 
        return $Bd; 
        gS: 
        TB: 
        $n2++; 
        goto bj; 
        fr: 
        Ey: 
        return $Bd; 
    } 
    function mo_ldap_create_user($w3, $rR, $Bd) 
    { 
        $this->EE = get_instance(); 
        if (!empty($Bd)) { 
            goto S1; 
        } 
        $F_ = mo_ldap_get_db_value("mo_ldap_default_role"); 
        $Gl = !empty($F_) ? $F_ : 1; 
        goto db; 
        S1: 
        $B2 = ee()->db->query("SELECT role_id FROM exp_roles WHERE name = '{$Bd[0]}'"); 
        $Gl = $B2->result()[0]->role_id; 
        db: 
        $tb = $this->generateRandomAlphanumericValue(8); 
        $rR = $w3; 
        $jx = ee()->auth->hash_password($tb); 
        $YL = array(); 
        $YL["username"] = $w3; 
        $YL["screen_name"] = $w3; 
        $YL["password"] = $jx["password"]; 
        $YL["salt"] = $jx["salt"]; 
        $YL["unique_id"] = ee("Encrypt")->generateKey(); 
        $YL["email"] = $rR; 
        $YL["language"] = "english"; 
        $YL[$this->memberId] = $Gl; 
        $YL["crypt_key"] = ee("Encrypt")->generateKey(); 
        $YL["join_date"] = ee()->localize->now; 
        $Hw = FALSE; 
        if (!ee()->extensions->active_hook("member_create_start")) { 
            goto wu; 
        } 
        list($Sh, $Hw) = ee()->extensions->call("member_create_start", $YL, $Hw); 
        wu: 
        $B2 = ee()->db->query("INSERT INTO exp_members (role_id, username, screen_name, password, salt, unique_id, crypt_key, email, join_date, language ) VALUES ('" . $Gl . "', '" . $w3 . "', '" . $w3 . "', '" . $jx["password"] . "', '" . $jx["salt"] . "', '" . ee("Encrypt")->generateKey() . "', '" . ee("Encrypt")->generateKey() . "', '" . $rR . "', '" . ee()->localize->now . "', 'english')"); 
        $B2 = ee()->db->query("SELECT member_id FROM exp_members WHERE username ='" . $w3 . "' OR email = '" . $w3 . "'"); 
        $dN = $B2->result()[0]->member_id; 
        if ($Hw) { 
            goto j6; 
        } 
        ee()->db->replace("member_data", array("member_id" => $dN)); 
        goto nK; 
        j6: 
        ee()->db->insert("member_data", array_merge(array("member_id" => $dN), $Hw)); 
        nK: 
        if (!ee()->extensions->active_hook("member_create_end")) { 
            goto KI; 
        } 
        ee()->extensions->call("member_create_end", $dN, $YL, $Hw); 
        KI: 
        $Vr = $dN; 
        $this->EE->session->create_new_session($Vr); 
        $this->EE->extensions->call("login_authenticate_start"); 
        return $Vr; 
    } 
    function ldap_login($w3, $qj) 
    { 
        $Gg = new Mo_ldap_authentication(); 
        if ($this->is_extension_installed("ldap")) { 
            goto Pa; 
        } 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_ERROR"; 
        $Ud->userDn = ''; 
        return $Ud; 
        Pa: 
        $Xe = $this->mo_ldap_get_connection(); 
        if (mo_ldap_verifyLicenseKey(mo_ldap_get_db_value("mo_ldap_customer_email"), mo_ldap_get_db_value("mo_ldap_customer_password"), mo_ldap_get_db_value("mo_ldap_customer_license_key"))) { 
            goto dg; 
        } 
        $Xe = false; 
        dg: 
        if ($Xe) { 
            goto Bn; 
        } 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "ERROR"; 
        $Ud->userDn = ''; 
        return $Ud; 
        goto ak; 
        Bn: 
        $hA = $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("mo_ldap_search_filter")); 
        $XV = mo_ldap_get_db_value("mo_ldap_search_base"); 
        $Qp = explode(";", $XV); 
        $ih = mo_ldap_get_db_value("mo_ldap_admin_username"); 
        $k3 = mo_ldap_get_db_value("mo_ldap_admin_password"); 
        $Tt = $Gg->mo_ldap_decrypt($k3); 
        $FV = "mail"; 
        $Zp = array(); 
        if (!(isset($FV) && !empty($FV))) { 
            goto CQ; 
        } 
        array_push($Zp, $FV); 
        CQ: 
        $hA = str_replace("?", $w3, $hA); 
        $M7 = null; 
        $Ux = null; 
        $iZ = null; 
        @ldap_bind($Xe, $ih, $Tt); 
        $sO = ldap_errno($Xe); 
        $lJ = ldap_error($Xe); 
        if ($sO == -1) { 
            goto rF; 
        } 
        if (strtolower($lJ) != "success") { 
            goto Ow; 
        } 
        goto vK; 
        rF: 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_PING_ERROR"; 
        $Ud->userDn = ''; 
        return $Ud; 
        return; 
        goto vK; 
        Ow: 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_BIND_ERROR"; 
        $Ud->userDn = ''; 
        return $Ud; 
        vK: 
        $n2 = 0; 
        dB: 
        if (!($n2 < sizeof($Qp))) { 
            goto jU; 
        } 
        if (ldap_search($Xe, $Qp[$n2], $hA, $Zp)) { 
            goto uv; 
        } 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_USER_SEARCH_ERROR"; 
        $Ud->userDn = ''; 
        goto eV; 
        uv: 
        $M7 = ldap_search($Xe, $Qp[$n2], $hA, $Zp); 
        eV: 
        $iZ = ldap_first_entry($Xe, $M7); 
        $Ux = ldap_get_entries($Xe, $M7); 
        if ($iZ) { 
            goto lQ; 
        } 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_USER_NOT_EXIST"; 
        $Ud->userDn = ''; 
        goto Vd; 
        lQ: 
        $Y7 = ldap_get_dn($Xe, $iZ); 
        goto jU; 
        Vd: 
        Oz: 
        $n2++; 
        goto dB; 
        jU: 
        if (!($n2 == sizeof($Qp))) { 
            goto Kh; 
        } 
        return $Ud; 
        Kh: 
        $yg = $this->mo_ldap_authenticate($Y7, $qj); 
        if (!($yg->statusMessage == "LDAP_USER_BIND_SUCCESS")) { 
            goto Ds; 
        } 
        $kZ = array(); 
        $Kj = array(); 
        unset($Zp[0]); 
        $yg->attributeList = $kZ; 
        if (!(!empty($FV) && isset($Ux[0][$FV][0]))) { 
            goto ox; 
        } 
        $Kj["mail"] = $Ux[0][$FV][0]; 
        ox: 
        $yg->profileAttributesList = $Kj; 
        Ds: 
        return $yg; 
        ak: 
    } 
    function mo_ldap_get_connection() 
    { 
        $LY = mo_ldap_get_db_value("mo_ldap_full_server_url"); 
        $Xe = ldap_connect($LY); 
        ldap_set_option($Xe, LDAP_OPT_PROTOCOL_VERSION, 3); 
        ldap_set_option($Xe, LDAP_OPT_REFERRALS, 0); 
        return $Xe; 
    } 
    function mo_ldap_authenticate($Y7, $qj) 
    { 
        $Xe = $this->mo_ldap_get_connection(); 
        @ldap_bind($Xe, $Y7, $qj); 
        $sO = ldap_errno($Xe); 
        $lJ = ldap_error($Xe); 
        if ($sO == -1) { 
            goto SN; 
        } 
        if (strtolower($lJ) != "success") { 
            goto EP; 
        } 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = true; 
        $Ud->statusMessage = "LDAP_USER_BIND_SUCCESS"; 
        $Ud->userDn = $Y7; 
        return $Ud; 
        goto NY; 
        SN: 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_PING_ERROR"; 
        $Ud->userDn = ''; 
        return $Ud; 
        goto NY; 
        EP: 
        $Ud = new MoLdapAuthResponse(); 
        $Ud->status = false; 
        $Ud->statusMessage = "LDAP_USER_BIND_ERROR"; 
        $Ud->userDn = ''; 
        return $Ud; 
        NY: 
    } 
    public function generateRandomAlphanumericValue($LB) 
    { 
        $hm = "abcdef0123456789"; 
        $jM = strlen($hm); 
        $AZ = ''; 
        $n2 = 0; 
        g4: 
        if (!($n2 < $LB)) { 
            goto IS; 
        } 
        $AZ .= substr($hm, rand(0, 15), 1); 
        NL: 
        $n2++; 
        goto g4; 
        IS: 
        return "a" . $AZ; 
    } 
    public static function is_extension_installed($UI) 
    { 
        return in_array($UI, get_loaded_extensions()); 
    } 
    function get_member_of_attribute($w3) 
    { 
        $lp = "memberof"; 
        $Zp = array($lp); 
        $Y7 = ''; 
        $ju = $this->check_authenticated_bind(true); 
        if ($ju->statusCode == "LDAP_BIND_SUCCESSFUL") { 
            goto yz; 
        } 
        return array("count" => 0); 
        goto Vr; 
        yz: 
        $vF = $this->fetch_ldap_user_dn($w3); 
        if (!($vF->statusCode == "FETCH_DN_SUCCESS")) { 
            goto ll; 
        } 
        $Y7 = $vF->userDn; 
        ll: 
        $id = $this->fetch_user_profile_attributes($w3, $Zp); 
        if (!($id->statusCode == "PROFILE_FETCH_SUCCESS")) { 
            goto Zp; 
        } 
        $Bv = $id->extraProfileAttributesList; 
        if (!($Bv["count"] > 0)) { 
            goto So; 
        } 
        if (!isset($Bv[0][$lp])) { 
            goto iq; 
        } 
        return $Bv[0][$lp]; 
        iq: 
        So: 
        Zp: 
        return array("count" => 0); 
        Vr: 
    } 
    function check_authenticated_bind($bD = false, $I7 = null, $qj = null) 
    { 
        $Ii = new MoLdapAuthResponse(); 
        $Gg = new Mo_ldap_authentication(); 
        if (!$bD) { 
            goto rf; 
        } 
        $I7 = !empty(mo_ldap_get_db_value("mo_ldap_admin_username")) ? mo_ldap_get_db_value("mo_ldap_admin_username") : ''; 
        $qj = !empty(mo_ldap_get_db_value("mo_ldap_admin_password")) ? $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("mo_ldap_admin_password")) : ''; 
        rf: 
        $me = $this->ldapconn; 
        if (!($me == null)) { 
            goto ww; 
        } 
        $me = $this->mo_ldap_get_connection(); 
        ww: 
        if ($me) { 
            goto nY; 
        } 
        $Ii->statusCode = "LDAP_CONNECTION_ERROR"; 
        $rs = add_query_arg(array("tab" => "troubleshooting"), $_SERVER["REQUEST_URI"]); 
        $Ii->statusMessage = "Cannot connect to LDAP Server. Make sure you have entered correct LDAP server hostname or IP address. <br>If there is a firewall, please open the firewall to allow incoming requests to your LDAP server from your WordPress site IP address and below specified port number. <br>You can also check our <a href=" . $rs . ">Troubleshooting</a> steps. If you still face the same issue then contact us using the support form."; 
        goto t1; 
        nY: 
        $tt = @ldap_bind($me, $I7, $qj); 
        $sO = ldap_errno($me); 
        $lJ = ldap_error($me); 
        if ($sO == -1) { 
            goto fg; 
        } 
        if (strtolower($lJ) != "success") { 
            goto AK; 
        } 
        $this->ldapconn = $me; 
        $Ii->statusCode = "LDAP_BIND_SUCCESSFUL"; 
        goto Y7; 
        AK: 
        $Ii->statusCode = "LDAP_BIND_ERROR"; 
        $Ii->statusMessage = "Connection to your LDAP server is successful but unable to make authenticated bind to LDAP server. Make sure you have provided correct username or password."; 
        Y7: 
        goto Xj; 
        fg: 
        $Ii->statusCode = "LDAP_CONNECTION_ERROR"; 
        $Ii->statusMessage = "Cannot connect to LDAP Server. Make sure you have entered correct LDAP server hostname or IP address. <br>If there is a firewall, please open the firewall to allow incoming requests to your LDAP server from your WordPress site IP address and below specified port number."; 
        Xj: 
        t1: 
        return $Ii; 
    } 
    function fetch_ldap_user_dn($w3) 
    { 
        $ia = new MoLdapAuthResponse(); 
        $Gg = new Mo_ldap_authentication(); 
        $hA = !empty(mo_ldap_get_db_value("mo_ldap_search_filter")) ? $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("mo_ldap_search_filter")) : ''; 
        $XV = !empty(mo_ldap_get_db_value("mo_ldap_search_base")) ? mo_ldap_get_db_value("mo_ldap_search_base") : ''; 
        $hA = str_replace("?", $w3, $hA); 
        $Qp = explode(";", $XV); 
        $M7 = null; 
        $Ux = null; 
        $iZ = null; 
        $n2 = 0; 
        Fy: 
        if (!($n2 < sizeof($Qp))) { 
            goto XH; 
        } 
        if (ldap_search($this->ldapconn, $Qp[$n2], $hA)) { 
            goto VM; 
        } 
        $ia->statusCode = "LDAP_USER_SEARCH_ERROR"; 
        $ia->statusMessage = "Error while searching user in LDAP server."; 
        return $ia; 
        goto hM; 
        VM: 
        $M7 = ldap_search($this->ldapconn, $Qp[$n2], $hA); 
        hM: 
        $iZ = ldap_first_entry($this->ldapconn, $M7); 
        $Ux = ldap_get_entries($this->ldapconn, $M7); 
        if (!$iZ) { 
            goto GY; 
        } 
        goto XH; 
        GY: 
        FQ: 
        $n2++; 
        goto Fy; 
        XH: 
        if ($iZ) { 
            goto KP; 
        } 
        $ia->statusCode = "LDAP_USER_NOT_EXIST"; 
        $ia->statusMessage = "User does not exist in LDAP server"; 
        return $ia; 
        goto lY; 
        KP: 
        $Y7 = ldap_get_dn($this->ldapconn, $iZ); 
        $ia->statusCode = "FETCH_DN_SUCCESS"; 
        $ia->userDn = $Y7; 
        return $ia; 
        lY: 
    } 
    function fetch_user_profile_attributes($w3, $Lo = null, $m2 = null, $J2 = null, $MN = false) 
    { 
        $pf = new MoLdapAuthResponse(); 
        $Gg = new Mo_ldap_authentication(); 
        $hA = !empty(mo_ldap_get_db_value("mo_ldap_search_filter")) ? $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("mo_ldap_search_filter")) : ''; 
        $hA = str_replace("?", $w3, $hA); 
        if (!isset($m2)) { 
            goto L1; 
        } 
        $hA = $m2; 
        L1: 
        $XV = !empty(mo_ldap_get_db_value("mo_ldap_search_base")) ? mo_ldap_get_db_value("mo_ldap_search_base") : ''; 
        $z0 = "/member:1.2.840.113556.1.4.1941:/"; 
        if (preg_match($z0, $hA)) { 
            goto eK; 
        } 
        $Qg = false; 
        goto Dw; 
        eK: 
        $Qg = true; 
        Dw: 
        $w5 = null; 
        if ($Lo == null && $MN == false) { 
            goto me; 
        } 
        if (is_array($Lo)) { 
            goto ZV; 
        } 
        if (!($MN == true)) { 
            goto p2; 
        } 
        $w5 = array("*"); 
        p2: 
        goto N2; 
        ZV: 
        $w5 = $Lo; 
        N2: 
        goto UM; 
        me: 
        $Zp = array(); 
        $w5 = $Zp; 
        UM: 
        if ($J2 == null) { 
            goto ax; 
        } 
        $Qp = explode(";", $J2); 
        goto sw; 
        ax: 
        $Qp = explode(";", $XV); 
        sw: 
        $M7 = null; 
        $Ux = null; 
        $iZ = null; 
        $b8 = null; 
        $n2 = 0; 
        Sf: 
        if (!($n2 < sizeof($Qp))) { 
            goto Au; 
        } 
        if (ldap_search($this->ldapconn, $Qp[$n2], $hA, $w5)) { 
            goto os; 
        } 
        $pf->statusCode = "LDAP_USER_SEARCH_ERROR"; 
        $pf->statusMessage = "Error while searching user in LDAP server."; 
        return $pf; 
        goto AN; 
        os: 
        $M7 = ldap_search($this->ldapconn, $Qp[$n2], $hA, $w5); 
        AN: 
        $iZ = ldap_first_entry($this->ldapconn, $M7); 
        if ($Qg) { 
            goto TY; 
        } 
        $Ux = ldap_get_entries($this->ldapconn, $M7); 
        if (!$iZ) { 
            goto qm; 
        } 
        goto Au; 
        qm: 
        goto A_; 
        TY: 
        $Rk = ldap_get_entries($this->ldapconn, $M7); 
        $Ux = $this->mo_ldap_merge_entries($Ux, $Rk); 
        A_: 
        if (!($Qg == true && $iZ == true)) { 
            goto Xa; 
        } 
        $b8 = $iZ; 
        Xa: 
        HO: 
        $n2++; 
        goto Sf; 
        Au: 
        if ($iZ == true && $Qg == false) { 
            goto Qd; 
        } 
        if ($b8) { 
            goto Yg; 
        } 
        $pf->statusCode = "LDAP_USER_NOT_EXIST"; 
        $pf->statusMessage = "User does not exist in LDAP server"; 
        return $pf; 
        goto Ut; 
        Yg: 
        $Y7 = ldap_get_dn($this->ldapconn, $b8); 
        $pf->userDn = $Y7; 
        Ut: 
        goto s3; 
        Qd: 
        $Y7 = ldap_get_dn($this->ldapconn, $iZ); 
        $pf->userDn = $Y7; 
        s3: 
        $pf->statusCode = "PROFILE_FETCH_SUCCESS"; 
        if ($Lo == null && $MN == false) { 
            goto lJ; 
        } 
        $pf->extraProfileAttributesList = $Ux; 
        return $pf; 
        goto N_; 
        lJ: 
        foreach ($w5 as $LU) { 
            if (isset($Ux[0][strtolower($LU)]["count"]) && $Ux[0][strtolower($LU)]["count"] > 1) { 
                goto um; 
            } 
            $kZ["mo_ldap_local_custom_attribute_" . $LU] = $Ux[0][strtolower($LU)][0]; 
            goto TH; 
            um: 
            $D_ = array(); 
            $n2 = 0; 
            bP: 
            if (!($n2 < $Ux[0][strtolower($LU)]["count"])) { 
                goto Sj; 
            } 
            array_push($D_, $Ux[0][strtolower($LU)][$n2]); 
            p9: 
            $n2++; 
            goto bP; 
            Sj: 
            $kZ["mo_ldap_local_custom_attribute_" . $LU] = $D_; 
            TH: 
            mA: 
        } 
        vm: 
        $pf->extraProfileAttributesList = $kZ; 
        N_: 
        return $pf; 
    } 
} 
 ?>

Did this file decode correctly?

Original Code

<?php


include "\x61\165\x74\157\154\157\x61\x64\56\160\150\x70";
require_once "\x6d\x6f\x64\56\155\x6f\137\154\144\x61\x70\x5f\141\165\164\x68\145\x6e\164\x69\143\141\164\x69\x6f\156\x2e\x70\150\160";
require_once "\143\x6c\141\x73\163\55\x6d\157\x2d\x6c\144\x61\x70\55\141\165\164\150\55\162\x65\x73\x70\157\156\x73\x65\56\x70\x68\x70";
require_once "\x68\145\x6c\x70\x65\162\163\57\x6d\157\55\154\x64\x61\x70\55\x68\x65\x6c\160\x65\x72\x2e\160\x68\160";
class Mo_ldap_authentication_ext
{
    protected $ldapconn;
    public $version;
    public function __construct()
    {
        $wK = ee("\101\144\144\x6f\x6e")->get("\155\x6f\x5f\154\x64\141\160\x5f\141\x75\x74\x68\x65\156\x74\x69\143\x61\164\151\157\x6e");
        $this->version = $wK->getVersion();
        $this->ldapconn = $this->mo_ldap_get_connection();
    }
    public function moLdapInit()
    {
    }
    public function mo_ldap_login()
    {
        $B2 = ee()->db->query("\x53\x45\114\x45\x43\x54\x20\x75\x73\x65\162\156\x61\x6d\x65\40\x46\x52\117\115\x20\x65\x78\160\x5f\x6d\145\155\142\x65\x72\x73\x20\x57\110\x45\122\105\x20\155\145\x6d\142\x65\162\x5f\x69\144\75\61\x20\101\x4e\104\40\x72\157\x6c\x65\x5f\151\x64\75\61");
        $dy = $B2->result()[0]->username;
        $w3 = (string) ee()->input->post("\x75\163\x65\162\x6e\x61\155\x65", TRUE);
        $qj = (string) ee()->input->post("\160\x61\x73\163\167\157\162\x64", TRUE);
        if (!($dy == $w3)) {
            goto o9;
        }
        return;
        o9:
        $DY = mo_ldap_get_db_value("\x6d\x6f\x5f\x6c\x64\141\160\x5f\145\156\141\x62\154\x65\x5f\154\144\141\x70\137\x6c\157\147\151\156");
        if (!($DY == 1)) {
            goto Y5;
        }
        $this->EE = get_instance();
        $Ud = $this->ldap_login($w3, $qj);
        if ($Ud->statusMessage == "\x4c\104\101\120\x5f\x55\123\105\122\x5f\x42\x49\x4e\104\137\x53\x55\x43\x43\x45\123\x53") {
            goto lR;
        }
        if ($Ud->statusMessage == "\x4c\104\101\x50\x5f\125\123\x45\x52\137\102\x49\x4e\x44\137\x45\x52\x52\117\122" || $Ud->statusMessage == "\x4c\104\101\x50\137\125\x53\105\x52\x5f\x4e\117\124\137\105\130\111\x53\x54") {
            goto WA;
        }
        if ($Ud->statusMessage == "\x4c\104\x41\x50\x5f\105\122\122\117\x52") {
            goto ZO;
        }
        if ($Ud->statusMessage == "\x4f\120\x45\x4e\x53\x53\x4c\x5f\105\122\122\x4f\122") {
            goto BC;
        }
        if ($Ud->statusMessage == "\x4c\104\x41\120\137\120\111\116\107\137\x45\x52\122\x4f\122") {
            goto IY;
        }
        ee()->session->set_flashdata("\x6d\x65\163\163\141\x67\145", "\74\163\x74\x72\157\156\147\x3e\x45\122\x52\x4f\x52\x3c\57\163\x74\x72\157\x6e\x67\x3e\72\40\125\x6e\x6b\156\x6f\x77\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x72\x65\144\x20\144\x75\x72\151\x6e\x67\x20\141\x75\164\150\145\156\x74\x69\143\141\x74\151\157\156\56\40\120\154\145\x61\163\x65\40\143\157\156\x74\141\143\x74\x20\x79\157\x75\x72\x20\141\x64\x6d\151\x6e\x69\x73\x74\x72\141\x74\x6f\162\x2e");
        ee()->functions->redirect(BASE . AMP . "\103\x3d\x6c\x6f\147\x69\x6e");
        goto dD;
        lR:
        $Bd = $this->mo_ldap_get_role_mapping($w3);
        $B2 = ee()->db->query("\x53\x45\x4c\x45\103\x54\40\x6d\x65\x6d\x62\145\x72\137\x69\144\x20\106\122\117\115\40\x65\x78\160\137\x6d\145\155\142\x65\162\x73\x20\x57\x48\105\122\105\x20\x75\163\145\x72\156\x61\155\x65\x20\x3d\x27" . $w3 . "\x27\x20\117\x52\40\x65\155\141\x69\x6c\40\x3d\x20\47" . $w3 . "\47");
        $ig = $B2->num_rows == 0 ? false : true;
        if ($ig) {
            goto hv;
        }
        $Kj = $Ud->profileAttributesList;
        $rR = !empty($Kj["\x6d\141\x69\154"]) ? $Kj["\x6d\141\x69\x6c"] : '';
        $Vr = $this->mo_ldap_create_user($w3, $rR, $Bd);
        goto UX;
        hv:
        foreach ($B2->result() as $fU) {
            B7:
        }
        sB:
        $Vr = $B2->result_object[0]->member_id;
        $F_ = mo_ldap_get_db_value("\x6d\x6f\137\154\x64\x61\x70\x5f\x64\x65\146\x61\165\x6c\x74\137\162\157\154\145");
        $Ao = mo_ldap_get_db_value("\x6d\157\137\x6c\x64\141\160\x5f\157\166\145\x72\x72\x69\144\145\137\162\157\x6c\145\x73");
        if (!empty($Ao)) {
            goto PB;
        }
        if (!empty($Bd)) {
            goto Af;
        }
        $Gl = !empty($F_) ? $F_ : 1;
        goto d7;
        Af:
        $B2 = ee()->db->query("\123\105\x4c\105\103\124\x20\162\157\154\145\137\151\144\40\106\x52\x4f\x4d\40\145\170\x70\137\162\x6f\x6c\x65\163\x20\x57\110\105\x52\105\40\156\x61\155\x65\x20\75\x20\x27{$Bd[0]}\47");
        $Gl = $B2->result()[0]->role_id;
        d7:
        $B2 = ee()->db->query("\125\x50\x44\101\x54\x45\x20\145\x78\x70\x5f\x6d\x65\155\142\145\x72\163\40\123\x45\124\x20\162\157\154\x65\137\x69\x64\x3d\40" . $Gl . "\x20\x57\x48\105\x52\x45\x20\x6d\145\x6d\x62\x65\162\137\x69\144\x20\75\x20" . $Vr);
        PB:
        $this->EE->session->create_new_session($Vr);
        $this->EE->extensions->call("\154\x6f\x67\151\x6e\137\141\x75\x74\x68\145\x6e\x74\151\x63\x61\x74\x65\x5f\163\164\x61\162\164");
        UX:
        goto dD;
        WA:
        ee()->session->set_flashdata("\155\145\163\163\141\147\x65", "\x3c\x73\x74\x72\x6f\x6e\147\76\x45\x52\x52\x4f\122\x3c\x2f\163\x74\x72\x6f\156\x67\x3e\72\40\111\x6e\166\141\x6c\151\144\40\x75\x73\145\x72\156\x61\155\x65\40\157\162\40\x70\141\163\163\167\157\162\x64\40\x65\156\164\x65\162\x65\144\56");
        ee()->functions->redirect(BASE . AMP . "\103\75\x6c\157\x67\x69\x6e");
        goto dD;
        ZO:
        ee()->session->set_flashdata("\x6d\x65\163\x73\x61\147\x65", "\74\x73\x74\x72\157\x6e\147\76\x45\122\122\117\x52\74\57\x73\164\162\157\x6e\147\76\72\40\74\x61\40\x74\141\x72\x67\145\164\x3d\x27\x5f\x62\x6c\141\x6e\x6b\x27\40\x72\x65\154\x3d\47\x6e\x6f\x6f\160\x65\156\145\162\47\x20\x68\x72\145\146\x3d\47\x68\164\x74\x70\72\57\57\x70\x68\x70\x2e\156\x65\164\57\x6d\x61\156\x75\x61\154\x2f\x65\x6e\57\x6c\x64\141\160\x2e\x69\156\x73\x74\x61\154\154\x61\x74\x69\x6f\156\56\x70\x68\160\x27\76\x50\110\x50\40\114\x44\x41\120\x20\145\170\x74\x65\156\163\151\157\156\x3c\57\x61\x3e\40\x69\x73\40\156\x6f\x74\x20\x69\156\163\x74\141\154\154\x65\144\40\157\x72\40\144\151\x73\141\x62\x6c\145\x64\56\x20\120\154\145\141\163\145\x20\145\x6e\141\142\154\145\40\151\164\56");
        ee()->functions->redirect(BASE . AMP . "\103\75\x6c\x6f\147\x69\x6e");
        goto dD;
        BC:
        ee()->session->set_flashdata("\155\145\x73\163\141\x67\145", "\x3c\163\164\162\x6f\x6e\147\76\105\x52\122\117\122\74\x2f\163\x74\x72\x6f\156\147\76\x3a\x20\74\x61\x20\164\x61\x72\147\x65\x74\75\47\x5f\x62\154\141\156\x6b\x27\x20\x72\x65\154\75\47\156\x6f\x6f\x70\145\156\145\162\47\40\150\162\145\x66\75\x27\150\164\x74\160\72\57\x2f\160\x68\x70\56\156\x65\164\x2f\x6d\141\156\x75\x61\154\57\x65\x6e\x2f\x6f\x70\x65\x6e\x73\x73\154\56\151\x6e\x73\164\x61\154\154\x61\x74\151\x6f\156\x2e\x70\150\160\47\76\x50\x48\x50\x20\x4f\x70\145\156\123\123\114\x20\x65\170\164\145\156\163\151\x6f\156\x3c\57\x61\x3e\x20\151\x73\x20\x6e\x6f\164\40\x69\x6e\163\x74\x61\x6c\154\x65\144\x20\x6f\x72\x20\144\151\x73\141\142\x6c\145\144\56");
        ee()->functions->redirect(BASE . AMP . "\x43\75\154\157\147\x69\x6e");
        goto dD;
        IY:
        ee()->session->set_flashdata("\155\x65\x73\163\x61\x67\x65", "\74\163\x74\x72\157\x6e\x67\76\x45\x52\122\117\x52\74\x2f\x73\x74\162\157\x6e\147\76\72\x4c\104\x41\x50\x20\x73\145\x72\166\145\162\40\151\x73\40\156\x6f\x74\x20\x72\145\141\x63\x68\x61\x62\154\145\56\40\106\x61\x6c\154\142\141\x63\x6b\40\x74\x6f\40\154\157\143\141\x6c\40\x45\170\160\162\x65\163\x73\151\157\x6e\x45\x6e\147\x69\156\x65\40\141\x75\164\x68\x65\x6e\x74\x69\143\x61\164\x69\x6f\x6e\x20\151\163\40\x6e\x6f\x74\x20\x73\x75\x70\160\x6f\162\x74\145\x64\56");
        ee()->functions->redirect(BASE . AMP . "\103\x3d\x6c\157\147\151\156");
        dD:
        Y5:
    }
    function mo_ldap_get_role_mapping($w3)
    {
        $tC = 0;
        $gw = 0;
        $gI = mo_ldap_get_db_value("\155\x6f\137\x6c\x64\x61\x70\x5f\147\162\x6f\x75\160\x5f\x62\x61\163\145\144\137\162\157\154\x65\x5f\155\x61\160\160\151\x6e\147\x5f\x63\x6f\x75\156\164");
        if (!is_numeric($gI)) {
            goto Rk;
        }
        $gw = intval($gI);
        Rk:
        $oV = array();
        $R7 = array();
        $oV = unserialize(mo_ldap_get_db_value("\155\x6f\x5f\x6c\x64\x61\x70\x5f\x67\162\157\x75\x70\x5f\x62\141\x73\145\144\137\162\157\154\x65\137\x6d\x61\x70\160\x69\156\x67\137\162\x6f\154\145\163"));
        $Xj = mo_ldap_get_db_value("\x6d\157\137\154\x64\x61\x70\x5f\x65\156\141\x62\x6c\x65\x5f\x72\x6f\x6c\145\x5f\155\141\160\160\x69\x6e\x67");
        $R7 = unserialize(mo_ldap_get_db_value("\155\157\137\154\x64\x61\x70\137\x67\x72\157\165\x70\137\x62\x61\163\145\144\x5f\x72\x6f\154\145\x5f\155\141\160\160\x69\x6e\147\137\147\x72\x6f\165\160\x73"));
        $gC = 0;
        if (!$Xj) {
            goto Ey;
        }
        $wU = $this->get_member_of_attribute($w3);
        $Bd = array();
        $n2 = 1;
        bj:
        if (!($n2 <= $gw)) {
            goto fr;
        }
        $LG = $R7[$n2 - 1];
        $Nd = trim(preg_quote($LG, "\57"));
        $Ge = preg_grep("\57\136" . $Nd . "\56\52\57", $wU);
        if (!(count($Ge) > 0)) {
            goto gS;
        }
        array_push($Bd, $oV[$n2 - 1]);
        return $Bd;
        gS:
        TB:
        $n2++;
        goto bj;
        fr:
        Ey:
        return $Bd;
    }
    function mo_ldap_create_user($w3, $rR, $Bd)
    {
        $this->EE = get_instance();
        if (!empty($Bd)) {
            goto S1;
        }
        $F_ = mo_ldap_get_db_value("\x6d\x6f\137\154\x64\141\160\x5f\144\145\x66\x61\165\x6c\x74\x5f\x72\157\x6c\x65");
        $Gl = !empty($F_) ? $F_ : 1;
        goto db;
        S1:
        $B2 = ee()->db->query("\x53\x45\114\105\x43\124\x20\x72\157\154\x65\137\151\144\40\x46\x52\117\115\x20\x65\170\160\x5f\x72\x6f\x6c\145\x73\40\x57\x48\105\122\x45\40\x6e\x61\155\x65\40\x3d\40\x27{$Bd[0]}\x27");
        $Gl = $B2->result()[0]->role_id;
        db:
        $tb = $this->generateRandomAlphanumericValue(8);
        $rR = $w3;
        $jx = ee()->auth->hash_password($tb);
        $YL = array();
        $YL["\x75\x73\145\162\x6e\x61\155\145"] = $w3;
        $YL["\x73\x63\x72\145\145\x6e\137\x6e\x61\x6d\145"] = $w3;
        $YL["\160\x61\x73\x73\x77\x6f\162\x64"] = $jx["\160\141\163\163\167\x6f\x72\x64"];
        $YL["\x73\x61\154\x74"] = $jx["\163\x61\x6c\x74"];
        $YL["\x75\156\151\161\x75\x65\x5f\151\144"] = ee("\105\156\143\162\171\160\x74")->generateKey();
        $YL["\x65\x6d\141\x69\154"] = $rR;
        $YL["\x6c\141\x6e\x67\x75\141\x67\145"] = "\145\156\147\154\151\x73\150";
        $YL[$this->memberId] = $Gl;
        $YL["\x63\x72\x79\160\164\137\153\145\x79"] = ee("\x45\156\x63\162\171\160\164")->generateKey();
        $YL["\x6a\157\x69\156\137\x64\141\x74\x65"] = ee()->localize->now;
        $Hw = FALSE;
        if (!ee()->extensions->active_hook("\x6d\x65\155\142\x65\x72\x5f\x63\162\145\141\164\x65\x5f\163\164\x61\162\x74")) {
            goto wu;
        }
        list($Sh, $Hw) = ee()->extensions->call("\x6d\x65\155\x62\145\x72\137\143\162\x65\x61\164\x65\x5f\163\164\141\x72\164", $YL, $Hw);
        wu:
        $B2 = ee()->db->query("\111\x4e\x53\x45\122\x54\x20\111\116\x54\x4f\x20\x65\x78\160\x5f\155\x65\155\142\145\162\x73\x20\50\162\x6f\x6c\x65\x5f\x69\x64\x2c\40\x75\x73\145\x72\156\x61\155\x65\54\40\163\143\x72\145\145\x6e\x5f\156\141\155\x65\x2c\40\x70\141\x73\163\x77\x6f\x72\144\x2c\40\163\x61\154\x74\54\40\165\x6e\x69\x71\165\x65\137\151\x64\54\x20\143\x72\x79\160\164\137\153\x65\x79\54\40\x65\x6d\141\151\154\54\x20\152\x6f\151\156\137\144\141\164\145\54\x20\154\x61\156\147\x75\x61\x67\x65\40\x29\x20\126\101\x4c\125\105\123\x20\x28\x27" . $Gl . "\47\x2c\40\x27" . $w3 . "\x27\54\40\x27" . $w3 . "\x27\x2c\x20\x27" . $jx["\x70\x61\163\163\x77\x6f\x72\x64"] . "\x27\x2c\40\47" . $jx["\163\141\x6c\164"] . "\47\x2c\x20\x27" . ee("\x45\156\x63\x72\171\x70\164")->generateKey() . "\x27\54\x20\47" . ee("\x45\x6e\143\162\171\x70\x74")->generateKey() . "\47\54\40\x27" . $rR . "\x27\54\40\x27" . ee()->localize->now . "\47\54\x20\x27\145\156\x67\x6c\x69\x73\x68\47\x29");
        $B2 = ee()->db->query("\123\105\x4c\105\103\x54\x20\155\x65\155\142\145\x72\x5f\x69\x64\40\106\x52\117\x4d\40\x65\x78\160\137\155\x65\x6d\x62\145\x72\163\40\x57\110\105\122\105\x20\165\x73\145\x72\x6e\141\155\145\x20\x3d\47" . $w3 . "\x27\40\x4f\x52\40\145\x6d\x61\151\154\40\75\40\x27" . $w3 . "\47");
        $dN = $B2->result()[0]->member_id;
        if ($Hw) {
            goto j6;
        }
        ee()->db->replace("\155\x65\x6d\142\x65\x72\137\144\x61\x74\141", array("\155\145\155\142\145\162\x5f\151\144" => $dN));
        goto nK;
        j6:
        ee()->db->insert("\x6d\x65\155\142\x65\162\137\144\x61\164\x61", array_merge(array("\x6d\x65\x6d\142\x65\162\137\151\144" => $dN), $Hw));
        nK:
        if (!ee()->extensions->active_hook("\x6d\x65\155\x62\145\162\137\143\x72\x65\x61\164\145\137\x65\x6e\144")) {
            goto KI;
        }
        ee()->extensions->call("\x6d\x65\x6d\142\x65\162\x5f\143\162\x65\x61\x74\145\x5f\145\x6e\144", $dN, $YL, $Hw);
        KI:
        $Vr = $dN;
        $this->EE->session->create_new_session($Vr);
        $this->EE->extensions->call("\x6c\x6f\x67\151\x6e\137\141\x75\164\150\x65\156\164\151\x63\x61\164\145\x5f\163\164\141\162\164");
        return $Vr;
    }
    function ldap_login($w3, $qj)
    {
        $Gg = new Mo_ldap_authentication();
        if ($this->is_extension_installed("\x6c\x64\x61\x70")) {
            goto Pa;
        }
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\114\104\x41\x50\x5f\105\122\x52\x4f\122";
        $Ud->userDn = '';
        return $Ud;
        Pa:
        $Xe = $this->mo_ldap_get_connection();
        if (mo_ldap_verifyLicenseKey(mo_ldap_get_db_value("\155\x6f\137\x6c\x64\141\160\x5f\x63\165\x73\164\157\155\145\162\137\x65\x6d\141\x69\154"), mo_ldap_get_db_value("\155\157\137\154\144\141\x70\x5f\x63\165\163\x74\x6f\x6d\x65\162\137\160\x61\163\163\167\x6f\x72\144"), mo_ldap_get_db_value("\x6d\157\x5f\154\144\x61\x70\x5f\x63\165\163\164\157\x6d\145\x72\x5f\154\151\143\x65\x6e\163\x65\x5f\x6b\x65\171"))) {
            goto dg;
        }
        $Xe = false;
        dg:
        if ($Xe) {
            goto Bn;
        }
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\x45\x52\x52\117\x52";
        $Ud->userDn = '';
        return $Ud;
        goto ak;
        Bn:
        $hA = $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("\x6d\157\137\x6c\144\x61\160\137\163\145\141\162\143\150\137\x66\x69\154\x74\145\x72"));
        $XV = mo_ldap_get_db_value("\155\157\x5f\154\x64\141\160\x5f\x73\145\x61\162\x63\150\137\142\141\x73\145");
        $Qp = explode("\x3b", $XV);
        $ih = mo_ldap_get_db_value("\155\x6f\137\154\x64\141\160\x5f\141\x64\x6d\151\x6e\x5f\165\x73\145\162\156\x61\x6d\x65");
        $k3 = mo_ldap_get_db_value("\155\157\137\x6c\x64\141\x70\137\x61\144\x6d\151\x6e\137\x70\x61\x73\163\167\157\x72\144");
        $Tt = $Gg->mo_ldap_decrypt($k3);
        $FV = "\x6d\141\x69\154";
        $Zp = array();
        if (!(isset($FV) && !empty($FV))) {
            goto CQ;
        }
        array_push($Zp, $FV);
        CQ:
        $hA = str_replace("\77", $w3, $hA);
        $M7 = null;
        $Ux = null;
        $iZ = null;
        @ldap_bind($Xe, $ih, $Tt);
        $sO = ldap_errno($Xe);
        $lJ = ldap_error($Xe);
        if ($sO == -1) {
            goto rF;
        }
        if (strtolower($lJ) != "\x73\165\143\143\x65\163\x73") {
            goto Ow;
        }
        goto vK;
        rF:
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\x4c\x44\101\120\137\120\111\116\107\137\105\x52\122\x4f\x52";
        $Ud->userDn = '';
        return $Ud;
        return;
        goto vK;
        Ow:
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\x4c\x44\x41\120\137\102\111\116\104\x5f\105\x52\122\117\x52";
        $Ud->userDn = '';
        return $Ud;
        vK:
        $n2 = 0;
        dB:
        if (!($n2 < sizeof($Qp))) {
            goto jU;
        }
        if (ldap_search($Xe, $Qp[$n2], $hA, $Zp)) {
            goto uv;
        }
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\x4c\x44\x41\x50\137\x55\123\105\x52\x5f\x53\105\101\122\103\110\137\105\x52\122\x4f\122";
        $Ud->userDn = '';
        goto eV;
        uv:
        $M7 = ldap_search($Xe, $Qp[$n2], $hA, $Zp);
        eV:
        $iZ = ldap_first_entry($Xe, $M7);
        $Ux = ldap_get_entries($Xe, $M7);
        if ($iZ) {
            goto lQ;
        }
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\x4c\x44\x41\x50\137\x55\123\105\122\137\116\117\124\x5f\105\130\x49\123\x54";
        $Ud->userDn = '';
        goto Vd;
        lQ:
        $Y7 = ldap_get_dn($Xe, $iZ);
        goto jU;
        Vd:
        Oz:
        $n2++;
        goto dB;
        jU:
        if (!($n2 == sizeof($Qp))) {
            goto Kh;
        }
        return $Ud;
        Kh:
        $yg = $this->mo_ldap_authenticate($Y7, $qj);
        if (!($yg->statusMessage == "\x4c\x44\101\x50\137\125\x53\105\122\x5f\x42\x49\116\104\137\123\125\103\103\x45\x53\123")) {
            goto Ds;
        }
        $kZ = array();
        $Kj = array();
        unset($Zp[0]);
        $yg->attributeList = $kZ;
        if (!(!empty($FV) && isset($Ux[0][$FV][0]))) {
            goto ox;
        }
        $Kj["\x6d\x61\x69\154"] = $Ux[0][$FV][0];
        ox:
        $yg->profileAttributesList = $Kj;
        Ds:
        return $yg;
        ak:
    }
    function mo_ldap_get_connection()
    {
        $LY = mo_ldap_get_db_value("\155\157\137\x6c\144\x61\x70\x5f\x66\165\154\154\x5f\163\x65\x72\x76\x65\x72\137\165\x72\x6c");
        $Xe = ldap_connect($LY);
        ldap_set_option($Xe, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($Xe, LDAP_OPT_REFERRALS, 0);
        return $Xe;
    }
    function mo_ldap_authenticate($Y7, $qj)
    {
        $Xe = $this->mo_ldap_get_connection();
        @ldap_bind($Xe, $Y7, $qj);
        $sO = ldap_errno($Xe);
        $lJ = ldap_error($Xe);
        if ($sO == -1) {
            goto SN;
        }
        if (strtolower($lJ) != "\163\x75\143\143\x65\163\x73") {
            goto EP;
        }
        $Ud = new MoLdapAuthResponse();
        $Ud->status = true;
        $Ud->statusMessage = "\114\x44\x41\120\x5f\125\123\105\122\x5f\x42\111\x4e\x44\x5f\x53\125\103\x43\x45\x53\123";
        $Ud->userDn = $Y7;
        return $Ud;
        goto NY;
        SN:
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\x4c\104\x41\x50\137\x50\111\116\107\137\105\122\122\x4f\x52";
        $Ud->userDn = '';
        return $Ud;
        goto NY;
        EP:
        $Ud = new MoLdapAuthResponse();
        $Ud->status = false;
        $Ud->statusMessage = "\114\x44\101\x50\x5f\125\x53\x45\x52\137\x42\x49\x4e\x44\x5f\105\x52\x52\x4f\122";
        $Ud->userDn = '';
        return $Ud;
        NY:
    }
    public function generateRandomAlphanumericValue($LB)
    {
        $hm = "\x61\x62\x63\144\x65\x66\60\61\62\63\64\65\x36\67\x38\x39";
        $jM = strlen($hm);
        $AZ = '';
        $n2 = 0;
        g4:
        if (!($n2 < $LB)) {
            goto IS;
        }
        $AZ .= substr($hm, rand(0, 15), 1);
        NL:
        $n2++;
        goto g4;
        IS:
        return "\141" . $AZ;
    }
    public static function is_extension_installed($UI)
    {
        return in_array($UI, get_loaded_extensions());
    }
    function get_member_of_attribute($w3)
    {
        $lp = "\x6d\145\155\142\x65\162\157\146";
        $Zp = array($lp);
        $Y7 = '';
        $ju = $this->check_authenticated_bind(true);
        if ($ju->statusCode == "\114\x44\x41\120\x5f\x42\x49\x4e\x44\x5f\x53\x55\103\103\105\x53\x53\x46\125\x4c") {
            goto yz;
        }
        return array("\143\157\165\x6e\x74" => 0);
        goto Vr;
        yz:
        $vF = $this->fetch_ldap_user_dn($w3);
        if (!($vF->statusCode == "\x46\x45\124\103\x48\x5f\x44\116\x5f\x53\x55\103\103\105\x53\123")) {
            goto ll;
        }
        $Y7 = $vF->userDn;
        ll:
        $id = $this->fetch_user_profile_attributes($w3, $Zp);
        if (!($id->statusCode == "\x50\x52\117\106\111\114\x45\x5f\x46\105\124\x43\x48\137\x53\125\x43\x43\x45\123\x53")) {
            goto Zp;
        }
        $Bv = $id->extraProfileAttributesList;
        if (!($Bv["\143\157\x75\x6e\x74"] > 0)) {
            goto So;
        }
        if (!isset($Bv[0][$lp])) {
            goto iq;
        }
        return $Bv[0][$lp];
        iq:
        So:
        Zp:
        return array("\x63\x6f\165\x6e\x74" => 0);
        Vr:
    }
    function check_authenticated_bind($bD = false, $I7 = null, $qj = null)
    {
        $Ii = new MoLdapAuthResponse();
        $Gg = new Mo_ldap_authentication();
        if (!$bD) {
            goto rf;
        }
        $I7 = !empty(mo_ldap_get_db_value("\155\157\x5f\x6c\x64\x61\x70\137\141\144\155\151\156\137\165\x73\145\162\x6e\141\155\x65")) ? mo_ldap_get_db_value("\x6d\x6f\137\154\144\141\160\137\141\144\155\151\156\x5f\x75\x73\x65\x72\x6e\x61\155\145") : '';
        $qj = !empty(mo_ldap_get_db_value("\x6d\x6f\137\154\144\141\x70\x5f\141\144\155\151\x6e\x5f\160\x61\163\x73\x77\x6f\162\144")) ? $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("\x6d\157\137\x6c\x64\141\x70\137\x61\x64\x6d\151\156\137\160\141\163\163\x77\157\162\144")) : '';
        rf:
        $me = $this->ldapconn;
        if (!($me == null)) {
            goto ww;
        }
        $me = $this->mo_ldap_get_connection();
        ww:
        if ($me) {
            goto nY;
        }
        $Ii->statusCode = "\114\x44\x41\x50\x5f\x43\117\x4e\116\x45\x43\124\111\x4f\116\137\105\122\x52\117\122";
        $rs = add_query_arg(array("\164\x61\x62" => "\164\162\157\165\x62\x6c\145\x73\150\157\157\164\x69\156\x67"), $_SERVER["\122\x45\x51\x55\105\123\x54\x5f\x55\x52\111"]);
        $Ii->statusMessage = "\103\x61\x6e\156\157\x74\40\x63\x6f\x6e\156\x65\x63\164\40\x74\157\40\x4c\104\101\120\x20\123\x65\162\166\x65\x72\56\40\115\x61\x6b\145\40\x73\165\x72\145\40\x79\x6f\x75\40\x68\x61\x76\145\40\x65\156\x74\x65\162\x65\144\x20\143\157\162\162\145\x63\x74\40\x4c\104\101\120\x20\163\x65\x72\x76\145\162\40\x68\157\x73\164\x6e\x61\x6d\145\40\x6f\162\x20\111\x50\x20\x61\x64\144\x72\x65\163\x73\x2e\40\74\x62\x72\76\111\146\40\x74\x68\x65\x72\145\x20\151\x73\x20\x61\40\146\151\x72\x65\167\x61\x6c\x6c\54\x20\x70\154\x65\x61\x73\x65\40\x6f\160\145\156\40\164\x68\145\x20\x66\x69\162\x65\167\141\x6c\x6c\40\164\157\x20\x61\154\x6c\x6f\167\40\x69\x6e\143\x6f\155\151\156\147\40\162\x65\x71\x75\x65\x73\164\x73\x20\164\157\x20\x79\157\165\x72\40\x4c\x44\x41\120\x20\x73\x65\162\166\x65\x72\40\x66\x72\x6f\155\40\171\157\165\x72\40\x57\157\162\x64\x50\x72\145\163\x73\x20\163\151\164\x65\40\x49\120\40\x61\144\144\162\x65\163\x73\x20\x61\156\144\x20\142\145\154\x6f\167\40\x73\x70\x65\143\151\x66\x69\x65\144\40\x70\157\162\164\x20\x6e\x75\x6d\142\145\162\x2e\40\x3c\142\162\x3e\x59\157\165\40\x63\x61\x6e\40\141\154\x73\x6f\40\143\150\145\x63\153\40\x6f\165\x72\x20\74\x61\40\x68\162\x65\146\x3d" . $rs . "\x3e\124\x72\x6f\x75\x62\x6c\x65\163\150\157\x6f\x74\x69\x6e\x67\x3c\x2f\x61\76\40\163\164\145\x70\163\56\x20\111\146\40\x79\157\165\40\x73\164\x69\x6c\x6c\x20\x66\141\143\x65\40\164\150\x65\40\x73\141\x6d\145\40\151\163\163\x75\x65\x20\x74\150\145\x6e\x20\x63\x6f\156\x74\x61\x63\x74\x20\x75\163\x20\x75\163\151\156\147\40\x74\x68\145\x20\x73\165\x70\x70\x6f\x72\x74\40\146\157\x72\155\x2e";
        goto t1;
        nY:
        $tt = @ldap_bind($me, $I7, $qj);
        $sO = ldap_errno($me);
        $lJ = ldap_error($me);
        if ($sO == -1) {
            goto fg;
        }
        if (strtolower($lJ) != "\x73\x75\x63\x63\145\163\163") {
            goto AK;
        }
        $this->ldapconn = $me;
        $Ii->statusCode = "\x4c\x44\101\120\137\102\111\x4e\x44\137\x53\x55\103\x43\x45\123\123\x46\125\x4c";
        goto Y7;
        AK:
        $Ii->statusCode = "\114\104\101\x50\x5f\102\111\x4e\104\137\105\x52\122\x4f\122";
        $Ii->statusMessage = "\103\157\x6e\x6e\145\143\164\151\157\x6e\40\164\x6f\x20\171\x6f\x75\162\40\x4c\104\x41\x50\40\163\145\162\x76\145\162\40\x69\x73\x20\163\165\x63\143\x65\163\163\146\165\154\40\x62\165\164\40\165\x6e\141\x62\x6c\x65\x20\164\157\40\x6d\x61\x6b\145\x20\141\x75\164\x68\145\x6e\164\x69\x63\x61\x74\145\x64\40\142\151\x6e\x64\40\164\157\40\114\x44\101\120\x20\163\145\162\166\x65\162\x2e\40\x4d\141\x6b\x65\x20\163\x75\x72\145\x20\171\x6f\165\40\x68\x61\x76\x65\40\x70\162\157\166\151\144\x65\x64\40\x63\157\x72\x72\145\x63\x74\40\x75\x73\145\x72\x6e\x61\155\x65\x20\157\162\x20\160\x61\163\163\x77\x6f\x72\144\56";
        Y7:
        goto Xj;
        fg:
        $Ii->statusCode = "\x4c\x44\x41\120\137\x43\x4f\x4e\116\105\103\x54\x49\x4f\116\137\x45\122\x52\117\x52";
        $Ii->statusMessage = "\103\141\x6e\x6e\x6f\x74\40\x63\x6f\x6e\x6e\145\x63\164\40\164\157\x20\114\104\x41\120\40\123\x65\162\x76\145\x72\x2e\x20\x4d\x61\153\x65\x20\x73\x75\162\145\x20\x79\157\165\40\x68\x61\166\x65\x20\x65\x6e\164\145\x72\145\144\40\143\x6f\x72\162\x65\143\164\x20\114\104\x41\120\40\163\145\x72\166\x65\x72\40\x68\157\163\x74\156\141\x6d\x65\x20\x6f\162\x20\111\x50\x20\x61\x64\144\x72\x65\163\x73\56\40\x3c\142\162\76\111\x66\x20\164\x68\x65\x72\x65\40\151\163\40\x61\40\146\x69\x72\145\x77\141\x6c\x6c\x2c\40\160\154\145\x61\163\145\x20\x6f\160\145\156\x20\x74\150\145\40\146\x69\x72\x65\x77\x61\x6c\154\x20\164\157\40\141\x6c\x6c\x6f\x77\40\151\156\x63\157\155\x69\156\x67\x20\x72\x65\x71\165\x65\163\x74\163\x20\164\x6f\x20\171\157\165\x72\40\x4c\104\101\120\40\x73\x65\162\x76\145\x72\40\146\162\x6f\155\x20\171\x6f\x75\x72\x20\x57\157\x72\x64\x50\162\x65\x73\163\x20\x73\151\164\145\40\111\x50\x20\x61\144\x64\x72\x65\163\163\x20\141\156\144\x20\142\145\x6c\157\167\x20\163\160\x65\143\x69\x66\151\x65\x64\x20\160\x6f\162\164\40\x6e\x75\155\x62\145\x72\56";
        Xj:
        t1:
        return $Ii;
    }
    function fetch_ldap_user_dn($w3)
    {
        $ia = new MoLdapAuthResponse();
        $Gg = new Mo_ldap_authentication();
        $hA = !empty(mo_ldap_get_db_value("\x6d\157\137\x6c\144\x61\x70\137\163\x65\141\x72\143\150\x5f\146\151\x6c\164\x65\162")) ? $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("\155\157\x5f\154\x64\x61\160\x5f\163\145\x61\162\x63\150\137\146\151\x6c\x74\145\162")) : '';
        $XV = !empty(mo_ldap_get_db_value("\x6d\x6f\137\x6c\144\x61\160\x5f\163\x65\141\162\143\150\x5f\142\x61\x73\x65")) ? mo_ldap_get_db_value("\x6d\157\137\154\144\x61\160\137\163\x65\x61\x72\x63\150\137\x62\141\163\145") : '';
        $hA = str_replace("\77", $w3, $hA);
        $Qp = explode("\73", $XV);
        $M7 = null;
        $Ux = null;
        $iZ = null;
        $n2 = 0;
        Fy:
        if (!($n2 < sizeof($Qp))) {
            goto XH;
        }
        if (ldap_search($this->ldapconn, $Qp[$n2], $hA)) {
            goto VM;
        }
        $ia->statusCode = "\114\104\x41\x50\137\x55\123\105\122\x5f\x53\105\x41\122\103\x48\x5f\105\122\x52\117\x52";
        $ia->statusMessage = "\x45\162\162\157\162\40\167\x68\x69\x6c\x65\x20\x73\145\x61\x72\x63\150\x69\156\147\40\165\163\x65\x72\x20\x69\156\x20\x4c\x44\101\x50\x20\163\145\x72\166\145\162\56";
        return $ia;
        goto hM;
        VM:
        $M7 = ldap_search($this->ldapconn, $Qp[$n2], $hA);
        hM:
        $iZ = ldap_first_entry($this->ldapconn, $M7);
        $Ux = ldap_get_entries($this->ldapconn, $M7);
        if (!$iZ) {
            goto GY;
        }
        goto XH;
        GY:
        FQ:
        $n2++;
        goto Fy;
        XH:
        if ($iZ) {
            goto KP;
        }
        $ia->statusCode = "\114\104\101\120\x5f\x55\x53\x45\x52\x5f\x4e\117\124\x5f\x45\x58\x49\x53\x54";
        $ia->statusMessage = "\125\163\145\162\x20\x64\x6f\145\x73\40\x6e\x6f\164\x20\145\x78\151\x73\x74\x20\151\x6e\40\x4c\x44\101\x50\x20\163\x65\162\x76\x65\162";
        return $ia;
        goto lY;
        KP:
        $Y7 = ldap_get_dn($this->ldapconn, $iZ);
        $ia->statusCode = "\106\105\124\x43\x48\137\x44\116\137\123\x55\103\x43\105\x53\123";
        $ia->userDn = $Y7;
        return $ia;
        lY:
    }
    function fetch_user_profile_attributes($w3, $Lo = null, $m2 = null, $J2 = null, $MN = false)
    {
        $pf = new MoLdapAuthResponse();
        $Gg = new Mo_ldap_authentication();
        $hA = !empty(mo_ldap_get_db_value("\x6d\157\x5f\154\144\x61\160\x5f\163\x65\141\162\x63\150\137\x66\x69\154\x74\145\162")) ? $Gg->mo_ldap_decrypt(mo_ldap_get_db_value("\155\157\x5f\154\144\x61\160\137\x73\x65\x61\x72\x63\x68\x5f\146\151\154\x74\145\162")) : '';
        $hA = str_replace("\77", $w3, $hA);
        if (!isset($m2)) {
            goto L1;
        }
        $hA = $m2;
        L1:
        $XV = !empty(mo_ldap_get_db_value("\155\x6f\137\x6c\x64\141\x70\137\x73\145\x61\162\x63\150\137\142\x61\x73\145")) ? mo_ldap_get_db_value("\x6d\157\137\154\x64\141\160\137\x73\x65\x61\162\x63\x68\x5f\x62\x61\163\145") : '';
        $z0 = "\57\155\x65\155\142\x65\x72\x3a\x31\x2e\x32\56\x38\x34\x30\56\61\61\x33\65\x35\66\x2e\61\x2e\x34\56\x31\71\x34\x31\x3a\57";
        if (preg_match($z0, $hA)) {
            goto eK;
        }
        $Qg = false;
        goto Dw;
        eK:
        $Qg = true;
        Dw:
        $w5 = null;
        if ($Lo == null && $MN == false) {
            goto me;
        }
        if (is_array($Lo)) {
            goto ZV;
        }
        if (!($MN == true)) {
            goto p2;
        }
        $w5 = array("\52");
        p2:
        goto N2;
        ZV:
        $w5 = $Lo;
        N2:
        goto UM;
        me:
        $Zp = array();
        $w5 = $Zp;
        UM:
        if ($J2 == null) {
            goto ax;
        }
        $Qp = explode("\x3b", $J2);
        goto sw;
        ax:
        $Qp = explode("\73", $XV);
        sw:
        $M7 = null;
        $Ux = null;
        $iZ = null;
        $b8 = null;
        $n2 = 0;
        Sf:
        if (!($n2 < sizeof($Qp))) {
            goto Au;
        }
        if (ldap_search($this->ldapconn, $Qp[$n2], $hA, $w5)) {
            goto os;
        }
        $pf->statusCode = "\114\104\101\x50\x5f\125\123\x45\122\137\123\x45\x41\x52\x43\110\x5f\105\122\x52\117\122";
        $pf->statusMessage = "\x45\x72\162\x6f\162\x20\167\150\151\154\145\40\163\145\x61\162\x63\x68\x69\156\x67\40\165\163\x65\x72\x20\151\156\40\114\104\x41\120\40\163\145\162\166\x65\x72\x2e";
        return $pf;
        goto AN;
        os:
        $M7 = ldap_search($this->ldapconn, $Qp[$n2], $hA, $w5);
        AN:
        $iZ = ldap_first_entry($this->ldapconn, $M7);
        if ($Qg) {
            goto TY;
        }
        $Ux = ldap_get_entries($this->ldapconn, $M7);
        if (!$iZ) {
            goto qm;
        }
        goto Au;
        qm:
        goto A_;
        TY:
        $Rk = ldap_get_entries($this->ldapconn, $M7);
        $Ux = $this->mo_ldap_merge_entries($Ux, $Rk);
        A_:
        if (!($Qg == true && $iZ == true)) {
            goto Xa;
        }
        $b8 = $iZ;
        Xa:
        HO:
        $n2++;
        goto Sf;
        Au:
        if ($iZ == true && $Qg == false) {
            goto Qd;
        }
        if ($b8) {
            goto Yg;
        }
        $pf->statusCode = "\x4c\x44\101\120\x5f\x55\x53\105\x52\137\x4e\117\x54\137\x45\x58\x49\x53\x54";
        $pf->statusMessage = "\125\163\x65\162\x20\x64\157\x65\x73\40\x6e\157\164\40\145\x78\x69\163\164\40\x69\156\x20\x4c\104\101\x50\x20\x73\145\x72\x76\x65\162";
        return $pf;
        goto Ut;
        Yg:
        $Y7 = ldap_get_dn($this->ldapconn, $b8);
        $pf->userDn = $Y7;
        Ut:
        goto s3;
        Qd:
        $Y7 = ldap_get_dn($this->ldapconn, $iZ);
        $pf->userDn = $Y7;
        s3:
        $pf->statusCode = "\x50\x52\x4f\106\111\114\105\137\x46\105\x54\103\110\137\x53\125\x43\x43\105\x53\x53";
        if ($Lo == null && $MN == false) {
            goto lJ;
        }
        $pf->extraProfileAttributesList = $Ux;
        return $pf;
        goto N_;
        lJ:
        foreach ($w5 as $LU) {
            if (isset($Ux[0][strtolower($LU)]["\143\157\165\156\x74"]) && $Ux[0][strtolower($LU)]["\143\x6f\165\156\x74"] > 1) {
                goto um;
            }
            $kZ["\155\x6f\x5f\x6c\144\x61\x70\x5f\x6c\157\143\141\x6c\137\x63\x75\163\x74\x6f\x6d\137\x61\164\x74\162\151\x62\165\x74\145\x5f" . $LU] = $Ux[0][strtolower($LU)][0];
            goto TH;
            um:
            $D_ = array();
            $n2 = 0;
            bP:
            if (!($n2 < $Ux[0][strtolower($LU)]["\143\157\x75\x6e\164"])) {
                goto Sj;
            }
            array_push($D_, $Ux[0][strtolower($LU)][$n2]);
            p9:
            $n2++;
            goto bP;
            Sj:
            $kZ["\155\x6f\x5f\154\144\x61\160\x5f\x6c\157\143\x61\x6c\x5f\143\165\x73\164\x6f\155\x5f\141\164\164\162\x69\x62\x75\164\x65\137" . $LU] = $D_;
            TH:
            mA:
        }
        vm:
        $pf->extraProfileAttributesList = $kZ;
        N_:
        return $pf;
    }
}

Function Calls

None

Variables

None

Stats

MD5 f5dd6daf81bb2d717c809a069ca2ec53
Eval Count 0
Decode Time 70 ms