Function at 0x43f3d0
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, [0x0048a780]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test r8b, r8b
mov r12, rcx
mov rbp, rdx
cmovne rdi, rax
imul rbx, rdx, 4
jo 0x43fa22
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
add rdx, 6
mov r13, rdx
js 0x43f7b0
xor ecx, ecx
mov rdx, r13
call fcn.0040d0c0
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 0x43fa2c
cmp qword [rsp + 0x20], 0
je 0x43f980
test r14, r14
lea rax, [rbp - 1]
setne byte [rsp + 0x33]
xor r15d, r15d
xor ebx, ebx
mov qword [rsp + 0x28], rax
jmp 0x43f580
test r15, r15
js 0x43f608
cmp byte [rsp + 0x33], 0
je 0x43f608
mov rdx, qword [r14]
cmp rdx, r15
jle 0x43f617
mov eax, esi
shr eax, 0x12
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x43f9fc
mov rdx, qword [r14]
test r15, r15
js 0x43f4e5
cmp r15, rdx
jl 0x43f4f1
sub rdx, 1
mov rcx, r15
call fcn.0040d770
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x43f9f2
mov rdx, qword [r14]
test r15, r15
js 0x43f519
cmp r15, rdx
jl 0x43f525
sub rdx, 1
mov rcx, r15
call fcn.0040d770
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x43f9e8
mov rdx, qword [r14]
test r15, r15
js 0x43f54d
cmp r15, rdx
jl 0x43f559
sub rdx, 1
mov rcx, r15
call fcn.0040d770
and esi, 0x3f
mov r9, r15
movzx eax, byte [rdi + rsi]
add r9, 1
mov byte [r14 + r15 + 0x10], al
mov r15, r9
jo 0x43f648
cmp qword [rsp + 0x20], r13
je 0x43f658
test rbx, rbx
js 0x43f630
cmp rbx, rbp
jge 0x43f630
movzx esi, byte [r12 + rbx]
mov eax, esi
shl eax, 0x10
add rbx, 1
mov r13, rbx
jo 0x43fa10
test r13, r13
js 0x43f6a8
cmp r13, rbp
jge 0x43f6a8
movzx esi, byte [r12 + r13]
shl esi, 8
or esi, eax
add r13, 1
jo 0x43fa06
test r13, r13
js 0x43f690
cmp r13, rbp
jge 0x43f690
movzx eax, byte [r12 + r13]
or esi, eax
add r13, 1
mov rbx, r13
jno 0x43f4a0
call fcn.00409d20
test r15, r15
jns 0x43f4a9
nop dword [rax + rax]
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43f61b
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.0040d770
jmp 0x43f4c0
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.0040d770
jmp 0x43f592
call fcn.00409d20
cmp qword [rsp + 0x20], r13
jne 0x43f580
cmp qword [rsp + 0x38], 1
je 0x43f6c8
cmp qword [rsp + 0x38], 2
je 0x43f7f0
test r15, r15
js 0x43f7d0
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.0040d0c0
mov rdx, qword [rsp + 0x28]
mov rcx, r13
call fcn.0040d770
jmp 0x43f5e1
mov rdx, qword [rsp + 0x28]
mov rcx, r13
mov dword [rsp + 0x34], eax
call fcn.0040d770
mov eax, dword [rsp + 0x34]
jmp 0x43f5bb
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43f968
cmp rax, rbp
jge 0x43f968
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jo 0x43fa40
test r15, r15
js 0x43f918
test r14, r14
je 0x43f918
mov rdx, qword [r14]
cmp rdx, r15
jle 0x43f927
mov eax, esi
mov rbx, r15
shr eax, 0x12
add rbx, 1
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
jo 0x43fa54
mov rdx, qword [r14]
test rbx, rbx
js 0x43f737
cmp rbx, rdx
jl 0x43f743
sub rdx, 1
mov rcx, rbx
call fcn.0040d770
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rdi + rsi]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x43fa4a
mov rdx, qword [r14]
test rbx, rbx
js 0x43f769
cmp rbx, rdx
jl 0x43f775
sub rdx, 1
mov rcx, rbx
call fcn.0040d770
mov byte [r14 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x43fa36
mov rdx, qword [r14]
test rbx, rbx
js 0x43f796
cmp rbx, rdx
jl 0x43f8f8
sub rdx, 1
mov rcx, rbx
call fcn.0040d770
jmp 0x43f8f8
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r13
call fcn.0040d5c0
jmp 0x43f429
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.0040d5c0
jmp 0x43f675
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x43f9c2
cmp rax, rbp
jge 0x43f9c2
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jno 0x43f81a
call fcn.00409d20
test rbx, rbx
js 0x43f9af
cmp rbp, rbx
jle 0x43f9af
movzx eax, byte [r12 + rbx]
shl eax, 8
or esi, eax
add rbx, 1
jo 0x43fa7c
test r14, r14
je 0x43f940
test r15, r15
js 0x43f940
mov rdx, qword [r14]
cmp rdx, r15
jle 0x43f94f
mov eax, esi
mov rbx, r15
shr eax, 0x12
add rbx, 1
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
jo 0x43fa72
mov rax, qword [r14]
test rbx, rbx
js 0x43f886
cmp rbx, rax
jl 0x43f892
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040d770
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x43fa68
mov rax, qword [r14]
test rbx, rbx
js 0x43f8ba
cmp rbx, rax
jl 0x43f8c6
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040d770
shr esi, 6
and esi, 0x3c
movzx eax, byte [rdi + rsi]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x43fa5e
mov rax, qword [r14]
test rbx, rbx
js 0x43f8ec
cmp rbx, rax
jl 0x43f8f8
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.0040d770
mov byte [r14 + rbx + 0x10], 0x3d
add rbx, 1
mov r15, rbx
jno 0x43f66c
call fcn.00409d20
jmp 0x43f66c
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43f92b
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.0040d770
jmp 0x43f70f
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x43f953
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.0040d770
jmp 0x43f85e
xor r15d, r15d
xor ebx, ebx
nop dword [rax]
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.0040d770
jmp 0x43f6df
mov rax, qword [rsp + 0x38]
cmp rax, 1
je 0x43f9d3
xor r15d, r15d
cmp rax, 2
jne 0x43f675
test rbp, rbp
jle 0x43f9c0
movzx esi, byte [r12]
mov ebx, 1
shl esi, 0x10
jmp 0x43f81a
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.0040d770
jmp 0x43f82c
xor ebx, ebx
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.0040d770
jmp 0x43f807
test rbp, rbp
jle 0x43f960
movzx esi, byte [r12]
xor r15d, r15d
shl esi, 0x10
jmp 0x43f6f1
call fcn.00409d20
jmp 0x43f540
call fcn.00409d20
jmp 0x43f50c
call fcn.00409d20
jmp 0x43f4d8
call fcn.00409d20
jmp 0x43f5cf
mov dword [rsp + 0x34], eax
call fcn.00409d20
mov eax, dword [rsp + 0x34]
jmp 0x43f5a9
call fcn.00409d20
jmp 0x43f405
call fcn.00409d20
jmp 0x43f470
call fcn.00409d20
jmp 0x43f785
call fcn.00409d20
jmp 0x43f6f1
call fcn.00409d20
jmp 0x43f75c
call fcn.00409d20
jmp 0x43f72a
call fcn.00409d20
jmp 0x43f8df
call fcn.00409d20
jmp 0x43f8ad
call fcn.00409d20
jmp 0x43f879
call fcn.00409d20
jmp 0x43f840