Function at 0x5ad5d0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d75df
mov eax, dword fs:[0]
push eax
sub esp, 0x440
mov eax, dword [0x64e0a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x430], eax
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x418], 0
mov dword [ebp - 4], 0
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x43c], 0
movzx esi, byte [ebp + 0xc]
neg esi
sbb esi, esi
and esi, 0xfffffff5
add esi, 0x4e2f
mov byte [ebp - 4], 1
test edx, edx
jne 0x5ad693
mov edx, 0x60d0f6
push edx
lea ecx, [ebp - 0x424]
call fcn.005a37c0
push 0x6125bc
lea ecx, [ebp - 0x424]
call fcn.005a37c0
test edi, edi
jne 0x5ad6b8
mov edi, 0x60d0f7
push edi
lea ecx, [ebp - 0x424]
call fcn.005a37c0
mov edx, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
mov ebx, edx
neg ebx
sbb ebx, ebx
and ebx, ecx
lea edi, [ebx + 1]
jmp 0x5ad6e0
mov al, byte [ebx]
inc ebx
test al, al
jne 0x5ad6e0
sub ebx, edi
mov dword [ebp - 0x434], ebx
test edx, edx
je 0x5ad977
test ecx, ecx
je 0x5ad977
lea ecx, [ebx + 2]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edi, [edx*4 + 2]
cmp edi, 0x400
ja 0x5ad8ac
mov eax, 0xaaaaaaab
mul ebx
mov eax, edx
xor esi, esi
xor edi, edi
shr eax, 1
mov dword [ebp - 0x42c], eax
je 0x5ad7df
mov dword [ebp - 0x428], eax
xor ebx, ebx
mov eax, dword [ebp - 0x41c]
add ebx, 3
movzx ecx, byte [eax + ebx - 3]
movzx edx, byte [eax + ebx - 2]
movzx esi, byte [eax + ebx - 1]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x410], al
mov eax, edx
sar eax, 4
and eax, 0xf
shl ecx, 4
or eax, ecx
and edx, 0xf
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x40f], al
mov eax, esi
sar eax, 6
and eax, 3
shl edx, 2
or eax, edx
and esi, 0x3f
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x40e], al
mov al, byte [esi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x40d], al
add edi, 4
dec dword [ebp - 0x428]
jne 0x5ad741
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x428], ebx
mov ebx, dword [ebp - 0x434]
mov esi, dword [ebp - 0x428]
lea eax, [eax + eax*2]
sub ebx, eax
dec ebx
je 0x5ad85d
dec ebx
jne 0x5ad89c
mov eax, dword [ebp - 0x41c]
movzx ecx, byte [eax + esi]
movzx edx, byte [eax + esi + 1]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x410], al
mov eax, edx
sar eax, 4
and eax, 0xf
shl ecx, 4
or eax, ecx
and edx, 0xf
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x40f], al
mov al, byte [edx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x40e], al
mov byte [ebp + edi - 0x40d], 0x3d
add edi, 4
mov byte [ebp + edi - 0x410], bl
lea ebx, [ebp - 0x410]
jmp 0x5ad91c
mov eax, dword [ebp - 0x41c]
movzx ecx, byte [eax + esi]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x410], al
shl ecx, 4
add edi, 4
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x413], al
mov word [ebp + edi - 0x412], 0x3d3d
mov byte [ebp + edi - 0x410], 0
lea ebx, [ebp - 0x410]
jmp 0x5ad91c
test edi, edi
je 0x5ad977
push edi
lea ecx, [ebp - 0x448]
call fcn.005a3870
mov ebx, eax
test ebx, ebx
jne 0x5ad8d0
mov esi, 0x4e20
jmp 0x5ad977
mov ecx, dword [ebp - 0x414]
mov edx, ecx
neg edx
sbb edx, edx
and edx, dword [ebp - 0x41c]
lea eax, [edx + 1]
mov dword [ebp - 0x42c], eax
jmp 0x5ad8f0
mov al, byte [edx]
inc edx
test al, al
jne 0x5ad8f0
sub edx, dword [ebp - 0x42c]
neg ecx
lea eax, [ebp - 0x44c]
push eax
sbb ecx, ecx
and ecx, dword [ebp - 0x41c]
push edi
push ebx
call fcn.005a2f40
add esp, 0xc
test al, al
je 0x5ad977
xor esi, esi
push 0x6125c0
lea ecx, [ebp - 0x424]
mov dword [ebp - 0x414], esi
call fcn.005a37c0
push ebx
lea ecx, [ebp - 0x424]
call fcn.005a37c0
lea ecx, [ebp - 0x424]
call fcn.005a3aa0
cmp byte [ebp + 0xc], 0
mov eax, dword [ebp - 0x420]
mov ecx, dword [ebp - 0x430]
mov dword [ebp - 0x414], esi
mov dword [ebp - 0x418], esi
mov dword [ebp - 0x420], esi
je 0x5ad974
mov dword [ecx + 0x34], eax
jmp 0x5ad977
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x444]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad994
push eax
call fcn.00541b50
add esp, 4
mov eax, dword [ebp - 0x420]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad9b1
push eax
call fcn.00541b50
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00541b41
mov esp, ebp
pop ebp
ret