Function at 0x1001cfa0
Capabilities:
Encode data using base64

Disassembly:
push 0xffffffffffffffff
push 0x1003f1b1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
mov al, byte [esp + 0x3c]
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push ebp
lea ecx, [esp + 0x2c]
mov dword [esp + 0x28], ebp
mov byte [esp + 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, dword [esp + 0x4c]
mov eax, 0xaaaaaaab
mov dword [esp + 0x40], 1
mov esi, dword [edi + 8]
mul esi
mov ecx, edx
mov eax, esi
xor edx, edx
mov esi, 3
div esi
shr ecx, 1
test edx, edx
jbe 0x1001cfff
inc ecx
lea esi, [ecx*4]
mov eax, 0x38e38e39
mul esi
mov ecx, edx
mov eax, esi
xor edx, edx
mov ebx, 0x48
div ebx
shr ecx, 4
test edx, edx
jbe 0x1001d022
inc ecx
lea eax, [esi + ecx*2]
cmp eax, ebp
jbe 0x1001d26a
mov ecx, dword [esp + 0x30]
cmp eax, ecx
ja 0x1001d04b
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edx, dword [ecx]
lea ecx, [esp + 0x28]
push edx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::erase_unsigned_int__unsigned_int_]
jmp 0x1001d059
sub eax, ecx
push ebp
push eax
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_unsigned_int__char_]
cmp dword [esp + 0x2c], ebp
je 0x1001d06f
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov esi, dword [esp + 0x2c]
jmp 0x1001d075
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 4]
cmp edi, ebp
jne 0x1001d085
mov edi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov eax, 0xaaaaaaab
xor ebx, ebx
mul ecx
shr edx, 1
mov dword [esp + 0x4c], edx
mov eax, ecx
xor edx, edx
mov ecx, 3
div ecx
mov eax, dword [esp + 0x4c]
test eax, eax
mov dword [esp + 0x20], edx
jbe 0x1001d1aa
mov dword [esp + 0x18], eax
mov dl, byte [edi]
mov al, byte [edi + 1]
inc edi
mov byte [esp + 0x10], dl
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x10]
mov cl, byte [edi + 1]
and eax, 0xff
inc edi
mov edx, eax
shr edx, 2
mov byte [esp + 0x1c], cl
and eax, 3
mov cl, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
inc edi
mov byte [esi], cl
mov ecx, dword [esp + 0x14]
and ecx, 0xff
inc esi
mov edx, ecx
and ecx, 0xf
shr edx, 4
shl eax, 4
or edx, eax
inc esi
shl ecx, 2
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
add ebp, 4
mov byte [esi - 1], al
mov eax, dword [esp + 0x1c]
and eax, 0xff
add ebx, 4
mov edx, eax
and eax, 0x3f
shr edx, 6
or edx, ecx
inc esi
inc esi
cmp ebp, 0x44
mov cl, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi - 2], cl
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi - 1], dl
jbe 0x1001d197
mov al, byte [0x10057f20]
test al, 1
jne 0x1001d16c
or al, 1
mov ecx, 0x10057f30
mov byte [0x10057f20], al
lea eax, [esp + 0x4c]
push eax
push 0x100556cc
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push 0x1001bf20
call fcn.1003aebe
add esp, 4
mov ecx, dword [0x10057f34]
test ecx, ecx
jne 0x1001d17a
xor eax, eax
jmp 0x1001d183
mov edx, dword [0x10057f38]
lea eax, [ecx + edx]
push esi
push eax
push ecx
call fcn.1001dc00
mov eax, dword [0x10057f38]
add esp, 0xc
xor ebp, ebp
add ebx, eax
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
jne 0x1001d0b3
mov edx, dword [esp + 0x20]
cmp edx, 1
jne 0x1001d1e0
mov al, byte [edi]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x10]
and eax, 0xff
mov ecx, eax
and eax, 3
shr ecx, 2
shl eax, 4
mov dl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi], dl
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
inc esi
mov byte [esi], al
inc esi
mov byte [esi], 0x3d
jmp 0x1001d236
cmp edx, 2
jne 0x1001d23d
mov cl, byte [edi]
mov dl, byte [edi + 1]
mov byte [esp + 0x10], cl
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x10]
and eax, 0xff
mov ecx, eax
and eax, 3
shr ecx, 2
shl eax, 4
mov dl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov ecx, dword [esp + 0x14]
and ecx, 0xff
mov byte [esi], dl
mov edx, ecx
inc esi
shr edx, 4
or edx, eax
inc esi
and ecx, 0xf
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi - 1], al
mov cl, byte [ecx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi], cl
mov byte [esi + 1], 0x3d
add ebx, 4
mov eax, dword [esp + 0x30]
cmp ebx, eax
ja 0x1001d25b
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x28]
mov eax, dword [edx]
push eax
push ebx
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::erase_unsigned_int__unsigned_int_]
jmp 0x1001d26a
sub ebx, eax
push 0
push ebx
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_unsigned_int__char_]
mov esi, dword [esp + 0x48]
mov cl, byte [esp + 0x28]
push 0
mov byte [esi], cl
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x28]
mov eax, dword [edx]
push eax
push 0
push ecx
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov dword [esp + 0x24], 1
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x44], 0
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, dword [esp + 0x38]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret