Function at 0x140037ac0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea r12, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rax, [0x14005d400]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x1400382ac
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x140038040
xor ecx, ecx
mov rdx, rbx
call fcn.14000beb0
mov rcx, r13
mov rdi, rax
movabs rax, 0x5555555555555556
imul r13
mov rax, r13
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rax, r13
sub rax, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x20], rax
jo 0x14003828e
cmp qword [rsp + 0x20], 0
je 0x1400381e0
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x140037c60
jmp 0x140037d00
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003827a
mov rdx, qword [rdi]
test r15, r15
js 0x140037bc2
cmp r15, rdx
jl 0x140037bce
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x140038266
mov rdx, qword [rdi]
test r15, r15
js 0x140037bf7
cmp r15, rdx
jl 0x140037c03
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003825c
mov rdx, qword [rdi]
test r15, r15
js 0x140037c2c
cmp r15, rdx
jl 0x140037c38
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x140037ee8
cmp qword [rsp + 0x20], rbx
je 0x140037e51
test rsi, rsi
js 0x140037ed0
cmp r13, rsi
jle 0x140037ed0
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x140038270
test rbx, rbx
js 0x140037eb8
cmp rbx, r13
jge 0x140037eb8
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x140038284
test rbx, rbx
js 0x140037ea0
cmp rbx, r13
jge 0x140037ea0
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x140037e90
mov rdx, qword [rdi]
test r15, r15
js 0x140037b90
cmp rdx, r15
jg 0x140037b9c
jmp 0x140037b90
call fcn.140008a30
cmp qword [rsp + 0x20], rbx
je 0x140037e51
cmp r13, rsi
jle 0x140037f38
test rsi, rsi
js 0x140037f38
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x1400382c0
cmp r13, rbx
jle 0x140037f20
test rbx, rbx
js 0x140037f20
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x1400382b6
cmp r13, rbx
jle 0x140037f08
test rbx, rbx
js 0x140037f08
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x140037ef8
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x140038298
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x140037dac
cmp rdx, r15
jg 0x140037db8
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x1400382ca
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x140037de5
cmp rdx, r15
jg 0x140037df1
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x1400382a2
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x140037e1e
cmp rdx, r15
jg 0x140037e2a
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x140037cf0
cmp qword [rsp + 0x20], rbx
jne 0x140037d00
cmp qword [rsp + 0x30], 1
je 0x140037f50
cmp qword [rsp + 0x30], 2
je 0x140038080
test r15, r15
js 0x140038060
mov rdx, r15
mov rcx, rdi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000beb0
call fcn.140008a30
jmp 0x140037cd3
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e0e0
jmp 0x140037cbf
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e0e0
jmp 0x140037c99
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000e0e0
jmp 0x140037c72
call fcn.140008a30
jmp 0x140037c55
call fcn.140008a30
jmp 0x140037d73
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e0e0
jmp 0x140037d5f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e0e0
jmp 0x140037d39
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000e0e0
jmp 0x140037d12
test rsi, rsi
js 0x1400381b0
cmp r13, rsi
jle 0x1400381b0
mov rbx, r15
add r14, rsi
not rbx
shr rbx, 0x3f
and bl, byte [rsp + 0x3f]
movzx ebp, byte [r14]
shl ebp, 0x10
add rsi, 1
jo 0x1400382f2
test bl, bl
jne 0x1400381c8
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x140037f9f
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x1400382e8
mov rdx, qword [rdi]
test rbx, rbx
js 0x140037fd0
cmp rbx, rdx
jl 0x140037fdc
sub rdx, 1
mov rcx, rbx
call fcn.14000e0e0
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x1400382de
mov rdx, qword [rdi]
test rbx, rbx
js 0x140038002
cmp rbx, rdx
jl 0x14003800e
sub rdx, 1
mov rcx, rbx
call fcn.14000e0e0
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x1400382d4
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003802e
cmp rbx, rdx
jl 0x140038198
sub rdx, 1
mov rcx, rbx
call fcn.14000e0e0
jmp 0x140038198
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000df40
jmp 0x140037b16
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000df40
jmp 0x140037e72
test rsi, rsi
js 0x14003823b
cmp r13, rsi
jle 0x14003823b
mov rax, r15
lea rdx, [r14 + rsi]
not rax
shr rax, 0x3f
and al, byte [rsp + 0x3f]
movzx ebx, byte [rdx]
shl ebx, 0x10
add rsi, 1
jo 0x140038337
test rsi, rsi
js 0x140038221
cmp rsi, r13
jge 0x140038221
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x140038324
test al, al
jne 0x140038210
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x1400380f5
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000e0e0
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003831a
mov rax, qword [rdi]
test rbx, rbx
js 0x140038126
cmp rbx, rax
jl 0x140038132
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e0e0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x140038310
mov rax, qword [rdi]
test rbx, rbx
js 0x14003815a
cmp rbx, rax
jl 0x140038166
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e0e0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x140038306
mov rax, qword [rdi]
test rbx, rbx
js 0x14003818c
cmp rbx, rax
jl 0x140038198
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e0e0
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x1400382fc
mov r15, rbx
jmp 0x140037e69
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000e0e0
jmp 0x140037f62
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x140037f9b
jmp 0x140037fa7
cmp qword [rsp + 0x30], 1
je 0x14003824c
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x140037e72
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x1400380a4
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x1400380f1
jmp 0x1400380fd
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000e0e0
movzx eax, byte [rsp + 0x20]
jmp 0x1400380c6
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000e0e0
jmp 0x140038092
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x140037f73
call fcn.140008a30
jmp 0x140037c1f
call fcn.140008a30
jmp 0x140037bea
call fcn.140008a30
jmp 0x140037c87
call fcn.140008a30
jmp 0x140037bb5
call fcn.140008a30
jmp 0x140037cad
call fcn.140008a30
jmp 0x140037b5a
call fcn.140008a30
jmp 0x140037d9a
call fcn.140008a30
jmp 0x140037e0c
call fcn.140008a30
jmp 0x140037af5
call fcn.140008a30
jmp 0x140037d4d
call fcn.140008a30
jmp 0x140037d27
call fcn.140008a30
jmp 0x140037dd3
call fcn.140008a30
jmp 0x14003801d
call fcn.140008a30
jmp 0x140037ff5
call fcn.140008a30
jmp 0x140037fc3
call fcn.140008a30
jmp 0x140037f84
call fcn.140008a30
jmp 0x1400381a7
call fcn.140008a30
jmp 0x14003817f
call fcn.140008a30
jmp 0x14003814d
call fcn.140008a30
jmp 0x140038119
mov byte [rsp + 0x20], al
call fcn.140008a30
movzx eax, byte [rsp + 0x20]
jmp 0x1400380da
mov byte [rsp + 0x20], al
call fcn.140008a30
movzx eax, byte [rsp + 0x20]
jmp 0x1400380b4