Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __thiscall wtf_WITH_BUFFER(_DWORD *this, _BYTE *inBuf, _BYTE *outBuf, __int64 a4)
- {
- int result; // eax
- __int128 v5; // xmm0
- int v6; // esi
- __int128 v7; // xmm0
- int v8; // ebx
- __int128 v9; // xmm0
- int v10; // ecx
- int v11; // edx
- int v12; // edi
- int v13; // ecx
- int v14; // ecx
- int v15; // esi
- int v16; // ecx
- int v17; // edi
- int v18; // eax
- int v19; // edx
- int v20; // ebx
- int v21; // ebx
- int v22; // edi
- int v23; // ecx
- int v24; // ebx
- int v25; // esi
- int v26; // edx
- int v27; // ecx
- int v28; // edx
- int v29; // ebx
- int v30; // edx
- int v31; // ecx
- int v32; // eax
- int v33; // ebx
- int v34; // esi
- int v35; // ecx
- int v36; // ecx
- bool v37; // zf
- unsigned int v38; // eax
- char *v39; // esi
- int v40; // edx
- int v41; // esi
- unsigned int v42; // ebx
- _BYTE *v43; // edi
- unsigned int v44; // edx
- unsigned int v45; // ecx
- _BYTE *v46; // esi
- char v47; // al
- int v48; // esi
- int v49; // kr08_4
- char v50[2]; // [esp+0h] [ebp-E0h]
- char v51[62]; // [esp+2h] [ebp-DEh]
- int v52; // [esp+40h] [ebp-A0h]
- int v53; // [esp+44h] [ebp-9Ch]
- int v54; // [esp+48h] [ebp-98h]
- int v55; // [esp+4Ch] [ebp-94h]
- __int128 v56; // [esp+50h] [ebp-90h]
- __int128 v57; // [esp+60h] [ebp-80h]
- __int128 v58; // [esp+70h] [ebp-70h]
- __int128 v59; // [esp+80h] [ebp-60h]
- __int64 v60; // [esp+90h] [ebp-50h]
- _DWORD *v61; // [esp+98h] [ebp-48h]
- int v62; // [esp+9Ch] [ebp-44h]
- int v63; // [esp+A0h] [ebp-40h]
- int v64; // [esp+A4h] [ebp-3Ch]
- int v65; // [esp+A8h] [ebp-38h]
- int v66; // [esp+ACh] [ebp-34h]
- int v67; // [esp+B0h] [ebp-30h]
- int v68; // [esp+B4h] [ebp-2Ch]
- int v69; // [esp+B8h] [ebp-28h]
- int v70; // [esp+BCh] [ebp-24h]
- int v71; // [esp+C0h] [ebp-20h]
- int v72; // [esp+C4h] [ebp-1Ch]
- int v73; // [esp+C8h] [ebp-18h]
- int v74; // [esp+CCh] [ebp-14h]
- unsigned int v75; // [esp+D0h] [ebp-10h]
- unsigned int v76; // [esp+D4h] [ebp-Ch]
- int v77; // [esp+D8h] [ebp-8h]
- int v78; // [esp+DCh] [ebp-4h]
- int v79; // [esp+F4h] [ebp+14h]
- int v80; // [esp+F4h] [ebp+14h]
- int v81; // [esp+F4h] [ebp+14h]
- v75 = a4;
- result = HIDWORD(a4) | a4;
- v61 = this;
- v66 = HIDWORD(a4);
- if ( a4 )
- {
- v52 = (char *)this - v51;
- do
- {
- v5 = *(_OWORD *)this;
- v76 = 10;
- v56 = v5;
- v6 = DWORD1(v56);
- v7 = *((_OWORD *)this + 1);
- v67 = DWORD1(v56);
- v57 = v7;
- v58 = *((_OWORD *)this + 2);
- v8 = HIDWORD(v58);
- v9 = *((_OWORD *)this + 3);
- v10 = v56;
- v77 = HIDWORD(v58);
- v59 = v9;
- v11 = v9;
- v70 = DWORD2(v9);
- v79 = DWORD1(v59);
- v71 = DWORD2(v58);
- v72 = DWORD1(v58);
- v73 = v58;
- v63 = HIDWORD(v57);
- v62 = DWORD1(v57);
- v74 = v57;
- v69 = HIDWORD(v9);
- v12 = DWORD2(v57);
- v64 = HIDWORD(v56);
- v68 = DWORD2(v57);
- v65 = DWORD2(v56);
- v78 = v56;
- do
- {
- v74 ^= __ROL4__(v10 + v11, 7);
- v13 = v73 ^ __ROL4__(v74 + v10, 9);
- v55 = v13;
- v53 = v11 ^ __ROL4__(v13 + v74, 13);
- v78 ^= __ROR4__(v13 + v53, 14);
- v73 = v72 ^ __ROL4__(v6 + v62, 7);
- v14 = v79 ^ __ROL4__(v73 + v62, 9);
- HIDWORD(v60) = v14;
- v15 = v67 ^ __ROL4__(v73 + v14, 13);
- v72 = v62 ^ __ROR4__(v15 + v14, 14);
- v54 = v70 ^ __ROL4__(v12 + v71, 7);
- v16 = v65 ^ __ROL4__(v54 + v71, 9);
- v17 = v68 ^ __ROL4__(v16 + v54, 13);
- v70 = v17;
- v71 ^= __ROR4__(v16 + v17, 14);
- v18 = v64 ^ __ROL4__(v8 + v69, 7);
- v19 = v63 ^ __ROL4__(v18 + v69, 9);
- v20 = v77 ^ __ROL4__(v19 + v18, 13);
- v77 = v20;
- v80 = v69 ^ __ROR4__(v19 + v20, 14);
- v21 = v15 ^ __ROL4__(v18 + v78, 7);
- v67 = v21;
- DWORD1(v56) = v15 ^ __ROL4__(v18 + v78, 7);
- v22 = v16 ^ __ROL4__(v21 + v78, 9);
- v65 = v22;
- DWORD2(v56) = v16 ^ __ROL4__(v21 + v78, 9);
- v23 = v18 ^ __ROL4__(v22 + v21, 13);
- v64 = v23;
- HIDWORD(v56) = v18 ^ __ROL4__(v22 + v21, 13);
- v78 ^= __ROR4__(v22 + v23, 14);
- LODWORD(v56) = v78;
- v24 = v70 ^ __ROL4__(v74 + v72, 7);
- v68 = v24;
- DWORD2(v57) = v70 ^ __ROL4__(v74 + v72, 7);
- v12 = v70 ^ __ROL4__(v74 + v72, 7);
- v25 = v19 ^ __ROL4__(v72 + v24, 9);
- v63 = v25;
- HIDWORD(v57) = v19 ^ __ROL4__(v72 + v24, 9);
- v26 = v74 ^ __ROL4__(v25 + v24, 13);
- v74 = v26;
- LODWORD(v57) = v26;
- v62 = v72 ^ __ROR4__(v26 + v25, 14);
- DWORD1(v57) = v72 ^ __ROR4__(v26 + v25, 14);
- v27 = v73;
- v28 = v77 ^ __ROL4__(v73 + v71, 7);
- v77 = v28;
- HIDWORD(v58) = v28;
- v29 = v55 ^ __ROL4__(v71 + v28, 9);
- v73 = v29;
- v30 = v27 ^ __ROL4__(v29 + v28, 13);
- *(_QWORD *)&v58 = __PAIR__(v30, v29);
- v72 = v30;
- v31 = v71 ^ __ROR4__(v30 + v29, 14);
- v32 = v80;
- v71 = v31;
- DWORD2(v58) = v31;
- v11 = v53 ^ __ROL4__(v80 + v54, 7);
- v33 = HIDWORD(v60) ^ __ROL4__(v80 + v11, 9);
- v79 = v33;
- DWORD1(v59) = v33;
- v34 = v54 ^ __ROL4__(v33 + v11, 13);
- v70 = v34;
- DWORD2(v59) = v54 ^ __ROL4__(v33 + v11, 13);
- v35 = v34 + v33;
- v8 = v77;
- v6 = v67;
- v36 = v32 ^ __ROR4__(v35, 14);
- v37 = v76-- == 1;
- v69 = v36;
- HIDWORD(v59) = v36;
- v10 = v78;
- }
- while ( !v37 );
- LODWORD(v59) = v11;
- v38 = 0;
- do
- {
- v39 = &v51[v38];
- *(_DWORD *)((char *)&v56 + v38) += *(_DWORD *)&v51[v38 + v52];
- v40 = *(_DWORD *)((char *)&v56 + v38);
- *(v39 - 1) = *(_WORD *)((char *)&v56 + v38) >> 8;
- v50[v38] = v40;
- v38 += 4;
- *v39 = BYTE2(v40);
- v39[1] = HIBYTE(v40);
- }
- while ( v38 < 0x40 );
- this = v61;
- v41 = v66;
- v42 = v75;
- v37 = v61[8] == -1;
- ++this[8];
- this[9] += v37;
- if ( v41 < 0 || v41 <= 0 && v42 < 0x40 )
- {
- v76 = v42;
- v81 = v41;
- if ( v41 < 0 || v41 <= 0 && !v42 )
- goto LABEL_17;
- }
- else
- {
- v76 = 64;
- v81 = 0;
- }
- v43 = outBuf;
- v60 = 0i64;
- v44 = 0;
- v45 = 0;
- do
- {
- v46 = inBuf++;
- v47 = *v46 ^ v50[v45];
- v48 = v66;
- *v43++ = v47;
- v44 = (__PAIR__(v44, v45++) + 1) >> 32;
- v49 = v42 - 1;
- v41 = (__PAIR__((unsigned int)v48, v42--) - 1) >> 32;
- v66 = v41;
- }
- while ( (signed __int64)__PAIR__(v44, v45) < __PAIR__(v81, v76) );
- this = v61;
- outBuf = v43;
- v75 = v49;
- LABEL_17:
- result = v41 | v42;
- }
- while ( v41 | v42 );
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement