Function at 0x40f6f3
Capabilities:
Authenticate hmac

Disassembly:
mov cx, word [edi + 0x20]
push ecx
jmp 0x40a448
push esi
call fcn.00428fca
push ebx
pop ebx
xor edx, edx
jb 0x43704b
mov dx, word [edi + 0x24]
jmp 0x421cc8
call fcn.0042654a
mov dx, word [edi + 0x28]
push edx
push 0x410eb3
ret
pop dword [esp - 4]
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov bh, bh
jno 0x41f2b7
jo 0x40f70b
nop
cpuid
ret
jo 0x41f2b7
xor ecx, ecx
jb 0x41b1ff
xchg cl, dh
xchg dh, cl
ja 0x40a441
jbe 0x419c3f
fbld tbyte [esi]
pushal
push ecx
push 0xfc860fea
pop es
invalid
jbe 0x40a441
xor eax, 0x42f110a0
add byte [eax], al
inc ecx
add byte [eax + 0x24], al
add byte [ecx], al
add byte [eax], al
in al, dx
add al, 0
add byte [eax], al
add dword [eax], eax
add byte [eax], al
inc ecx
add byte [eax], al
cmp al, 0
add byte [eax], al
test byte fs:[edx], al
push edx
cmpsd dword [esi], dword es:[edi]
inc edx
add bh, bh
inc dword [eax]
add byte [eax + eax], bh
add byte [eax], al
nop
cli
inc edx
add byte [ecx - 0x73], dh
inc edx
add byte [0x3c0041aa], ah
add byte [eax], al
add byte [eax], ch
add byte [eax], al
add byte [eax + 0x7a0042fa], dl
lea eax, [edx]
sbb ah, byte [edi]
inc edx
add byte [eax + eax], bh
add byte [eax], al
inc eax
insd dword es:[edi], dx
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
mov bl, byte [edi + 0x42]
add byte [esp + ebx*4 - 0x6b9dffbf], dh
sbb dword [eax], edi
cmp ecx, dword [edx - 0x66ffbda1]
cmp eax, dword [eax + eax - 0x7e]
mov word [edx + 0x7a0040f9], ss
mov bh, 0x40
add byte [0x42c0433f], ah
add byte [eax], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edi + 0x41], cl
add byte [eax + eax], ah
add byte [eax], al
and al, 0
add byte [eax], al
nop
cli
inc edx
add byte [ebp - 0x41], ah
inc ecx
add byte [ebx + 0x1d], al
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add cl, dl
loop 0x419d39
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ecx - 0x61], bh
inc ebx
add byte [esi + 0x1b00419d], dh
adc al, 0x43
add byte [ebx*4 + 0x45fa0041], dl
jmp 0x43246eea
add byte [eax], al
add byte [0x22000000], ah
inc edx
add byte [eax + eax], ah
add byte [eax], al
sub byte [eax], al
add byte [eax], al
push edx
cmpsd dword [esi], dword es:[edi]
inc edx
add bh, bh
inc dword [eax]
add byte [eax], ch
add byte [eax], al
add byte [eax + 0x6e0042fa], dl
mov edi, 0x1d230041
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [eax], dl
int1
inc edx
add byte [eax], al
inc eax
add byte [eax], al
sub byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
sub byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], cl
add byte [eax], al
sub al, 0x42
add byte [esi + eax*8], ah
inc ebx
add byte [eax], al
add byte [eax], al
and al, 0
add byte [eax], al
and al, 0xc6
inc ebx
add byte [eax + eax], ah
add byte [eax], al
inc eax
add byte [eax], al
add byte [edx], bl
daa
inc edx
add byte [eax], bh
add byte [eax], al
add byte [0x1c00438c], al
mov ebx, 0x43f39a
or dword [ebx], eax
add byte [eax], al
and al, 0
add byte [eax], al
sbb ah, byte [edi]
inc edx
add byte [eax + eax], bh
add byte [eax], al
adc cl, dh
inc edx
add byte [eax], al
inc eax
add byte [eax], al
and al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
sub byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], cl
add byte [eax], al
sub al, 0x42
add dh, cl
test dword [eax], eax
or al, 0
add byte [eax], al
and al, 0
add byte [eax], al
sbb ah, byte [edi]
inc edx
add byte [eax], bh
add byte [eax], al
add byte [ebp + 0x4f], al
inc ecx
add byte [eax + eax], ch
add byte [eax], al
sub al, 0
add byte [eax], al
add eax, 0xe900438c
push ecx
sub ah, 0x8b
push es
jb 0x433311
mov bh, bh
je 0x436454
jne 0x41f274
or al, 0xda
xchg ebp, eax
push 0xa
xchg cx, ax
xchg cx, ax
push esi
call fcn.0044076e
add esp, 8
xor ax, ax
xor eax, eax
jb 0x41f8e2
shl ebx, 0x20
pop edi
pop esi
pop ebp
ret
lea esi, [esi + 0xc]
mov dword [ebx], eax
jne 0x43dd8a
je 0x41f2c9
scasd eax, dword es:[edi]
jp 0x41f287
scasd eax, dword es:[edi]
ror byte [edi], cl
test byte [ebx - 0x7dfffe16], bh
jb 0x41f261
je 0x43dd8a
inc esp
div dword [ebx + edi]
mov dword [ebp + 0x24], eax
xchg bx, bp
xchg bp, bx
mov ax, ax
mov dword [ebp + 0x2c], edx
jmp dword [esi]
stosd dword es:[edi], eax
jecxz 0x41f8ce
clc
mov eax, 0x7825ffff
xchg bx, bp
jmp 0x421cc9
push edx
push esi
call fcn.0042086e
mov bp, bp
mov eax, dword [edi + 0x40]
push eax
jmp 0x421cda
push esi
call fcn.00416768
mov ecx, dword [edi + 0x3c]
shr ecx, 3
push ecx
push esi
ja 0x40c930
mov cl, cl
jbe 0x421cf7
invalid
jbe 0x40c930
fadd st(2)
lea esi, [esi + 8]
shr dword [ebx + edx], cl
jmp dword [esi]
push 0x18
jmp 0x42bc52
push esi
fiadd dword [ebx - 9]
push edx
inc ecx
add byte [eax + eax], ch
add byte [eax], al
and al, 0
add byte [eax], al
nop
cli
inc edx
add byte [edi], dl
sub al, byte [ecx]
adc cl, dh
inc edx
add byte [eax], al
popal
add byte [eax + 0x28], al
add byte [ecx], ah
add byte [eax], al
inc dword [eax]
add byte [eax], al
add byte [edx], dl
add byte [eax], al
add byte [edx], al
add byte [eax + eax], ch
add byte [eax], al
mov esi, 0x8d004083
mov edi, 0x3c0041
add byte [eax], al
cmp al, 0
add byte [eax], al
or ah, byte [ebp + 0x42]
add byte [eax + eax], ch
add byte [eax], al
and al, 0
add byte [eax], al
nop
cli
inc edx
add byte [eax - 0x5effbc05], al
sti
inc eax
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
mov dl, 0x91
inc edx
add cl, dh
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
nop
cli
inc edx
add byte [eax - 0x54ffbc05], dl
in eax, 0x42
add byte [edx], dl
add byte [eax], al
and al, 0
add byte [eax], al
push edx
cmpsd dword [esi], dword es:[edi]
inc edx
add bh, bh
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
nop
cli
inc edx
add byte [edi + 0x1a0043b2], cl
daa
inc edx
add byte [eax], bh
add byte [eax], al
add byte [edx], ah
inc edx
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [0x1700438c], al
out 0x24, al
mov byte [ebx], 0x38
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
and al, 0xc6
inc ebx
add byte [eax + eax], ah
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
pop ebp
add al, byte [edx]
prefetchnta byte [eax]
xor al, cl
inc eax
add bl, dh
xor eax, dword [ebx]
push ecx
pop esi
cmp esi, dword [edx + 0x7e]
xor al, cl
inc eax
add byte [edi], cl
sbb byte [eax], al
fsub dword [esi - 0x77]
in al, dx
cmp dword [edi + 0x3c], 8
jae 0x419c25
jb 0x436465
pop ss
sbb eax, 0x57e4850f
invalid
jne 0x42bc4f
je 0x436471
cpuid
inc edx
ret
je 0x42bc4f
mov edx, dword [esi + 8]
mov eax, dword [ebp + eax]
shr bp, 0x40
lea esi, [esi + 0xc]
sub dword [ebx + edx], eax
shr edi, 0x40
jmp dword [esi]
add byte [eax], al
xchg edx, eax
sbb eax, 0x9fbe870f
std
push dword [esi + 2]
jecxz 0x43702a
jbe 0x411011
jmp dword [esi]