// File: /workspace/github_c_makefile_star2_O0/mabdi[P]bunney/bunny-main.c
// Function: delete_walk
static _u8 delete_walk(struct bunny_traceitem* t, _u32 csize) {
  _s32  pos, max = t->fuzzable - csize;

  /* Don't delete everything! */
  if (csize >= t->fuzzable) return 0;

  if (reg_execs > cycle_branch_limit && (zero_range || reg_params > cycle_value_limit)) return 1;

  for (pos=0;pos <= max;pos++) {
    struct bunny_traceitem* n;
    _u8 rne = 0;

    flow_command(FLOW_RESET,0,0,0);
    flow_command(FLOW_DELETE,pos,csize,0);

    n = run_program();

    if (check_crash(n)) {
        outf("deleting %u bytes at offset #%u.\n\n",
          csize, pos);
      if (keep_fault) continue;
      return 1;
    }

    if (reg_execs > cycle_branch_limit) epath_ign++;
      else if ((rne=register_new_exec(n,1))) {
        outf("      Triggered by deleting %u bytes at offset #%u.\n",
          csize, pos);
  
        reg_execs++;
        if (reg_execs > cycle_branch_limit) 
          outf("      >>> Per-cycle call path limit of %u exceeded (use -N to adjust).\n",cycle_branch_limit);
      }

    if (reg_params > cycle_value_limit) ppath_ign++;
      else if (register_new_param(n,0,0,1,rne)) {
        outf("      Triggered by deleting %u bytes at offset #%u.\n",
          csize, pos);
        reg_params++;
        if (reg_params > cycle_value_limit) 
          outf("      >>> Per-cycle function parameter limit of %u exceeded (use -P to adjust).\n",cycle_value_limit);
      }
    
    /* Context not saved */
    if (!rne) discard_context(n,1);
    
  }

  return 0;
  
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
subl -0x14(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jb 0xa561
movb $0x0, -0x1(%rbp)
jmp 0xa813
movl 0x7e61(%rip), %eax      # 0x123c8
cmpl 0x7cb7(%rip), %eax      # 0x12224
jbe 0xa592
movzbl 0x7d8f(%rip), %eax      # 0x12305
cmpl $0x0, %eax
jne 0xa589
movl 0x7e4b(%rip), %eax      # 0x123cc
cmpl 0x7ca1(%rip), %eax      # 0x12228
jbe 0xa592
movb $0x1, -0x1(%rbp)
jmp 0xa813
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jg 0xa80f
movb $0x0, -0x29(%rbp)
movl $0x2, %edi
xorl %ecx, %ecx
movl %ecx, %esi
movl %ecx, %edx
callq 0x7590
movl -0x18(%rbp), %esi
movl -0x14(%rbp), %edx
movl $0x68, %edi
xorl %ecx, %ecx
callq 0x7590
callq 0x7b70
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0xcf40
cmpb $0x0, %al
je 0xa635
jmp 0xa5e3
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
leaq 0x5ed5(%rip), %rdi      # 0x104c5
movb $0x0, %al
callq 0x2030
cmpq $0x0, 0x7cd9(%rip)      # 0x122d8
je 0xa61c
movq 0x7cd0(%rip), %rdi      # 0x122d8
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
leaq 0x5eb0(%rip), %rsi      # 0x104c5
movb $0x0, %al
callq 0x22d0
jmp 0xa61e
cmpb $0x0, 0x7cdd(%rip)      # 0x12302
je 0xa62c
jmp 0xa801
movb $0x1, -0x1(%rbp)
jmp 0xa813
movl 0x7d8d(%rip), %eax      # 0x123c8
cmpl 0x7be3(%rip), %eax      # 0x12224
jbe 0xa657
movl 0x7d17(%rip), %eax      # 0x12360
addl $0x1, %eax
movl %eax, 0x7d0e(%rip)      # 0x12360
jmp 0xa70d
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0x8770
movb %al, -0x29(%rbp)
cmpb $0x0, %al
je 0xa70b
jmp 0xa672
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
leaq 0x5e69(%rip), %rdi      # 0x104e8
movb $0x0, %al
callq 0x2030
cmpq $0x0, 0x7c4a(%rip)      # 0x122d8
je 0xa6ab
movq 0x7c41(%rip), %rdi      # 0x122d8
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
leaq 0x5e44(%rip), %rsi      # 0x104e8
movb $0x0, %al
callq 0x22d0
jmp 0xa6ad
movl 0x7d15(%rip), %eax      # 0x123c8
addl $0x1, %eax
movl %eax, 0x7d0c(%rip)      # 0x123c8
movl 0x7d06(%rip), %eax      # 0x123c8
cmpl 0x7b5c(%rip), %eax      # 0x12224
jbe 0xa709
jmp 0xa6cc
movl 0x7b52(%rip), %esi      # 0x12224
leaq 0x5b9b(%rip), %rdi      # 0x10274
movb $0x0, %al
callq 0x2030
cmpq $0x0, 0x7bf0(%rip)      # 0x122d8
je 0xa705
movq 0x7be7(%rip), %rdi      # 0x122d8
movl 0x7b2d(%rip), %edx      # 0x12224
leaq 0x5b76(%rip), %rsi      # 0x10274
movb $0x0, %al
callq 0x22d0
jmp 0xa707
jmp 0xa709
jmp 0xa70b
jmp 0xa70d
movl 0x7cb9(%rip), %eax      # 0x123cc
cmpl 0x7b0f(%rip), %eax      # 0x12228
jbe 0xa72f
movl 0x7c47(%rip), %eax      # 0x12368
addl $0x1, %eax
movl %eax, 0x7c3e(%rip)      # 0x12368
jmp 0xa7eb
movq -0x28(%rbp), %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
movzbl -0x29(%rbp), %r8d
callq 0x8b80
cmpb $0x0, %al
je 0xa7e9
jmp 0xa750
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
leaq 0x5d8b(%rip), %rdi      # 0x104e8
movb $0x0, %al
callq 0x2030
cmpq $0x0, 0x7b6c(%rip)      # 0x122d8
je 0xa789
movq 0x7b63(%rip), %rdi      # 0x122d8
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
leaq 0x5d66(%rip), %rsi      # 0x104e8
movb $0x0, %al
callq 0x22d0
jmp 0xa78b
movl 0x7c3b(%rip), %eax      # 0x123cc
addl $0x1, %eax
movl %eax, 0x7c32(%rip)      # 0x123cc
movl 0x7c2c(%rip), %eax      # 0x123cc
cmpl 0x7a82(%rip), %eax      # 0x12228
jbe 0xa7e7
jmp 0xa7aa
movl 0x7a78(%rip), %esi      # 0x12228
leaq 0x5b05(%rip), %rdi      # 0x102bc
movb $0x0, %al
callq 0x2030
cmpq $0x0, 0x7b12(%rip)      # 0x122d8
je 0xa7e3
movq 0x7b09(%rip), %rdi      # 0x122d8
movl 0x7a53(%rip), %edx      # 0x12228
leaq 0x5ae0(%rip), %rsi      # 0x102bc
movb $0x0, %al
callq 0x22d0
jmp 0xa7e5
jmp 0xa7e7
jmp 0xa7e9
jmp 0xa7eb
cmpb $0x0, -0x29(%rbp)
jne 0xa7ff
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0x8570
jmp 0xa801
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xa599
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)