unsigned __int64 func() { int v0; // edx int v1; // ecx int v2; // r8d int v3; // r9d int v5; // [rsp+Ch] [rbp-24h] BYREF char v6[24]; // [rsp+10h] [rbp-20h] BYREF unsigned __int64 v7; // [rsp+28h] [rbp-8h]
v7 = __readfsqword(0x28u); puts("Wellcome to MoeCTF2024!"); puts("This time....."); puts("NX is enabled!"); puts("Your id?"); read(0LL, v6, 25LL); puts("Confirm your id:"); puts(v6); puts("Your real name?"); read(0LL, &buf2, 256LL); puts("Use your real name as id?"); puts("give me the size of your real name , 0 means quit"); fflush(stdin); _isoc99_scanf((unsignedint)"%d", (unsignedint)&v5, v0, v1, v2, v3); if ( v5 ) { if ( v5 > 16 ) puts("Number out of range!"); else j_memcpy(v6, &buf2, v5); } return v7 - __readfsqword(0x28u); }