Untitled
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); }