Function at 0x4b5fa0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
xor eax, eax
mov dword [ebp - 0x18], ecx
push ebx
mov ebx, dword [ebp + 0x10]
lea ecx, [edx + 2]
push esi
xor esi, esi
mov dword [ebp - 0x10], edx
push edi
mov edi, dword [ebp + 8]
test edi, edi
mov dword [ebp - 8], esi
sete al
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xc], eax
mov eax, 0xaaaaaaab
mul ecx
xor eax, eax
mov dword [ebp - 0x1c], esi
shr edx, 1
shl edx, 2
lea ecx, [edx + 0x3f]
shr ecx, 6
cmp ebx, 2
cmovne eax, ecx
mov ecx, dword [ebp + 0xc]
add edx, eax
mov dword [ebp - 0x20], edx
test ecx, ecx
je 0x4b62a5
cmp edx, dword [ecx]
jbe 0x4b6003
test edi, edi
jne 0x4b62a5
mov eax, dword [ebp - 0x10]
cmp eax, 2
ja 0x4b6043
test eax, eax
je 0x4b622d
test esi, esi
jne 0x4b6253
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov dl, byte [ecx + esi]
mov byte [ebp + 0x13], dl
cmp eax, 2
jne 0x4b6177
mov al, byte [ecx + esi + 1]
jmp 0x4b6179
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push dword [ebp - 0xc]
push 0
mov dl, byte [esi + eax]
mov al, byte [esi + eax + 1]
push dword [ecx]
mov byte [ebp + 0xb], al
mov ecx, ebx
mov eax, dword [ebp - 0x18]
mov byte [ebp - 1], dl
shr dl, 2
mov al, byte [esi + eax + 2]
add esi, 3
mov byte [ebp + 0x13], al
lea eax, [ebp - 8]
push eax
push edi
mov dword [ebp - 0x14], esi
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b616f
push dword [ebp - 0xc]
mov dl, byte [ebp - 1]
mov ecx, ebx
push eax
mov eax, dword [ebp + 0xc]
and dl, 3
shl dl, 4
push dword [eax]
lea eax, [ebp - 8]
push eax
mov al, byte [ebp + 0xb]
shr al, 4
push edi
or dl, al
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b6167
push dword [ebp - 0xc]
mov dl, byte [ebp + 0xb]
mov ecx, ebx
push eax
mov eax, dword [ebp + 0xc]
and dl, 0xf
shl dl, 2
push dword [eax]
lea eax, [ebp - 8]
push eax
mov al, byte [ebp + 0x13]
shr al, 6
push edi
or dl, al
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b6167
push dword [ebp - 0xc]
mov dl, byte [ebp + 0x13]
mov ecx, ebx
push eax
mov eax, dword [ebp + 0xc]
and dl, 0x3f
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
mov esi, eax
add esp, 0x14
mov eax, dword [ebp - 0x10]
test esi, esi
jne 0x4b600b
sub eax, 3
mov dword [ebp - 0x10], eax
cmp ebx, 2
je 0x4b6159
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
test cl, 0xf
jne 0x4b6159
test eax, eax
je 0x4b622d
push dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
mov dl, 0xa
push 1
mov ecx, ebx
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b616f
mov eax, dword [ebp - 0x10]
cmp eax, 2
ja 0x4b6040
jmp 0x4b600b
mov eax, dword [ebp - 0x10]
jmp 0x4b600b
mov eax, dword [ebp - 0x10]
jmp 0x4b6013
xor al, al
push dword [ebp - 0xc]
mov byte [ebp + 0xb], al
mov ecx, ebx
and al, 0xf
shr dl, 2
shl al, 2
mov byte [ebp - 1], al
mov eax, dword [ebp + 0xc]
push 0
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b6253
push dword [ebp - 0xc]
mov dl, byte [ebp + 0x13]
mov cl, byte [ebp + 0xb]
and dl, 3
push eax
mov eax, dword [ebp + 0xc]
shr cl, 4
shl dl, 4
or dl, cl
mov ecx, ebx
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b6253
cmp dword [ebp - 0x10], 2
mov edx, 0x3d
movzx eax, byte [ebp - 1]
mov ecx, ebx
push dword [ebp - 0xc]
cmove edx, eax
xor eax, eax
cmp dword [ebp - 0x10], 2
setne al
push eax
mov eax, dword [ebp + 0xc]
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b6253
push dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
mov dl, 0x3d
push 1
mov ecx, ebx
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x4b6253
cmp ebx, 2
je 0x4b6253
push dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
mov dl, 0xa
push 1
mov ecx, ebx
push dword [eax]
lea eax, [ebp - 8]
push eax
push edi
call fcn.004b62c0
add esp, 0x14
mov esi, eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 8], eax
je 0x4b626b
test esi, esi
jne 0x4b626b
pop edi
pop esi
mov eax, 0xffffff66
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x4b627d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
cmp dword [eax], ecx
jbe 0x4b627d
mov byte [ecx + edi], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
test esi, esi
jne 0x4b629c
xor eax, eax
mov ecx, 0xffffff36
test edi, edi
pop edi
pop esi
cmove eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffff53
pop ebx
mov esp, ebp
pop ebp
ret