Function at 0x49a500
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
xor eax, eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
xor esi, esi
cmp dword [ebp + 0x10], eax
push edi
mov edi, dword [ebp + 0x18]
lea ecx, [ebx + 2]
sete al
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
mov eax, 0xaaaaaaab
mul ecx
mov dword [ebp - 0x10], esi
mov ecx, edx
mov dword [ebp - 0x14], esi
shr ecx, 1
shl ecx, 2
lea eax, [ecx + 0x3f]
shr eax, 6
cmp edi, 1
jne 0x49a546
lea eax, [eax + eax*2]
jmp 0x49a54e
xor edx, edx
cmp edi, 2
cmove eax, edx
add ecx, eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x49a80e
cmp ecx, dword [eax]
mov ecx, dword [ebp + 0x10]
jbe 0x49a56d
test ecx, ecx
jne 0x49a80e
cmp ebx, 2
jbe 0x49a6ad
jmp 0x49a583
mov ecx, dword [ebp + 0x10]
push dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 8]
push 0
push dword [eax]
mov dh, byte [esi + edx]
lea eax, [ebp - 8]
mov dl, byte [esi + edi + 1]
push eax
mov al, dh
mov byte [ebp + 0xf], dl
mov dl, byte [esi + edi + 2]
add esi, 3
mov edi, dword [ebp + 0x18]
shr al, 2
push ecx
movzx eax, al
push eax
push edi
mov byte [ebp - 2], dh
mov byte [ebp - 1], dl
mov dword [ebp - 0x10], esi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a6aa
push dword [ebp - 0xc]
mov ecx, dword [ebp + 0x14]
push eax
lea eax, [ebp - 8]
push dword [ecx]
mov cl, byte [ebp - 2]
push eax
mov al, byte [ebp + 0xf]
and cl, 3
push dword [ebp + 0x10]
shr al, 4
shl cl, 4
or cl, al
movzx eax, cl
push eax
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a6aa
push dword [ebp - 0xc]
mov cl, byte [ebp + 0xf]
push eax
mov eax, dword [ebp + 0x14]
and cl, 0xf
shl cl, 2
push dword [eax]
lea eax, [ebp - 8]
push eax
mov al, byte [ebp - 1]
push dword [ebp + 0x10]
shr al, 6
or cl, al
movzx eax, cl
push eax
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a6aa
push dword [ebp - 0xc]
push eax
mov eax, dword [ebp + 0x14]
push dword [eax]
lea eax, [ebp - 8]
push eax
mov al, byte [ebp - 1]
push dword [ebp + 0x10]
and al, 0x3f
movzx eax, al
push eax
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a6aa
sub ebx, 3
cmp edi, 2
je 0x49a69e
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
test al, 0xf
jne 0x49a69e
test ebx, ebx
je 0x49a69e
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x14]
push 1
push dword [eax]
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x10]
push 0xa
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a6aa
mov eax, dword [ebp + 0x14]
cmp ebx, 2
ja 0x49a580
mov eax, dword [ebp + 0x14]
test ebx, ebx
je 0x49a79c
test esi, esi
jne 0x49a7c6
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
add edx, ecx
mov cl, byte [edx]
mov byte [ebp + 0xf], cl
cmp ebx, 2
jne 0x49a6d4
mov dl, byte [edx + 1]
jmp 0x49a6d6
xor dl, dl
push dword [ebp - 0xc]
mov byte [ebp + 0x1b], dl
and dl, 0xf
push 0
push dword [eax]
lea eax, [ebp - 8]
shl dl, 2
push eax
push dword [ebp + 0x10]
mov al, cl
mov byte [ebp - 2], dl
shr al, 2
movzx eax, al
push eax
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a7c6
push dword [ebp - 0xc]
mov cl, byte [ebp + 0x1b]
push eax
mov eax, dword [ebp + 0x14]
shr cl, 4
push dword [eax]
lea eax, [ebp - 8]
push eax
mov al, byte [ebp + 0xf]
push dword [ebp + 0x10]
and al, 3
shl al, 4
or al, cl
movzx eax, al
push eax
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a7c6
movzx eax, byte [ebp - 2]
cmp ebx, 2
push dword [ebp - 0xc]
mov ecx, 0x3d
cmove ecx, eax
xor eax, eax
cmp ebx, 2
mov byte [ebp + 0x18], cl
mov ebx, dword [ebp + 0x14]
setne al
push eax
lea eax, [ebp - 8]
push dword [ebx]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x18]
push edi
call fcn.0049a410
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x49a7c6
push dword [ebp - 0xc]
lea eax, [ebp - 8]
push 1
push dword [ebx]
push eax
push dword [ebp + 0x10]
push 0x3d
push edi
call fcn.0049a410
add esp, 0x1c
mov esi, eax
jmp 0x49a79f
mov ebx, dword [ebp + 0x14]
test esi, esi
jne 0x49a7c6
cmp edi, 2
je 0x49a7c6
push dword [ebp - 0xc]
lea eax, [ebp - 8]
push 1
push dword [ebx]
mov ebx, dword [ebp + 0x10]
push eax
push ebx
push 0xa
push edi
call fcn.0049a410
add esp, 0x1c
mov esi, eax
jmp 0x49a7c9
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 8], eax
je 0x49a7e6
cmp edi, 1
je 0x49a7e6
test esi, esi
jne 0x49a7e6
pop edi
pop esi
mov eax, 0xffffff66
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
test esi, esi
jne 0x49a805
xor eax, eax
mov ecx, 0xffffff36
pop edi
test ebx, ebx
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