Function at 0xc53555
Capabilities:
Authenticate hmac

Disassembly:
adc eax, ecx
sar cx, 0x44
call fcn.00d2eb4a
mov eax, dword [ebp]
mov ecx, 0x88233100
adc ebp, 4
inc cl
movzx edx, cx
push edx
xor eax, ebx
and dword [esp + edx - 0x3101], edx
xadd byte [esp + edx*2 - 0x61ff], cl
neg eax
sal byte [esp + edx*8 - 0x18806], 0x63
xor eax, 0xf2b53a6
bt edx, 0x11
setae cl
xor word [esp + edx - 0x3100], dx
neg eax
lea eax, [ecx + eax - 0x50fca481]
sar cx, 0x8b
setbe dl
xor eax, 0x1d06fe24
xor ebx, eax
rol dx, cl
dec dword [esp + edx - 0x400c]
sal dword [esp + edx - 0x400c], cl
adc esi, eax
adc al, 0xf4
mov edi, 0xf013ffff
or cx, cx
or ecx, ecx
bts dx, dx
push edx
mov eax, dword [edx + edi - 0x500c]
mov edx, dword [edi + edx*2 - 0xa014]
call fcn.00c3ab68
jae 0xb9c1d1
je 0x7e1a9e
fld st(3)
mov bh, 0xa3
fistp qword [edi + edx*8 - 0x2214c6b5]
pop es
mov ch, 0x40
insd dword es:[edi], dx
pop ebp
fld qword [edi - 0x80]
and edx, dword [ebx + 0x4800acab]
jg 0x7e1a12
dec ebx
lodsb al, byte [esi]
add byte [eax + 0x47], cl
sbb eax, edx
wait
lodsb al, byte [esi]
add byte [eax - 2], cl
adc dword [ecx - 0x2e3f770], 0x7e
push esi
xchg edx, eax
push ds
mov eax, 0xe93f8031
push ds
add byte [eax], al
add byte [eax], al
fidivr word [edx + 0x4e]
adc dword [ebp - 0x47], 0x70495dc8
or dword [edx + 0x498d8829], 0x852d8170
pop eax
insd dword es:[edi], dx
dec ecx
jo 0x7e1a0a
sub dword [0x496d5885], 0x450d8170
loope 0x7e1a63
or eax, 0x35d6e145
mov dh, 0x8f
jle 0x7e1a81
xor eax, 0xef7e8fb6
add byte [edi], ah
les ebx, [ecx - 0x7e8ed0e0]
invalid
sbb al, 0x90
inc ebx
mov esi, dword [edx - 0x2d47f4c4]
push cs
push cs
salc
or al, 0xd6
mov bh, 0xe3
invalid
xchg dword [esp + 4], eax
adc eax, 0xfff33cf8
jmp eax
not eax
sub edx, edx
xor eax, 0x14945c05
shr edx, cl
sbb byte [esp + edx + 1], dh
neg eax
shr cl, 0x81
and edx, ecx
adc ecx, ecx
adc eax, edx
jmp 0xcd75e6
lea eax, [eax + ecx - 0x60ef7c86]
xor eax, 0x509549f
xor ebx, eax
add esi, eax
mov ecx, dword [edi]
mov eax, dword [edi + 4]
push 0x9f3ca3a8
mul ecx
call fcn.00bace54
mov ecx, 0x820a5f3b
lea eax, [ecx*8 - 0x26558edb]
mov edx, dword [edi]
neg eax
lea edi, [edi + eax*2 - 0x2c052a02]
bt eax, ecx
btc ecx, ecx
ror cx, 0x26
xor edx, ebx
btc cx, cx
dec al
jo 0xcde595
dec edx
ror edx, 2
cbw
xor eax, eax
not edx
dec ax
shl ax, 0x84
ja 0x7ad5eb
inc edx
not edx
rol ax, 0x43
push ecx
call fcn.00c0caec
pop edx
not ecx
btc edx, edx
shl dx, 0xc8
sbb edx, edx
or eax, ecx
mov dword [esi + edx*4], eax
add edx, dword [edx + ebp]
mov eax, 0xb984d009
movzx ecx, ax
and ax, ax
lea ebp, [ebp + ecx - 0xd005]
shr eax, cl
rol cl, 7
ror ecx, 0x1d
xor edx, ebx
shr eax, 0xcd
or cx, ax
lea ecx, [ecx + eax*8 - 0x62de7fc8]
sbb edx, 0xca1c011d
shr ecx, 0x3c
btr ax, cx
not edx
sub eax, ecx
jge 0xd07cd8
neg ecx
lea ecx, [eax + ecx - 0x4cc3ab6a]
mov dword [esp + eax - 0x8c00041], edx
add word [esp + eax*8 - 0x46000207], 0xfdb8
jae 0xaadd32
ror ecx, 1
xor ebx, ecx
dec word [esp + eax*4 - 0x23000102]
mul edx
call fcn.00be0e9b
adc dword [edi + ebp*8 - 0xc], 0x33
ret
movzx ecx, byte [esi]
movsx eax, dl
imul dx, dx
lea esi, [esi + eax - 5]
xor cl, bl
ror eax, 0x8f
sub edx, edx
neg cl
sub eax, eax
add al, 0x8f
dec cl
not cl
not al
ror cl, 1
inc cl
xor bl, cl
imul eax, eax
adc ax, ax
adc ecx, esp
lea edx, [edx - 0x4ac515e4]
add dl, ah
lea edx, [eax + eax*8 - 0x4ac827dc]
movzx dx, byte [ecx + eax - 0x6200]
mov ecx, eax
lea edi, [edi + eax*8 - 0x31002]
btc eax, 0x96
and cl, ch
mov word [edi + eax*4 - 0x1018800], dx
dec eax
add eax, 0xb289c8aa
movsx edx, cl
ja fcn.00be75f1
pop ecx
mov word [esi - 2], ax
push edx
mov eax, dword [ebp - 4]
add edx, dword [esp]
xor eax, ebx
neg eax
lea ecx, [edx*2 - 0x3c571ca]
and dword [esp + ecx*2 - 0x42569994], edx
xor dx, 0x399b
not eax
bswap edx
xor dx, dx
not cx
sbb eax, 0x6e99819e
sar cx, 0x89
add ecx, dword [esp + ecx*2 - 0x4257ffb2]
jae 0xb29cf6
mov eax, dword [esi + eax - 0x7afd4bb]
add esi, 4
mov edx, 0x9028bd88
bt edx, 0xa
xor eax, ebx
not eax
xor edx, 0x308e4cbc
mov ecx, edx
add cx, cx
ror eax, 1
neg eax
ror eax, 3
xor ebx, eax
rol cl, 1
rol cl, 7
rol cl, 0xc6
adc ebp, eax
lea edx, [edx + 0x66044ebc]
bswap edx
jmp 0xc1cbf3
xor ebx, eax
neg ecx
add edi, eax
movzx ecx, byte [ebp + edx*8 - 5]
xchg dword [esp + edx], edx
pop edx
lea ebp, [ebp + edx - 5]
xor cl, bl
btr edx, 0x17
movsx eax, dx
not dl
ror cl, 1
imul edx, edx
jo 0xbdd639
inc eax
neg cl
sub ax, ax
ror cl, 1
not cl
btc eax, edx
xor dl, 0xad
sal ax, 0xa8
adc cl, 0x12
rol eax, 0x9e
ror cl, 1
cwd
xor bl, cl
mov word [edx + esi - 4], cx
movsx ecx, dx
lea esi, [esi + edx - 4]
bswap ecx
btc eax, eax
not edx
jae fcn.00ad155b
mov ecx, 0x88c2e0b
movzx ax, byte [edi + ecx*8 - 0x44617058]
mov edx, ecx
call fcn.00c1e1c9
mov eax, 0x8b374693
rol eax, 0x3b
jae 0x7e19a3
lea edi, [edi + eax*4]
not eax
call fcn.00b9cc5c
mov edx, 0xfb8b549f
push edx
not edx
mov eax, dword [esi + edx*2 - 0x8e956c0]
lea ecx, [edx*2 + 0x5c1ce70e]
shr cx, 0xe1
mov ecx, dword [esi + edx*2 - 0x8e956bc]
neg word [esp + edx*2 - 0x8e956bf]
xchg byte [esp + edx*2 - 0x8e956c0], dl
lea esi, [esi + edx*2 - 0x8e9573a]
not eax
jne 0xbd3b17
call fcn.0078cfd9
mov eax, 0xd112c385
bts eax, eax
mov eax, dword [esi]
adc esi, 4
xor eax, ebx
mov edx, 0x4c2e65af
lea eax, [eax + edx*2 + 0x432e6cc5]
movzx ecx, dx
not eax
call fcn.0074c657
adc dword [esp + eax - 0x2fce01c0], eax
lea edx, [esp + edx + 8]
xor al, 0xc
sbb ax, ax
dec dword [esp + eax*2 - 0x5f9c0000]
mov word [edx + eax*2 - 0x5f9c0000], cx
not dword [esp + eax - 0x2fcdfffe]
lea edx, [eax + eax*2 + 0x289c64a6]
mov dword [esp + eax - 0x2fce0000], esi
ret 4
je 0xc60231
rol edx, 1
not edx
xor ebx, edx
add al, 0x29
push ecx
add edi, edx
mov dword [esp + eax*8 - 0x30], edi
ret