Function at 0x2e59ca4
Capabilities:
Authenticate hmac

Disassembly:
not ax
dec dx
xor bx, ax
jmp 0x2e74ced
movzx edx, cx
rol eax, 1
neg eax
rol edx, cl
rol eax, 3
jmp 0x2ea16f4
dec eax
not edx
jno 0x222aad2
mov edx, 0xc3849b6
mov eax, dword [edi + edx*2 - 0x18709370]
mov ecx, edx
xor cx, dx
lea edi, [edi + edx - 0xc3849ba]
rol cx, 0xe4
inc ecx
xor eax, ebx
lea eax, [eax + edx*2 + 0x764d299e]
bswap eax
not eax
call fcn.02eb9efb
push 0x352b9a35
rol word [esp + 2], 0xed
sub esi, 4
mov edx, dword [esi]
xor edx, ebx
neg dword [esp]
mov ecx, 0x6cbb432a
dec edx
lea eax, [ecx + ecx + 0x1eb70c8d]
not edx
xor edx, 0xd1b20e24
sal eax, cl
add byte [esp + ecx - 0x6cbb4329], ah
dec edx
shl ax, 0xea
shl cx, 0x2c
xadd word [esp + ecx - 0x6cbb9ffe], ax
rol edx, 1
sub eax, ecx
neg edx
bswap edx
xadd dword [esp + eax - 0x498ff95a], ecx
xor ebx, edx
sal ecx, 4
not byte [esp + eax - 0x498ff95a]
or ax, ax
adc edi, edx
lea esi, [esi + eax - 0x498ff95c]
inc eax
shl dword [esp + eax - 0x498ff95b], 0x7a
shl byte [esp + eax - 0x498ff95a], 0x25
movzx eax, word [esi + eax - 0x498ff95b]
lea edx, [ecx + ecx*2 + 0x5081b0ae]
xor ax, bx
add edx, 0x8e24eb20
not ecx
shr edx, cl
add ax, 0xde16
shr word [esp + ecx - 0x6a51634e], cl
mov byte [esp + ecx - 0x6a51634e], cl
ror ax, 1
inc ecx
pop ecx
sub ax, 0xa9d
xor cl, ch
sbb ecx, 0x158bd1a4
jae 0x1bdcd3f
leave
jno 0x2223577
jecxz 0x2223574
invalid
inc edx
add al, 0
mov eax, 0xeba401a9
add byte [eax - 0x145bfe57], bh
mov ecx, dword [esi]
dec eax
mov edx, dword fs:[ecx]
movzx ecx, al
mov dword [esi + ecx - 0xa8], edx
mov eax, dword [edi + ecx*4 - 0x2a0]
xor eax, ebx
sub cx, 0x41b5
bswap eax
jp 0x21e84aa
mov edx, dword [esi]
add esi, 4
xor edx, ebx
rol edx, 1
mov eax, 0x1321a904
call fcn.02ef4047
and ecx, 0x929f72b8
not eax
call fcn.02232ea4
sub cl, dl
pop ecx
pop eax
pop eax
pop eax
jmp ebp
dec eax
not ebp
dec eax
shl eax, 0xe0
inc ebp
mov ecx, ebp
dec eax
and edx, ebp
inc ecx
dec ecx
inc ebp
or ecx, ecx
dec eax
mov dword [esi], edx
dec esp
xor ecx, eax
inc ecx
push ebp
dec esi
lea edi, [ebp*8 - 0x1672e07a]
dec eax
sbb ebx, 4
sar word [esp + 6], 0xa6
mov edx, dword [ebx]
rol eax, 0xad
inc ecx
xor edx, ebx
not edx
inc esp
xor byte [esp + eax*4 + 6], bh
not word [esp + eax*4 + 4]
ror edx, 2
lea edx, [edx + eax*2 + 0x3296e7a6]
call fcn.02edde82
dec edx
mov dword [esp + eax - 0xbd], 0x5c959e99
dec esi
mov dword [esp + eax - 0xbd], ebx
shr al, cl
inc ebp
movzx esp, dh
inc esi
xor dword [esp + eax - 0xbd], ecx
inc bp
xadd eax, edx
inc sp
xor esp, ebp
inc ecx
pop ebx
jle 0x2ee2e14
sub cx, 0x8b0b
lea ebp, [ebp + edx - 0x13f65]
bswap edx
mov word [ebp + edx - 0x633f0100], ax
add ecx, 0x382284
jp fcn.021b7ec4
jmp 0x2e8cbba
mov eax, 0xec8f0b33
mov edx, dword [esi - 4]
neg eax
xor edx, ebx
dec edx
bswap eax
xor edx, 0xf6a23609
mov ecx, eax
xor eax, ecx
ror edx, 2
push ecx
call fcn.02ee5cf6
mov ecx, 0x580eba85
mov cx, word [ecx + edi - 0x580eba85]
mov edx, 0x99b43fab
inc edx
movzx eax, dl
movzx edx, byte [eax + esi - 0xac]
xor dl, bl
sal ax, 0xc2
sbb dl, 0x9e
xor al, 0x10
neg eax
neg dl
sal eax, 0xa8
adc al, 0xbb
sbb dl, 0xa
xor dl, 0x18
rol eax, 0xa7
call fcn.0220f91f
mov edx, dword [eax]
mov eax, 0x2ebd7316
mov dword [eax + edi - 0x2ebd7316], edx
movzx edx, al
mov eax, dword [esi + eax*2 - 0x5d7ae62c]
call fcn.022135fc
xor ebx, ecx
pop edx
add edi, ecx
ror dword [esp], 0x82
pop edx
jmp edi
mov dword [edx], ecx
sbb edi, 4
call fcn.021efc25
sal cl, 0xa2
add edx, edx
lea eax, [ecx + eax - 0x2f1c1009]
sub edx, edx
xor ebx, eax
shl cl, 0xc7
adc ebp, eax
mov ecx, dword [esi + ecx*2 - 0x17c00]
movsx eax, dl
neg eax
xchg dh, al
lea esi, [esi + edx*2 + 4]
neg eax
sbb eax, 0xa613beb5
shr al, 0xe3
adc dl, byte [edi + edx*2 + 4]
lea edi, [edi + eax - 0x59ec4104]
or ax, ax
xor dl, bl
dec dl
not dl
dec eax
rol dl, 1
add dl, 0xf
dec eax
call fcn.02ef7f18
mov edx, 0x719df9b6
call fcn.01bda96f
mov ecx, 0xd23a04a4
movsx eax, cx
mov edx, dword [esi + eax - 0x4a4]
add ax, ax
cmovl ecx, eax
mov ecx, dword [eax + esi - 0x944]
or al, ah
add eax, eax
sar eax, 0x1c
lea esi, [esi + eax*8 + 8]
push eax
not eax
jae 0x2e93973
je 0x2223406
dec ebp
arpl cx, cx
dec esp
cmova edx, eax
dec ecx
adc edi, ecx
inc ecx
push edx
dec ecx
not esp
shr ecx, cl
dec edx
mov dword [esp + eax - 0xad7a], edi
ret