Function at 0x487e90
Capabilities:
Authenticate hmac

Disassembly:
mov eax, 0x5c
call fcn.00696350
push ebx
push ebp
push esi
xor eax, eax
mov ax, word [0x6ecf57]
push edi
mov edi, dword [esp + 0x74]
push edi
mov esi, ecx
push eax
call fcn.0051db54
mov ebp, dword [esp + 0x78]
xor ebx, ebx
push ebp
lea ecx, [esp + 0x24]
mov dword [esi], 0x6c1bf0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], ebx
call fcn.00534b08
or byte [esi + 9], 0x10
push ebp
mov ecx, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call fcn.004f75a0
mov dl, byte [esi + 9]
mov dword [esi + 0x4a], edi
mov cl, byte [edi + 9]
xor cl, dl
and cl, 8
xor dl, cl
mov al, dl
test al, 8
mov byte [esi + 9], dl
je 0x487f29
push 1
push 0x36
mov ecx, 0x6ffadc
call fcn.004e566c
cmp eax, ebx
je 0x487f24
push esi
push ebx
push 0xc17
mov ecx, eax
call fcn.0051d778
jmp 0x487f26
xor eax, eax
mov dword [esi + 0x4e], eax
push 0x814
mov ecx, edi
call fcn.004f8a80
mov ecx, dword [eax + 0x17]
mov ebx, dword [esp + 0x70]
xor edx, edx
cmp ecx, 2
sete dl
test ebx, ebx
mov dword [esi + 0x62], edx
je 0x488079
test byte [ebx + 0x10], 2
push 0
push 0x84
jne 0x487f65
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
jmp 0x487f6d
mov ecx, dword [ebx + 8]
call fcn.004f2ea0
xor ecx, ecx
test eax, eax
setne cl
mov edx, ecx
push edx
mov dword [esi + 0x62], ecx
push 0x814
mov ecx, esi
call fcn.00509b20
push 0x3ff
push 4
push esi
mov ecx, eax
mov dword [esi + 0x5e], eax
call fcn.004f7a0c
test byte [ebx + 0x10], 2
jne 0x487faa
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004f2c2c
mov ebp, eax
test ebp, ebp
je 0x488075
test byte [ebp + 0x10], 2
push 0
push 0xe1
jne 0x487fd8
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 8]
jmp 0x487fe0
mov ecx, dword [ebp + 8]
call fcn.004f2ea0
mov edi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x488022
test byte [edi + 0x10], 2
push 0
push 0x82
jne 0x488000
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
jmp 0x488008
mov ecx, dword [edi + 8]
call fcn.004f2ea0
test eax, eax
je 0x488022
push 1
push 0x101b
mov ecx, esi
call fcn.00509b20
mov dword [esp + 0x74], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x48803a
push edi
mov ecx, esi
call fcn.004f8a44
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
push eax
push edi
mov ecx, esi
call fcn.004879a0
test byte [ebx + 0x10], 2
jne 0x488062
mov eax, dword [ebp + 4]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x10]
mov ecx, dword [ebx + 8]
push ebp
call fcn.004f29f8
mov ebp, eax
test ebp, ebp
jne 0x487fc1
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x14]
push ecx
push ebx
lea edx, [esp + 0x28]
push edx
mov ecx, esi
call fcn.004878c0
test ebx, ebx
je 0x48817d
test byte [ebx + 0x10], 2
jne 0x4880a5
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004f2c2c
mov edi, eax
test edi, edi
je 0x48818e
lea esp, [esp]
test byte [edi + 0x10], 2
push 0
push 0xe2
jne 0x4880d6
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 8]
jmp 0x4880de
mov ecx, dword [edi + 8]
call fcn.004f2ea0
test eax, eax
jne 0x4880ed
push ebp
push edi
mov ecx, esi
call fcn.004870e0
jmp 0x48814d
push 1
push 0x6a
mov ecx, 0x6fd694
call fcn.004e566c
test eax, eax
je 0x48810d
push ebp
push esi
push edi
mov ecx, eax
call fcn.0048ae30
mov ebp, eax
jmp 0x48810f
xor ebp, ebp
mov eax, dword [esi + 0x4e]
test eax, eax
jne 0x48813e
push 1
push 0x36
mov ecx, 0x6ffadc
call fcn.004e566c
test eax, eax
je 0x488139
push esi
push 0
push 0xc17
mov ecx, eax
call fcn.0051d778
jmp 0x48813b
xor eax, eax
mov dword [esi + 0x4e], eax
mov ecx, dword [esi + 0x4e]
mov eax, dword [ecx]
push 0
push ebp
call dword [eax + 0x60]
mov ebp, dword [esp + 0x78]
test byte [ebx + 0x10], 2
jne 0x48815e
mov eax, dword [edi + 4]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x10]
mov ecx, dword [ebx + 8]
push edi
call fcn.004f29f8
mov edi, eax
test edi, edi
jne 0x4880c0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0xc
mov ecx, dword [esi + 0x5e]
push 0
call fcn.0052f5b0
mov eax, dword [esi + 0x5e]
and byte [eax + 9], 0xfe
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0xc