// File: lvandeve[P]base256/base256.cpp
// Function: Printer::decode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string decode(const std::string& s) {
    if(mix) {
      std::string result;
      for(size_t i = 0; i < s.size(); i++) {
        // 32 is space, anything <= 32 is considered whitespace
        while(i < s.size() && (s[i] <= 32)) i++;
        if(i == s.size()) break;
        size_t j = i + 1;
        while(j < s.size() && (s[j] > 32)) j++;
        size_t size = j - i;
        if(size == 1) {
          char c = s[i];
          if(c > 32 && c < 127) {
            result += c;
            i = j;
            continue;
          }
        }
        result += n->decode(s.substr(i, j - i));
        i = j;
      }
      return result;
    } else {
      return n->decode(s);
    }
  }

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0x40(%rsp)
movq %rdi, %rax
movq %rax, 0x48(%rsp)
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
movq %rdx, 0xd0(%rsp)
movq 0xd8(%rsp), %rax
movq %rax, 0x50(%rsp)
testb $0x1, 0x1a(%rax)
je 0x10f11
movq 0x40(%rsp), %rdi
movb $0x0, 0xcf(%rsp)
callq 0x5400
movq $0x0, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x5220
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
jae 0x10ee7
jmp 0x10c4e
movq 0xc0(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x5220
movq 0x28(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x37(%rsp)
jae 0x10c9d
movq 0xd0(%rsp), %rdi
movq 0xc0(%rsp), %rsi
callq 0x5320
movsbl (%rax), %eax
cmpl $0x20, %eax
setle %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x10ca7
jmp 0x10cbd
movq 0xc0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xc0(%rsp)
jmp 0x10c4e
movq 0xc0(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x5220
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
jne 0x10ce9
jmp 0x10ee7
movq 0xc0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x5220
movq 0x10(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x1f(%rsp)
jae 0x10d4c
movq 0xd0(%rsp), %rdi
movq 0xb8(%rsp), %rsi
callq 0x5320
movsbl (%rax), %eax
cmpl $0x20, %eax
setg %al
movb %al, 0x1f(%rsp)
movb 0x1f(%rsp), %al
testb $0x1, %al
jne 0x10d56
jmp 0x10d6c
movq 0xb8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xb8(%rsp)
jmp 0x10cfd
movq 0xb8(%rsp), %rax
subq 0xc0(%rsp), %rax
movq %rax, 0xb0(%rsp)
cmpq $0x1, 0xb0(%rsp)
jne 0x10e0b
movq 0xd0(%rsp), %rdi
movq 0xc0(%rsp), %rsi
callq 0x5320
movb (%rax), %al
movb %al, 0xaf(%rsp)
movsbl 0xaf(%rsp), %eax
cmpl $0x20, %eax
jle 0x10e09
movsbl 0xaf(%rsp), %eax
cmpl $0x7f, %eax
jge 0x10e09
movq 0x40(%rsp), %rdi
movsbl 0xaf(%rsp), %esi
callq 0x51d0
jmp 0x10ddb
movq 0xb8(%rsp), %rax
movq %rax, 0xc0(%rsp)
jmp 0x10e8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x10f05
jmp 0x10e0b
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0xd0(%rsp), %rsi
movq 0xc0(%rsp), %rdx
movq 0xb8(%rsp), %rcx
subq %rdx, %rcx
leaq 0x58(%rsp), %rdi
callq 0x52c0
jmp 0x10e3f
movq 0x8(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq *%rax
jmp 0x10e59
movq 0x40(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x5360
jmp 0x10e6a
leaq 0x78(%rsp), %rdi
callq 0x5558
leaq 0x58(%rsp), %rdi
callq 0x5558
movq 0xb8(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xc0(%rsp)
jmp 0x10c21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x10edb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x5558
leaq 0x58(%rsp), %rdi
callq 0x5558
jmp 0x10f05
movb $0x1, 0xcf(%rsp)
testb $0x1, 0xcf(%rsp)
jne 0x10f03
movq 0x40(%rsp), %rdi
callq 0x5558
jmp 0x10f2c
movq 0x40(%rsp), %rdi
callq 0x5558
jmp 0x10f39
movq 0x40(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
movq 0xd0(%rsp), %rdx
movq (%rsi), %rax
callq *0x18(%rax)
movq 0x48(%rsp), %rax
addq $0xe8, %rsp
retq
movq 0xa0(%rsp), %rdi
callq 0x54e0
nopw %cs:(%rax,%rax)