Function at 0x43aa79
Capabilities:
Encode data using base64

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, qword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789___f]
mov rdi, rcx
mov rbx, rdx
test r8b, r8b
je 0x43aa9c
mov rsi, qword [0x00474a90]
imul rax, rbx, 4
jo 0x43aad9
cqo
mov ebp, 3
idiv rbp
add rax, 6
mov rcx, rax
jns 0x43aade
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.0044be0e
movzx ebp, byte [rdi + r11]
mov rcx, r11
shl ebp, 0x10
mov r12d, ebp
inc rcx
jns 0x43ab26
call fcn.0044c4f5
mov rdx, rax
xor ecx, ecx
call fcn.0044ab38
mov r10, rbx
xor r11d, r11d
mov r8, rax
mov rax, rbx
cqo
idiv rbp
sub r10, rdx
seto r11b
jo 0x43aad9
xor eax, eax
cmp r10, r11
jne 0x43ab18
cmp rdx, 1
jne 0x43ac0a
jmp 0x43ac19
cmp r11, rbx
jl 0x43aac6
lea rdx, [rbx - 1]
mov rcx, r11
jmp 0x43ab39
cmp rcx, r11
jb 0x43aad9
test rcx, rcx
js 0x43ab35
cmp rcx, rbx
jl 0x43ab3e
lea rdx, [rbx - 1]
call fcn.0044cbbf
movzx ebp, byte [rdi + rcx]
lea rcx, [r11 + 2]
mov r9d, ebp
shl r9d, 8
cmp rbx, rcx
jle 0x43ab35
movzx ebp, byte [rdi + r11 + 2]
add r11, 3
or ebp, r9d
or ebp, r12d
test r8, r8
je 0x43ab78
mov r9, qword [r8]
cmp rax, r9
jl 0x43ab81
lea rdx, [r9 - 1]
jmp 0x43ad3d
or rdx, 0xffffffffffffffff
jmp 0x43ad3d
mov ecx, ebp
mov r12, rax
shr ecx, 0x12
mov cl, byte [rsi + rcx]
mov byte [r8 + rax + 0x10], cl
inc r12
js 0x43aad9
cmp r12, rax
jb 0x43aad9
test r12, r12
js 0x43abad
cmp r12, r9
jl 0x43abb6
lea rdx, [r9 - 1]
mov rcx, r12
jmp 0x43ab39
mov eax, ebp
lea rcx, [r12 + 1]
shr eax, 0xc
and eax, 0x3f
mov al, byte [rsi + rax]
mov byte [r8 + r12 + 0x10], al
cmp r9, rcx
jle 0x43abea
mov eax, ebp
shr eax, 6
and eax, 0x3f
mov al, byte [rsi + rax]
mov byte [r8 + rcx + 0x10], al
lea rcx, [r12 + 2]
cmp r9, rcx
jg 0x43abf3
lea rdx, [r9 - 1]
jmp 0x43ab39
mov eax, ebp
and eax, 0x3f
mov al, byte [rsi + rax]
mov byte [r8 + rcx + 0x10], al
lea rax, [r12 + 3]
jmp 0x43ab04
cmp rdx, 2
jne 0x43adbb
jmp 0x43accf
cmp r10, rbx
jge 0x43acd4
movzx ecx, byte [rdi + r10]
mov rdx, r10
shl ecx, 0x10
inc rdx
js 0x43aad9
cmp rdx, r10
jb 0x43aad9
or rdx, 0xffffffffffffffff
test r8, r8
je 0x43ad3d
mov rdx, qword [r8]
cmp rax, rdx
jge 0x43ad3a
mov r9d, ecx
shr r9d, 0x12
mov r9b, byte [rsi + r9]
mov byte [r8 + rax + 0x10], r9b
mov r9, rax
inc r9
js 0x43aad9
cmp r9, rax
jb 0x43aad9
test r9, r9
js 0x43ac87
cmp r9, rdx
jl 0x43ac92
dec rdx
mov rcx, r9
jmp 0x43ab39
shr ecx, 0xc
and ecx, 0x30
mov al, byte [rsi + rcx]
lea rcx, [r9 + 1]
mov byte [r8 + r9 + 0x10], al
cmp rdx, rcx
jle 0x43ada9
mov byte [r8 + rcx + 0x10], 0x3d
lea rcx, [r9 + 2]
cmp rdx, rcx
jle 0x43ada9
mov byte [r8 + rcx + 0x10], 0x3d
lea rax, [r9 + 3]
jmp 0x43adbb
cmp r10, rbx
jl 0x43ace0
lea rdx, [rbx - 1]
mov rcx, r10
jmp 0x43ab39
movzx r9d, byte [rdi + r10]
mov rcx, r10
mov edx, r9d
shl edx, 0x10
inc rcx
js 0x43aad9
cmp rcx, r10
jb 0x43aad9
test rcx, rcx
js 0x43ab35
cmp rcx, rbx
jge 0x43ab35
movzx r9d, byte [rdi + r10 + 1]
shl r9d, 8
or r9d, edx
add rcx, 1
jo 0x43aad9
or rdx, 0xffffffffffffffff
test r8, r8
je 0x43ad3d
mov rdx, qword [r8]
cmp rax, rdx
jl 0x43ad45
dec rdx
mov rcx, rax
jmp 0x43ab39
mov ecx, r9d
shr ecx, 0x12
mov cl, byte [rsi + rcx]
mov byte [r8 + rax + 0x10], cl
mov rcx, rax
inc rcx
js 0x43aad9
cmp rcx, rax
jb 0x43aad9
test rcx, rcx
js 0x43ada9
cmp rcx, rdx
jge 0x43ada9
mov r10d, r9d
shr r10d, 0xc
and r10d, 0x3f
mov r10b, byte [rsi + r10]
mov byte [r8 + rcx + 0x10], r10b
lea rcx, [rax + 2]
cmp rcx, rdx
jge 0x43ada9
shr r9d, 6
and r9d, 0x3c
mov r9b, byte [rsi + r9]
mov byte [r8 + rcx + 0x10], r9b
lea rcx, [rax + 3]
cmp rcx, rdx
jl 0x43adb1
dec rdx
jmp 0x43ab39
mov byte [r8 + rcx + 0x10], 0x3d
add rax, 4
mov rdx, rax
mov rcx, r8
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.0044ab38