Function at 0x140037dc0
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, [0x140061380]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x1400385ac
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x140038340
xor ecx, ecx
mov rdx, rbx
call fcn.14000b410
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 0x14003858e
cmp qword [rsp + 0x20], 0
je 0x1400384e0
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x140037f60
jmp 0x140038000
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003857a
mov rdx, qword [rdi]
test r15, r15
js 0x140037ec2
cmp r15, rdx
jl 0x140037ece
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x140038566
mov rdx, qword [rdi]
test r15, r15
js 0x140037ef7
cmp r15, rdx
jl 0x140037f03
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003855c
mov rdx, qword [rdi]
test r15, r15
js 0x140037f2c
cmp r15, rdx
jl 0x140037f38
sub rdx, 1
mov rcx, r15
call fcn.14000d680
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x1400381e8
cmp qword [rsp + 0x20], rbx
je 0x140038151
test rsi, rsi
js 0x1400381d0
cmp r13, rsi
jle 0x1400381d0
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x140038570
test rbx, rbx
js 0x1400381b8
cmp rbx, r13
jge 0x1400381b8
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x140038584
test rbx, rbx
js 0x1400381a0
cmp rbx, r13
jge 0x1400381a0
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x140038190
mov rdx, qword [rdi]
test r15, r15
js 0x140037e90
cmp rdx, r15
jg 0x140037e9c
jmp 0x140037e90
call fcn.140007f90
cmp qword [rsp + 0x20], rbx
je 0x140038151
cmp r13, rsi
jle 0x140038238
test rsi, rsi
js 0x140038238
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x1400385c0
cmp r13, rbx
jle 0x140038220
test rbx, rbx
js 0x140038220
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x1400385b6
cmp r13, rbx
jle 0x140038208
test rbx, rbx
js 0x140038208
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x1400381f8
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000d680
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x140038598
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x1400380ac
cmp rdx, r15
jg 0x1400380b8
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x1400385ca
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x1400380e5
cmp rdx, r15
jg 0x1400380f1
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x1400385a2
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003811e
cmp rdx, r15
jg 0x14003812a
sub rdx, 1
mov rcx, r15
call fcn.14000d680
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x140037ff0
cmp qword [rsp + 0x20], rbx
jne 0x140038000
cmp qword [rsp + 0x30], 1
je 0x140038250
cmp qword [rsp + 0x30], 2
je 0x140038380
test r15, r15
js 0x140038360
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.14000b410
call fcn.140007f90
jmp 0x140037fd3
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d680
jmp 0x140037fbf
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d680
jmp 0x140037f99
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000d680
jmp 0x140037f72
call fcn.140007f90
jmp 0x140037f55
call fcn.140007f90
jmp 0x140038073
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d680
jmp 0x14003805f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d680
jmp 0x140038039
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000d680
jmp 0x140038012
test rsi, rsi
js 0x1400384b0
cmp r13, rsi
jle 0x1400384b0
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 0x1400385f2
test bl, bl
jne 0x1400384c8
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003829f
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x1400385e8
mov rdx, qword [rdi]
test rbx, rbx
js 0x1400382d0
cmp rbx, rdx
jl 0x1400382dc
sub rdx, 1
mov rcx, rbx
call fcn.14000d680
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x1400385de
mov rdx, qword [rdi]
test rbx, rbx
js 0x140038302
cmp rbx, rdx
jl 0x14003830e
sub rdx, 1
mov rcx, rbx
call fcn.14000d680
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x1400385d4
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003832e
cmp rbx, rdx
jl 0x140038498
sub rdx, 1
mov rcx, rbx
call fcn.14000d680
jmp 0x140038498
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d4e0
jmp 0x140037e16
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000d4e0
jmp 0x140038172
test rsi, rsi
js 0x14003853b
cmp r13, rsi
jle 0x14003853b
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 0x140038637
test rsi, rsi
js 0x140038521
cmp rsi, r13
jge 0x140038521
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x140038624
test al, al
jne 0x140038510
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x1400383f5
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000d680
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003861a
mov rax, qword [rdi]
test rbx, rbx
js 0x140038426
cmp rbx, rax
jl 0x140038432
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d680
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x140038610
mov rax, qword [rdi]
test rbx, rbx
js 0x14003845a
cmp rbx, rax
jl 0x140038466
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d680
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x140038606
mov rax, qword [rdi]
test rbx, rbx
js 0x14003848c
cmp rbx, rax
jl 0x140038498
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d680
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x1400385fc
mov r15, rbx
jmp 0x140038169
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000d680
jmp 0x140038262
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003829b
jmp 0x1400382a7
cmp qword [rsp + 0x30], 1
je 0x14003854c
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x140038172
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x1400383a4
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x1400383f1
jmp 0x1400383fd
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000d680
movzx eax, byte [rsp + 0x20]
jmp 0x1400383c6
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000d680
jmp 0x140038392
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x140038273
call fcn.140007f90
jmp 0x140037f1f
call fcn.140007f90
jmp 0x140037eea
call fcn.140007f90
jmp 0x140037f87
call fcn.140007f90
jmp 0x140037eb5
call fcn.140007f90
jmp 0x140037fad
call fcn.140007f90
jmp 0x140037e5a
call fcn.140007f90
jmp 0x14003809a
call fcn.140007f90
jmp 0x14003810c
call fcn.140007f90
jmp 0x140037df5
call fcn.140007f90
jmp 0x14003804d
call fcn.140007f90
jmp 0x140038027
call fcn.140007f90
jmp 0x1400380d3
call fcn.140007f90
jmp 0x14003831d
call fcn.140007f90
jmp 0x1400382f5
call fcn.140007f90
jmp 0x1400382c3
call fcn.140007f90
jmp 0x140038284
call fcn.140007f90
jmp 0x1400384a7
call fcn.140007f90
jmp 0x14003847f
call fcn.140007f90
jmp 0x14003844d
call fcn.140007f90
jmp 0x140038419
mov byte [rsp + 0x20], al
call fcn.140007f90
movzx eax, byte [rsp + 0x20]
jmp 0x1400383da
mov byte [rsp + 0x20], al
call fcn.140007f90
movzx eax, byte [rsp + 0x20]
jmp 0x1400383b4