// File: /workspace/github_c_makefile_star2_O2/mabdi[P]bunney/bunny-main.c
// Function: flow_command
static _u32 flow_command(_u32 type, _u32 p1, _u32 p2, _u32 p3) {
  _u32 r;
  struct bunny_flowreq f;
  if (type == FLOW_SAVEFILE) fatal("flow_command called with FLOW_SAVEFILE");
  f.type = type;
  f.p1   = p1;
  f.p2   = p2;
  f.p3   = p3;
  
  if (write(flow_pipe_cmd,&f,sizeof(struct bunny_flowreq)) != sizeof(struct bunny_flowreq))
    fatal("unable to communicate with the component (see bunny-flow.out)");
    
  if (read(flow_pipe_ret,&r,sizeof(_u32)) != sizeof(_u32))
    fatal("short response on command 0x%x(%d,%d,%d) (see bunny-flow.out)",type,p1,p2,p3);
    
  if (type != FLOW_GET_FUZZABLE && r)
    fatal("NOK response on command 0x%x(%d,%d,%d) (see bunny-flow.out)",type,p1,p2,p3);
  else
  if (type == FLOW_GET_FUZZABLE && !r)
    fatal("FLOW_GET_FUZZABLE == 0 (see bunny-flow.out)");

  return r;  
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
cmpl $0x3e9, %edi            # imm = 0x3E9
je 0x71d7
movl %ecx, %ebx
movl %edx, %ebp
movl %esi, %r15d
movl %edi, %r14d
leaq 0x8(%rsp), %rsi
movl %edi, (%rsi)
movl %r15d, 0x4(%rsi)
movl %edx, 0x8(%rsi)
movl %ecx, 0xc(%rsi)
movl 0x90c7(%rip), %edi      # 0x1023c
pushq $0x10
popq %rdx
callq 0x20b0
cmpq $0x10, %rax
jne 0x7254
movl 0x90b3(%rip), %edi      # 0x10240
leaq 0x4(%rsp), %rsi
pushq $0x4
popq %rdx
callq 0x22e0
cmpq $0x4, %rax
jne 0x72d1
cmpl $0x3, %r14d
setne %cl
movl 0x4(%rsp), %eax
testl %eax, %eax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x7361
xorl $0x3, %r14d
orl %eax, %r14d
je 0x73ee
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5290(%rip), %rdi      # 0xc46e
xorl %eax, %eax
callq 0x2030
movq 0x907c(%rip), %rcx      # 0x10268
testq %rcx, %rcx
je 0x7203
leaq 0x5276(%rip), %rdi      # 0xc46e
pushq $0x3d
popq %rsi
pushq $0x1
popq %rdx
callq 0x23b0
leaq 0x4033(%rip), %rdi      # 0xb23d
leaq 0x529b(%rip), %rsi      # 0xc4ac
leaq 0x4035(%rip), %rdx      # 0xb24d
movl $0x15b, %ecx            # imm = 0x15B
xorl %eax, %eax
callq 0x2030
movq 0x903d(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7469
leaq 0x4002(%rip), %rsi      # 0xb23d
leaq 0x526a(%rip), %rdx      # 0xc4ac
leaq 0x4004(%rip), %rcx      # 0xb24d
movl $0x15b, %r8d            # imm = 0x15B
jmp 0x7462
leaq 0x525e(%rip), %rdi      # 0xc4b9
xorl %eax, %eax
callq 0x2030
movq 0x8fff(%rip), %rcx      # 0x10268
testq %rcx, %rcx
je 0x7280
leaq 0x5244(%rip), %rdi      # 0xc4b9
pushq $0x54
popq %rsi
pushq $0x1
popq %rdx
callq 0x23b0
leaq 0x3fb6(%rip), %rdi      # 0xb23d
leaq 0x521e(%rip), %rsi      # 0xc4ac
leaq 0x3fb8(%rip), %rdx      # 0xb24d
movl $0x162, %ecx            # imm = 0x162
xorl %eax, %eax
callq 0x2030
movq 0x8fc0(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7469
leaq 0x3f85(%rip), %rsi      # 0xb23d
leaq 0x51ed(%rip), %rdx      # 0xc4ac
leaq 0x3f87(%rip), %rcx      # 0xb24d
movl $0x162, %r8d            # imm = 0x162
jmp 0x7462
leaq 0x5236(%rip), %rdi      # 0xc50e
movl %r14d, %esi
movl %r15d, %edx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x2030
movq 0x8f77(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7310
leaq 0x5211(%rip), %rsi      # 0xc50e
movl %r14d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebx, %r9d
xorl %eax, %eax
callq 0x22d0
leaq 0x3f26(%rip), %rdi      # 0xb23d
leaq 0x518e(%rip), %rsi      # 0xc4ac
leaq 0x3f28(%rip), %rdx      # 0xb24d
movl $0x165, %ecx            # imm = 0x165
xorl %eax, %eax
callq 0x2030
movq 0x8f30(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7469
leaq 0x3ef5(%rip), %rsi      # 0xb23d
leaq 0x515d(%rip), %rdx      # 0xc4ac
leaq 0x3ef7(%rip), %rcx      # 0xb24d
movl $0x165, %r8d            # imm = 0x165
jmp 0x7462
leaq 0x51fb(%rip), %rdi      # 0xc563
movl %r14d, %esi
movl %r15d, %edx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x2030
movq 0x8ee7(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x73a0
leaq 0x51d6(%rip), %rsi      # 0xc563
movl %r14d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebx, %r9d
xorl %eax, %eax
callq 0x22d0
leaq 0x3e96(%rip), %rdi      # 0xb23d
leaq 0x50fe(%rip), %rsi      # 0xc4ac
leaq 0x3e98(%rip), %rdx      # 0xb24d
movl $0x168, %ecx            # imm = 0x168
xorl %eax, %eax
callq 0x2030
movq 0x8ea0(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7469
leaq 0x3e65(%rip), %rsi      # 0xb23d
leaq 0x50cd(%rip), %rdx      # 0xc4ac
leaq 0x3e67(%rip), %rcx      # 0xb24d
movl $0x168, %r8d            # imm = 0x168
jmp 0x7462
leaq 0x51c1(%rip), %rdi      # 0xc5b6
xorl %eax, %eax
callq 0x2030
movq 0x8e65(%rip), %rcx      # 0x10268
testq %rcx, %rcx
je 0x741a
leaq 0x51a7(%rip), %rdi      # 0xc5b6
pushq $0x42
popq %rsi
pushq $0x1
popq %rdx
callq 0x23b0
leaq 0x3e1c(%rip), %rdi      # 0xb23d
leaq 0x5084(%rip), %rsi      # 0xc4ac
leaq 0x3e1e(%rip), %rdx      # 0xb24d
movl $0x16b, %ecx            # imm = 0x16B
xorl %eax, %eax
callq 0x2030
movq 0x8e26(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7469
leaq 0x3def(%rip), %rsi      # 0xb23d
leaq 0x5057(%rip), %rdx      # 0xc4ac
leaq 0x3df1(%rip), %rcx      # 0xb24d
movl $0x16b, %r8d            # imm = 0x16B
xorl %eax, %eax
callq 0x22d0
pushq $0x1
popq %rdi
callq 0x2230