Untitled

mail@pastecode.io avatarunknown
plain_text
6 days ago
7.4 kB
3
Indexable
Never
__int64 __fastcall start(
        __int64 a1,
        __int64 a2,
        __int64 a3,
        __int64 a4,
        __int64 a5,
        __int64 a6,
        __int64 a7,
        __int64 a8)
{
  __int64 v8; // rbp
  char *v9; // rsi
  _BYTE *v10; // rdi
  char v11; // dl
  char v12; // al
  int i; // ebx
  bool v14; // cf
  char v15; // dl
  char v16; // tt
  bool v17; // cf
  char v18; // dl
  char v19; // tt
  __int64 v20; // rax
  bool v21; // cf
  char v22; // dl
  char v23; // tt
  bool v24; // cf
  char v25; // dl
  char v26; // dl
  char v27; // tt
  BOOL v28; // eax
  bool v29; // cf
  char v30; // dl
  char v31; // dl
  char v32; // tt
  int v33; // eax
  bool v34; // cf
  char v35; // dl
  char v36; // dl
  char v37; // tt
  int v38; // eax
  bool v39; // cf
  char v40; // dl
  char v41; // tt
  int v42; // eax
  int v43; // eax
  bool v44; // cf
  char v45; // dl
  char v46; // dl
  char v47; // tt
  bool v48; // cf
  char v49; // dl
  char v50; // tt
  int v51; // eax
  unsigned __int64 v52; // rcx
  bool v53; // cf
  char v54; // dl
  char v55; // dl
  char v56; // tt
  bool v57; // cf
  char v58; // dl
  char v59; // tt
  __int64 v60; // rax
  unsigned __int64 v61; // rcx
  bool v62; // cf
  char v63; // dl
  char v64; // dl
  char v65; // tt
  bool v66; // cf
  char v67; // dl
  char v68; // tt
  unsigned __int64 v69; // rcx
  unsigned __int8 v70; // al
  char v71; // cf
  unsigned __int64 v72; // rcx
  char *v74; // [rsp+8h] [rbp+8h]
  __int64 v75; // [rsp+18h] [rbp+18h]
  _BYTE *v76; // [rsp+18h] [rbp+18h]

  sub_1407741DF();
  v9 = v74;
  v10 = v76;
  v11 = 0x80;
LABEL_2:
  v12 = *v9++;
  *v10++ = v12;
  for ( i = 2; ; i = 1 )
  {
    while ( 1 )
    {
      while ( 1 )
      {
        v14 = __CFADD__(v11, v11);
        v11 *= 2;
        if ( !v11 )
        {
          v15 = *v9++;
          v16 = v14 + v15;
          v14 = __CFADD__(v14, v15) | __CFADD__(v15, v14 + v15);
          v11 = v15 + v16;
        }
        if ( !v14 )
          goto LABEL_2;
        v17 = __CFADD__(v11, v11);
        v11 *= 2;
        if ( !v11 )
        {
          v18 = *v9++;
          v19 = v17 + v18;
          v17 = __CFADD__(v17, v18) | __CFADD__(v18, v17 + v18);
          v11 = v18 + v19;
        }
        if ( v17 )
          break;
        v43 = 1;
        do
        {
          v44 = __CFADD__(v11, v11);
          v45 = 2 * v11;
          if ( !v45 )
          {
            v46 = *v9++;
            v47 = v44 + v46;
            v44 = __CFADD__(v44, v46) | __CFADD__(v46, v44 + v46);
            v45 = v46 + v47;
          }
          v43 += v44 + v43;
          v48 = __CFADD__(v45, v45);
          v11 = 2 * v45;
          if ( !v11 )
          {
            v49 = *v9++;
            v50 = v48 + v49;
            v48 = __CFADD__(v48, v49) | __CFADD__(v49, v48 + v49);
            v11 = v49 + v50;
          }
        }
        while ( v48 );
        v51 = v43 - i;
        i = 1;
        if ( v51 )
        {
          v60 = (unsigned int)((v51 - 1) << 8);
          LOBYTE(v60) = *v9++;
          v8 = (unsigned int)v60;
          LODWORD(v61) = 1;
          do
          {
            v62 = __CFADD__(v11, v11);
            v63 = 2 * v11;
            if ( !v63 )
            {
              v64 = *v9++;
              v65 = v62 + v64;
              v62 = __CFADD__(v62, v64) | __CFADD__(v64, v62 + v64);
              v63 = v64 + v65;
            }
            v61 = (unsigned int)v61 + v62 + (_DWORD)v61;
            v66 = __CFADD__(v63, v63);
            v11 = 2 * v63;
            if ( !v11 )
            {
              v67 = *v9++;
              v68 = v66 + v67;
              v66 = __CFADD__(v66, v67) | __CFADD__(v67, v66 + v67);
              v11 = v67 + v68;
            }
          }
          while ( v66 );
          if ( (unsigned int)v60 >= 0x7D00 )
          {
LABEL_47:
            v61 = (unsigned int)(v61 + 2);
LABEL_48:
            qmemcpy(v10, &v10[-v60], v61);
            v10 += v61;
          }
          else
          {
            if ( (unsigned int)v60 < 0x500 )
            {
              if ( (unsigned int)v60 > 0x7F )
                goto LABEL_48;
              goto LABEL_47;
            }
            v69 = (unsigned int)(v61 + 1);
            qmemcpy(v10, &v10[-v60], v69);
            v10 += v69;
          }
        }
        else
        {
          LODWORD(v52) = 1;
          do
          {
            v53 = __CFADD__(v11, v11);
            v54 = 2 * v11;
            if ( !v54 )
            {
              v55 = *v9++;
              v56 = v53 + v55;
              v53 = __CFADD__(v53, v55) | __CFADD__(v55, v53 + v55);
              v54 = v55 + v56;
            }
            v52 = (unsigned int)v52 + v53 + (_DWORD)v52;
            v57 = __CFADD__(v54, v54);
            v11 = 2 * v54;
            if ( !v11 )
            {
              v58 = *v9++;
              v59 = v57 + v58;
              v57 = __CFADD__(v57, v58) | __CFADD__(v58, v57 + v58);
              v11 = v58 + v59;
            }
          }
          while ( v57 );
          qmemcpy(v10, &v10[-v8], v52);
          v10 += v52;
        }
      }
      v20 = 0i64;
      v21 = __CFADD__(v11, v11);
      v11 *= 2;
      if ( !v11 )
      {
        v22 = *v9++;
        v23 = v21 + v22;
        v21 = __CFADD__(v21, v22) | __CFADD__(v22, v21 + v22);
        v11 = v22 + v23;
      }
      if ( !v21 )
        break;
      v24 = __CFADD__(v11, v11);
      v25 = 2 * v11;
      if ( !v25 )
      {
        v26 = *v9++;
        v27 = v24 + v26;
        v24 = __CFADD__(v24, v26) | __CFADD__(v26, v24 + v26);
        v25 = v26 + v27;
      }
      v28 = v24;
      v29 = __CFADD__(v25, v25);
      v30 = 2 * v25;
      if ( !v30 )
      {
        v31 = *v9++;
        v32 = v29 + v31;
        v29 = __CFADD__(v29, v31) | __CFADD__(v31, v29 + v31);
        v30 = v31 + v32;
      }
      v33 = v28 + v29 + v28;
      v34 = __CFADD__(v30, v30);
      v35 = 2 * v30;
      if ( !v35 )
      {
        v36 = *v9++;
        v37 = v34 + v36;
        v34 = __CFADD__(v34, v36) | __CFADD__(v36, v34 + v36);
        v35 = v36 + v37;
      }
      v38 = v33 + v34 + v33;
      v39 = __CFADD__(v35, v35);
      v11 = 2 * v35;
      if ( !v11 )
      {
        v40 = *v9++;
        v41 = v39 + v40;
        v39 = __CFADD__(v39, v40) | __CFADD__(v40, v39 + v40);
        v11 = v40 + v41;
      }
      v42 = v38 + v39 + v38;
      if ( v42 )
        LOBYTE(v42) = v10[-v42];
      *v10++ = v42;
      i = 2;
    }
    v70 = *v9++;
    v71 = v70 & 1;
    LOBYTE(v20) = v70 >> 1;
    if ( !(_BYTE)v20 )
      break;
    v72 = (unsigned int)v71 + 2;
    v8 = (unsigned int)v20;
    qmemcpy(v10, &v10[-v20], v72);
    v10 += v72;
  }
  return (unsigned int)((_DWORD)v10 - v75);
}

// positive sp value has been detected, the output may be wrong!
__int64 __fastcall sub_1407741DF(__int64 a1, __int64 a2)
{
  char *v2; // rbx
  char *v4; // [rsp-58h] [rbp-58h]
  void (__fastcall *v7)(_QWORD); // [rsp-8h] [rbp-8h]

  v2 = (char *)v7 - 7168093;
  if ( !*((_DWORD *)v7 - 1037776) )
  {
    v7((char *)v7 + 463);
    v2 = v4;
  }
  return ((__int64 (__fastcall *)(__int64, __int64))(v2 + 3016989))(a1, a2);
}