Function at 0x5ad3c5
Capabilities:
Authenticate hmac

Disassembly:
sub edx, ecx
cmp ebp, eax
test edi, 0x9c075f3
sub esi, ecx
clc
cmp edx, 0x1000000
jae 0x570308
mov eax, dword [ebp + 8]
clc
test bx, sp
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
shl esi, 8
shl edx, 8
cmp ah, 0x28
clc
or esi, ecx
xchg cl, ch
inc eax
bswap cx
mov dword [ebp + 8], eax
movzx eax, word [edi + 2]
bt ecx, 0xcb
adc cx, 0x5fa1
xor cl, 0x47
mov ecx, edx
clc
shr ecx, 0xb
test al, 0xe0
test si, dx
imul ecx, eax
stc
clc
test ebp, 0x6d2379
cmp esi, ecx
jae 0x5809bc
mov eax, 8
clc
bts edx, esp
shl ebx, 4
not edx
movsx dx, cl
mov edx, ecx
lea ebx, [ebx + edi + 0x104]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
jmp 0x5809e3
sub edx, ecx
cmp di, 0xa26
stc
sub esi, ecx
test di, 0x42b0
lea edi, [edi + edi + 1]
stc
cmp dl, 0x79
cmc
and dword [ebp - 8], eax
test ecx, ebp
test ebx, 0x44c32bc6
cmp edi, 0x100
jae 0x5ada24
mov ecx, dword [ebp - 0x18]
jmp 0x677ed5
mov edi, dword [ebp - 0xc]
cmc
sub edx, ecx
cmp dl, ah
sub esi, ecx
mov ecx, dword [ebp - 8]
cmc
movzx edi, word [ecx + edi*2 + 0x1b0]
test sp, dx
cmp al, al
stc
cmp edx, 0x1000000
jae 0x580919
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
shl esi, 8
clc
shl edx, 8
clc
or esi, ecx
xchg cl, ch
mov ch, 0x86
inc eax
shrd cx, bx, 0x45
mov dword [ebp + 8], eax
xor cl, 0xd4
mov ecx, edx
shr ecx, 0xb
test dh, 0x5f
cmc
imul ecx, edi
cmp di, ax
cmp esi, ecx
jae 0x663b59
mov edx, ecx
jmp 0x6742dd
sub edx, ecx
test ecx, edi
test ebx, 0x5db63804
sub ah, 0x3f
sub esi, ecx
cmp ah, 0x7c
lea ebx, [edi + 0x204]
cwde
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x10], pe_nt_image_headers32
mov edi, 1
bts ax, si
mov eax, dword [ebp + 8]
cmp esp, edx
cmp edx, 0x1000000
jae 0x580a27
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
test cx, ax
shl esi, 8
cmp bh, al
shl edx, 8
or esi, ecx
cmovp ecx, edx
inc eax
mov dword [ebp + 8], eax
or eax, 0x29a11dbb
bt cx, 0x29
movzx eax, word [ebx + edi*2]
shl cl, cl
mov ecx, edx
test sp, 0x4c93
shr ecx, 0xb
imul ecx, eax
cmp ebx, ebp
cmp esi, ecx
jae 0x670a95
mov edx, ecx
add edi, edi
jmp 0x670aaa
mov ecx, dword [ebp - 0xc]
stc
cmp esp, 0x2f22343d
cmp bp, sp
sub edx, eax
test si, di
cmc
sub esi, eax
mov eax, dword [ebp - 8]
stc
movzx ecx, word [eax + ecx*2 + 0x180]
test di, 0x2388
stc
cmp edx, 0x1000000
jae 0x5aaa03
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx edi, byte [eax]
shl esi, 8
shl edx, 8
test ebp, 0x2d6f2dda
test ebx, esp
clc
or esi, edi
inc eax
stc
cmp edi, ebx
test eax, edx
mov dword [ebp + 8], eax
mov eax, edx
test ah, 0x24
clc
shr eax, 0xb
test edx, 0x4af267ee
test esi, ebx
imul eax, ecx
test sp, sp
cmp esi, eax
jae 0x5ac014
mov edi, dword [ebp - 8]
shl dh, cl
mov edx, eax
add al, bh
mov eax, dword [ebp + 8]
test ax, 0x53d9
mov dword [ebp - 0xc], 0
stc
cmp ecx, 0x63925e66
add edi, 0x664
mov dword [ebp - 0x18], 2
jmp 0x6742f6
mov ecx, dword [ebp - 8]
shl edi, 0xb3
inc di
sub edx, eax
shr edi, 0xb9
cmp dh, bl
sub esi, eax
dec di
mov eax, dword [ebp - 0xc]
sub di, sp
xadd di, di
movzx edi, word [ecx + eax*2 + 0x198]
bt eax, 0xc8
shrd ax, dx, 0xa4
rcr ah, 0x6e
mov eax, dword [ebp + 8]
clc
mov dword [ebp - 0x18], 3
cmp sp, 0x26b8
test ebx, esi
cmp edx, 0x1000000
jae 0x5ac092
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
cmp ah, dh
shl esi, 8
shl edx, 8
cmp bh, 0xa0
test dx, ax
or esi, ecx
movsx cx, bh
bswap cx
mov ch, 0x8d
inc eax
mov dword [ebp + 8], eax
movzx ecx, sp
mov ecx, edx
stc
shr ecx, 0xb
clc
imul ecx, edi
cmc
cmp esi, ecx
jae 0x5808ca
mov eax, dword [ebp - 0xc]
shl dx, cl
shrd dx, ax, 0xf4
cdq
mov edi, dword [ebp - 8]
shld dx, bp, 0x4a
add eax, 0xf
cmc
sbb edx, ebp
shl eax, 4
rol dx, cl
not edx
bt edx, ebp
lea eax, [eax + ebx]
sub dl, 0x36
movsx edx, dx
rol dh, 0xe2
movzx edi, word [edi + eax*2]
mov dh, dh
cwd
mov eax, dword [ebp + 8]
btc dx, 0x89
mov edx, ecx
cmp ecx, 0x1000000
jae 0x5ac127
cmp eax, dword [ebp - 4]
jae 0x675fa2
shl ecx, 8
rcl dl, 0xa1
shr dx, cl
mov edx, ecx
movzx ecx, byte [eax]
shl esi, 8
cmc
or esi, ecx
movsx ecx, bp
mov ecx, eax
dec ch
inc eax
rol ecx, cl
mov dword [ebp + 8], eax
inc cl
sar cx, 2
rol cx, cl
mov ecx, edx
shr ecx, 0xb
cmc
test edi, edx
imul ecx, edi
cmc
cmp edi, ebx
cmp esi, ecx
jae 0x6742d9
cmp ecx, 0x1000000
jae 0x5ac152
cmp eax, dword [ebp - 4]
jae 0x675fa2
pop edi
pop esi
mov al, 0xad
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
cmp edx, 0x1000000
jae 0x5acd38
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
cmp sp, di
shl esi, 8
test edx, esi
shl edx, 8
stc
or esi, ecx
inc eax
mov ecx, edx
shr ecx, 0xb
test cx, 0x10e4
stc
imul ecx, dword [ebp - 0x10]
cmp esi, ecx
jae 0x675bca
mov edx, ecx
clc
test si, 0x598
test dx, bp
add edi, edi
jmp 0x675bdd
push ebp
cdq
stc
mov ebp, esp
lea esp, [esp - 0x18]
setge dh
clc
sal dh, 0x4f
push ebx
adc bl, 0x68
stc
push esi
push edi
mov ebx, 0x61692a49
add bh, dh
mov edi, ecx
xor si, si
mov ecx, dword [ebp + 8]
test ebp, eax
mov edx, dword [edi + 0x1c]
clc
movsx bx, ah
ror ebx, cl
mov esi, dword [edi + 0x20]
and ebx, 0x2ca60303
add ecx, eax
sub eax, edi
shr ah, 0xbc
mov eax, dword [edi + 0x10]
rcl bx, cl
rcl bl, 0x19
mov dword [ebp - 4], ecx
mov ecx, dword [edi + 0x34]
ror bh, cl
mov dword [ebp - 0xc], ecx
test ebx, esi
mov ecx, dword [edi + 8]
mov ebx, 1
shl ebx, cl
mov ecx, dword [ebp - 0xc]
test dl, 0x72
cmc
shl ecx, 4
mov dword [ebp - 8], eax
dec ebx
cmc
cmp bx, 0x4d3
and ebx, dword [edi + 0x2c]
test ebp, 0x61ad1a23
cmp ch, 0x20
add ecx, ebx
movzx eax, word [eax + ecx*2]
mov dword [ebp - 0x10], eax
cmp edx, 0x1000000
jae 0x5ad492
mov eax, dword [ebp + 8]
cmp si, cx
cmc
cmp edi, 0x6f9f24e3
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
cmp bx, 0xa00
test si, 0x7c06
cmp bl, ch
shl esi, 8
shl edx, 8
or esi, ecx
inc eax
mov dword [ebp + 8], eax
or al, 0x31
and ah, 0xf8
mov eax, edx
shr eax, 0xb
imul eax, dword [ebp - 0x10]
cmp dl, 0x99
clc
stc
cmp esi, eax
jae 0x5aa9a7
mov edx, eax
bt ax, ax
shr eax, cl
xadd ah, al
mov eax, dword [ebp - 8]
lea eax, [eax + 0xe6c]
clc
cmp al, 0x66
cmp dword [edi + 0x30], 0
mov dword [ebp - 0xc], eax
jne 0x5ad4d6
cmp dword [edi + 0x2c], 0
je 0x5ad552
mov ecx, dword [edi + 0x24]
test sp, dx
test ecx, ecx
jne 0x5ad4e7
mov ecx, dword [edi + 0x28]
mov ebx, dword [edi + 0x14]
cmp ebp, ecx
sal eax, cl
sar al, cl
movzx ebx, byte [ebx + ecx - 1]
mov ch, 0xb7
rol eax, cl
and al, 0xe7
mov eax, dword [edi]
or ecx, ecx
cmp eax, ebp
dec ch
mov ecx, 8
cmp ebx, esp
cmp esi, 0x3a1e53c1
cmc
sub cl, al
shr ebx, cl
test esi, ebx
mov ecx, dword [edi + 4]
mov eax, 1
test ah, 0xc
shl eax, cl
bswap ecx
cmova cx, dx
movzx ecx, sp
mov ecx, dword [edi]
dec eax
and eax, dword [edi + 0x2c]
shl eax, cl
cmp ecx, 0x5c3735d6
cmc
add ebx, eax
test cl, 0x25
cmc
imul ebx, ebx, 0x600
stc
clc
add dword [ebp - 0xc], ebx
stc
cmp ax, sp
cmp dword [edi + 0x34], 7
jae 0x6794b3
mov ecx, 1
jmp 0x678654
sub edx, eax
stc
cmp edx, ebp
sub esi, eax
test di, 0x733d
test ecx, edi
lea ecx, [ecx + ecx + 1]
cmp cl, 0xe
clc
cmp ecx, 0x100
jb 0x678654
mov eax, 1
jmp 0x675f89
mov ecx, dword [ebp - 4]
cmc
lea ebx, [ebx - 4]
cmp edx, 0x1000000
jae 0x5adef2
cmp eax, ecx
jae 0x675fa2
movzx edi, byte [eax]
clc
stc
shl esi, 8
shl edx, 8
or esi, edi
inc eax
rcr di, 0x3b
shr edx, 1
cmp dx, 0xdfc
sbb di, bp
mov edi, esi
clc
test cl, 0x97
stc
sub edi, edx
cmc
shr edi, 0x1f
dec edi
cmp esi, ecx
clc
and edi, edx
sub esi, edi
clc
sub ebx, 1
jne 0x5adecc
mov ecx, dword [ebp - 8]
rcr bx, 0xa1
bts bx, dx
movsx ebx, di
lea ecx, [ecx + 0x644]
test bl, al
bsr bx, ax
mov ebx, 4
test sp, 0x3431
mov dword [ebp + 8], eax
sbb eax, eax
mov dword [ebp - 0xc], ecx
cmovg ecx, ebx
sbb ax, 0x769c
sal eax, cl
mov dword [ebp - 0x14], ebx
sal al, 5
movzx ecx, di
mov eax, 1
sbb ch, 0x30
rcr ch, cl
neg cl
mov edi, edi
stc
mov ecx, dword [ebp - 0xc]
stc
test bh, bl
clc
movzx ecx, word [ecx + eax*2]
cmp edx, 0x1000000
jae 0x5adfb7
mov edi, dword [ebp - 4]
test bx, 0x268d
test bl, al
cmp dword [ebp + 8], edi
jae 0x675fa2
mov edi, dword [ebp + 8]
movzx ebx, byte [edi]
shl esi, 8
or esi, ebx
sar ebx, 8
test al, 0xb7
mov ebx, dword [ebp - 0x14]
shl edx, 8
inc edi
test ah, 0xfb
mov dword [ebp + 8], edi
movsx edi, dx
sbb di, 0x544
mov edi, edx
clc
stc
test edi, ecx
shr edi, 0xb
cmc
cmp ax, 0x319
imul edi, ecx
cmp esi, edi
jae 0x675f68
mov edx, edi
add eax, eax
jmp 0x675f75
mov edi, dword [ebp - 0xc]
test esp, 0x62d60172
clc
sub edx, ecx
clc
cmp cx, di
cmp dh, 0xa4
sub esi, ecx
bsr cx, si
cmp bx, di
shr cx, 0x3b
mov ecx, dword [ebp - 8]
test si, si
movzx edi, word [ecx + edi*2 + 0x1c8]
cmp edx, 0x1000000
jae 0x663bc3
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
shl esi, 8
cmp eax, esi
cmp sp, 0x71a3
test esi, ebp
shl edx, 8
cmp esp, eax
or esi, ecx
inc eax
bt ecx, 0x50
mov dword [ebp + 8], eax
neg cx
movzx ecx, dx
bts ecx, ecx
mov ecx, edx
stc
cmp bx, di
shr ecx, 0xb
cmp ebx, 0x46c6261b
imul ecx, edi
cmp esi, ecx
jae 0x6742d9
mov edx, ecx
jmp 0x6742dd
sub edx, ecx
stc
cmc
sub esi, ecx
movsx ecx, si
lea edi, [edi + edi + 1]
setne ch
adc ecx, esp
sar ch, 0x93
mov ecx, dword [ebp - 0x10]
cmp edi, ecx
jb 0x5809ec
mov eax, dword [ebp - 0x14]
sub eax, ecx
cmc
add edi, eax
clc
cmp dword [ebp - 0xc], 4
jae 0x675f81
cmp edi, 4
jb 0x670add
mov edi, 3
and ax, 0x2ae0
rcl bx, cl
mov eax, dword [ebp - 8]
bsr ebx, eax
shrd bx, si, 0xd9
shl edi, 7
movsx bx, dl
movsx ebx, bx
lea ebx, [edi + eax + 0x360]
mov eax, 0x3c3961f2
not al
mov eax, dword [ebp + 8]
mov edi, esp
bswap di
mov edi, 1
jmp 0x5acd0a
sub edx, ecx
sub esi, ecx
mov edi, dword [ebp - 8]
test bp, bp
mov dword [ebp - 0xc], 0xc
cmp esi, 0x73ff69ea
lea edi, [edi + 0xa68]
cmp edx, 0x1000000
jae 0x674328
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ecx, byte [eax]
shl esi, 8
cmc
shl edx, 8
or esi, ecx
inc eax
and cx, di
sal ecx, 0xaa
rol ch, 0x5a
mov dword [ebp + 8], eax
btc ax, ax
movzx eax, word [edi]
mov ecx, edx
clc
test bx, 0x641f
shr ecx, 0xb
cmp ah, 0x5c
cmp esi, eax
imul ecx, eax
cmp di, sp
stc
test si, 0x43b
cmp esi, ecx
jae 0x5702c7
shl ebx, 4
movzx edx, bx
movzx dx, cl
cdq
mov edx, ecx
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 8
jmp 0x5809e3
sub edx, ecx
sub esi, ecx
test bp, sp
test al, 0x53
lea edi, [edi + edi + 1]
test bx, 0x7224
clc
cmp edi, 0x40
jb 0x5acd0a
sub edi, 0x40
cmc
mov dword [ebp + 8], eax
test edi, esp
cmp edi, 4
jb 0x675f81
mov ebx, edi
test eax, edx
clc
shr ebx, 1
dec ebx
mov dword [ebp - 0x14], ebx
cmp edi, 0xe
jae 0x5adec5
mov eax, edi
adc cl, bh
add ecx, ecx
and eax, 1
rcl ch, 0x6f
or eax, 2
mov ecx, ebx
test sp, 0x21f8
test di, sp
stc
shl eax, cl
add cx, ax
rol cl, cl
xchg ch, cl
mov ecx, dword [ebp - 8]
sub eax, edi
lea eax, [ecx + eax*2 + 0x55e]
mov dword [ebp - 0xc], eax
jmp 0x5adf59
sub edx, edi
clc
cmp cl, bl
sub esi, edi
clc
lea eax, [eax + eax + 1]
clc
sub ebx, 1
mov dword [ebp - 0x14], ebx
jne 0x5adf68
mov eax, dword [ebp - 0x18]
cmp bx, 0x6c31
cmp edx, 0x1000000
jae 0x675fa4
mov edx, dword [ebp - 4]
cmc
cmp dword [ebp + 8], edx
jb 0x675fa4
xor eax, eax
pop edi
not si
pop esi
mov bx, ax
bswap bx
movzx ebx, bp
pop ebx
mov esp, ebp
xchg ebp, ebp
pop ebp
ret
xor eax, eax
mov edi, dword [edi + 0x14]
cmp si, 0x7db8
sub edi, ebx
sar ebx, cl
test ebx, esp
btr bx, 0x42
lea edi, [edi + ecx]
sbb ecx, ebp
bts ebx, esi
movzx ecx, byte [edi + eax]
movzx eax, dx
mov dword [ebp - 8], pe_nt_image_headers32
rol ax, 0xec
mov edi, 1
xchg bl, ah
mov edi, edi
sar ax, 0xc0
ror ah, 0xd1
mov ebx, dword [ebp - 8]
test esp, ecx
sub eax, esp
cmovno eax, esi
add ecx, ecx
btr eax, ebx
mov eax, ebx
and eax, ecx
cmp edi, 0x30c3604e
mov dword [ebp - 0x18], ecx
xchg cl, ch
neg cl
lea ecx, [eax + edi]
test ch, ch
stc
add ecx, ebx
bt ebx, esp
mov ebx, dword [ebp - 0xc]
clc
movzx ecx, word [ebx + ecx*2]
mov dword [ebp - 0x10], ecx
cmp edx, 0x1000000
jae 0x677f41
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 4]
jae 0x675fa2
movzx ebx, byte [ecx]
stc
shl esi, 8
clc
shl edx, 8
cmp bx, 0x6829
or esi, ebx
inc ecx
stc
test di, 0x3d50
cmp esi, ecx
mov dword [ebp + 8], ecx
mov ecx, edx
shr ecx, 0xb
clc
cmp bx, 0x644d
imul ecx, dword [ebp - 0x10]
cmp di, di
stc
cmc
cmp esi, ecx
jae 0x57808f
mov edx, ecx
stc
cmp ecx, eax
add edi, edi
not eax
jmp 0x5780a7
mov eax, dword [ebp - 0xc]
sbb di, bp
cmp bx, 0x3935
bsr di, ax
movzx edi, word [eax + ecx*2]
test al, bl
cmp edx, 0x1000000
jae 0x67869e
mov eax, dword [ebp + 8]
cmc
cmp eax, dword [ebp - 4]
jae 0x675fa2
movzx ebx, byte [eax]
cmc
clc
shl esi, 8
test dh, ch
shl edx, 8
cmc
or esi, ebx
inc eax
mov dword [ebp + 8], eax
inc ax
xor eax, 0x68b330d5
mov eax, edx
cmp ebp, ecx
cmp ch, 0xeb
shr eax, 0xb
imul eax, edi
cmp esi, eax
jae 0x5ada02
mov edx, eax
add ecx, ecx
jmp 0x5ada18
mov ecx, dword [edi + 0x24]
sal bh, cl
mov ebx, dword [edi + 0x38]
cmp esi, ebp
cmp ecx, ebx
jae 0x677e96
mov eax, dword [edi + 0x28]
jmp 0x677e98