// File: /workspace/github_c_makefile_star2_O0/Cloudef[P]dwm-fork/dwm.c
// Function: movemouse
void
movemouse(const Arg *arg) {

   int x, y, ocx, ocy, nx, ny;
   Client *c;
   Monitor *m;
   XEvent ev;

   if(!(c = selmon->sel))
      return;
   if(c->iszombie || c->isfullscreen)
      return;
   if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
            None, cursor[CurMove], CurrentTime) != GrabSuccess)
      return;
   if(!getrootptr(&x, &y))
      return;

   if(!c->isfloating)
   {
      ocx = x - c->fw / 2; /* center */
      ocy = y - c->fh / 2; /* center */
      resizeclient(c, ocx, ocy, c->fw, c->fh);
   }
   else
   {
      ocx = c->x;
      ocy = c->y;
      resizeclient(c, c->x, c->y, c->fw, c->fh );
   }
   c->isfloating = True;
   arrange(c->mon);
   focus(c);

   if(!c->isbelow) XRaiseWindow(dpy, c->win);
   do {
      XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
      switch (ev.type) {
         case ConfigureRequest:
         case Expose:
         case MapRequest:
            handler[ev.type](&ev);
            break;
         case MotionNotify:
            nx = ocx + (ev.xmotion.x - x);
            ny = ocy + (ev.xmotion.y - y);
            if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
               resize(c, nx, ny, c->w, c->h, True);
            if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
               sendmon(c, m);
               focusmon(m);
               focus(c);
               if(!c->isbelow) XRaiseWindow( dpy, c->win );
            }
            break;
      }
   } while(ev.type != ButtonRelease);
   XUngrabPointer(dpy, CurrentTime);
   if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
      sendmon(c, m);
      focusmon(m);
      focus(c);
      if(!c->isbelow) XRaiseWindow( dpy, c->win );
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq 0xb83a(%rip), %rax      # 0x18600
movq 0x80(%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0xcddc
jmp 0xd1a2
movq -0x28(%rbp), %rax
cmpl $0x0, 0x17c(%rax)
jne 0xcdf6
movq -0x28(%rbp), %rax
cmpl $0x0, 0x160(%rax)
je 0xcdfb
jmp 0xd1a2
movq 0xb816(%rip), %rdi      # 0x18618
movq 0xb9d7(%rip), %rsi      # 0x187e0
movq 0xba10(%rip), %rax      # 0x18820
xorl %edx, %edx
movl $0x4c, %ecx
movl $0x1, %r9d
xorl %r8d, %r8d
movl %r9d, %r8d
movq $0x0, (%rsp)
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
callq 0x5210
cmpl $0x0, %eax
je 0xce48
jmp 0xd1a2
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x8860
cmpl $0x0, %eax
jne 0xce5f
jmp 0xd1a2
movq -0x28(%rbp), %rax
cmpl $0x0, 0x168(%rax)
jne 0xcee2
movl -0xc(%rbp), %eax
movl %eax, -0xf8(%rbp)
movq -0x28(%rbp), %rax
movl 0x128(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xf8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x14(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0xf4(%rbp)
movq -0x28(%rbp), %rax
movl 0x12c(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0xf4(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x18(%rbp)
movq -0x28(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x128(%rax), %ecx
movq -0x28(%rbp), %rax
movl 0x12c(%rax), %r8d
callq 0x8660
jmp 0xcf2e
movq -0x28(%rbp), %rax
movl 0x108(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x28(%rbp), %rax
movl 0x10c(%rax), %eax
movl %eax, -0x18(%rbp)
movq -0x28(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x108(%rax), %esi
movq -0x28(%rbp), %rax
movl 0x10c(%rax), %edx
movq -0x28(%rbp), %rax
movl 0x128(%rax), %ecx
movq -0x28(%rbp), %rax
movl 0x12c(%rax), %r8d
callq 0x8660
movq -0x28(%rbp), %rax
movl $0x1, 0x168(%rax)
movq -0x28(%rbp), %rax
movq 0x1a0(%rax), %rdi
callq 0xbf30
movq -0x28(%rbp), %rdi
callq 0xc2d0
movq -0x28(%rbp), %rax
cmpl $0x0, 0x174(%rax)
jne 0xcf79
movq 0xb6af(%rip), %rdi      # 0x18618
movq -0x28(%rbp), %rax
movq 0x1a8(%rax), %rsi
callq 0x5180
jmp 0xcf7b
movq 0xb696(%rip), %rdi      # 0x18618
movl $0x10804c, %esi         # imm = 0x10804C
leaq -0xf0(%rbp), %rdx
callq 0x54f0
movl -0xf0(%rbp), %eax
addl $-0x6, %eax
movl %eax, %ecx
movq %rcx, -0x100(%rbp)
subl $0x11, %eax
ja 0xd0f0
movq -0x100(%rbp), %rax
leaq 0x50cc(%rip), %rcx      # 0x12088
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movslq -0xf0(%rbp), %rcx
leaq -0xf0(%rbp), %rdi
leaq 0xb0d6(%rip), %rax      # 0x180b0
callq *(%rax,%rcx,8)
jmp 0xd0f0
movl -0x14(%rbp), %eax
movl -0xb0(%rbp), %ecx
subl -0xc(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x18(%rbp), %eax
movl -0xac(%rbp), %ecx
subl -0x10(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x20(%rbp)
movq 0xb5f5(%rip), %rax      # 0x18600
movq 0xb5ee(%rip), %rcx      # 0x18600
movl 0x5c(%rcx), %ecx
movq 0xa0(%rax,%rcx,8), %rax
cmpq $0x0, 0x10(%rax)
je 0xd031
movq -0x28(%rbp), %rax
cmpl $0x0, 0x168(%rax)
je 0xd05b
movq -0x28(%rbp), %rdi
movl -0x1c(%rbp), %esi
movl -0x20(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x110(%rax), %ecx
movq -0x28(%rbp), %rax
movl 0x114(%rax), %r8d
movl $0x1, %r9d
callq 0x8060
movq -0x28(%rbp), %rax
movl 0x108(%rax), %edi
movq -0x28(%rbp), %rax
movl 0x110(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl %eax, %edi
movq -0x28(%rbp), %rax
movl 0x10c(%rax), %esi
movq -0x28(%rbp), %rax
movl 0x114(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl %eax, %esi
callq 0x88b0
movq %rax, -0x30(%rbp)
cmpq 0xb559(%rip), %rax      # 0x18600
je 0xd0ee
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xd460
movq -0x30(%rbp), %rdi
callq 0xc610
movq -0x28(%rbp), %rdi
callq 0xc2d0
movq -0x28(%rbp), %rax
cmpl $0x0, 0x174(%rax)
jne 0xd0ec
movq 0xb53c(%rip), %rdi      # 0x18618
movq -0x28(%rbp), %rax
movq 0x1a8(%rax), %rsi
callq 0x5180
jmp 0xd0ee
jmp 0xd0f0
jmp 0xd0f2
cmpl $0x5, -0xf0(%rbp)
jne 0xcf7b
movq 0xb512(%rip), %rdi      # 0x18618
xorl %eax, %eax
movl %eax, %esi
callq 0x5190
movq -0x28(%rbp), %rax
movl 0x108(%rax), %edi
movq -0x28(%rbp), %rax
movl 0x110(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl %eax, %edi
movq -0x28(%rbp), %rax
movl 0x10c(%rax), %esi
movq -0x28(%rbp), %rax
movl 0x114(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl %eax, %esi
callq 0x88b0
movq %rax, -0x30(%rbp)
cmpq 0xb4a5(%rip), %rax      # 0x18600
je 0xd1a2
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xd460
movq -0x30(%rbp), %rdi
callq 0xc610
movq -0x28(%rbp), %rdi
callq 0xc2d0
movq -0x28(%rbp), %rax
cmpl $0x0, 0x174(%rax)
jne 0xd1a0
movq 0xb488(%rip), %rdi      # 0x18618
movq -0x28(%rbp), %rax
movq 0x1a8(%rax), %rsi
callq 0x5180
jmp 0xd1a2
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nopl (%rax,%rax)