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