Function at 0x140037780
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, [0x140061380]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x1400377b1
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x140037d6a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x140037ad0
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000b410
mov rdi, rax
test r12, r12
je 0x140037a0e
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 0x140037a30
test r15, r15
je 0x140037a42
xor esi, esi
xor ebx, ebx
jmp 0x1400379a5
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000d680
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x140037d38
mov rdx, qword [r12]
test rbx, rbx
js 0x14003786d
cmp rbx, rdx
jl 0x140037879
sub rdx, 1
mov rcx, rbx
call fcn.14000d680
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x140037d42
mov rdx, qword [r12]
test rbx, rbx
js 0x14003789e
cmp rbx, rdx
jl 0x1400378aa
sub rdx, 1
mov rcx, rbx
call fcn.14000d680
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x140037ab0
test rsi, rsi
js 0x140037a88
test rdi, rdi
je 0x140037ac0
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x1400378e6
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d56
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003790c
cmp rsi, rdx
jl 0x140037918
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d60
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037941
cmp rsi, rdx
jl 0x14003794d
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d4c
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037976
cmp rsi, rdx
jl 0x140037982
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x140037aa0
mov rcx, qword [r12]
cmp r14, r15
je 0x1400379c0
test rbx, rbx
js 0x140037840
cmp rcx, rbx
jg 0x14003784c
jmp 0x140037840
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 0x140037af0
cmp rdx, 2
je 0x140037be0
test rsi, rsi
jns 0x140037a0e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000d4e0
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.14000b410
call fcn.140007f90
mov rcx, qword [r12]
test r15, r15
jne 0x140037836
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 0x140037d18
xor esi, esi
cmp rdx, 2
jne 0x140037a0e
mov qword [rsp + 0x28], 0
jmp 0x140037bf6
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x1400378de
mov rdx, qword [rdi]
jmp 0x1400378da
call fcn.140007f90
jmp 0x14003799c
call fcn.140007f90
jmp 0x1400378c0
mov rdx, 0xffffffffffffffff
jmp 0x1400378de
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d4e0
jmp 0x1400377df
test r15, r15
js 0x140037afa
cmp rcx, r15
jg 0x140037b06
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000d680
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x140037d88
test rbp, rbp
js 0x140037d10
mov rax, qword [rdi]
cmp rax, rsi
jg 0x140037b36
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000d680
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d7e
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037b5c
cmp rsi, rdx
jl 0x140037b68
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d74
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037b8f
cmp rsi, rdx
jl 0x140037b9b
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x140037ce9
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037bb7
cmp rsi, rdx
jl 0x140037bc3
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x1400379f5
call fcn.140007f90
jmp 0x1400379f5
test r15, r15
js 0x140037bea
cmp rcx, r15
jg 0x140037bf6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000d680
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x140037db0
mov rdx, qword [r12]
test rbx, rbx
js 0x140037c20
cmp rbx, rdx
jl 0x140037c2c
sub rdx, 1
mov rcx, rbx
call fcn.14000d680
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x140037da6
test rsi, rsi
js 0x140037cf8
test rdi, rdi
je 0x140037cf8
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x140037c68
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d9c
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037c8e
cmp rsi, rdx
jl 0x140037c9a
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140037d92
mov rdx, qword [rdi]
test rsi, rsi
js 0x140037cc3
cmp rsi, rdx
jl 0x140037ccf
sub rdx, 1
mov rcx, rsi
call fcn.14000d680
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x140037baa
call fcn.140007f90
jmp 0x140037baa
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x140037c60
mov rdx, qword [rdi]
jmp 0x140037c5c
mov rax, qword [rdi]
jmp 0x140037b2a
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x140037b2e
jmp 0x140037b22
call fcn.140007f90
jmp 0x14003785f
call fcn.140007f90
jmp 0x140037890
call fcn.140007f90
jmp 0x140037969
call fcn.140007f90
jmp 0x1400378ff
call fcn.140007f90
jmp 0x140037934
call fcn.140007f90
jmp 0x1400377bb
call fcn.140007f90
jmp 0x140037b82
call fcn.140007f90
jmp 0x140037b4f
call fcn.140007f90
jmp 0x140037b19
call fcn.140007f90
jmp 0x140037cb6
call fcn.140007f90
jmp 0x140037c81
call fcn.140007f90
jmp 0x140037c42
call fcn.140007f90
jmp 0x140037c12