Function at 0x1400f3630
Capabilities:
Authenticate hmac

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
add rsp, 0x244acef4
sub rsp, 0x244acfa4
xor ebx, ebx
movaps xmmword [rax - 0x48], xmm6
mov r14, r9
movaps xmmword [rax - 0x58], xmm7
mov rdi, r8
mov rsi, rdx
mov rbp, rcx
cmp qword [r8], rbx
je 0x1400f3a70
cmp qword [r8 + 8], rbx
je 0x1400f3a70
cmp dword [r8 + 0x10], ebx
jle 0x1400f3a70
mov rax, qword [0x140140780]
movabs rcx, 0x3ef9490c2a536c06
add rcx, 0x26bd91ad
xor rcx, 0x13cc3e65
xor rcx, 0xfc2c02b
mov rdx, qword [r8]
xor rax, rcx
movabs rcx, 0x59ac739233ea5d36
add rcx, 0x571472b
add rcx, 0x7fffffff
add rcx, 0x14097438
add rax, rcx
movabs rcx, 0x695b95e37aefe8d4
sub rcx, 0x131ad425
add rcx, 0x4cc47ef9
ror rax, 0xd
add rax, rcx
mov rcx, rsi
call rax
movsxd rcx, dword [rdi + 0x10]
lea eax, [rbx + 2]
mul rcx
lea r12, [rbx - 1]
cmovo rax, r12
mov rcx, rax
call fcn.140097620
mov r10, qword [0x1401407b8]
mov r15, rax
mov r8d, dword [rdi + 0x10]
movabs rcx, 0xf1ccc866473f7b9b
sub rcx, 0x148cafdc
sub rcx, 0x506620a
add rcx, 0xd8eb345
mov rdx, qword [rdi + 8]
add r10, rcx
rol r10, 0xe
mov r9, r15
mov qword [rsp + 0x68], rax
not r10
movabs rax, 0x64d6d9bf2c66b94e
sub rax, 0x141cc284
xor rax, 0x48165181
mov dword [rsp + 0x20], 0x4de4b6e6
xor dword [rsp + 0x20], 0x7594f0f
sub dword [rsp + 0x20], 0x4abdf9e8
sub r10, rax
mov rcx, rsi
call r10
cmp eax, 0xffffffff
je 0x1400f3a63
movsxd rcx, dword [rdi + 0x10]
lea eax, [rbx + 4]
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.140097620
mov r10, qword [0x1401407c8]
mov r12, rax
mov r8d, dword [rdi + 0x10]
not r10
mov qword [rsp + 0x58], rax
xor r9d, r9d
movabs rax, 0x14991a0318bea565
xor rax, 0x119d8ab7
sub rax, 0x5141655
mov rdx, r15
xor r10, rax
mov rcx, rsi
movabs rax, 0x515806b09a606b3
add rax, 0x41ff78a0
sub rax, 0x14eafad3
sub r10, rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
rol r10, 0x3c
mov qword [rsp + 0x20], rbx
call r10
test eax, eax
je 0x1400f3a5b
mov r15d, dword [rbp + 0x2e8]
mov ecx, 0x6e417548
sub ecx, 0x5fea15cc
xor ecx, 0xae84e86
add ecx, 0x59ba57fd
mov eax, dword [rbp + 0x2ec]
xor r15d, ecx
mov r13d, dword [rbp + 0x2f0]
xor eax, ecx
mov esi, dword [rbp + 0x2f4]
xor r13d, ecx
xor esi, ecx
mov dword [rsp + 0x40], ebx
movsxd rcx, dword [rdi + 0x10]
mov edx, ebx
mov qword [rsp + 0x60], rcx
mov r9d, ebx
test rcx, rcx
jle 0x1400f3a4e
movd xmm6, r15d
mov ecx, ebx
movd xmm7, eax
cvtdq2ps xmm6, xmm6
mov qword [rsp + 0x50], rbx
cvtdq2ps xmm7, xmm7
mov rax, qword [rdi + 8]
mov r12d, dword [r12 + rcx*4]
sub r12d, edx
mov edx, dword [r14]
movzx eax, word [rax + rcx*2]
mov word [rsp + 0x100], ax
lea eax, [rdx + r12]
add eax, esi
cmp eax, r15d
jl 0x1400f38c2
lea eax, [r13 + 1]
mov dword [r14], esi
add dword [r14 + 4], eax
mov edx, esi
mov ecx, dword [rsp + 0x4c]
lea eax, [rdx + r12]
mov r8d, dword [r14 + 4]
add ecx, r8d
mov dword [rsp + 0x7c], ecx
mov dword [rsp + 0x78], eax
mov rax, qword [rdi + 8]
mov ecx, r9d
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], 0x14370513
add dword [rsp + 0x30], 0x533e2865
xor dword [rsp + 0x30], 0x67752d79
mov dword [rsp + 0x70], edx
lea r9, [rax + rcx*2]
mov dword [rsp + 0x74], r8d
mov qword [rsp + 0x28], r9
movabs rcx, 0x1217fb7d0c1d7be6
add rcx, 0x4026125d
add rcx, 0x20ebca8
add rcx, 0x7fffffff
xor rcx, 0x101d5b8f
add rcx, qword [0x1401407d0]
movabs rax, 0x2e38ec36090746fe
add rax, 0x74b38db4
sub rax, 0x1540c2e8
not rcx
mov r9d, 0x6e06ee7
add r9d, 0x3e20d537
xor r9d, 0x35270465
xor r9d, 0x7026407f
ror rcx, 5
add rax, rcx
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0xf8]
call rax
mov ecx, dword [r14]
mov eax, ecx
mov edx, dword [r14 + 4]
sub eax, esi
mov r9d, dword [rsp + 0x40]
inc r9d
mov dword [rsp + 0x40], r9d
movd xmm0, eax
lea eax, [rcx + r12]
mov ecx, dword [rsp + 0x4c]
add eax, esi
cvtdq2ps xmm0, xmm0
add ecx, edx
movd xmm1, edx
divss xmm0, xmm6
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x80], xmm0
movd xmm0, eax
mov rax, qword [rbp + 0x300]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm7
divss xmm0, xmm6
movss dword [rsp + 0x84], xmm1
movss dword [rsp + 0x88], xmm0
movd xmm0, ecx
movzx ecx, word [rsp + 0x100]
add rcx, rcx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm7
movss dword [rsp + 0x8c], xmm0
movaps xmm1, xmmword [rsp + 0x80]
xorps xmm1, xmmword [0x140145580]
movups xmmword [rax + rcx*8], xmm1
lea eax, [rsi + rsi]
mov rcx, qword [rsp + 0x50]
add eax, r12d
add dword [r14], eax
mov r12, qword [rsp + 0x58]
mov edx, dword [r12 + rcx*4]
inc rcx
mov qword [rsp + 0x50], rcx
cmp rcx, qword [rsp + 0x60]
jl 0x1400f388c
mov r15, qword [rsp + 0x68]
mov bl, 0x36
add bl, 6
xor bl, 0x3d
mov rcx, r12
call fcn.140097630
mov rcx, r15
call fcn.140097630
jmp 0x1400f3a78
mov bl, 0x7d
sub bl, 0x5c
sub bl, 0x20
lea r11, [rsp + 0xb0]
mov al, bl
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret