// File: /workspace/github_c_makefile_star2_O0/tkln[P]mcwm/mcwm.c
// Function: fixwindow
void fixwindow(struct client *client, bool setcolour)
{
    uint32_t values[1];
    uint32_t ws;
    
    if (NULL == client)
    {
        return;
    }
    
    if (client->fixed)
    {
        client->fixed = false;
        setwmdesktop(client->id, curws);

        if (setcolour)
        {
            /* Set border color to ordinary focus colour. */
            values[0] = conf.focuscol;
            xcb_change_window_attributes(conn, client->id, XCB_CW_BORDER_PIXEL,
                                         values);
        }

        /* Delete from all workspace lists except current. */
        for (ws = 0; ws < WORKSPACES; ws ++)
        {
            if (ws != curws)
            {
                delfromworkspace(client, ws);
            }
        }
    }
    else
    {
        /*
         * First raise the window. If we're going to another desktop
         * we don't want this fixed window to be occluded behind
         * something else.
         */
        raisewindow(client->id);
        
        client->fixed = true;
        setwmdesktop(client->id, NET_WM_FIXED);

        /* Add window to all workspace lists. */
        for (ws = 0; ws < WORKSPACES; ws ++)
        {
            if (ws != curws)
            {
                addtoworkspace(client, ws);
            }
        }

        if (setcolour)
        {
            /* Set border color to fixed colour. */
            values[0] = conf.fixedcol;
            xcb_change_window_attributes(conn, client->id, XCB_CW_BORDER_PIXEL,
                                         values);
        }
    }

    xcb_flush(conn);    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
xorl %eax, %eax
cmpq -0x8(%rbp), %rax
jne 0x6d91
jmp 0x6ea6
movq -0x8(%rbp), %rax
testb $0x1, 0x32(%rax)
je 0x6e17
movq -0x8(%rbp), %rax
movb $0x0, 0x32(%rax)
movq -0x8(%rbp), %rax
movl (%rax), %edi
movl 0x6b11(%rip), %esi      # 0xd8c0
callq 0x6eb0
testb $0x1, -0x9(%rbp)
je 0x6de1
movl 0x6ba8(%rip), %eax      # 0xd968
movl %eax, -0x10(%rbp)
movq 0x6bae(%rip), %rdi      # 0xd978
movq -0x8(%rbp), %rax
movl (%rax), %esi
leaq -0x10(%rbp), %rcx
movl $0x8, %edx
callq 0x30e0
movl %eax, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
cmpl $0xa, -0x14(%rbp)
jae 0x6e12
movl -0x14(%rbp), %eax
cmpl 0x6ac9(%rip), %eax      # 0xd8c0
je 0x6e05
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x6f00
jmp 0x6e07
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x6de8
jmp 0x6e9a
movq -0x8(%rbp), %rax
movl (%rax), %edi
callq 0x6f50
movq -0x8(%rbp), %rax
movb $0x1, 0x32(%rax)
movq -0x8(%rbp), %rax
movl (%rax), %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x6eb0
movl $0x0, -0x14(%rbp)
cmpl $0xa, -0x14(%rbp)
jae 0x6e6b
movl -0x14(%rbp), %eax
cmpl 0x6a70(%rip), %eax      # 0xd8c0
je 0x6e5e
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x6fb0
jmp 0x6e60
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x6e41
testb $0x1, -0x9(%rbp)
je 0x6e98
movl 0x6af9(%rip), %eax      # 0xd970
movl %eax, -0x10(%rbp)
movq 0x6af7(%rip), %rdi      # 0xd978
movq -0x8(%rbp), %rax
movl (%rax), %esi
leaq -0x10(%rbp), %rcx
movl $0x8, %edx
callq 0x30e0
movl %eax, -0x1c(%rbp)
jmp 0x6e9a
movq 0x6ad7(%rip), %rdi      # 0xd978
callq 0x3140
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)