Function at 0x4b5d30
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 0x4b6035
cmp edx, dword [ecx]
jbe 0x4b5d93
test edi, edi
jne 0x4b6035
mov eax, dword [ebp - 0x10]
cmp eax, 2
ja 0x4b5dd3
test eax, eax
je 0x4b5fbd
test esi, esi
jne 0x4b5fe3
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov dl, byte [ecx + esi]
mov byte [ebp + 0x13], dl
cmp eax, 2
jne 0x4b5f07
mov al, byte [ecx + esi + 1]
jmp 0x4b5f09
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5eff
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5ef7
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5ef7
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.004b6050
mov esi, eax
add esp, 0x14
mov eax, dword [ebp - 0x10]
test esi, esi
jne 0x4b5d9b
sub eax, 3
mov dword [ebp - 0x10], eax
cmp ebx, 2
je 0x4b5ee9
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
test cl, 0xf
jne 0x4b5ee9
test eax, eax
je 0x4b5fbd
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5eff
mov eax, dword [ebp - 0x10]
cmp eax, 2
ja 0x4b5dd0
jmp 0x4b5d9b
mov eax, dword [ebp - 0x10]
jmp 0x4b5d9b
mov eax, dword [ebp - 0x10]
jmp 0x4b5da3
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5fe3
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5fe3
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.004b6050
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4b5fe3
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.004b6050
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x4b5fe3
cmp ebx, 2
je 0x4b5fe3
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.004b6050
add esp, 0x14
mov esi, eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 8], eax
je 0x4b5ffb
test esi, esi
jne 0x4b5ffb
pop edi
pop esi
mov eax, 0xffffff66
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x4b600d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
cmp dword [eax], ecx
jbe 0x4b600d
mov byte [ecx + edi], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
test esi, esi
jne 0x4b602c
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