// File: /workspace/github_cpp_makefile_star2_O3/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 0x706fe
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 0x70576
leal -0x61(%rdx), %eax
cmpl $0x19, %eax
ja 0x70550
addl $-0x47, %edx
jmp 0x7055b
leal -0x30(%rdx), %eax
cmpl $0x9, %eax
ja 0x7055f
addl $0x4, %edx
movl %edx, %eax
jmp 0x70576
movl $0x3f, %eax
cmpb $0x2f, %dl
je 0x7056b
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 0x705bc
leal -0x61(%rdx), %esi
cmpl $0x19, %esi
ja 0x70592
addl $-0x47, %edx
jmp 0x7059d
leal -0x30(%rdx), %esi
cmpl $0x9, %esi
ja 0x705a2
addl $0x4, %edx
movl %edx, %r13d
jmp 0x705bc
movl $0x3f, %r13d
cmpb $0x2f, %dl
je 0x705b0
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 0x70602
leal -0x61(%rdx), %esi
cmpl $0x19, %esi
ja 0x705d8
addl $-0x47, %edx
jmp 0x705e3
leal -0x30(%rdx), %esi
cmpl $0x9, %esi
ja 0x705e8
addl $0x4, %edx
movl %edx, %r15d
jmp 0x70602
movl $0x3f, %r15d
cmpb $0x2f, %dl
je 0x705f6
xorl %r15d, %r15d
cmpb $0x2b, %dl
movl $0x3e, %edx
cmovel %edx, %r15d
movsbl (%rcx,%rbp), %ecx
leal -0x41(%rcx), %r12d
cmpl $0x1a, %r12d
jb 0x70647
leal -0x61(%rcx), %edx
cmpl $0x19, %edx
ja 0x7061d
addl $-0x47, %ecx
jmp 0x70628
leal -0x30(%rcx), %edx
cmpl $0x9, %edx
ja 0x7062d
addl $0x4, %ecx
movl %ecx, %r12d
jmp 0x70647
movl $0x3f, %r12d
cmpb $0x2f, %cl
je 0x7063b
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 0x7066a
movb %al, (%rsi)
incq 0x8(%r14)
jmp 0x70677
movq %r14, %rdi
leaq 0x7(%rsp), %rdx
callq 0x16120
shll $0x6, %r15d
movq (%rbx), %rax
cmpb $0x3d, -0x1(%rax,%rbp)
je 0x706b4
orl %r15d, %r13d
shrl $0x8, %r13d
movb %r13b, 0x6(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x706a4
movb %r13b, (%rsi)
incq 0x8(%r14)
jmp 0x706b1
movq %r14, %rdi
leaq 0x6(%rsp), %rdx
callq 0x16120
movq (%rbx), %rax
cmpb $0x3d, (%rax,%rbp)
je 0x706e2
orl %r15d, %r12d
movb %r12b, 0x5(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x706d5
movb %r12b, (%rsi)
incq 0x8(%r14)
jmp 0x706e2
movq %r14, %rdi
leaq 0x5(%rsp), %rdx
callq 0x16120
addq $0x4, %rbp
cmpq 0x8(%rbx), %rbp
jb 0x70533
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq