// File: AsherGlick[P]CommentHeader/source/main.cpp
// Function: align(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, char, unsigned int)
vector<string> align(string text, char position, unsigned int width) {
  vector<string> wrapped = wrap(text, width);

  for (unsigned int i = 0; i < wrapped.size(); i++) {
    unsigned int difference = width-wrapped[i].size();
    switch (position) {
      case 'n':
        for (unsigned int j = 0; j < difference; j++) {
          wrapped[i] += " ";
        }
        break;
      case 'r':
        for (unsigned int j = 0; j < difference; j++) {
          wrapped[i] = " " + wrapped[i];
        }
        break;
      case 'm':
        unsigned int leftDifference = difference / 2;
        unsigned int rightDifference = difference - leftDifference;
        for (unsigned int j = 0; j < leftDifference; j++) {
          wrapped[i] = " " + wrapped[i];
        }
        for (unsigned int j = 0; j < rightDifference; j++) {
          wrapped[i] += " ";
        }
        break;
    }
  }
  return wrapped;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0xc8(%rbp)
movb %dl, %al
movq %rdi, %rdx
movq %rdx, -0xd0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movl %ecx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x3130
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
movl -0x18(%rbp), %edx
callq 0x12b90
jmp 0x13088
leaq -0x40(%rbp), %rdi
callq 0x31a0
movl $0x0, -0x50(%rbp)
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movq %rax, -0xd8(%rbp)
callq 0xd0e0
movq %rax, %rcx
movq -0xd8(%rbp), %rax
cmpq %rcx, %rax
jae 0x132ff
movq -0xc8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, -0xe0(%rbp)
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdi
callq 0x31e0
movq %rax, %rcx
movl -0xe0(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x54(%rbp)
movsbl -0x11(%rbp), %eax
movl %eax, -0xdc(%rbp)
subl $0x6d, %eax
je 0x13208
jmp 0x13106
movl -0xdc(%rbp), %eax
subl $0x6e, %eax
je 0x1313d
jmp 0x13113
movl -0xdc(%rbp), %eax
subl $0x72, %eax
je 0x1319d
jmp 0x132ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x31a0
jmp 0x13325
movl $0x0, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x54(%rbp), %eax
jae 0x13198
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdi
leaq 0x4eb5(%rip), %rsi      # 0x1801c
callq 0x3280
jmp 0x1316e
jmp 0x13170
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x13144
movq -0xc8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0xcae0
jmp 0x13325
jmp 0x132ef
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
cmpl -0x54(%rbp), %eax
jae 0x13203
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdx
leaq 0x4e55(%rip), %rsi      # 0x1801c
leaq -0x80(%rbp), %rdi
callq 0x13a20
jmp 0x131d2
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdi
leaq -0x80(%rbp), %rsi
callq 0x3350
leaq -0x80(%rbp), %rdi
callq 0x31a0
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x131a4
jmp 0x132ef
movl -0x54(%rbp), %eax
shrl %eax
movl %eax, -0x84(%rbp)
movl -0x54(%rbp), %eax
subl -0x84(%rbp), %eax
movl %eax, -0x88(%rbp)
movl $0x0, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
cmpl -0x84(%rbp), %eax
jae 0x132a0
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdx
leaq 0x4dc7(%rip), %rsi      # 0x1801c
leaq -0xb0(%rbp), %rdi
callq 0x13a20
jmp 0x13263
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3350
leaq -0xb0(%rbp), %rdi
callq 0x31a0
movl -0x8c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x1322c
movl $0x0, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0x88(%rbp), %eax
jae 0x132ed
movq -0xc8(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x13920
movq %rax, %rdi
leaq 0x4d49(%rip), %rsi      # 0x1801c
callq 0x3280
jmp 0x132da
jmp 0x132dc
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x132aa
jmp 0x132ef
jmp 0x132f1
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x13098
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x13315
movq -0xc8(%rbp), %rdi
callq 0xcae0
movq -0xd0(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x3460
nop