Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
- undefined8 FUN_00100680(void)
- {
- long lVar1;
- int prev_char;
- int value;
- long counter;
- long in_FS_OFFSET;
- char input [136];
- char *curr_position;
- long offset;
- lVar1 = *(long *)(in_FS_OFFSET + 0x28);
- __printf_chk(1,"Flag: ");
- __isoc99_scanf();
- /* if first char is 'H' */
- if ((int)input[0] == _h) {
- if (999 < DAT_00301024) {
- LAB_00100718:
- puts("Congratz! :D");
- goto LAB_0010073c;
- }
- /* second char of input is used as comparison */
- prev_char = (int)input[1];
- if (DAT_00301024 == prev_char - (int)input[0]) {
- counter = 2;
- do {
- /* 0, 8, 12, 16, ...
- Only used as terminating condition */
- offset = counter * 4;
- if (999 < *(int *)(&h + offset)) goto LAB_00100718;
- curr_position = input + counter;
- /* (init: 2), 3, 4, ... */
- counter = counter + 1;
- /* (input[0+2] - input[1]), (input[0+3]-input[2]), (input[0+4]-input[3]), ...
- */
- value = (int)*curr_position - prev_char;
- prev_char = (int)*curr_position;
- } while (value == *(int *)(&h + offset));
- }
- }
- puts("Wrong flag.... :(");
- LAB_0010073c:
- if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
- return 0;
- }
- /* WARNING: Subroutine does not return */
- __stack_chk_fail();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement