Function at 0x140039da0
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, [0x140068640]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x14003a58c
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14003a320
xor ecx, ecx
mov rdx, rbx
call fcn.14000c2a0
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 0x14003a56e
cmp qword [rsp + 0x20], 0
je 0x14003a4c0
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x140039f40
jmp 0x140039fe0
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003a55a
mov rdx, qword [rdi]
test r15, r15
js 0x140039ea2
cmp r15, rdx
jl 0x140039eae
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003a546
mov rdx, qword [rdi]
test r15, r15
js 0x140039ed7
cmp r15, rdx
jl 0x140039ee3
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003a53c
mov rdx, qword [rdi]
test r15, r15
js 0x140039f0c
cmp r15, rdx
jl 0x140039f18
sub rdx, 1
mov rcx, r15
call fcn.14000e210
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x14003a1c8
cmp qword [rsp + 0x20], rbx
je 0x14003a131
test rsi, rsi
js 0x14003a1b0
cmp r13, rsi
jle 0x14003a1b0
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003a550
test rbx, rbx
js 0x14003a198
cmp rbx, r13
jge 0x14003a198
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003a564
test rbx, rbx
js 0x14003a180
cmp rbx, r13
jge 0x14003a180
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003a170
mov rdx, qword [rdi]
test r15, r15
js 0x140039e70
cmp rdx, r15
jg 0x140039e7c
jmp 0x140039e70
call fcn.140008da0
cmp qword [rsp + 0x20], rbx
je 0x14003a131
cmp r13, rsi
jle 0x14003a218
test rsi, rsi
js 0x14003a218
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003a5a0
cmp r13, rbx
jle 0x14003a200
test rbx, rbx
js 0x14003a200
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003a596
cmp r13, rbx
jle 0x14003a1e8
test rbx, rbx
js 0x14003a1e8
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003a1d8
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003a578
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003a08c
cmp rdx, r15
jg 0x14003a098
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003a5aa
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003a0c5
cmp rdx, r15
jg 0x14003a0d1
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003a582
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003a0fe
cmp rdx, r15
jg 0x14003a10a
sub rdx, 1
mov rcx, r15
call fcn.14000e210
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x140039fd0
cmp qword [rsp + 0x20], rbx
jne 0x140039fe0
cmp qword [rsp + 0x30], 1
je 0x14003a230
cmp qword [rsp + 0x30], 2
je 0x14003a360
test r15, r15
js 0x14003a340
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.14000c2a0
call fcn.140008da0
jmp 0x140039fb3
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x140039f9f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x140039f79
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000e210
jmp 0x140039f52
call fcn.140008da0
jmp 0x140039f35
call fcn.140008da0
jmp 0x14003a053
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x14003a03f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x14003a019
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000e210
jmp 0x140039ff2
test rsi, rsi
js 0x14003a490
cmp r13, rsi
jle 0x14003a490
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 0x14003a5d2
test bl, bl
jne 0x14003a4a8
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003a27f
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003a5c8
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003a2b0
cmp rbx, rdx
jl 0x14003a2bc
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003a5be
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003a2e2
cmp rbx, rdx
jl 0x14003a2ee
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003a5b4
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003a30e
cmp rbx, rdx
jl 0x14003a478
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
jmp 0x14003a478
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000e070
jmp 0x140039df6
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000e070
jmp 0x14003a152
test rsi, rsi
js 0x14003a51b
cmp r13, rsi
jle 0x14003a51b
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 0x14003a617
test rsi, rsi
js 0x14003a501
cmp rsi, r13
jge 0x14003a501
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x14003a604
test al, al
jne 0x14003a4f0
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003a3d5
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003a5fa
mov rax, qword [rdi]
test rbx, rbx
js 0x14003a406
cmp rbx, rax
jl 0x14003a412
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e210
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003a5f0
mov rax, qword [rdi]
test rbx, rbx
js 0x14003a43a
cmp rbx, rax
jl 0x14003a446
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e210
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003a5e6
mov rax, qword [rdi]
test rbx, rbx
js 0x14003a46c
cmp rbx, rax
jl 0x14003a478
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e210
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003a5dc
mov r15, rbx
jmp 0x14003a149
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000e210
jmp 0x14003a242
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003a27b
jmp 0x14003a287
cmp qword [rsp + 0x30], 1
je 0x14003a52c
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x14003a152
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x14003a384
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003a3d1
jmp 0x14003a3dd
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000e210
movzx eax, byte [rsp + 0x20]
jmp 0x14003a3a6
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000e210
jmp 0x14003a372
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x14003a253
call fcn.140008da0
jmp 0x140039eff
call fcn.140008da0
jmp 0x140039eca
call fcn.140008da0
jmp 0x140039f67
call fcn.140008da0
jmp 0x140039e95
call fcn.140008da0
jmp 0x140039f8d
call fcn.140008da0
jmp 0x140039e3a
call fcn.140008da0
jmp 0x14003a07a
call fcn.140008da0
jmp 0x14003a0ec
call fcn.140008da0
jmp 0x140039dd5
call fcn.140008da0
jmp 0x14003a02d
call fcn.140008da0
jmp 0x14003a007
call fcn.140008da0
jmp 0x14003a0b3
call fcn.140008da0
jmp 0x14003a2fd
call fcn.140008da0
jmp 0x14003a2d5
call fcn.140008da0
jmp 0x14003a2a3
call fcn.140008da0
jmp 0x14003a264
call fcn.140008da0
jmp 0x14003a487
call fcn.140008da0
jmp 0x14003a45f
call fcn.140008da0
jmp 0x14003a42d
call fcn.140008da0
jmp 0x14003a3f9
mov byte [rsp + 0x20], al
call fcn.140008da0
movzx eax, byte [rsp + 0x20]
jmp 0x14003a3ba
mov byte [rsp + 0x20], al
call fcn.140008da0
movzx eax, byte [rsp + 0x20]
jmp 0x14003a394