Function at 0x140037480
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rax, [0x14005d400]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x1400374b1
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x140037a6a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x1400377d0
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000beb0
mov rdi, rax
test r12, r12
je 0x14003770e
movabs rax, 0x5555555555555556
mov rcx, qword [r12]
imul rcx
mov rax, rcx
mov r15, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rcx
lea rdx, [rdx + rdx*2]
sub rax, rdx
sub r15, rax
mov qword [rsp + 0x28], r15
jo 0x140037730
test r15, r15
je 0x140037742
xor esi, esi
xor ebx, ebx
jmp 0x1400376a5
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000e0e0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x140037a38
mov rdx, qword [r12]
test rbx, rbx
js 0x14003756d
cmp rbx, rdx
jl 0x140037579
sub rdx, 1
mov rcx, rbx
call fcn.14000e0e0
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x140037a42
mov rdx, qword [r12]
test rbx, rbx
js 0x14003759e
cmp rbx, rdx
jl 0x1400375aa
sub rdx, 1
mov rcx, rbx
call fcn.14000e0e0
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x1400377b0
test rsi, rsi
js 0x140037788
test rdi, rdi
je 0x1400377c0
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x1400375e6
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a56
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003760c
cmp rsi, rdx
jl 0x140037618
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a60
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037641
cmp rsi, rdx
jl 0x14003764d
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a4c
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037676
cmp rsi, rdx
jl 0x140037682
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x1400377a0
mov rcx, qword [r12]
cmp r14, r15
je 0x1400376c0
test rbx, rbx
js 0x140037540
cmp rcx, rbx
jg 0x14003754c
jmp 0x140037540
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, rcx
sub rdx, rax
cmp rdx, 1
je 0x1400377f0
cmp rdx, 2
je 0x1400378e0
test rsi, rsi
jns 0x14003770e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000df40
mov rdx, rsi
mov rcx, rdi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000beb0
call fcn.140008a30
mov rcx, qword [r12]
test r15, r15
jne 0x140037536
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rdx, rcx
cmp rcx, 1
je 0x140037a18
xor esi, esi
cmp rdx, 2
jne 0x14003770e
mov qword [rsp + 0x28], 0
jmp 0x1400378f6
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x1400375de
mov rdx, qword [rdi]
jmp 0x1400375da
call fcn.140008a30
jmp 0x14003769c
call fcn.140008a30
jmp 0x1400375c0
mov rdx, 0xffffffffffffffff
jmp 0x1400375de
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000df40
jmp 0x1400374df
test r15, r15
js 0x1400377fa
cmp rcx, r15
jg 0x140037806
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000e0e0
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x140037a88
test rbp, rbp
js 0x140037a10
mov rax, qword [rdi]
cmp rax, rsi
jg 0x140037836
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000e0e0
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a7e
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003785c
cmp rsi, rdx
jl 0x140037868
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a74
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003788f
cmp rsi, rdx
jl 0x14003789b
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x1400379e9
mov rdx, qword [rdi]
test rsi, rsi
js 0x1400378b7
cmp rsi, rdx
jl 0x1400378c3
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x1400376f5
call fcn.140008a30
jmp 0x1400376f5
test r15, r15
js 0x1400378ea
cmp rcx, r15
jg 0x1400378f6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000e0e0
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x140037ab0
mov rdx, qword [r12]
test rbx, rbx
js 0x140037920
cmp rbx, rdx
jl 0x14003792c
sub rdx, 1
mov rcx, rbx
call fcn.14000e0e0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x140037aa6
test rsi, rsi
js 0x1400379f8
test rdi, rdi
je 0x1400379f8
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x140037968
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a9c
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003798e
cmp rsi, rdx
jl 0x14003799a
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037a92
mov rdx, qword [rdi]
test rsi, rsi
js 0x1400379c3
cmp rsi, rdx
jl 0x1400379cf
sub rdx, 1
mov rcx, rsi
call fcn.14000e0e0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x1400378aa
call fcn.140008a30
jmp 0x1400378aa
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x140037960
mov rdx, qword [rdi]
jmp 0x14003795c
mov rax, qword [rdi]
jmp 0x14003782a
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x14003782e
jmp 0x140037822
call fcn.140008a30
jmp 0x14003755f
call fcn.140008a30
jmp 0x140037590
call fcn.140008a30
jmp 0x140037669
call fcn.140008a30
jmp 0x1400375ff
call fcn.140008a30
jmp 0x140037634
call fcn.140008a30
jmp 0x1400374bb
call fcn.140008a30
jmp 0x140037882
call fcn.140008a30
jmp 0x14003784f
call fcn.140008a30
jmp 0x140037819
call fcn.140008a30
jmp 0x1400379b6
call fcn.140008a30
jmp 0x140037981
call fcn.140008a30
jmp 0x140037942
call fcn.140008a30
jmp 0x140037912