Function at 0x996d4e
Capabilities:
Encode data using base64
Encrypt data using chaskey
Parse pe header

Disassembly:
mov eax, 0x8ab11d11
movzx edx, al
shl eax, 0xf8
movzx eax, byte [edi + eax - 0x11000000]
or edx, edx
sub edx, 0xc8ac9e9f
sub dl, 0x94
lea edi, [edx + edi - 0x375361dd]
bswap edx
xor al, bl
add al, 0x39
shr edx, 0x53
ror al, 1
xor al, 0x83
sar edx, 0x50
btc dx, dx
adc al, dl
imul dx, dx
or dl, dl
xor bl, al
inc edx
sar edx, 0x9f
push edi
jae 0xc805e7
add ebp, eax
mov eax, dword [esi]
pop ecx
sal cl, 0x81
mov cx, word [esi + 4]
shl edx, 4
bts dx, dx
add dl, 0x1c
adc esi, 6
sal dl, 0x61
mov word ss:[eax], cx
call fcn.00cef939
lea edx, [ecx + edx - 0x2b411d61]
mov dword [esp], edx
xor al, 0xb
push edx
pop ecx
rol al, 1
sal word [esp + 1], 0x25
rol cx, 5
cmovbe edx, dword [esp + 8]
adc al, 0x17
xor bl, al
imul edx, edx
neg dl
jno 0xd86b26
inc ecx
sar esi, 0x88
inc edx
movzx ecx, byte [ebp + ebx - 0x667a02d9]
dec edi
lea ebx, [ebx + esi*2 - 0xed]
inc cx
bt edi, 0xa8
inc eax
xor cl, dh
not cl
inc ebp
bt ebp, eax
dec eax
mul ebx
sub cl, dl
sal al, 0xe1
dec esp
xchg ebp, edi
neg cl
inc ecx
and eax, 0x69225bb4
rol edi, 0x7c
inc ecx
setae ah
not cl
dec ecx
adc eax, 0x8016b485
dec ecx
or edx, esp
inc cx
bts esi, edx
adc cl, 4
ror cl, 1
inc eax
xor dh, cl
inc ecx
mul eax
dec dx
dec eax
add ecx, esp
dec esp
mov edi, dword [ecx + ebp - 0x6b017995]
dec eax
cdq
dec esp
bt ebp, ebp
dec edi
mov dword [esi + edx - 0x81], edi
dec ebp
lea edx, [edx + ebp - 0x6b017999]
inc ecx
rol al, 0x41
inc ecx
mov ecx, esi
dec ecx
add ebp, 0xd711b1bc
js fcn.0098d067
mov edx, dword [edi]
mov eax, 0x26abb028
push eax
shr dword [esp + eax*2 - 0x4d576050], 0x4a
lea edi, [edi + eax*2 - 0x4d57604c]
movsx ecx, byte [esp + eax*2 - 0x4d576050]
xor edx, ebx
bts eax, ecx
sub eax, 0xae379e35
xor edx, 0x1e9e1c1c
not edx
rol edx, 1
not edx
xadd dword [esp + eax - 0x787411f3], ecx
xor ebx, edx
push ecx
lea ebp, [ebp + ecx - 0x9aaf0]
bswap ecx
xadd word [esp + eax - 0x787411f1], ax
mov dword [eax + ebp - 0x78740009], edx
sal eax, 0x1b
mov edx, ecx
push eax
mov ecx, dword [edi + eax - 0x48000000]
lea edi, [edi + eax - 0x47fffffc]
pop eax
add al, al
ror edx, 0xe6
xor ecx, ebx
neg ecx
rol edx, 0xa2
imul eax, dword [esp + edx*8 - 0x7655047c]
xchg byte [esp + edx*2 - 0x1d954120], ah
lea ecx, [ecx + edx*8 + 0x44dc5e29]
ror ecx, 2
lea eax, [edx + edx*2 - 0x734b2b6d]
lea ecx, [ecx + eax - 0x798309a0]
add word [esp + edx - 0xecaa08b], 0xee86
rol ecx, 3
sar eax, 0xb0
lea ecx, [edx + ecx + 0x48f55510]
cdq
rol edx, 0x22
xor ebx, ecx
add esi, ecx
idiv word [esp + 1]
pop edx
pop ecx
jmp fcn.00caa7a7
mov ecx, 0x6e9b2e9c
mov cx, word [esi + ecx - 0x6e9b2e9a]
adc ax, cx
mov ecx, 0x4108df34
mov word [esi + ecx - 0x4108df32], ax
movzx ecx, byte [ebp + ecx - 0x4108df34]
mov eax, 0xb702b601
lea edx, [eax*4 + 0x381a4104]
xor cl, bl
add cl, al
shl eax, 0x41
ror edx, 0xdd
rol cl, 1
dec cl
inc eax
bswap edx
jl 0xcec12a
not cl
add cl, 0x1a
neg cl
inc edx
jle 0x97cfef
cmovns edx, eax
xor bl, cl
add ecx, esp
movzx dx, byte [ecx + edx - 0x6e056c03]
shl al, 0xe4
mov ecx, 0x533bb1aa
inc al
mov word [eax + esi - 0x6e056c31], dx
movzx edx, ax
inc dx
mov edx, dword [ebp + edx*2 - 0xd863]
btr ecx, 0x9b
sar ax, 0x6e
lea ebp, [ebp + eax - 0x6e04fffc]
sal eax, 0x47
btc ax, cx
xor edx, ebx
shr eax, 0x9a
rol edx, 3
sub ecx, ecx
lea edx, [eax + edx - 0x4cb3e334]
sal al, 0x46
sar cx, 0xae
call fcn.00965d1c
ror edx, 1
inc cx
inc esi
inc edx
inc ecx
sub ebx, edi
xor edx, 0x65b7ac8d
lea edx, [edi + edx + 0x27f808e]
or cx, bx
inc ecx
sbb ah, 0xaa
inc ebp
bt edi, esi
push esi
ror ebp, 4
movsx esi, di
xor dword [esp + edi - 0x6b017995], edx
add bl, 0x9a
pop esi
dec esp
lea eax, [eax + 0x322946b4]
inc esp
movzx ebp, ax
dec eax
neg ecx
dec eax
arpl dx, dx
dec esp
add ecx, edx
dec ecx
btc ebp, 2
jb 0xc6fca5
mov eax, 0x8b132aa3
btc eax, eax
mov ax, word [esi]
jae 0xc72da0
mov eax, dword [ebp]
mov edx, 0x19a4d7a0
sal edx, 0x94
lea ebp, [ebp + edx - 0x79fffffc]
call fcn.00c7c44a
dec eax
mov ebp, dword [esp + 0x50]
inc esp
mov esp, dword [esp + 0xb]
inc ecx
pop esp
dec esi
mov esp, dword [esp + 0x46c5934e]
jmp 0xda719b
dec eax
bt eax, 2
inc ebp
mov dword [edx + edi - 0x6b017991], edi
inc ecx
mov edx, dword [ebx + edi - 0x6b017995]
jb 0xd783cf
inc cx
movzx ebx, byte [edx]
inc ebp
mov bh, byte [edx + 2]
dec ecx
add edx, 2
inc ecx
add bl, bh
mov edi, 0x829e9304
inc esp
movzx edi, di
inc bx
mov dword [edx + edi - 0x9304], ebx
jmp 0xdc3367
xor ebx, 0xe539f3a3
inc ecx
neg ah
inc eax
seto ch
inc eax
xchg bh, ch
neg ebx
inc ebp
movsx esi, bh
inc eax
shl bh, 0x21
dec ebx
and ebp, 0x2191b514
push esi
xor dword [esp + edi*2], ebx
call fcn.009a9dfc
inc edx
in al, dx
stosb byte es:[edi], al
test al, 0x27
imul ebx, ecx, 0x17a30402
imul ebx, ecx, 0x23dd3c02
imul ebx, ecx, 0xb0f70f02
nop
dec ecx
mov word es:[ebx], cs
push ebx
and al, byte [edx + 0x1a]
scasd eax, dword es:[edi]
mov word [esi + ebx - 0x7c], ss
fldenv [esi + edi*4 + 0x11]
xor eax, 0x1a2ffb39
invalid
inc esp
movsx esp, ax
xor edx, esi
mov ebp, ebx
inc esp
movzx esi, di
xor edx, 0xb3a13016
inc esp
sub dh, ch
rol edx, 3
sub edx, 0xaf8ca3a5
inc esp
mov edi, edi
jmp 0xcde93a
lea eax, [esp + eax + 0xc]
jne 0xc963f5
mov ecx, 0xf89cec1f
dec eax
lea ebx, [ecx + ecx*4 - 0x73706ec5]
dec eax
lea eax, [ecx + ebx*4 + 0x5294f6b0]
dec ebp
mov esp, dword [edx]
mov edi, 0xeb017995
xor al, 0x21
btc edi, ecx
inc ebp
mov edi, dword [esp + edi - 0x6b017995]
jb 0xd02b52
dec eax
lea esp, [esp + 0x58]
ret
inc ebx
mov ebx, dword [ebx + edi*2 - 0x12608]
dec edi
lea ebx, [ebx + edi*2 - 0x12604]
inc esp
movsx ebp, bh
inc esp
xchg edi, ebp
inc cx
bt ebp, edi
xor ebx, esi
inc ecx
mov ebp, edi
jmp 0xde30a7
ror ebx, 1
xor di, di
inc ebp
movzx esp, bh
je 0xd3d721
mov eax, dword [edi]
add edi, 4
mov ecx, 0xd49b4f02
xor eax, ebx
bswap eax
movzx edx, cl
lea eax, [eax + ecx - 0x2083be4f]
xor cl, 9
bswap eax
sbb dl, ch
add edx, 0x10290599
inc edx
lea eax, [eax + edx*8 + 0x1dcf45b3]
setno cl
add cl, 0x94
xor ebx, eax
shl cl, 0x27
adc esi, eax
sar dx, 0x6c
mov ebp, dword [ebp + edx - 0x10290000]
movzx eax, dx
sal dl, 0x21
jp fcn.00caa7a7
fld qword [esi]
mov edx, 0x108c6a03
mov edx, dword [edx + edi - 0x108c6a03]
add edi, 4
mov eax, 0x95ae0909
neg eax
xor edx, ebx
dec edx
sub ax, 0x172f
lea ecx, [eax*4 - 0x32d035ce]
rol edx, 1
not edx
shl eax, cl
dec ecx
or al, 0x84
lea edx, [edx + eax + 0x69bfd9a]
xor edx, 0x3b0c39ab
inc eax
je 0xc8b27b
btc ax, 0x87
ror edx, 3
sub ecx, 0x1138eb3e
lea edx, [edx + eax + 0x227d2325]
xor ebx, edx
add ebp, edx
movsx edx, al
sub dl, ah
jmp ebp