Function at 0x404750
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x5c911c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x18]
lea edi, [ebp - 0x48]
mov ecx, 0x10
mov ebx, dword [ebp + 0x10]
mov esi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dword [ebp - 0x5c], eax
rep movsd dword es:[edi], dword [esi]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x4c], eax
movsb byte es:[edi], byte [esi]
xor edi, edi
mov dword [ebp - 0x50], edi
cmp dword [ebp + 8], eax
je 0x404940
test ebx, ebx
je 0x404940
mov esi, dword [ebp + 0xc]
mov eax, 0x55555556
lea edx, [esi + 2]
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
shl eax, 2
cmp dword [ebp + 0x14], eax
jl 0x404940
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x58], eax
test eax, eax
jle 0x404878
mov dword [ebp - 0x54], eax
jmp 0x4047e0
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp + 8]
movzx edx, byte [eax + edi]
movzx esi, byte [eax + edi + 1]
movzx edi, byte [eax + edi + 2]
add eax, 3
mov dword [ebp - 0x50], eax
mov eax, edx
shr eax, 2
and edx, 3
shl edx, 4
movzx eax, byte [ebp + eax - 0x48]
mov byte [ebx + ecx], al
mov eax, esi
shr eax, 4
and esi, 0xf
or edx, eax
shl esi, 2
movzx eax, byte [ebp + edx - 0x48]
mov edx, dword [ebp + 0x1c]
mov byte [ebx + ecx + 1], al
mov eax, edi
shr eax, 6
and edi, 0x3f
or eax, esi
movzx eax, byte [ebp + eax - 0x48]
mov byte [ebx + ecx + 2], al
movzx eax, byte [ebp + edi - 0x48]
mov byte [ebx + ecx + 3], al
add ecx, 4
mov eax, dword [ebp - 0x4c]
add eax, 4
mov dword [ebp - 0x4c], eax
test edx, edx
je 0x404865
cmp eax, 0x49
jl 0x404865
mov word [ebx + ecx], 0xa0d
add ecx, 2
xor eax, eax
mov dword [ebp - 0x4c], eax
sub dword [ebp - 0x54], 1
jne 0x4047e0
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x58]
lea eax, [eax + eax*2]
sub esi, eax
sub esi, 0
je 0x40490f
sub esi, 1
je 0x4048dd
sub esi, 1
jne 0x40491c
mov eax, dword [ebp + 8]
movzx edx, byte [edi + eax]
movzx esi, byte [edi + eax + 1]
mov eax, edx
shr eax, 2
and edx, 3
shl edx, 4
movzx eax, byte [ebp + eax - 0x48]
mov byte [ebx + ecx], al
mov eax, esi
shr eax, 4
and esi, 0xf
or edx, eax
movzx eax, byte [ebp + edx - 0x48]
mov byte [ebx + ecx + 1], al
movzx eax, byte [ebp + esi*4 - 0x48]
mov byte [ebx + ecx + 2], al
mov byte [ebx + ecx + 3], 0x3d
add ecx, 4
cmp dword [ebp + 0x1c], 0
jmp 0x404911
mov eax, dword [ebp + 8]
movzx edx, byte [edi + eax]
mov eax, edx
and edx, 3
shr eax, 2
add edx, edx
movzx eax, byte [ebp + eax - 0x48]
mov byte [ebx + ecx], al
movzx eax, byte [ebp + edx*8 - 0x48]
mov byte [ebx + ecx + 1], al
mov word [ebx + ecx + 2], 0x3d3d
add ecx, 4
cmp dword [ebp + 0x1c], 0
jmp 0x404911
test edx, edx
je 0x40491c
mov word [ebx + ecx], 0xa0d
add ecx, 2
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
cmp ecx, dword [ebp + 0x14]
jge 0x40492a
mov byte [ebx + ecx], 0
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00547e39
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00547e39
mov esp, ebp
pop ebp
ret