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

Disassembly:
movsx ecx, al
mov ecx, dword [ebp + eax - 0x42f5fffe]
movsx edx, al
or edx, 0x61bd6793
btr edx, edx
xor ecx, ebx
rol dx, 0x24
sbb ecx, 0x589f3e1c
cbw
neg ecx
shr ax, 0xc1
bswap edx
xor edx, dword [esp + eax - 0x42f57ffb]
not ecx
bswap ecx
lea ecx, [ecx + eax*2 + 0x4ca83832]
cwd
not dx
neg ecx
xor ebx, ecx
ror dx, 0xe7
inc dx
lea edx, [eax*8 + 0x1a04579e]
add edi, ecx
inc dword [esp + edx*2 - 0x6360af29]
lea ecx, [edx*4 + 0x109a8300]
sal ecx, 0xe
movzx eax, byte [ebp + edx*2 - 0x6360af27]
and byte [esp + edx*2 - 0x6360af28], 0x9a
lea ebp, [ebp + edx*2 - 0x6360af26]
sub dword [esp + edx - 0x31b05792], ecx
jl 0x968aec
mov eax, 0x9137cc89
movsx ecx, al
add al, al
sbb ebp, 3
cdq
neg ecx
sbb edx, 0x6832921e
mov eax, dword [ebp + ecx*2 - 0xee]
shl dx, 0x2b
xor eax, ebx
call fcn.0080f258
mov ecx, dword [esi]
mov edx, 0xfb177219
shr edx, 0xa2
sbb dx, dx
lea esi, [esi + edx*2 - 0x7d89fffc]
mov ebp, edx
mov ebp, ecx
movsx ecx, dx
jge 0xd022ad
add ebp, ecx
movzx eax, word [esp + edx*2]
lea edi, [edi + edx - 1]
push edx
imul dword [esp + edx*2 + 4]
xchg ah, al
xor dl, byte [edx + edi]
or ax, 0xe201
and dword [esp + eax - 0xe203], 0xf2d1621
adc al, 0
xor dl, bl
xor eax, eax
not dl
neg dl
cwde
shl eax, 0xcc
xor dl, 0x8a
xchg dword [esp + eax + 4], eax
ror eax, 0x55
neg dl
xadd al, ah
dec eax
xor bl, dl
neg eax
rol eax, 0x37
pop eax
xor dword [esp], edi
sal eax, 0x65
push ebp
movzx ebp, al
push ebx
jb 0x8defd9
xadd ax, bp
xor ebp, esi
movsx ebx, al
call fcn.0075c4fb
mov ecx, dword [esi + ecx - 0x12a00000]
movsx edx, al
lea edx, [edx + eax + 0x550d3bbc]
mov eax, dword [esi + edx*4 - 0x59a955dc]
lea esi, [esi + edx - 0x166a5570]
jne 0x9341bc
mov dword [ecx + edx - 0x166a5578], eax
call fcn.00c839e9
sub al, 0x24
neg dword [esp + edx - 0x31b05793]
dec byte [esp + edx - 0x31b05792]
xor al, cl
or byte [esp + edx*2 - 0x6360af29], cl
not word [esp + edx - 0x31b05795]
sbb al, cl
xor dword [esp + ecx - 0x61642cfb], 0x319a1580
rol al, 1
shl ecx, cl
xor bl, al
lea eax, [esp + eax + 8]
not ecx
sub dword [esp + edx - 0x31b05793], edx
xchg word [esp + edx*2 - 0x6360af29], cx
movzx dx, byte [edx + eax - 0x31b05797]
lea eax, [ecx + ecx*4 - 0x2c493775]
adc cx, cx
sar cx, cl
mov word [esi + eax - 0x53b6a366], dx
sal dword [esp + eax - 0x53b6a369], 0x5e
lea esi, [ecx + esi - 0x7fffffde]
mov dword [esp + ecx - 0x7fffffe2], edi
ret 4
lea ecx, [edx*4 - 0x655d3159]
xor al, bl
inc dl
jne 0x9377f4
dec edi
lea ebx, [ebx + edx*2 - 0x7532]
inc ebp
xor esi, ecx
jmp 0x77602b
or eax, 0x2e14fe01
neg dl
mov dword [esp + eax - 0x3edcff69], eax
neg al
not dword [esp + eax - 0x3edcff8f]
inc dl
dec ax
lea eax, [eax*8 + 0x4c0e2734]
setg al
neg dl
inc eax
xor bl, dl
lea edx, [esp + edx + 8]
mov dword [edx + eax - 0x42f62301], ecx
mov dword [esp + eax - 0x42f62301], eax
movsx ecx, ax
sub ax, ax
movzx dx, byte [esi + ecx*4 - 0x8c00]
mov cl, byte [esi + ecx - 0x22fb]
btr ax, ax
not dl
jb 0xcf6097
xor ax, ax
dec eax
xor cl, al
and dl, cl
mov word [esi + eax - 0x42f5fff9], dx
jmp 0x763223
or edx, dword [esi + eax*2 - 2]
xadd cl, al
or cl, al
mov cl, byte [eax + esi + 3]
sal al, 0xa1
or eax, 0x49268e8a
sal al, 3
lea esi, [esi + eax - 0x49268e4e]
shr edx, cl
shr al, 0x27
mov dword [eax + esi - 0x49268e00], edx
rol eax, 0x18
movsx ecx, ax
jmp ebp