Function at 0x487fa0
Capabilities:
Authenticate hmac

Disassembly:
mov eax, 0x5c
call fcn.00697340
push ebx
push ebp
push esi
xor eax, eax
mov ax, word [0x6edf57]
push edi
mov edi, dword [esp + 0x74]
push edi
mov esi, ecx
push eax
call fcn.0051dcf4
mov ebp, dword [esp + 0x78]
xor ebx, ebx
push ebp
lea ecx, [esp + 0x24]
mov dword [esi], 0x6c2bf0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], ebx
call fcn.00534ce0
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.004f76e8
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 0x488039
push 1
push 0x36
mov ecx, 0x700ae8
call fcn.004e579c
cmp eax, ebx
je 0x488034
push esi
push ebx
push 0xc17
mov ecx, eax
call fcn.0051d920
jmp 0x488036
xor eax, eax
mov dword [esi + 0x4e], eax
push 0x814
mov ecx, edi
call fcn.004f8bc4
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 0x488189
test byte [ebx + 0x10], 2
push 0
push 0x84
jne 0x488075
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
jmp 0x48807d
mov ecx, dword [ebx + 8]
call fcn.004f3000
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.00509cc8
push 0x3ff
push 4
push esi
mov ecx, eax
mov dword [esi + 0x5e], eax
call fcn.004f7b54
test byte [ebx + 0x10], 2
jne 0x4880ba
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004f2d8c
mov ebp, eax
test ebp, ebp
je 0x488185
test byte [ebp + 0x10], 2
push 0
push 0xe1
jne 0x4880e8
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 8]
jmp 0x4880f0
mov ecx, dword [ebp + 8]
call fcn.004f3000
mov edi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x488132
test byte [edi + 0x10], 2
push 0
push 0x82
jne 0x488110
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
jmp 0x488118
mov ecx, dword [edi + 8]
call fcn.004f3000
test eax, eax
je 0x488132
push 1
push 0x101b
mov ecx, esi
call fcn.00509cc8
mov dword [esp + 0x74], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x48814a
push edi
mov ecx, esi
call fcn.004f8b88
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.00487ab0
test byte [ebx + 0x10], 2
jne 0x488172
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.004f2b58
mov ebp, eax
test ebp, ebp
jne 0x4880d1
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x14]
push ecx
push ebx
lea edx, [esp + 0x28]
push edx
mov ecx, esi
call fcn.004879d0
test ebx, ebx
je 0x48828d
test byte [ebx + 0x10], 2
jne 0x4881b5
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004f2d8c
mov edi, eax
test edi, edi
je 0x48829e
lea esp, [esp]
test byte [edi + 0x10], 2
push 0
push 0xe2
jne 0x4881e6
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 8]
jmp 0x4881ee
mov ecx, dword [edi + 8]
call fcn.004f3000
test eax, eax
jne 0x4881fd
push ebp
push edi
mov ecx, esi
call fcn.004871f0
jmp 0x48825d
push 1
push 0x6a
mov ecx, 0x6fe694
call fcn.004e579c
test eax, eax
je 0x48821d
push ebp
push esi
push edi
mov ecx, eax
call fcn.0048af60
mov ebp, eax
jmp 0x48821f
xor ebp, ebp
mov eax, dword [esi + 0x4e]
test eax, eax
jne 0x48824e
push 1
push 0x36
mov ecx, 0x700ae8
call fcn.004e579c
test eax, eax
je 0x488249
push esi
push 0
push 0xc17
mov ecx, eax
call fcn.0051d920
jmp 0x48824b
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 0x48826e
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.004f2b58
mov edi, eax
test edi, edi
jne 0x4881d0
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.0052f788
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