Function at 0x10514893
Capabilities:
Authenticate hmac

Disassembly:
adc edi, eax
xor dword [esp + ecx*4 - 0xe87d], 0xfd1ace81
xadd dword [esp + ecx - 0x3a1e], edx
sub edx, edx
lea esi, [ecx + esi - 0x3a21]
inc edx
movsx eax, byte [esp + ecx*2 - 0x7440]
movzx ecx, byte [esi + ecx*4 - 0xe880]
push edx
call fcn.104e40b1
pop ebx
lea ebp, [esi*8 + 0x521fb538]
pop ebp
pop esi
mov edx, 0xd018570d
call fcn.10473245
mov eax, 0x779e83bf
movsx ecx, al
mov eax, dword [eax + esi - 0x779e83bf]
movsx edx, cx
neg dx
sar dl, 0xc6
adc esi, 4
not cl
xadd ecx, edx
xor eax, ebx
xor dx, dx
sbb eax, 0xc42fca2a
bswap eax
sal dx, 0x2a
lea ecx, [ecx + edx - 0x5555bac6]
adc eax, 0x2b0fa94
neg edx
ror eax, 1
not eax
push edx
xor ebx, eax
xor edx, dword [esp + edx - 0x10000]
adc ebp, eax
or edx, dword [edi + edx*2]
push ecx
mov cl, byte [edi + 4]
add edi, 2
sal edx, cl
mov ecx, 0xbad2d17
mov dword [edi + ecx - 0xbad2d17], edx
add cl, byte [esp + ecx - 0xbad2d12]
pop ecx
call fcn.1046fe34
mov eax, 0x573e5e21
dec al
mov ecx, dword [esi + eax - 0x573e5e20]
mov eax, dword [esi + eax - 0x573e5e1c]
mov edx, 0xb184c22e
setnp dl
xor edx, 0xac3f6a2e
lea esi, [esi + edx - 0x1dbba82b]
push edx
pop edx
rol dx, 0x21
not ecx
sal edx, 0xc2
jns 0x1052dc61
jmp 0x1048f441
mov edx, 0x769c6885
movzx eax, dl
mov edx, dword [ebp + eax*8 - 0x428]
shl ax, 0x21
movsx ecx, ax
mov ax, word [eax + ebp - 0x106]
sar cx, cl
lea ebp, [ebp + ecx*4 + 6]
lea ecx, [ecx + ecx - 0x685af1dd]
xor cl, 0x2d
mov word ss:[edx], ax
mov ecx, dword [edi]
mov eax, 0x941718a3
lea edx, [eax + eax*8 + 0x2a8dac8b]
lea edi, [edi + edx - 0x5f5d8a42]
dec edx
sal edx, 0x34
add ax, dx
xor ecx, ebx
or dx, 0xb835
shl dl, 0xa5
xor ecx, 0x4a213c15
inc edx
xor dx, ax
rol ecx, 1
neg ecx
sar edx, 0xf
sar edx, 0xb6
xor ecx, 0xe38b1786
xadd eax, edx
sal eax, 0xc4
xor ebx, ecx
shl eax, 0xb6
inc edx
neg al
adc esi, ecx
jmp esi
mov ecx, 0xf10584ad
ror ecx, cl
dec eax
call fcn.104d7b0e
mov ecx, 0x7135c500
lea ecx, [ecx + 0x30afd35]
movzx eax, cl
lea esi, [esi + eax*2 - 0x6e]
jmp 0x104fb4e0
xor eax, 0xde09ce1a
pop ecx
jae fcn.105013e9
neg cl
mov eax, dword [esi + ecx - 0x7440c2cb]
xor eax, ebx
push ecx
inc byte [esp + ecx - 0x7440c2c9]
dec eax
movsx edx, cl
push edx
bswap eax
neg cl
not eax
shl dword [esp + ecx - 0x7440c234], 0xb6
sal cx, 0xe5
neg dl
dec eax
not dword [esp + ecx - 0x7440469c]
ror eax, 3
xor ebx, eax
add word [esp + ecx - 0x7440469d], dx
shr ecx, 0xb1
jns 0x104379d6
xor cx, bx
sub cx, 0x4291
push edx
movzx eax, byte [esp]
rol cx, 1
sar byte [esp + eax*2 - 0x85], 0xc5
xchg byte [esp + eax - 0x40], dh
sub cx, 0xff21
and ax, ax
rol cx, 1
shr edx, 0xf8
xor bx, cx
ror edx, 0x35
and dl, ah
or byte [esp + eax*8 - 0x217], 0x35
lea ebp, [ebp + eax*2 - 0x88]
mov word [ebp + eax*2 - 0x86], cx
sal al, 0x83
jae 0x104e6985
mov eax, dword [edi]
xor eax, ebx
bswap eax
pop ecx
neg eax
jmp 0x104bc5ba
adc edx, 0xd58006a9
not eax
push edx
or ecx, eax
movzx eax, dl
bswap eax
mov dword [eax + esi - 0x25000000], ecx
add eax, 0x24a76b18
sal ax, 0x82
mov eax, dword [edx + edi - 0x4c6d4825]
lea edi, [edi + edx - 0x4c6d4821]
setae dl
xor eax, ebx
movzx ecx, word [esp + edx - 0x4c6d4800]
bswap eax
push ecx
xor eax, 0x479ddbba
xchg dword [esp + edx - 0x4c6d47fd], edx
xadd cl, dh
inc byte [esp + ecx*4 - 0x12124]
lea eax, [ecx + eax - 0x4c9df3cf]
lea ecx, [ecx*2 - 0x18ee5170]
xadd dword [esp + edx - 0x6d482500], edx
rol eax, 1
xor cx, dx
xchg dh, dl
call fcn.1043972e