Function at 0x51bfa0
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x51c245
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rdi
test rax, rax
je 0x51bfe7
mov rdx, qword [rax + 8]
mov r8, qword [0x00945950]
mov r9, qword [r8]
mov r10d, dword [rax + 0x10]
jmp 0x51c1e5
mov rdx, rax
test rax, rax
jne 0x51c1a4
mov rcx, qword [rdx + 0x30]
mov rax, rbx
call rcx
mov rcx, qword [rax + 0x28]
lea rdx, [rcx + 7]
sar rdx, 0x3f
shr rdx, 0x3d
lea rcx, [rdx + rcx]
lea rcx, [rcx + 7]
sar rcx, 3
lea rdx, [rcx + rcx]
lea rdx, [rdx + 1]
mov rbx, qword [rsp + 0x70]
cmp rbx, rdx
jne 0x51c199
test rbx, rbx
jbe 0x51c1d6
mov rdx, qword [rsp + 0x68]
cmp byte [rdx], 4
nop
jne 0x51c18e
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rcx + 0x30]
mov rax, qword [rsp + 0x60]
call rdx
mov rcx, qword [rsp + 0x20]
lea rdx, [rcx + 1]
mov qword [rsp + 0x28], rdx
mov rbx, qword [rax]
mov qword [rsp + 0x30], rbx
lea rax, [0x006933c0]
call fcn.0040f6c0
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x28]
cmp rdx, rcx
jb 0x51c1d1
cmp rcx, 1
jb 0x51c1c5
lea rdi, [rdx - 1]
mov rsi, rdi
neg rsi
sar rsi, 0x3f
and esi, 1
mov r8, qword [rsp + 0x68]
lea rbx, [r8 + rsi]
mov rcx, qword [rsp + 0x20]
call fcn.0050e4c0
mov qword [rsp + 0x40], rax
lea rax, [0x006933c0]
call fcn.0040f6c0
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x28]
nop dword [rax]
cmp rcx, rdx
jb 0x51c1bc
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x20]
sub rdi, rsi
sub rcx, rsi
dec rdi
dec rcx
mov rsi, rdi
neg rsi
sar rsi, 0x3f
and rsi, rdx
mov rdx, qword [rsp + 0x68]
lea rbx, [rdx + rsi]
call fcn.0050e4c0
mov qword [rsp + 0x38], rax
mov rbx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
call fcn.0050e280
test rax, rax
jge 0x51c14a
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
nop dword [rax]
call fcn.0050e280
test rax, rax
jl 0x51c155
xor eax, eax
mov rbx, rax
add rsp, 0x48
pop rbp
ret
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx + 0x28]
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
call rdx
test al, al
je 0x51c183
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
add rsp, 0x48
pop rbp
ret
xor eax, eax
mov rbx, rax
add rsp, 0x48
pop rbp
ret
xor eax, eax
mov rbx, rax
add rsp, 0x48
pop rbp
ret
xor eax, eax
mov rbx, rax
add rsp, 0x48
pop rbp
ret
mov rdx, qword [rax + 0x18]
mov rax, rbx
mov rbx, rcx
mov rcx, rdi
mov rdi, rsi
call rdx
add rsp, 0x48
pop rbp
ret
mov rax, rdx
nop
call fcn.0047a1a0
mov eax, 1
xor ecx, ecx
call fcn.0047a1a0
call fcn.0047a160
xor eax, eax
mov rcx, rax
nop dword [rax + rax]
call fcn.0047a0e0
mov r11, r10
and r10, r9
shl r10, 4
mov r12, qword [r10 + r8 + 8]
cmp r12, rdx
je 0x51c232
lea r10, [r11 + 1]
nop dword [rax]
test r12, r12
jne 0x51c1e5
lea rax, [0x00945950]
mov rbx, rdx
call fcn.0040cda0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
jmp 0x51bfea
mov r8, qword [r10 + r8 + 0x10]
mov rdx, rax
mov rax, r8
nop dword [rax]
jmp 0x51bfea
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
nop
call fcn.00477e00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
nop
jmp fcn.0051bfa0