// File: sighingnow[P]compile-pascal/./libparsec/input_t.hpp
// Function: input_t::drop(int const&)
input_t *drop(int const & k) {
        if (k < 0) {
            // cout <<  string("ERROR: try to drop ") << k << " chars from input stream." << endl;
            return this;
        }
        int l = line, c = column;
        size_t len = min((size_t)k, text.length());
        for (size_t i = 0; i < len; ++i) {
            if (text.at(i) == '\n') {
                l = l + 1; c = 1;
            }
            else {
                c = c + 1;
            }
        }
        if ((size_t)k < this->text.length()) {
            return new input_t(this->text.substr(k), l, c, this->desc);
        }
        return new input_t("", l, c, this->desc);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jge 0x1cb87
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1cdf1
movq -0xa0(%rbp), %rdi
movl 0x8(%rdi), %eax
movl %eax, -0x1c(%rbp)
movl 0xc(%rdi), %eax
movl %eax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0x30(%rbp)
addq $0x10, %rdi
callq 0x54e0
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x2fc70
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x1cc1f
movq -0xa0(%rbp), %rdi
addq $0x10, %rdi
movq -0x40(%rbp), %rsi
callq 0x5620
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0x1cc06
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl $0x1, -0x20(%rbp)
jmp 0x1cc0f
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x1cc11
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1cbce
movq -0xa0(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0xa8(%rbp)
addq $0x10, %rdi
callq 0x54e0
movq %rax, %rcx
movq -0xa8(%rbp), %rax
cmpq %rcx, %rax
jae 0x1cd09
movl $0x30, %edi
callq 0x5340
movq -0xa0(%rbp), %rsi
movq %rax, -0xb0(%rbp)
movb $0x1, -0x6d(%rbp)
addq $0x10, %rsi
movq -0x18(%rbp), %rax
movslq (%rax), %rdx
leaq -0x60(%rbp), %rdi
movq $-0x1, %rcx
callq 0x5380
jmp 0x1cc89
movq -0xb0(%rbp), %rdi
movq -0xa0(%rbp), %rax
movl -0x1c(%rbp), %edx
movl -0x20(%rbp), %ecx
movq (%rax), %r8
leaq -0x60(%rbp), %rsi
callq 0x2fcb0
jmp 0x1ccab
movq -0xb0(%rbp), %rax
movb $0x0, -0x6d(%rbp)
movq %rax, -0x8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5200
jmp 0x1cdf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1cceb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5200
testb $0x1, -0x6d(%rbp)
jne 0x1ccf3
jmp 0x1cd04
movq -0xb0(%rbp), %rdi
movl $0x30, %esi
callq 0x5350
jmp 0x1cdfe
movl $0x30, %edi
callq 0x5340
movq %rax, -0xc0(%rbp)
movb $0x1, -0x92(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x55d0
movq -0xb8(%rbp), %rdx
leaq 0xd4eed(%rip), %rsi     # 0xf1c2f
leaq -0x90(%rbp), %rdi
callq 0x19840
jmp 0x1cd50
movq -0xc0(%rbp), %rdi
movq -0xa0(%rbp), %rax
movl -0x1c(%rbp), %edx
movl -0x20(%rbp), %ecx
movq (%rax), %r8
leaq -0x90(%rbp), %rsi
callq 0x2fcb0
jmp 0x1cd75
movq -0xc0(%rbp), %rax
movb $0x0, -0x92(%rbp)
movq %rax, -0x8(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x5200
leaq -0x91(%rbp), %rdi
callq 0x53c0
jmp 0x1cdf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1cdc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x5200
leaq -0x91(%rbp), %rdi
callq 0x53c0
testb $0x1, -0x92(%rbp)
jne 0x1cdde
jmp 0x1cdef
movq -0xc0(%rbp), %rdi
movl $0x30, %esi
callq 0x5350
jmp 0x1cdfe
movq -0x8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x55b0
nopw (%rax,%rax)