// File: /workspace/github_cpp_makefile_star2_O3/alfanick[P]rest-cpp/src/rest/features/authorization.cpp
// Function: REST::Features::Authorization::feature_push()
void Authorization::feature_push() {
  std::string auth_header = request->header("Authorization", "");
  if (!auth_header.empty()) {
    if (auth_header.find("Basic") == 0) {
      std::string decoded = Utils::base64_decode(auth_header.substr(auth_header.find(" ")+1));
      size_t colon = decoded.find(":");
      authorization = std::make_pair(decoded.substr(0, colon), decoded.substr(colon+1));
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq (%rdi), %rax
leaq 0x38(%rsp), %r12
movq %rdi, %rbx
movq -0x18(%rax), %rax
movq 0x10(%rdi,%rax), %r14
movq %r12, -0x10(%r12)
leaq 0x841f(%rip), %rsi      # 0x3f010
leaq 0x8425(%rip), %rdx      # 0x3f01d
leaq 0x28(%rsp), %rdi
callq 0x215e0
leaq 0x6a4d(%rip), %rcx      # 0x3d656
leaq 0x88(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %r14, %rsi
callq 0x231c0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x36c2d
callq 0x22130
cmpq $0x0, 0x90(%rsp)
je 0x36e1d
leaq 0x83db(%rip), %rsi      # 0x3f01e
leaq 0x88(%rsp), %rdi
movl $0x5, %ecx
xorl %edx, %edx
callq 0x23110
testq %rax, %rax
jne 0x36e1d
leaq 0x88(%rsp), %r14
leaq 0x7491(%rip), %rsi      # 0x3e100
movl $0x1, %ecx
xorl %edx, %edx
movq %r14, %rdi
callq 0x23110
leaq 0x1(%rax), %rdx
leaq 0x28(%rsp), %rdi
movq $-0x1, %rcx
movq %r14, %rsi
callq 0x22330
leaq 0xa8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x234f0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x36cb7
callq 0x22130
leaq 0xa8(%rsp), %r15
leaq 0x8ea7(%rip), %rsi      # 0x3fb6d
movl $0x1, %ecx
xorl %edx, %edx
movq %r15, %rdi
callq 0x23110
movq %rax, %r14
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x22330
incq %r14
leaq 0x68(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
movq $-0x1, %rcx
movq %r14, %rdx
callq 0x22330
leaq 0x18(%rsp), %rcx
movq %r12, 0x28(%rsp)
movq -0x10(%rcx), %rax
cmpq %rcx, %rax
je 0x36d2d
movq 0x18(%rsp), %rdx
movq %rax, 0x28(%rsp)
movq %rdx, 0x38(%rsp)
jmp 0x36d37
vmovups (%rcx), %xmm0
vmovups %xmm0, (%r12)
movq 0x10(%rsp), %rax
leaq 0x48(%rsp), %r14
leaq 0x78(%rsp), %rbp
leaq 0x58(%rsp), %r13
movq %rcx, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq %rax, -0x18(%r14)
movq -0x10(%rbp), %rax
movq %r13, -0x10(%r13)
cmpq %rbp, %rax
je 0x36d80
movq 0x78(%rsp), %rcx
movq %rax, 0x48(%rsp)
movq %rcx, 0x58(%rsp)
jmp 0x36d8b
vmovups (%rbp), %xmm0
vmovups %xmm0, (%r13)
movq 0x70(%rsp), %rax
leaq 0x28(%rsp), %r15
leaq 0x8(%rbx), %rdi
movq %rbp, 0x68(%rsp)
movq $0x0, 0x70(%rsp)
movb $0x0, 0x78(%rsp)
movq %r15, %rsi
movq %rax, 0x28(%r15)
callq 0x22620
addq $0x28, %rbx
movq %r14, %rsi
movq %rbx, %rdi
callq 0x22620
movq 0x20(%r15), %rdi
cmpq %r13, %rdi
je 0x36dd5
callq 0x22130
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x36de4
callq 0x22130
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36df3
callq 0x22130
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x36e07
callq 0x22130
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36e1d
callq 0x22130
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36e33
callq 0x22130
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x18(%rsp), %rcx
movq %rax, %rbx
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x36e60
callq 0x22130
jmp 0x36e60
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x36e80
jmp 0x36e8a
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
je 0x36e8a
callq 0x22130
jmp 0x36e8a
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x36eaa
jmp 0x36eb4
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
je 0x36eb4
callq 0x22130
jmp 0x36eb4
movq %rax, %rbx
movq %rbx, %rdi
callq 0x23160