ulong TestFlagi(void) { char cVar1; uint uVar2; FILE *__stream; long lVar3; eh_frame_hdr *peVar4; eh_frame_hdr *peVar5; ulong uVar6; byte *pbVar7; char *pcVar8; ulong uVar9; long in_FS_OFFSET; byte bVar10; undefined auVar11 [16]; undefined auVar12 [16]; undefined auVar13 [16]; byte bStack448; char acStack444 [4]; undefined2 uStack440; char acStack424 [256]; char user_input [64]; byte abStack104 [72]; long local_20; bVar10 = 0; local_20 = *(long *)(in_FS_OFFSET + 0x28); puts("what\'s the flag?"); fgets(user_input,0x40,stdin); lVar3 = 0x40; pcVar8 = user_input; do { pcVar8 = pcVar8; if (lVar3 == 0) break; lVar3 = lVar3 + -1; pcVar8 = pcVar8 + (ulong)bVar10 * -2 + 1; cVar1 = *pcVar8; pcVar8 = pcVar8; } while (cVar1 != '\n'); pcVar8[-1] = '\0'; __stream = fmemopen((void *)0x0,0x100,"w+"); uVar2 = 0x1f; while (0x1ca08425U >> uVar2 == 0) { uVar2 = uVar2 - 1; } fprintf(__stream,"%0*o24\n%n",(ulong)uVar2,0xb60a2e8f); fseek(__stream,0,0); __isoc99_fscanf(__stream,&DAT_00102022,acStack444); uStack440._0_1_ = acStack444[0]; uStack440._1_1_ = bStack448; auVar11 = (undefined [16])0x5f3032667463616e; auVar13 = (undefined [16])0x706050403020100; lVar3 = 0x20; do { auVar12 = pshufb(auVar13,auVar11); auVar11 = pshufb(auVar11,auVar11); auVar13 = CONCAT115(SUB161(auVar13 >> 0x78,0) + '\x10', CONCAT114(SUB161(auVar13 >> 0x70,0) + '\x10', CONCAT113(SUB161(auVar13 >> 0x68,0) + '\x10', CONCAT112(SUB161(auVar13 >> 0x60,0) + '\x10', CONCAT111(SUB161(auVar13 >> 0x58,0) + '\x10', CONCAT110(SUB161(auVar13 >> 0x50,0) + '\x10',CONCAT19(SUB161( auVar13 >> 0x48,0) + '\x10', CONCAT18(SUB161(auVar13 >> 0x40,0) + '\x10', CONCAT17(SUB161(auVar13 >> 0x38,0) + '\x10',CONCAT16(SUB161(auVar13 >> 0x30,0) + '\x10', CONCAT15(SUB161(auVar13 >> 0x28,0) + '\x10', CONCAT14(SUB161(auVar13 >> 0x20,0) + '\x10',CONCAT13(SUB161(auVar13 >> 0x18,0) + '\x10', CONCAT12(SUB161(auVar13 >> 0x10,0) + '\x10', CONCAT11(SUB161(auVar13 >> 8,0) + '\x10', SUB161(auVar13,0) + '\x10')))))) ))))))))); /* WARNING: Store size is inaccurate */ *(undefined *)(&uStack440 + lVar3 * 4) = auVar12; lVar3 = lVar3 + -2; } while (lVar3 != 0); fclose(__stream); peVar4 = (eh_frame_hdr *)&DAT_001020a0; pbVar7 = abStack104; do { peVar5 = (eh_frame_hdr *)&peVar4->eh_frame_pointer_encoding; uVar6 = (ulong)(byte)((((char)uStack440 + '\x01') - (char)abStack104) + (char)pbVar7); uStack440._1_1_ = uStack440._1_1_ + acStack424[uVar6]; uVar9 = (ulong)uStack440._1_1_; cVar1 = acStack424[uVar9]; acStack424[uVar9] = acStack424[uVar6]; acStack424[uVar6] = cVar1; *pbVar7 = cVar1 + acStack424[uVar9] ^ peVar4->eh_frame_hdr_version; peVar4 = peVar5; pbVar7 = pbVar7 + 1; } while (peVar5 != &eh_frame_hdr_001020d8); uStack440 = CONCAT11(uStack440._1_1_,(char)uStack440 + '8'); uVar2 = strncmp(user_input,(char *)abStack104,0x38); if (uVar2 == 0) { puts("good job!"); } else { uVar2 = 1; puts("nope, not this time!"); } if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) { /* WARNING: Subroutine does not return */ __stack_chk_fail(); } return (ulong)uVar2; }