Function at 0x4ac5e0
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4acfbc
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x78], rbp
lea rbp, [rsp + 0x78]
mov qword [rsp + 0xa0], rdi
mov byte [rsp + 0xa9], r8b
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0xb8], r10
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0x90], rbx
mov byte [rsp + 0xa8], sil
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x80]
call fcn.0049e0c0
mov rax, qword [rsp + 0xc0]
test byte [rax], al
call fcn.0049ce80
mov rcx, qword [rsp + 0xc0]
mov rcx, qword [rcx]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb rdx, rdx
mov rbx, qword [rsp + 0xb0]
test rbx, rbx
mov rsi, qword [rsp + 0xb8]
mov edi, 0
cmove rsi, rdi
shl rbx, cl
and rdx, rbx
jmp 0x4ac6a0
shl rdx, 1
dec rsi
nop
test rdx, rdx
je 0x4ac6ac
bt rdx, 0x3c
jae 0x4ac699
mov rcx, qword [rsp + 0xa0]
cmp rcx, 0xf
jae 0x4ac72c
mov r8, rcx
shl rcx, 2
cmp rcx, 0x40
sbb r9, r9
lea r10, [rcx - 0x3c]
neg r10
cmp r10, 0x40
sbb r11, r11
mov r12, rdx
shl rdx, cl
and r9, rdx
movabs rdx, 0xfffffffffffffff
and rdx, r9
mov rcx, r10
shr r12, cl
and r12, r11
mov r9, r12
and r12d, 1
or rdx, r12
movabs r12, 0x800000000000000
cmp r12, rdx
jae 0x4ac714
lea r12, [r9 + 1]
jmp 0x4ac717
mov r12, r9
shl r12, cl
and r12, r11
bt r12, 0x3d
jae 0x4ac732
shr r12, 1
inc rsi
jmp 0x4ac732
mov r8, rcx
mov r12, rdx
movzx edx, byte [rsp + 0xa8]
cmp dl, 0x58
jne 0x4ac748
lea rax, [0x005445eb]
jmp 0x4ac74f
lea rax, [0x005445fb]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], r12
movzx r9d, byte [rsp + 0xa9]
test r9b, r9b
je 0x4ac80f
mov rdi, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
mov r9, rdi
sub rdi, rcx
cmp rdi, 1
jl 0x4ac796
mov rbx, qword [rsp + 0x88]
jmp 0x4ac7ba
lea rsi, [rcx + 1]
lea rax, [0x0052a1a0]
mov rbx, qword [rsp + 0x88]
mov rdi, r9
call fcn.004839c0
mov r9, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
mov byte [rax + rcx], 0x2d
lea rbx, [rcx + 1]
mov rax, qword [rsp + 0x68]
movzx edx, byte [rsp + 0xa8]
mov rsi, qword [rsp + 0x60]
mov r8, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x70]
jmp 0x4ac827
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x88]
mov r9, rcx
sub rcx, rbx
cmp rcx, 3
jge 0x4ac852
lea rsi, [rbx + 3]
lea rax, [0x0052a1a0]
mov rcx, rbx
mov rbx, rdi
mov rdi, r9
call fcn.004839c0
mov rdi, rax
mov r9, rcx
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x48], rbx
lea rax, [rdi + rbx]
call fcn.0049cec0
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x70]
mov byte [rdx + rcx], 0x30
lea rax, [rcx + rdx]
lea rax, [rax + 1]
call fcn.0049cec0
mov rcx, qword [rsp + 0x70]
movzx edx, byte [rsp + 0xa8]
mov rbx, qword [rsp + 0x48]
mov byte [rbx + rcx + 1], dl
lea rax, [rbx + rcx]
lea rax, [rax + 2]
call fcn.0049cec0
mov rcx, qword [rsp + 0x58]
mov rdx, rcx
shr rcx, 0x3c
and ecx, 1
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x48]
mov byte [rsi + rbx + 2], cl
lea rcx, [rsi + 3]
shl rdx, 4
mov qword [rsp + 0x58], rdx
mov rdi, qword [rsp + 0xa0]
nop dword [rax]
test rdi, rdi
jge 0x4ac956
test rdx, rdx
je 0x4ac953
mov rdi, qword [rsp + 0x50]
mov r8, rdi
sub rdi, rsi
lea r9, [rdi - 3]
cmp r9, 1
jge 0x4ac91b
add rsi, 4
lea rax, [0x0052a1a0]
mov rdi, r8
call fcn.004839c0
mov r8, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
call fcn.0049cec0
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], 0x2e
inc rcx
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
jmp 0x4acf6a
test rdi, rdi
jle 0x4ac9c8
mov r8, qword [rsp + 0x50]
mov r9, r8
sub r8, rsi
add r8, 0xfffffffffffffffd
cmp r8, 1
jge 0x4ac98e
add rsi, 4
lea rax, [0x0052a1a0]
mov rdi, r9
nop dword [rax + rax]
call fcn.004839c0
mov r9, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
call fcn.0049cec0
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], 0x2e
inc rcx
xor eax, eax
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
jmp 0x4aced1
mov rax, qword [rsp + 0x50]
movzx edx, byte [rsp + 0xa8]
mov r8d, edx
or edx, 0x20
nop dword [rax + rax]
cmp r8b, dl
jne 0x4ac9ec
mov edx, 0x70
jmp 0x4ac9f1
mov edx, 0x50
mov byte [rsp + 0x2d], dl
mov rdi, rax
sub rax, rcx
nop dword [rax + rax]
cmp rax, 1
jge 0x4aca1f
lea rsi, [rcx + 1]
lea rax, [0x0052a1a0]
call fcn.004839c0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rdi
lea rax, [rbx + rcx]
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2d]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
mov rdx, qword [rsp + 0x60]
test rdx, rdx
jge 0x4aca5d
neg rdx
mov eax, 0x2d
jmp 0x4aca62
mov eax, 0x2b
mov qword [rsp + 0x60], rdx
mov byte [rsp + 0x2d], al
lea r8, [rcx + 1]
mov rdi, qword [rsp + 0x48]
mov r9, rdi
sub rdi, rcx
lea r10, [rdi - 1]
nop
cmp r10, 1
jge 0x4acaa5
lea rsi, [rcx + 2]
lea rax, [0x0052a1a0]
mov rcx, r8
mov rdi, r9
call fcn.004839c0
mov r8, rbx
mov r9, rcx
mov rbx, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], r9
lea rax, [rbx + r8]
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2d]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
lea rdx, [rcx + 1]
mov rsi, qword [rsp + 0x60]
nop dword [rax + rax]
cmp rsi, 0x64
jge 0x4acbb1
mov rdi, qword [rsp + 0x48]
mov r8, rdi
sub rdi, rcx
lea r9, [rdi - 1]
movabs rax, 0xcccccccccccccccd
mov rdi, rdx
imul rsi
add rdx, rsi
sar rdx, 3
mov r10, rsi
sar rsi, 0x3f
sub rdx, rsi
mov qword [rsp + 0x60], rdx
lea r11, [rdx + rdx*4]
shl r11, 1
sub r10, r11
mov qword [rsp + 0x50], r10
cmp r9, 2
jge 0x4acb53
lea rsi, [rcx + 3]
lea rax, [0x0052a1a0]
mov rcx, rdi
mov rdi, r8
call fcn.004839c0
mov rdi, rbx
mov rbx, rax
mov r8, rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r8
lea rax, [rbx + rdi]
call fcn.0049cec0
mov rcx, qword [rsp + 0x60]
add ecx, 0x30
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx], cl
lea rax, [rdx + rbx]
lea rax, [rax + 1]
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rbx + 1], cl
lea rcx, [rdx + 2]
mov rax, qword [rsp + 0x40]
jmp 0x4ace5e
cmp rsi, 0x3e8
jge 0x4accec
mov rdi, qword [rsp + 0x48]
mov r8, rdi
sub rdi, rcx
lea r9, [rdi - 1]
movabs rax, 0xa3d70a3d70a3d70b
mov rdi, rdx
imul rsi
add rdx, rsi
mov qword [rsp + 0x60], rdx
movabs rax, 0xcccccccccccccccd
imul rsi
add rdx, rsi
mov r11, rdx
sar rdx, 3
movabs rax, 0xcccccccccccccccd
mov r12, rdx
imul rdx
add rdx, r12
sar r11, 0x3f
sar rdx, 3
sub rdx, r11
lea rdx, [rdx + rdx*4]
shl rdx, 1
mov r11, r12
sub r12, rdx
mov qword [rsp + 0x50], r12
lea rdx, [r11 + r11*4]
shl rdx, 1
sub rsi, rdx
mov qword [rsp + 0x40], rsi
nop dword [rax + rax]
cmp r9, 3
jge 0x4acc65
lea rsi, [rcx + 4]
lea rax, [0x0052a1a0]
mov rcx, rdi
mov rdi, r8
call fcn.004839c0
mov rdi, rbx
mov rbx, rax
mov r8, rcx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x38], rdi
lea rax, [rbx + rdi]
call fcn.0049cec0
mov rcx, qword [rsp + 0x60]
sar rcx, 6
add ecx, 0x30
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx], cl
lea rax, [rdx + rbx]
lea rax, [rax + 1]
nop
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
add ecx, 0x30
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x38]
mov byte [rbx + rdx + 1], cl
lea rax, [rbx + rdx]
lea rax, [rax + 2]
call fcn.0049cec0
mov rcx, qword [rsp + 0x40]
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + rbx + 2], cl
lea rcx, [rdx + 3]
mov rax, qword [rsp + 0x48]
jmp 0x4ace5e
mov rdi, qword [rsp + 0x48]
mov r8, rdi
sub rdi, rcx
lea r9, [rdi - 1]
movabs rax, 0xa3d70a3d70a3d70b
mov rdi, rdx
imul rsi
add rdx, rsi
sar rdx, 6
movzx r10d, dl
imul r10d, r10d, 0x19a
shr r10d, 0xc
lea r10d, [r10 + r10*4]
shl r10d, 1
sub edx, r10d
mov byte [rsp + 0x2f], dl
movabs rax, 0xcccccccccccccccd
imul rsi
add rdx, rsi
mov r11, rdx
sar rdx, 3
movabs rax, 0xcccccccccccccccd
mov r12, rdx
imul rdx
add rdx, r12
sar rdx, 3
sar r11, 0x3f
sub rdx, r11
lea rdx, [rdx + rdx*4]
shl rdx, 1
mov r11, r12
sub r12, rdx
mov qword [rsp + 0x50], r12
lea rdx, [r11 + r11*4]
shl rdx, 1
sub rsi, rdx
mov qword [rsp + 0x40], rsi
cmp r9, 4
jge 0x4acdae
lea rsi, [rcx + 5]
lea rax, [0x0052a1a0]
mov rcx, rdi
mov rdi, r8
nop dword [rax]
call fcn.004839c0
mov rdi, rbx
mov rbx, rax
mov r8, rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x38], r8
lea rax, [rbx + rdi]
call fcn.0049cec0
movabs rax, 0x4189374bc6a7ef9e
mov rcx, qword [rsp + 0x60]
imul rcx
sar rdx, 8
lea ecx, [rdx + 0x30]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx], cl
lea rax, [rdx + rbx]
lea rax, [rax + 1]
call fcn.0049cec0
movzx ecx, byte [rsp + 0x2f]
add ecx, 0x30
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x48]
mov byte [rbx + rdx + 1], cl
lea rax, [rbx + rdx]
lea rax, [rax + 2]
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
add ecx, 0x30
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x48]
mov byte [rbx + rdx + 2], cl
lea rax, [rbx + rdx]
lea rax, [rax + 3]
call fcn.0049cec0
mov rcx, qword [rsp + 0x40]
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rbx + 3], cl
lea rcx, [rdx + 4]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x70], rbx
call fcn.0049e100
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
nop
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2e]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
mov rdx, qword [rsp + 0x30]
lea rax, [rdx + 1]
inc rcx
mov rdx, qword [rsp + 0x58]
shl rdx, 4
mov rsi, qword [rsp + 0x48]
mov r8, qword [rsp + 0xa0]
cmp r8, rax
jle 0x4acf27
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x58], rdx
mov rdi, rsi
sub rsi, rcx
shr rdx, 0x3c
and edx, 0xf
mov r10, qword [rsp + 0x68]
movzx edx, byte [r10 + rdx]
mov byte [rsp + 0x2e], dl
cmp rsi, 1
jge 0x4ace8b
lea rsi, [rcx + 1]
lea rax, [0x0052a1a0]
call fcn.004839c0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
jmp 0x4ace8b
mov rax, rsi
jmp 0x4ac9cd
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rdi
lea rax, [rbx + rcx]
call fcn.0049cec0
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2e]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
inc rcx
mov rax, qword [rsp + 0x58]
shl rax, 4
mov rdx, qword [rsp + 0x48]
test rax, rax
je 0x4acfb4
mov qword [rsp + 0x58], rax
mov rdi, rdx
sub rdx, rcx
shr rax, 0x3c
and eax, 0xf
mov r9, qword [rsp + 0x68]
movzx r10d, byte [r9 + rax]
mov byte [rsp + 0x2e], r10b
cmp rdx, 1
jge 0x4acf2f
lea rsi, [rcx + 1]
lea rax, [0x0052a1a0]
call fcn.004839c0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
jmp 0x4acf2f
mov rax, rdx
jmp 0x4ac9cd
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x29], r8b
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], r11
call fcn.00499460
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
movzx esi, byte [rsp + 0x28]
movzx r8d, byte [rsp + 0x29]
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
nop dword [rax]
jmp fcn.004ac5e0