Function at 0x4018e1
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
pushal
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
lea eax, [ebx + 0x4055a1]
push eax
call dword [ebx + 0x40469c]
mov dword [ebp - 4], eax
push edi
push edi
push edi
push 2
push edi
push eax
call dword [ebx + 0x4046bc]
mov dword [ebp - 8], eax
push edi
push edi
push edi
push 4
push eax
call dword [ebx + 0x4046d9]
mov dword [ebp - 0xc], eax
push 4
push 0x3000
push 0x3c00
push edi
call dword [ebx + 0x4044e8]
mov dword [ebx + 0x404fb1], eax
mov esi, dword [ebp - 0xc]
mov edi, dword [ebx + 0x404fb1]
call fcn.0040199b
call 0x4018a9
push edi
push ebx
dec edi
inc ebx
dec ebx
xor esi, dword [edx]
inc esp
dec esp
dec esp
add bh, bh
xchg ebx, eax
cmp dl, byte [ebp + 0x40]
add byte [edi + 0xbe8], dl
add byte [edi + 0x53], dl
inc ecx
push ebx
je 0x40191c
jb 0x401931
jne 0x40192f
add byte [edi - 1], dl
xchg ebx, eax
push ebx
push ebp
inc eax
add byte [ebp + 0x404e1bb3], cl
add byte [esi + 0x68], dl
add al, byte [edx]
add byte [eax], al
call eax
call 0x4018e1
jae 0x40194b
arpl word [ebx + 0x65], bp
je 0x4018e1
push edi
call dword [ebx + 0x405553]
mov dword [ebx + 0x404a5e], eax
call 0x401901
je 0x40195f
outsd dx, dword [esi]
jae 0x40196e
bound edi, qword [ecx + 0x6e]
popal
insd dword es:[edi], dx
add byte gs:[edi - 1], dl
xchg ebx, eax
push ebx
push ebp
inc eax
add al, ch
adc eax, dword [eax]
add byte [eax], al
jo 0x401970
arpl word [ebp + esi + 0x31], si
cmp byte [esi], ch
push 0x652e7469
jne 0x40194b
arpl word cs:[esi], bp
arpl word [esi], bp
call eax
mov esi, dword [eax + 0xc]
lodsd eax, dword [esi]
push dword [eax]
pop dword [ebx + 0x404a75]
call 0x40193b
or byte [eax], al
add byte [eax], al
arpl word [edi + 0x6e], bp
outsb dx, byte [esi]
arpl word gs:[eax + eax + 0x57], si
call dword [ebx + 0x405553]
mov dword [ebx + 0x404a88], eax
call 0x401952
add byte [eax], al
jae 0x4019b4
outsb dx, byte [esi]
add byte fs:[edi - 1], dl
xchg ebx, eax
push ebx
push ebp
inc eax
add byte [ecx + 0x404fad83], cl
add al, ch
or al, 0
add byte [eax], al
call 0x401970
arpl word [edi + ebp*2 + 0x73], bp
jae 0x4019da
arpl word [ebx + 0x65], bp
je 0x401970
push edi
call dword [ebx + 0x405553]
mov dword [ebx + 0x404d22], eax
push dword [ebp - 0xc]
call dword [ebx + 0x4047eb]
push dword [ebp - 8]
call dword [ebx + 0x405592]
push dword [ebp - 4]
call dword [ebx + 0x405592]
popal
leave
ret
cmp ecx, 0x1e00
jae 0x401a4e
xor edx, edx
mov dh, byte [ecx + esi]
inc ecx
cmp ecx, 0x1e00
ror byte [edx - 0x7ebececc], cl
stc
add byte [esi], bl
add byte [eax], al
jae 0x4019c4
mov dl, byte [ecx + esi]
inc ecx
shl edx, 8
cmp ecx, 0x1e00
jae 0x4019d3
mov dl, byte [ecx + esi]
inc ecx
mov eax, edx
and eax, 0xfc0000
shr eax, 0x12
mov al, byte [ebx + eax + 0x404fb5]
stosb byte es:[edi], al
mov eax, edx
and eax, 0x3f000
add cl, al
call 0x3c4a3f3
mov ch, 0x4f
inc eax
add byte [edx + 0x25c28b], ch
lock add eax, dword [eax]
shr eax, 0xc
mov al, byte [ebx + eax + 0x404fb5]
stosb byte es:[edi], al
mov eax, edx
and eax, 0xfc0
shr eax, 6
mov al, byte [ebx + eax + 0x404fb5]
stosb byte es:[edi], al
mov eax, edx
and eax, 0x3f
mov al, byte [ebx + eax + 0x404fb5]
stosb byte es:[edi], al
cmp ecx, 0x1e00
jbe 0x401a23
mov byte [edi - 1], 0x3d
cmp ecx, 0x1e01
jbe 0x401a49
mov byte [edi - 2], 0x3d
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x13
jne 0x4019a7
mov ax, 0xa0d
stosw word es:[edi], ax
mov dword [ebp - 4], 0
jmp 0x4019a7
mov ax, 0xa0d
stosw word es:[edi], ax
leave
ret