Function at 0xb8ac89
Capabilities:
Encode data using base64
Encrypt data using speck

Disassembly:
not ecx
mov dword [esp + edx - 0x58561174], edx
jmp 0xcbef6e
xor ebx, ecx
xadd dword [esp + edx - 3], edx
sar dl, 0xc5
jb 0xdb9786
push 0xaa989905
mov dword [esp + 8], 0xe8328b9c
xor edx, 0xd2b0d395
sar word [esp + 0x12], 0x46
jb 0xd047ce
mov eax, 0x6b2d883c
mov edx, dword [esi + eax - 0x6b2d883c]
jmp 0x1053b97
dec eax
loopne 0xcbef18
invalid
dec dword [edx - 0x3f6b7274]
invalid
neg ecx
movsx eax, byte [esp + edx - 0x58561173]
dec ecx
shr eax, 0x54
ror ecx, 3
shr edx, 0xbc
jb 0xc6804e
add bh, byte [esi + 0x3229ef76]
sbb al, 0xf3
jae 0xcbef16
lahf
shr cl, 1
test dword [ebp + 0x7fa5ade9], esi
cli
adc dword [eax + 0x68222ab7], edi
add ch, byte [ebp + 0x76]
add dl, bl
aaa
mov ch, 0x9d
add dword [edx - 0x2e34c2f6], edi
mov eax, dword [0xdac0d78f]
bound esi, qword [esi + 0x4ac27416]
invalid
lea ecx, [ecx + edx - 0x1a95e990]
sal dword [esp + edx*4 - 0x3a137380], 0xeb
and ax, dx
rol dx, 0x61
neg ecx
xchg dword [esp + edx*2 - 0x1d09737e], edx
neg edx
sbb ecx, 0x5d121e12
cwde
cdq
xor ebx, ecx
pop eax
push edx
bt dx, dx
add ebp, ecx
call fcn.0108536d
mov edx, 0x243823a4
rol dx, 0x6c
movsx eax, dx
lea esi, [esi + edx*2 - 0x48708478]
sbb ax, dx
movzx ecx, ax
mov edx, dword [esi + edx - 0x2438423a]
sar eax, 0x4a
sub eax, eax
ror cx, 0x41
xor edx, ebx
rol cl, 0x43
bts ecx, eax
sbb edx, ecx
rol edx, 3
call fcn.00c5778e
dec eax
call fcn.00c10add
add edi, ecx
mov dword [esp + eax*8], edi
ret 4
mov dword [esp], 0x8b2a1e30
push 0x6b2cb0b7
mov dword [ebp + 0xc], eax
sal dword [esp + 4], 0x53
mov eax, 0xdbc0509
dec eax
mov dword [ebp + eax*2 - 0x1b780a08], ebx
lea ebx, [eax + eax*4 + 0x5438982c]
jae 0xe87117
call fcn.00e04449
pop edx
invalid
mov dword [eax + ebp - 0xdbc0504], ecx
mov ecx, dword [esp + eax - 0xdbc0504]
mov dword [ebp + eax*4 - 0x36f01420], edx
mov ebx, dword [esp + eax - 0xdbc0500]
mov ecx, dword [eax + esi - 0xdbc0508]
mov dword [esp + eax*2 - 0x1b780a08], eax
movsx edx, al
shl byte [esp + eax*8 - 0x6de02836], 0x45
lea esi, [esi + eax*4 - 0x36f0141c]
xor ecx, ebx
add ecx, 0xf80ff5a4
push edx
shr byte [esp + eax*8 - 0x6de02835], 0x26
cbw
not ecx
xor al, 0xa6
lea ecx, [ecx + eax*8 - 0x4f54d95a]
lea edx, [edx + eax*8 - 0x358c1c7]
sub edx, edx
bts eax, eax
not ecx
sar al, 0x62
sbb ecx, 0xa5363d83
add edx, 0x41b86620
or dword [esp + eax*2 - 0x1b7881d4], edx
setp byte [esp + eax - 0xdbc40e2]
xor ebx, ecx
add edi, ecx
movsx ecx, ax
xor cx, 0x2705
pop ecx
pop ecx
pop eax
pop eax
jg fcn.010d94d7
sub edi, 4
mov ecx, 0x6a01f33e
mov ecx, dword [ecx + edi - 0x6a01f33e]
mov edx, 0xc73e5421
movsx eax, dx
xor ecx, ebx
sub edx, 0x898832ab
not ecx
xor ax, ax
dec edx
not al
ror ecx, 1
not dl
rol dl, 0x26
xor ecx, 0x4685b1a5
lea ecx, [ecx + eax - 0xd16469d]
ror ecx, 1
shr edx, 0x85
xor ebx, ecx
not dx
rol edx, 0x7e
jae 0xf5a918
mov ecx, 0x409b2fb4
movsx eax, cl
movzx edx, cx
mov cx, word [ebp + ecx - 0x409b2fb4]
push eax
lea ebp, [edx + ebp - 0x2fb2]
dec dword [esp + edx*2 - 0x5f68]
pop edx
ror dx, 0xa9
sbb edi, 0
xor dl, 0x35
movzx eax, byte [edi]
sar dx, 0xe1
not dx
xor al, bl
add edx, 0x7d156b8a
and edx, 0xddb0e39e
not al
xor dl, dh
push edx
dec dx
neg al
pop edx
sub edx, 0x7a40418
btr dx, dx
inc al
sub edx, edx
sal edx, 0x12
ror al, 1
ror edx, 0x9e
rol dl, 0xc4
jb 0xf04ca1
dec al
ror al, 1
or edx, edx
shr dx, 0xac
sar edx, 0xec
sbb al, 0xb4
push edx
jmp 0xbbc4b0
js 0xcbfe67
lcall 0xe1bf, 0xdeff2824
push ds
insd dword es:[edi], dx
adc ch, bl
mov dh, 0x46
invalid
adc ebp, ecx
mov ecx, dword [esi + eax*2 - 0x1fe]
lea edx, [edx + 0x3ab1dd8b]
cdq
call fcn.00ef7c09
lea ecx, [eax*2 - 0x36c5aa7e]
mov cx, word [esi + eax - 0x6b2d8838]
lea esi, [esi + eax - 0x6b2d883a]
inc eax
jno 0x10274f7
sbb ebp, 8
jmp 0xe012d0