Function at 0x16ae3
Capabilities:
Authenticate hmac

Disassembly:
bt bx, ax
cmp al, 9
mov byte [esp + 4], cl
mov byte [esp], 0x2b
jmp 0x1650c
pushal
lea esp, [esp + 0x2c]
je 0x17ad7
pushfd
sub al, 0x30
pushfd
jmp 0x13e89
pushfd
cmc
add edi, 1
sub al, 0x7b
clc
mov al, byte [edi]
clc
call fcn.00013ca3
mov word [esp], 0xa71b
lea esp, [esp + 8]
ja 0x17e89
bt si, si
pushfd
imul edx, edx, 0xa
jmp 0x17aa1
test cl, ah
test al, al
jmp 0x15498
clc
add edx, eax
pushal
mov dword [esp], 0x64904338
pushal
lea esp, [esp + 0x44]
jmp 0x15df5
movzx edi, dl
mov edi, edx
call fcn.00013fb6
lea eax, [edi + 0x50]
cmp ebp, eax
ja 0x18172
mov edx, esp
lea ecx, [edi + 0x40]
sub ecx, edx
lea eax, [ebp - 0x80]
and al, 0xfc
sub eax, ecx
mov esp, eax
pushfd
push esi
mov esi, edx
lea edi, [ecx + eax - 0x40]
push edi
mov edi, eax
cld
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
popfd
jmp 0x18172
movzx eax, byte [esi]
mov edx, dword [eax + edi]
sub ebp, 4
inc esi
mov dword [ebp], edx
jmp 0x17e8e
mov ax, word [ebp]
mov cl, byte [ebp + 2]
sub ebp, 2
shr ax, cl
mov word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov eax, dword [ebp]
mov eax, dword [eax]
mov dword [ebp], eax
jmp 0x18172
movzx ax, word [esi]
cwde
sub ebp, 4
mov dword [ebp], eax
sub esi, 0xfffffffe
jmp 0x17e8e
mov edx, dword [ebp]
add ebp, 2
mov al, byte ss:[edx]
mov word [ebp], ax
jmp 0x18172
push dword [ebp]
add ebp, 4
popfd
jmp 0x18172
mov edx, dword [ebp]
add ebp, 2
mov al, byte [edx]
mov word [ebp], ax
jmp 0x18172
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
add ebp, 8
mov dword es:[eax], edx
jmp 0x18172
mov eax, dword [ebp]
add ebp, 2
mov ax, word ss:[eax]
mov word [ebp], ax
jmp 0x18172
mov esp, ebp
pop ecx
pop edx
pop ebx
pop eax
pop ebp
pop edx
pop edi
pop edi
pop esi
pop ecx
popfd
ret
mov al, byte [ebp]
mov cl, byte [ebp + 2]
sub ebp, 2
shr al, cl
mov word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov al, byte [esi]
lea esi, [esi + 1]
mov dx, word [ebp]
add ebp, 2
mov word [eax + edi], dx
jmp 0x18172
mov eax, ebp
sub ebp, 4
mov dword [ebp], eax
jmp 0x17e8e
mov al, byte [esi]
cbw
cwde
sub ebp, 4
sub esi, 0xffffffff
mov dword [ebp], eax
jmp 0x17e8e
mov edx, dword [ebp]
mov eax, dword [ebp + 4]
div dword [ebp + 8]
mov dword [ebp + 4], edx
mov dword [ebp + 8], eax
pushfd
pop dword [ebp]
jmp 0x18172
not dword [ebp]
mov ax, word [ebp]
sub ebp, 2
and word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
add ebp, 8
mov dword [eax], edx
jmp 0x18172
mov al, byte [esi]
inc esi
mov ax, word [eax + edi]
sub ebp, 2
mov word [ebp], ax
jmp 0x17e8e
mov ax, word [ebp]
mov cl, byte [ebp + 2]
sub ebp, 2
shl ax, cl
mov word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
movzx eax, byte [esi]
lea esi, [esi + 1]
mov edx, dword [ebp]
add ebp, 4
mov dword [eax + edi], edx
jmp 0x18172
mov eax, dword [ebp]
mov dl, byte [ebp + 4]
add ebp, 6
mov byte [eax], dl
jmp 0x18172
mov eax, dword [esi]
sub ebp, 4
mov dword [ebp], eax
add esi, 4
jmp 0x17e8e
rdtsc
sub ebp, 8
mov dword [ebp], edx
mov dword [ebp + 4], eax
jmp 0x17e8e
mov eax, dword [ebp]
cpuid
sub ebp, 0xc
cmp dword [ebp + 0xc], 1
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], ebx
mov dword [ebp + 4], ecx
mov dword [ebp], edx
jne 0x17e8e
mov ebx, eax
and ebx, 0xff0
cmp ebx, 0xfe0
jne 0x17e8e
xor byte [ebp + 0xc], 0x20
jmp 0x17e8e
mov eax, dword [ebp]
mov cl, byte [ebp + 4]
sub ebp, 2
shl eax, cl
mov dword [ebp + 4], eax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov ax, word [ebp]
sub ebp, 2
add word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
add ebp, 8
mov dword ss:[eax], edx
jmp 0x18172
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov cl, byte [ebp + 8]
add ebp, 2
shld eax, edx, cl
mov dword [ebp + 4], eax
pushfd
pop dword [ebp]
jmp 0x18172
mov al, byte [esi]
movzx ecx, al
lea esi, [esi + 1]
lea eax, [ebp + ecx*4]
mov dword [ebp - 4], eax
or ecx, ecx
je 0x18122
xor eax, eax
xchg dword [ebp + ecx*4], eax
push eax
sub ecx, 1
jne 0x18112
xor eax, eax
xchg dword [ebp], eax
call eax
mov ebp, dword [ebp - 4]
mov dword [ebp], eax
jmp 0x18172
mov eax, dword [ebp]
mov eax, dword ss:[eax]
mov dword [ebp], eax
jmp 0x18172
mov esi, dword [ebp]
add ebp, 4
jmp 0x1816f
add esi, dword [ebp]
mov al, byte [esi]
movzx eax, al
inc esi
jmp dword [eax*4 + 0x18192]
mov eax, dword [ebp]
mov dx, word [ebp + 4]
add ebp, 6
mov word ss:[eax], dx
jmp 0x18172
mov al, byte [esi]
sub ebp, 2
sub esi, 0xffffffff
mov word [ebp], ax
jmp 0x17e8e
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
not eax
not edx
and eax, edx
mov dword [ebp + 4], eax
pushfd
pop dword [ebp]
jmp 0x18172
mov al, byte [esi]
sub esi, 0xffffffff
mov al, byte [eax + edi]
sub ebp, 2
mov word [ebp], ax
jmp 0x17e8e
mov al, byte [ebp]
sub ebp, 2
add byte [ebp + 4], al
pushfd
pop dword [ebp]
jmp 0x17e8e
mov eax, dword [ebp]
mov dx, word [ebp + 4]
add ebp, 6
mov word [eax], dx
jmp 0x18172
mov eax, dword [ebp]
mov cl, byte [ebp + 4]
sub ebp, 2
shr eax, cl
mov dword [ebp + 4], eax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov eax, dword [ebp]
add ebp, 2
mov ax, word [eax]
mov word [ebp], ax
jmp 0x18172
mov edx, dword [ebp]
add ebp, 4
call edx
jmp 0x17e8e
mov ax, word [ebp]
mov dx, word [ebp + 2]
not al
not dl
sub ebp, 2
and al, dl
mov word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov eax, ebp
sub ebp, 2
mov word [ebp], ax
jmp 0x17e8e
mov ax, word [esi]
add esi, 2
sub ebp, 2
mov word [ebp], ax
jmp 0x17e8e
mov al, byte [ebp]
mov cl, byte [ebp + 2]
sub ebp, 2
shl al, cl
mov word [ebp + 4], ax
pushfd
pop dword [ebp]
jmp 0x17e8e
mov edx, dword [ebp]
add ebp, 4
xor eax, eax
mov ecx, eax
shl eax, 7
shr ecx, 0x19
or eax, ecx
xor al, byte [edx]
inc edx
dec dword [ebp]
jne 0x18687
mov dword [ebp], eax
jmp 0x18172
movzx eax, byte [esi]
mov dx, word [ebp]
add ebp, 2
inc esi
mov byte [eax + edi], dl
jmp 0x18172
mov ebp, dword [ebp]
jmp 0x17e8e
mov bp, word [ebp]
jmp 0x17e8e
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov cl, byte [ebp + 8]
add ebp, 2
shrd eax, edx, cl
mov dword [ebp + 4], eax
pushfd
pop dword [ebp]
jmp 0x18172
mov eax, dword [ebp]
add dword [ebp + 4], eax
pushfd
pop dword [ebp]
jmp 0x18172
mov eax, dword [ebp]
mov dl, byte [ebp + 4]
add ebp, 6
mov byte ss:[eax], dl
jmp 0x18172