Function at 0x4cb780
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov ebp, dword [esi]
mov esi, dword [edx]
mov dword [esp + 0x28], edi
mov ebx, dword [esp + 0x50]
add esi, edi
add ebp, eax
mov dword [esp + 0x2c], esi
cmp eax, ebp
jae 0x4cbaa8
mov dword [esp + 0x54], eax
mov edx, eax
xor esi, esi
mov dword [esp + 0x5c], edi
cmp byte [edx], 0
je 0x4cb96e
mov eax, dword [esp + 0x28]
add eax, 3
cmp dword [esp + 0x2c], eax
jb 0x4cb96e
mov edi, dword [ebx + 0xc]
cmp edx, ebp
jae 0x4cb8c4
cmp edi, 3
jg 0x4cb8c4
mov dword [ebx + 0x10], 0
cmp edx, ebp
jae 0x4cba69
mov dword [esp + 0x24], edi
xor ecx, ecx
mov edi, ebx
lea esi, cs:[esi]
lea esi, [esi]
movzx eax, byte [edx]
test al, al
je 0x4cbab1
test cl, cl
jne 0x4cbab1
movzx ecx, al
add edx, 1
mov dword [edi + 0x10], ecx
cmp al, 0xa
je 0x4cb9f0
cmp al, 0x3d
je 0x4cb9f8
lea ebx, [eax - 0x30]
cmp bl, 9
jbe 0x4cb9a8
lea ebx, [eax - 0x41]
cmp bl, 0x19
jbe 0x4cb9a8
lea ebx, [eax - 0x61]
cmp bl, 0x19
jbe 0x4cb9a8
lea ebx, [eax - 0x2b]
and ebx, 0xfd
je 0x4cba00
cmp al, 0x5f
je 0x4cb87b
cmp al, 0x2f
jne 0x4cba78
test esi, esi
jne 0x4cba40
cmp al, 0x5f
jne 0x4cb9b0
mov ebx, edi
mov ecx, 0x40
mov edi, dword [esp + 0x24]
mov dword [ebx + 0x10], 0x2f
mov esi, dword [ebx + 0x10]
test esi, esi
jne 0x4cba25
mov byte [ebx + edi], 0
add edi, 1
mov dword [ebx + 0xc], edi
cmp edi, 4
je 0x4cb8d5
cmp edx, ebp
jae 0x4cb8c4
cmp byte [edx], 0
jne 0x4cb7ed
cmp edi, 4
je 0x4cb8d5
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4cb966
mov eax, dword [ebx + 8]
mov dword [ebx + 0xc], 0
cmp eax, 1
ja 0x4cb8ed
mov ecx, dword [esp + 0x28]
cmp esi, 1
jle 0x4cb90c
mov eax, dword [esp + 0x28]
movzx edi, byte [ebx]
lea ecx, [eax + 1]
movzx eax, byte [ebx + 1]
shl edi, 2
shr al, 4
or eax, edi
mov edi, dword [esp + 0x28]
mov byte [edi], al
mov eax, dword [ebx + 8]
cmp eax, 2
ja 0x4cb919
mov dword [esp + 0x28], ecx
test esi, esi
je 0x4cb955
lea eax, [ecx + 1]
movzx edi, byte [ebx + 1]
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 2]
shl edi, 4
shr al, 2
or eax, edi
mov byte [ecx], al
mov eax, dword [ebx + 8]
cmp eax, 3
jbe 0x4cb955
test esi, esi
jne 0x4cb955
lea eax, [ecx + 2]
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 2]
shl eax, 6
or al, byte [ebx + 3]
mov byte [ecx + 1], al
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebx + 8], 0
lea eax, [eax + ecx - 1]
mov dword [ebx + 4], eax
cmp edx, ebp
jb 0x4cb7bf
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
sub edx, eax
mov eax, dword [esp + 0x28]
sub eax, edi
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp edi, esi
jae 0x4cb98d
mov byte [edi], 0
mov edi, dword [esp + 0x58]
mov dword [edi], edx
mov edi, dword [esp + 0x60]
mov dword [edi], eax
add esp, 0x3c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
test esi, esi
jne 0x4cba40
movzx ecx, byte [ecx + 0xebf655]
test cl, cl
je 0x4cb9c4
cmp cl, 0x24
jne 0x4cbac6
xor ecx, ecx
xor esi, esi
cmp ebp, edx
jne 0x4cb810
mov ebx, edi
mov edi, dword [esp + 0x24]
add dword [ebx + 8], 1
test cl, cl
je 0x4cb8ac
sub ecx, 1
mov byte [ebx + edi], cl
jmp 0x4cb8ac
xor ecx, ecx
jmp 0x4cb9c8
add esi, 1
xor ecx, ecx
jmp 0x4cb9c8
mov ebx, edi
mov edi, dword [esp + 0x24]
test esi, esi
jne 0x4cba40
cmp al, 0x2d
jne 0x4cba15
mov dword [ebx + 0x10], 0x2b
mov esi, dword [ebx + 0x10]
mov ecx, 0x3f
test esi, esi
je 0x4cb8a8
sub ecx, 1
add dword [ebx + 8], 1
xor esi, esi
mov byte [ebx + edi], cl
jmp 0x4cb8ac
mov dword [esp + 8], 0xebf654
mov dword [esp + 4], 0xebf601
mov dword [esp], 1
call fcn.0048dfc0
add esp, 0x3c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [ebx + edi], 0
add edi, 1
mov dword [ebx + 0xc], edi
jmp 0x4cb8c4
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ecx
sub edx, eax
mov dword [esp + 8], 0xebf654
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0xebf5e0
mov dword [esp], 1
call fcn.0048dfc0
jmp 0x4cba5c
xor eax, eax
xor edx, edx
jmp 0x4cb97e
mov ebx, edi
mov edi, dword [esp + 0x24]
cmp dword [ebx + 0x10], 0
je 0x4cb8a8
jmp 0x4cb9d6
sub ecx, 0x3d
xor esi, esi
jmp 0x4cb9c8