Function at 0x191f77c
Capabilities:
Authenticate hmac

Disassembly:
sub edx, eax
cmp bx, 0x27ce
sub esi, eax
lea ecx, [ecx + ecx + 1]
cmp ecx, 0x100
jb 0x190a803
mov eax, 1
jmp 0x1918ca6
mov ecx, dword [ebp - 8]
and di, sp
sub edx, eax
bt di, di
cmovo di, sp
sub esi, eax
xor al, 0xc7
clc
mov eax, dword [ebp - 0xc]
sub edi, 0x2dab3c1d
sbb di, 0x437c
clc
movzx edi, word [ecx + eax*2 + 0x198]
mov eax, dword [ebp + 8]
cmp ah, bh
mov dword [ebp - 0x18], 3
cmp edx, 0x1000000
jae 0x18fe7a3
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
test ebx, ecx
cmp cl, 0x88
shl esi, 8
cmp si, cx
cmc
shl edx, 8
or esi, ecx
dec ecx
mov cx, ax
inc eax
bts ecx, ebp
mov dword [ebp + 8], eax
ror ch, cl
mov ecx, edx
cmp dl, al
shr ecx, 0xb
test cx, si
imul ecx, edi
cmp esi, ecx
jae 0x190b041
mov eax, dword [ebp - 0xc]
and edx, 0x4b5f477d
mov edi, dword [ebp - 8]
add eax, 0xf
setno dl
shl eax, 4
setno dh
and dl, 0x58
movsx dx, al
add eax, ebx
shr dh, cl
bt dx, 0x3f
movzx edi, word [edi + eax*2]
shl dx, 0xc3
mov eax, dword [ebp + 8]
btr dx, 0x6d
shr dh, cl
mov edx, ecx
test dx, 0x4320
test ch, ch
cmp ecx, 0x1000000
jae 0x18fe832
cmp eax, dword [ebp - 4]
jae 0x1918cbe
shl ecx, 8
and dx, di
mov edx, ecx
movzx ecx, byte [eax]
shl esi, 8
cmc
clc
or esi, ecx
not ecx
xchg cl, ch
bswap ecx
inc eax
rol ecx, cl
and cl, 0x50
clc
mov dword [ebp + 8], eax
mov ecx, edx
shr ecx, 0xb
test ebp, edx
cmp di, di
imul ecx, edi
cmp ecx, esp
cmp esi, ecx
jae 0x191e80c
cmp ecx, 0x1000000
jae 0x18fe85e
cmp eax, dword [ebp - 4]
jae 0x1918cbe
pop edi
pop esi
mov eax, 3
sets bl
xchg bh, bl
pop ebx
mov esp, ebp
mov ebp, 0x12b61701
mov bp, cx
bswap bp
pop ebp
ret
mov eax, dword [ebp - 0xc]
movzx edi, word [eax + ecx*2]
test edx, 0x1e94493d
clc
cmp edx, 0x1000000
jae 0x190a83f
mov eax, dword [ebp + 8]
cmc
test bh, 0x1d
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ebx, byte [eax]
shl esi, 8
shl edx, 8
or esi, ebx
inc eax
test bp, dx
mov dword [ebp + 8], eax
mov eax, edx
cmp edx, ebp
shr eax, 0xb
clc
imul eax, edi
cmp cl, 0x7f
test edx, 0x18233001
cmc
cmp esi, eax
jae 0x18fe6ea
mov edx, eax
cmc
add ecx, ecx
jmp 0x18fe6f7
mov edi, dword [ebp - 0xc]
test si, 0xd12
stc
sub edx, ecx
cmc
sub esi, ecx
xor cl, 0xe
cmovo ecx, ecx
test edi, 0x744808fc
mov ecx, dword [ebp - 8]
cmc
cmp si, si
movzx edi, word [ecx + edi*2 + 0x1b0]
cmp si, 0x4c9b
cmp edx, 0x1000000
jae 0x190b0aa
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
shl esi, 8
clc
test sp, bp
shl edx, 8
or esi, ecx
movsx ecx, ax
movzx ecx, si
inc eax
adc ecx, edi
bts ecx, esi
dec cl
mov dword [ebp + 8], eax
cmovno ecx, ebp
test si, di
mov ecx, edx
cmp cl, 0xde
shr ecx, 0xb
test esp, 0x53ea2256
test si, cx
imul ecx, edi
cmp ax, 0x180a
cmp esi, ecx
jae 0x191aa4a
mov edx, ecx
jmp 0x191e816
sub eax, eax
mov edi, dword [edi + 0x14]
sub edi, ebx
shr bh, cl
neg bl
lea edi, [edi + ecx]
movzx ecx, byte [edi + eax]
shl ax, cl
inc ax
mov dword [ebp - 8], 0x100
shr edi, 0x68
movzx edi, bp
mov edi, 1
rcl ebx, 0xa5
xadd al, ah
ror ebx, 0xb3
mov edi, edi
rcr eax, cl
mov ebx, dword [ebp - 8]
shld ax, bp, 0xf4
lea ecx, [ecx + ecx]
sub ax, 0x7c36
or eax, ebp
add ax, di
mov eax, ebx
stc
test sp, di
and eax, ecx
mov dword [ebp - 0x18], ecx
cmovb ecx, edi
lea ecx, [eax + edi]
lea ecx, [ecx + ebx]
or bl, 0x59
shr bl, 0x71
bt ebx, 0xf9
mov ebx, dword [ebp - 0xc]
cmp edx, 0x3ae07d9a
cmc
movzx ecx, word [ebx + ecx*2]
stc
mov dword [ebp - 0x10], ecx
cmp bl, 0x39
stc
cmp edx, 0x1000000
jae 0x190cf48
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 4]
jae 0x1918cbe
movzx ebx, byte [ecx]
shl esi, 8
cmp edi, 0x35a56705
cmp edx, edi
clc
shl edx, 8
test bl, 0xdb
stc
cmp ebx, 0x4d3027e0
or esi, ebx
inc ecx
cmp bl, 0x93
mov dword [ebp + 8], ecx
btc cx, 0x2d
cmc
mov ecx, edx
shr ecx, 0xb
stc
imul ecx, dword [ebp - 0x10]
clc
cmc
cmp esi, ecx
jae 0x1910a78
mov edx, ecx
cmp di, 0x329e
stc
cmc
add edi, edi
not eax
jmp 0x1910a8d
sub edx, ecx
clc
sub esi, ecx
test bx, 0x4e0c
clc
cmp edx, 0x1000000
jae 0x190e139
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
clc
shl esi, 8
clc
shl edx, 8
or esi, ecx
inc eax
bsf cx, ax
sar cl, 0xb0
mov dword [ebp + 8], eax
sal ax, 0x23
movzx eax, word [edi + 2]
adc cx, bp
cmp esp, 0xbcb732d
sub cx, di
mov ecx, edx
stc
shr ecx, 0xb
test di, di
cmc
cmp di, 0x513f
imul ecx, eax
stc
clc
cmp esi, ecx
jae 0x1912164
mov eax, 8
shl ebx, 4
mov edx, ecx
lea ebx, [ebx + edi + 0x104]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
jmp 0x1912192
sub edx, ecx
test ax, 0x5418
clc
sub esi, ecx
dec ch
sbb cx, bp
lea edi, [edi + edi + 1]
dec cx
sbb ecx, esp
rcr cl, cl
mov ecx, dword [ebp - 0x10]
test ecx, 0x1b17045c
cmp edi, ecx
jb 0x19121a1
mov eax, dword [ebp - 0x14]
cmp sp, si
test di, 0x413e
sub eax, ecx
test di, cx
cmc
lea edi, [edi + eax]
test bx, si
cmc
cmp dword [ebp - 0xc], 4
jae 0x1918c9e
cmp edi, 4
jb 0x190eab7
mov edi, 3
mov eax, dword [ebp - 8]
xchg bl, bl
shl edi, 7
lea ebx, [edi + eax + 0x360]
cmovp di, di
not ax
mov edi, 0x666a287b
mov eax, dword [ebp + 8]
mov edi, 1
jmp 0x190f699
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
cmp si, 0x5750
cmp edx, 0x1000000
jae 0x190f6de
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
clc
shl esi, 8
test ch, 0xec
shl edx, 8
clc
test bx, 0x3c75
or esi, ecx
bswap cx
inc eax
btr cx, 0x7a
shld ecx, edi, 0x64
rcl ecx, cl
mov ecx, edx
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
test esp, 0x705d269a
cmp esi, ecx
jae 0x1912540
mov edx, ecx
cmc
test edx, 0x3a3d3230
test si, cx
add edi, edi
jmp 0x191255f
sub edx, ecx
stc
test sp, sp
sub esi, ecx
test esp, 0x5ffa7b7e
stc
cmp edi, edx
lea edi, [edi + edi + 1]
and dword [ebp - 8], eax
stc
test ah, 0xdf
cmp edi, 0x100
jae 0x18fe703
mov ecx, dword [ebp - 0x18]
jmp 0x190cebd
sub edx, ecx
bsf bx, dx
sets bl
sub esi, ecx
sar al, 4
lea ebx, [edi + 0x204]
rcr ax, 0x49
mov dword [ebp - 0x14], 0x10
shrd eax, ecx, 0x45
mov dword [ebp - 0x10], 0x100
btc eax, 0xa0
mov edi, 1
bt ax, 0x14
rcl ah, 0x5d
ror eax, cl
mov eax, dword [ebp + 8]
stc
test esp, ebp
clc
cmp edx, 0x1000000
jae 0x19121e6
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
stc
clc
shl esi, 8
test cl, 0x16
clc
cmc
shl edx, 8
cmp esi, ecx
or esi, ecx
inc eax
movzx cx, al
adc ecx, 0x2b824309
mov dword [ebp + 8], eax
ror eax, cl
shl ecx, cl
setae al
movzx eax, word [ebx + edi*2]
mov ecx, edx
shr ecx, 0xb
clc
cmc
imul ecx, eax
test esi, 0x77854f1e
test dl, ah
cmp esi, ecx
jae 0x190ea5d
mov edx, ecx
clc
add edi, edi
jmp 0x190ea76
sub edx, ecx
cmp ax, 0x74c7
cmp bp, cx
sub esi, ecx
cmp esp, 0x58c548f2
clc
test edi, eax
lea edi, [edi + edi + 1]
test bp, si
cmp ax, bp
cmc
cmp edi, 0x40
jb 0x190f699
lea edi, [edi - 0x40]
mov dword [ebp + 8], eax
stc
cmp edi, 4
jb 0x1918c9e
mov ebx, edi
test eax, eax
test sp, 0x39ff
shr ebx, 1
dec ebx
cmp bp, 0x75ad
cmp esp, ecx
mov dword [ebp - 0x14], ebx
stc
cmp sp, cx
cmp edi, 0xe
jae 0x191f992
mov eax, edi
setb cl
sub cl, ah
sbb cx, 0x400d
and eax, 1
bts cx, cx
not cl
or eax, 2
xadd ch, ch
sbb ecx, esi
bswap cx
mov ecx, ebx
cmp ecx, edx
shl eax, cl
mov ecx, dword [ebp - 8]
stc
sub eax, edi
lea eax, [ecx + eax*2 + 0x55e]
mov dword [ebp - 0xc], eax
jmp 0x191fa29
mov ecx, dword [ebp - 0xc]
sub edx, eax
sub esi, eax
mov ax, 0x3a59
btc ax, cx
mov eax, dword [ebp - 8]
movzx ecx, word [eax + ecx*2 + 0x180]
cmc
cmp edx, 0x1000000
jae 0x1917373
mov eax, dword [ebp + 8]
test di, 0x4835
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx edi, byte [eax]
test bx, sp
clc
shl esi, 8
test esp, 0x6cea5d22
test edx, eax
shl edx, 8
or esi, edi
inc eax
stc
mov dword [ebp + 8], eax
mov eax, edx
shr eax, 0xb
clc
stc
imul eax, ecx
cmp esi, eax
jae 0x18fe735
mov edi, dword [ebp - 8]
rol dl, cl
rcr edx, cl
mov edx, eax
movzx eax, si
ror ah, 0xa
xadd ah, al
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], 0
cmp cx, di
add edi, 0x664
mov dword [ebp - 0x18], 2
jmp 0x191e838
sub edx, edi
test esp, esi
cmp esi, 0x2b8c6a85
stc
sub esi, edi
clc
stc
lea eax, [eax + eax + 1]
test si, 0x36fe
sub ebx, 1
mov dword [ebp - 0x14], ebx
jne 0x191fa36
mov eax, dword [ebp - 0x18]
cmp eax, 0x38b090d
cmp edx, 0x1000000
jae 0x1918cc0
mov edx, dword [ebp - 4]
cmp dword [ebp + 8], edx
jb 0x1918cc0
xor eax, eax
pop edi
cmovns bx, cx
mov ebx, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x24]
mov ebx, dword [edi + 0x38]
cmp eax, ebp
cmp ecx, ebx
jae 0x190ce86
mov eax, dword [edi + 0x28]
jmp 0x190ce88
mov edi, dword [ebp - 0xc]
test edi, ecx
sub edx, ecx
sub esi, ecx
xor cx, 0x6b4a
mov ecx, dword [ebp - 8]
movzx edi, word [ecx + edi*2 + 0x1c8]
stc
test edi, 0x3a0e7c6a
cmp edx, 0x1000000
jae 0x191aaae
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
cmp bp, 0x19d0
shl esi, 8
stc
cmp esp, ebp
shl edx, 8
clc
or esi, ecx
sete ch
bswap cx
movzx ecx, cx
inc eax
sar ch, 0x85
mov dword [ebp + 8], eax
rcl ch, cl
sub cl, 0x5f
and ecx, 0x5ec90ff0
mov ecx, edx
shr ecx, 0xb
cmp esp, 0x997007b
imul ecx, edi
stc
test dh, 0xaf
cmp esi, ecx
jae 0x191e80c
mov edx, ecx
jmp 0x191e816
sub edx, ecx
sub esi, ecx
btc edi, esi
rol edi, 0x4e
mov edi, dword [ebp - 8]
test esp, ebp
cmp edx, 0x158c33b7
mov dword [ebp - 0xc], 0xc
test dl, ch
add edi, 0xa68
test si, 0xd13
clc
test dl, ah
cmp edx, 0x1000000
jae 0x191e874
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
cmc
cmp edx, esi
shl esi, 8
test bx, 0x2747
shl edx, 8
stc
cmp bl, dl
cmc
or esi, ecx
movzx ecx, ax
bswap cx
not cx
inc eax
xadd ecx, ecx
mov dword [ebp + 8], eax
movzx eax, word [edi]
mov ecx, edx
cmc
cmp bp, 0x674a
test dx, 0x6890
shr ecx, 0xb
imul ecx, eax
test edx, 0x7f01c3b
cmp esi, ecx
jae 0x190e0fa
shl ebx, 4
mov edx, 0x615955c5
mov edx, ecx
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 8
jmp 0x1912192
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
or dx, 0x17b3
sub ebx, edi
push esi
xor dx, 0x8d7
push edi
mov edi, ecx
mov edx, 0x51cd028e
sbb cx, sp
rcl bl, 0xa0
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x1c]
bt si, 0xce
mov esi, dword [edi + 0x20]
add ecx, eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 4], ecx
mov ecx, dword [edi + 0x34]
mov bh, al
shr ebx, cl
mov dword [ebp - 0xc], ecx
not ebx
bt ecx, ebx
mov ecx, dword [edi + 8]
sar ebx, 0x70
mov ebx, 1
test bp, 0x75ea
shl ebx, cl
shr ch, cl
mov ecx, dword [ebp - 0xc]
cmp cx, di
shl ecx, 4
mov dword [ebp - 8], eax
dec ebx
and ebx, dword [edi + 0x2c]
clc
lea ecx, [ecx + ebx]
stc
movzx eax, word [eax + ecx*2]
cmp dl, dh
stc
mov dword [ebp - 0x10], eax
cmp ch, 0xbe
cmp eax, edi
cmp edx, 0x1000000
jae 0x191f82e
mov eax, dword [ebp + 8]
cmc
cmp eax, dword [ebp - 4]
jae 0x1918cbe
movzx ecx, byte [eax]
stc
test edx, esi
shl esi, 8
stc
shl edx, 8
or esi, ecx
inc eax
cmc
mov dword [ebp + 8], eax
bswap ax
rol eax, 0x95
mov eax, edx
stc
clc
cmc
shr eax, 0xb
test di, di
cmc
imul eax, dword [ebp - 0x10]
cmp esi, 0x49791051
cmp esi, eax
jae 0x191731f
mov edx, eax
bsf eax, esi
mov eax, dword [ebp - 8]
lea eax, [eax + 0xe6c]
clc
cmp al, 0x36
cmp dword [edi + 0x30], 0
mov dword [ebp - 0xc], eax
jne 0x191f874
cmp dword [edi + 0x2c], 0
je 0x191f8e9
mov ecx, dword [edi + 0x24]
cmc
stc
cmp esp, esp
test ecx, ecx
jne 0x191f887
mov ecx, dword [edi + 0x28]
stc
mov ebx, dword [edi + 0x14]
ror eax, cl
or eax, 0x18f8411d
bt eax, eax
movzx ebx, byte [ebx + ecx - 1]
bts ax, sp
add eax, 0x5c0f6f25
cmp dx, bp
mov eax, dword [edi]
mov ecx, 8
stc
sub cl, al
or al, 0xdb
rcl ax, cl
shr ebx, cl
adc eax, edi
mov ecx, dword [edi + 4]
not ah
mov eax, 1
shl eax, cl
seto ch
movzx ecx, sp
movsx cx, bh
mov ecx, dword [edi]
dec eax
and eax, dword [edi + 0x2c]
cmc
cmp dh, ch
shl eax, cl
add ebx, eax
imul ebx, ebx, 0x600
add dword [ebp - 0xc], ebx
cmp eax, 0x2b8f1a89
cmp dword [edi + 0x34], 7
jae 0x1919a98
mov ecx, 1
jmp 0x190a803
mov ecx, dword [ebp - 4]
sub ebx, 4
test edi, 0x8502797
cmp edx, 0x1000000
jae 0x191f9d2
cmp eax, ecx
jae 0x1918cbe
movzx edi, byte [eax]
cmc
stc
shl esi, 8
test bx, sp
shl edx, 8
cmp al, 0xdc
or esi, edi
movzx edi, ax
inc eax
cmovl edi, esi
bsr di, bx
rol edi, 0xc8
shr edx, 1
mov edi, esi
sub edi, edx
cmc
shr edi, 0x1f
dec edi
test bx, 0x41d2
test edi, eax
and edi, edx
sub esi, edi
test dl, 0x8f
stc
cmp cx, ax
sub ebx, 1
jne 0x191f99e
mov ecx, dword [ebp - 8]
shr bl, cl
lea ecx, [ecx + 0x644]
mov bh, 0xe3
cmc
mov ebx, 4
test ecx, 0x3c3d6d78
stc
mov dword [ebp + 8], eax
xor ah, 0x5c
sbb ah, 0xbe
mov dword [ebp - 0xc], ecx
lahf
and ecx, esp
mov dword [ebp - 0x14], ebx
btr ax, si
mov eax, 1
mov edi, edi
dec ecx
shr ecx, cl
ror cl, 0x3c
mov ecx, dword [ebp - 0xc]
test dh, 0xf5
movzx ecx, word [ecx + eax*2]
cmp esi, eax
cmp edx, 0x1000000
jae 0x191fa8a
mov edi, dword [ebp - 4]
cmp ax, cx
cmp dword [ebp + 8], edi
jae 0x1918cbe
mov edi, dword [ebp + 8]
stc
test ebx, edi
movzx ebx, byte [edi]
stc
cmp esi, 0x78655ff7
shl esi, 8
or esi, ebx
clc
and bx, sp
bswap bx
mov ebx, dword [ebp - 0x14]
shl edx, 8
inc edi
clc
cmp bp, dx
mov dword [ebp + 8], edi
sar edi, 0xbe
mov edi, edx
test bp, 0x7041
cmc
cmp edx, edi
shr edi, 0xb
cmc
imul edi, ecx
cmp esi, edi
jae 0x1918c7a
mov edx, edi
stc
cmc
add eax, eax
jmp 0x1918c92