Function at 0x487ef0
Capabilities:
Authenticate hmac

Disassembly:
mov eax, 0x5c
call fcn.006021b0
mov ax, word [0x64af57]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x74]
push edi
push eax
mov esi, ecx
call fcn.005026fc
mov ebp, dword [esp + 0x78]
xor ebx, ebx
push ebp
lea ecx, [esp + 0x24]
mov dword [esi], 0x62abb0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], ebx
call fcn.00513f68
mov cl, byte [esi + 9]
push ebp
or cl, 0x10
mov dword [esp + 0x18], ebx
mov byte [esi + 9], cl
mov ecx, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call fcn.004ee444
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
mov byte [esi + 9], dl
test al, 8
je 0x487f8c
push 1
push 0x36
mov ecx, 0x74c070
call fcn.004e2a54
cmp eax, ebx
je 0x487f87
push esi
push ebx
push 0xc17
mov ecx, eax
call fcn.00501844
jmp 0x487f89
xor eax, eax
mov dword [esi + 0x4e], eax
push 0x814
mov ecx, edi
call fcn.004ef848
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 0x4880df
mov al, byte [ebx + 0x10]
push 0
test al, 2
push 0x84
jne 0x487fc9
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
jmp 0x487fd1
mov ecx, dword [ebx + 8]
call fcn.004ebdf0
xor ecx, ecx
test eax, eax
setne cl
mov edx, ecx
mov dword [esi + 0x62], ecx
push edx
push 0x814
mov ecx, esi
call fcn.004f9cb4
push 0x3ff
push 4
push esi
mov ecx, eax
mov dword [esi + 0x5e], eax
call fcn.004eea74
test byte [ebx + 0x10], 2
jne 0x48800e
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004ec054
mov ebp, eax
test ebp, ebp
je 0x4880db
mov al, byte [ebp + 0x10]
push 0
test al, 2
push 0xe1
jne 0x48803d
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 8]
jmp 0x488045
mov ecx, dword [ebp + 8]
call fcn.004ebdf0
mov edi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x488088
mov al, byte [edi + 0x10]
push 0
test al, 2
push 0x82
jne 0x488066
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
jmp 0x48806e
mov ecx, dword [edi + 8]
call fcn.004ebdf0
test eax, eax
je 0x488088
push 1
push 0x101b
mov ecx, esi
call fcn.004f9cb4
mov dword [esp + 0x74], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4880a0
push edi
mov ecx, esi
call fcn.004ef804
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
push edx
push eax
push edi
mov ecx, esi
call fcn.004879f0
test byte [ebx + 0x10], 2
jne 0x4880c8
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.004ec11c
mov ebp, eax
test ebp, ebp
jne 0x488025
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
push ebx
push edx
mov ecx, esi
call fcn.00487910
test ebx, ebx
je 0x4881e0
test byte [ebx + 0x10], 2
jne 0x48810b
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004ec054
mov edi, eax
test edi, edi
je 0x4881f1
mov al, byte [edi + 0x10]
push 0
test al, 2
push 0xe2
jne 0x488139
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 8]
jmp 0x488141
mov ecx, dword [edi + 8]
call fcn.004ebdf0
test eax, eax
jne 0x488150
push ebp
push edi
mov ecx, esi
call fcn.00487130
jmp 0x4881b0
push 1
push 0x6a
mov ecx, 0x65c654
call fcn.004e2a54
test eax, eax
je 0x488170
push ebp
push esi
push edi
mov ecx, eax
call fcn.0048af40
mov ebp, eax
jmp 0x488172
xor ebp, ebp
mov eax, dword [esi + 0x4e]
test eax, eax
jne 0x4881a1
push 1
push 0x36
mov ecx, 0x74c070
call fcn.004e2a54
test eax, eax
je 0x48819c
push esi
push 0
push 0xc17
mov ecx, eax
call fcn.00501844
jmp 0x48819e
xor eax, eax
mov dword [esi + 0x4e], eax
mov ecx, dword [esi + 0x4e]
push 0
push ebp
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ebp, dword [esp + 0x78]
test byte [ebx + 0x10], 2
jne 0x4881c1
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.004ec11c
mov edi, eax
test edi, edi
jne 0x488122
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0xc
mov ecx, dword [esi + 0x5e]
push 0
call fcn.0050fc4c
mov eax, dword [esi + 0x5e]
and byte [eax + 9], 0xfe
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0xc