Function at 0xa2ae0a
Capabilities:
Encode data using base64
Encrypt data using aes mixcolumns step
Parse pe header

Disassembly:
neg ecx
inc eax
not edx
not word [esp + eax - 0x3d263840]
ror ecx, 2
xchg ah, al
shl byte [esp + eax - 0x3d264137], 0xc6
inc ecx
idiv eax
rol dx, 0x61
not ecx
btr eax, edx
xor ebx, ecx
and dword [esp], 0xbb8cdaa8
lea eax, [eax*4 + 0x171fb2a1]
adc esi, ecx
imul dl
sub eax, 0xf98f4688
mov ecx, edx
lea ebp, [ebp + eax*2 - 0x3b1f71f2]
pop edx
bswap ecx
sar ecx, cl
movzx edx, word [ebp + eax*2 - 0x3b1f71f0]
xor dx, bx
inc dx
not dx
bts ecx, ecx
inc dx
push ecx
rol dx, cl
not dx
dec dx
xor bx, dx
call fcn.00771440
mov edx, 0x840bd486
sub edi, 4
mov edx, dword [edi]
mov eax, 0x6833ba95
xor edx, ebx
bts eax, 0x21
bswap edx
rol edx, 2
cwde
cwde
neg edx
ror ax, 0x22
not ax
not edx
push eax
shl eax, 0xa2
add eax, 0xf8a797ba
and cl, 0x34
xor ebx, edx
add esi, edx
dec ecx
lea edx, [ecx - 0x5e402f71]
lea eax, [ebp + ecx - 0x74c8e3fd]
mov dword [edx + ebp - 0x1688b490], eax
xor dl, dl
jae 0x917462
mov ecx, 0xbd972539
sub ebp, 4
mov ecx, dword [ebp]
mov eax, 0xa2ad21a3
xor ecx, ebx
add ax, 0xa605
rol ax, 0xe8
ror ecx, 1
movzx edx, al
neg edx
sbb edx, edx
add ecx, edx
mul ax
neg ecx
bswap ecx
xor eax, 0xf32e8014
setnp al
lea eax, [edx + eax*2 + 0x19045c27]
xor ebx, ecx
btr ax, 0xf
sar ax, 0x4e
bts eax, 0xb7
adc esi, ecx
sub eax, eax
div dl
add al, byte [edi + eax]
mov ecx, edx
bts cx, 0x3c
mov cl, byte [edi + 2]
adc edi, 2
btc dx, dx
ror dx, 0x6a
shr al, cl
not dl
and dx, dx
lea ecx, [edx*2 + 0x72164b38]
mov word [edi + ecx - 0x7215fe80], ax
movsx eax, cl
or cl, ch
jmp esi
je 0x9a7dfc
mov edx, dword [esi + edx*2 - 0x16e]
not eax
xor ax, 0xd9a6
btc eax, eax
lea esi, [esi + eax*2 - 0x6cd083d8]
xor edx, ebx
cwde
cbw
movsx ecx, al
rol edx, 2
sal dh, 1
shl byte [edx], cl
ret 0x8966
mov eax, 0xb58d048d
call dword [ecx + 0x39948b0b]
sti
xchg ecx, eax
or ecx, dword [ebx - 0x498c66c]
sti
inc edi
fadd qword [ecx - 0x60646037]
wait
lahf
insd dword es:[edi], dx
lea edi, [ecx + edi - 0x6fbf9fa3]
shl eax, 0x2a
neg al
xor edx, ebx
and cx, cx
lea edx, [edx + eax + 0x30c3408d]
and eax, 0xa6bc7da6
imul ecx, ecx
sbb cl, al
ror edx, 1
dec edx
bt ecx, 0x99
shl eax, 0xec
not edx
jae 0x900c8e
bswap ecx
jns 0x814ff6
aam 0x4e
add esp, dword [0xeaf2e489]
jecxz 0x96910b
loope 0x969056
rep stosb byte es:[edi], al
mov ebp, 0xf397e11e
inc esi
int1
loope 0x969062
mov dl, 0x77
out dx, al
loope 0x969068
inc edx
mov eax, dword [0xf397e13e]
cmpsb byte [esi], byte es:[edi]
loope 0x96906e
repe cmpsb byte [esi], byte es:[edi]
daa
scasb al, byte es:[edi]
loope 0x969074
salc
insd dword es:[edi], dx
out 0xe1, al
xchg edi, eax
leave
not byte [ebp - 0x4e]
in al, dx
out dx, al
pop ss
cld
lodsb al, byte [esi]
mov word [edx], cs
invalid
invalid
jb 0x96910c
call [eax + esi*4 + 7]
pop esp
mov al, 7
sal byte [edx - 1], 1
je 0x9690d5
cmpsd dword [esi], dword es:[edi]
sal byte [edx - 1], 1
mov ebp, 0x72d00f09
call [ecx + eax*2 - 0x8d2fa9]
adc al, 0xe9
jg 0x9690f9
jb 0x96912a
push esp
mov bl, 0xbd
pop ss
insd dword es:[edi], dx
imul esp, ebx, 0xe489c0f8
invalid
hlt
lea ebp, [ecx + ebp - 0x74c8e401]
jno fcn.0089b138
mov ecx, 0x9414b10c
lea eax, [ecx + ecx*8 - 0x7644ff45]
movzx edx, al
lea esi, [esi + edx*4 - 0xa0]
mov eax, dword [esi + edx*4 - 0x9c]
inc cx
xor eax, ebx
xadd dx, cx
neg eax
imul ecx, edx
xor eax, 0x93352a83
sar edx, 0x97
rol eax, 1
add edx, edx
bswap eax
xor ebx, eax
call fcn.007b724e
inc word [esp + 6]
shr eax, 8
xor eax, esi
inc ecx
xor eax, 0x50b2de00
neg word [esp + 5]
call fcn.0092619e
mov edx, 0xfaeb59a
lea ecx, [edx - 0x35486f79]
lea eax, [edx + ecx*2 - 0x2acc9a76]
lea ebp, [edx + ebp - 0xfaeb59e]
mov ecx, dword [edx + ebp - 0xfaeb59a]
dec al
push eax
and eax, edx
xor ecx, ebx
ror ecx, 1
bswap ecx
or dword [esp + edx - 0xfaeb59a], edx
lea eax, [eax*8 - 0x104e9e77]
neg ecx
add ax, word [esp + edx*2 - 0x1f5d6b33]
shr edx, 0x70
jnp 0x9690ab
mov edx, 0xe090eea1
dec eax
lea esi, [edx*2 - 0x32587be5]
dec ecx
sub edx, 4
inc ebp
mov edi, dword [edx]
inc esp
movsx eax, dl
movsx eax, si
cwde
inc ebp
xor edi, esp
mov ebp, eax
inc ecx
neg edi
inc eax
movsx ebx, dh
inc ecx
not edi
imul ax
movsx ecx, dx
inc esp
movzx esi, dh
inc ecx
ror edi, 3
inc ecx
bswap edi
inc esp
movsx ecx, al
inc ecx
push esp
inc ebp
movsx esp, ax
dec ecx
ror eax, 0x92
cdq
inc esp
xor dword [esp + edx*8], edi
inc ecx
pop esp
bswap esi
add ax, dx
inc esp
movzx ebp, si
dec ebp
arpl di, di
dec eax
div eax
dec ebp
add ebx, edi
dec ebp
and esi, esi
dec eax
mov eax, edi
dec bp
dec eax
xchg ecx, ebx
dec eax
lea edi, [edi + edx - 8]
xadd bx, dx
dec edx
dec eax
mov dword [edi + esi - 0x5d61c98e], eax
inc cx
sal esi, 0xe8
dec eax
add ebp, 0xbca4338f
inc eax
sets dh
jl fcn.008c5046
leave
pop ss
xchg ebx, eax
lahf
lodsd eax, dword [esi]
test dword [ebp - 0x365350f1], esp
cmp eax, 0x325b49e6
stosd dword es:[edi], eax