Function at 0xc8a9e8
Capabilities:
Authenticate hmac
Encode data using base64

Disassembly:
add ebp, eax
inc dx
jmp ebp
mov eax, 0x842c5aa9
cbw
mov ax, word [ebp + 2]
mov ecx, 0x700c2622
shl byte [esp + ecx - 0x700c261f], 0x27
setnp cl
lea ebp, [ebp + ecx - 0x700c25ff]
neg byte [esp + ecx - 0x700c25ff]
jle 0xb8b117
add byte [eax], al
add byte [edx + 0x74], dl
insb byte es:[edi], dx
push ebp
outsb dx, byte [esi]
ja 0xb75cfc
outsb dx, byte [esi]
add bh, al
inc esp
and al, 4
mov dl, 0x79
lodsd eax, dword [esi]
xor al, byte [edx - 0x7f]
je 0xb75cc6
or byte [edx], dl
fldcw word [edx - 0x4fd9ca7e]
sahf
mov ch, 0xfe
inc esp
and al, 8
dec ecx
call fcn.00e8d925
and eax, 0x826fb20c
je 0xb75cea
or al, 0xb2
outsd dx, dword [esi]
xlatb
inc esp
jne 0xb75ce0
mov dl, 0x6f
pop es
and al, 0x35
or al, 0xb2
outsd dx, dword [esi]
add dh, byte [ebx + 0x4b]
push edx
mov dh, 0x3f
das
retf
out dx, eax
jo 0xb75cd2
scasb al, byte es:[edi]
dec esi
xor byte [eax + edx*2 - 0x352b938], dh
mul dword [ecx - 0x3e4d10b7]
popal
xor bh, dh
shl dword [ecx + 0x30], 0xf7
pushfd
inc ebx
inc ecx
fsub st(5), st(0)
in al, dx
pop ss
mov dh, 0x21
dec edi
mov eax, 0x39bd45df
rcr esp, cl
fild word [ebp - 0x43]
insd dword es:[edi], dx
sbb ecx, esp
fild word [ebp - 0x43]
jmp 0x9ec010c
sar word [esp + ecx - 0x700c2601], cl
adc dx, ax
jmp 0x119f7d4
neg ax
inc ebp
xor edx, esp
push eax
inc ebp
movsx ebx, si
inc esp
or byte [esp + ecx*2 - 0x6fd47347], al
inc ecx
rol edx, 1
inc ebp
lea edx, [edx + edx*4 - 0x6aa39aba]
inc ecx
rol edx, 3
inc ecx
inc edx
dec esi
mov dword [esp + esi*2], esp
call fcn.0119a266
mov eax, 0x652e83b6
lea ecx, [eax + eax - 0x6cc58679]
mov ax, word [edi + eax - 0x652e83b6]
mov cx, word [edi + ecx - 0x5d9780f1]
jmp 0xe9de18
jg 0xc546dd
mov eax, 0x62a56da9
mov eax, esi
sub esi, 2
mov edx, 0xce2264bd
push edx
sar dword [esp], 0x5e
mov word [esi], ax
mov ecx, edx
bts edx, 0x94
lea edx, [ecx + 0x1f82433c]
sbb ebp, 4
sub dl, dh
mov ecx, dword [ebp]
sbb edx, dword [esp]
xadd byte [esp], dh
xor ecx, ebx
rol ecx, 1
lea eax, [edx + edx - 0x24589cfb]
xor ecx, 0xf1146c91
bt dx, ax
push eax
inc ecx
dec ax
push eax
bswap ecx
xor ebx, ecx
shr byte [esp + 9], 0xa7
div al
sal dword [esp + 2], 0x8b
add edi, ecx
movzx ecx, al
sar dword [esp + ecx*8 - 0x494], 0x75
pop ecx
pop edx
pop eax
jb fcn.01181cee
dec esp
adc ebx, esp
dec eax
xadd esi, ecx
inc esp
xor dh, bh
cbw
inc ebp
mov dword [ebx + ecx*2 - 0x6fd4734a], ecx
inc ecx
not dh
xchg edx, eax
inc ebp
mov edx, dword [edi + edx*8 - 0x7fd27]
js 0xc102c5
mov eax, 0x511c209c
movzx cx, byte [ebp + eax - 0x511c209c]
movzx edx, ax
mov al, byte [ebp + edx - 0x209a]
xor dl, dh
or cl, al
movsx eax, dx
shr al, 0x83
sub dx, dx
not cl
rol edx, 0x8c
sar dx, 0x41
mov word [edx + ebp + 2], cx
movzx eax, byte [edx + edi - 1]
lea edx, [edx*4 - 0x2755cd52]
xor al, bl
movzx ecx, dl
lea edx, [edx + edx*8 + 0x2e0b3686]
or cx, dx
sbb al, 0x95
xchg cx, dx
sal edx, 0x3b
rol al, 1
bswap edx
sal dl, cl
ror ecx, 0xb3
neg al
ror al, 1
inc al
xor bl, al
shl cl, 5
adc ecx, ecx
mov word [ebp + edx*2], ax
dec edx
sal cx, 0xa9
mov edx, dword [edi + ecx - 0x3fa90005]
movzx eax, cx
jp 0x117adbd
ror dword [esp], 0x54
xor eax, ebx
inc dword [esp]
xor byte [esp + 2], 0xb8
neg word [esp]
sbb eax, 0xfdabfbb1
xor byte [esp], 0xaf
ror eax, 1
and word [esp + 1], 0xa238
and word [esp], 0x2b34
dec byte [esp + 2]
inc eax
sal word [esp], 0x4d
push 0xf32b9311
shr word [esp + 3], 0xe3
rol eax, 1
call fcn.00c7c298
inc ecx
btc esi, 0x8d
not dl
dec esp
bt edi, esi
xor dl, 0xa0
inc ebp
movzx ebx, si
sub dl, 0x25
dec ebp
lea ecx, [esi + eax - 0x6ffd7564]
inc ecx
ror dh, 0xe5
dec ebp
bt ecx, eax
inc esp
xor ah, dl
dec eax
dec edi
dec ax
dec eax
btr esi, eax
dec eax
adc edx, esp
shl ax, cl
inc cx
or esi, 0xd3492b26
loop 0xc5487d
inc esi
mov dword [edx + eax - 0x312f6894], ebp
inc ebx
mov esi, dword [edi + eax - 0x312f6894]
dec edi
lea edi, [edx + edi - 0x6893fc]
inc ecx
xor esi, esp
sal eax, 0xb3
btr ecx, 0x29
dec esi
neg esi
bswap esi
dec ebp
lea edx, [ebx - 0x7c7208dd]
call fcn.011c43cf
mov ecx, 0x16e716
lea esi, [ecx + esi - 0x16e71a]
mov eax, ecx
movsx edx, cl
mov edx, dword [esi + ecx*2 - 0x2dce2c]
xor edx, ebx
not cx
inc cx
add ecx, ecx
lea edx, [edx + eax*4 + 0x6333d364]
bt eax, ecx
bswap edx
jb 0x11b2b07
push ebp
add dh, bh
ret 0xc0d0
inc dl
rol al, 1
inc al
pop edx
btr dx, 0xb6
ror al, 1
sar edx, 0x77
neg al
inc al
bswap edx
and word [esp + 2], 0x143e
xor bl, al
not edx
lea eax, [esp + eax + 4]
dec dl
mov byte [eax + edx*2 - 0x5a0001fe], cl
movsd dword es:[edi], dword [esi]
mov eax, edx
movsx ecx, byte [esp + edx*2 - 0x5a0001fe]
ror eax, cl
movzx eax, byte [ebp + eax*4 - 0x3fcb3]
rol word [esp + edx - 0x2d0000fe], 0xcb
xor al, bl
bts cx, 0xa6
jae 0xc65301
dec esp
mov edx, dword [ebp]
inc ecx
mov ebp, 0xd84b135
inc ecx
ror ch, 0xe1
dec ebp
lea ecx, [ebp + 0x9817222]
dec ecx
mov edi, dword [ebp + ebp - 0xd84b192]
inc ecx
movzx edx, cl
dec edx
lea ebp, [ebp + ebp*8 - 0x6c258cc0]
inc ecx
movsx esi, cx
dec ebx
mov dword [edx + ebp*8 - 0x6c258cd0], edi
inc esp
movzx edx, dh
jo 0xed5cf7
adc ebp, dword [eax]
add byte [ecx - 0x67], ch
mov dh, 0x7a
mov al, byte [0x74a62d7f]
cmp byte [esi + 0x7b0749fb], dl
test byte [edx], bl
daa
imul ebx, dword [ecx + 0x7fa07ab6], 0x3874a62d
xchg esi, eax
sti
dec ecx
pop es
jnp 0xc548ad
sbb ah, byte [edi]
xchg ecx, eax
push 0x46
or ebp, dword [esi]
fldenv [esi + ebx*4 - 0x74]
sbb cl, byte [edx*4 - 0x7ba59699]
sbb ch, al
push edi
pop ecx
mov esi, dword [eax + 0x49]
call 0x8c1f3b98
jo 0xc5498c
jae 0xc54916
jp 0xc5493c
je 0xc5492e
sti
mov eax, dword [0xe56a63f9]
mov ebx, 0x991aa065
mov ebp, 0xafedc69a
invalid
invalid
scasd eax, dword es:[edi]
mov dh, 0xc0
xchg byte [ebp + 0x2469e5a3], cl
or byte [esi - 0x54de7918], ah
les edi, [ebx + esi*8]
sbb esi, dword [ebp - 0x28ac3e60]
dec eax
mov dword [0xa7155321], eax
add dword [ecx + ebx*8], 0xffffffe5
fxam
jnp 0xc54956
mov eax, dword [0x46704471]
out dx, eax
jle 0xc549ac
scasd eax, dword es:[edi]
invalid
neg al
call fcn.00bfba58
bt edx, ecx
xor al, bl
call fcn.00c30311
inc ebx
mov edi, dword [edi + ebp*2 - 0x1b096334]
inc ebp
movzx ebx, cl
dec edi
lea edi, [edi + ebp*4 - 0x3612c664]
inc ecx
xor edi, esp
inc ecx
xor ebx, 0xf9a09fb2
inc cx
ror ebx, 0xa9
dec esp
xadd esi, ecx
rol edi, 1
dec ecx
neg edx
inc ebp
mov eax, edx
dec ebp
xadd ebx, eax
inc ecx
lea edi, [ebp + edi - 0x523d51aa]
inc ecx
shl ebx, 0x33
movsx eax, dl
ror edi, 2
inc ecx
rol eax, 0x23
inc esp
adc edx, esi
bswap edi
inc cx
sar ebp, 0x67
inc ecx
shl cl, 0xa2
inc esp
bt edx, ebp
inc ecx
push esp
dec eax
inc edx
inc ecx
sal dl, 0x44
inc edx
xor dword [esp + ebp*2 - 0x1b09fec6], edi
dec eax
lea ecx, [esi*4 + 0x10ac24a8]
dec al
inc esp
xadd edx, edx
inc ecx
pop esp
dec esp
lea esi, [esi + edx*2 + 0x3caafc9e]
neg cx
dec eax
arpl di, di
inc ecx
cmovbe eax, eax
setp cl
dec eax
add ebx, edi
jmp ebx
dec eax
mov dword [esp + ecx - 0xa09e], ecx
inc ecx
movzx eax, word [edi + ecx*2 - 0x14138]
jns 0x1178b7b
dec ecx
ror ebx, cl
dec ebp
lea edi, [edi + ecx*2 - 0x14136]
inc cx
btr ebp, 0xb
inc esp
xchg dword [esp + ecx*2 - 0x14139], esi
setae dl
inc cx
xor eax, esp
not esi
inc eax
inc dh
inc ecx
dec esi
add ax, 0x711c
dec ecx
lea esi, [ebp + 0x7c0177b3]
movsx edi, dl
neg ax
xchg dword [esp + ecx*2 - 0x14138], esi
inc cx
sub edi, ebp
rol ax, 1
inc ecx
pop ebp
dec eax
sal edi, cl
inc ecx
setnp dh
inc ax
inc sp
xor esp, eax
inc ecx
sub ecx, 0xd5119092
dec ecx
neg ecx
push ecx
dec eax
lea eax, [esp + eax + 8]
je 0x11d481d
dec ebp
mov dword [ecx + eax + 0x2aee700c], edx
inc ecx
push eax
inc cx
inc ebp
jb 0x116737b
mov edx, 0xb83a8f13
inc esp
mov ebx, edx
inc esp
mov ecx, dword [ebp]
inc ebp
movzx ebx, byte [edi]
inc ebp
xor bl, ah
dec eax
lea edi, [edx*4 + 0x25211fb3]
inc esp
mov ebp, edx
inc ecx
rol bl, 1
mov ecx, edx
inc esp
mov esi, edx
inc ecx
add bl, 0x3e
dec ecx
sar esi, 0x23
dec edi
lea eax, [ebp + esi*8 + 0x7fafaa92]
inc ecx
ror bl, 1
inc ecx
mov esi, eax
inc ecx
neg bl
movsx eax, si
inc ecx
ror bl, 1
dec esp
and esi, ecx
inc ebp
xor ah, bl
dec esp
xadd edx, eax
jno 0xc4eed5
jmp 0x118d371
mov edx, 0x1b0c9f2b
neg edx
adc edi, 1
and ax, cx
mov ecx, edx
rol edx, cl
inc dx
not ax
mov word [edi + edx*4 - 0x6af279b4], ax
adc cx, dx
lea eax, [ecx + ecx*8 - 0x5d5444d9]
btc dx, cx
mov eax, dword [esi + edx*2 - 0x35793cd2]
not cl
lea esi, [esi + edx*4 - 0x6af279a0]
add edx, edx
neg edx
neg ecx
xor eax, ebx
inc eax
btc ecx, 0xbb
rol cl, cl
ror dx, 0x22
ror eax, 2
lea eax, [eax + edx + 0x10a40c48]
shl dx, 0x81
lea ecx, [edx + edx*2 + 0x5a1a43ad]
neg eax
imul cx, cx
xadd dl, ch
add ecx, 0x3332a24
bswap eax
sbb dl, cl
sub dx, cx
imul cx, dx
lea eax, [eax + ecx - 0x4e255c18]
add ecx, edx
bts dx, 0xb8
jb 0x11c4aff
jo 0xc6b2ad
dec eax
mov dword [esp + ecx*2 - 0x1413c], ebx
ret 8
ret
btc eax, eax
lea edi, [edi + eax - 6]
xadd ax, cx
bt ecx, eax
xor edx, ebx
xor al, 0x21
bswap edx
dec edx
sal eax, 0x5c
neg ecx
sar eax, cl
ror edx, 1
push ecx
xchg dword [esp + eax], ecx
btr ecx, ecx
lea edx, [edx + ecx*2 + 0x3eebab90]
neg edx
ror edx, 3
xor edx, 0x9e26850e
inc al
shl word [esp + ecx - 0x4056fffd], 0xc5
rol edx, 3
xor edx, 0xbeb10fa6
add ax, cx
sbb edx, eax
dec word [esp + ecx - 0x4056fffd]
xor ebx, edx
add esi, edx
shl ecx, cl
mov dword [esp + eax*4], esi
ret
add esi, 6
push 0x868e190d
shrd eax, edx, cl
call fcn.00c1d26a
mov dx, word [ebp]
jne 0xb75c59
not word [esp + ecx - 0x700c2600]
mov word [ecx + ebp - 0x700c2601], dx
dec dword [esp + ecx - 0x700c2601]
movzx eax, cx
cdq
lea esi, [esi + ecx - 0x700c2605]
neg cl
xor edx, dword [esi + ecx - 0x700c26ff]
cwde
xor cl, byte [esp + eax - 0x2600]
sal dword [esp + eax*4 - 0x9804], cl
xor edx, ebx
xchg cx, ax
inc ax
cwde
lea edx, [edx + eax - 0x51921cfa]
bt ax, cx
sar ax, cl
sub eax, 0xc43d1282
ror edx, 3
cwde
add eax, dword [esp + eax - 0x9b]
not edx
sub dword [esp + ecx - 0x700c2601], ecx
btr ax, 0x80
sbb edx, 0xd7bdcb0a
xor ebx, edx
add edi, edx
movzx edx, cl
ror edx, 0x10
lea edx, [ecx*8 + 0x61696bc]
mov dword [esp + ecx - 0x700c2601], edi
ret
xor eax, 0x58a5123e
xor ebx, eax
jmp 0xb65cce
and byte [esp + ecx - 0x5fb6], 0x8d
dec ebx
lea eax, [ebx + ebx*8 + 0x47bcb628]
inc edi
lea edx, [edx + esi - 0x466aad3a]
inc ecx
bswap edx
inc ecx
neg edx
dec esp
mov dword [esp + ecx*8 - 0x2fdd0], esp
inc esp
xor dword [esp + ecx*8 - 0x2fdd0], edx
inc esp
movsx esp, word [esp + ecx*4 - 0x17ee8]
dec esp
mov esp, dword [esp + ecx*2 - 0xbf6e]
dec esp
lea eax, [eax*2 + 0x3307f1ab]
neg ecx
dec ebp
arpl dx, dx
rol al, 0x64
dec ecx
add ebx, edx
mov bp, word [ebp]
pop edi
pop eax
jmp fcn.011a3bd5