// File: 64Mega[P]todo-cli/src/todo.cpp
// Function: read_todos(bool)
void read_todos(bool local_mode) {
    auto buffer = get_todos(local_mode);
    if(buffer.size() == 0) {
        ccout << "Nothing to do!" << std::endl;
        return;
    }
    for(int i = 0; i < buffer.size(); i++) {
        std::string todo = buffer[i];
        if(todo.length() < 2) { continue; }
        std::replace(todo.begin(), todo.end(), '\n', ' ');
        std::replace(todo.begin(), todo.end(), '\r', ' ');
        char state = todo[0];
        todo = todo.substr(2);

        ccout << "[" << i << "] ";
        ccout << (state == 'X' ? GLYPH_INCOMPLETE : GLYPH_COMPLETE) << "\t";
        ccout << todo.c_str() << std::endl; 
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movb %dil, %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
leaq -0x20(%rbp), %rdi
andb $0x1, %al
movzbl %al, %esi
callq 0x16550
leaq -0x20(%rbp), %rdi
callq 0x173f0
cmpq $0x0, %rax
jne 0x15311
leaq 0xe5176(%rip), %rdi     # 0xfa440
leaq 0xa7fb6(%rip), %rsi     # 0xbd287
callq 0x83450
movq %rax, -0xb0(%rbp)
jmp 0x152df
movq -0xb0(%rbp), %rdi
leaq 0x6da43(%rip), %rsi     # 0x82d30
callq 0x81f40
jmp 0x152f4
movl $0x1, -0x30(%rbp)
jmp 0x15590
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x155a2
movl $0x0, -0x34(%rbp)
movslq -0x34(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x173f0
movq %rax, %rcx
movq -0xb8(%rbp), %rax
cmpq %rcx, %rax
jae 0x15589
movslq -0x34(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x17410
movq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x8bfb0
jmp 0x1535a
leaq -0x58(%rbp), %rdi
callq 0x89a50
cmpq $0x2, %rax
jae 0x15375
movl $0x4, -0x30(%rbp)
jmp 0x1554e
leaq -0x58(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x89950
movq -0xc0(%rbp), %rdi
movq %rax, -0x60(%rbp)
callq 0x89970
movq %rax, -0x68(%rbp)
movb $0xa, -0x69(%rbp)
movb $0x20, -0x6a(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
leaq -0x69(%rbp), %rdx
leaq -0x6a(%rbp), %rcx
callq 0x17430
jmp 0x153b8
leaq -0x58(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x89950
movq -0xc8(%rbp), %rdi
movq %rax, -0x78(%rbp)
callq 0x89970
movq %rax, -0x80(%rbp)
movb $0xd, -0x81(%rbp)
movb $0x20, -0x82(%rbp)
movq -0x78(%rbp), %rdi
movq -0x80(%rbp), %rsi
leaq -0x81(%rbp), %rdx
leaq -0x82(%rbp), %rcx
callq 0x17430
jmp 0x15407
xorl %eax, %eax
movl %eax, %esi
leaq -0x58(%rbp), %rdi
callq 0x89d60
movq %rax, -0xd0(%rbp)
jmp 0x1541d
movq -0xd0(%rbp), %rax
movb (%rax), %al
movb %al, -0x83(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movl $0x2, %edx
movq $-0x1, %rcx
callq 0x8c1d0
jmp 0x1544a
leaq -0x58(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movq %rsi, -0xe0(%rbp)
callq 0x89870
movq -0xe0(%rbp), %rdi
callq 0x89820
leaq 0xe4fcc(%rip), %rdi     # 0xfa440
leaq 0xa7e1b(%rip), %rsi     # 0xbd296
callq 0x83450
movq %rax, -0xd8(%rbp)
jmp 0x15489
movq -0xd8(%rbp), %rdi
movl -0x34(%rbp), %esi
callq 0x837f0
movq %rax, -0xe8(%rbp)
jmp 0x154a1
movq -0xe8(%rbp), %rdi
leaq 0xabc88(%rip), %rsi     # 0xc1137
callq 0x83450
jmp 0x154b6
movsbl -0x83(%rbp), %eax
cmpl $0x58, %eax
jne 0x154d2
movq 0xe3ecf(%rip), %rax     # 0xf9398
movq %rax, -0xf0(%rbp)
jmp 0x154e0
movq 0xe3eb7(%rip), %rax     # 0xf9390
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rsi
leaq 0xe4f52(%rip), %rdi     # 0xfa440
callq 0x83450
movq %rax, -0xf8(%rbp)
jmp 0x154fc
movq -0xf8(%rbp), %rdi
leaq 0xa7d8e(%rip), %rsi     # 0xbd298
callq 0x83450
jmp 0x15511
leaq -0x58(%rbp), %rdi
callq 0x8b260
movq %rax, %rsi
leaq 0xe4f1c(%rip), %rdi     # 0xfa440
callq 0x83450
movq %rax, -0x100(%rbp)
jmp 0x15532
movq -0x100(%rbp), %rdi
leaq 0x6d7f0(%rip), %rsi     # 0x82d30
callq 0x81f40
jmp 0x15547
movl $0x0, -0x30(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x89820
movl -0x30(%rbp), %eax
testl %eax, %eax
je 0x15562
jmp 0x15560
jmp 0x15564
jmp 0x15564
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x15318
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x89820
jmp 0x155a2
movl $0x0, -0x30(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x17390
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
leaq -0x20(%rbp), %rdi
callq 0x17390
movq -0x28(%rbp), %rdi
callq 0xba910
nopw %cs:(%rax,%rax)