Function at 0x43ed30
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, [0x0048a780]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov rdi, rcx
cmovne rbp, rax
test rcx, rcx
je 0x43f228
imul rbx, qword [rcx], 4
jo 0x43f3ab
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
lea r12, [rdx + 6]
test r12, r12
js 0x43f208
xor ecx, ecx
mov rdx, r12
call fcn.0040d0c0
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 0x43f39e
cmp qword [rsp + 0x20], 0
je 0x43f359
test r13, r13
setne byte [rsp + 0x2f]
xor r12d, r12d
xor ebx, ebx
jmp 0x43ef53
cmp rcx, rbx
jle 0x43ef5c
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r15d, esi
mov r14, rbx
jo 0x43f2eb
mov rdx, qword [rdi]
test r14, r14
js 0x43ee26
cmp r14, rdx
jl 0x43ee32
sub rdx, 1
mov rcx, r14
call fcn.0040d770
movzx esi, byte [rdi + r14 + 0x10]
shl esi, 8
or esi, r15d
add r14, 1
jo 0x43f313
mov rdx, qword [rdi]
test r14, r14
js 0x43ee55
cmp r14, rdx
jl 0x43ee61
sub rdx, 1
mov rcx, r14
call fcn.0040d770
movzx eax, byte [rdi + r14 + 0x10]
or esi, eax
add r14, 1
mov rbx, r14
jo 0x43ef98
test r12, r12
js 0x43ef70
cmp byte [rsp + 0x2f], 0
je 0x43ef70
mov rdx, qword [r13]
cmp r12, rdx
jge 0x43ef80
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f309
mov rdx, qword [r13]
test r12, r12
js 0x43eebe
cmp r12, rdx
jl 0x43eeca
sub rdx, 1
mov rcx, r12
call fcn.0040d770
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f2ff
mov rdx, qword [r13]
test r12, r12
js 0x43eef4
cmp r12, rdx
jl 0x43ef00
sub rdx, 1
mov rcx, r12
call fcn.0040d770
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f2f5
mov rdx, qword [r13]
test r12, r12
js 0x43ef2a
cmp r12, rdx
jl 0x43ef36
sub rdx, 1
mov rcx, r12
call fcn.0040d770
and esi, 0x3f
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43efa8
cmp qword [rsp + 0x20], r14
je 0x43efb4
mov rcx, qword [rdi]
test rbx, rbx
jns 0x43edf8
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.0040d770
jmp 0x43ee01
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x43ef84
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.0040d770
jmp 0x43ee97
call fcn.00409d20
jmp 0x43ee76
call fcn.00409d20
cmp qword [rsp + 0x20], r14
jne 0x43ef50
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 0x43f0f8
cmp rdx, 2
jne 0x43f1e2
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43f260
cmp rax, r8
jge 0x43f260
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r14, rbx
jo 0x43f2e1
mov rcx, qword [rdi]
test rbx, rbx
js 0x43f028
cmp r14, rcx
jl 0x43f034
lea rdx, [rcx - 1]
mov rcx, r14
call fcn.0040d770
movzx ebx, byte [rdi + r14 + 0x10]
shl ebx, 8
or ebx, esi
add r14, 1
jo 0x43f331
test r13, r13
je 0x43f2c0
test r12, r12
js 0x43f2c0
mov rdx, qword [r13]
cmp rdx, r12
jle 0x43f2d0
mov eax, ebx
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f327
mov rdx, qword [r13]
test r12, r12
js 0x43f08f
cmp r12, rdx
jl 0x43f09b
sub rdx, 1
mov rcx, r12
call fcn.0040d770
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f31d
mov rdx, qword [r13]
test r12, r12
js 0x43f0c5
cmp r12, rdx
jl 0x43f0d1
sub rdx, 1
mov rcx, r12
call fcn.0040d770
shr ebx, 6
and ebx, 0x3c
movzx eax, byte [rbp + rbx]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jno 0x43f1b7
call fcn.00409d20
jmp 0x43f1b7
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43f280
cmp rax, r8
jge 0x43f280
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x43f34f
test r13, r13
je 0x43f298
test r12, r12
js 0x43f298
mov rdx, qword [r13]
cmp rdx, r12
jle 0x43f2a8
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f345
mov rdx, qword [r13]
test r12, r12
js 0x43f167
cmp r12, rdx
jl 0x43f173
sub rdx, 1
mov rcx, r12
call fcn.0040d770
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x43f33b
mov rdx, qword [r13]
test r12, r12
js 0x43f19b
cmp r12, rdx
jl 0x43f1a7
sub rdx, 1
mov rcx, r12
call fcn.0040d770
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jo 0x43f0eb
mov rdx, qword [r13]
test r12, r12
js 0x43f1c5
cmp r12, rdx
jl 0x43f1d1
sub rdx, 1
mov rcx, r12
call fcn.0040d770
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x43f1e2
call fcn.00409d20
test r12, r12
js 0x43f240
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.0040d0c0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.0040d5c0
jmp 0x43ed8e
mov edx, 6
xor ecx, ecx
xor r12d, r12d
call fcn.0040d0c0
mov r13, rax
jmp 0x43f1e7
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.0040d5c0
jmp 0x43f1e7
xor ebx, ebx
nop dword [rax + rax]
lea rdx, [r8 - 1]
mov rcx, rbx
call fcn.0040d770
jmp 0x43f006
test rcx, rcx
jg 0x43f3b5
xor ebx, ebx
xor r12d, r12d
nop
lea rdx, [r8 - 1]
mov rcx, rbx
call fcn.0040d770
jmp 0x43f10f
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x43f2ac
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.0040d770
jmp 0x43f140
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x43f2d4
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.0040d770
jmp 0x43f068
call fcn.00409d20
jmp 0x43f01b
call fcn.00409d20
jmp 0x43ee19
call fcn.00409d20
jmp 0x43ef1c
call fcn.00409d20
jmp 0x43eee6
call fcn.00409d20
jmp 0x43eeb0
call fcn.00409d20
jmp 0x43ee48
call fcn.00409d20
jmp 0x43f0b7
call fcn.00409d20
jmp 0x43f081
call fcn.00409d20
jmp 0x43f049
call fcn.00409d20
jmp 0x43f18d
call fcn.00409d20
jmp 0x43f159
call fcn.00409d20
jmp 0x43f121
mov rax, rcx
mov r9d, 3
mov r8, rcx
cqo
idiv r9
cmp rdx, 1
je 0x43f271
xor r12d, r12d
cmp rdx, 2
jne 0x43f1e7
test rcx, rcx
jle 0x43f256
movzx ebx, byte [rdi + 0x10]
mov r14d, 1
shl ebx, 0x10
mov esi, ebx
jmp 0x43f023
call fcn.00409d20
mov rcx, qword [rdi]
jmp 0x43edd6
call fcn.00409d20
jmp 0x43ed6a
movzx esi, byte [rdi + 0x10]
xor r12d, r12d
shl esi, 0x10
jmp 0x43f121