Function at 0x49e5b5
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x49e5d2
cmp dword [ebx + 0x2c], 0
jne 0x49e5d7
mov edi, ebx
mov dword [ebp + 0xc], edi
cmp dword [edi + 0x1c], ebx
je 0x49e5df
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0x40
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x18], 0
mov dword [ebx + 0x2e4], 0
mov dword [ebx + 0x2e8], 0
mov dword [ebp - 0x10], 0x40
call fcn.0049ad95
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
test esi, esi
jne 0x49e635
push 0x660558
call fcn.0049d475
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
push edi
push ebx
mov dword [ebp - 4], esi
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x2f0]
push ebx
call eax
mov edi, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x1c], eax
cmp esi, edi
jbe 0x49e773
cmp eax, 0x3c
je 0x49e66d
cmp eax, 0xffffffff
jne 0x49e77c
mov edi, dword [ebp - 0x14]
mov byte [esi], 0
cmp edi, 2
je 0x49e67d
cmp edi, 0xffffffff
jne 0x49e68b
push dword [ebp + 8]
call fcn.0049c7f5
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp + 8]
xor esi, esi
call fcn.0049bba5
add esp, 4
test eax, eax
je 0x49e762
mov eax, edi
sub eax, 1
je 0x49e710
sub eax, 1
je 0x49e6f4
sub eax, 1
jne 0x49e762
cmp dword [ebx + 0x44], esi
je 0x49ed62
mov edi, dword [ebp - 8]
mov dword [edi + 0x18], 3
push dword [ebp + 8]
mov eax, dword [ebx + 0x44]
push edi
push ebx
call eax
add esp, 0xc
test eax, eax
jne 0x49e762
push dword [edi]
push dword [ebp + 8]
push 0x6605a0
call fcn.0049d475
add esp, 0xc
jmp 0x49eea1
mov edi, dword [ebp - 8]
push 1
mov dword [edi + 0x18], 2
push dword [ebp + 8]
push edi
call int.0049fe95
add esp, 0xc
test eax, eax
jmp 0x49e75c
cmp dword [ebx + 0x2e8], esi
je 0x49e747
push dword [ebp + 8]
call fcn.0049be25
mov edi, dword [ebp - 8]
add esp, 4
cmp byte [eax], 0
je 0x49e74a
cmp dword [edi + 0x18], esi
jne 0x49e74a
mov dword [edi + 0x18], 1
push dword [ebp + 8]
push edi
call fcn.0049e305
add esp, 8
test eax, eax
jmp 0x49e75c
mov edi, dword [ebp - 8]
push dword [ebp + 8]
push 0
push edi
call fcn.0049e2a5
mov esi, eax
add esp, 0xc
test esi, esi
je 0x49ed74
mov eax, dword [ebp - 0xc]
test eax, eax
mov edi, dword [ebp + 8]
cmove eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
je 0x49ee73
cmp eax, 0x3c
jne 0x49ed23
mov eax, dword [ebx + 0x2f0]
push ebx
mov dword [ebp - 4], edi
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0x49e8ae
pop ds
inc edx
mov edi, 0xadd8d342
loop 0x49e809
and ah, byte [ebp + 0x12]
add edi, dword [ebp - 0x5d21dd9b]
inc edx
mov ch, 0xc3
mov dl, 0xc1
idiv byte [ebx - 0x74]
mov dh, 0x3a
int1
add dl, ah
mov dl, 0xb6
dec ebp
xor byte [edi + edx*8 - 0x3e], bh
inc esp
into
test dword [ecx], eax
mov word [ecx], fs
salc
add esi, edx
shl dh, 1
lcall 0x34f2, 0xf0c2ef1f
test dword [eax + 0x28ba1835], eax
xchg edx, eax
pop edx
hlt
push esp
xchg byte [eax + 0x58104351], bh
jp 0x49e809
pushal
mov al, 0xb4
xchg edx, eax
xchg esp, eax
push es
mov ch, 0x23
and dword [ebx], edx
adc esi, eax
inc edx
sub eax, 0xe63db0fa
loope 0x49e870
mov eax, dword [0x30c4b3]
mov al, 0xec
rcr byte [ebx + 0x4b5a4d50], 1
mov eax, dword [0x54fb6e5b]
jg 0x49e831
bound edi, qword [esi - 0x17]
mov esp, edx
pop es
mov edx, 0x7d76b6b4
pop esp
popal
jbe 0x49e7fc
lodsd eax, dword [esi]
jns 0x49e88f
dec esi
pop ss
add edx, dword [ecx + 0x3aaccf39]
or eax, dword [edx + 0x23b5325f]
dec edi
xor al, 0x40
adc ecx, dword [0xd31cb412]
push ebx
mov dl, 0xb0
insb byte es:[edi], dx
into
stosd dword es:[edi], eax
and dword [eax], esp
inc esp
push es
test al, 0xd6
and al, 0x41
arpl word [ecx], ax
jns 0x49e8b3
pop ebx
lock xor byte [eax], cl
mov bl, 0x4c
dec esp
lock adc dword [eax - 0x2c9dca2f], 4
push ecx
pop esi
invalid
inc ebx
add edx, dword [ecx]
popal
jae 0x49e8e8
xor byte [edx], dl
loop 0x49e89f
push es
mul byte [edi - 6]
cli
jg 0x49e88d
xor byte [eax], dh
nop
xchg byte [edx + 0x64], bl
cmp eax, 0x785ce67c
aaa
js 0x49e8d5
out 0xbe, al
int1
inc eax
adc byte [eax + 0x10], 0x45
cld
mov esi, 0x508240f1
adc byte [ebp - 4], al
lcall 0x91, 0xa64ad2be
dec eax
cld
push ss
mov eax, fs
and al, 0xf8
in al, 0xed
cld
push ss
add byte [edx - 0x4b7c0d40], 0xb6
inc esp
push esi
add dword [ebx - 0xe], edx
inc ebx
loop 0x49e900
pop esi
ror byte [eax], 0x19
adc ch, bh
loop 0x49e881
cmp bl, al
push ds
adc esi, dword [edx - 0x224e5858]
test al, 0xa7
mov cl, 0xdd
into
outsb dx, byte [esi]
jge 0x49e89c
pushal
lodsd eax, dword [esi]
ret 0x52f4
lds edx, [esi - 0x79d3f1af]
push cs
sub al, 0x86
stosd dword es:[edi], eax
jns 0x49e96e
add eax, 0xaa9eb7c5
int1
ret 0xef92
mov byte [0x9e52237d], al
add eax, 0xea3153fc
pop esi
push cs
push ebx
inc ebx
in eax, 0x13
test dword [esi + 0x4486a42c], esi
out dx, al
out dx, al
mov eax, ss
add dl, byte [edi]
mov bh, 0
mov al, 0x9f
ja 0x49e959
ljmp 0x13e5:0x43530e5e
clc
insb byte es:[edi], dx
jle 0x49e909
invalid
or dword [ecx - 0x3749ca2e], eax
push esi
fnstenv [edx + 0x35]
loop 0x49e8eb
outsd dx, dword [esi]
pushfd
call dword [ecx]
neg dword [ebx + 0x57]
xor ebp, dword [ebx + 0x7340322e]
xor al, byte cs:[eax + 0x73]
invalid
mov dword [0x11336f15], eax
add eax, 0x11336f15
aam 0x80
add bh, byte [edx + 0x65]
jb 0x49ed5a
ffree st(2)
aad 0xce
xor ch, dl
mov eax, dword [0xa980c862]
jmp 0x49edb1
mov esi, 0x41ea841c
aaa
invalid
sbb al, 0x84
ljmp 0xfc51
push ecx
cld
mov ecx, ebp
add ah, byte [esi - 0x70]
aaa
xchg esp, eax
mov dword [0xfa1c362d], eax
pop ebp
pop ebx
loopne 0x49ed22
popal
or al, 0x36
add al, 0xf0
inc eax
or eax, 0x59020caf
xor byte [eax], 0x72
cwde
add bl, byte [ecx - 0x7e]
xor byte [edx - 0x68], dh
arpl word [ecx + 0x43], si
lcall 0x8741, 0x1243
loope 0x49edb3
mov word [edx + ebx], ds
iretd
int3
push 0x7176e221
fld dword [ecx]
cwde
push ebp
pop es
sub ebx, dword [edx + ebx - 0x22d19984]
outsd dx, dword [esi]
arpl word [esi], bx
xlatb
or dword [ebx], ecx
seto cl
loop 0x49edfc
xchg ecx, eax
jo 0x49ed5b
sal edx, 0xf3
out 0xff, eax
jae 0x49ed7d
mov edi, 0x42555087
not byte [ebp + 0x17a44053]
mov edi, 0xdd1ff0c6
out dx, al
sub byte [eax], bh
invalid
ret 0x308f
stosd dword es:[edi], eax
or bl, ah
cmovb edi, edi
jl 0x49ee56
sub bl, byte [ebx + 0x62]
dec ebx
xchg esi, eax
sbb eax, 0x2f98bb32
js 0x49ede6
in al, dx
shl dword ss:[esi], cl
push esi
jmp 0x60dc343d
outsb dx, byte [esi]
popfd
push ebx
and ch, ah
fmul qword [ebx + 0x53f8f4b0]
mov eax, 0xe97c1988
lodsb al, byte [esi]
in eax, dx
jae 0x49ee5c
dec edx
leave
adc byte [ecx + 0x2d], ah
outsd dx, dword [esi]
push 0x60
and al, 0xee
pop edi
call dword [ecx + 0x44960ddf]
int3
fisttp word [0xeecc4496]
xor esp, dword [ebx + 0x6c74cf24]
f2xm1
adc byte [edx], bh
jo 0x49edec
call 0x6fa04156
and eax, 0x989e6380
invalid
jle 0x49ee35
ret
les ebx, [edx]
jb 0x49ee47
push 0x5c
int 0x2d
push ecx
sub ah, byte [0xd33d8f2c]
mov esi, 0xa08c80db
fidivr dword [ecx]
inc eax
mov byte [esi + 0x74098395], cl
aam 0xae
sal dword [ebp + 0x76c2d757], cl
push edx
into
xchg esi, eax
adc dword [edx - 6], edi
mov eax, dword [0x90e65d11]
mov al, 6
out dx, al
shl byte [edx - 0x13446d27], 1
add al, 0x7c
dec eax
mov byte [0xb7681a03], al
jae 0x49ef13
mov ah, 0x4d
mov bh, 0x59
adc ecx, dword [ebp - 0x56]
orps xmm2, xmmword [eax + 0x20]
mov dword [0xffef2da2], eax
sti
or dl, byte [ecx - 0x77d776e]
test byte [ebp + 0x12e3fd41], ah
ret
aaa
in al, 0xd2
jmp 0x4414c0d6