Function at 0x140015e05
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rax, qword [rdx]
mov rsi, qword [rdx + 8]
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
test rax, rax
je 0x1400175dc
mov rcx, rax
call fcn.140015dda
mov rcx, qword [0x14002b930]
mov r12, rax
call fcn.14001cb10
cmp byte [rax], 0
mov rbp, rax
jne 0x1400175dc
test r12, r12
jns 0x140015e89
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
jmp 0x14001756b
lea rcx, [rsp + 0xb0]
mov rdx, r12
call fcn.140005050
mov rax, qword [rsp + 0x38]
movabs r8, 0x2000000100002400
mov rcx, rax
mov qword [rsp + 0x78], rax
sub rcx, 1
mov rax, rcx
jno 0x140015ec3
call fcn.140003eba
jmp 0x1400175dc
cmp rcx, qword [rsp + 0x38]
jge 0x140015ecf
test rcx, rcx
jns 0x140015ed9
mov rdx, qword [rsp + 0x38]
jmp 0x14001692b
mov cl, byte [rcx + rsi + 8]
cmp cl, 0x3d
ja 0x140015eed
mov rdx, r8
shr rdx, cl
and dl, 1
jne 0x140015ea8
mov rax, qword [rsp + 0x78]
sub rax, 4
seto r12b
mov qword [rsp + 0x88], rax
movzx r12d, r12b
jo 0x140015eb9
mov qword [rsp + 0x40], 0
cmp qword [rsp + 0x88], r12
jge 0x140015f72
mov rax, r12
sub rax, qword [rsp + 0x78]
jo 0x140015eb9
mov ecx, 4
cqo
idiv rcx
mov rax, rdx
sar rax, 0x3f
xor rdx, rax
sub rdx, rax
cmp rdx, 2
je 0x140016975
jmp 0x140016966
test r12, r12
js 0x14001727f
movzx ecx, byte [rsi + r12 + 8]
cmp cl, 0x20
ja 0x140015f7e
mov eax, 0x400009
shl rax, 0xa
shr rax, cl
test al, 1
je 0x140015f7e
inc r12
cmp r12, qword [rsp + 0x38]
jl 0x140015f4b
jmp 0x14001727f
lea rax, [0x140026f00]
mov al, byte [rax + rcx]
mov byte [rsp + 0x4f], al
inc al
jne 0x140016160
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [rsi + r12 + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
mov rax, qword [rsp + 0xa0]
cmp byte [rbp], 0
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0x50], rax
jne 0x14001618c
mov rdx, r12
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
jne 0x14001614c
mov rcx, qword [rsp + 0x50]
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x58], rax
lea rdx, [rcx + rax + 0x38]
mov rcx, r13
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [rsi + r12 + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rax, qword [rsp + 0x50]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov rax, qword [rsp + 0x58]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
test rbx, rbx
jne 0x14001617c
test r15, r15
jne 0x140016195
cmp byte [rbp], 0
jne 0x1400175dc
lea r13, [r12 + 1]
cmp r13, qword [rsp + 0x38]
jl 0x1400161a6
mov rdx, qword [rsp + 0x38]
mov rcx, r13
dec rdx
jmp 0x14001687c
test byte [rbx + 7], 0x40
jne 0x140016151
mov rcx, rbx
call fcn.140003dca
jmp 0x140016151
test r15, r15
je 0x1400175dc
test byte [r15 + 7], 0x40
jne 0x140016156
mov rcx, r15
call fcn.140003dca
jmp 0x140016156
movzx eax, byte [r13 + rsi + 8]
lea rdx, [0x140026f00]
movzx eax, byte [rdx + rax]
mov byte [rsp + 0x50], al
mov qword [rsp + 0x68], rax
cmp rax, 0xff
je 0x1400161eb
mov r12, r13
inc r12
js 0x140015eb9
cmp r12, r13
jb 0x140015eb9
test r12, r12
jns 0x1400163df
jmp 0x14001727f
mov edx, 8
mov ecx, 0x40
lea r12, [rsp + 0xa0]
call fcn.140005262
mov rcx, r12
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [rsi + r13 + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
cmp byte [rbp], 0
mov rbx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xa8]
jne 0x1400175d3
mov rdx, r13
mov rcx, r12
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xa8]
jne 0x1400163a8
lea rdx, [rbx + rax + 0x38]
mov rcx, r12
mov qword [rsp + 0x60], r10
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x58], rax
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r12
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [rsi + r13 + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r12
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], r15
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r12
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov r10, qword [rsp + 0x60]
mov rdx, r12
mov rcx, r14
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0x58], r10
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r12
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
mov r10, qword [rsp + 0x58]
test r10, r10
je 0x1400163bc
test byte [r10 + 7], 0x40
jne 0x1400163bc
mov rcx, r10
call fcn.140003dca
test r15, r15
je 0x1400163d0
test byte [r15 + 7], 0x40
jne 0x1400163d0
mov rcx, r15
call fcn.140003dca
cmp byte [rbp], 0
je 0x1400161c8
jmp 0x1400175dc
cmp r12, qword [rsp + 0x38]
jge 0x14001727f
movzx eax, byte [r12 + rsi + 8]
lea rdx, [0x140026f00]
movzx eax, byte [rdx + rax]
mov byte [rsp + 0x58], al
mov qword [rsp + 0x70], rax
cmp rax, 0xff
je 0x140016421
lea r15, [r12 + 1]
cmp r15, qword [rsp + 0x38]
jl 0x14001661b
jmp 0x140017037
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [rsi + r12 + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
cmp byte [rbp], 0
mov rbx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xa8]
jne 0x1400175c8
mov rdx, r12
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xa8]
jne 0x1400165e4
lea rdx, [rbx + rax + 0x38]
mov rcx, r13
mov qword [rsp + 0x80], r10
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x60], rax
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [rsi + r12 + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], r15
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov rax, qword [rsp + 0x60]
mov rdx, r13
mov rcx, r14
mov r10, qword [rsp + 0x80]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0x60], r10
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
mov r10, qword [rsp + 0x60]
test r10, r10
je 0x1400165f8
test byte [r10 + 7], 0x40
jne 0x1400165f8
mov rcx, r10
call fcn.140003dca
test r15, r15
je 0x14001660c
test byte [r15 + 7], 0x40
jne 0x14001660c
mov rcx, r15
call fcn.140003dca
cmp byte [rbp], 0
je 0x14001640c
jmp 0x1400175dc
movzx eax, byte [r15 + rsi + 8]
lea rdx, [0x140026f00]
mov al, byte [rdx + rax]
mov byte [rsp + 0x60], al
inc al
je 0x140016650
add r12, 2
cmp qword [rsp + 0x40], 0
mov rdx, qword [rsp + 0xb0]
jns 0x14001686d
jmp 0x140016874
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [rsi + r15 + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
mov rax, qword [rsp + 0xa0]
cmp byte [rbp], 0
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x80], rax
jne 0x1400175bd
mov rdx, r15
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xa8]
jne 0x140016837
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x98], r10
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x90], rax
lea rdx, [rcx + rax + 0x38]
mov rcx, r13
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [rsi + r15 + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rax, qword [rsp + 0x80]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov r10, qword [rsp + 0x98]
mov rdx, r13
mov rcx, r14
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0x80], r10
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
mov r10, qword [rsp + 0x80]
test r10, r10
je 0x14001684b
test byte [r10 + 7], 0x40
jne 0x14001684b
mov rcx, r10
call fcn.140003dca
test rbx, rbx
je 0x14001685e
test byte [rbx + 7], 0x40
jne 0x14001685e
mov rcx, rbx
call fcn.140003dca
cmp byte [rbp], 0
je 0x140016633
jmp 0x1400175dc
cmp qword [rsp + 0x40], rdx
jl 0x140016886
mov rcx, qword [rsp + 0x40]
dec rdx
call fcn.1400055b3
jmp 0x1400175dc
lea r13, [rsp + 0xb0]
mov rcx, r13
call fcn.140015d63
mov al, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x40]
sar rdx, 4
shl eax, 2
or eax, edx
mov rbx, rdi
mov rdx, qword [rsp + 0xb8]
add rbx, 1
mov byte [rdx + rdi + 8], al
mov rcx, rbx
jo 0x140015eb9
mov rdx, qword [rsp + 0xb0]
test rbx, rbx
js 0x140016922
cmp rbx, rdx
jge 0x14001692b
mov rcx, r13
call fcn.140015d63
mov al, byte [rsp + 0x50]
mov rdx, qword [rsp + 0x70]
shl eax, 4
sar rdx, 2
or eax, edx
mov rdx, qword [rsp + 0xb8]
mov byte [rdx + rbx + 8], al
add rbx, 1
mov rcx, rbx
jo 0x140015eb9
mov rdx, qword [rsp + 0xb0]
test rbx, rbx
js 0x140016922
cmp rbx, rdx
jl 0x140016933
jmp 0x14001692b
mov ecx, 1
shl rcx, 0x3f
dec rdx
jmp 0x14001687c
mov rcx, r13
call fcn.140015d63
mov al, byte [rsp + 0x58]
mov rdx, qword [rsp + 0xb8]
shl eax, 6
or eax, dword [rsp + 0x60]
mov byte [rdx + rbx + 8], al
add rbx, 1
mov qword [rsp + 0x40], rbx
jno 0x140015f11
jmp 0x140015eb9
cmp rdx, 3
jne 0x140017552
jmp 0x140016e11
cmp r12, qword [rsp + 0x38]
jge 0x14001727f
movzx eax, byte [r12 + rsi + 8]
lea rdx, [0x140026f00]
mov al, byte [rdx + rax]
mov byte [rsp + 0x4f], al
inc al
je 0x1400169ab
inc r12
cmp qword [rsp + 0x38], r12
jg 0x140016b99
jmp 0x14001727f
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [r12 + rsi + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
mov rax, qword [rsp + 0xa0]
cmp byte [rbp], 0
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0x50], rax
jne 0x1400175b2
mov rdx, r12
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
jne 0x140016b63
mov rcx, qword [rsp + 0x50]
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x58], rax
lea rdx, [rcx + rax + 0x38]
mov rcx, r13
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [r12 + rsi + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rax, qword [rsp + 0x50]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov rax, qword [rsp + 0x58]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
test rbx, rbx
je 0x140016b76
test byte [rbx + 7], 0x40
jne 0x140016b76
mov rcx, rbx
call fcn.140003dca
test r15, r15
je 0x140016b8a
test byte [r15 + 7], 0x40
jne 0x140016b8a
mov rcx, r15
call fcn.140003dca
cmp byte [rbp], 0
je 0x140016998
jmp 0x1400175dc
movzx eax, byte [r12 + rsi + 8]
lea rdx, [0x140026f00]
movzx eax, byte [rdx + rax]
mov qword [rsp + 0x38], rax
cmp rax, 0xff
je 0x140016bd0
cmp qword [rsp + 0x40], 0
mov rdx, qword [rsp + 0xb0]
jns 0x140016dbe
jmp 0x140016874
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rbx, rax
mov rax, qword [0x14002b830]
mov qword [rbx], rax
lea rax, str.ValueError
mov qword [rbx + 0x10], rax
movzx edx, byte [r12 + rsi + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
mov rax, qword [rsp + 0xa0]
cmp byte [rbp], 0
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0x50], rax
jne 0x1400175a7
mov rdx, r12
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
jne 0x140016d88
mov rcx, qword [rsp + 0x50]
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x58], rax
lea rdx, [rcx + rax + 0x38]
mov rcx, r13
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [r12 + rsi + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rax, qword [rsp + 0x50]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov rax, qword [rsp + 0x58]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rbx
mov qword [rbx + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rbx + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
test rdi, rdi
je 0x140016d9b
test byte [rdi + 7], 0x40
jne 0x140016d9b
mov rcx, rdi
call fcn.140003dca
test r15, r15
je 0x140016daf
test byte [r15 + 7], 0x40
jne 0x140016daf
mov rcx, r15
call fcn.140003dca
cmp byte [rbp], 0
je 0x140016bb7
jmp 0x1400175dc
cmp rdx, qword [rsp + 0x40]
jle 0x140016874
lea rcx, [rsp + 0xb0]
call fcn.140015d63
mov bl, byte [rsp + 0x4f]
mov rsi, qword [rsp + 0x38]
mov rax, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x40]
shl ebx, 2
sar rsi, 4
or esi, ebx
mov byte [rax + rdi + 8], sil
mov rax, rdi
add rax, 1
jo 0x140015eb9
mov qword [rsp + 0x40], rax
jmp 0x140017552
cmp r12, qword [rsp + 0x38]
jge 0x14001727f
movzx eax, byte [r12 + rsi + 8]
lea rdx, [0x140026f00]
mov al, byte [rdx + rax]
mov byte [rsp + 0x4f], al
inc al
je 0x140016e49
lea r15, [r12 + 1]
cmp qword [rsp + 0x38], r15
jg 0x140017047
jmp 0x140017037
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [r12 + rsi + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
mov rax, qword [rsp + 0xa0]
cmp byte [rbp], 0
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0x50], rax
jne 0x14001759c
mov rdx, r12
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
jne 0x140017001
mov rcx, qword [rsp + 0x50]
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x58], rax
lea rdx, [rcx + rax + 0x38]
mov rcx, r13
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [r12 + rsi + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rax, qword [rsp + 0x50]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov rax, qword [rsp + 0x58]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
test rbx, rbx
je 0x140017014
test byte [rbx + 7], 0x40
jne 0x140017014
mov rcx, rbx
call fcn.140003dca
test r15, r15
je 0x140017028
test byte [r15 + 7], 0x40
jne 0x140017028
mov rcx, r15
call fcn.140003dca
cmp byte [rbp], 0
je 0x140016e34
jmp 0x1400175dc
mov rdx, qword [rsp + 0x38]
mov rcx, r15
dec rdx
jmp 0x14001687c
movzx eax, byte [r15 + rsi + 8]
lea rdx, [0x140026f00]
movzx eax, byte [rdx + rax]
mov byte [rsp + 0x50], al
mov qword [rsp + 0x58], rax
cmp rax, 0xff
je 0x14001707d
add r12, 2
cmp r12, qword [rsp + 0x38]
jl 0x140017289
jmp 0x14001727f
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rdi, rax
mov rax, qword [0x14002b830]
mov qword [rdi], rax
lea rax, str.ValueError
mov qword [rdi + 0x10], rax
movzx edx, byte [r15 + rsi + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
mov rax, qword [rsp + 0xa0]
cmp byte [rbp], 0
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rax
jne 0x140017591
mov rdx, r15
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov r11, qword [rsp + 0xa8]
jne 0x140017249
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x70], r11
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x68], rax
lea rdx, [rcx + rax + 0x38]
mov rcx, r13
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [r15 + rsi + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rax, qword [rsp + 0x60]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov r11, qword [rsp + 0x70]
mov rdx, r13
mov rcx, r14
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xa8], r11
mov qword [rsp + 0x60], r11
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rdi
mov qword [rdi + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rdi + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
mov r11, qword [rsp + 0x60]
test r11, r11
je 0x14001725d
test byte [r11 + 7], 0x40
jne 0x14001725d
mov rcx, r11
call fcn.140003dca
test rbx, rbx
je 0x140017270
test byte [rbx + 7], 0x40
jne 0x140017270
mov rcx, rbx
call fcn.140003dca
cmp byte [rbp], 0
je 0x140017069
jmp 0x1400175dc
mov rdx, qword [rsp + 0x38]
jmp 0x140017511
movzx eax, byte [r12 + rsi + 8]
lea rdx, [0x140026f00]
movzx eax, byte [rdx + rax]
mov qword [rsp + 0x38], rax
cmp rax, 0xff
je 0x1400172c0
cmp qword [rsp + 0x40], 0
mov rdx, qword [rsp + 0xb0]
jns 0x1400174b4
jmp 0x140016874
mov edx, 8
mov ecx, 0x40
lea r13, [rsp + 0xa0]
call fcn.140005262
mov rcx, r13
mov rbx, rax
mov rax, qword [0x14002b830]
mov qword [rbx], rax
lea rax, str.ValueError
mov qword [rbx + 0x10], rax
movzx edx, byte [r12 + rsi + 8]
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call fcn.140001d20
cmp byte [rbp], 0
mov rdi, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xa8]
jne 0x140017586
mov rdx, r12
mov rcx, r13
call fcn.140001d20
cmp byte [rbp], 0
mov rax, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xa8]
jne 0x14001747d
lea rdx, [rdi + rax + 0x38]
mov rcx, r13
mov qword [rsp + 0x68], r10
lea r14, [rsp + 0xc0]
mov qword [rsp + 0x60], rax
call fcn.140004f83
movups xmm0, xmmword [rsp + 0xa0]
mov rdx, r13
mov rcx, r14
movups xmm1, xmmword [0x140027070]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140015d78
movsx edx, byte [r12 + rsi + 8]
mov rcx, r14
call fcn.140015d40
movups xmm2, xmmword [0x140027050]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm2
call fcn.140015d78
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0xa8], r15
call fcn.140015d78
movups xmm3, xmmword [0x140027020]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm3
call fcn.140015d78
mov r10, qword [rsp + 0x68]
mov rdx, r13
mov rcx, r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0x60], r10
mov qword [rsp + 0xa0], rax
call fcn.140015d78
movups xmm4, xmmword [0x140027000]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0xa0], xmm4
call fcn.140015d78
movups xmm5, xmmword [rsp + 0xc0]
mov rcx, rbx
mov qword [rbx + 8], 0
lea r9, str.base64.nim
lea r8, str.decode
movups xmmword [rbx + 0x18], xmm5
lea rdx, str.ValueError
mov qword [rsp + 0x20], 0xe6
call fcn.14000440f
mov r10, qword [rsp + 0x60]
test r10, r10
je 0x140017491
test byte [r10 + 7], 0x40
jne 0x140017491
mov rcx, r10
call fcn.140003dca
test r15, r15
je 0x1400174a5
test byte [r15 + 7], 0x40
jne 0x1400174a5
mov rcx, r15
call fcn.140003dca
cmp byte [rbp], 0
je 0x1400172a7
jmp 0x1400175dc
cmp rdx, qword [rsp + 0x40]
jle 0x140016874
lea r13, [rsp + 0xb0]
mov rcx, r13
call fcn.140015d63
mov al, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x40]
sar rdx, 4
shl eax, 2
or eax, edx
mov r12, rsi
mov rdx, qword [rsp + 0xb8]
add r12, 1
mov byte [rdx + rsi + 8], al
jo 0x140015eb9
mov rdx, qword [rsp + 0xb0]
test r12, r12
js 0x140017511
cmp rdx, r12
jg 0x14001751c
dec rdx
mov rcx, r12
jmp 0x14001687c
mov rcx, r13
call fcn.140015d63
mov al, byte [rsp + 0x50]
mov rbx, qword [rsp + 0x38]
shl eax, 4
sar rbx, 2
or ebx, eax
mov rax, qword [rsp + 0xb8]
mov byte [rax + r12 + 8], bl
add r12, 1
jo 0x140015eb9
mov qword [rsp + 0x40], r12
cmp qword [rsp + 0x40], 0
jns 0x140017572
mov rcx, qword [rsp + 0x40]
xor edx, edx
movabs r8, 0x7fffffffffffffff
call fcn.14000456a
jmp 0x1400175dc
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0xb0]
call fcn.140005050
jmp 0x1400175dc
test r15, r15
jne 0x140017496
jmp 0x1400175dc
test rbx, rbx
jne 0x140017262
jmp 0x1400175dc
test r15, r15
jne 0x140017019
jmp 0x1400175dc
test r15, r15
jne 0x140016da0
jmp 0x1400175dc
test r15, r15
jne 0x140016b7b
jmp 0x1400175dc
test rbx, rbx
jne 0x140016850
jmp 0x1400175dc
test r15, r15
jne 0x1400165fd
jmp 0x1400175dc
test r15, r15
jne 0x1400163c1
mov rax, qword [rsp + 0x120]
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rax], xmm0
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret