// File: /workspace/github_c_makefile_star2_O3/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 0x7bc4
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 0x86de(%rip), %edi      # 0x1023c
movl $0x10, %edx
callq 0x20b0
cmpq $0x10, %rax
jne 0x7c45
movl 0x86c8(%rip), %edi      # 0x10240
leaq 0x4(%rsp), %rsi
movl $0x4, %edx
callq 0x22e0
cmpq $0x4, %rax
jne 0x7cc6
cmpl $0x3, %r14d
setne %cl
movl 0x4(%rsp), %eax
testl %eax, %eax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x7d56
xorl $0x3, %r14d
orl %eax, %r14d
je 0x7de3
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x48a3(%rip), %rdi      # 0xc46e
xorl %eax, %eax
callq 0x2030
movq 0x868f(%rip), %rcx      # 0x10268
testq %rcx, %rcx
je 0x7bf4
leaq 0x4889(%rip), %rdi      # 0xc46e
movl $0x3d, %esi
movl $0x1, %edx
callq 0x23b0
leaq 0x3642(%rip), %rdi      # 0xb23d
leaq 0x48aa(%rip), %rsi      # 0xc4ac
leaq 0x3644(%rip), %rdx      # 0xb24d
movl $0x15b, %ecx            # imm = 0x15B
xorl %eax, %eax
callq 0x2030
movq 0x864c(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7e62
leaq 0x3611(%rip), %rsi      # 0xb23d
leaq 0x4879(%rip), %rdx      # 0xc4ac
leaq 0x3613(%rip), %rcx      # 0xb24d
movl $0x15b, %r8d            # imm = 0x15B
jmp 0x7e5b
leaq 0x486d(%rip), %rdi      # 0xc4b9
xorl %eax, %eax
callq 0x2030
movq 0x860e(%rip), %rcx      # 0x10268
testq %rcx, %rcx
je 0x7c75
leaq 0x4853(%rip), %rdi      # 0xc4b9
movl $0x54, %esi
movl $0x1, %edx
callq 0x23b0
leaq 0x35c1(%rip), %rdi      # 0xb23d
leaq 0x4829(%rip), %rsi      # 0xc4ac
leaq 0x35c3(%rip), %rdx      # 0xb24d
movl $0x162, %ecx            # imm = 0x162
xorl %eax, %eax
callq 0x2030
movq 0x85cb(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7e62
leaq 0x3590(%rip), %rsi      # 0xb23d
leaq 0x47f8(%rip), %rdx      # 0xc4ac
leaq 0x3592(%rip), %rcx      # 0xb24d
movl $0x162, %r8d            # imm = 0x162
jmp 0x7e5b
leaq 0x4841(%rip), %rdi      # 0xc50e
movl %r14d, %esi
movl %r15d, %edx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x2030
movq 0x8582(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7d05
leaq 0x481c(%rip), %rsi      # 0xc50e
movl %r14d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebx, %r9d
xorl %eax, %eax
callq 0x22d0
leaq 0x3531(%rip), %rdi      # 0xb23d
leaq 0x4799(%rip), %rsi      # 0xc4ac
leaq 0x3533(%rip), %rdx      # 0xb24d
movl $0x165, %ecx            # imm = 0x165
xorl %eax, %eax
callq 0x2030
movq 0x853b(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7e62
leaq 0x3500(%rip), %rsi      # 0xb23d
leaq 0x4768(%rip), %rdx      # 0xc4ac
leaq 0x3502(%rip), %rcx      # 0xb24d
movl $0x165, %r8d            # imm = 0x165
jmp 0x7e5b
leaq 0x4806(%rip), %rdi      # 0xc563
movl %r14d, %esi
movl %r15d, %edx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x2030
movq 0x84f2(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7d95
leaq 0x47e1(%rip), %rsi      # 0xc563
movl %r14d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebx, %r9d
xorl %eax, %eax
callq 0x22d0
leaq 0x34a1(%rip), %rdi      # 0xb23d
leaq 0x4709(%rip), %rsi      # 0xc4ac
leaq 0x34a3(%rip), %rdx      # 0xb24d
movl $0x168, %ecx            # imm = 0x168
xorl %eax, %eax
callq 0x2030
movq 0x84ab(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7e62
leaq 0x3470(%rip), %rsi      # 0xb23d
leaq 0x46d8(%rip), %rdx      # 0xc4ac
leaq 0x3472(%rip), %rcx      # 0xb24d
movl $0x168, %r8d            # imm = 0x168
jmp 0x7e5b
leaq 0x47cc(%rip), %rdi      # 0xc5b6
xorl %eax, %eax
callq 0x2030
movq 0x8470(%rip), %rcx      # 0x10268
testq %rcx, %rcx
je 0x7e13
leaq 0x47b2(%rip), %rdi      # 0xc5b6
movl $0x42, %esi
movl $0x1, %edx
callq 0x23b0
leaq 0x3423(%rip), %rdi      # 0xb23d
leaq 0x468b(%rip), %rsi      # 0xc4ac
leaq 0x3425(%rip), %rdx      # 0xb24d
movl $0x16b, %ecx            # imm = 0x16B
xorl %eax, %eax
callq 0x2030
movq 0x842d(%rip), %rdi      # 0x10268
testq %rdi, %rdi
je 0x7e62
leaq 0x33f6(%rip), %rsi      # 0xb23d
leaq 0x465e(%rip), %rdx      # 0xc4ac
leaq 0x33f8(%rip), %rcx      # 0xb24d
movl $0x16b, %r8d            # imm = 0x16B
xorl %eax, %eax
callq 0x22d0
movl $0x1, %edi
callq 0x2230