Function at 0x43dc90
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 rdi, [0x0047d780]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test r8b, r8b
mov r12, rcx
mov rbp, rdx
cmovne rdi, rax
imul rbx, rdx, 4
jo 0x43e2e2
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
add rdx, 6
mov r13, rdx
js 0x43e070
xor ecx, ecx
mov rdx, r13
call fcn.0040d6a0
mov rcx, rbp
movabs rdx, 0x5555555555555556
mov r14, rax
mov rax, rbp
imul rdx
mov rax, rbp
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rax, rbp
sub rax, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x20], rax
jo 0x43e2ec
cmp qword [rsp + 0x20], 0
je 0x43e240
test r14, r14
lea rax, [rbp - 1]
setne byte [rsp + 0x33]
xor r15d, r15d
xor ebx, ebx
mov qword [rsp + 0x28], rax
jmp 0x43de40
test r15, r15
js 0x43dec8
cmp byte [rsp + 0x33], 0
je 0x43dec8
mov rdx, qword [r14]
cmp rdx, r15
jle 0x43ded7
mov eax, esi
shr eax, 0x12
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x43e2bc
mov rdx, qword [r14]
test r15, r15
js 0x43dda5
cmp r15, rdx
jl 0x43ddb1
sub rdx, 1
mov rcx, r15
call fcn.0040dd50
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x43e2b2
mov rdx, qword [r14]
test r15, r15
js 0x43ddd9
cmp r15, rdx
jl 0x43dde5
sub rdx, 1
mov rcx, r15
call fcn.0040dd50
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x43e2a8
mov rdx, qword [r14]
test r15, r15
js 0x43de0d
cmp r15, rdx
jl 0x43de19
sub rdx, 1
mov rcx, r15
call fcn.0040dd50
and esi, 0x3f
mov r9, r15
movzx eax, byte [rdi + rsi]
add r9, 1
mov byte [r14 + r15 + 0x10], al
mov r15, r9
jo 0x43df08
cmp qword [rsp + 0x20], r13
je 0x43df18
test rbx, rbx
js 0x43def0
cmp rbx, rbp
jge 0x43def0
movzx esi, byte [r12 + rbx]
mov eax, esi
shl eax, 0x10
add rbx, 1
mov r13, rbx
jo 0x43e2d0
test r13, r13
js 0x43df68
cmp r13, rbp
jge 0x43df68
movzx esi, byte [r12 + r13]
shl esi, 8
or esi, eax
add r13, 1
jo 0x43e2c6
test r13, r13
js 0x43df50
cmp r13, rbp
jge 0x43df50
movzx eax, byte [r12 + r13]
or esi, eax
add r13, 1
mov rbx, r13
jno 0x43dd60
call fcn.0040a060
test r15, r15
jns 0x43dd69
nop dword [rax + rax]
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43dedb
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.0040dd50
jmp 0x43dd80
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43de52
call fcn.0040a060
cmp qword [rsp + 0x20], r13
jne 0x43de40
cmp qword [rsp + 0x38], 1
je 0x43df88
cmp qword [rsp + 0x38], 2
je 0x43e0b0
test r15, r15
js 0x43e090
mov rdx, r15
mov rcx, r14
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0040d6a0
mov rdx, qword [rsp + 0x28]
mov rcx, r13
call fcn.0040dd50
jmp 0x43dea1
mov rdx, qword [rsp + 0x28]
mov rcx, r13
mov dword [rsp + 0x34], eax
call fcn.0040dd50
mov eax, dword [rsp + 0x34]
jmp 0x43de7b
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43e228
cmp rax, rbp
jge 0x43e228
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jo 0x43e300
test r15, r15
js 0x43e1d8
test r14, r14
je 0x43e1d8
mov rdx, qword [r14]
cmp rdx, r15
jle 0x43e1e7
mov eax, esi
mov rbx, r15
shr eax, 0x12
add rbx, 1
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
jo 0x43e314
mov rdx, qword [r14]
test rbx, rbx
js 0x43dff7
cmp rbx, rdx
jl 0x43e003
sub rdx, 1
mov rcx, rbx
call fcn.0040dd50
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rdi + rsi]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x43e30a
mov rdx, qword [r14]
test rbx, rbx
js 0x43e029
cmp rbx, rdx
jl 0x43e035
sub rdx, 1
mov rcx, rbx
call fcn.0040dd50
mov byte [r14 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x43e2f6
mov rdx, qword [r14]
test rbx, rbx
js 0x43e056
cmp rbx, rdx
jl 0x43e1b8
sub rdx, 1
mov rcx, rbx
call fcn.0040dd50
jmp 0x43e1b8
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r13
call fcn.0040dba0
jmp 0x43dce9
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.0040dba0
jmp 0x43df35
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43e282
cmp rax, rbp
jge 0x43e282
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jno 0x43e0da
call fcn.0040a060
test rbx, rbx
js 0x43e26f
cmp rbp, rbx
jle 0x43e26f
movzx eax, byte [r12 + rbx]
shl eax, 8
or esi, eax
add rbx, 1
jo 0x43e33c
test r14, r14
je 0x43e200
test r15, r15
js 0x43e200
mov rdx, qword [r14]
cmp rdx, r15
jle 0x43e20f
mov eax, esi
mov rbx, r15
shr eax, 0x12
add rbx, 1
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
jo 0x43e332
mov rax, qword [r14]
test rbx, rbx
js 0x43e146
cmp rbx, rax
jl 0x43e152
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x43e328
mov rax, qword [r14]
test rbx, rbx
js 0x43e17a
cmp rbx, rax
jl 0x43e186
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
shr esi, 6
and esi, 0x3c
movzx eax, byte [rdi + rsi]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x43e31e
mov rax, qword [r14]
test rbx, rbx
js 0x43e1ac
cmp rbx, rax
jl 0x43e1b8
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040dd50
mov byte [r14 + rbx + 0x10], 0x3d
add rbx, 1
mov r15, rbx
jno 0x43df2c
call fcn.0040a060
jmp 0x43df2c
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43e1eb
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.0040dd50
jmp 0x43dfcf
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43e213
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.0040dd50
jmp 0x43e11e
xor r15d, r15d
xor ebx, ebx
nop dword [rax]
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43df9f
mov rax, qword [rsp + 0x38]
cmp rax, 1
je 0x43e293
xor r15d, r15d
cmp rax, 2
jne 0x43df35
test rbp, rbp
jle 0x43e280
movzx esi, byte [r12]
mov ebx, 1
shl esi, 0x10
jmp 0x43e0da
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43e0ec
xor ebx, ebx
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.0040dd50
jmp 0x43e0c7
test rbp, rbp
jle 0x43e220
movzx esi, byte [r12]
xor r15d, r15d
shl esi, 0x10
jmp 0x43dfb1
call fcn.0040a060
jmp 0x43de00
call fcn.0040a060
jmp 0x43ddcc
call fcn.0040a060
jmp 0x43dd98
call fcn.0040a060
jmp 0x43de8f
mov dword [rsp + 0x34], eax
call fcn.0040a060
mov eax, dword [rsp + 0x34]
jmp 0x43de69
call fcn.0040a060
jmp 0x43dcc5
call fcn.0040a060
jmp 0x43dd30
call fcn.0040a060
jmp 0x43e045
call fcn.0040a060
jmp 0x43dfb1
call fcn.0040a060
jmp 0x43e01c
call fcn.0040a060
jmp 0x43dfea
call fcn.0040a060
jmp 0x43e19f
call fcn.0040a060
jmp 0x43e16d
call fcn.0040a060
jmp 0x43e139
call fcn.0040a060
jmp 0x43e100