Function at 0x803885
Capabilities:
Authenticate hmac

Disassembly:
jmp 0x7b9343
mov dword [ebp - 0xc], eax
jmp 0x7bebc8
shr eax, 0xb
jmp 0x7b78bb
jae 0x91ab43
cmp edi, 4
jmp 0x80bfb7
sub edx, eax
sub esi, eax
btr ax, cx
bt ax, cx
mov eax, dword [ebp - 8]
cmp ebp, 0x8180cc9
movzx ecx, word [eax + ecx*2 + 0x180]
cmp edx, 0x1000000
jmp 0x91ff5d
jae 0x8030ed
movzx edi, byte [eax]
cmp ebp, 0x2c370e28
shl esi, 8
shl edx, 8
or esi, edi
movsx edi, cx
mov edi, 0x5b1620c9
inc eax
shr edx, 1
bt di, 0x21
btr di, ax
mov edi, esi
sub edi, edx
test esi, esp
stc
test dh, 0x5d
shr edi, 0x1f
dec edi
and edi, edx
jmp 0x815c82
jmp 0x91ab37
sub esi, ecx
jmp 0x7b82d8
jae 0x811b7d
cmp ecx, 0x1000000
jmp 0x80804b
jae 0x8030ed
movzx ecx, byte [eax]
stc
test esp, 0x49a625ca
shl esi, 8
cmp esi, 0x3d6159fa
clc
shl edx, 8
or esi, ecx
inc eax
sar ecx, cl
shrd cx, cx, 0xbd
not ch
mov dword [ebp + 8], eax
rol cx, cl
add ecx, 0x4313487f
ror al, 0x87
movzx eax, word [ebx + edi*2]
test bx, bx
mov ecx, edx
jmp 0x8030c1
cmp eax, dword [ebp - 4]
jmp 0x807b12
or esi, ecx
movzx ecx, sp
inc eax
jmp 0x7be44f
lea ebx, [ebx - 4]
cmp ebp, 0x33500251
cmp edx, 0x1000000
jmp 0x7b6958
jae 0x7b1e6f
cmp eax, ecx
jmp 0x7b1e4f
ret
jne 0x7b6c18
mov ecx, dword [edi + 0x28]
cmp esp, 0x63d81d53
cmp ax, bp
stc
mov ebx, dword [edi + 0x14]
shl al, 0x25
movzx ebx, byte [ebx + ecx - 1]
mov eax, dword [edi]
mov ecx, 8
cmp si, 0x482c
test esp, 0x796c08da
sub cl, al
shr ebx, cl
xchg ecx, ecx
inc ch
bts ax, si
mov ecx, dword [edi + 4]
mov eax, 1
shl eax, cl
not ecx
mov cl, 0xa3
mov ecx, dword [edi]
dec eax
cmp esp, ebp
cmc
and eax, dword [edi + 0x2c]
cmp edi, 0x349c47d7
shl eax, cl
clc
lea ebx, [ebx + eax]
jmp 0x7bcdb8
imul eax, edi
test esp, esp
stc
cmp esi, eax
jmp 0x8057ab
jmp 0x91d6c8
not eax
jmp 0x805f7b
mov dword [ebp + 8], eax
cmp bp, ax
rcr ah, 0xa6
mov eax, edx
jmp 0x7b10e5
cmp edx, 0x1000000
jmp 0x8032ec
jae 0x813f92
mov ecx, dword [ebp - 0x18]
jmp 0xa3cd2e
jmp 0x811b87
jne 0x7b4f1e
mov ecx, dword [ebp - 8]
sal bh, cl
mov ebx, ebp
add ecx, 0x644
test edi, edi
sar bh, 0xde
movsx bx, ch
mov ebx, 4
cmp dh, bl
test di, 0x1d30
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], ecx
add cx, ax
or ax, sp
xor ecx, 0x4aa93ffb
mov dword [ebp - 0x14], ebx
mov al, 0x3e
ror ecx, 0x40
mov eax, 1
jmp 0x91be5d
jae 0x8030ed
movzx ecx, byte [eax]
cmc
test ecx, eax
shl esi, 8
shl edx, 8
test di, 0x510d
test sp, sp
or esi, ecx
movsx ecx, si
movzx ecx, ax
movzx cx, bh
inc eax
sub ch, 0x32
sub ecx, edi
mov dword [ebp + 8], eax
movzx eax, word [edi]
btc ecx, edx
mov ecx, edx
test cl, ah
shr ecx, 0xb
imul ecx, eax
test di, 0x324d
cmp ebp, edi
clc
cmp esi, ecx
jmp 0x80db6a
jmp 0x8124de
inc ecx
mov dword [ebp + 8], ecx
btc ecx, 0x4e
sub cx, 0x419f
mov ecx, edx
cmp edx, esp
shr ecx, 0xb
cmp ah, dl
imul ecx, dword [ebp - 0x10]
cmp esi, ecx
jmp 0x7bcd83
cmp ecx, 0x1000000
jmp 0x91befa
inc eax
mov dword [ebp + 8], eax
mov cx, dx
mov ecx, edx
shr ecx, 0xb
cmp edi, 0xa43365a
cmp bx, si
imul ecx, edi
cmp esi, ecx
jmp 0x7b28c3
and eax, ecx
mov dword [ebp - 0x18], ecx
dec ecx
adc ch, bl
shld ecx, edi, 0x36
lea ecx, [eax + edi]
add ecx, ebx
sub bx, 0x13fd
rcl ebx, 0xa5
mov ebx, dword [ebp - 0xc]
clc
cmp si, sp
movzx ecx, word [ebx + ecx*2]
test si, 0x3131
mov dword [ebp - 0x10], ecx
clc
test dh, 0xbd
cmp edx, 0x1000000
jmp 0xa3dcba
mov ecx, dword [edi + 0x24]
shld ebx, ebp, 0xf3
rcl ebx, cl
add bh, bh
mov ebx, dword [edi + 0x38]
cmp ecx, ebx
jae 0xa3e41d
mov eax, dword [edi + 0x28]
jmp 0x81ab47
jae 0x805f69
mov edx, ecx
jmp 0x7bebae
imul ebx, ebx, 0x600
test ebx, edi
test esi, 0x74136bc5
add dword [ebp - 0xc], ebx
cmp dword [edi + 0x34], 7
jmp 0xa3c92b
pop edi
xchg esi, ebx
pop esi
jmp 0x803ab4
jae 0x7b7dff
mov eax, dword [ebp + 8]
test bp, ax
cmp eax, dword [ebp - 4]
jmp 0x80698b
mov ecx, dword [ebp - 0xc]
jmp 0x7b1834
cmp edx, 0x1000000
jmp 0x81e253
mov dword [ebp + 8], eax
bt cx, si
rcr ecx, cl
sbb cl, 0xf0
mov ecx, edx
cmc
cmp di, 0x7219
shr ecx, 0xb
imul ecx, edi
jmp 0x805c6f
mov dword [ebp - 0xc], eax
jmp 0x7b00ab
add edi, edi
jmp 0x7b7915
jne 0x807b37
cmp dword [edi + 0x2c], 0
jmp 0x807b31
shl esi, 8
test bl, 0xed
shl edx, 8
jmp 0x8071c8
mov esp, ebp
pop ebp
jmp 0x7b6be5
jmp 0x91d772
mov eax, dword [ebp - 8]
test eax, 0x79924fcc
stc
cmp esi, edx
lea eax, [eax + 0xe6c]
stc
cmp dword [edi + 0x30], 0
jmp 0x7b06d0
shl esi, 8
shl edx, 8
test si, cx
or esi, ecx
jmp 0x80d316
shr ecx, 0xb
test edi, edi
imul ecx, eax
cmp esi, ecx
jmp 0x81091b
jb 0x7bd1c2
xor eax, eax
jmp 0x7bd1c2
mov eax, dword [ebp + 8]
cmp di, sp
cmp dh, 0x70
clc
cmp edx, 0x1000000
jmp 0x809032
jae 0x815113
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jmp 0x807c4d
push ebp
mov ebp, esp
rol dl, cl
xchg dl, dh
sub esp, 0x18
add dh, bl
ror dl, 0xa
shrd edx, ebp, 0xcc
push ebx
push esi
cmp bl, 0x6b
push edi
neg esi
add dx, bx
or bx, 0x6e4c
mov edi, ecx
ror bl, 0x3f
adc si, 0x608a
mov ecx, dword [ebp + 8]
sub si, 0x6afe
or bh, 0xfd
mov edx, dword [edi + 0x1c]
mov esi, dword [edi + 0x20]
mov bx, bp
xadd bl, bl
add ecx, eax
sal eax, cl
clc
mov eax, dword [edi + 0x10]
mov dword [ebp - 4], ecx
and bx, 0x2dd6
mov ecx, dword [edi + 0x34]
bts ebx, esp
rol bl, cl
mov dword [ebp - 0xc], ecx
inc cl
and bx, sp
mov ecx, dword [edi + 8]
test esi, esi
xadd bx, bx
clc
mov ebx, 1
test bp, cx
cmp cx, si
shl ebx, cl
rcr ch, cl
mov ecx, dword [ebp - 0xc]
cmp esp, ebp
jmp 0x8139ec
pop ebx
jmp 0x81e4bc
jmp 0x91d42f
imul eax, ecx
cmp esi, eax
jae 0x80de5f
mov edi, dword [ebp - 8]
bsr edx, ecx
cwd
shrd edx, edx, 0xe1
mov edx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], 0
clc
add edi, 0x664
mov dword [ebp - 0x18], 2
jmp 0x7b78dd
sub edx, ecx
clc
sub esi, ecx
btr cx, ax
mov ecx, dword [ebp - 8]
movzx edi, word [ecx + edi*2 + 0x1b0]
clc
test sp, 0x4539
cmp edi, eax
cmp edx, 0x1000000
jae 0x81d71b
cmp eax, dword [ebp - 4]
jmp 0x81d6f1
jae 0x8030ed
movzx ecx, byte [eax]
clc
jmp 0x803092
jmp 0x91ab4a
jae 0x8124c8
mov edx, eax
cmp dh, 0x39
test cx, di
add ecx, ecx
jmp 0x7b9a7b
cmp esi, ecx
jmp 0x81ef52
sub edx, ecx
test esp, edx
clc
cmc
sub esi, ecx
lea edi, [edi + edi + 1]
test di, 0x5816
cmc
and dword [ebp - 8], eax
stc
cmc
cmp al, 0x68
cmp edi, 0x100
jmp 0x7b83b1
mov edx, ecx
bsf cx, si
btr ecx, 0xc1
shrd cx, bp, 0x9f
movzx ecx, byte [eax]
shl esi, 8
clc
stc
cmc
or esi, ecx
jmp 0x7bb8b0
mov dword [ebp - 0x10], 8
jmp 0x803adc
jae 0x91d3f9
mov eax, 8
cdq
shl ebx, 4
cdq
mov edx, ecx
jmp 0x81e2d6
jae 0x8030ed
movzx ebx, byte [eax]
stc
shl esi, 8
test esp, eax
shl edx, 8
clc
test edx, 0x49e56ac1
or esi, ebx
inc eax
jmp 0x7b7df6
jae 0x80d31e
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jmp 0x804947
or esi, edi
inc eax
cmp di, sp
clc
mov dword [ebp + 8], eax
mov eax, edx
test cl, dl
cmp sp, ax
shr eax, 0xb
jmp 0x803ae1
jae 0x8030ed
pop edi
pop esi
mov bl, 0xc3
xchg bx, ax
mov eax, 3
mov bx, 0x552a
movzx bx, cl
setle bh
pop ebx
jmp 0x7bf026
jae 0x8030ed
movzx edi, byte [eax]
test bh, ch
jmp 0x7befdf
je 0x7bcdc9
mov ecx, dword [edi + 0x24]
cmp ebp, edx
cmc
stc
test ecx, ecx
jmp 0x7b6c05
jae 0x8030ed
movzx ecx, byte [eax]
cmp sp, 0x3349
stc
shl esi, 8
test al, 0x5c
clc
shl edx, 8
test bl, 6
jmp 0x8150fb
dec ebx
and ebx, dword [edi + 0x2c]
lea ecx, [ecx + ebx]
cmp ah, ch
movzx eax, word [eax + ecx*2]
test dx, 0x4f46
clc
mov dword [ebp - 0x10], eax
cmp edx, 0x1000000
jmp 0x806eb8
sub edx, ecx
cmc
clc
cmp edx, esp
sub esi, ecx
cmp bh, dl
cmp ebp, 0x5d07243a
lea edi, [edi + edi + 1]
clc
cmc
test di, di
cmp edi, 0x40
jb 0x91d0fd
lea edi, [edi - 0x40]
cmp dl, 0x31
clc
mov dword [ebp + 8], eax
cmp edi, 4
jmp 0xa3cdb1
jae 0x80732c
cmp eax, dword [ebp - 4]
jmp 0x807326
mov dword [ebp - 0x18], 3
jmp 0x7bdec6
jae 0x81c242
mov edx, ecx
jmp 0x80eea3
jae 0x7b3b56
cmp eax, dword [ebp - 4]
jmp 0x7b3b1e
jae 0x8030ed
mov edi, dword [ebp + 8]
movzx ebx, byte [edi]
cmc
shl esi, 8
cmc
stc
or esi, ebx
bsf ebx, edx
rol bl, 0xdd
mov ebx, dword [ebp - 0x14]
shl edx, 8
jmp 0x812ebe
jae 0x81d2f8
mov eax, dword [ebp - 0xc]
sal dx, 0x49
btc dx, bx
mov edi, dword [ebp - 8]
cmp ah, 0x51
cwd
lea eax, [eax + 0xf]
not dx
shl eax, 4
mov dh, 0x95
add eax, ebx
cdq
cmp ebp, 0x6a0d5162
rol dl, 0x20
movzx edi, word [edi + eax*2]
xadd ax, ax
rol eax, 0x15
ror ah, 0x85
mov eax, dword [ebp + 8]
rcr dh, cl
and dx, 0x5f9b
dec dh
mov edx, ecx
jmp 0x7b9cbd
lea ebx, [ebx + edi + 4]
mov dword [ebp - 0x14], 0
jmp 0x80694f
sub ebx, 1
jmp 0x7b9301
jb 0x80bfc5
mov edi, 3
inc bx
mov eax, dword [ebp - 8]
shl bl, cl
shl edi, 7
setg bl
lea ebx, [edi + eax + 0x360]
mov eax, dword [ebp + 8]
mov di, 0x16d8
mov edi, 1
jmp 0x81437f
ret
inc eax
stc
mov dword [ebp + 8], eax
cmc
shr eax, cl
mov eax, edx
test bx, 0x930
shr eax, 0xb
test edx, ebp
test di, 0x7a11
imul eax, dword [ebp - 0x10]
cmp esi, eax
jmp 0xa3d770
mov dword [ebp - 0x10], eax
jmp 0x815cdd
jae 0x91ab55
shl ebx, 4
mov edx, ecx
jmp 0x80ba33
mov ecx, dword [ebp - 8]
sub edx, eax
cmp si, dx
sub esi, eax
not edi
shrd eax, ecx, 0x74
mov eax, dword [ebp - 0xc]
mov edi, 0x3e245b92
shrd edi, edi, 0x8a
movzx edi, word [ecx + eax*2 + 0x198]
test eax, 0x5b6d5728
bsr ax, di
mov eax, dword [ebp + 8]
clc
jmp 0x808059
jmp 0x811b87
jae 0x8030ed
movzx ebx, byte [ecx]
stc
test bp, si
shl esi, 8
shl edx, 8
or esi, ebx
jmp 0x7b9c82
jae 0x8030ed
movzx ecx, byte [eax]
test cx, bp
cmp si, cx
test ax, 0x615c
shl esi, 8
shl edx, 8
test si, 0x292c
or esi, ecx
not ch
movzx ecx, cx
setne cl
inc eax
mov ecx, edx
cmp esi, 0x5e1929fc
cmp ebx, edi
shr ecx, 0xb
imul ecx, dword [ebp - 0x10]
clc
cmp esi, ecx
jae 0x808017
mov edx, ecx
cmc
jmp 0x8130bf
mov dword [ebp - 0xc], 0xc
jmp 0x91d6bd
shr ecx, 0xb
imul ecx, eax
cmp ebx, esp
cmc
cmp esi, ecx
jmp 0x80696b
mov ecx, dword [ebp - 4]
test edi, 0x14b91aaa
jmp 0x7b4f15
jae 0xa3e387
mov edx, ecx
cmp ecx, esp
add edi, edi
jmp 0xa3e396
sub edx, ecx
sar edi, 0xfd
sub esi, ecx
btc edi, edi
mov edi, dword [ebp - 8]
jmp 0x80f3bc
movzx ecx, word [ecx + eax*2]
cmp edx, 0x1000000
jae 0x91c62f
mov edi, dword [ebp - 4]
test ch, dl
test dl, 0x2c
cmp edi, ebx
cmp dword [ebp + 8], edi
jmp 0x80a6ab
sub edx, eax
cmp cx, 0x5f40
sub esi, eax
lea ecx, [ecx + ecx + 1]
test cx, sp
cmp edx, 0x37861911
cmp ecx, 0x100
jmp 0x813f8c
inc edi
jmp 0x91c623
jae 0x8030ed
movzx ecx, byte [eax]
test bp, 0x3ad4
stc
shl esi, 8
shl edx, 8
cmp di, 0x2fc7
clc
jmp 0x7b479f
add edi, edi
jmp 0x808030
shl ecx, 4
jmp 0x81c930
jb 0x91d772
mov eax, 1
jmp 0x804964
mov edi, dword [edi + 0x14]
sub edi, ebx
clc
bts bx, si
add edi, ecx
rcr bh, cl
movzx ecx, byte [edi + eax]
cmp esi, 0x28060b9f
mov dword [ebp - 8], 0x100
shl al, cl
mov edi, 1
xadd eax, eax
cmp esi, 0x5a0745b
xor ax, di
mov edi, edi
cwde
mov ebx, dword [ebp - 8]
shl eax, 0x8c
lea ecx, [ecx + ecx]
mov eax, ebx
jmp 0x7bc006
jmp 0x91d0fd
or esi, ecx
movzx cx, dh
mov ecx, 0x24506807
bswap cx
inc eax
mov dword [ebp + 8], eax
bswap ecx
add cl, 0x9e
cwde
movzx eax, word [edi + 2]
shl cl, cl
shld ecx, ecx, 0x3f
xchg cl, ch
mov ecx, edx
test edi, 0x787d4d77
jmp 0x810356
sub esi, edi
jmp 0x80ba67
jmp 0x91d42f
jmp 0x814003
jae 0x91ab1e
mov edx, edi
clc
cmc
add eax, eax
jmp 0x7b250f
lea eax, [ecx + eax*2 + 0x55e]
jmp 0x7beb9a
mov edi, dword [ebp - 0xc]
sub edx, ecx
sub esi, ecx
bts ecx, esp
mov ecx, dword [ebp - 8]
movzx edi, word [ecx + edi*2 + 0x1c8]
cmc
cmp dx, bp
cmp edx, 0x1000000
jae 0x7be45b
cmp eax, dword [ebp - 4]
jmp 0x813087
mov dword [ebp - 8], eax
jmp 0x807d7b
jae 0x7bd1c2
mov edx, dword [ebp - 4]
cmp dword [ebp + 8], edx
jmp 0x8030e7
mov edi, dword [ebp - 0xc]
jmp 0x8043df
jae 0x8030ed
movzx ecx, byte [eax]
cmc
stc
shl esi, 8
shl edx, 8
cmp ch, 0x12
or esi, ecx
setge ch
inc eax
mov ecx, 0x165f2032
mov dword [ebp + 8], eax
setb ch
xor cx, 0x7ba5
mov ecx, edx
cmp dl, 0x63
test di, di
shr ecx, 0xb
cmc
test cx, bp
imul ecx, edi
clc
cmp esi, esi
cmp esi, ecx
jmp 0x808b31
jb 0x8030f8
mov eax, dword [ebp - 0x14]
clc
sub eax, ecx
clc
add edi, eax
cmp dword [ebp - 0xc], 4
jmp 0x7b1109
jae 0x81e289
cmp eax, dword [ebp - 4]
jae 0x8030ed
movzx ecx, byte [eax]
clc
cmc
stc
shl esi, 8
clc
test dl, ah
cmp eax, 0x320e4386
shl edx, 8
cmc
or esi, ecx
mov cx, bp
inc eax
mov dword [ebp + 8], eax
and ecx, 0x1f343ac9
sar cl, 0x8a
mov ecx, edx
shr ecx, 0xb
cmp esi, ebp
imul ecx, edi
test bl, 0x60
cmp esi, ecx
jmp 0x80b596
lea ebx, [ebx + edi + 0x104]
mov dword [ebp - 0x14], eax
jmp 0x80db4d
mov esp, ebp
pop ebp
jmp 0x80bfff
sub eax, edi
jmp 0x81c0c4
jae 0x811b7d
mov edx, ecx
jmp 0x7b83cb
sub edx, edi
cmc
test di, si
cmp bh, 0x99
sub esi, edi
clc
cmp ecx, 0x5f415715
lea eax, [eax + eax + 1]
cmp esi, eax
stc
sub ebx, 1
mov dword [ebp - 0x14], ebx
jne 0x91be5f
mov eax, dword [ebp - 0x18]
test bp, di
stc
cmp edx, 0x1000000
jmp 0x81c99a
sub edx, ecx
stc
cmc
jmp 0x7b26cf
mov edi, edi
mov ecx, dword [ebp - 0xc]
cmp ax, sp
jmp 0x812189
jae 0x7bb8b7
cmp eax, dword [ebp - 4]
jmp 0xa3cd15
mov dword [ebp + 8], edi
adc edi, 0xf2b3110
movsx edi, si
mov edi, edx
shr edi, 0xb
clc
cmp di, dx
imul edi, ecx
cmp esi, edi
jmp 0x81af20
movzx ecx, word [ebx + edi*2]
mov dword [ebp - 0x10], ecx
stc
cmp edx, 0x1000000
jae 0x80f300
cmp eax, dword [ebp - 4]
jmp 0x80f2d7
sub edx, ecx
cmovo ax, cx
mov eax, 0x2c6413b6
rcr eax, 2
sub esi, ecx
dec al
lea ebx, [edi + 0x204]
rcr edi, 0xae
mov ax, cx
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x10], 0x100
cmp esp, 0xc9f30cc
add di, bp
clc
mov edi, 1
jmp 0x8030f8
add edi, 0xa68
cmp di, 0x6eb3
cmp edx, 0x1000000
jae 0x7b947c
cmp eax, dword [ebp - 4]
jmp 0x7b944d
mov eax, dword [ebp - 0xc]
add edi, 0x2c097364
movzx edi, word [eax + ecx*2]
jmp 0xa3c485
jae 0x8071d2
mov eax, dword [ebp + 8]
test esi, ecx
jmp 0x7b46eb
cmp edx, 0x1000000
jmp 0x7bd1d6
jae 0x7bc6c0
mov ecx, 1
jmp 0x802723
jae 0x8030ed
shl ecx, 8
jmp 0x8064da
jmp 0x814038
jb 0x91ab43
mov ebx, edi
test esi, esp
cmc
shr ebx, 1
dec ebx
test dx, 0x5413
clc
test cx, sp
mov dword [ebp - 0x14], ebx
cmp dl, 0x7b
stc
cmp edi, 0xe
jae 0x81090d
mov eax, edi
sar cx, cl
and eax, 1
shl ecx, cl
or eax, 2
mov ecx, ebx
cmc
test sp, 0x6b83
shl eax, cl
setl cl
xor cl, 0x20
mov ecx, edi
mov ecx, dword [ebp - 8]
jmp 0x81ec3d
jae 0x7bde8f
mov edx, eax
dec ah
rcr eax, cl
jmp 0x802b04
jae 0x7b9c8f
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 4]
jmp 0x80f175
sub edx, ecx
sub esi, ecx
rol cl, cl
sbb cl, 0x60
lea edi, [edi + edi + 1]
xor ecx, edi
mov ecx, dword [ebp - 0x10]
stc
cmp bp, 1
cmp edi, ecx
jmp 0x81db74
xor eax, eax
jmp 0x814003