Function at 0x488370
Capabilities:
Authenticate hmac

Disassembly:
mov eax, 0x5c
call fcn.006977b0
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.0051e160
mov ebp, dword [esp + 0x78]
xor ebx, ebx
push ebp
lea ecx, [esp + 0x24]
mov dword [esi], 0x6c2c58
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], ebx
call fcn.0053513c
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.004f7b94
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 0x488409
push 1
push 0x36
mov ecx, 0x700ae8
call fcn.004e5c2c
cmp eax, ebx
je 0x488404
push esi
push ebx
push 0xc17
mov ecx, eax
call fcn.0051dd8c
jmp 0x488406
xor eax, eax
mov dword [esi + 0x4e], eax
push 0x814
mov ecx, edi
call fcn.004f9070
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 0x488559
test byte [ebx + 0x10], 2
push 0
push 0x84
jne 0x488445
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
jmp 0x48844d
mov ecx, dword [ebx + 8]
call fcn.004f3444
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.0050a12c
push 0x3ff
push 4
push esi
mov ecx, eax
mov dword [esi + 0x5e], eax
call fcn.004f8000
test byte [ebx + 0x10], 2
jne 0x48848a
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004f31d0
mov ebp, eax
test ebp, ebp
je 0x488555
test byte [ebp + 0x10], 2
push 0
push 0xe1
jne 0x4884b8
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 8]
jmp 0x4884c0
mov ecx, dword [ebp + 8]
call fcn.004f3444
mov edi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x488502
test byte [edi + 0x10], 2
push 0
push 0x82
jne 0x4884e0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
jmp 0x4884e8
mov ecx, dword [edi + 8]
call fcn.004f3444
test eax, eax
je 0x488502
push 1
push 0x101b
mov ecx, esi
call fcn.0050a12c
mov dword [esp + 0x74], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x48851a
push edi
mov ecx, esi
call fcn.004f9034
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.00487e80
test byte [ebx + 0x10], 2
jne 0x488542
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.004f2f9c
mov ebp, eax
test ebp, ebp
jne 0x4884a1
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x14]
push ecx
push ebx
lea edx, [esp + 0x28]
push edx
mov ecx, esi
call fcn.00487da0
test ebx, ebx
je 0x48865d
test byte [ebx + 0x10], 2
jne 0x488585
mov eax, dword [ebx]
push 0xe1
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [ebx + 8]
push 0xe1
call fcn.004f31d0
mov edi, eax
test edi, edi
je 0x48866e
lea esp, [esp]
test byte [edi + 0x10], 2
push 0
push 0xe2
jne 0x4885b6
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 8]
jmp 0x4885be
mov ecx, dword [edi + 8]
call fcn.004f3444
test eax, eax
jne 0x4885cd
push ebp
push edi
mov ecx, esi
call fcn.004875c0
jmp 0x48862d
push 1
push 0x6a
mov ecx, 0x6fe694
call fcn.004e5c2c
test eax, eax
je 0x4885ed
push ebp
push esi
push edi
mov ecx, eax
call fcn.0048b350
mov ebp, eax
jmp 0x4885ef
xor ebp, ebp
mov eax, dword [esi + 0x4e]
test eax, eax
jne 0x48861e
push 1
push 0x36
mov ecx, 0x700ae8
call fcn.004e5c2c
test eax, eax
je 0x488619
push esi
push 0
push 0xc17
mov ecx, eax
call fcn.0051dd8c
jmp 0x48861b
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 0x48863e
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.004f2f9c
mov edi, eax
test edi, edi
jne 0x4885a0
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.0052fbe4
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