Function at 0x14003d660
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, [0x140075f00]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x14003de4c
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14003dbe0
xor ecx, ecx
mov rdx, rbx
call fcn.14000c4f0
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 0x14003de2e
cmp qword [rsp + 0x20], 0
je 0x14003dd80
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x14003d800
jmp 0x14003d8a0
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003de1a
mov rdx, qword [rdi]
test r15, r15
js 0x14003d762
cmp r15, rdx
jl 0x14003d76e
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003de06
mov rdx, qword [rdi]
test r15, r15
js 0x14003d797
cmp r15, rdx
jl 0x14003d7a3
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003ddfc
mov rdx, qword [rdi]
test r15, r15
js 0x14003d7cc
cmp r15, rdx
jl 0x14003d7d8
sub rdx, 1
mov rcx, r15
call fcn.14000d730
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x14003da88
cmp qword [rsp + 0x20], rbx
je 0x14003d9f1
test rsi, rsi
js 0x14003da70
cmp r13, rsi
jle 0x14003da70
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003de10
test rbx, rbx
js 0x14003da58
cmp rbx, r13
jge 0x14003da58
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003de24
test rbx, rbx
js 0x14003da40
cmp rbx, r13
jge 0x14003da40
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003da30
mov rdx, qword [rdi]
test r15, r15
js 0x14003d730
cmp rdx, r15
jg 0x14003d73c
jmp 0x14003d730
call fcn.140008e90
cmp qword [rsp + 0x20], rbx
je 0x14003d9f1
cmp r13, rsi
jle 0x14003dad8
test rsi, rsi
js 0x14003dad8
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003de60
cmp r13, rbx
jle 0x14003dac0
test rbx, rbx
js 0x14003dac0
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003de56
cmp r13, rbx
jle 0x14003daa8
test rbx, rbx
js 0x14003daa8
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003da98
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000d730
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003de38
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003d94c
cmp rdx, r15
jg 0x14003d958
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003de6a
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003d985
cmp rdx, r15
jg 0x14003d991
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003de42
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003d9be
cmp rdx, r15
jg 0x14003d9ca
sub rdx, 1
mov rcx, r15
call fcn.14000d730
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x14003d890
cmp qword [rsp + 0x20], rbx
jne 0x14003d8a0
cmp qword [rsp + 0x30], 1
je 0x14003daf0
cmp qword [rsp + 0x30], 2
je 0x14003dc20
test r15, r15
js 0x14003dc00
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.14000c4f0
call fcn.140008e90
jmp 0x14003d873
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d730
jmp 0x14003d85f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d730
jmp 0x14003d839
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000d730
jmp 0x14003d812
call fcn.140008e90
jmp 0x14003d7f5
call fcn.140008e90
jmp 0x14003d913
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d730
jmp 0x14003d8ff
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d730
jmp 0x14003d8d9
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000d730
jmp 0x14003d8b2
test rsi, rsi
js 0x14003dd50
cmp r13, rsi
jle 0x14003dd50
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 0x14003de92
test bl, bl
jne 0x14003dd68
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003db3f
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003de88
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003db70
cmp rbx, rdx
jl 0x14003db7c
sub rdx, 1
mov rcx, rbx
call fcn.14000d730
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003de7e
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003dba2
cmp rbx, rdx
jl 0x14003dbae
sub rdx, 1
mov rcx, rbx
call fcn.14000d730
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003de74
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003dbce
cmp rbx, rdx
jl 0x14003dd38
sub rdx, 1
mov rcx, rbx
call fcn.14000d730
jmp 0x14003dd38
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14003d6b6
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000d590
jmp 0x14003da12
test rsi, rsi
js 0x14003dddb
cmp r13, rsi
jle 0x14003dddb
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 0x14003ded7
test rsi, rsi
js 0x14003ddc1
cmp rsi, r13
jge 0x14003ddc1
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x14003dec4
test al, al
jne 0x14003ddb0
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003dc95
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000d730
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003deba
mov rax, qword [rdi]
test rbx, rbx
js 0x14003dcc6
cmp rbx, rax
jl 0x14003dcd2
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d730
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003deb0
mov rax, qword [rdi]
test rbx, rbx
js 0x14003dcfa
cmp rbx, rax
jl 0x14003dd06
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d730
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003dea6
mov rax, qword [rdi]
test rbx, rbx
js 0x14003dd2c
cmp rbx, rax
jl 0x14003dd38
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d730
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003de9c
mov r15, rbx
jmp 0x14003da09
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000d730
jmp 0x14003db02
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003db3b
jmp 0x14003db47
cmp qword [rsp + 0x30], 1
je 0x14003ddec
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x14003da12
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x14003dc44
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003dc91
jmp 0x14003dc9d
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000d730
movzx eax, byte [rsp + 0x20]
jmp 0x14003dc66
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000d730
jmp 0x14003dc32
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x14003db13
call fcn.140008e90
jmp 0x14003d7bf
call fcn.140008e90
jmp 0x14003d78a
call fcn.140008e90
jmp 0x14003d827
call fcn.140008e90
jmp 0x14003d755
call fcn.140008e90
jmp 0x14003d84d
call fcn.140008e90
jmp 0x14003d6fa
call fcn.140008e90
jmp 0x14003d93a
call fcn.140008e90
jmp 0x14003d9ac
call fcn.140008e90
jmp 0x14003d695
call fcn.140008e90
jmp 0x14003d8ed
call fcn.140008e90
jmp 0x14003d8c7
call fcn.140008e90
jmp 0x14003d973
call fcn.140008e90
jmp 0x14003dbbd
call fcn.140008e90
jmp 0x14003db95
call fcn.140008e90
jmp 0x14003db63
call fcn.140008e90
jmp 0x14003db24
call fcn.140008e90
jmp 0x14003dd47
call fcn.140008e90
jmp 0x14003dd1f
call fcn.140008e90
jmp 0x14003dced
call fcn.140008e90
jmp 0x14003dcb9
mov byte [rsp + 0x20], al
call fcn.140008e90
movzx eax, byte [rsp + 0x20]
jmp 0x14003dc7a
mov byte [rsp + 0x20], al
call fcn.140008e90
movzx eax, byte [rsp + 0x20]
jmp 0x14003dc54