Function at 0xfaa862
Capabilities:
Authenticate hmac

Disassembly:
cwde
add edi, ecx
sar dl, 0xa6
jbe fcn.010d94d7
movzx edi, byte [ecx]
mov dword [esp], 0x62029e3e
sal word [esp], 0xaf
xor edi, edx
add dword [esp], 0xb41c679e
and edi, 0xff
push 0x83394b02
mov edi, dword [edi*4 + 0xe788f8]
jmp 0xc238d7
adc edx, 0x28b7a22a
ror edx, 1
neg eax
xchg byte [esp + eax - 0xfffffd], ah
neg ax
not edx
shr dword [esp + eax - 0x1000000], 0x1f
inc byte [esp + eax*4 - 0x3fffffd]
or ax, word [esp + eax - 0xffffff]
neg edx
sar dword [esp + eax - 0x1000000], 0xd7
rol byte [esp + eax*8 - 0x7ffffff], 0x64
inc edx
cwde
xor ebx, edx
sal eax, 0x5c
adc esi, edx
btr eax, 0xaf
neg eax
lea edi, [edi + eax*4 - 1]
not eax
cdq
rol dx, 0x6f
movzx edx, byte [edi]
sal al, 0x82
shr eax, 0x77
xor dl, bl
push eax
sub dl, al
bt eax, eax
jae 0xe6d171
lea edx, [edx + ecx*2 + 0x15b48506]
shr dl, 1
adc ebp, eax
not ecx
movzx eax, cl
mov dx, word [eax + edi - 0xa9]
dec ecx
mov cx, word [edi + eax*2 - 0x150]
btc eax, eax
lea edi, [eax + edi - 0x2a7]
or ax, 0xfba7
push eax
not dx
not word [esp + eax - 0xfbad]
not cx
add ax, word [esp + eax*2 - 0x1f75d]
or dx, cx
inc eax
call fcn.00cd90d7
inc ecx
bswap eax
xor ebx, eax
xor ecx, ecx
adc edi, eax
call int.00ffb662
sub edi, 4
mov ecx, 0x62b972b7
bts ecx, 0xb3
mov edx, dword [ecx + edi - 0x62b972b7]
xor edx, ebx
lea eax, [ecx + ecx*8 + 0x62aa03ae]
btc eax, ecx
btc ax, cx
rol edx, 1
btr ax, 0xa2
not edx
inc edx
push ecx
rol ecx, 0x6f
neg edx
call fcn.0109e026
xor ebx, eax
add ebp, eax
jmp fcn.00e4ff8e
push 0xa61c00ad
shr edx, 8
call fcn.00fc1d16
adc eax, edx
mov dword [ebp - 4], eax
sar word [esp + 2], 0x21
test ebx, ebx
call fcn.00f2baaf
call fcn.00ff4482
mov edx, 0xf830440e
sub edi, 4
mov edx, dword [edi]
call fcn.00d63042
mov eax, 0xe8bd799c
movzx edx, ax
mov eax, dword [esi + edx - 0x799c]
movzx ecx, dx
bt ecx, edx
push ecx
lea esi, [edx + esi - 0x7998]
sal dx, 0x4b
xor eax, ebx
not eax
shl ecx, 0xf6
sal dx, 0xaa
bswap eax
xor eax, 0xf986c699
sub eax, 0xb10a661a
btr edx, edx
sub dword [esp + edx], edx
jae 0x10739df
push ebx
cbw
bts ax, ax
adc eax, eax
mov ebx, edx
adc eax, eax
cdq
rol al, 0x43
or edx, ebx
sal edx, 2
mov eax, ebp
call fcn.00cd0698
mov eax, dword [ebp]
call eax
mov esi, 0x58231a19
mov ebx, esi
push esi
mov ebp, dword [ebp + esi - 0x58231a1d]
mov dword [esi + ebp - 0x58231a19], eax
pop esi
lea edi, [ebx*4 + 0x622c18ad]
mov esi, ebp
movzx ebp, bl
pop ebx
pop ebp
pop edi
sub edi, 4
call fcn.00d11a50
call fcn.00bb9002
mov ecx, 0x699b4490
movsx eax, cx
neg eax
mov ecx, dword [edi + ecx - 0x699b4490]
movzx edx, ax
shl eax, 0x91
rol dl, 2
lea edi, [edi + edx*8 - 0x5de04]
rol edx, 0xca
btr dx, 0x3f
inc dl
xor ecx, ebx
rol ecx, 1
call fcn.00e6241f
jmp 0x10aaec8
lea esp, [esp + 0x14]
je 0xd7d5c3
mov eax, 0x5714cd37
mov eax, dword [ebp + ebx*4]
push eax
dec ebx
push 0xc9b6abba
call fcn.00d7d5b4
mov edx, 0x35244316
movzx ecx, byte [edi + edx*2 - 0x6a48862c]
shr dx, 0x8a
mov eax, edx
lea edi, [edi + edx*2 - 0x6a48001f]
xor cl, bl
or al, 0xa9
btc edx, 0x91
cdq
neg cl
jmp 0x101a311
xor ebx, eax
call fcn.00b88646
neg dl
and dword [esp + eax - 0x1fb], eax
sbb dl, 0xa0
rol dl, 1
cbw
xor bl, dl
or eax, eax
inc ax
and word [esp + eax + 3], ax
xor dword [esp + eax*2 + 4], edi
shr eax, 0x82
mov dword [esp + eax*8], esi
cwde
xor eax, eax
jle 0xcdf266
bts ecx, ecx
push ecx
mov dword [esp + ecx - 3], 0x22a9aa8d
pop ecx
jae fcn.00b943b0
inc edx
xor dword [esp + ebx*2 - 0xb16a], esi
inc ecx
mov edx, 0x5910dd0d
dec edi
lea ebp, [ebp + ecx*8 - 0x6afcb872]
inc ecx
pop edx
dec eax
arpl si, si
inc ecx
shr dh, 0xe3
jb 0xecf162
sub edi, 4
mov ecx, 0x73134f1c
movsx edx, cl
mov eax, edx
mov eax, dword [edi + ecx - 0x73134f1c]
shl cl, 0xc4
or ecx, 0x679fdb32
xor eax, ebx
dec eax
bswap edx
xchg dh, dl
ror eax, 3
jmp 0xf528c6
inc ecx
not ch
dec esp
add esp, esi
push ecx
dec ecx
neg ebp
dec esi
mov ecx, dword [edi + ebx - 0x58b5]
push ebx
call fcn.010d4248
fld dword [edx]
cmpsd dword [esi], dword es:[edi]
loope 0xecf1fd
jle 0xecf1c0
outsb dx, byte [esi]
dec ebp
adc dword [ecx + ebp*8 - 0x1aeef6], edi
push 0x2a822d9f
add esi, 4
push 0x381803b7
ror dword [esp + 8], 0x9e
shld ax, dx, cl
mov word [esi], ax
call fcn.01027cb6
add edx, edx
call fcn.00e6b536
add byte [eax], al
inc ebx
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0xecf26e
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
add byte gs:[0xc28ef417], dh
xor eax, 0xc28ef417
not dword [esp + 0xc]
neg dword [esp + 0xc]
inc eax
push 0xdf9e5390
shl dword [esp + 0xf], 0x44
neg eax
jmp 0xe27c5c
adc byte [eax - 0x80], 0xd2
sbb ebx, dword [eax + 0x48]
ror dl, 1
add al, 0x3f
cwde
xor bl, dl
cwde
mov dword [esp + 0xc], esi
ror eax, 0x1a
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
shl al, 0xc3
lea ebx, [eax + eax*4 - 0x77c9437e]
mov ebx, edx
or dword [esp], 0x8585e035
sal eax, 0x4a
or eax, dword [esp]
mov edx, ebx
shl edx, 2
neg al
rol ax, 0xa2
or al, al
mov eax, ebp
jne 0x10bf2ee
rol cl, 0x63
xor ebx, eax
movzx edx, cl
jmp 0x1016a2c
sub eax, 0x65b53b94
or edx, ecx
neg cx
sbb cl, 0xad
not eax
xor eax, 0xd804c8b
sub edx, 0xe126f722
shr dx, 0xe2
xor ebx, eax
rol cx, 0x47
adc esi, eax
not ecx
movsx eax, dl
mov ebp, dword [ebp + eax*4 - 0xd0]
rol al, 0x86
xchg cx, ax
btr cx, 0x22
jb fcn.00cf9758
shr ecx, 0xe2
xor ebx, edx
bt ax, ax
ror cx, 0xe7
sal cl, 0xe1
add esi, edx
movsx edx, ax
mov ecx, ebp
call fcn.00d5895b
dec ecx
lea eax, [ecx + 0x381c30]
inc esp
mov ebp, eax
dec eax
add ebp, 4
movsx edx, ax
mov ebx, edx
movzx ecx, bx
inc ebp
xor eax, edx
inc ebp
movzx esi, cl
inc ebp
lea eax, [eax + edx*2 - 0x25b17b59]
inc esp
or ebp, edx
call fcn.00ed5d49
sub ecx, 0x3d886f4d
dec eax
enter 0x6b67, 0xfffffffffffffff7
xchg dword [eax - 0x63f8e23e], ebx
sbb eax, 0x1203a28
dec edx
invalid
test ebx, ebx
push 0x7b19f223
jmp 0xe12084
lea edi, [edi + ecx - 0x10003]
call fcn.00ee1f85
mov edx, 0x81a6b29a
sar edx, 0xbf
movzx eax, dl
lea edi, [edi + eax*2 - 0x202]
push edx
mov edx, dword [edi + eax - 0xff]
not word [esp + eax - 0xfe]
xor edx, ebx
xadd al, ah
ror edx, 1
xchg dword [esp + eax*8 - 0x7fff8], eax
xor al, al
not edx
je 0xba811e
xor edx, edx
shl al, 0x82
not cl
sbb ax, 0xd9ba
xchg ah, al
sbb cl, 0x81
and eax, edx
add eax, eax
neg cl
rol dl, 5
bt edx, 0xbf
sbb cl, 0x89
sub edx, eax
shl ax, 0x21
xor bl, cl
xor eax, eax
lea esi, [edx + esi - 2]
jl 0xe73e9c
neg al
mov word [esi + edx], cx
jg 0xb9cc04
bt edx, edx
movsx ecx, ax
add eax, dword [edx + edi]
rol ecx, 0xdf
bswap ecx
lea edi, [edx + edi + 4]
add edx, ecx
neg edx
xor cx, dx
xor eax, ebx
inc ecx
btr edx, edx
ror eax, cl
bswap edx
lea eax, [eax + edx + 0x5b02c68f]
xchg cx, dx
bt cx, dx
rol eax, 1
bswap eax
rol eax, 1
add ecx, ecx
or dx, 0xd42e
ror ecx, 0x14
not eax
js 0x109234a
not cl
xor bl, cl
sub edi, 4
mov dword [edi], ecx
neg al
mov ecx, edx
btr dx, dx
sbb esi, 4
push ecx
pop ecx
add edx, ecx
mov eax, dword [edx + esi - 0x140001f0]
xor eax, ebx
inc eax
and dx, cx
add ecx, 0x34a2c927
sar edx, 0x41
bswap eax
rol eax, 3
lea eax, [edx + eax - 0x3528fa0f]
xor ebx, eax
or cl, 0xbb
seta cl
adc ebp, eax
jmp fcn.00ff1508
xor ebx, eax
pop edx
add ebp, eax
call fcn.01055ac9
mov ebp, edi
mov ebx, edx
not eax
movzx edx, al
mov edx, ebx
inc al
dec al
sal edx, 2
btr eax, eax
mov eax, ebp
adc eax, edx
mov dword [ebp - 4], eax
push 0xaebc6b9d
test ebx, ebx
jmp 0xdaa850
sub edx, edx
inc eax
jmp 0xc166f0
mov eax, 0x87375821
call fcn.00eadb04
lea eax, [eax + ecx*4 - 0x58fc044f]
not eax
rol cx, 0xa
xor ebx, eax
jmp 0xbfe230
lea esp, [esp + 4]
je 0x109809e
mov eax, 0x328c2706
sub eax, eax
adc eax, dword [ebp + ebx*4]
jmp 0xda3372
dec dword [esp]
jle 0xc81e6b