Function at 0x2de64c1
Capabilities:
Authenticate hmac

Disassembly:
mov ecx, dword [edi + 0x24]
mov ebx, dword [edi + 0x38]
cmp ecx, ebx
jae 0x2dedb10
mov eax, dword [edi + 0x28]
jmp 0x2dedb12
mov ecx, dword [ebp - 4]
lea ebx, [ebx - 4]
cmp edx, 0x1000000
jae 0x1ad7304
cmp eax, ecx
jae 0x2dee24f
movzx edi, byte [eax]
cmc
stc
shl esi, 8
test esp, 0x49f0288
shl edx, 8
cmp edi, ebx
test bp, 0x17ef
or esi, edi
not di
inc eax
sub di, 0x7d1b
shr edx, 1
dec di
mov edi, esi
cmp sp, 0x6d99
sub edi, edx
cmc
shr edi, 0x1f
dec edi
and edi, edx
cmp ah, 0xe8
test bp, 0x77cf
sub esi, edi
stc
cmc
sub ebx, 1
jne 0x1ad72cd
mov ecx, dword [ebp - 8]
lea ecx, [ecx + 0x644]
btr bx, 0xd6
neg bh
shr bh, 0x8a
mov ebx, 4
test ebx, 0x3dcf6c63
mov dword [ebp + 8], eax
dec ax
cmp cx, di
mov eax, eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], ebx
mov eax, 1
adc cx, ax
mov edi, edi
xadd ch, ch
sbb cx, cx
btc ecx, 0xa9
mov ecx, dword [ebp - 0xc]
movzx ecx, word [ecx + eax*2]
cmp edx, 0x1000000
jae 0x1ad73b6
mov edi, dword [ebp - 4]
cmp dword [ebp + 8], edi
jae 0x2dee24f
mov edi, dword [ebp + 8]
shl ebx, 0x98
shld ebx, edx, 0xa6
movzx ebx, byte [edi]
shl esi, 8
clc
or esi, ebx
and bl, 0x1f
mov ebx, dword [ebp - 0x14]
shl edx, 8
inc edi
test ecx, 0x4e1560f7
mov dword [ebp + 8], edi
mov edi, edx
shr edi, 0xb
test esi, esi
imul edi, ecx
test bx, 0x2183
cmp esi, edi
jae 0x2dee212
mov edx, edi
add eax, eax
jmp 0x2dee227
mov ecx, dword [ebp - 8]
sbb edi, edi
sub edx, eax
mov edi, esp
mov edi, 0x19f90a4e
xor edi, ebp
sub esi, eax
btr ax, dx
add di, ax
rcl ax, cl
mov eax, dword [ebp - 0xc]
movzx edi, word [ecx + eax*2 + 0x198]
movzx eax, di
sbb eax, ebp
adc eax, 0x44123446
mov eax, dword [ebp + 8]
test bp, cx
mov dword [ebp - 0x18], 3
stc
cmp edx, 0x1000000
jae 0x1ade9bb
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
test cx, si
test cx, 0x5890
shl esi, 8
test ch, 0xc2
cmc
clc
shl edx, 8
clc
cmp ecx, 0x70521fae
or esi, ecx
movsx cx, bh
not ch
dec cx
inc eax
dec cx
mov dword [ebp + 8], eax
shld cx, si, 0xd1
sub cx, bx
rcl cl, cl
mov ecx, edx
cmp di, di
shr ecx, 0xb
cmp ah, dh
imul ecx, edi
clc
cmp esi, ecx
jae 0x2defa96
mov eax, dword [ebp - 0xc]
bsf edi, esp
not edi
mov edi, dword [ebp - 8]
xchg dl, dh
rol dh, 0x21
add eax, 0xf
btr dx, cx
shrd dx, sp, 0xa
shl eax, 4
inc dx
add eax, ebx
shr dh, 0x6d
movzx edi, word [edi + eax*2]
sar ax, cl
shl eax, cl
cmp bp, 0x5e3f
mov eax, dword [ebp + 8]
btc dx, 0x6a
and dx, si
movsx dx, dh
mov edx, ecx
test di, bx
cmp edi, 0x434c287e
cmp ecx, 0x1000000
jae 0x1adea59
cmp eax, dword [ebp - 4]
jae 0x2dee24f
shl ecx, 8
test edx, 0x3d0a1454
ror dl, cl
mov edx, ecx
btr ecx, ecx
add ecx, ebp
movzx ecx, byte [eax]
shl esi, 8
or esi, ecx
inc cl
inc eax
bsf cx, cx
mov dword [ebp + 8], eax
mov ecx, edx
test ebp, ebx
cmp bx, si
shr ecx, 0xb
imul ecx, edi
cmp ch, 0x29
cmc
test bl, 0x5b
cmp esi, ecx
jae 0x1aff002
cmp ecx, 0x1000000
jae 0x1adea8a
cmp eax, dword [ebp - 4]
jae 0x2dee24f
pop edi
cbw
mov ebx, 0x3a4e6dc5
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret
sub edx, ecx
test sp, cx
sub esi, ecx
lea edi, [edi + edi + 1]
mov ch, 0x25
mov ecx, dword [ebp - 0x10]
clc
cmp edi, ecx
jb 0x2de290b
mov eax, dword [ebp - 0x14]
sub eax, ecx
add edi, eax
test sp, 0x5e56
cmp eax, ecx
cmp dx, 0x52bf
cmp dword [ebp - 0xc], 4
jae 0x2dee233
cmp edi, 4
jb 0x1adfe02
mov edi, 3
mov eax, dword [ebp - 8]
shl edi, 7
xchg bl, bh
movsx bx, bh
lea ebx, [edi + eax + 0x360]
movsx edi, bp
cwde
lahf
mov eax, dword [ebp + 8]
mov edi, 1
jmp 0x1af6d21
mov ecx, dword [ebp - 0xc]
clc
test esp, edi
sub edx, eax
sub esi, eax
bts ax, dx
mov eax, dword [ebp - 8]
stc
movzx ecx, word [eax + ecx*2 + 0x180]
cmp bp, dx
stc
cmp edx, 0x1000000
jae 0x1aeefda
mov eax, dword [ebp + 8]
cmc
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx edi, byte [eax]
test ebp, ecx
shl esi, 8
shl edx, 8
cmp edi, ebp
clc
or esi, edi
inc eax
mov dword [ebp + 8], eax
mov eax, edx
shr eax, 0xb
cmp si, sp
clc
imul eax, ecx
cmp esi, eax
jae 0x1ade92e
mov edi, dword [ebp - 8]
mov edx, eax
add eax, esp
bts ax, sp
mov eax, dword [ebp + 8]
test ecx, 0x7ebc7dcb
mov dword [ebp - 0xc], 0
test esp, 0x533678fd
add edi, 0x664
mov dword [ebp - 0x18], 2
jmp 0x1aff034
sub edx, ecx
cmp eax, 0x72976dc7
stc
sub esi, ecx
test dh, 0xb3
clc
lea edi, [edi + edi + 1]
test esi, 0x733a696e
and dword [ebp - 8], eax
cmp bh, 0x86
cmp edi, 0x100
jae 0x1afb023
mov ecx, dword [ebp - 0x18]
jmp 0x2dedb4c
movzx ecx, word [ebx + edi*2]
test bp, sp
mov dword [ebp - 0x10], ecx
test eax, 0x374736c7
cmp edx, 0x1000000
jae 0x1af6d62
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
cmp esi, eax
test bp, bx
clc
shl esi, 8
stc
cmc
shl edx, 8
or esi, ecx
bswap ecx
movsx ecx, bx
movzx cx, ch
inc eax
mov ecx, edx
shr ecx, 0xb
stc
imul ecx, dword [ebp - 0x10]
cmp si, bp
cmp esi, ecx
jae 0x1afdfd8
mov edx, ecx
cmc
add edi, edi
jmp 0x1afdfe8
sub edx, eax
sub esi, eax
cmp cl, dl
lea ecx, [ecx + ecx + 1]
cmc
clc
cmp ecx, 0x100
jb 0x2de59a7
mov eax, 1
jmp 0x2dee237
sub edx, ecx
test ebp, 0x54477190
sub esi, ecx
cmp edx, 0x1000000
jae 0x1afdc12
mov eax, dword [ebp + 8]
clc
cmp si, 0x6ec2
cmc
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
cmp sp, 0x55ad
cmp si, ax
shl esi, 8
test edi, esi
shl edx, 8
cmp ah, 0x27
or esi, ecx
dec ch
movzx cx, dl
mov cl, 0xd9
inc eax
mov dword [ebp + 8], eax
sal cl, cl
movzx eax, word [edi + 2]
clc
xor cl, 0xe3
mov ecx, edx
cmp edx, edi
shr ecx, 0xb
clc
cmp esi, 0x4b4c410f
imul ecx, eax
cmp esi, ecx
jae 0x2de28de
mov eax, 8
shl ebx, 4
cdq
bswap dx
mov edx, ecx
lea ebx, [ebx + edi + 0x104]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
jmp 0x2de2906
sub edx, ecx
test cx, sp
test ax, 0x1a47
sub esi, ecx
lea edi, [edi + edi + 1]
stc
cmp edi, 0x40
jb 0x1af6d21
sub edi, 0x40
mov dword [ebp + 8], eax
cmp edi, 4
jb 0x2dee233
mov ebx, edi
shr ebx, 1
dec ebx
cmc
clc
mov dword [ebp - 0x14], ebx
test sp, di
cmp edi, 0xe
jae 0x1ad72c7
mov eax, edi
sbb ecx, 0x4e6113d3
and eax, 1
cmp ecx, 0x239e5f31
or eax, 2
rcr ch, 0xea
bt cx, 0xba
mov ecx, ebx
shl eax, cl
bt cx, sp
cmovp ecx, esi
mov ecx, dword [ebp - 8]
test bx, di
sub eax, edi
lea eax, [ecx + eax*2 + 0x55e]
mov dword [ebp - 0xc], eax
jmp 0x1ad735d
sub edx, ecx
shrd di, dx, 0x66
sub esi, ecx
cmp dl, 0xf6
shld edi, ebx, 0xfe
mov edi, 0x6c131a24
mov edi, dword [ebp - 8]
clc
mov dword [ebp - 0xc], 0xc
clc
test si, ax
add edi, 0xa68
clc
cmc
cmp esi, 0x4b230106
cmp edx, 0x1000000
jae 0x1aff06e
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
test ebp, 0x777d37ed
shl esi, 8
shl edx, 8
cmp ebx, esp
or esi, ecx
movsx ecx, si
inc cx
inc eax
mov dword [ebp + 8], eax
ror cl, 0xcb
bt cx, 0x57
movzx eax, word [edi]
cmc
mov ecx, edx
shr ecx, 0xb
test ecx, esp
clc
imul ecx, eax
cmp sp, dx
cmp esi, ecx
jae 0x1afdbc3
shl ebx, 4
mov edx, ecx
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 8
jmp 0x2de2906
mov edi, dword [ebp - 0xc]
sub edx, ecx
cmp cl, 0xcf
sub esi, ecx
sar cl, 0xce
rcr cl, 0x9f
shl cx, 0xf
mov ecx, dword [ebp - 8]
movzx edi, word [ecx + edi*2 + 0x1c8]
cmc
test dl, bh
cmp edx, 0x1000000
jae 0x1b00953
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
cmp ebp, 0x28e52e2b
stc
shl esi, 8
stc
shl edx, 8
test bp, di
or esi, ecx
movzx cx, ch
xchg ecx, ecx
inc eax
mov dword [ebp + 8], eax
test edi, ebp
mov ecx, edx
shr ecx, 0xb
test esi, ebp
imul ecx, edi
stc
cmp esi, ecx
jae 0x1aff002
mov edx, ecx
jmp 0x1aff017
sub edx, ecx
inc eax
sbb ax, sp
sub esi, ecx
lea ebx, [edi + 0x204]
mov dword [ebp - 0x14], 0x10
bt eax, 0x33
sal al, 0x5a
mov dword [ebp - 0x10], pe_nt_image_headers32
cmovae ax, ax
stc
mov edi, 1
mov eax, dword [ebp + 8]
cmp ax, 0x4e40
cmp edx, 0x1000000
jae 0x2de2952
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
cmp sp, sp
cmp ebp, 0x29996106
shl esi, 8
cmp dl, 0x5c
clc
shl edx, 8
test dl, 0x27
cmp di, 0x689e
or esi, ecx
inc eax
mov cl, 0x69
mov dword [ebp + 8], eax
shr ecx, cl
bts ecx, esp
movzx eax, word [ebx + edi*2]
sal ch, cl
ror ecx, 0x3c
dec ecx
mov ecx, edx
shr ecx, 0xb
cmc
imul ecx, eax
cmc
test edx, 0x6c4a437f
cmp esi, ecx
jae 0x1adfdbd
mov edx, ecx
test dx, 0x5123
add edi, edi
jmp 0x1adfdcb
mov eax, dword [ebp - 0xc]
sbb di, sp
movzx edi, word [eax + ecx*2]
test si, 0x34bc
cmp edx, 0x1000000
jae 0x2de59e7
mov eax, dword [ebp + 8]
cmp ebx, edx
stc
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ebx, byte [eax]
cmc
shl esi, 8
shl edx, 8
or esi, ebx
inc eax
mov dword [ebp + 8], eax
shl eax, cl
movsx ax, bl
mov eax, edx
cmp esi, 0x47e70ea6
shr eax, 0xb
test edi, edx
cmp di, 0x11e5
test edi, 0x45361627
imul eax, edi
stc
cmp esi, eax
jae 0x1afb00b
mov edx, eax
test sp, 0x5af9
clc
add ecx, ecx
jmp 0x1afb017
push ebp
movsx edx, bx
shl dl, 0x95
mov ebp, esp
shl dh, cl
shrd edx, ebx, 0xbb
lea esp, [esp - 0x18]
neg dl
clc
push ebx
push esi
push edi
bsr edx, ebx
mov edi, ecx
sbb dl, 0xa3
sal bl, 0xe2
cmp bh, ah
mov ecx, dword [ebp + 8]
sar si, 0xba
mov edx, dword [edi + 0x1c]
mov esi, dword [edi + 0x20]
btc ebx, 0xe7
xor bh, 0xf3
lea ecx, [ecx + eax]
mov eax, dword [edi + 0x10]
and ebx, ecx
mov dword [ebp - 4], ecx
xchg bl, cl
mov ecx, dword [edi + 0x34]
stc
setbe bh
mov dword [ebp - 0xc], ecx
sub bh, 0x8b
bsr ebx, eax
xor ecx, esi
mov ecx, dword [edi + 8]
mov ebx, 1
cmp bx, dx
test sp, 0x6791
shl ebx, cl
ror ecx, 0xd
mov ecx, dword [ebp - 0xc]
shl ecx, 4
mov dword [ebp - 8], eax
dec ebx
test edi, 0x50b75a02
cmp cx, 0x37ad
and ebx, dword [edi + 0x2c]
test cl, dh
lea ecx, [ecx + ebx]
cmp ax, 0x7a13
movzx eax, word [eax + ecx*2]
cmp ebx, esi
stc
test bp, 0x7325
mov dword [ebp - 0x10], eax
cmp edi, 0x2a725f96
test bl, 0xf7
test esi, edx
cmp edx, 0x1000000
jae 0x2de659d
mov eax, dword [ebp + 8]
cmp al, al
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
cmc
shl esi, 8
cmp eax, 0x62265211
shl edx, 8
stc
or esi, ecx
inc eax
mov dword [ebp + 8], eax
cwde
rol al, cl
mov eax, edx
cmp bp, 0x5c25
shr eax, 0xb
imul eax, dword [ebp - 0x10]
cmp ecx, 0x23ac0855
cmp esi, eax
jae 0x1aeef8f
mov edx, eax
mov eax, dword [ebp - 8]
add eax, 0xe6c
cmp dword [edi + 0x30], 0
mov dword [ebp - 0xc], eax
jne 0x2de65da
cmp dword [edi + 0x2c], 0
je 0x2de6649
mov ecx, dword [edi + 0x24]
test ecx, ecx
jne 0x2de65eb
mov ecx, dword [edi + 0x28]
cmovnp ebx, esp
mov ebx, dword [edi + 0x14]
movzx ebx, byte [ebx + ecx - 1]
shr ax, cl
bts cx, dx
mov eax, dword [edi]
mov ecx, 8
sub cl, al
xadd ax, ax
shr ebx, cl
adc ch, ah
bswap eax
mov ecx, dword [edi + 4]
mov eax, 1
cmp ebx, ebx
clc
test ecx, 0x68a122f1
shl eax, cl
mov ch, 0xb1
mov ecx, dword [edi]
dec eax
and eax, dword [edi + 0x2c]
shl eax, cl
test esp, 0x50bc44a3
add ebx, eax
cmp ah, 0x83
stc
imul ebx, ebx, 0x600
stc
cmp ax, 0x5f45
test bp, ax
add dword [ebp - 0xc], ebx
cmc
cmp dword [edi + 0x34], 7
jae 0x1ad4885
mov ecx, 1
jmp 0x2de59a7
sub eax, eax
mov edi, dword [edi + 0x14]
cmp di, cx
sub edi, ebx
lea edi, [edi + ecx]
neg ebx
btc ecx, ecx
cmp bp, 0x236
movzx ecx, byte [edi + eax]
sal ebx, 0xf5
rcl al, cl
stc
mov dword [ebp - 8], pe_nt_image_headers32
rcr ax, cl
test si, cx
mov edi, 1
mov bh, 0x1f
mov edi, edi
stc
bts eax, ecx
mov ebx, dword [ebp - 8]
ror ax, cl
lea ecx, [ecx + ecx]
cmp sp, 0x555e
bts eax, ebx
mov eax, ebx
and eax, ecx
mov dword [ebp - 0x18], ecx
cmp eax, eax
cmp esi, 0x146318a0
lea ecx, [eax + edi]
add ecx, ebx
mov ebx, dword [ebp - 0xc]
clc
movzx ecx, word [ebx + ecx*2]
mov dword [ebp - 0x10], ecx
cmp bp, 0x4694
test eax, 0x44cc5be0
stc
cmp edx, 0x1000000
jae 0x2dedbc6
mov ecx, dword [ebp + 8]
clc
test edi, 0x358d12aa
cmp ecx, dword [ebp - 4]
jae 0x2dee24f
movzx ebx, byte [ecx]
test bh, ah
cmp cl, 0x78
shl esi, 8
clc
shl edx, 8
or esi, ebx
inc ecx
test esi, ebx
mov dword [ebp + 8], ecx
or ecx, 0x377f6376
mov ch, dh
stc
mov ecx, edx
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
test eax, 0x462a5fa0
test bp, ax
cmp esi, 0x231e0c62
cmp esi, ecx
jae 0x1af3f73
mov edx, ecx
test edi, esi
cmp esi, esi
add edi, edi
not eax
jmp 0x1af3f8b
sub edx, edi
test si, 0xcfd
clc
sub esi, edi
lea eax, [eax + eax + 1]
cmc
cmp ebp, 0x5eec76cd
sub ebx, 1
mov dword [ebp - 0x14], ebx
jne 0x1ad7371
mov eax, dword [ebp - 0x18]
clc
cmp edx, 0x1000000
jae 0x2dee256
mov edx, dword [ebp - 4]
cmp dword [ebp + 8], edx
jb 0x2dee256
xor eax, eax
mov ebx, 0x684121c0
pop edi
movzx ebx, cx
not si
pop esi
movzx bx, cl
movsx ebx, sp
pop ebx
mov esp, ebp
movzx ebp, cx
cmovg bp, cx
pop ebp
ret
mov edi, dword [ebp - 0xc]
clc
sub edx, ecx
sub esi, ecx
and ecx, ebx
ror ch, cl
mov ecx, dword [ebp - 8]
clc
cmp eax, esp
movzx edi, word [ecx + edi*2 + 0x1b0]
stc
cmc
test ah, 0x8d
cmp edx, 0x1000000
jae 0x2defaec
cmp eax, dword [ebp - 4]
jae 0x2dee24f
movzx ecx, byte [eax]
stc
cmp cx, di
shl esi, 8
shl edx, 8
or esi, ecx
movsx cx, cl
inc eax
sbb cl, dl
mov dword [ebp + 8], eax
sar ch, 0xf8
sal ch, 0x36
ror cl, 0x3e
mov ecx, edx
shr ecx, 0xb
cmc
imul ecx, edi
test ecx, ebx
cmc
cmp esi, ecx
jae 0x1b008fa
mov edx, ecx
jmp 0x1aff017