Function at 0x1002ad10
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x78c
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, 0xaaaaaaab
lea ecx, [edi*8]
mul ecx
mov eax, 0x88888889
mov esi, edx
shr esi, 2
lea ecx, [esi + 0x3b]
mul ecx
shr edx, 5
lea eax, [edx + esi]
add edx, 0x200
lea ebx, [eax + edx*2]
push ebx
push 0
mov dword [esp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
mov dword [esp + 0xc], esi
test esi, esi
jne 0x1002ad6c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x14]
push str._____BEGIN__hs______r_n
push ebx
push esi
call fcn.1000ae10
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], 0
mov esi, eax
call fcn.1003dd00
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x10], edx
mov ebx, edx
mov dword [esp + 0x1c], ebx
test edi, edi
jne 0x1002ade3
mov ecx, dword [esp + 0xc]
mov dword [ebp + 8], eax
test edx, edx
jne 0x1002af03
push 0x10
lea eax, [esp + 0x2c]
push eax
push edx
push edx
lea ecx, [esp + 0x48]
call sym.dopuslib32.dll_public:_void___thiscall_Hash::End_char___unsigned_int__unsigned_char___unsigned_int_
lea edx, [ebx + 1]
mov edi, 0x10
lea eax, [esp + 0x28]
mov dword [esp + 0x10], edx
mov dword [ebp + 8], eax
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0xc]
mov ebx, edx
neg ebx
sbb bl, bl
and bl, 0x1f
add bl, 0x44
mov dword [esp + 0x20], ebx
jmp 0x1002ae00
mov edx, 0x2d
cmp edi, 0x2d
ja 0x1002ae0c
mov edx, edi
cmp dword [esp + 0x10], 0
jne 0x1002ae22
push edx
push eax
lea ecx, [esp + 0x40]
call sym.dopuslib32.dll_public:_void___thiscall_Hash::HashData_void_const___unsigned_int_
mov ecx, dword [esp + 0xc]
mov byte [ecx + esi], bl
inc esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0
test edi, edi
je 0x1002aede
mov esi, dword [ebp + 8]
xor ebx, ebx
xor edx, edx
lea ecx, [ebx + 0x10]
test edi, edi
je 0x1002ae5a
movzx eax, byte [esi]
inc ebx
shl eax, cl
dec edi
sub ecx, 8
or edx, eax
inc esi
cmp ecx, 0xfffffff8
jg 0x1002ae44
mov ecx, dword [esp + 0xc]
mov eax, edx
shr eax, 0x12
and eax, 0x3f
mov dword [ebp + 8], esi
mov esi, dword [esp + 0x14]
movzx eax, byte [eax + 0x100ae780]
mov byte [ecx + esi], al
mov eax, edx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + 0x100ae780]
mov byte [ecx + esi + 1], al
cmp ebx, 2
jge 0x1002ae9b
mov byte [esi + ecx + 2], 0x3d
mov al, 0x3d
add esi, 3
jmp 0x1002aec2
mov eax, edx
shr eax, 6
and eax, 0x3f
mov al, byte [eax + 0x100ae780]
mov byte [ecx + esi + 2], al
add esi, 3
cmp ebx, 3
jge 0x1002aeb9
mov al, 0x3d
jmp 0x1002aec2
and edx, 0x3f
mov al, byte [edx + 0x100ae780]
mov byte [ecx + esi], al
inc esi
mov eax, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
cmp eax, 0x2d
jl 0x1002ae32
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
mov word [ecx + esi], 0xa0d
add esi, 2
test edi, edi
jne 0x1002ae00
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
jmp 0x1002adaf
inc edx
mov dword [esp + 0x10], edx
cmp edx, 2
jl 0x1002ada1
push dword [ebp + 0x14]
mov eax, dword [esp + 0x28]
sub eax, esi
push str._____END__hs______r_n
push eax
lea eax, [ecx + esi]
push eax
call fcn.1000ae10
mov eax, dword [ebp + 0x10]
add esp, 0x10
mov esi, dword [esp + 0xc]
pop edi
mov dword [eax], esi
mov eax, 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret