Function at 0x16dce29
Capabilities:
Authenticate hmac

Disassembly:
jae 0x10adb93
lea eax, [esi + 0x5c]
movsx ecx, di
bswap cx
push eax
lahf
mov eax, ebx
movzx ecx, si
mov cx, 0x6b57
mov ecx, esi
call fcn.016d3e49
lea esp, [esp + 4]
test eax, eax
jmp 0x10adb8d
mov dword [esi + 0x34], eax
jmp 0x10b029c
je 0x10905af
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
jmp 0x16c0620
je 0x109a64a
cmp dword [esi + 0x4c], 0
jmp 0x10b1157
jmp 0x108bf7e
lea ecx, [edi + ebx]
btr edx, 0x2f
lea edx, [esi + 0x5c]
cmp ebx, ecx
je 0x16cba57
sub edx, ebx
mov bl, byte [eax]
jmp 0x16e536b
cmp dword [esi + 0x48], 0
jmp 0x16dc5a1
mov ecx, dword [ebp + 0x14]
bt si, di
shl si, 0x40
pop edi
jmp 0x1894322
call fcn.016d3f58
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
cmp dword [esi + 0x48], 0x112
jmp 0x108c9e3
je 0x1091cba
mov edx, dword [ebp + 0x14]
pop edi
pop esi
sal bl, cl
clc
mov dword [edx], 2
movsx bx, ah
clc
xor eax, eax
pop ebx
jmp 0x16e5eb5
push eax
jmp 0x16bfe70
rep stosd dword es:[edi], eax
jmp 0x16bbbc3
inc dword [ebx]
jmp 0x16e2366
cmp dword [esi + 0x20], 0
jmp 0x10b0448
inc eax
cmp eax, ecx
jmp 0x16cba51
pop edi
bswap ax
pop esi
mov eax, 1
pop ebx
jmp 0x10a5af5
ret
jmp 0x1894002
push eax
not eax
mov eax, esi
jmp 0x16d4a5b
jne 0x10ae1f9
mov ebx, dword [ebp + 0xc]
cmp edi, edi
cmp edi, 0x14
jb 0x16d91c7
lea eax, [edi + ebx - 0x14]
jmp 0x108fbeb
mov esp, ebp
pop ebp
jmp 0x16c3629
mov esp, ebp
cmovne bp, dx
pop ebp
jmp 0x10afb91
mov dword [ebx], 0
jmp 0x10941de
inc dword [esi + 0x58]
jmp 0x1099f6f
shl edx, 0x10
cmp al, 0xd2
or eax, edx
cmc
clc
shr ecx, 1
jmp 0x1098185
ret
je 0x16e4410
mov edi, dword [ebp + 8]
lea eax, [esi + 0x5c]
mov dword [esi + 0x18], eax
jmp 0x10a1f6a
add dword [ecx], eax
clc
test bx, cx
add ebx, eax
jmp 0x1896ba0
xor edi, edi
jmp 0x16b9f7a
ret
mov dword [esi + 0x50], eax
jmp 0x16e2c2c
jne 0x10b0457
mov edx, dword [ebp + 0x14]
mov dword [edx], 1
xor eax, eax
cmp dword [esi + 0x20], eax
cmovnp edi, ebp
bswap bx
movsx ebx, ax
pop edi
movsx ebx, di
pop esi
setne al
pop ebx
jmp 0x16df4ea
je 0x16e4a7f
test edi, edi
jmp 0x1771c65
mov dword [esi + 0x44], ecx
jmp 0x16d8fdd
mov dword [ebp - 8], edi
cmp ebx, 0x14
jae 0x176db03
cmp edi, dword [ebp - 4]
jmp 0x16e1f3b
mov esp, ebp
jmp 0x16dce1a
adc ecx, ecx
jmp 0x16e6d8e
jmp 0x108c9e9
call fcn.016d3e49
add esp, 4
test eax, eax
mov ax, bp
mov eax, ebx
jmp 0x108bf75
mov esp, ebp
jmp 0x16c9599
mov dword [ebp - 4], edi
jmp 0x10ab9ad
push eax
mov ax, bp
mov eax, esi
jmp 0x16e4408
ret
push esi
mov si, 0x7a12
mov si, di
cmovs esi, ebp
push edi
mov edi, dword [ebx]
mov si, 0x2d86
mov esi, eax
mov ax, dx
lahf
mov eax, dword [ebp + 8]
jmp 0x10980b2
jne 0x1771c6b
mov dword [ebp - 4], edi
cmp dword [esi + 0x58], 5
jb 0x16cba6d
cmp byte [esi + 0x5c], 0
jmp 0x16db793
pop ebp
jmp 0x10adae9
jne 0x10905c3
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x58], edi
sub bl, 0x21
btc bx, cx
bt esi, 0x52
add dword [eax], edi
sub bx, cx
mov eax, dword [ebp + 0x14]
mov ebx, 0x2e862067
adc di, 0x3fd8
pop edi
pop esi
rcr bx, cl
shr bh, cl
mov dword [eax], 3
bt ebx, edi
adc bh, 0xfb
xor eax, eax
cmovae bx, si
movzx bx, al
setae bh
pop ebx
jmp 0x16bfbb7
call fcn.0109ebe7
test eax, eax
jne 0x109d460
mov ecx, dword [esi + 0x18]
add al, 0xcf
btr eax, edx
sub edx, esi
mov edx, dword [ebp - 8]
rcl ax, cl
bsr ax, cx
ror al, 0xaf
sub ecx, ebx
xor al, al
rcr ah, 0x36
sub ecx, esi
rol al, cl
lea eax, [edx + ecx - 0x5c]
mov ecx, dword [ebp + 0x10]
cmc
test ax, 0x68a
stc
add dword [ecx], eax
jmp 0x1893fee
jae 0x109076d
cmp dword [esi + 0x50], 0
jmp 0x16df0e8
jne 0x109d460
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp + 0x10]
sub eax, ebx
jmp 0x10adbab
mov dword [esi + 0x40], ecx
jmp 0x16e6d36
je 0x16e6d98
mov ecx, eax
add di, 0x4f9d
or edi, eax
sub di, sp
mov eax, 0x400
sbb edi, eax
mov edi, edx
movzx edx, ax
mov eax, edx
jmp 0x10ac577
push ebx
cmovs ax, sp
setae ch
bswap cx
mov eax, edi
movzx ecx, bx
mov ecx, esi
jmp 0x16bf467
xor eax, eax
jmp 0x16b9e55
jne 0x109d460
movzx eax, byte [esi + 0x5d]
cmp sp, 0x6b36
xor dx, cx
movzx ecx, byte [esi + 0x5e]
bt edx, 0x76
movzx edx, byte [esi + 0x5f]
test ebx, 0x7e04715b
shl eax, 8
or eax, ecx
sets cl
movzx ecx, byte [esi + 0x60]
cmp si, cx
cmp si, 0xaab
shl eax, 8
stc
or eax, edx
bswap dx
jmp 0x16e4a4a
jne 0x109692b
cmp dword [esi + 0x20], 0
jmp 0x1096925
pop ebp
jmp 0x16e4b83
push ebp
mov ebp, esp
sub esp, 8
push ebx
setno bh
cmovo bx, bx
movzx ebx, bp
mov ebx, dword [ebp + 0x10]
jmp 0x16c5745
je 0x109a64a
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 0x10]
jmp 0x16bcbb7
je 0x16e6a79
mov ecx, dword [esi + 4]
sete dh
sar dh, 0x80
add ecx, dword [esi]
mov edx, dword [esi + 0x10]
neg ax
bts eax, eax
mov eax, 0x300
test ecx, 0x5a617322
shl eax, cl
stc
add eax, 0x736
jmp 0x16d9141
mov esp, ebp
cmovbe bp, dx
mov ebp, 0x44f55b7f
pop ebp
jmp 0x16e5ec9
jae 0x176dafe
mov eax, dword [ebp + 0xc]
test dh, dl
mov dl, byte [edi + eax]
mov byte [ebx + esi + 0x5c], dl
add ebx, ecx
stc
test edi, ecx
lea edi, [edi + ecx]
stc
test ah, al
cmp ebx, 0x14
jmp 0x176daf8
inc eax
cmc
sub edi, 1
mov dword [ebp + 0xc], eax
jmp 0x16c6bc0
jmp 0x16e6a82
mov dword [esi + 0x18], ebx
jmp 0x188b0de
mov eax, dword [ebp + 0x10]
btc esi, esi
shl ch, 0x3e
add dword [eax], edi
sal esi, 0xf7
mov ecx, dword [ebp + 0x14]
pop edi
rcr esi, 0xbb
and bl, bh
sar si, 0xf2
pop esi
mov dword [ecx], 3
sub eax, eax
mov bx, di
pop ebx
jmp 0x16bb0ef
shl eax, 8
rcr dh, cl
xor dh, 0x3b
mov dx, bp
or eax, ecx
cwd
dec dh
mov dword [esi + 0x20], eax
adc edx, esi
mov dword [esi + 0x1c], 0xffffffff
sal dx, cl
cmp edi, edx
cmovbe edx, edi
mov dword [esi + 0x4c], 0
ror dl, cl
mov dword [esi + 0x58], 0
mov edx, dword [ebp + 8]
cmp dword [esi + 0x24], edx
jmp 0x16d7617
ret
mov byte [edx + eax], bl
jmp 0x109cf5a
mov esp, ebp
pop ebp
jmp 0x109e865
ret
jae 0x16c6bc6
mov eax, dword [ebp + 0xc]
not dl
mov dl, byte [eax]
mov byte [ecx + esi + 0x5c], dl
jmp 0x10aba2a
mov ecx, 1
shl bh, cl
rcl ebx, cl
mov ebx, dword [esi + 0x58]
test ebx, ebx
jmp 0x10a51d2
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], ecx
jmp 0x108aea3
rep stosw word es:[edi], ax
sal di, 0xbb
mov edi, dword [ebp - 4]
mov ecx, 1
jmp 0x16d9227
jb 0x16b9f86
mov dword [ebp - 8], edi
cmp dl, cl
mov dword [esi + 0x58], ebx
jmp 0x1893fdc
jbe 0x16c6bc9
mov ecx, dword [esi + 0x58]
test bx, 0xc63
test ax, bp
stc
cmp ecx, 5
jmp 0x16e6287
call fcn.0109ebe7
test eax, eax
jmp 0x16d8090
cmp ebx, 0x14
jmp 0x108ae63
add dword [ebp + 0xc], eax
stc
cmp ax, 0x2380
clc
mov dword [esi + 0x58], 0
cmc
test bx, di
sub dword [ebp - 4], eax
test esi, ecx
clc
cmp dword [esi + 0x48], 0x112
jmp 0x16dd52e
pop esi
mov dword [ecx], 4
or bh, 0x3a
shl bx, 0x94
xor eax, eax
mov ebx, ecx
pop ebx
jmp 0x10a54f5
mov dword [ebp + 0xc], ebx
jmp 0x109f5ee