Function at 0x4f8c00
Capabilities:
Authenticate hmac

Disassembly:
lea r12, [rsp - 0xe8]
cmp r12, qword [r14 + 0x10]
jbe 0x4f91e8
sub rsp, 0x168
mov qword [rsp + 0x160], rbp
lea rbp, [rsp + 0x160]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rbx
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x188], rdi
movups xmmword [rsp + 0x98], xmm15
lea rax, [0x00586060]
call fcn.0040da20
mov qword [rsp + 0x88], rax
mov rdx, qword [rsp + 0x170]
mov rcx, qword [rdx]
call rcx
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rbx
mov rdi, qword [rsp + 0x88]
test byte [rdi], al
mov qword [rdi + 0x30], rax
lea rcx, [rdi + 0x38]
cmp dword [0x006b38f0], 0
je 0x4f8ca2
nop
jmp 0x4f8ca8
mov qword [rdi + 0x38], rbx
jmp 0x4f8cb2
mov rdi, rcx
call fcn.004661c0
jmp 0x4f8cb2
mov rdx, qword [rsp + 0x170]
mov rax, qword [rdx]
call rax
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rbx
mov rdi, qword [rsp + 0x88]
test byte [rdi], al
mov qword [rdi + 0x40], rax
lea rax, [rdi + 0x48]
cmp dword [0x006b38f0], 0
je 0x4f8cec
jmp 0x4f8cf2
mov qword [rdi + 0x48], rbx
jmp 0x4f8cfc
mov rdi, rax
call fcn.004661c0
jmp 0x4f8cfc
mov byte [rsp + 0x27], 1
mov rax, qword [rsp + 0x88]
lea rbx, [rsp + 0x27]
call fcn.004f9220
cmp byte [rsp + 0x27], 0
jne 0x4f8d1f
jmp 0x4f91d4
mov rcx, qword [rsp + 0x88]
test byte [rcx], al
mov rdx, qword [rcx + 0x40]
test byte [rdx], al
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov qword [rsp + 0x38], rax
mov rbx, rax
mov rcx, rbx
lea rax, [0x00575360]
call fcn.0044d620
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rdx
mov rdi, qword [rsp + 0x88]
test byte [rdi], al
mov qword [rdi + 0x20], rcx
mov qword [rdi + 0x28], rdx
lea rcx, [rdi + 0x18]
cmp dword [0x006b38f0], 0
je 0x4f8d93
jmp 0x4f8d99
mov qword [rdi + 0x18], rax
jmp 0x4f8da7
mov rdi, rcx
nop dword [rax]
call fcn.00466080
jmp 0x4f8da7
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x38]
lea rax, [0x00575360]
call fcn.0044d620
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rdx
mov qword [rsp + 0x140], rsi
mov rdi, qword [rsp + 0x88]
test byte [rdi], al
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], rsi
cmp dword [0x006b38f0], 0
je 0x4f8dfc
jmp 0x4f8e02
mov qword [rdi], rax
nop
jmp 0x4f8e09
call fcn.00466080
jmp 0x4f8e09
mov rdx, qword [rsp + 0x180]
mov qword [rsp + 0x80], rdx
nop dword [rax]
cmp qword [rsp + 0x38], rdx
jl 0x4f8e29
jmp 0x4f8e96
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rsi, qword [rdx + 0x30]
test byte [rsi], al
mov rax, qword [rdx + 0x38]
mov rbx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x180]
mov rdi, qword [rsp + 0x188]
mov rdx, qword [rsi + 0x38]
call rdx
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rsi, qword [rdx + 0x30]
test byte [rsi], al
mov rax, qword [rdx + 0x38]
mov rdx, qword [rsi + 0x30]
xor ebx, ebx
xor ecx, ecx
mov rdi, rcx
call rdx
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x180], rbx
mov qword [rsp + 0x188], rcx
jmp 0x4f8e98
jmp 0x4f8e98
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rsi, qword [rdx + 0x18]
mov r8, qword [rdx + 0x20]
mov rdx, qword [rdx + 0x28]
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x128], rdx
mov rdx, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x180]
mov r8, qword [rsp + 0x188]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], rsi
mov qword [rsp + 0x110], r8
mov rdx, qword [rsp + 0x120]
mov qword [rsp + 0x78], rdx
cmp qword [rsp + 0x108], rdx
jl 0x4f8f0f
jmp 0x4f8f20
mov rdx, qword [rsp + 0x108]
mov qword [rsp + 0x78], rdx
jmp 0x4f8f22
jmp 0x4f8f22
mov rdx, qword [rsp + 0x100]
cmp qword [rsp + 0x118], rdx
jne 0x4f8f36
jmp 0x4f8f57
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x70], rcx
mov rax, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x100]
call fcn.00466ec0
jmp 0x4f8f59
jmp 0x4f8f59
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rsi, qword [rdx]
mov r8, qword [rdx + 8]
mov rdx, qword [rdx + 0x10]
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xf0], r8
mov qword [rsp + 0xf8], rdx
mov rdx, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x180]
mov r8, qword [rsp + 0x188]
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], rsi
mov qword [rsp + 0xe0], r8
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x68], rdx
cmp qword [rsp + 0xd8], rdx
jl 0x4f8fcf
jmp 0x4f8fe0
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x68], rdx
jmp 0x4f8fe2
jmp 0x4f8fe2
mov rdx, qword [rsp + 0xe8]
cmp qword [rsp + 0xd0], rdx
jne 0x4f8ff6
jmp 0x4f9017
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xd0]
call fcn.00466ec0
jmp 0x4f9019
jmp 0x4f9019
mov qword [rsp + 0x58], 0
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rdx, qword [rdx + 0x20]
mov qword [rsp + 0x50], rdx
jmp 0x4f9037
mov rdx, qword [rsp + 0x58]
nop dword [rax]
cmp qword [rsp + 0x50], rdx
jg 0x4f9049
jmp 0x4f90aa
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rcx, qword [rdx + 0x20]
mov rdx, qword [rdx + 0x18]
cmp rcx, rax
ja 0x4f906f
jmp 0x4f91cf
mov rsi, qword [rsp + 0x88]
test byte [rsi], al
mov rcx, qword [rsi + 0x20]
mov rsi, qword [rsi + 0x18]
add rdx, rax
movzx edx, byte [rdx]
xor edx, 0x36
cmp rcx, rax
ja 0x4f9094
jmp 0x4f91ca
add rsi, rax
mov byte [rsi], dl
jmp 0x4f909b
mov rdx, qword [rsp + 0x58]
inc rdx
mov qword [rsp + 0x58], rdx
jmp 0x4f9037
mov qword [rsp + 0x48], 0
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rdx, qword [rdx + 8]
mov qword [rsp + 0x40], rdx
jmp 0x4f90c8
mov rdx, qword [rsp + 0x48]
cmp qword [rsp + 0x40], rdx
jg 0x4f90d6
jmp 0x4f9135
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rcx, qword [rdx + 8]
mov rdx, qword [rdx]
cmp rcx, rax
ja 0x4f90fb
jmp 0x4f91c5
mov rsi, qword [rsp + 0x88]
test byte [rsi], al
mov rcx, qword [rsi + 8]
mov rsi, qword [rsi]
add rdx, rax
movzx edx, byte [rdx]
xor edx, 0x5c
cmp rcx, rax
ja 0x4f911f
jmp 0x4f91bc
add rsi, rax
mov byte [rsi], dl
jmp 0x4f9126
mov rdx, qword [rsp + 0x48]
inc rdx
mov qword [rsp + 0x48], rdx
jmp 0x4f90c8
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rbx, qword [rdx + 0x18]
mov rcx, qword [rdx + 0x20]
mov rdi, qword [rdx + 0x28]
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rdi
mov rdx, qword [rsp + 0x88]
test byte [rdx], al
mov rsi, qword [rdx + 0x40]
test byte [rsi], al
mov rax, qword [rdx + 0x48]
mov rdx, qword [rsi + 0x38]
call rdx
mov rbx, qword [rsp + 0x88]
mov qword [rsp + 0x90], rbx
lea rdx, [0x005b9388]
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], rbx
mov rax, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x160]
add rsp, 0x168
ret
nop dword [rax]
call fcn.00466520
call fcn.00466520
call fcn.00466520
call fcn.00466520
lea rax, [0x005751e0]
lea rbx, [0x005b8808]
call fcn.0043ad20
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
nop dword [rax]
call fcn.00463e40
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.004f8c00