// File: /workspace/github_c_makefile_star2_O0/justy989[P]ce/main.c
// Function: build_macro_list
static void build_macro_list(CeBuffer_t* buffer, CeMacros_t* macros){
     ce_buffer_empty(buffer);
     char line[256];
     for(int64_t i = 0; i < CE_ASCII_PRINTABLE_CHARACTERS; i++){
          CeRuneNode_t* rune_head = macros->rune_head[i];
          if(!rune_head) continue;
          CeRune_t* rune_string = ce_rune_node_string(rune_head);
          char* string = ce_rune_string_to_char_string(rune_string);
          char reg = i + '!';
          snprintf(line, 256, "// register '%c'\n%s", reg, string);
          free(rune_string);
          free(string);
          buffer_append_on_new_line(buffer, line);
     }

     // NOTE: must keep this in sync with ce_rune_string_to_char_string()
     buffer_append_on_new_line(buffer, "");
     buffer_append_on_new_line(buffer, "// escape conversions");
     buffer_append_on_new_line(buffer, "// \\b -> KEY_BACKSPACE");
     buffer_append_on_new_line(buffer, "// \\e -> KEY_ESCAPE");
     buffer_append_on_new_line(buffer, "// \\r -> KEY_ENTER");
     buffer_append_on_new_line(buffer, "// \\t -> KEY_TAB");
     buffer_append_on_new_line(buffer, "// \\u -> KEY_UP");
     buffer_append_on_new_line(buffer, "// \\d -> KEY_DOWN");
     buffer_append_on_new_line(buffer, "// \\l -> KEY_LEFT");
     buffer_append_on_new_line(buffer, "// \\i -> KEY_RIGHT");
     buffer_append_on_new_line(buffer, "// \\\\ -> \\"); // HAHAHAHAHA
     buffer_append_on_new_line(buffer, "// \\^k -> CTRL_K");

     buffer->status = CE_BUFFER_STATUS_READONLY;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xe920
movq $0x0, -0x118(%rbp)
cmpq $0x5f, -0x118(%rbp)
jge 0x41a78
movq -0x10(%rbp), %rax
movq -0x118(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x120(%rbp)
cmpq $0x0, -0x120(%rbp)
jne 0x419da
jmp 0x41a61
movq -0x120(%rbp), %rdi
callq 0x11e50
movq %rax, -0x128(%rbp)
movq -0x128(%rbp), %rdi
callq 0x11f60
movq %rax, -0x130(%rbp)
movq -0x118(%rbp), %rax
addq $0x21, %rax
movb %al, -0x131(%rbp)
leaq -0x110(%rbp), %rdi
movsbl -0x131(%rbp), %ecx
movq -0x130(%rbp), %r8
movl $0x100, %esi            # imm = 0x100
leaq 0x4197(%rip), %rdx      # 0x45bc9
movb $0x0, %al
callq 0xd250
movq -0x128(%rbp), %rdi
callq 0xd090
movq -0x130(%rbp), %rdi
callq 0xd090
movq -0x8(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x14fd0
movq -0x118(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x118(%rbp)
jmp 0x419a7
movq -0x8(%rbp), %rdi
leaq 0x2426(%rip), %rsi      # 0x43ea9
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x414a(%rip), %rsi      # 0x45bdd
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x4150(%rip), %rsi      # 0x45bf3
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x4157(%rip), %rsi      # 0x45c0a
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x415b(%rip), %rsi      # 0x45c1e
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x415e(%rip), %rsi      # 0x45c31
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x415f(%rip), %rsi      # 0x45c42
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x415f(%rip), %rsi      # 0x45c52
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x4161(%rip), %rsi      # 0x45c64
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x4163(%rip), %rsi      # 0x45c76
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x4166(%rip), %rsi      # 0x45c89
callq 0x14fd0
movq -0x8(%rbp), %rdi
leaq 0x4161(%rip), %rsi      # 0x45c94
callq 0x14fd0
movq -0x8(%rbp), %rax
movl $0x2, 0x18(%rax)
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopl (%rax)