Function at 0x801a501
Capabilities:
Authenticate hmac

Disassembly:
mov esp, ebp
not bp
pop ebp
ret
ret
jb 0x8019878
cmp byte [esi + 0x5c], 0
jne 0x7f15eaf
movzx eax, byte [esi + 0x5d]
mov dh, 0x46
movzx ecx, byte [esi + 0x5e]
mov edx, 0x51143755
movzx edx, byte [esi + 0x5f]
cmp esp, esp
test bp, di
jmp 0x7f1ae6b
mov dword [esi + 0x34], eax
jmp 0x7f28ef3
ret
ret
mov dword [ebp - 8], edi
cmp ebx, 0x14
jae 0x7f1b21a
cmp edi, dword [ebp - 4]
jae 0x7f1b216
mov eax, dword [ebp + 0xc]
sal dl, 0x8e
rol dl, cl
mov dl, byte [edi + eax]
mov byte [ebx + esi + 0x5c], dl
clc
test al, 0x36
lea ebx, [ebx + ecx]
test ah, 0x1c
jmp 0x7f2eb38
mov eax, dword [ebp + 0x10]
xor cx, 0x308b
rol cx, 0x8c
adc cl, 0xa3
add dword [eax], edi
shrd edi, edx, 0x7e
mov ecx, dword [ebp + 0x14]
not bh
sub esi, 0x50ea5f16
pop edi
pop esi
cmovnp bx, bx
xor ebx, 0x69b54f09
sub ebx, ebx
mov dword [ecx], 3
sub eax, eax
pop ebx
jmp 0x7eb30fb
mov dword [esi + 0x40], ecx
jmp 0x80122f7
ret
cmp dword [esi + 0x48], 0
jmp 0x7f20c79
jae 0x7f193c4
mov eax, dword [ebp + 0xc]
jmp 0x8018a86
jne 0x7f2dd8d
mov ebx, dword [ebp + 0xc]
cmp edi, 0x14
jb 0x7f143fc
lea eax, [edi + ebx - 0x14]
jmp 0x7f29f99
je 0x7f2c2b5
mov ecx, eax
mov eax, 0x400
shrd edi, esp, 0x20
mov edi, edx
movzx edx, ax
and eax, 0x52dd2987
mov eax, edx
stc
shl edx, 0x10
or eax, edx
test dl, 0x90
shr ecx, 1
jmp 0x7f2be9f
lea ecx, [edi + ebx]
lea edx, [esi + 0x5c]
cmp ebx, ecx
jmp 0x801e48f
mov dword [esi + 0x18], eax
jmp 0x7f14423
mov esp, ebp
pop ebp
jmp 0x7ea77e1
add dword [ebp + 0xc], eax
cmp cx, 0x3c4f
mov dword [esi + 0x58], 0
cmp ax, si
sub dword [ebp - 4], eax
cmp esp, 0x7aba2aff
cmp dword [esi + 0x48], 0x112
je 0x80173cf
mov edi, dword [ebp - 4]
not bl
mov bx, 0x7eba
mov ebx, dword [ebp + 0x10]
jmp 0x7f2c389
je 0x7f2988f
test edi, edi
jmp 0x7f1ab77
call fcn.07ea57d7
lea esp, [esp + 4]
test eax, eax
je 0x7ea7cf7
mov edi, dword [ebp + 8]
lahf
movsx eax, cx
mov ax, 0x49a4
lea eax, [esi + 0x5c]
jmp 0x7eacf6b
push ebx
mov eax, edi
bswap cx
mov cx, 0x3150
movsx ecx, ax
mov ecx, esi
call fcn.07ea57d7
lea esp, [esp + 4]
test eax, eax
movsx ax, ch
xchg ah, ah
mov eax, ebx
jmp 0x801c09e
push eax
not ax
cwde
jmp 0x8017650
pop edi
setle bh
pop esi
mov ebx, 0x2dfa203b
lahf
mov eax, 1
mov ebx, 0x3d114e95
pop ebx
mov esp, ebp
pop ebp
ret
push eax
jmp 0x7f20c58
mov esp, ebp
xchg ebp, ebp
mov ebp, 0xc5f00ce
pop ebp
jmp 0x7ea8d31
inc eax
test ecx, ecx
cmp ebx, esp
cmp eax, ecx
jmp 0x7f29fc5
mov esp, ebp
movzx ebp, sp
pop ebp
jmp 0x7ea6c4b
jmp 0x7eb3dab
jne 0x7f1ab7d
mov dword [ebp - 4], edi
cmp dword [esi + 0x58], 5
jmp 0x7ea6606
mov dword [esi + 0x44], ecx
jmp 0x7ea8142
jae 0x7f13384
lea eax, [esi + 0x5c]
push eax
mov eax, ebx
mov ecx, esi
jmp 0x7f13373
jbe 0x7f193c7
mov ecx, dword [esi + 0x58]
cmp esp, 0x79e0047
clc
cmp ecx, 5
jmp 0x7ea9f37
mov dword [ebp + 0xc], ebx
jmp 0x7f17e70
shl eax, 8
cmc
jmp 0x7f29840
jb 0x7ea79c1
mov dword [ebp - 8], edi
clc
mov dword [esi + 0x58], ebx
cmp ebx, 0x14
jmp 0x7f1a251
mov edi, dword [ebx]
mov esi, eax
setnp ah
lahf
movzx ax, ch
mov eax, dword [ebp + 8]
jmp 0x7f16354
mov dword [esi + 0x38], ecx
jmp 0x7ea6c35
je 0x7f299cc
mov edx, dword [ebp + 0x14]
pop edi
adc si, 0x3de8
bts bx, dx
sbb esi, edx
pop esi
clc
mov dword [edx], 2
xadd bl, bl
sub eax, eax
pop ebx
jmp 0x7f17554
mov dword [esi + 0x18], ebx
jmp 0x801a568
mov byte [edx + eax], bl
jmp 0x7f17548
mov esp, ebp
pop ebp
jmp 0x7ea57dd
mov ecx, 1
mov ebx, dword [esi + 0x58]
test ebx, ebx
jmp 0x7eaa253
mov dword [ebp - 4], edi
mov dword [ebx], 0
jmp 0x7f2f8fe
jne 0x7f1e021
cmp dword [esi + 0x20], 0
jmp 0x7f1e01b
mov dword [esi + 0x50], eax
jmp 0x8015c4d
or eax, ecx
cmp al, 0xad
btc ecx, 0x16
movzx ecx, byte [esi + 0x60]
cmc
cmp eax, edx
shl eax, 8
cmc
or eax, edx
test bp, 0x7f3c
xadd dl, dh
shl eax, 8
bt edx, ebp
stc
ror dl, cl
or eax, ecx
bts edx, ebp
cmc
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], 0xffffffff
xadd edx, edx
rol dl, cl
rol edx, 0xce
mov dword [esi + 0x4c], 0
btr edx, ebp
mov dword [esi + 0x58], 0
mov edx, dword [ebp + 8]
jmp 0x8017bfe
jne 0x7f299af
mov edx, dword [ebp + 0x14]
ror edi, 0xed
adc di, 0x1aa
mov dword [edx], 1
shl ebx, cl
xor eax, eax
cmp dword [esi + 0x20], eax
not al
pop edi
setg bh
pop esi
xchg bh, bl
setne al
seto bh
movsx ebx, ax
pop ebx
jmp 0x7f2097d
mov ecx, dword [ebp + 0x14]
rcr bx, 0x4c
btc bx, 0x86
shl ebx, 8
pop edi
pop esi
btr ebx, 0x41
mov dword [ecx], 4
movzx ebx, bp
rcl ebx, cl
xor eax, eax
pop ebx
jmp 0x7f165fb
jne 0x7f15eaf
mov ecx, dword [esi + 0x18]
sub al, 0xe3
cdq
movsx eax, di
mov edx, dword [ebp - 8]
sbb eax, 0x5127304c
sub ecx, ebx
shl eax, cl
lahf
bsf ax, cx
sub ecx, esi
bt ax, di
xor ax, 0x3b0e
lea eax, [edx + ecx - 0x5c]
mov ecx, dword [ebp + 0x10]
test esi, 0x60fe5190
cmc
add dword [ecx], eax
cmc
jmp 0x7eb3d99
jmp 0x801c0aa
jne 0x801e49a
mov eax, dword [ebp + 0x10]
rcr ebx, 0xa
mov dword [esi + 0x58], edi
ror bl, cl
test bp, bp
add dword [eax], edi
jmp 0x8019878
inc dword [esi + 0x58]
inc dword [ebx]
jmp 0x8017db3
rep stosd dword es:[edi], eax
adc ecx, ecx
jmp 0x7f2c2a9
mov byte [ecx + esi + 0x5c], dl
jmp 0x7f2ba19
rep stosw word es:[edi], ax
mov edi, dword [ebp - 4]
ror cx, cl
mov ch, 0xa8
mov ecx, 1
xor eax, eax
jmp 0x7f19714
jmp 0x801a5dc
xor eax, eax
mov ebx, ebp
cmovo bx, bx
movsx ebx, bx
pop ebx
jmp 0x7ea57d0
xor edi, edi
jmp 0x7ea79b5
add edi, ecx
cmp sp, cx
cmp ebx, 0x14
jmp 0x7f1b210
je 0x7f20b7a
mov ecx, dword [esi + 4]
rcl al, cl
add ecx, dword [esi]
cdq
rcr ah, 0
mov edx, dword [esi + 0x10]
sal al, cl
mov eax, 0x300
cmp edx, 0x1bc742d3
shl eax, cl
cmc
add eax, 0x736
jmp 0x7eacc4b
call fcn.08015c9c
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
stc
cmp dword [esi + 0x48], 0x112
jmp 0x801a5d6
mov dword [esi + 0x3c], ecx
jmp 0x7f1ca1e
jmp 0x7f20b7f
push eax
mov eax, esi
jmp 0x7f1ee7f
cmp dword [esi + 0x20], 0
jmp 0x7f29996
mov eax, esi
call fcn.07f3000d
test eax, eax
jmp 0x7f299fe
cmp dword [esi + 0x24], edx
jmp 0x801c8c8
inc eax
cmp sp, sp
cmp esi, 0x7ad6617f
sub edi, 1
mov dword [ebp + 0xc], eax
jmp 0x7f193be
mov dl, byte [eax]
jmp 0x7f2c287
mov eax, dword [ebp + 0x14]
pop edi
bt ebx, 0x8e
or bx, bx
pop esi
mov dword [eax], 3
jmp 0x7f2d40d
push ebp
sar ebp, 0xff
mov ebp, esp
stc
sub esp, 8
push ebx
movzx ebx, bp
mov ebx, dword [ebp + 0x10]
jmp 0x801a522
push esi
mov esi, ecx
movsx esi, si
push edi
mov edi, edx
mov di, 0x13a9
jmp 0x7f1c41c
call fcn.07f3000d
test eax, eax
jne 0x7f15eaf
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp + 0x10]
clc
stc
sub eax, ebx
stc
add dword [ecx], eax
cmp edx, 0x12bf55e1
cmc
add ebx, eax
jmp 0x7f1abc6
je 0x80173cf
cmp dword [esi + 0x4c], 0
jmp 0x7eb3dd2
je 0x7eacc78
mov ebx, dword [ebp + 0xc]
not di
mov edi, dword [ebp + 8]
jmp 0x8016059
jae 0x7ea9278
cmp dword [esi + 0x50], 0
jmp 0x7f2eb6b
je 0x7f29fcb
sub edx, ebx
setnp bl
mov bl, byte [eax]
jmp 0x7f1f231