Valorant Offset Tool - GVersion: 11.06.00.3836880

Memory Offsets
SDK Search
Decryption

CORE OFFSETS

SPREAD OFFSETS

EXTRA OFFSETS

Global Offset Chat

Loading chat...

Search SDK Headers

Type above to search SDK...

Decryption Methods


uint64_t DecryptXORKeys(uint32_t key, const uint64_t* state) {
    unsigned __int64 v4;
    unsigned __int64 v5;
    unsigned __int64 v6;
    unsigned int v7;
    unsigned __int64 v8;
    unsigned __int64 v9;
    unsigned __int64 v10;
    unsigned __int64 v11;
    unsigned __int64 v12;
    unsigned __int64 v13;
    unsigned __int64 v14;
    unsigned __int64 v15;
    unsigned __int64 v16;
    unsigned __int64 v17;
    unsigned __int64 v18;
    unsigned __int64 v20;
    unsigned __int64 temp, temp2, temp3;

    v4 = 0x2545F4914F6CDD1Di64
        * ((unsigned int)key ^ (((unsigned int)key ^ ((unsigned __int64)(unsigned int)key >> 15)) >> 12) ^ (unsigned int)(key << 25))
        % 7;
    v5 = state[v4];
    v6 = (0x2545F4914F6CDD1Di64
        * ((unsigned int)key ^ (((unsigned int)key ^ ((unsigned __int64)(unsigned int)key >> 15)) >> 12) ^ (unsigned int)(key << 25))) >> 32;
    v7 = (unsigned int)v4 % 7;
    if ((unsigned int)v4 == 7 * ((unsigned int)v4 / 7)) {
        v8 = ~(v5 ^ ~(unsigned __int64)(unsigned int)(v6 - 1));
        goto LABEL_5;
    }
    v8 = state[v4];
    if (v7 == 1) {
        v10 = (v5 >> 1) ^ ((v5 >> 1) ^ (2 * v5)) & 0xAAAAAAAAAAAAAAAAui64;
        v11 = ((v10 >> 2) ^ ((v10 >> 2) ^ (4 * v10)) & 0xCCCCCCCCCCCCCCCCui64) >> 4;
        v12 = v11 ^ (v11 ^ (16 * ((v10 >> 2) ^ ((v10 >> 2) ^ (4 * v10)) & 0xCCCCCCCCCCCCCCCCui64))) & 0xF0F0F0F0F0F0F0F0ui64;
        temp = (v12 >> 8) ^ ((v12 >> 8) ^ (v12 << 8)) & 0xFF00FF00FF00FF00ui64;
        v8 = ~(unsigned __int64)(unsigned int)(v6 + v4) ^ ((temp >> 32) | (temp << 32));
    LABEL_11:
        v9 = v8;
        if ((unsigned int)v4 % 7 == 3) {
            v9 = ~((v8 >> 1) ^ ((v8 >> 1) ^ (2 * v8)) & 0xAAAAAAAAAAAAAAAAui64);
            goto LABEL_7;
        }
        if ((unsigned int)v4 % 7 == 4) {
            v13 = ((v8 >> 1) ^ ((v8 >> 1) ^ (2 * v8)) & 0xAAAAAAAAAAAAAAAAui64) >> 2;
            v14 = v13 ^ (v13 ^ (4 * ((v8 >> 1) ^ ((v8 >> 1) ^ (2 * v8)) & 0xAAAAAAAAAAAAAAAAui64))) & 0xCCCCCCCCCCCCCCCCui64;
            v15 = v14 >> 4;
            temp2 = ((v15 ^ (v15 ^ (16 * v14)) & 0xF0F0F0F0F0F0F0F0ui64) >> 8) ^ (((v15 ^ (v15 ^ (16 * v14)) & 0xF0F0F0F0F0F0F0F0ui64) >> 8) ^ ((v15 ^ (v15 ^ (16 * v14)) & 0xF0F0F0F0F0F0F0F0ui64) << 8)) & 0xFF00FF00FF00FF00ui64;
            v9 = ~(unsigned __int64)(unsigned int)(v6 + v4) ^ ((temp2 >> 32) | (temp2 << 32));
            goto LABEL_15;
        }
    } else {
    LABEL_5:
        if (v7 != 2)
            goto LABEL_11;
        v9 = ((v8 >> (63 * (unsigned __int8)(((int)v6 + 2 * (int)v4) / 0x3Fu)
            - ((unsigned __int8)v6
                + 2 * (unsigned __int8)v4)
            + 63)) | (v8 << ((unsigned __int8)(((int)v6 + 2 * (int)v4) % 0x3Fu) + 1)))
            - (unsigned int)(v6 + v4);
    }
    LABEL_7:
    if ((unsigned int)v4 % 7 == 5) {
        v9 = ((v9 >> 1) ^ ((v9 >> 1) ^ (2 * v9)) & 0xAAAAAAAAAAAAAAAAui64) - (unsigned int)(v6 + v4);
    } else {
    LABEL_15:
        if ((unsigned int)v4 % 7 == 6) {
            v16 = ((v9 >> 1) ^ ((v9 >> 1) ^ (2 * v9)) & 0xAAAAAAAAAAAAAAAAui64) >> 2;
            v17 = v16 ^ (v16 ^ (4 * ((v9 >> 1) ^ ((v9 >> 1) ^ (2 * v9)) & 0xAAAAAAAAAAAAAAAAui64))) & 0xCCCCCCCCCCCCCCCCui64;
            v18 = (v17 >> 4) ^ ((v17 >> 4) ^ (16 * v17)) & 0xF0F0F0F0F0F0F0F0ui64;
            temp3 = (v18 >> 8) ^ ((v18 >> 8) ^ (v18 << 8)) & 0xFF00FF00FF00FF00ui64;
            v9 = (unsigned int)(v6 + v4) + ((temp3 >> 32) | (temp3 << 32));
        }
    }
    return v20 = v9 ^ (unsigned int)key;
}