Function at 0x401240
Capabilities:
Encode data using base64

Disassembly:
push 0xffffffffffffffff
push 0x446391
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e508]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x34], ebx
push str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea ecx, [esp + 0x24]
mov dword [esp + 0x2c], ebx
call fcn.004014a0
mov ebp, dword [esp + 0x44]
lea ecx, [ebp + 2]
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x55555556
imul ebp
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov esi, ebp
add ecx, ecx
sub esi, edx
mov dword [esp + 0x34], 1
je 0x4012cf
mov edx, ebp
sub edx, esi
add edx, 3
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, eax
add eax, eax
add ecx, eax
lea edi, [ecx + 1]
push edi
call fcn.004132c4
push edi
mov esi, eax
push ebx
push esi
call fcn.00432dc0
xor eax, eax
xor edi, edi
add esp, 0x10
xor ecx, ecx
xor edx, edx
test ebp, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edi
jle 0x4013f0
jmp 0x401314
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x1c]
movzx edi, byte [edi + ebp]
shl ebx, 8
add ecx, 8
or ebx, edi
mov dword [esp + 0x18], ecx
add ecx, 0xfffffffa
mov dword [esp + 0x24], ecx
mov edi, ebx
sar edi, cl
and edi, 0x3f
jl 0x401492
mov ebp, dword [esp + 0x20]
cmp edi, dword [ebp - 0xc]
jg 0x401492
mov cl, byte [edi + ebp]
mov byte [eax + esi], cl
add edx, 1
add eax, 1
cmp edx, 0x4c
jl 0x401373
add dword [esp + 0x14], 2
mov byte [eax + esi], 0xd
add eax, 1
mov byte [eax + esi], 0xa
add eax, 1
xor edx, edx
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
sub edi, 6
sub ecx, 6
cmp edi, 6
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ecx
jge 0x401333
mov ecx, dword [esp + 0x1c]
add ecx, 1
cmp ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
jl 0x401310
test edi, edi
je 0x4013ec
mov ecx, 6
sub ecx, edi
shl ebx, cl
and ebx, 0x3f
jl 0x401492
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx - 0xc]
jg 0x401492
mov cl, byte [ebx + ecx]
mov byte [eax + esi], cl
add edx, 1
add eax, 1
cmp edx, 0x4c
jl 0x4013ec
add dword [esp + 0x14], 2
mov byte [eax + esi], 0xd
add eax, 1
mov byte [eax + esi], 0xa
add eax, 1
xor edx, edx
mov edi, dword [esp + 0x14]
mov ecx, eax
sub ecx, edi
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x401401
dec ecx
or ecx, 0xfffffffc
inc ecx
je 0x401438
mov byte [eax + esi], 0x3d
add edx, 1
add eax, 1
cmp edx, 0x4c
jl 0x401425
mov byte [eax + esi], 0xd
add eax, 1
mov byte [eax + esi], 0xa
add eax, 1
add edi, 2
xor edx, edx
mov ecx, eax
sub ecx, edi
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x401436
dec ecx
or ecx, 0xfffffffc
inc ecx
jne 0x401403
mov edi, dword [esp + 0x3c]
push esi
mov ecx, edi
call fcn.004014a0
push esi
mov dword [esp + 0x2c], 1
call fcn.004132c9
mov byte [esp + 0x38], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40147a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0xc
push 0x80070057
call fcn.00401150
int3