Function at 0x4c3500
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x502204]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
mov eax, esi
and eax, 0xfffffff0
mov dword [ebp - 0x34], ecx
push edi
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x2c], eax
lea ebx, [eax + 0x10]
push ebx
call fcn.0046c3ce
mov edi, eax
add esp, 4
mov dword [ebp - 0x38], edi
test edi, edi
je 0x4c3764
push esi
push dword [ebp - 0x30]
push edi
call fcn.0044e3e0
mov eax, esi
mov dl, bl
mov ecx, ebx
add esp, 0xc
sub dl, al
add edi, eax
sub ecx, eax
je 0x4c3578
mov al, dl
mov esi, ecx
movzx eax, al
imul eax, eax, 0x1010101
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov esi, dword [ebp - 0x34]
mov edi, ebx
movups xmm0, xmmword [0x4f1258]
cmp byte [esi + 0x1e8], 0
movups xmmword [ebp - 0x14], xmm0
cmove edi, dword [ebp - 0x2c]
add edi, 0x10
push edi
call fcn.0046c3ce
mov ebx, eax
add esp, 4
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x4c3737
cmp byte [esi + 0x1e8], 0
je 0x4c3608
call fcn.00485088
cmp dword [eax + 0x18], 1
jne 0x4c35d0
push 0
call fcn.004787ef
push eax
call fcn.0046e2ac
add esp, 8
lea esi, [ebp - 0x24]
mov ebx, 0x10
call fcn.0046e28b
mov byte [esi], al
lea esi, [esi + 1]
sub ebx, 1
jne 0x4c35d8
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0x14]
mov ebx, dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
push 1
push eax
push esi
push 0x10
mov edx, ebx
call fcn.004caf40
add esp, 0x10
lea edx, [ebx + 0x10]
jmp 0x4c360a
mov edx, ebx
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push 1
push eax
mov eax, dword [ebp - 0x2c]
add eax, 0x10
push esi
push eax
call fcn.004caf40
lea ecx, [edi + 2]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx*4 + 1]
push eax
call fcn.0046c3ce
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x4c3739
mov esi, ebx
mov ecx, eax
cmp edi, 3
jl 0x4c36d7
mov eax, 0xaaaaaaab
mul edi
mov ebx, edx
shr ebx, 1
lea eax, [ebx*4]
sub eax, ebx
neg eax
add edi, eax
nop
movzx eax, byte [esi]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx], al
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 3
shr eax, 4
shl edx, 4
or edx, eax
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + 1], al
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0xf
shr eax, 6
shl edx, 2
or edx, eax
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + 2], al
movzx eax, byte [esi + 2]
add esi, 3
and eax, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + 3], al
add ecx, 4
sub ebx, 1
jne 0x4c3670
mov ebx, dword [ebp - 0x30]
test edi, edi
jle 0x4c372b
movzx eax, byte [esi]
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx], al
mov dl, byte [esi]
and dl, 3
shl dl, 4
cmp edi, 1
jle 0x4c36fe
mov al, byte [esi + 1]
shr al, 4
or dl, al
movzx eax, dl
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + 1], al
cmp edi, 2
jge 0x4c3713
mov al, 0x3d
jmp 0x4c3721
movzx eax, byte [esi + 1]
and eax, 0xf
mov al, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + 2], al
mov byte [ecx + 3], 0x3d
add ecx, 4
mov esi, dword [ebp - 0x2c]
mov byte [ecx], 0
mov byte [ebp - 0x25], 1
jmp 0x4c3739
xor esi, esi
push dword [ebp - 0x38]
call fcn.00459651
add esp, 4
test ebx, ebx
je 0x4c3751
push ebx
call fcn.00459651
add esp, 4
cmp byte [ebp - 0x25], 0
jne 0x4c3779
test esi, esi
je 0x4c3764
push esi
call fcn.00459651
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044c8c5
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044c8c5
mov esp, ebp
pop ebp
ret 8