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

Disassembly:
xor eax, ebx
dec cl
dec eax
lea ecx, [edx*8 - 0x64e5834e]
sar dl, 0xe5
jne 0xea96b7
mov ecx, dword [esp]
sub esi, 8
btc ecx, ecx
or cl, cl
and ecx, ecx
mov dword [esi + 4], eax
bts cx, cx
movsx eax, cl
sub al, byte [esp + eax - 2]
mov dword [esi + eax*2 - 0xea], edx
movzx edx, word [esp + eax - 0x75]
cwde
pop edx
jbe fcn.00a106d2
mov edx, 0x912fc82e
mov eax, dword [esi]
mov edx, dword [eax]
mov dword [esi], edx
mov eax, 0x549f2503
cdq
add edx, dword [ebp + edx - 4]
movzx ecx, al
bts eax, ecx
sub al, 0x9d
xor edx, ebx
lea edx, [eax + edx - 0x57d7f60e]
bts cx, 5
shl cl, cl
neg edx
inc edx
sar ecx, 0x13
xadd ecx, eax
rol edx, 1
sub cl, 0x33
inc edx
xor ecx, ecx
jnp 0x9628f2
lea eax, [eax + eax*2 + 0x7c39dca6]
xor ebx, edx
cbw
dec cx
or cx, ax
mov dword [eax + esi - 0x7c39ffaa], edx
ror cx, 0xe3
xor eax, 0xf5a458a5
call fcn.00a0a8c1
mov ebp, 0x16093680
inc esp
movzx ebp, bp
inc ebp
mov edi, dword [edx + ebp*2 - 0x2c126d04]
dec esp
lea esi, [ebp + ebp - 0x7f190d9]
inc esp
xor edi, ebx
inc cx
neg ebp
movsx edx, bp
inc ecx
inc edi
movsx eax, dl
inc ecx
rol edi, 3
dec esp
lea eax, [edx + ebp*4 + 0x1198b3aa]
inc ecx
and ebp, eax
and eax, 0x540ea31e
inc ecx
xor edi, 0x46210c2f
push edx
dec ecx
shr eax, 0xf0
inc ecx
sbb edi, 0xfd9cb5ba
dec esp
or esi, dword [esp + ebp*8 - 0x482000]
sub byte [esp + ebp - 0x903f9], 0x2f
dec esp
or dword [esp + ebp - 0x90400], esi
dec eax
mov dword [esp + ebp - 0x90400], ebx
jl 0x99a800
inc ecx
bswap eax
inc ecx
xor eax, 0x1dbf111a
inc ecx
sub eax, 0xa5309b0c
dec esp
mov dword [esp + esi - 0x13fffff3], ebp
inc ecx
shr ebp, 0xca
setbe dl
inc ecx
rol eax, cl
dec eax
xor dword [esp + esi - 0x13fffff3], ebx
inc esi
xor dword [esp - 0x51a8d66b], eax
sub esi, 0x5bb0c4b6
pop ebx
inc ecx
setne ch
dec ebp
arpl ax, ax
dec esp
lea esp, [esi*2 + 0x718edd84]
inc ebp
cmovb edi, ebp
sar dx, 0xca
dec ecx
adc edi, eax
dec ecx
inc ebp
inc ecx
xchg esi, ecx
dec ecx
lea ebp, [edi + esi*4 + 0x4b30a9b1]
dec ebx
lea edx, [ecx + edi*8 - 4]
jle 0x9bb0c2
dec eax
add esi, ebp
dec ebx
mov dword [ecx + edi*8 - 0xc], edx
call fcn.00a6aa97
mov edx, 0xab1ac20a
mov eax, dword [esi]
mov ecx, edx
xor dl, 0xb6
adc esi, 4
dec dl
shr ecx, 0x8d
jae 0x933cdc
dec ebx
lea ecx, [ebp + esi*4 + 0x4e0cd605]
dec edx
dec dword [esp + ebp - 0xf781]
dec edi
lea edx, [ebp + edx - 0xf785]
jns 0xb67ccc
inc cx
rol edi, cl
dec ecx
adc edi, esp
shr eax, cl
dec eax
sal ebp, cl
cwde
dec edi
mov esi, dword [ecx + ebp*4 - 0x3ddf4]
call fcn.009d919f
inc ecx
mov esi, ebp
inc esp
xor dword [esp + ebp*4 - 0x241000], edi
movsx ebx, ax
cbw
mov ecx, ebp
pop ebx
dec ebp
arpl di, di
dec ecx
add edi, edi
dec eax
shr ebp, 0xfe
dec esp
lea ebx, [ebp + esi*8 - 0x54113dd]
inc ebp
movzx esp, byte [edx + ebp*2 - 5]
inc ebp
adc dh, ch
push edx
inc ecx
pop edi
inc esp
xor ah, bl
inc ecx
not ah
inc sp
sub eax, ebp
inc ecx
push ebp
sbb byte [esp + ebp + 5], 0xae
inc ecx
neg ah
inc eax
not ch
dec eax
not edx
mul al
inc ecx
ror ah, 1
inc eax
add dh, 0x36
inc ecx
ror dh, 0x61
dec ebp
btc eax, ebx
inc esp
sbb ah, ch
jmp 0x9c1963
add dword [esp + edx - 0x299f240e], esi
inc eax
xor ch, bl
inc ecx
pop esp
inc ebp
movzx eax, di
inc eax
rol ch, 1
inc ebp
sub ah, al
inc eax
dec ch
inc eax
neg ch
inc eax
sub ch, 0x3b
dec esp
lea ebp, [esi*8 + 0x2ab01914]
dec ecx
and esi, esp
inc ecx
setno al
inc eax
not ch
dec eax
lea ecx, [esi - 0x2bf69fed]
inc cx
or edi, 0x12414301
call 0x829a7148
inc eax
neg ch
rol dl, 0x64
inc ecx
btr eax, ecx
dec ebp
xor eax, edi
inc eax
xor bl, ch
dec eax
sal esi, cl
inc sp
xor edi, esi
dec edi
lea ecx, [ecx - 0x7d2107af]
inc ecx
rol ch, 6
not edx
inc bx
mov dword [ecx - 0x7d2107ad], ebp
inc ecx
btc edi, esi
dec edi
lea edx, [edx - 0x7d2107b1]
jb 0xa3f40a
inc cx
mul ebp
inc ecx
ror ah, 1
call fcn.00a5191f
mov eax, 0x540d3a1e
mov edx, dword [ebp + eax - 0x540d3a1e]
ror eax, 0xd4
mov cx, word [edx]
ror eax, 0x87
movzx edx, al
lea ebp, [ebp + edx - 0xc8]
cwde
or eax, 0xcabcf99b
mov word [ebp + edx*2 - 0x194], cx
mov eax, dword [esi + edx*8 - 0x650]
lea ecx, [edx*4 - 0x3f531cff]
btc ecx, ecx
lea esi, [edx + esi - 0xc6]
bt ecx, 0x86
adc cx, 0x794
neg ecx
xor eax, ebx
bt edx, edx
adc ecx, ecx
lea eax, [eax + edx*2 + 0x1fa96494]
btc ecx, edx
imul dx, dx
add cl, dl
rol eax, 3
sar dl, 0xc1
jge 0x9fb5a7
movzx ecx, byte [esi]
mov edx, 0xc83fe795
xor cl, bl
movsx eax, dl
xor al, dl
not cl
xor al, al
ror cl, 1
xadd al, dl
inc cl
not al
ror cl, 1
bts eax, eax
adc cl, 0x81
not cl
and ax, ax
sub edx, eax
rol al, 7
dec cl
not cl
btr ax, 3
ror eax, 0xca
adc cl, 0x17
xor cl, al
btr edx, 0xb9
imul ax, ax
btc dx, dx
xor bl, cl
shl eax, 0x24
mov word [ebp - 2], cx
not ax
cwde
mov eax, dword [esi + 1]
lea ecx, [edx*8 + 0x79faf87]
inc ecx
lea esi, [esi + ecx - 0x499eee33]
add ecx, edx
sbb cx, dx
sbb dl, cl
xor eax, ebx
lea edx, [edx*2 + 0x75901f88]
call fcn.009d5e67
bswap eax
inc edi
mov ebx, dword [edx - 0x7d2107ad]
inc esp
xor ebx, ebx
dec ecx
sar ebp, 9
movzx ebp, cx
inc ecx
xor ebx, 0xb7af0ca0
inc edi
lea ebx, [esp + ebx - 0x500ed317]
call fcn.00aa3e90
push ecx
pushal
jge 0xa3f472
shr byte [ecx + ebp*4], 0xec
popal
dec edi
pop ebp
sbb edi, dword [ebp - 0xfe7ba0d]
wait
mov ebx, 0x694c5afb
inc dx
ror dword [esp + ebp - 0xf77e], 0x87
inc ecx
inc esp
neg cx
dec edx
mov dword [esp + ebp - 0xf781], ebx
inc eax
rol dh, 0x67
inc ecx
xor eax, ebp
inc esi
xor dword [esp + ebp*8 - 0x7bc08], esp
shr ebp, cl
inc esp
mov eax, esi
inc ecx
dec eax
pop ebx
dec ebp
arpl sp, sp
jl 0x96c379
sbb cl, cl
inc esp
xor esp, ebx
dec eax
lea esi, [ecx*2 - 0x5acd1beb]
inc dx
not dword [esp + ebp*8 - 0x7bc07]
inc ecx
rol esp, 3
inc edx
shl byte [esp + ebp*4 - 0x3de01], 0x24
inc ecx
not esp
movsx ebp, dl
inc edx
mov eax, dword [esp + ebp - 0xf77e]
cwde
inc ecx
ror esp, 2
inc ecx
not esp
inc esp
movzx edi, al
jmp 0xa563d7