Function at 0x180029b60
Capabilities:
Authenticate hmac

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
xor r12d, r12d
movaps xmmword [rax - 0x28], xmm6
mov r15, rcx
xorps xmm2, xmm2
test rdx, rdx
je 0x180029c07
movups xmm0, xmmword [rdx]
lea rax, [rsp + 0x48]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rsp + 0x48], xmm0
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x58], xmm1
movups xmm1, xmmword [rdx + 0x30]
movups xmmword [rsp + 0x68], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rsp + 0x78], xmm1
movups xmm1, xmmword [rdx + 0x50]
movups xmmword [rbp - 0x78], xmm0
movups xmm0, xmmword [rdx + 0x60]
movups xmmword [rbp - 0x68], xmm1
movups xmm1, xmmword [rdx + 0x70]
movups xmmword [rbp - 0x58], xmm0
movsd xmm0, qword [rdx + 0x80]
movsd qword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x48], xmm1
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rbp - 0x20], xmm1
movaps xmmword [rbp - 0x10], xmm0
jmp 0x180029cae
xorps xmm0, xmm0
mov qword [rsp + 0x48], r12
movups xmmword [rsp + 0x6c], xmm0
mov eax, 0xffff
mov dword [rsp + 0x50], r12d
movss xmm0, dword [0x1800648e8]
movss dword [rbp - 0x74], xmm0
movss xmm0, dword [0x1800630e8]
mov word [rbp - 0x64], ax
xor eax, eax
movss dword [rbp - 0x68], xmm0
xorps xmm0, xmm0
mov qword [rbp - 0x42], rax
lea rax, [rsp + 0x48]
movups xmmword [rbp - 0x62], xmm0
mov byte [rsp + 0x54], 1
movups xmmword [rbp - 0x52], xmm0
mov qword [rsp + 0x58], r12
mov dword [rsp + 0x60], 3
mov dword [rsp + 0x64], 1
mov byte [rsp + 0x68], r12b
mov qword [rbp - 0x80], r12
mov dword [rbp - 0x78], r12d
mov byte [rbp - 0x70], r12b
mov dword [rbp - 0x6c], r12d
mov qword [rbp - 0x38], r12
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rbp - 0x20], xmm1
movaps xmmword [rbp - 0x10], xmm0
mov byte [rbp - 0x10], 1
mov dword [rbp - 0x14], 1
mov dword [rbp - 0x18], 1
movups xmm1, xmmword [rax + 0x30]
movups xmm0, xmmword [rax + 0x40]
movss xmm6, dword [rbp - 0x1c]
comiss xmm2, xmm6
movaps xmmword [rbp], xmm1
movups xmm1, xmmword [rax + 0x50]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rax + 0x60]
movaps xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rax + 0x70]
movaps xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rax + 0x80]
movaps xmmword [rbp + 0x40], xmm1
movsd qword [rbp + 0x50], xmm0
jb 0x180029cfa
movss xmm6, dword [0x1800683e8]
movss dword [rbp - 0x1c], xmm6
cmp byte [rbp + 0x26], r12b
jne 0x180029dba
cmp byte [0x180067855], r12b
mov eax, dword [0x180067850]
movups xmm0, xmmword [str.a_SROtT_U]
mov dword [rsp + 0x40], eax
movzx eax, word [0x180067854]
movups xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x44], ax
je 0x180029d9d
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor byte [rsp + 0x38], 0x39
xor byte [rsp + 0x39], 0x3a
xor byte [rsp + 0x3a], 0x3b
xor byte [rsp + 0x3b], 0x3c
xor byte [rsp + 0x3c], 0x3d
xor byte [rsp + 0x3d], 0x3e
xor byte [rsp + 0x3e], 0x3f
xor byte [rsp + 0x3f], 0x40
xor byte [rsp + 0x40], 0x41
xor byte [rsp + 0x41], 0x42
xor byte [rsp + 0x42], 0x43
xor byte [rsp + 0x43], 0x44
xor byte [rsp + 0x44], 0x45
xor byte [rsp + 0x45], 0x46
mov byte [rsp + 0x30], 0x50
cvttss2si r9d, xmm6
lea r8, [rsp + 0x30]
mov edx, 0x28
lea rcx, [rbp + 0x26]
call fcn.18001b9b0
movss xmm6, dword [rbp - 0x1c]
mov eax, 0x85
lea rsi, [0x1800683c8]
mov word [rbp + 0x24], ax
mov ecx, 0x2570
mov rax, qword [rbp + 8]
test rax, rax
cmovne rsi, rax
call fcn.18001d6a0
mov rdi, rax
lea r11, [0x180064922]
mov r14b, 0x37
lea rbx, [rax + 2]
movsx ecx, byte [r11 + 2]
mov edx, r12d
movsx r8d, byte [r11 + 1]
cmp cl, 0x5c
movsx r9d, byte [r11]
mov eax, ecx
movsx r10d, byte [r11 - 1]
lea r11, [r11 + 5]
setge dl
lea rbx, [rbx + 4]
add edx, 0x23
sub eax, edx
imul ecx, eax, 0x55
mov eax, r12d
cmp r8b, 0x5c
setge al
add eax, 0x23
sub ecx, eax
mov eax, r12d
add ecx, r8d
imul edx, ecx, 0x55
cmp r9b, 0x5c
setge al
add eax, 0x23
sub edx, eax
mov eax, r12d
add edx, r9d
imul ecx, edx, 0x55
cmp r10b, 0x5c
setge al
add eax, 0x23
sub ecx, eax
mov eax, r12d
add ecx, r10d
imul edx, ecx, 0x55
cmp r14b, 0x5c
setge al
add eax, 0x23
sub edx, eax
movsx eax, r14b
add edx, eax
mov byte [rbx - 6], dl
mov eax, edx
shr eax, 8
mov byte [rbx - 5], al
mov eax, edx
shr eax, 0x10
shr edx, 0x18
mov byte [rbx - 4], al
mov byte [rbx - 3], dl
movzx r14d, byte [r11 - 2]
test r14b, r14b
jne 0x180029df0
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rsi
movaps xmm3, xmm6
mov qword [rsp + 0x20], rax
mov r8d, 0x2570
mov rdx, rdi
mov rcx, r15
call fcn.180029f00
mov rcx, rdi
mov rbx, rax
call fcn.18001d6c0
lea r11, [rsp + 0x170]
mov dword [rbx + 0x44], 0x3f800000
mov rsi, qword [r11 + 0x28]
mov rax, rbx
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret