// File: /workspace/github_c_makefile_star2_O0/kaugm[P]mmwm/mmwm.c
// Function: create_display
static void create_display(client *c)
{
    desktop *desk=NULL;
    monitor *moni=NULL;
    display *disp=NULL, *new;

    if (!c)
        return;
    getparents(c, &disp, &moni, &desk);     /* get the client's display, monitor and desktop. */
    if (!(new = calloc(1, sizeof(display))))
        err(EXIT_FAILURE, "cannot allocate new display");
    new->clients.master = new;  /* backpointer */
    rem_node(&c->link);          /* unlink client from its display client list. */
    for (client *t = M_HEAD; t; t = M_GETNEXT(t))   /* hide current windows */
        xcb_move(dis, t->win, -2 * M_WW, 0, &t->position_info);
    for (alien *t = (alien *)get_head(&aliens); t; t = (alien *)get_next(&t->link))   /* hide aliens */
        xcb_move(dis, t->win, -2 * M_WW, 0, &t->position_info);
    add_head(&new->clients, &c->link);      /* set client as head in new display */
    add_head(&moni->displays, &new->link);  /* set new display as head. */
    select_desktop(current_desktop_number); /* update global pointers */
    memcpy(&new->di, &disp->di, sizeof(displayinfo));   /* copy settings */
    current_display = new;                  /* update current display pointer */
    update_current(NULL);                   /* update focus and tiling */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x3d90
jmp 0x3ee6
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
leaq -0x18(%rbp), %rdx
leaq -0x10(%rbp), %rcx
callq 0x5260
movl $0x1, %edi
movl $0x70, %esi
callq 0x3300
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x3dd1
movl $0x1, %edi
leaq 0x631b(%rip), %rsi      # 0xa0e5
movb $0x0, %al
callq 0x3400
movq -0x28(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rdi
callq 0x5300
movq 0x99e3(%rip), %rax      # 0xd7d0
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x3e36
movq 0x999d(%rip), %rdi      # 0xd7a0
movq -0x30(%rbp), %rax
movl 0x20(%rax), %esi
movq 0x99c7(%rip), %rax      # 0xd7d8
imull $0xfffffffe, 0x34(%rax), %edx # imm = 0xFFFFFFFE
movq -0x30(%rbp), %r8
addq $0x30, %r8
xorl %ecx, %ecx
callq 0x5410
movq -0x30(%rbp), %rdi
callq 0x5490
movq %rax, -0x30(%rbp)
jmp 0x3df5
leaq 0x99a3(%rip), %rdi      # 0xd7e0
callq 0x54c0
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x3e87
movq 0x994c(%rip), %rdi      # 0xd7a0
movq -0x38(%rbp), %rax
movl 0x18(%rax), %esi
movq 0x9976(%rip), %rax      # 0xd7d8
imull $0xfffffffe, 0x34(%rax), %edx # imm = 0xFFFFFFFE
movq -0x38(%rbp), %r8
addq $0x20, %r8
xorl %ecx, %ecx
callq 0x5410
movq -0x38(%rbp), %rdi
callq 0x5490
movq %rax, -0x38(%rbp)
jmp 0x3e46
movq -0x28(%rbp), %rdi
addq $0x18, %rdi
movq -0x8(%rbp), %rsi
callq 0x54f0
movq -0x18(%rbp), %rdi
addq $0x18, %rdi
movq -0x28(%rbp), %rsi
callq 0x54f0
movl 0x9949(%rip), %edi      # 0xd7f8
callq 0x5570
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movq 0x58(%rcx), %rdx
movq %rdx, 0x58(%rax)
movq 0x60(%rcx), %rdx
movq %rdx, 0x60(%rax)
movl 0x68(%rcx), %ecx
movl %ecx, 0x68(%rax)
movq -0x28(%rbp), %rax
movq %rax, 0x98f3(%rip)      # 0xd7d0
xorl %eax, %eax
movl %eax, %edi
callq 0x4010
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)