// File: /workspace/github_c_makefile_star2_O0/wierton[P]socket-based-naive-game/client.c
// Function: draw_catalog
void draw_catalog(catalog_t *pcl) {
	int x = pcl->pos.x;
	int y = pcl->pos.y;
	int len = strlen(pcl->title);
	int w = len;
	if(len < USERNAME_SIZE) w = USERNAME_SIZE;

	lock_cursor();
	set_cursor(x, y);
	printf("┌");
	for(int i = 0; i < len; i++)
		printf("─");
	printf("┐");
	set_cursor(x, y + 1);
	printf("│");
	printf("%s", pcl->title);
	for(int i = w - len; i > 0; i--)
		printf(" ");
	printf("│");

	set_cursor(x, y + 2);
	printf("├");
	for(int i = 0; i < w; i++)
		printf("─");
	printf("┤");

	for(int i = 0; i < USER_CNT; i++) {
		int j = 0;
		int ulen = strlen(pcl->records[i]);
		set_cursor(x, y + i + 3);
		printf("│");
		for(; j < (w - ulen) / 2; j++)
			printf(" ");
		if(ulen > 0) {
			printf("%s", pcl->records[i]);
			j += ulen;
		}else{
			printf("\b*");
		}
		for(; j < w; j++)
			printf(" ");
		printf("│");
	}

	set_cursor(x, y + USER_CNT + 3);
	printf("└");
	for(int i = 0; i < w; i++)
		printf("─");
	printf("┘");

	fflush(stdout);

	unlock_cursor();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x1(%rax), %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2070
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
cmpl $0x7, -0x14(%rbp)
jge 0x3c64
movl $0x7, -0x18(%rbp)
callq 0x3030
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
callq 0x2f70
leaq 0x2b61(%rip), %rdi      # 0x67dc
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x3caa
leaq 0x2b48(%rip), %rdi      # 0x67e0
movb $0x0, %al
callq 0x20b0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3c89
leaq 0x2b33(%rip), %rdi      # 0x67e4
movb $0x0, %al
callq 0x20b0
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
addl $0x1, %esi
callq 0x2f70
leaq 0x2b1b(%rip), %rdi      # 0x67e8
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x30b8(%rip), %rdi      # 0x6d9b
movb $0x0, %al
callq 0x20b0
movl -0x18(%rbp), %eax
subl -0x14(%rbp), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x20(%rbp)
jle 0x3d12
leaq 0x26c5(%rip), %rdi      # 0x63c5
movb $0x0, %al
callq 0x20b0
movl -0x20(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x3cf3
leaq 0x2acf(%rip), %rdi      # 0x67e8
movb $0x0, %al
callq 0x20b0
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
addl $0x2, %esi
callq 0x2f70
leaq 0x2ae1(%rip), %rdi      # 0x6816
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x3d64
leaq 0x2a8e(%rip), %rdi      # 0x67e0
movb $0x0, %al
callq 0x20b0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x3d43
leaq 0x2aaf(%rip), %rdi      # 0x681a
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x28(%rbp)
cmpl $0x5, -0x28(%rbp)
jge 0x3e79
movl $0x0, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
movslq -0x28(%rbp), %rax
imulq $0x7, %rax, %rax
addq %rax, %rdi
callq 0x2070
movl %eax, -0x30(%rbp)
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
addl -0x28(%rbp), %esi
addl $0x3, %esi
callq 0x2f70
leaq 0x2a2b(%rip), %rdi      # 0x67e8
movb $0x0, %al
callq 0x20b0
movl -0x2c(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x18(%rbp), %eax
subl -0x30(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x38(%rbp), %eax
cmpl %ecx, %eax
jge 0x3dfa
leaq 0x25dd(%rip), %rdi      # 0x63c5
movb $0x0, %al
callq 0x20b0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x3dc4
cmpl $0x0, -0x30(%rbp)
jle 0x3e2c
movq -0x8(%rbp), %rsi
addq $0x10, %rsi
movslq -0x28(%rbp), %rax
imulq $0x7, %rax, %rax
addq %rax, %rsi
leaq 0x2f81(%rip), %rdi      # 0x6d9b
movb $0x0, %al
callq 0x20b0
movl -0x30(%rbp), %eax
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x3e3a
leaq 0x29eb(%rip), %rdi      # 0x681e
movb $0x0, %al
callq 0x20b0
jmp 0x3e3c
movl -0x2c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x3e5d
leaq 0x257a(%rip), %rdi      # 0x63c5
movb $0x0, %al
callq 0x20b0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x3e3c
leaq 0x2984(%rip), %rdi      # 0x67e8
movb $0x0, %al
callq 0x20b0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3d79
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
addl $0x5, %esi
addl $0x3, %esi
callq 0x2f70
leaq 0x295b(%rip), %rdi      # 0x67ec
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x3ec0
leaq 0x2932(%rip), %rdi      # 0x67e0
movb $0x0, %al
callq 0x20b0
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x3e9f
leaq 0x2929(%rip), %rdi      # 0x67f0
movb $0x0, %al
callq 0x20b0
movq 0x60fb(%rip), %rax      # 0x9fd0
movq (%rax), %rdi
callq 0x2170
callq 0x3050
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)