int __cdecl main(int argc, const char **argv, const char **envp) { signed __int64 v3; // rcx@2 int *v4; // rdi@2 int result; // eax@11 __int64 v6; // rbx@11 FILE *stream; // [sp+18h] [bp-D8h]@1 int v8; // [sp+20h] [bp-D0h]@2 int v9; // [sp+24h] [bp-CCh]@5 int v10; // [sp+34h] [bp-BCh]@5 __int64 v11; // [sp+38h] [bp-B8h]@5 int v12; // [sp+48h] [bp-A8h]@5 char s; // [sp+50h] [bp-A0h]@2 __int64 v14; // [sp+D8h] [bp-18h]@1 v14 = *MK_FP(__FS__, 40LL); stream = fopen("flag.txt", "r"); if ( stream ) { fgets(&s, 32, stream); fclose(stream); v3 = 5LL; v4 = &v8; while ( v3 ) { *(_QWORD *)v4 = 0LL; v4 += 2; --v3; } *v4 = 0; v8 = 17; v10 = 16; v12 = 0; printf("User : ", 32LL, v4 + 1, argv); fflush(0LL); read(0, &v9, v8); printf("Password : ", &v9); fflush(0LL); read(0, &v11, v10); if ( !strncmp((const char *)&v9, "charly", 6uLL) && !strncmp((const char *)&v11, "h4ckTH1s", 8uLL) ) { puts("Welcome guest!"); if ( v12 == 1 ) printf("Your flag is : %s\n", &s); } } else { puts("Error leyendo datos"); } result = 0; v6 = *MK_FP(__FS__, 40LL) ^ v14; return result; }