Function at 0x5b1a10
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x10424]
mov eax, 0x10424
call fcn.006272c0
push 0xffffffffffffffff
push 0x642679
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x6a6040]
xor eax, ebp
mov dword [ebp + 0x10420], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0x1042c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x6c], 0
mov dword [ebp - 4], 1
xor esi, esi
mov eax, dword [eax]
mov dword [ebp - 0x4c], esi
test eax, eax
je 0x5b1a7c
mov ecx, dword [eax + 4]
jmp 0x5b1a7e
xor ecx, ecx
mov eax, dword [ebp + 0x10434]
mov dword [ebp - 0x48], ecx
test eax, eax
je 0x5b1a90
mov edi, dword [eax + 4]
jmp 0x5b1a92
xor edi, edi
shl ecx, 3
mov eax, 0x2aaaaaab
imul ecx
mov eax, 0x66666667
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx
lea eax, [ebp]
sar edx, 2
mov ebx, edx
mov dword [ebp - 0x38], eax
shr ebx, 0x1f
add ebx, edx
imul ebx, edi
add ebx, 0x64
add ebx, ecx
js 0x5b1ad0
cmp ebx, 0x10000
jbe 0x5b1ad0
mov eax, ebx
jmp 0x5b1ad2
xor eax, eax
push 0
push eax
lea ecx, [ebp - 0x34]
call fcn.0041aee0
xor edi, edi
mov byte [ebp - 0x17], 0
mov dword [ebp - 0x20], edi
test ebx, ebx
js 0x5b1b10
cmp ebx, 0x10000
jbe 0x5b1b10
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x34]
mov eax, dword [eax + 0xc]
call eax
mov edi, dword [ebp - 0x20]
mov cl, al
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
jmp 0x5b1b19
mov cl, 1
mov dword [ebp - 0x1c], 0x10000
mov byte [ebp - 0x18], cl
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
test eax, eax
je 0x5b1b2e
mov eax, dword [eax + 0xc]
jmp 0x5b1b33
mov eax, 0x651f68
xor edx, edx
mov dword [ebp - 0x54], eax
xor ebx, ebx
mov dword [ebp - 0x14], 0x20
cmp dword [ebp - 0x48], edx
jle 0x5b1cc5
xor ecx, ecx
jmp 0x5b1b53
mov edx, dword [ebp - 0x10]
movzx eax, byte [eax + ecx]
add edx, 8
shl ebx, 8
inc ecx
or ebx, eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x10], edx
cmp edx, 6
jl 0x5b1bb8
lea ecx, [edx - 6]
mov eax, 0xaaaaaaab
mul edx
shr edx, 2
mov dword [ebp - 0x40], edx
mov edi, edx
lea eax, [edx*4]
sub eax, edx
mov edx, dword [ebp - 0x10]
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 0x10], edx
mov edx, ebx
shr edx, cl
and edx, 0x3f
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
shl edx, cl
sub ecx, 6
mov byte [ebp + esi + 0x10000], al
xor ebx, edx
inc esi
sub edi, 1
jne 0x5b1b91
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x50]
cmp esi, 0x400
jl 0x5b1c95
mov al, byte [ebp - 0x18]
test al, al
je 0x5b1c88
lea ecx, [edi + esi]
cmp dword [ebp - 0x1c], ecx
jae 0x5b1c6b
lea eax, [ecx + ecx]
cmp eax, 0x7fffffff
jbe 0x5b1bf4
cmp ecx, 0x7fffffff
jae 0x5b1bf4
mov eax, bind
jmp 0x5b1c03
cmp eax, 0x20
cmovb eax, dword [ebp - 0x14]
cmp eax, ecx
jb 0x5b1d31
cmp eax, edi
jb 0x5b1d31
cmp eax, esi
jb 0x5b1d31
push dword [ebp - 0x24]
lea ecx, [ebp - 0x68]
push eax
call fcn.0041aee0
mov edi, dword [ebp - 0x64]
test edi, edi
jne 0x5b1c31
cmp dword [ebp - 0x5c], edi
je 0x5b1c31
mov byte [ebp - 0x18], 0
jmp 0x5b1c5c
push dword [ebp - 0x20]
mov byte [ebp - 0x18], 1
push dword [ebp - 0x38]
push edi
call fcn.00609db0
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x34]
add esp, 0xc
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x38], edi
push eax
call fcn.0041ae10
mov edi, dword [ebp - 0x64]
push edi
call fcn.00606eda
mov edi, dword [ebp - 0x20]
add esp, 4
mov al, byte [ebp - 0x18]
test al, al
je 0x5b1c88
push esi
lea eax, [ebp + 0x10000]
push eax
mov eax, dword [ebp - 0x38]
add eax, edi
push eax
call fcn.00609db0
mov edi, dword [ebp - 0x20]
add esp, 0xc
add dword [ebp - 0x4c], esi
add edi, esi
mov ecx, dword [ebp - 0x50]
xor esi, esi
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0x48]
jl 0x5b1b50
mov eax, dword [ebp - 0x10]
test eax, eax
jle 0x5b1cc2
mov ecx, 6
sub ecx, eax
shl ebx, cl
and ebx, 0x3f
mov al, byte [ebx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + esi + 0x10000], al
inc esi
mov cl, byte [ebp - 0x18]
mov edx, dword [ebp - 0x4c]
add edx, esi
mov eax, edx
and eax, reloc.WS2_32.dll_closesocket
jns 0x5b1cda
dec eax
or eax, 0xfffffffc
add eax, 1
je 0x5b1cfc
nop dword [eax]
inc edx
mov byte [ebp + esi + 0x10000], 0x3d
mov eax, edx
inc esi
and eax, reloc.WS2_32.dll_closesocket
jns 0x5b1cfa
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x5b1ce0
test esi, esi
jle 0x5b1dd7
test cl, cl
je 0x5b1dd2
lea edx, [edi + esi]
cmp dword [ebp - 0x1c], edx
jae 0x5b1db2
lea eax, [edx + edx]
cmp eax, 0x7fffffff
jbe 0x5b1d3b
cmp edx, 0x7fffffff
jae 0x5b1d3b
mov eax, bind
jmp 0x5b1d4a
xor al, al
mov byte [ebp - 0x18], al
jmp 0x5b1c88
cmp eax, 0x20
cmovb eax, dword [ebp - 0x14]
cmp eax, edx
jb 0x5b1e01
cmp eax, edi
jb 0x5b1e01
cmp eax, esi
jb 0x5b1e01
push dword [ebp - 0x24]
lea ecx, [ebp - 0x68]
push eax
call fcn.0041aee0
mov edi, dword [ebp - 0x64]
test edi, edi
jne 0x5b1d78
cmp dword [ebp - 0x5c], edi
je 0x5b1d78
mov byte [ebp - 0x18], 0
jmp 0x5b1da3
push dword [ebp - 0x20]
mov byte [ebp - 0x18], 1
push dword [ebp - 0x38]
push edi
call fcn.00609db0
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x34]
add esp, 0xc
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x38], edi
push eax
call fcn.0041ae10
mov edi, dword [ebp - 0x64]
push edi
call fcn.00606eda
mov edi, dword [ebp - 0x20]
add esp, 4
mov cl, byte [ebp - 0x18]
test cl, cl
je 0x5b1dd2
push esi
lea eax, [ebp + 0x10000]
push eax
mov eax, dword [ebp - 0x38]
add eax, edi
push eax
call fcn.00609db0
mov edi, dword [ebp - 0x20]
add esp, 0xc
mov cl, byte [ebp - 0x18]
add edi, esi
mov dword [ebp - 0x20], edi
test cl, cl
je 0x5b1e34
cmp edi, 0x7fffffff
jae 0x5b1e34
push 0
push edi
push dword [ebp - 0x38]
lea ecx, [ebp - 0x40]
call fcn.005a5ae0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x5b1e08
mov eax, dword [ecx + 4]
jmp 0x5b1e0a
xor cl, cl
mov byte [ebp - 0x18], cl
jmp 0x5b1dd2
xor eax, eax
cmp eax, dword [ebp - 0x20]
je 0x5b1e29
mov eax, dword [ebp - 0x24]
test eax, eax
js 0x5b1e29
jg 0x5b1f86
cmp byte [0x6ac617], 0
jne 0x5b1f86
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 3
mov dword [eax], ecx
jmp 0x5b1e53
mov ecx, dword [0x6aefbc]
test ecx, ecx
je 0x5b1e48
lock inc dword [ecx]
mov eax, dword [ebp - 0x3c]
mov dword [eax], ecx
jmp 0x5b1e53
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [eax], 0
mov dword [ebp - 0x6c], 9
test ecx, ecx
je 0x5b1e8b
movzx eax, word [ecx + 0x10]
test al, 4
je 0x5b1e7b
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
movzx esi, word [eax + 0x10]
and esi, 0x400
jmp 0x5b1e94
mov edi, dword [ecx + 4]
mov esi, eax
mov ebx, dword [ecx + 0xc]
and esi, 0x400
jmp 0x5b1e94
xor esi, esi
mov ebx, 0x651f68
xor edi, edi
call fcn.005a45d0
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x5b1ec6
push esi
push edi
push ebx
mov ecx, eax
call fcn.005a57f0
mov dword [ebp - 0x10], eax
mov ecx, eax
test eax, eax
je 0x5b1ecd
cmp dword [eax + 0xc], 0
jne 0x5b1ecd
push ecx
call fcn.005a47b0
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov edi, dword [ebp - 0x3c]
or esi, 0xffffffff
mov ebx, 0x1d
mov edx, dword [edi]
cmp edx, ecx
je 0x5b1f03
lea ecx, [ebp - 0x10]
mov eax, dword [ecx]
mov dword [edi], eax
mov dword [ecx], 0
test edx, edx
je 0x5b1f00
mov eax, esi
lock xadd dword [edx], eax
dec eax
jne 0x5b1f00
push ecx
mov ecx, edx
call fcn.005a47b0
mov eax, dword [ebp - 0x10]
and ebx, 0xfffffffb
test eax, eax
je 0x5b1f1b
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
jne 0x5b1f1b
push ecx
mov ecx, eax
call fcn.005a47b0
test bl, 2
je 0x5b1f36
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x5b1f36
mov eax, esi
lock xadd dword [ecx], eax
dec eax
jne 0x5b1f36
push ecx
call fcn.005a47b0
push dword [ebp - 0x30]
mov dword [ebp - 0x34], vtable.CMaaPtr_char_.0
call fcn.00606eda
mov ecx, dword [ebp + 0x10434]
add esp, 4
test ecx, ecx
je 0x5b1f5f
lock xadd dword [ecx], esi
dec esi
jne 0x5b1f5f
push ecx
call fcn.005a47b0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x10420]
xor ecx, ebp
call fcn.00606a47
lea esp, [ebp + 0x10424]
pop ebp
ret 0xc
push 0x6a3cd8
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], str.Memory_allocation_error
push eax
call fcn.006089ec
int3