Function at 0xaa206b
Capabilities:
Authenticate hmac
Encode data using base64
Parse pe header

Disassembly:
rol ecx, 1
sar dl, 0xc5
neg al
div eax
neg ecx
inc byte [esp + edx*8 + 6]
xor ebx, ecx
sal edx, 0x5a
adc edi, ecx
dec word [esp + edx + 1]
movsx ecx, al
shr cl, 0x46
mov dword [esp + edx], edi
ret 4
inc edx
xor dword [esp + ebx - 0x7ca45407], ebp
dec edx
mov ebx, dword [esp + ebx - 0x7ca45407]
dec ecx
bt edi, ecx
dec eax
arpl bp, bp
dec ecx
add esi, 0x9637c091
inc edx
movsx eax, word [esp + ebx - 0x7ca4540d]
inc ecx
dec eax
add edi, ebp
dec ecx
shl ebx, 0x16
inc edi
adc bl, byte [ecx + esi - 0x4bd7b6f3]
cbw
inc ebx
mov cl, byte [ecx + esi - 0x4bd7b6f1]
dec esi
lea esi, [edi*2 - 0x7b6ed3f3]
inc esp
movzx eax, dl
inc ecx
push esi
dec edi
lea ecx, [ecx + eax - 0x78]
dec ax
dec esi
lea esp, [ebp*8 + 0x1835093b]
inc ecx
sal bl, cl
inc ecx
pop edi
dec edx
lea ecx, [0xa5a1ea83]
dec ecx
bt esp, edx
inc di
mov dword [ecx + eax*4 - 0x1e8], ebx
dec edx
mov dword [esp + eax - 0x7a], edi
ret 8
dec ebx
lea ecx, [esi + 0x18b5c125]
neg ax
sbb cl, 0x99
sal byte [esp + eax - 0x6ed115f3], 0xc1
rol cl, 1
xor bl, cl
lea ecx, [esp + ecx + 0x10]
sar al, 0xa3
imul eax, dword [esp + eax - 0x6ed115f7]
call fcn.009e19de
adc cl, dh
mov edx, dword [ebp + ecx - 0x55f38c13]
movzx eax, cl
lea ebp, [eax + ebp - 0x13]
xor edx, ebx
cwde
dec edx
xor edx, 0xd23015a8
add cl, al
shl ecx, cl
bswap edx
bt ecx, eax
neg edx
lea eax, [eax*4 - 0x33435373]
sal cx, 0x6a
ror eax, 0xdb
xor ebx, edx
call fcn.009e91c2
inc bp
movzx eax, byte [ecx]
inc ecx
mov ebp, 0xb79f03a4
inc ebp
movzx ebx, bp
jmp 0x9f5ab4
dec esp
sub eax, ecx
jo 0x949bd4
dec eax
add edi, edx
dec al
cbw
inc edi
movzx ebp, byte [edx + ebx - 0x329]
dec edi
lea edx, [edx + ebx - 0x329]
inc esp
xor ch, bl
inc ecx
rol ch, cl
dec ecx
mul esi
inc ecx
dec ch
idiv ecx
div ecx
push eax
inc ecx
neg ch
neg edx
dec ecx
dec edi
inc ecx
sbb ch, 0x3a
dec eax
cwde
inc ecx
not ch
inc ecx
inc ch
jmp 0xa00b4d
mov edx, 0x35bfc224
dec dl
mov cx, word [edx + esi - 0x35bfc221]
dec edx
imul edx, edx
dec dx
and ax, cx
not ax
mov ecx, edx
bt ecx, 0xac
mov word [edx + esi - 0x55f38c81], ax
jae 0x9771f2
push 0xcf9b5107
mov cx, word [ebp]
sub word [esp + 2], 0x8a95
mov dx, word [ebp + 2]
inc byte [esp + 3]
and byte [esp + 2], 0x25
sar byte [esp], 0xa2
adc ebp, 1
call fcn.009758cf
dec edx
bswap ecx
inc dword [esp + edx - 0x134655ff]
cdq
inc eax
lea ecx, [ecx + edx*8 + 0x44a26f24]
neg ax
neg ecx
bswap edx
div al
lea eax, [eax + eax*8 - 0x786824fc]
bswap ecx
push edx
jmp 0x93b87b
inc ebx
mov dh, byte [ecx + ebx*4 - 0xe8e]
dec ebx
lea edx, [ebx + ebx*8 - 0x77d3fde3]
inc ecx
not al
dec esi
lea edi, [ebx*4 + 0x22bb0ba5]
dec eax
lea ebp, [edx*2 - 0x26f73e66]
inc ecx
mov ecx, edi
inc eax
not dh
inc bp
btr ebp, edi
inc ecx
movzx eax, bh
inc cx
mul edi
inc esp
and al, dh
inc di
mov dword [ebx + ecx - 0x3a2], eax
inc esp
movzx esp, al
ror dx, 0x4a
or cx, 0x710d
inc ebx
mov edx, dword [edx + ebx*4 - 0xe94]
xor edx, ebx
dec ebp
add ebp, ebp
xor edx, 0xb7af0ca0
and ebp, ebp
dec eax
cwde
inc ecx
sbb eax, ebp
inc edx
lea edx, [edx + ebx + 0x2d1230f2]
cbw
xor edx, 0x6804bd8d
inc edx
lea edx, [edx + ebx + 0x1a0165e1]
bswap edx
inc esp
movsx esi, cx
xor edx, 0x4021e687
inc ebp
and bl, bh
dec ecx
lea ecx, [ebp + ecx*8 - 0xdde164f]
push ebx
inc edx
xor dword [esp + ebx*4 - 0xc90], edx
inc ecx
shr esp, 0x4d
inc ecx
mov eax, 0xacb8da2c
movsx ebx, cl
pop ebx
not ax
dec ebp
cmovp eax, esp
inc ebp
sbb ebp, esi
dec eax
arpl dx, dx
ja 0x985fea
inc ecx
mov edi, 0x8ea489be
inc ecx
movzx ecx, bh
inc ecx
movzx esi, di
dec ebp
lea edx, [edx + ecx - 0xc2]
inc esp
movzx ebx, cl
inc ebp
mov ebx, dword [edx + ecx*4 - 0x2f8]
dec eax
bswap esi
inc esp
xor ebx, ebx
inc ecx
sal bh, 0x43
inc cx
dec edi
inc ebp
movsx esp, di
inc ecx
xor ebx, 0x77871f87
inc ecx
ror ebx, 1
inc ecx
not ebx
inc ebp
mov esi, esp
inc ecx
dec ebx
inc ecx
not ebx
inc ebp
movzx ebp, si
inc ebp
imul esp, esp
push ebx
inc ecx
and esi, esp
inc esp
xor dword [esp + ecx*4 - 0x2f8], ebx
xor cx, cx
movsx ebp, cx
dec ecx
btr edi, 0x89
pop ebx
inc ecx
sub ch, ch
movsx eax, cl
ja 0xa74030
dec esi
lea ecx, [ecx + ecx - 8]
inc esp
btr ecx, edi
dec ecx
shl edi, 0x66
inc cx
shr ebp, 0x85
dec esi
mov dword [ecx + ecx], ebx
seta cl
and ecx, esi
dec ebp
lea edx, [edx + ecx*2 - 4]
inc bp
adc edi, edi
dec eax
cdq
inc bp
xchg esi, edi
inc ebp
mov esp, dword [edx + ecx*2]
inc esp
xor esp, ebx
inc esp
movsx ebx, ch
dec eax
shl eax, 0xcb
inc ecx
rol esp, 2
inc cx
dec edi
inc esp
add edi, ecx
inc ecx
div ebx
inc edi
lea esp, [edi + 0x48183d9f]
inc ecx
not esp
inc esp
movsx eax, bp
inc ecx
xor esp, 0x4439838d
shr bp, 0xa
jne 0xaa1e02
push ebx
inc esp
xor dword [esp + ecx*2], esp
dec ecx
neg ebp
inc sp
btr ecx, ebx
sub ecx, ebp
pop ebx
dec ebp
arpl sp, sp
dec ecx
adc edi, esp
inc ecx
dec edi
rol ebp, 0x7a
dec eax
shr eax, 0x34
jns fcn.00987526
inc ecx
neg ch
dec ebp
xchg esi, esp
pop eax
inc ecx
xor bl, ch
inc cx
or eax, edi
ja 0xaa0944
mov ecx, 0x2c83ad13
movzx ecx, byte [esi + ecx - 0x2c83ad13]
xor cl, bl
rol cl, 1
add cl, 0xb9
ror cl, 1
mov edx, 0x563d408a
shl dx, 0xa3
not cl
dec cl
add edx, edx
ror edx, 0xc4
sbb edx, edx
not cl
btc dx, dx
sbb cl, 0x19
push edx
rol cl, 1
xor bl, cl
add edx, 0xc9ddc24
ja 0x9ab04b
adc ebp, 8
dec dl
inc dl
mov dword [eax], ecx
jmp edi
dec dl
inc cx
bts esp, ecx
not dl
neg dl
btc cx, 0x84
inc esp
adc ah, al
dec dl
inc ecx
dec al
inc ecx
setge ch
neg dl
call fcn.00975d63
insb byte es:[edi], dx
mov ah, 0x2d
cmp dword [edi], 0x603acc45
inc esi
mov dword [ecx], 0x46607a91
invalid
dec dl
inc di
mov dword [ecx + ebx*2 - 0x648], ebp
dec esp
xor esi, edi
inc ecx
jmp esi
dec eax
neg ebp
dec esp
sub edx, esi
inc bp
add ebp, esi
rol al, 0x86
inc edx
mov eax, dword [eax + edx - 0x78a68401]
dec esp
mov dword [esp + ebp + 4], esp
xor eax, ebx
inc ecx
rol dh, 0xa3
inc ebp
movzx eax, dh
neg eax
inc edx
lea eax, [eax + ebp*2 - 0x50216f89]
dec eax
neg esi
xor eax, 0x9d0061be
rol eax, 1
inc cx
ror esi, 0x8e
dec eax
xchg dword [esp + ebp*4 + 0x10], esi
lea eax, [ebp + eax - 0x4d000aaa]
inc ecx
sbb ebp, esp
jl 0xabd800
inc ebx
mov cl, byte [ecx + ebp - 0x2b31]
add bp, ax
dec eax
btr edx, eax
dec esi
lea edi, [edx + ebp*8 + 0x583d0f14]
dec edi
lea ecx, [ecx + ebp - 0x2b33]
shr esi, cl
dec eax
lea ecx, [edx - 0x45fccbda]
inc ebx
mov dword [ecx + ebp*4 - 0xacd4], esi
mul cx
call fcn.009985a2
rol eax, 1
dec byte [esp + edx - 0x5e1b2d86]
pop edx
not ecx
inc eax
add cx, cx
xadd ecx, edx
xor ebx, eax
sub ecx, ecx
sal edx, 0x1d
neg edx
add edi, eax
xchg edx, ecx
movzx eax, dl
cdq
add eax, dword [ebp + edx]
sub dl, 0x84
xchg ecx, edx
neg edx
mov ecx, dword [ebp + ecx*8 - 0x3dc]
add dx, dx
add dx, dx
jp 0xa05dcf
mov edx, dword [ebp - 4]
mov dword [esp], 0xbda6569c
push 0x48379728
mov byte [esp], 0x8b
xor edx, ebx
pop ecx
push ecx
mov dword [esp + ecx - 0x4837977f], ecx
ror edx, 1
not edx
rol edx, 1
not edx
pop eax
neg word [esp + ecx - 0x4837978b]
xadd cx, ax
lea edx, [edx + eax*2 + 0x4d11636c]
ror ecx, 0x82
bswap edx
xor ebx, edx
add edi, edx
mov edx, dword [eax + esi - 0x4837978b]
lea esi, [esi + eax - 0x48379787]
sal cl, 0x83
ror cx, cl
dec byte [esp + eax - 0x48379787]
movzx ecx, byte [ebp + eax - 0x48379790]
btr ax, 0x37
neg ax
lea ebp, [ebp + eax - 0x483768fa]
mov byte [esp + eax - 0x483768eb], 0x26
xor cl, bl
neg cl
rol eax, 0x29
inc dword [esp + eax - 0x6ed1ea8d]
push eax
not cl
shr al, 5
jnp 0x96e44a
mov ax, word [esi]
jmp 0x9d4387
sal byte [esp + esi*4 - 0xa], 0xc2
rol eax, 3
dec eax
mov dword [esp + esi - 4], ebx
xor dword [esp + esi - 4], eax
sub si, 0x1103
pop ebx
js 0x96d78b