Function at 0x402f40
Capabilities:
Encode data using base64
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0
push 0
push 3
push 0
push 3
push connect
lea eax, [edx + 0x2b7]
mov esi, ecx
push eax
mov dword [ebp - 0x460], esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x45c], eax
cmp eax, 0xffffffff
jne 0x402f97
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004062eb
mov esp, ebp
pop ebp
ret
push ebx
push edi
xor edx, edx
xor edi, edi
xor ecx, ecx
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x450], edx
mov dword [ebp - 0x458], eax
nop
cmp ecx, edx
jb 0x402fe5
push 0
lea eax, [ebp - 0x450]
push eax
push 0x400
lea eax, [ebp - 0x448]
push eax
push dword [ebp - 0x45c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp - 0x450]
test edx, edx
je 0x4030fd
xor ecx, ecx
mov al, byte [ebp + ecx - 0x448]
mov byte [ebp + edi - 0x44c], al
inc edi
inc ecx
mov dword [ebp - 0x464], ecx
cmp edi, 3
jne 0x402fb0
movzx edx, byte [ebp - 0x44b]
mov ecx, 0x10
mov esi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea edi, [ebp - 0x48]
rep movsd dword es:[edi], dword [esi]
movzx ecx, byte [ebp - 0x44c]
mov eax, ecx
shr eax, 2
movsb byte es:[edi], byte [esi]
mov al, byte [ebp + eax - 0x48]
mov esi, dword [ebp - 0x460]
mov byte [ebp - 0x452], al
and ecx, 3
mov eax, edx
shr eax, 4
shl ecx, 4
or eax, ecx
movzx ecx, byte [ebp - 0x44a]
mov al, byte [ebp + eax - 0x48]
mov byte [ebp - 0x451], al
mov eax, ecx
shr eax, 6
and edx, 0xf
shl edx, 2
or eax, edx
and ecx, 0x3f
mov dl, byte [ebp + eax - 0x48]
mov al, byte [ebp - 0x452]
mov ch, byte [ebp + ecx - 0x48]
mov byte [esi + ebx], al
mov eax, dword [ebp - 0x458]
inc eax
inc ebx
cmp eax, 0x4c
jb 0x40308a
mov word [esi + ebx], 0xa0d
add ebx, 2
xor eax, eax
mov cl, byte [ebp - 0x451]
mov byte [esi + ebx], cl
inc eax
inc ebx
cmp eax, 0x4c
jb 0x4030a5
mov word [esi + ebx], 0xa0d
add ebx, 2
xor eax, eax
mov byte [esi + ebx], dl
inc eax
inc ebx
cmp eax, 0x4c
jb 0x4030ba
mov word [esi + ebx], 0xa0d
add ebx, 2
xor eax, eax
inc eax
mov byte [esi + ebx], ch
inc ebx
mov dword [ebp - 0x458], eax
cmp eax, 0x4c
jb 0x4030db
mov word [esi + ebx], 0xa0d
add ebx, 2
xor eax, eax
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x464]
mov edx, dword [ebp - 0x450]
xor eax, eax
mov word [ebp - 0x44c], ax
mov byte [ebp - 0x44a], al
xor edi, edi
jmp 0x402fb0
mov dword [ebp - 0x458], edi
test edi, edi
je 0x4031a1
movzx edx, byte [ebp - 0x44a]
mov ecx, 0x10
mov esi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea edi, [ebp - 0x48]
rep movsd dword es:[edi], dword [esi]
movzx ecx, byte [ebp - 0x44c]
movsb byte es:[edi], byte [esi]
movzx esi, byte [ebp - 0x44b]
mov eax, ecx
shr eax, 2
and ecx, 3
mov al, byte [ebp + eax - 0x48]
mov byte [ebp - 0x451], al
mov eax, esi
shr eax, 4
shl ecx, 4
or eax, ecx
mov cl, byte [ebp - 0x451]
mov ch, byte [ebp + eax - 0x48]
and esi, 0xf
mov eax, edx
shr eax, 6
and edx, 0x3f
shl esi, 2
movzx edx, byte [ebp + edx - 0x48]
or eax, esi
cmp dword [ebp - 0x458], 3
movzx eax, byte [ebp + eax - 0x48]
mov esi, dword [ebp - 0x460]
mov edi, 0x3d
cmovb edx, edi
cmp dword [ebp - 0x458], 2
mov byte [esi + ebx], cl
cmovb eax, edi
mov byte [esi + ebx + 1], ch
mov byte [esi + ebx + 2], al
mov byte [esi + ebx + 3], dl
add ebx, 4
push dword [ebp - 0x45c]
mov byte [esi + ebx], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop edi
pop ebx
xor ecx, ebp
xor eax, eax
pop esi
call fcn.004062eb
mov esp, ebp
pop ebp
ret