// File: /workspace/github_c_makefile_star2_O3/kaugm[P]mmwm/mmwm.c
// Function: change_desktop
void change_desktop(const Arg *arg)
{
    if (arg->i == current_desktop_number || arg->i > DESKTOPS-1)
        return;
    previous_desktop = current_desktop_number;
    select_desktop(arg->i);
    if (show) {
        if (M_CURRENT)
            xcb_move(dis, M_CURRENT->win, M_CURRENT->position_info.previous_x, M_CURRENT->position_info.previous_y, &M_CURRENT->position_info);
        for (client *c = M_HEAD; c; c = M_GETNEXT(c)) {
            if (c != M_CURRENT)
                xcb_move(dis, c->win, c->position_info.previous_x, c->position_info.previous_y, &c->position_info);
        }
    }
    select_desktop(previous_desktop);
    for (client *c = M_HEAD; c; c = M_GETNEXT(c)) {
        if (c != M_CURRENT)
            xcb_move(dis, c->win, -2 * M_WW, 0, &c->position_info);
    }
    if (M_CURRENT)
        xcb_move(dis, M_CURRENT->win, -2 * M_WW, 0, &M_CURRENT->position_info);
    select_desktop(arg->i);
    update_current(M_CURRENT);
    desktopinfo();
    xcb_ewmh_set_current_desktop(ewmh, default_screen, arg->i);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl (%rdi), %edi
movl 0x462a(%rip), %eax      # 0xa7a8
cmpl %eax, %edi
sete %cl
cmpl $0xa, %edi
setge %dl
orb %cl, %dl
jne 0x632b
movl %eax, 0x4a65(%rip)      # 0xabfc
callq 0x4ee2
movq 0x45dd(%rip), %rax      # 0xa780
movq 0x30(%rax), %rdx
testq %rdx, %rdx
je 0x61e7
movq 0x459d(%rip), %rdi      # 0xa750
movl 0x20(%rdx), %esi
movdqu 0x30(%rdx), %xmm0
movq %rsp, %rcx
movd %xmm0, (%rcx)
pshufd $0x55, %xmm0, %xmm1     # xmm1 = xmm0[1,1,1,1]
movd %xmm1, 0x4(%rcx)
pshufd $0x4e, %xmm0, %xmm0     # xmm0 = xmm0[2,3,0,1]
movdqu %xmm0, 0x30(%rdx)
movl $0x3, %edx
callq 0x32c0
movq 0x4599(%rip), %rax      # 0xa780
movq 0x18(%rax), %r15
testq %r15, %r15
je 0x6242
movq %rsp, %r14
cmpq 0x30(%rax), %r15
je 0x6239
movq 0x4550(%rip), %rdi      # 0xa750
movl 0x20(%r15), %esi
movdqu 0x30(%r15), %xmm0
movd %xmm0, (%rsp)
pshufd $0x55, %xmm0, %xmm1     # xmm1 = xmm0[1,1,1,1]
movd %xmm1, 0x4(%rsp)
pshufd $0x4e, %xmm0, %xmm0     # xmm0 = xmm0[2,3,0,1]
movdqu %xmm0, 0x30(%r15)
movl $0x3, %edx
movq %r14, %rcx
callq 0x32c0
movq 0x4547(%rip), %rax      # 0xa780
movq 0x8(%r15), %r15
testq %r15, %r15
jne 0x61f3
movl 0x49b4(%rip), %edi      # 0xabfc
callq 0x4ee2
movq 0x452c(%rip), %rax      # 0xa780
movq 0x18(%rax), %r15
testq %r15, %r15
je 0x62b5
xorl %ebp, %ebp
movq %rsp, %r14
cmpq 0x30(%rax), %r15
je 0x62ac
movq 0x44e1(%rip), %rdi      # 0xa750
movl 0x20(%r15), %esi
movq 0x450e(%rip), %rax      # 0xa788
movl 0x34(%rax), %eax
addl %eax, %eax
negl %eax
movl %eax, (%rsp)
movl %ebp, 0x4(%rsp)
movq 0x38(%r15), %rcx
movq %rcx, 0x30(%r15)
movl %eax, 0x38(%r15)
movl %ebp, 0x3c(%r15)
movl $0x3, %edx
movq %r14, %rcx
callq 0x32c0
movq 0x44d4(%rip), %rax      # 0xa780
movq 0x8(%r15), %r15
testq %r15, %r15
jne 0x6262
movq 0x30(%rax), %rax
testq %rax, %rax
je 0x62fb
movq 0x448b(%rip), %rdi      # 0xa750
movl 0x20(%rax), %esi
movq 0x44b9(%rip), %rcx      # 0xa788
movl 0x34(%rcx), %edx
addl %edx, %edx
negl %edx
movq %rsp, %rcx
movl %edx, (%rcx)
xorl %r8d, %r8d
movl %r8d, 0x4(%rcx)
movq 0x38(%rax), %r9
movq %r9, 0x30(%rax)
movl %edx, 0x38(%rax)
movl %r8d, 0x3c(%rax)
movl $0x3, %edx
callq 0x32c0
movl (%rbx), %edi
callq 0x4ee2
movq 0x4477(%rip), %rax      # 0xa780
movq 0x30(%rax), %rdi
callq 0x3dc0
callq 0x4d6d
movq 0x444a(%rip), %rdi      # 0xa768
movl 0x4454(%rip), %esi      # 0xa778
movl (%rbx), %edx
callq 0x3550
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq