Function at 0x14003d960
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, [0x14006ff00]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x14003e14c
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14003dee0
xor ecx, ecx
mov rdx, rbx
call fcn.14000c870
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 0x14003e12e
cmp qword [rsp + 0x20], 0
je 0x14003e080
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x14003db00
jmp 0x14003dba0
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003e11a
mov rdx, qword [rdi]
test r15, r15
js 0x14003da62
cmp r15, rdx
jl 0x14003da6e
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003e106
mov rdx, qword [rdi]
test r15, r15
js 0x14003da97
cmp r15, rdx
jl 0x14003daa3
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003e0fc
mov rdx, qword [rdi]
test r15, r15
js 0x14003dacc
cmp r15, rdx
jl 0x14003dad8
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x14003dd88
cmp qword [rsp + 0x20], rbx
je 0x14003dcf1
test rsi, rsi
js 0x14003dd70
cmp r13, rsi
jle 0x14003dd70
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003e110
test rbx, rbx
js 0x14003dd58
cmp rbx, r13
jge 0x14003dd58
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003e124
test rbx, rbx
js 0x14003dd40
cmp rbx, r13
jge 0x14003dd40
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003dd30
mov rdx, qword [rdi]
test r15, r15
js 0x14003da30
cmp rdx, r15
jg 0x14003da3c
jmp 0x14003da30
call fcn.140009130
cmp qword [rsp + 0x20], rbx
je 0x14003dcf1
cmp r13, rsi
jle 0x14003ddd8
test rsi, rsi
js 0x14003ddd8
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003e160
cmp r13, rbx
jle 0x14003ddc0
test rbx, rbx
js 0x14003ddc0
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003e156
cmp r13, rbx
jle 0x14003dda8
test rbx, rbx
js 0x14003dda8
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003dd98
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003e138
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003dc4c
cmp rdx, r15
jg 0x14003dc58
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003e16a
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003dc85
cmp rdx, r15
jg 0x14003dc91
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003e142
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003dcbe
cmp rdx, r15
jg 0x14003dcca
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x14003db90
cmp qword [rsp + 0x20], rbx
jne 0x14003dba0
cmp qword [rsp + 0x30], 1
je 0x14003ddf0
cmp qword [rsp + 0x30], 2
je 0x14003df20
test r15, r15
js 0x14003df00
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.14000c870
call fcn.140009130
jmp 0x14003db73
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000daa0
jmp 0x14003db5f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000daa0
jmp 0x14003db39
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000daa0
jmp 0x14003db12
call fcn.140009130
jmp 0x14003daf5
call fcn.140009130
jmp 0x14003dc13
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000daa0
jmp 0x14003dbff
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000daa0
jmp 0x14003dbd9
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000daa0
jmp 0x14003dbb2
test rsi, rsi
js 0x14003e050
cmp r13, rsi
jle 0x14003e050
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 0x14003e192
test bl, bl
jne 0x14003e068
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003de3f
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003e188
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003de70
cmp rbx, rdx
jl 0x14003de7c
sub rdx, 1
mov rcx, rbx
call fcn.14000daa0
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003e17e
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003dea2
cmp rbx, rdx
jl 0x14003deae
sub rdx, 1
mov rcx, rbx
call fcn.14000daa0
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003e174
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003dece
cmp rbx, rdx
jl 0x14003e038
sub rdx, 1
mov rcx, rbx
call fcn.14000daa0
jmp 0x14003e038
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d900
jmp 0x14003d9b6
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000d900
jmp 0x14003dd12
test rsi, rsi
js 0x14003e0db
cmp r13, rsi
jle 0x14003e0db
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 0x14003e1d7
test rsi, rsi
js 0x14003e0c1
cmp rsi, r13
jge 0x14003e0c1
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x14003e1c4
test al, al
jne 0x14003e0b0
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003df95
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000daa0
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003e1ba
mov rax, qword [rdi]
test rbx, rbx
js 0x14003dfc6
cmp rbx, rax
jl 0x14003dfd2
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000daa0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003e1b0
mov rax, qword [rdi]
test rbx, rbx
js 0x14003dffa
cmp rbx, rax
jl 0x14003e006
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000daa0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003e1a6
mov rax, qword [rdi]
test rbx, rbx
js 0x14003e02c
cmp rbx, rax
jl 0x14003e038
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000daa0
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003e19c
mov r15, rbx
jmp 0x14003dd09
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000daa0
jmp 0x14003de02
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003de3b
jmp 0x14003de47
cmp qword [rsp + 0x30], 1
je 0x14003e0ec
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x14003dd12
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x14003df44
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003df91
jmp 0x14003df9d
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000daa0
movzx eax, byte [rsp + 0x20]
jmp 0x14003df66
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000daa0
jmp 0x14003df32
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x14003de13
call fcn.140009130
jmp 0x14003dabf
call fcn.140009130
jmp 0x14003da8a
call fcn.140009130
jmp 0x14003db27
call fcn.140009130
jmp 0x14003da55
call fcn.140009130
jmp 0x14003db4d
call fcn.140009130
jmp 0x14003d9fa
call fcn.140009130
jmp 0x14003dc3a
call fcn.140009130
jmp 0x14003dcac
call fcn.140009130
jmp 0x14003d995
call fcn.140009130
jmp 0x14003dbed
call fcn.140009130
jmp 0x14003dbc7
call fcn.140009130
jmp 0x14003dc73
call fcn.140009130
jmp 0x14003debd
call fcn.140009130
jmp 0x14003de95
call fcn.140009130
jmp 0x14003de63
call fcn.140009130
jmp 0x14003de24
call fcn.140009130
jmp 0x14003e047
call fcn.140009130
jmp 0x14003e01f
call fcn.140009130
jmp 0x14003dfed
call fcn.140009130
jmp 0x14003dfb9
mov byte [rsp + 0x20], al
call fcn.140009130
movzx eax, byte [rsp + 0x20]
jmp 0x14003df7a
mov byte [rsp + 0x20], al
call fcn.140009130
movzx eax, byte [rsp + 0x20]
jmp 0x14003df54