Function at 0x1005ce30
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 0x1005d135
cmp edx, dword [ecx]
jbe 0x1005ce93
test edi, edi
jne 0x1005d135
mov eax, dword [ebp - 0x10]
cmp eax, 2
ja 0x1005ced3
test eax, eax
je 0x1005d0bd
test esi, esi
jne 0x1005d0e3
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov dl, byte [ecx + esi]
mov byte [ebp + 0x13], dl
cmp eax, 2
jne 0x1005d007
mov al, byte [ecx + esi + 1]
jmp 0x1005d009
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005cfff
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005cff7
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005cff7
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.1005cd30
mov esi, eax
add esp, 0x14
mov eax, dword [ebp - 0x10]
test esi, esi
jne 0x1005ce9b
sub eax, 3
mov dword [ebp - 0x10], eax
cmp ebx, 2
je 0x1005cfe9
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
test cl, 0xf
jne 0x1005cfe9
test eax, eax
je 0x1005d0bd
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005cfff
mov eax, dword [ebp - 0x10]
cmp eax, 2
ja 0x1005ced0
jmp 0x1005ce9b
mov eax, dword [ebp - 0x10]
jmp 0x1005ce9b
mov eax, dword [ebp - 0x10]
jmp 0x1005cea3
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005d0e3
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005d0e3
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.1005cd30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1005d0e3
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.1005cd30
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x1005d0e3
cmp ebx, 2
je 0x1005d0e3
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.1005cd30
add esp, 0x14
mov esi, eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 8], eax
je 0x1005d0fb
test esi, esi
jne 0x1005d0fb
pop edi
pop esi
mov eax, 0xffffff66
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x1005d10d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
cmp dword [eax], ecx
jbe 0x1005d10d
mov byte [ecx + edi], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
test esi, esi
jne 0x1005d12c
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