Function at 0x43d5f0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x0047d780]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov rdi, rcx
cmovne rbp, rax
test rcx, rcx
je 0x43dae8
imul rbx, qword [rcx], 4
jo 0x43dc6b
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
lea r12, [rdx + 6]
test r12, r12
js 0x43dac8
xor ecx, ecx
mov rdx, r12
call fcn.0040d6a0
mov rcx, qword [rdi]
movabs rdx, 0x5555555555555556
mov r13, rax
mov rax, rcx
mov rbx, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rbx, rax
mov rax, rbx
mov rbx, rcx
sub rbx, rax
mov qword [rsp + 0x20], rbx
jo 0x43dc5e
cmp qword [rsp + 0x20], 0
je 0x43dc19
test r13, r13
setne byte [rsp + 0x2f]
xor r12d, r12d
xor ebx, ebx
jmp 0x43d813
cmp rcx, rbx
jle 0x43d81c
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r15d, esi
mov r14, rbx
jo 0x43dbab
mov rdx, qword [rdi]
test r14, r14
js 0x43d6e6
cmp r14, rdx
jl 0x43d6f2
sub rdx, 1
mov rcx, r14
call fcn.0040dd50
movzx esi, byte [rdi + r14 + 0x10]
shl esi, 8
or esi, r15d
add r14, 1
jo 0x43dbd3
mov rdx, qword [rdi]
test r14, r14
js 0x43d715
cmp r14, rdx
jl 0x43d721
sub rdx, 1
mov rcx, r14
call fcn.0040dd50
movzx eax, byte [rdi + r14 + 0x10]
or esi, eax
add r14, 1
mov rbx, r14
jo 0x43d858
test r12, r12
js 0x43d830
cmp byte [rsp + 0x2f], 0
je 0x43d830
mov rdx, qword [r13]
cmp r12, rdx
jge 0x43d840
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dbc9
mov rdx, qword [r13]
test r12, r12
js 0x43d77e
cmp r12, rdx
jl 0x43d78a
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dbbf
mov rdx, qword [r13]
test r12, r12
js 0x43d7b4
cmp r12, rdx
jl 0x43d7c0
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dbb5
mov rdx, qword [r13]
test r12, r12
js 0x43d7ea
cmp r12, rdx
jl 0x43d7f6
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
and esi, 0x3f
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43d868
cmp qword [rsp + 0x20], r14
je 0x43d874
mov rcx, qword [rdi]
test rbx, rbx
jns 0x43d6b8
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43d6c1
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x43d844
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
jmp 0x43d757
call fcn.0040a060
jmp 0x43d736
call fcn.0040a060
cmp qword [rsp + 0x20], r14
jne 0x43d810
movabs rdx, 0x5555555555555556
mov r8, qword [rdi]
mov rax, r8
imul rdx
mov rax, r8
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, r8
sub rdx, rax
cmp rdx, 1
je 0x43d9b8
cmp rdx, 2
jne 0x43daa2
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43db20
cmp rax, r8
jge 0x43db20
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r14, rbx
jo 0x43dba1
mov rcx, qword [rdi]
test rbx, rbx
js 0x43d8e8
cmp r14, rcx
jl 0x43d8f4
lea rdx, [rcx - 1]
mov rcx, r14
call fcn.0040dd50
movzx ebx, byte [rdi + r14 + 0x10]
shl ebx, 8
or ebx, esi
add r14, 1
jo 0x43dbf1
test r13, r13
je 0x43db80
test r12, r12
js 0x43db80
mov rdx, qword [r13]
cmp rdx, r12
jle 0x43db90
mov eax, ebx
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dbe7
mov rdx, qword [r13]
test r12, r12
js 0x43d94f
cmp r12, rdx
jl 0x43d95b
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dbdd
mov rdx, qword [r13]
test r12, r12
js 0x43d985
cmp r12, rdx
jl 0x43d991
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
shr ebx, 6
and ebx, 0x3c
movzx eax, byte [rbp + rbx]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jno 0x43da77
call fcn.0040a060
jmp 0x43da77
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43db40
cmp rax, r8
jge 0x43db40
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x43dc0f
test r13, r13
je 0x43db58
test r12, r12
js 0x43db58
mov rdx, qword [r13]
cmp rdx, r12
jle 0x43db68
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dc05
mov rdx, qword [r13]
test r12, r12
js 0x43da27
cmp r12, rdx
jl 0x43da33
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43dbfb
mov rdx, qword [r13]
test r12, r12
js 0x43da5b
cmp r12, rdx
jl 0x43da67
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jo 0x43d9ab
mov rdx, qword [r13]
test r12, r12
js 0x43da85
cmp r12, rdx
jl 0x43da91
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x43daa2
call fcn.0040a060
test r12, r12
js 0x43db00
mov rdx, r12
mov rcx, r13
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0040d6a0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.0040dba0
jmp 0x43d64e
mov edx, 6
xor ecx, ecx
xor r12d, r12d
call fcn.0040d6a0
mov r13, rax
jmp 0x43daa7
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.0040dba0
jmp 0x43daa7
xor ebx, ebx
nop dword [rax + rax]
lea rdx, [r8 - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43d8c6
test rcx, rcx
jg 0x43dc75
xor ebx, ebx
xor r12d, r12d
nop
lea rdx, [r8 - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43d9cf
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x43db6c
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
jmp 0x43da00
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x43db94
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.0040dd50
jmp 0x43d928
call fcn.0040a060
jmp 0x43d8db
call fcn.0040a060
jmp 0x43d6d9
call fcn.0040a060
jmp 0x43d7dc
call fcn.0040a060
jmp 0x43d7a6
call fcn.0040a060
jmp 0x43d770
call fcn.0040a060
jmp 0x43d708
call fcn.0040a060
jmp 0x43d977
call fcn.0040a060
jmp 0x43d941
call fcn.0040a060
jmp 0x43d909
call fcn.0040a060
jmp 0x43da4d
call fcn.0040a060
jmp 0x43da19
call fcn.0040a060
jmp 0x43d9e1
mov rax, rcx
mov r9d, 3
mov r8, rcx
cqo
idiv r9
cmp rdx, 1
je 0x43db31
xor r12d, r12d
cmp rdx, 2
jne 0x43daa7
test rcx, rcx
jle 0x43db16
movzx ebx, byte [rdi + 0x10]
mov r14d, 1
shl ebx, 0x10
mov esi, ebx
jmp 0x43d8e3
call fcn.0040a060
mov rcx, qword [rdi]
jmp 0x43d696
call fcn.0040a060
jmp 0x43d62a
movzx esi, byte [rdi + 0x10]
xor r12d, r12d
shl esi, 0x10
jmp 0x43d9e1