Function at 0x4cf258
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov byte [ebp - 1], al
imul eax, dword [ebp - 0xc], 4
jno 0x4cf274
call fcn.00403b6c
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 4
jno 0x4cf288
call fcn.00403b6c
mov eax, dword [ebp + 8]
call fcn.00405078
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, 1
dec edx
test eax, eax
je 0x4cf2a7
cmp edx, dword [eax - 4]
jb 0x4cf2ac
call fcn.00403b64
inc edx
lea eax, [eax + edx - 1]
push eax
imul eax, dword [ebp - 0xc], 4
jno 0x4cf2bd
call fcn.00403b6c
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 2
jno 0x4cf2d1
call fcn.00403b6c
xor ecx, ecx
pop eax
call fcn.00403304
cmp byte [ebp - 1], 0
jne 0x4cf33c
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, 1
dec edx
test eax, eax
je 0x4cf2f6
cmp edx, dword [eax - 4]
jb 0x4cf2fb
call fcn.00403b64
inc edx
mov ecx, dword [ebp - 0xc]
sub ecx, 1
jno 0x4cf309
call fcn.00403b6c
and ecx, 0x3f
add ecx, 0x21
jno 0x4cf316
call fcn.00403b6c
mov byte [eax + edx - 1], cl
mov eax, dword [ebp - 0xc]
add eax, 2
jno 0x4cf327
call fcn.00403b6c
mov ecx, 3
cdq
idiv ecx
imul eax, eax, 3
jno 0x4cf339
call fcn.00403b6c
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 2
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 1]
sub al, 1
jb 0x4cf35a
sub al, 2
jb 0x4cf363
jmp 0x4cf36a
mov dword [ebp - 0x18], 2
jmp 0x4cf36a
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf37f
cmp edx, dword [eax - 4]
jb 0x4cf384
call fcn.00403b64
inc edx
mov byte [eax + edx - 1], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge 0x4cf55d
cmp dword [ebp - 0x10], 0
jle 0x4cf434
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf3b5
cmp edx, dword [eax - 4]
jb 0x4cf3ba
call fcn.00403b64
inc edx
mov ecx, dword [ebp - 0x10]
mov ebx, 0x3f
shl ebx, cl
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
movzx ecx, byte [ecx + esi]
and ebx, ecx
mov ecx, dword [ebp - 0x10]
shr ebx, cl
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
mov esi, dword [esi]
dec ecx
test esi, esi
je 0x4cf3e8
cmp ecx, dword [esi - 4]
jb 0x4cf3ed
call fcn.00403b64
inc ecx
movzx ecx, byte [esi + ecx - 1]
or ebx, ecx
mov byte [eax + edx - 1], bl
sub dword [ebp - 0x10], 6
jno 0x4cf404
call fcn.00403b6c
add dword [ebp - 0x18], 1
jno 0x4cf40f
call fcn.00403b6c
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf424
cmp edx, dword [eax - 4]
jb 0x4cf429
call fcn.00403b64
inc edx
mov byte [eax + edx - 1], 0
jmp 0x4cf551
cmp dword [ebp - 0x10], 0
jge 0x4cf4cb
mov eax, dword [ebp - 0x10]
cdq
xor eax, edx
sub eax, edx
jno 0x4cf44d
call fcn.00403b6c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf465
cmp edx, dword [eax - 4]
jb 0x4cf46a
call fcn.00403b64
inc edx
mov ecx, dword [ebp - 0x10]
mov ebx, 0x3f
shr ebx, cl
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
movzx ecx, byte [ecx + esi]
and ebx, ecx
mov ecx, dword [ebp - 0x10]
shl ebx, cl
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
mov esi, dword [esi]
dec ecx
test esi, esi
je 0x4cf498
cmp ecx, dword [esi - 4]
jb 0x4cf49d
call fcn.00403b64
inc ecx
movzx ecx, byte [esi + ecx - 1]
or ebx, ecx
mov byte [eax + edx - 1], bl
mov eax, 8
sub eax, dword [ebp - 0x10]
jno 0x4cf4b8
call fcn.00403b6c
mov dword [ebp - 0x10], eax
add dword [ebp - 0x14], 1
jno 0x4cf4c6
call fcn.00403b6c
jmp 0x4cf551
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf4e0
cmp edx, dword [eax - 4]
jb 0x4cf4e5
call fcn.00403b64
inc edx
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
dec ecx
test ebx, ebx
je 0x4cf4f8
cmp ecx, dword [ebx - 4]
jb 0x4cf4fd
call fcn.00403b64
inc ecx
mov cl, byte [ebx + ecx - 1]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
mov bl, byte [ebx + esi]
and bl, 0x3f
or cl, bl
mov byte [eax + edx - 1], cl
add dword [ebp - 0x18], 1
jno 0x4cf51f
call fcn.00403b6c
add dword [ebp - 0x14], 1
jno 0x4cf52a
call fcn.00403b6c
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf53f
cmp edx, dword [eax - 4]
jb 0x4cf544
call fcn.00403b64
inc edx
mov byte [eax + edx - 1], 0
mov dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x4cf396
mov al, byte [ebp - 1]
sub al, 1
jb 0x4cf571
sub al, 2
jb 0x4cf606
jmp 0x4cf6c7
cmp dword [ebp - 0x10], 2
jne 0x4cf582
sub dword [ebp - 0x18], 1
jno 0x4cf582
call fcn.00403b6c
mov eax, dword [ebp - 0x18]
sub eax, 2
jl 0x4cf6c7
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 2
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x1c]
dec edx
test eax, eax
je 0x4cf5ae
cmp edx, dword [eax - 4]
jb 0x4cf5b3
call fcn.00403b64
inc edx
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
dec ecx
test ebx, ebx
je 0x4cf5c6
cmp ecx, dword [ebx - 4]
jb 0x4cf5cb
call fcn.00403b64
inc ecx
movzx ecx, byte [ebx + ecx - 1]
add ecx, 1
jno 0x4cf5db
call fcn.00403b6c
mov ebx, dword [0x502150]
dec ecx
test ebx, ebx
je 0x4cf5eb
cmp ecx, dword [ebx - 4]
jb 0x4cf5f0
call fcn.00403b64
inc ecx
mov cl, byte [ebx + ecx - 1]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x4cf599
jmp 0x4cf6c7
cmp dword [ebp - 0x10], 2
jne 0x4cf617
sub dword [ebp - 0x18], 1
jno 0x4cf617
call fcn.00403b6c
mov eax, dword [ebp - 0x18]
test eax, eax
jle 0x4cf6c1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x1c]
dec edx
test eax, eax
je 0x4cf641
cmp edx, dword [eax - 4]
jb 0x4cf646
call fcn.00403b64
inc edx
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
dec ecx
test ebx, ebx
je 0x4cf659
cmp ecx, dword [ebx - 4]
jb 0x4cf65e
call fcn.00403b64
inc ecx
movzx ecx, byte [ebx + ecx - 1]
add ecx, 1
jno 0x4cf66e
call fcn.00403b6c
mov ebx, dword [0x502154]
dec ecx
test ebx, ebx
je 0x4cf67e
cmp ecx, dword [ebx - 4]
jb 0x4cf683
call fcn.00403b64
inc ecx
mov cl, byte [ebx + ecx - 1]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x4cf62c
jmp 0x4cf6c1
add dword [ebp - 0x18], 1
jno 0x4cf6a1
call fcn.00403b6c
mov eax, dword [ebp + 8]
call fcn.00404f44
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4cf6b6
cmp edx, dword [eax - 4]
jb 0x4cf6bb
call fcn.00403b64
inc edx
mov byte [eax + edx - 1], 0x3d
test byte [ebp - 0x18], 3
jne 0x4cf696
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
call fcn.00405078
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4