Function at 0x89c899
Capabilities:
Encode data using base64

Disassembly:
push edi
push 0xaeb22d97
push 0x3b200913
jmp 0xa3919f
dec ecx
dec edx
ror word [esp + ecx - 0x2eac83a9], cl
dec ecx
ror edx, 1
pop edi
not word [esp + edx*8 - 0x200e]
dec ebp
lea edx, [edx + ebp - 0x7839ecde]
call fcn.00d95cce
btc edx, 0xa2
xor eax, ebx
or edx, 0x9d281214
ror eax, 1
and cl, 0x23
and edx, edx
not eax
sbb dx, dx
lea eax, [eax + edx - 0x2f1df14a]
sbb dx, cx
jb 0x8d4eea
neg ecx
neg eax
sar ecx, 0xaa
add ecx, edx
rol ecx, 0x90
dec eax
dec edx
neg ecx
and cx, dx
xor ebx, eax
lea ecx, [ecx*8 + 0x5a9798b7]
not ecx
ror edx, 0x3d
add esi, eax
jmp esi
jmp 0x935f1f
mov edi, 0x2e009e9e
push esi
pushfd
lea ecx, [edi*2 + 0x78ac29a7]
shl ecx, 0xb
mov esi, 0x227823b
push ebx
ja 0xde35a4
sal si, 0xe1
push edx
mov ecx, 0
not di
mov dword [esp + edi*2 - 0x5c00c2ae], ecx
jl 0x95bd35
lea ebx, [edi*8 + 0x7101c612]
neg bx
mov edi, dword [esp + esi*4 - 0x89c11b8]
setno bl
jns 0x9a6aac
jmp 0x9c9a5b
bswap edi
xor edi, 0xf695d2b0
movzx edx, bl
bt esi, 0xb5
add ebx, ebx
sub edi, edx
ror edi, 2
not dl
not bx
shl bl, 0x43
add edi, ecx
lea ecx, [ebx + esi*2 + 0x6496c737]
jmp 0xdb3136
mov ebp, esp
sete cl
lea edx, [esi + ebp - 0x2270565]
mov esp, edx
inc ebp
or esi, ecx
inc esp
mov edx, edi
inc ecx
not esi
btr ebp, 0x29
inc esp
mov dword [ebx + ebp - 0x120a7419], esi
inc esi
mov ecx, dword [ebp + edi - 0x120a741d]
inc ebp
mov eax, edx
inc ecx
sar eax, 0x74
inc esp
xor ecx, esi
mov eax, ebp
inc ecx
btc edx, edi
dec eax
lea ebp, [ebp*4 + 0x53b6d08f]
inc ecx
xor ecx, 0x93bfdc8b
inc ecx
not ecx
push ecx
inc ebp
lea ecx, [ecx + edi*2 - 0x1158bf1a]
inc ecx
neg ecx
cdq
inc ecx
not eax
inc ebp
lea ecx, [ecx + ecx + 0x7580908c]
dec ecx
bswap edx
inc ecx
pop esi
push esi
inc cx
sal edx, 0xe2
push edi
dec eax
inc dword [esp + ecx - 0x2eac83a9]
inc esp
xor dword [esp + ecx - 0x2eac83a1], ecx
dec eax
mov esi, dword [esp + ecx - 0x2eac83a1]
and dword [esp + ecx - 0x2eac83a8], 0xa6220502
sal eax, 0xab
dec ebp
arpl cx, cx
xchg word [esp + ecx - 0x2eac83a8], dx
inc eax
neg ch
dec ebp
add ebx, ecx
dec esi
lea ebp, [eax*2 + 0x54a9f123]
inc ecx
movzx eax, word [edi + ecx*2 - 0x5d59074e]
inc ecx
sar esi, cl
dec esi
lea ecx, [edi + edx - 0x6e75daf2]
xor ax, si
sal byte [esp + ecx - 0x2eac83a4], 0x62
inc ecx
mov esp, 0xc5b9ee30
sbb ax, 0x9008
rol ax, 1
dec eax
mov dword [esp + ecx - 0x2eac83a1], ecx
dec ax
xor ax, 0x89be
inc eax
sub bh, byte [esp + edi - 0x2eac83a1]
dec eax
sar edi, cl
inc ebp
and eax, esp
xor si, ax
inc cx
inc ecx
shl esp, cl
dec ecx
inc esp
mov word [ebx + ecx*2 - 0x5d590750], ax
inc ecx
inc eax
inc esp
or esp, dword [esp + ecx - 0x2eac83a7]
dec eax
and dword [esp + edi + 5], ebp
dec esi
mov edx, dword [ecx + edi - 0x2eac83a3]
ror word [esp + ecx*2 - 0x5d59074c], 0xc9
inc ecx
shl esi, 0x36
dec eax
not dword [esp + ecx - 0x2eac83a4]
dec esi
lea edi, [ecx + edi - 0x2eac839b]
ror word [esp + ecx - 0x2eac83a4], cl
dec esp
xor edx, esi
shl edi, cl
je 0x8ba51e
inc esp
xor al, byte [edi + 0x5cf5e42c]
jl 0x9c9b4a
push ecx
invalid
mov dword [esp + 4], edi
not dword [esp]
mov dword [esp], ecx
jmp 0x933fcd
dec esi
mov dword [esp + edx*2 - 0x1e0], eax
mov dword [esp + esi - 0x2270455], ebp
not ecx
ror bl, 0xe3
jnp 0x9c45d6
dec esp
xor esi, esi
dec eax
inc eax
dec edi
lea esi, [esi + eax + 0xcbc4f5c]
dec eax
cdq
dec eax
btc edi, 0x88
inc ecx
dec cl
dec ecx
neg esi
and eax, edx
dec esp
lea esp, [edi*2 + 0x1d0b2eac]
dec edi
lea esi, [eax + esi - 0x2b515738]
cdq
dec ebp
adc eax, ecx
dec eax
sar eax, cl
dec ecx
not esi
push eax
not dx
inc esp
movsx ebp, dx
dec ecx
xor esi, esi
dec esp
mov dword [ebx + eax*4 - 0x3953fec], esi
inc cx
sar esp, 0x2b
dec eax
lea ebx, [ebx + eax*4 - 0x3953fec]
sar eax, 0xef
inc ecx
bts eax, 0x83
inc cx
neg eax
pop edi
jl fcn.00a14fd9
leave
sub eax, 0x4ad4791b
insd dword es:[edi], dx
call [ebx]
inc edi
lodsb al, byte [esi]
dec edx
insd dword es:[edi], dx
jmp dword [edx + 0x6d4ab47c]