Function at 0x29a0c8d4d
Capabilities:
Authenticate hmac

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rsi, rcx
push r9
mov r9, 2
push r13
push r10
pop r10
pop r13
dec r9
jne 0x29a0c8d5f
pop r9
mov ecx, 0x10
call sub.msvcrt.dll_malloc
mov rcx, rax
push r9
psrlw mm4, 0x4f
push r8
pmullw mm1, mm6
push r10
pslld mm7, 0x5c
push rdx
dec r8
push r15
pmaddwd mm2, mm4
pop r15
nop
pop rdx
rcpss xmm9, xmm5
pop r10
emms
pop r8
emms
pop r9
mov edx, 0x70
call sub.msvcrt.dll_realloc
mov rcx, rax
cmp r12d, 0xa
je 0x29a0c8eba
push r9
comiss xmm10, xmm0
packuswb mm2, mm4
psrad mm1, 1
emms
nop
rol r9b, 0xb
emms
pop r9
cmp rdx, 0xd
je 0x29a0c8ece
push r14
xorps xmm9, xmm5
push r11
shl r11b, 0x13
movaps xmm7, xmm1
pop r11
psrlq mm7, 0x63
pop r14
cmp rax, 4
je 0x29a0c8efc
push r8
psraw mm7, 0x44
rcpss xmm10, xmm0
nop
nop
push rdx
rcr r8, 0x14
ror dx, 0x10
rol r8d, 0xd
push r9
xor dx, r9w
xchg r9, rdx
push r12
ror r9, 7
pop r12
emms
neg r9w
pop r9
xadd r8d, edx
inc rdx
rcr r8, 0x12
pop rdx
inc r8d
ucomiss xmm5, xmm6
nop
nop
pop r8
cmp r11b, r14b
je 0x29a0c8f27
push r14
subss xmm3, xmm0
emms
push rbx
xor rbx, r14
pop rbx
pmaxsw mm4, mm2
nop
pop r14
cmp r11d, 0x58
je 0x29a0c8f3d
cmp r12d, r13d
jne 0x29a0c8e8b
push r12
mulss xmm10, xmm5
push rbx
emms
emms
pop rbx
pslld mm0, 0x47
pop r12
jmp 0x29a0c8e9e
push r9
emms
push r15
punpckhwd mm5, mm2
xchg r15, r9
pop r15
psubusw mm7, mm5
pop r9
push rax
punpckhwd mm6, mm3
push rdx
nop
ror rdx, 0xb
pop rdx
nop
pop rax
cmp r11b, bl
je 0x29a0c8f53
jne 0x29a0c8f69
push rbx
psraw mm2, 0xc
push rcx
psubw mm0, mm5
pop rcx
orps xmm11, xmm0
pop rbx
jmp 0x29a0c8f69
push rdx
shr rdx, 9
dec edx
punpckldq mm4, mm6
inc rdx
push r15
movss xmm2, xmm15
emms
nop
sub r15b, 0xe
pop r15
emms
dec rdx
rcpss xmm12, xmm0
psrlq mm5, 0x5c
pop rdx
jmp 0x29a0c8f69
push r9
rol r9d, 0xd
push r15
andps xmm2, xmm14
psllq mm7, 0x59
push r8
or r8b, r15b
pcmpeqb mm2, mm1
pslld mm2, 0x65
pop r8
emms
paddusw mm0, mm3
pop r15
emms
pop r9
jmp 0x29a0c8f69
push r13
mov r13, 2
push r9
pop r9
dec r13
jne 0x29a0c8f30
pop r13
jmp 0x29a0c8f69
push r8
mov r8, 3
push r9
pop r9
dec r8
jne 0x29a0c8f46
pop r8
jmp 0x29a0c8f69
push rax
mov rax, 2
push r10
push r12
pop r12
pop r10
dec rax
jne 0x29a0c8f5b
pop rax
push r14
movhlps xmm14, xmm15
nop
push rdx
nop
pop rdx
psrad mm2, 0x67
maxss xmm1, xmm0
pop r14
call sub.msvcrt.dll_free
push r9
sbb r9b, 0xc
push rdx
movss xmm10, xmm13
nop
pop rdx
subps xmm4, xmm14
pop r9
mov rcx, rsi
call fcn.29a0c7ff3
mov word [rsp + 0x29], 0x6d2b
mov byte [rsp + 0x2b], 0
push r12
mov r12, 2
push r10
pop r10
dec r12
jne 0x29a0c8fb3
pop r12
mov dword [rsp + 0x2c], 0x763d67
push rdx
rcl edx, 0x17
push r13
minps xmm11, xmm3
emms
push r8
nop
xor r8w, dx
punpcklbw mm6, mm2
push r9
psrlq mm5, 0x20
nop
emms
psrad mm5, 0x19
push rax
psrlw mm1, 0x30
dec r8
rol al, 3
nop
psrlq mm7, 7
pop rax
psrld mm6, 0x64
neg dx
subps xmm8, xmm4
xor rdx, r8
pop r9
nop
shr dx, 0x17
rcpss xmm4, xmm3
pop r8
shl rdx, 1
nop
pop r13
pslld mm1, 0x3b
pop rdx
lea rbx, [rsp + 0x29]
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x29a0c90c5
mov rax, rbx
lea rdx, [rsp + 0x2b]
push rbx
mov rbx, 3
push r11
pop r11
dec rbx
jne 0x29a0c904a
pop rbx
xor byte [rax], 0x19
push r8
mov r8w, 0xd
push rcx
maxss xmm0, xmm11
emms
push r10
neg r10w
emms
nop
push r12
shr r12w, 0x13
shl r12d, 8
emms
pcmpeqw mm2, mm1
push r13
maxps xmm1, xmm14
punpckhwd mm4, mm2
pmaxub mm7, mm6
nop
pslld mm1, 0x68
pop r13
paddsw mm7, mm5
orps xmm15, xmm0
emms
addss xmm2, xmm11
pop r12
nop
inc r10
rcl cl, 0x10
pop r10
andps xmm7, xmm13
xadd r8b, cl
pop rcx
emms
pop r8
inc rax
cmp rax, rdx
jne 0x29a0c9042
jmp 0x29a0c91bc
cmp r12d, r13d
jne 0x29a0c911f
push rax
rcl ax, 0xa
pop rax
jmp 0x29a0c9159
push r14
minps xmm9, xmm0
push r9
movhlps xmm1, xmm4
push r15
inc r15
push rdx
neg r9
push rbx
not r9b
push rax
emms
push rcx
emms
pop rcx
emms
pop rax
maxss xmm15, xmm4
pop rbx
addps xmm11, xmm10
pop rdx
rcpps xmm7, xmm4
pop r15
emms
pop r9
emms
pop r14
push r14
pmaxsw mm2, mm4
push r13
movaps xmm9, xmm4
nop
push rbx
inc r13d
xor r14b, r13b
emms
push r11
sub r14, 0x11
neg bl
or r14, r13
andnps xmm8, xmm1
push r8
pslld mm4, 0x36
shl rbx, 4
neg bl
addss xmm3, xmm15
cmp r13, r11
pop r8
punpcklwd mm0, mm1
neg r13w
psllq mm6, 0x35
cmp r11d, ebx
pop r11
psrlq mm3, 0x34
dec r14
shl bl, 0x12
pop rbx
nop
sub r13w, 0x16
pop r13
psrad mm4, 0x15
pop r14
push r9
psraw mm1, 0x64
push r10
rcl r10d, 4
push rax
punpckhbw mm2, mm3
push r12
dec r12
push r13
cmp r9w, r10w
push r15
dec rax
push r11
not r15b
pop r11
inc r13
pop r15
cmp r13, r10
pop r13
movups xmm10, xmm13
pop r12
neg r9
pop rax
punpcklwd mm3, mm5
pop r10
mulss xmm2, xmm10
pop r9
mov edx, dword [rsi + 8]
mov rcx, qword [rsi]
call fcn.29a0c5000
push r9
rol r9, 0xb
push r14
ucomiss xmm0, xmm10
push r8
comiss xmm14, xmm0
push rdx
sbb dx, 0xc
pop rdx
dec r8
pop r8
pslld mm4, 0x51
pop r14
inc r9d
pop r9
add rsp, 0x38
pop rbx
pop rsi
ret