Function at 0x4bb914
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 0x4bb930
call fcn.00403b7c
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 4
jno 0x4bb944
call fcn.00403b7c
mov eax, dword [ebp + 8]
call fcn.00405088
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, 1
dec edx
test eax, eax
je 0x4bb963
cmp edx, dword [eax - 4]
jb 0x4bb968
call fcn.00403b74
inc edx
lea eax, [eax + edx - 1]
push eax
imul eax, dword [ebp - 0xc], 4
jno 0x4bb979
call fcn.00403b7c
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 2
jno 0x4bb98d
call fcn.00403b7c
xor ecx, ecx
pop eax
call fcn.004032f0
cmp byte [ebp - 1], 0
jne 0x4bb9f8
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, 1
dec edx
test eax, eax
je 0x4bb9b2
cmp edx, dword [eax - 4]
jb 0x4bb9b7
call fcn.00403b74
inc edx
mov ecx, dword [ebp - 0xc]
sub ecx, 1
jno 0x4bb9c5
call fcn.00403b7c
and ecx, 0x3f
add ecx, 0x21
jno 0x4bb9d2
call fcn.00403b7c
mov byte [eax + edx - 1], cl
mov eax, dword [ebp - 0xc]
add eax, 2
jno 0x4bb9e3
call fcn.00403b7c
mov ecx, 3
cdq
idiv ecx
imul eax, eax, 3
jno 0x4bb9f5
call fcn.00403b7c
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 0x4bba16
sub al, 2
jb 0x4bba1f
jmp 0x4bba26
mov dword [ebp - 0x18], 2
jmp 0x4bba26
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bba3b
cmp edx, dword [eax - 4]
jb 0x4bba40
call fcn.00403b74
inc edx
mov byte [eax + edx - 1], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge 0x4bbc19
cmp dword [ebp - 0x10], 0
jle 0x4bbaf0
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bba71
cmp edx, dword [eax - 4]
jb 0x4bba76
call fcn.00403b74
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 0x4bbaa4
cmp ecx, dword [esi - 4]
jb 0x4bbaa9
call fcn.00403b74
inc ecx
movzx ecx, byte [esi + ecx - 1]
or ebx, ecx
mov byte [eax + edx - 1], bl
sub dword [ebp - 0x10], 6
jno 0x4bbac0
call fcn.00403b7c
add dword [ebp - 0x18], 1
jno 0x4bbacb
call fcn.00403b7c
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bbae0
cmp edx, dword [eax - 4]
jb 0x4bbae5
call fcn.00403b74
inc edx
mov byte [eax + edx - 1], 0
jmp 0x4bbc0d
cmp dword [ebp - 0x10], 0
jge 0x4bbb87
mov eax, dword [ebp - 0x10]
cdq
xor eax, edx
sub eax, edx
jno 0x4bbb09
call fcn.00403b7c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bbb21
cmp edx, dword [eax - 4]
jb 0x4bbb26
call fcn.00403b74
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 0x4bbb54
cmp ecx, dword [esi - 4]
jb 0x4bbb59
call fcn.00403b74
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 0x4bbb74
call fcn.00403b7c
mov dword [ebp - 0x10], eax
add dword [ebp - 0x14], 1
jno 0x4bbb82
call fcn.00403b7c
jmp 0x4bbc0d
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bbb9c
cmp edx, dword [eax - 4]
jb 0x4bbba1
call fcn.00403b74
inc edx
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
dec ecx
test ebx, ebx
je 0x4bbbb4
cmp ecx, dword [ebx - 4]
jb 0x4bbbb9
call fcn.00403b74
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 0x4bbbdb
call fcn.00403b7c
add dword [ebp - 0x14], 1
jno 0x4bbbe6
call fcn.00403b7c
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bbbfb
cmp edx, dword [eax - 4]
jb 0x4bbc00
call fcn.00403b74
inc edx
mov byte [eax + edx - 1], 0
mov dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x4bba52
mov al, byte [ebp - 1]
sub al, 1
jb 0x4bbc2d
sub al, 2
jb 0x4bbcc2
jmp 0x4bbd83
cmp dword [ebp - 0x10], 2
jne 0x4bbc3e
sub dword [ebp - 0x18], 1
jno 0x4bbc3e
call fcn.00403b7c
mov eax, dword [ebp - 0x18]
sub eax, 2
jl 0x4bbd83
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 2
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x1c]
dec edx
test eax, eax
je 0x4bbc6a
cmp edx, dword [eax - 4]
jb 0x4bbc6f
call fcn.00403b74
inc edx
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
dec ecx
test ebx, ebx
je 0x4bbc82
cmp ecx, dword [ebx - 4]
jb 0x4bbc87
call fcn.00403b74
inc ecx
movzx ecx, byte [ebx + ecx - 1]
add ecx, 1
jno 0x4bbc97
call fcn.00403b7c
mov ebx, dword [0x51780c]
dec ecx
test ebx, ebx
je 0x4bbca7
cmp ecx, dword [ebx - 4]
jb 0x4bbcac
call fcn.00403b74
inc ecx
mov cl, byte [ebx + ecx - 1]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x4bbc55
jmp 0x4bbd83
cmp dword [ebp - 0x10], 2
jne 0x4bbcd3
sub dword [ebp - 0x18], 1
jno 0x4bbcd3
call fcn.00403b7c
mov eax, dword [ebp - 0x18]
test eax, eax
jle 0x4bbd7d
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x1c]
dec edx
test eax, eax
je 0x4bbcfd
cmp edx, dword [eax - 4]
jb 0x4bbd02
call fcn.00403b74
inc edx
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
dec ecx
test ebx, ebx
je 0x4bbd15
cmp ecx, dword [ebx - 4]
jb 0x4bbd1a
call fcn.00403b74
inc ecx
movzx ecx, byte [ebx + ecx - 1]
add ecx, 1
jno 0x4bbd2a
call fcn.00403b7c
mov ebx, dword [0x517810]
dec ecx
test ebx, ebx
je 0x4bbd3a
cmp ecx, dword [ebx - 4]
jb 0x4bbd3f
call fcn.00403b74
inc ecx
mov cl, byte [ebx + ecx - 1]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x4bbce8
jmp 0x4bbd7d
add dword [ebp - 0x18], 1
jno 0x4bbd5d
call fcn.00403b7c
mov eax, dword [ebp + 8]
call fcn.00404f54
mov edx, dword [ebp - 0x18]
dec edx
test eax, eax
je 0x4bbd72
cmp edx, dword [eax - 4]
jb 0x4bbd77
call fcn.00403b74
inc edx
mov byte [eax + edx - 1], 0x3d
test byte [ebp - 0x18], 3
jne 0x4bbd52
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
call fcn.00405088
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4