// File: /workspace/github_cpp_makefile_star2_O1/lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: void fromBase64<std::vector<unsigned char, std::allocator<unsigned char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(std::vector<unsigned char, std::allocator<unsigned char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void fromBase64(T& out, const U& in) {
  for(size_t i = 0; i + 3 < in.size(); i += 4) {
    int v = 262144 * fromBase64(in[i]) + 4096 * fromBase64(in[i + 1]) + 64 * fromBase64(in[i + 2]) + fromBase64(in[i + 3]);
    out.push_back((v >> 16) & 0xff);
    if(in[i + 2] != '=') out.push_back((v >> 8) & 0xff);
    if(in[i + 3] != '=') out.push_back((v >> 0) & 0xff);
  }
}

// Assembly:
cmpq $0x4, 0x8(%rsi)
jb 0x70593
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movl $0x3, %ebp
movq (%rbx), %rcx
movsbl -0x3(%rcx,%rbp), %edx
leal -0x41(%rdx), %eax
cmpl $0x1a, %eax
jb 0x7040b
leal -0x61(%rdx), %eax
cmpl $0x19, %eax
ja 0x703e5
addl $-0x47, %edx
jmp 0x703f0
leal -0x30(%rdx), %eax
cmpl $0x9, %eax
ja 0x703f4
addl $0x4, %edx
movl %edx, %eax
jmp 0x7040b
movl $0x3f, %eax
cmpb $0x2f, %dl
je 0x70400
xorl %eax, %eax
cmpb $0x2b, %dl
movl $0x3e, %edx
cmovel %edx, %eax
movsbl -0x2(%rcx,%rbp), %edx
leal -0x41(%rdx), %r13d
cmpl $0x1a, %r13d
jb 0x70451
leal -0x61(%rdx), %esi
cmpl $0x19, %esi
ja 0x70427
addl $-0x47, %edx
jmp 0x70432
leal -0x30(%rdx), %esi
cmpl $0x9, %esi
ja 0x70437
addl $0x4, %edx
movl %edx, %r13d
jmp 0x70451
movl $0x3f, %r13d
cmpb $0x2f, %dl
je 0x70445
xorl %r13d, %r13d
cmpb $0x2b, %dl
movl $0x3e, %edx
cmovel %edx, %r13d
movsbl -0x1(%rcx,%rbp), %edx
leal -0x41(%rdx), %r15d
cmpl $0x1a, %r15d
jb 0x70497
leal -0x61(%rdx), %esi
cmpl $0x19, %esi
ja 0x7046d
addl $-0x47, %edx
jmp 0x70478
leal -0x30(%rdx), %esi
cmpl $0x9, %esi
ja 0x7047d
addl $0x4, %edx
movl %edx, %r15d
jmp 0x70497
movl $0x3f, %r15d
cmpb $0x2f, %dl
je 0x7048b
xorl %r15d, %r15d
cmpb $0x2b, %dl
movl $0x3e, %edx
cmovel %edx, %r15d
movsbl (%rcx,%rbp), %ecx
leal -0x41(%rcx), %r12d
cmpl $0x1a, %r12d
jb 0x704dc
leal -0x61(%rcx), %edx
cmpl $0x19, %edx
ja 0x704b2
addl $-0x47, %ecx
jmp 0x704bd
leal -0x30(%rcx), %edx
cmpl $0x9, %edx
ja 0x704c2
addl $0x4, %ecx
movl %ecx, %r12d
jmp 0x704dc
movl $0x3f, %r12d
cmpb $0x2f, %cl
je 0x704d0
xorl %r12d, %r12d
cmpb $0x2b, %cl
movl $0x3e, %ecx
cmovel %ecx, %r12d
shll $0x12, %eax
shll $0xc, %r13d
addl %r13d, %eax
shrl $0x10, %eax
movb %al, 0x7(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x704ff
movb %al, (%rsi)
incq 0x8(%r14)
jmp 0x7050c
movq %r14, %rdi
leaq 0x7(%rsp), %rdx
callq 0x16342
shll $0x6, %r15d
movq (%rbx), %rax
cmpb $0x3d, -0x1(%rax,%rbp)
je 0x70546
orl %r15d, %r13d
shrl $0x8, %r13d
movb %r13b, 0x6(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x70539
movb %r13b, (%rsi)
incq 0x8(%r14)
jmp 0x70546
movq %r14, %rdi
leaq 0x6(%rsp), %rdx
callq 0x16342
movq (%rbx), %rax
cmpb $0x3d, (%rax,%rbp)
je 0x70577
orl %r15d, %r12d
movb %r12b, 0x5(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x7056a
movb %r12b, (%rsi)
incq 0x8(%r14)
jmp 0x70577
movq %r14, %rdi
leaq 0x5(%rsp), %rdx
callq 0x16342
addq $0x4, %rbp
cmpq 0x8(%rbx), %rbp
jb 0x703c8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq