Last active
October 21, 2019 12:02
-
-
Save AmyrAhmady/28534e9779b58eb3ba0ba46821d2ac22 to your computer and use it in GitHub Desktop.
reeeeeeeeeeeee
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| int __thiscall sub_401010(int *this) | |
| { | |
| int *v1; // ebx | |
| int v2; // ecx | |
| _DWORD *v3; // eax | |
| signed int v4; // edi | |
| unsigned int v5; // esi | |
| int v6; // edi | |
| int v7; // esi | |
| int v8; // eax | |
| int v9; // edx | |
| int v10; // eax | |
| int v11; // ebx | |
| int *v12; // ecx | |
| int v13; // ecx | |
| int v14; // eax | |
| signed int v15; // ecx | |
| int v16; // ecx | |
| char v17; // al | |
| int v18; // ecx | |
| int v19; // edx | |
| int v20; // ecx | |
| char v21; // al | |
| int v22; // ecx | |
| int v23; // eax | |
| bool v24; // al | |
| int v25; // esi | |
| int v26; // ecx | |
| int v28; // [esp+0h] [ebp-3Ch] | |
| int v29; // [esp+4h] [ebp-38h] | |
| int v30; // [esp+8h] [ebp-34h] | |
| int v31; // [esp+Ch] [ebp-30h] | |
| __int64 v32; // [esp+10h] [ebp-2Ch] | |
| int v33; // [esp+18h] [ebp-24h] | |
| int v34; // [esp+1Ch] [ebp-20h] | |
| int v35; // [esp+20h] [ebp-1Ch] | |
| _DWORD *v36; // [esp+24h] [ebp-18h] | |
| int *v37; // [esp+28h] [ebp-14h] | |
| int *v38; // [esp+2Ch] [ebp-10h] | |
| int v39; // [esp+30h] [ebp-Ch] | |
| int v40; // [esp+34h] [ebp-8h] | |
| int v41; // [esp+38h] [ebp-4h] | |
| v38 = &v28; | |
| v1 = this; | |
| v37 = this; | |
| v2 = *this; | |
| v33 = 0; | |
| v3 = (int *)((char *)v37 + *(_DWORD *)(v2 + 4)); | |
| v36 = v3; | |
| v4 = v3[9]; | |
| v5 = v3[8]; | |
| if ( v4 >= 0 && (v4 > 0 || v5 && v4 >= 0 && (v4 > 0 || v5 > 0xB)) ) | |
| { | |
| v6 = (__PAIR__((unsigned int)v4, v5) - 11) >> 32; | |
| v7 = v5 - 11; | |
| } | |
| else | |
| { | |
| v32 = 0i64; | |
| v6 = 0; | |
| v7 = 0; | |
| } | |
| v8 = v3[14]; | |
| v9 = v2; | |
| v34 = v6; | |
| LODWORD(v32) = v1; | |
| v35 = v2; | |
| if ( v8 ) | |
| { | |
| (*(void (__thiscall **)(_DWORD))(*(_DWORD *)v8 + 4))(v36[14]); | |
| v2 = *v1; | |
| v9 = *v1; | |
| v35 = *v1; | |
| } | |
| v41 = 0; | |
| v36 = (int *)((char *)v1 + *(_DWORD *)(v2 + 4)); | |
| v10 = v2; | |
| v11 = (int)v37; | |
| if ( !v36[3] ) | |
| { | |
| v9 = v2; | |
| v11 = (int)v37; | |
| if ( v36[15] ) | |
| { | |
| v9 = v35; | |
| v12 = (int *)v36[15]; | |
| v6 = v34; | |
| if ( v12 != v37 ) | |
| { | |
| std::basic_ostream<char,std::char_traits<char>>::flush(v12, v35); | |
| v10 = *(_DWORD *)v11; | |
| v9 = *(_DWORD *)v11; | |
| } | |
| } | |
| } | |
| v13 = *(_DWORD *)(v10 + 4); | |
| v14 = *(_DWORD *)(v13 + v11 + 12); | |
| BYTE4(v32) = v14 == 0; | |
| v41 = 1; | |
| if ( v14 ) | |
| { | |
| v15 = 4; | |
| } | |
| else | |
| { | |
| LOBYTE(v41) = 2; | |
| if ( (*(_DWORD *)(v13 + v11 + 20) & 0x1C0) != 64 ) | |
| { | |
| while ( v6 >= 0 && (v6 > 0 || v7) ) | |
| { | |
| v16 = *(_DWORD *)(*(_DWORD *)v11 + 4); | |
| v17 = *(_BYTE *)(v16 + v11 + 64); | |
| v18 = *(_DWORD *)(v16 + v11 + 56); | |
| LOBYTE(v34) = v17; | |
| if ( std::basic_streambuf<char,std::char_traits<char>>::sputc(v18, v34) == -1 ) | |
| { | |
| v15 = 4; | |
| goto LABEL_34; | |
| } | |
| v6 = (__PAIR__((unsigned int)v6, v7--) - 1) >> 32; | |
| } | |
| v9 = *(_DWORD *)v11; | |
| } | |
| if ( std::basic_streambuf<char,std::char_traits<char>>::sputn( | |
| *(_DWORD *)(*(_DWORD *)(v9 + 4) + v11 + 56), | |
| "Hello world", | |
| 11, | |
| 0) != 11 | |
| || v19 ) | |
| { | |
| LABEL_31: | |
| v15 = 4; | |
| } | |
| else | |
| { | |
| while ( v6 >= 0 && (v6 > 0 || v7) ) | |
| { | |
| v20 = *(_DWORD *)(*(_DWORD *)v11 + 4); | |
| v21 = *(_BYTE *)(v20 + v11 + 64); | |
| v22 = *(_DWORD *)(v20 + v11 + 56); | |
| LOBYTE(v34) = v21; | |
| if ( std::basic_streambuf<char,std::char_traits<char>>::sputc(v22, v34) == -1 ) | |
| goto LABEL_31; | |
| v6 = (__PAIR__((unsigned int)v6, v7--) - 1) >> 32; | |
| } | |
| v15 = 0; | |
| } | |
| LABEL_34: | |
| v23 = *(_DWORD *)(*(_DWORD *)v11 + 4); | |
| *(_DWORD *)(v23 + v11 + 32) = 0; | |
| *(_DWORD *)(v23 + v11 + 36) = 0; | |
| v41 = 1; | |
| } | |
| std::basic_ios<char,std::char_traits<char>>::setstate( | |
| v11 + *(_DWORD *)(*(_DWORD *)v11 + 4), | |
| v15, | |
| 0, | |
| v28, | |
| v29, | |
| v30, | |
| v31, | |
| v32, | |
| HIDWORD(v32), | |
| v33, | |
| v34, | |
| v35, | |
| v36, | |
| v37, | |
| v38, | |
| v39, | |
| v40, | |
| v41); | |
| v41 = 4; | |
| v24 = std::uncaught_exception(); | |
| v25 = v32; | |
| if ( !v24 ) | |
| std::basic_ostream<char,std::char_traits<char>>::_Osfx(v32); | |
| LOBYTE(v41) = 5; | |
| v26 = *(_DWORD *)(*(_DWORD *)(*(_DWORD *)v25 + 4) + v25 + 56); | |
| if ( v26 ) | |
| (*(void (**)(void))(*(_DWORD *)v26 + 8))(); | |
| return v11; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment