Function at 0x494f10
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x14
push 0
push 0
dec ecx
jne 0x494f19
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x58]
push ecx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop ecx
mov byte [ebp - 9], cl
mov ebx, eax
mov esi, dword [ebp + 0x1c]
xor eax, eax
push ebp
push 0x49553a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.004064cc
cmp byte [ebp + 0x14], 0
je 0x494f65
cmp dword [ebp + 0x18], 0x19
jge 0x494f65
mov dword [ebp + 0x18], 0x19
mov eax, esi
test eax, eax
je 0x494f70
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jge 0x494f9e
push 0x495554
push esi
push 0
lea eax, [ebp - 0x5c]
mov edx, 3
call fcn.00406870
mov ecx, dword [ebp - 0x5c]
mov dl, 1
mov eax, dword [0x409b94]
call fcn.0040ef68
call fcn.00405e24
movzx eax, byte [ebp - 9]
sub al, 0x42
je 0x494fe1
sub al, 0xf
je 0x494fe1
push 0x49558c
lea eax, [ebp - 0x64]
movzx edx, byte [ebp - 9]
call fcn.004066b4
push dword [ebp - 0x64]
push 0
lea eax, [ebp - 0x60]
mov edx, 3
call fcn.00406870
mov ecx, dword [ebp - 0x60]
mov dl, 1
mov eax, dword [0x409b94]
call fcn.0040ef68
call fcn.00405e24
lea eax, [ebp - 8]
call fcn.004064cc
push 0x4955c4
lea edx, [ebp - 0x68]
mov eax, esi
call fcn.0049075c
push dword [ebp - 0x68]
push 0x4955d0
lea eax, [ebp - 0x6c]
movzx edx, byte [ebp - 9]
call fcn.004066b4
push dword [ebp - 0x6c]
push 0x4955d0
lea eax, [ebp - 4]
mov edx, 5
call fcn.00406870
mov eax, ebx
test eax, eax
je 0x49502c
sub eax, 4
mov eax, dword [eax]
mov esi, eax
mov dword [ebp - 0x10], 1
cmp byte [ebp - 9], 0x51
jne 0x4951f8
cmp esi, dword [ebp - 0x10]
jl 0x4951e3
mov esi, dword [ebp - 4]
test esi, esi
je 0x495054
sub esi, 4
mov esi, dword [esi]
push 1
lea eax, [ebp - 0x10]
push eax
movzx eax, byte [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xc]
push eax
lea eax, [ebp - 8]
push eax
push esi
lea esi, [ebp - 0x58]
lea edi, [ebp - 0x8c]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop esi
lea eax, [ebp - 0x8c]
mov edx, 0x508580
mov cl, 0x20
call fcn.00405068
lea ecx, [ebp - 0x8c]
mov edx, dword [ebp + 0x18]
sub edx, esi
sub edx, 2
mov eax, ebx
call fcn.0049564c
mov edx, dword [ebp - 8]
mov eax, edx
test eax, eax
je 0x4950b3
sub eax, 4
mov eax, dword [eax]
test eax, eax
je 0x495502
mov eax, edx
test eax, eax
je 0x4950c6
sub eax, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
cmp byte [ecx + eax - 1], 0x3d
jne 0x4950f0
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
je 0x4950e4
mov eax, dword [ebp - 0x18]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
dec edx
lea eax, [ebp - 8]
call fcn.00406bfc
push dword [ebp - 4]
push dword [ebp - 8]
push 0x4955dc
mov eax, dword [ebp + 8]
mov edx, 3
call fcn.00406870
jmp 0x4951e3
mov esi, dword [ebp - 4]
test esi, esi
je 0x495119
sub esi, 4
mov esi, dword [esi]
push 1
lea eax, [ebp - 0x10]
push eax
movzx eax, byte [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xc]
push eax
lea eax, [ebp - 8]
push eax
push esi
lea esi, [ebp - 0x58]
lea edi, [ebp - 0x8c]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop esi
lea eax, [ebp - 0x8c]
mov edx, 0x508580
mov cl, 0x20
call fcn.00405068
lea ecx, [ebp - 0x8c]
mov edx, dword [ebp + 0x18]
sub edx, esi
sub edx, 2
mov eax, ebx
call fcn.0049564c
mov edi, dword [ebp - 8]
test edi, edi
je 0x495176
sub edi, 4
mov edi, dword [edi]
test edi, edi
jle 0x4951e3
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x495191
mov eax, dword [ebp - 0x1c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
cmp byte [eax + edx - 1], 0x3d
jne 0x4951c1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x4951b5
mov eax, dword [ebp - 0x20]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
dec edx
lea eax, [ebp - 8]
call fcn.00406bfc
mov eax, dword [ebp + 8]
push dword [eax]
push 0x4955e8
push dword [ebp - 4]
push dword [ebp - 8]
push 0x4955dc
mov eax, dword [ebp + 8]
mov edx, 5
call fcn.00406870
mov eax, ebx
call fcn.0040679c
cmp eax, dword [ebp - 0x10]
jge 0x49510d
jmp 0x495502
cmp byte [ebp + 0x14], 0
jne 0x495205
mov dword [ebp + 0x18], 0x3fe
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.004067a8
mov eax, dword [ebp - 4]
test eax, eax
je 0x49521c
sub eax, 4
mov eax, dword [eax]
lea edi, [eax + 2]
cmp esi, dword [ebp - 0x10]
jl 0x4954f2
cmp byte [ebp + 0xc], 0
je 0x495314
cmp dword [ebp - 0x10], 0
jle 0x495258
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0
je 0x49524c
mov eax, dword [ebp - 0x28]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x28]
setle byte [ebp - 0x29]
jmp 0x49525c
mov byte [ebp - 0x29], 0
cmp byte [ebp - 0x29], 0
jne 0x495276
mov ecx, 0x4e4
mov edx, 0x4955f4
mov eax, 0x49562c
call fcn.004063f8
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp + 0x10], 0
jne 0x495299
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebx + eax - 1]
mov edx, dword [0x50f924]
movzx eax, al
bt dword [edx], eax
jae 0x4952c1
mov eax, ebx
call fcn.0040696c
add eax, dword [ebp - 0x10]
dec eax
mov edx, dword [ebp + 0x10]
call fcn.004935ac
push eax
mov eax, ebx
call fcn.0040696c
add eax, dword [ebp - 0x10]
dec eax
pop edx
sub edx, eax
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x10]
add eax, eax
add eax, eax
add eax, edi
cmp eax, dword [ebp + 0x18]
jle 0x495356
push dword [ebp - 8]
push 0x4955dc
push 0x4955e8
push dword [ebp - 4]
lea eax, [ebp - 8]
mov edx, 4
call fcn.00406870
mov eax, dword [ebp - 4]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x49530c
mov eax, dword [ebp - 0x30]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov edi, dword [ebp - 0x30]
add edi, 2
jmp 0x495356
lea eax, [edi + 4]
cmp eax, dword [ebp + 0x18]
jle 0x495356
push dword [ebp - 8]
push 0x4955dc
push 0x4955e8
push dword [ebp - 4]
lea eax, [ebp - 8]
mov edx, 4
call fcn.00406870
mov eax, dword [ebp - 4]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x495350
mov eax, dword [ebp - 0x34]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x34]
add edi, 2
lea eax, [ebp - 0x90]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx - 1]
and dl, 0xfc
movzx edx, dl
shr edx, 2
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
call fcn.004066b4
mov edx, dword [ebp - 0x90]
lea eax, [ebp - 8]
call fcn.004067a8
mov eax, dword [ebp - 0x10]
inc eax
cmp esi, eax
jl 0x495497
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx - 1]
and dl, 3
movzx edx, dl
shl edx, 4
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebx + ecx]
and cl, 0xf0
movzx ecx, cl
shr ecx, 4
add edx, ecx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
call fcn.004066b4
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 8]
call fcn.004067a8
mov eax, dword [ebp - 0x10]
add eax, 2
cmp esi, eax
jl 0x495457
lea eax, [ebp - 0x98]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx]
and dl, 0xf
movzx edx, dl
add edx, edx
add edx, edx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebx + ecx + 1]
and cl, 0xc0
movzx ecx, cl
shr ecx, 6
add edx, ecx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
call fcn.004066b4
mov edx, dword [ebp - 0x98]
lea eax, [ebp - 8]
call fcn.004067a8
lea eax, [ebp - 0x9c]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx + 1]
and dl, 0x3f
movzx edx, dl
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
call fcn.004066b4
mov edx, dword [ebp - 0x9c]
lea eax, [ebp - 8]
call fcn.004067a8
jmp 0x4954e2
lea eax, [ebp - 0xa0]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx]
and dl, 0xf
movzx edx, dl
add edx, edx
add edx, edx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
call fcn.004066b4
mov edx, dword [ebp - 0xa0]
lea eax, [ebp - 8]
call fcn.004067a8
lea eax, [ebp - 8]
mov edx, 0x495648
call fcn.004067a8
jmp 0x4954e2
lea eax, [ebp - 0xa4]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx - 1]
and dl, 3
movzx edx, dl
shl edx, 4
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
call fcn.004066b4
mov edx, dword [ebp - 0xa4]
lea eax, [ebp - 8]
call fcn.004067a8
push dword [ebp - 8]
push 0x495648
push 0x495648
lea eax, [ebp - 8]
mov edx, 3
call fcn.00406870
add edi, 4
add dword [ebp - 0x10], 3
cmp esi, dword [ebp - 0x10]
jge 0x495228
mov ecx, 0x4955dc
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 8]
call fcn.004067f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x495541
lea eax, [ebp - 0xa4]
mov edx, 6
call fcn.004064f0
lea eax, [ebp - 0x6c]
mov edx, 5
call fcn.004064f0
lea eax, [ebp - 8]
mov edx, 2
call fcn.004064f0
ret