Function at 0x428789
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ecx, dword [esp + 0x34]
mov eax, ecx
and eax, 0xfffffff9
cmp eax, 1
jne 0x428975
mov ebx, dword [esp + 0x30]
mov edx, 0xaaaaaaab
mov eax, ebx
mul edx
mov esi, edx
mov edi, dword [esp + 0x28]
shr esi, 1
lea edx, [esi + esi*2]
shl esi, 2
sub ebx, edx
je 0x4287d2
test cl, 2
jne 0x4287cb
add esi, 4
jmp 0x4287d2
shr ebx, 1
or esi, 2
add esi, ebx
cmp esi, edi
jae 0x428975
mov ebx, dword [esp + 0x24]
test cl, 4
jne 0x428885
cmp dword [esp + 0x30], 0
je 0x428913
mov dword [esp], esi
xor edi, edi
xor ecx, ecx
xor eax, eax
xor ebp, ebp
shl edi, 8
or ecx, 8
add ecx, 0xfffffffa
mov ebx, eax
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
mov esi, edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], ebx
movzx eax, byte [eax + ebx]
mov dword [esp + 4], eax
or edi, eax
shr esi, 2
lea eax, [esi + ebp + 1]
mov dword [esp + 0xc], eax
inc esi
add ebp, dword [esp + 0x24]
mov ebx, ecx
mov eax, edi
mov ecx, ebx
shr eax, cl
and eax, 0x3f
mov ecx, eax
call fcn.004289eb
mov byte [ebp], al
add ebx, 0xfffffffa
inc ebp
dec esi
jne 0x428837
mov eax, dword [esp + 8]
inc eax
lea ecx, [ebx + 6]
cmp eax, dword [esp + 0x30]
mov ebp, dword [esp + 0xc]
jne 0x4287fd
cmp ebx, 0xfffffffa
je 0x428906
neg bl
mov ecx, ebx
mov eax, dword [esp + 4]
shl eax, cl
and eax, 0x3f
mov ecx, eax
call fcn.004289eb
jmp 0x42892b
cmp dword [esp + 0x30], 0
je 0x428913
mov dword [esp], esi
xor edi, edi
xor ecx, ecx
xor eax, eax
xor ebp, ebp
shl edi, 8
or ecx, 8
add ecx, 0xfffffffa
mov ebx, eax
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
mov esi, edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], ebx
movzx eax, byte [eax + ebx]
mov dword [esp + 4], eax
or edi, eax
shr esi, 2
lea eax, [esi + ebp + 1]
mov dword [esp + 0xc], eax
inc esi
add ebp, dword [esp + 0x24]
mov ebx, ecx
mov eax, edi
mov ecx, ebx
shr eax, cl
and eax, 0x3f
mov ecx, eax
call 0x42897a
mov byte [ebp], al
add ebx, 0xfffffffa
inc ebp
dec esi
jne 0x4288d5
mov eax, dword [esp + 8]
inc eax
lea ecx, [ebx + 6]
cmp eax, dword [esp + 0x30]
mov ebp, dword [esp + 0xc]
jne 0x42889b
cmp ebx, 0xfffffffa
jne 0x428917
mov esi, dword [esp]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
jmp 0x42893a
xor ebp, ebp
jmp 0x42893a
neg bl
mov ecx, ebx
mov eax, dword [esp + 4]
shl eax, cl
and eax, 0x3f
mov ecx, eax
call 0x42897a
mov esi, dword [esp]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov byte [ebx + ebp], al
inc ebp
mov eax, esi
sub eax, ebp
jbe 0x428950
add ebp, ebx
push eax
push 0x3d
push ebp
call fcn.0042bc6d
add esp, 0xc
jmp 0x428952
mov esi, ebp
lea eax, [ebx + esi]
lea ecx, [esi + 1]
cmp edi, ecx
cmova ecx, edi
sub ecx, esi
push ecx
push 0
push eax
call fcn.0042bc6d
add esp, 0xc
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00428ea1
push ebp
push ebx
push edi
push esi
lea esi, [ecx + 0xffe6]
shr esi, 8
mov edi, 0xff
and esi, edi
lea eax, [ecx + 0x41]
and eax, esi
xor esi, edi
lea ebx, [ecx + 0xffcc]
shr ebx, 8
lea edx, [ecx + 0x47]
and edx, ebx
not ebx
and edx, esi
lea ebp, [ecx + 0xffc2]
shr ebp, 8
lea esi, [ecx + 0xfc]
and esi, ebp
and esi, ebx
and esi, edi
mov edi, ecx
xor edi, 0x3fc1
inc edi
not edi
shr edi, 8
and edi, 0x2d
or edi, eax
xor ecx, 0x7fc0
lea eax, [ecx + 1]
not eax
shr eax, 8
and eax, 0x5f
or eax, edx
or eax, edi
or eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret