Function at 0x2904e13b7
Capabilities:
Authenticate hmac

Disassembly:
push rsi
push rbx
sub rsp, 0x58
cmp r12b, r14b
jne 0x2904e13da
push r15
movups xmm2, xmm3
push r13
ucomiss xmm0, xmm8
pminsw mm0, mm6
pop r13
movhlps xmm1, xmm15
pop r15
jmp 0x2904e13eb
push rax
movss xmm10, xmm15
push rcx
shl rax, 4
paddsw mm5, mm1
pop rcx
nop
pop rax
push r11
psraw mm6, 0x33
push r12
sbb r12, 8
dec r11
pop r12
psrad mm7, 0x1f
pop r11
push rdx
inc rdx
push r8
comiss xmm10, xmm13
push r9
pmulhuw mm3, mm5
push r11
pslld mm0, 0xe
push r12
pcmpgtb mm3, mm0
pop r12
andps xmm8, xmm14
pop r11
not dl
pop r9
psraw mm5, 0x42
pop r8
pslld mm5, 0x2d
pop rdx
mov dword [rsp + 0x40], 0x313555
push rbx
emms
push r9
nop
pop r9
dec ebx
pop rbx
mov dword [rsp + 0x48], 0x5d2e3552
mov byte [rsp + 0x4c], 0
push r11
emms
paddsb mm0, mm6
push r15
punpcklbw mm4, mm3
pop r15
nop
emms
pop r11
lea rsi, [rsp + 0x48]
lea rbx, [rsp + 0x40]
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x2904e14bc
push r11
pminsw mm2, mm0
push rcx
nop
pslld mm1, 0x45
push rax
nop
pmullw mm6, mm5
nop
push r8
pslld mm4, 1
mov cx, r11w
or rax, rcx
psrld mm6, 0x5f
pop r8
dec rcx
comiss xmm10, xmm6
paddd mm1, mm4
pop rax
emms
minps xmm8, xmm10
pop rcx
paddusw mm5, mm0
pop r11
jmp 0x2904e14d3
push rdx
rcr rdx, 2
psraw mm4, 0x53
push r14
minps xmm4, xmm14
pop r14
emms
paddsw mm5, mm3
pop rdx
push r8
emms
sub r8w, 0x14
dec r8d
push r13
xchg r8w, r13w
pxor mm5, mm6
push r9
neg r8b
pop r9
inc r13
psubusw mm2, mm5
pop r13
psllq mm5, 0x5a
emms
neg r8
pop r8
xor eax, eax
mov qword [rsp + 0x40], rax
push r9
rol r9b, 0x12
push rcx
test cl, r9b
inc ecx
push r15
mulss xmm5, xmm13
adc ecx, r9d
pcmpeqb mm2, mm7
push rbx
psrlq mm2, 0x49
addps xmm7, xmm14
rcpss xmm3, xmm2
packssdw mm4, mm0
pop rbx
nop
and r15b, cl
psllq mm5, 0x63
pop r15
pmaddwd mm5, mm3
psrad mm1, 0x57
pop rcx
addps xmm2, xmm0
pop r9
call fcn.2904f49f2
mov qword [rsp + 0x48], 0x40
push r11
sbb r11d, 0xd
addps xmm2, xmm3
shl r11b, 0xd
push r13
nop
psraw mm7, 3
sbb r11d, 5
push r12
shr r12w, 9
and r13d, r12d
packuswb mm4, mm6
pop r12
subss xmm12, xmm6
shl r11w, 0xb
inc r11d
pop r13
pcmpeqw mm5, mm1
neg r11w
rcr r11w, 0x13
pop r11
xor edx, edx
mov dword [rsp + 0x34], edx
push rax
pcmpgtd mm6, mm5
push r12
emms
emms
push r13
emms
maxss xmm15, xmm2
punpckldq mm2, mm0
push r11
pslld mm3, 0x36
nop
nop
dec r12
push rbx
psrlq mm2, 0x17
not bx
xor r13w, ax
maxss xmm3, xmm15
nop
pop rbx
psrlq mm5, 0x3e
psrad mm6, 0x1f
inc r13d
emms
pop r11
psraw mm5, 0xd
shl r13d, 9
add r13b, al
pop r13
xchg r12d, eax
pandn mm0, mm6
pop r12
rcpps xmm10, xmm11
pop rax
mov eax, 3
push rcx
mov rcx, 1
push r12
push r13
pop r13
pop r12
dec rcx
jne 0x2904e160b
pop rcx
push rdx
psllq mm4, 0x37
push r14
maxps xmm4, xmm14
push rax
xor rdx, r14
push rbx
nop
push r10
cmp r10w, r14w
push r13
rol r10d, 0x15
pop r13
emms
pop r10
pcmpgtw mm1, mm2
pop rbx
nop
pop rax
psllq mm7, 0x49
pop r14
punpckhbw mm5, mm3
pop rdx
dec eax
jne 0x2904e1603
cmp r12d, 2
jne 0x2904e166e
push r14
movss xmm13, xmm9
push rbx
movaps xmm9, xmm7
psrad mm2, 0x22
pop rbx
dec r14d
pop r14
jmp 0x2904e1685
push r15
sbb r15w, 8
push rax
test ax, r15w
dec rax
pop rax
rcpss xmm13, xmm3
pop r15
push r11
psrad mm6, 0xd
push rdx
sub dl, 5
emms
pop rdx
psubw mm2, mm1
pop r11
xor r8d, r8d
mov r9, rsi
mov rdx, rbx
or rcx, 0xffffffffffffffff
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0x3000
call fcn.2904ee14e
push rax
emms
emms
nop
rol rax, 0x14
push r13
sub r13b, al
nop
xadd ax, r13w
push r9
shl eax, 6
emms
push r10
nop
pop r10
paddb mm7, mm0
psraw mm6, 8
pop r9
xchg al, r13b
paddd mm1, mm0
not rax
pop r13
comiss xmm13, xmm5
minps xmm4, xmm3
addss xmm2, xmm1
mov al, 0xe
pop rax
call fcn.2904f4939
mov rdx, qword [rsp + 0x40]
lea r9, [rsp + 0x34]
xor ecx, ecx
mov r8d, 0x40
call fcn.2904f04c1
cmp r12b, 0x5c
jne 0x2904e1746
push r8
psrld mm0, 0x12
push r10
emms
xorps xmm3, xmm2
pop r10
nop
pop r8
jmp 0x2904e1757
push r14
not r14
push r9
emms
paddw mm2, mm4
pop r9
nop
pop r14
push r12
pand mm0, mm3
push r15
xadd r15d, r12d
maxss xmm13, xmm3
pop r15
shr r12, 0xc
pop r12
call fcn.2904f2b86
mov rdx, qword [rsp + 0x40]
mov eax, dword [rdx + 8]
mov edx, dword [rdx + 0xc]
shr eax, 0xa
shr edx, 0xa
imul eax, edx
push r11
rcl r11b, 4
dec r11d
push r10
mulss xmm4, xmm0
shl r11b, 5
push r15
movups xmm13, xmm5
nop
push r8
xadd r10b, r8b
paddsw mm0, mm3
pop r8
adc r15d, r10d
ucomiss xmm0, xmm10
pop r15
psrlw mm7, 0x1d
not r11b
pop r10
pminsw mm7, mm0
pcmpeqd mm0, mm6
pop r11
cmp eax, 0x3ff
ja 0x2904e1a23
mov word [rsp + 0x31], 0x6143
mov byte [rsp + 0x33], 0
push rbx
psrld mm0, 0x3f
pop rbx
mov dword [rsp + 0x3a], 0x7e642765
mov word [rsp + 0x3e], 0x38
push r12
sbb r12b, 0x12
dec r12d
nop
psraw mm5, 0x43
inc r12
pmaddwd mm3, mm5
pandn mm7, mm6
pop r12
lea rbx, [rsp + 0x3a]
lea rsi, [rsp + 0x31]
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x2904e18ad
mov rax, rsi
lea rdx, [rsp + 0x33]
push r14
nop
push r12
emms
push rcx
or r12, r14
push rbx
andps xmm11, xmm5
pop rbx
ror r12b, 0x16
pop rcx
nop
pop r12
emms
pop r14
xor byte [rax], 0x76
cmp r12d, 0x6b
jne 0x2904e187d
push r9
rcpss xmm0, xmm10
push rbx
inc ebx
paddd mm5, mm4
pop rbx
emms
pop r9
jmp 0x2904e188c
push r11
nop
push rax
emms
psrlw mm7, 0x48
pop rax
emms
pop r11
push r15
psrlw mm6, 0x1f
push rdx
mov r15w, 5
shl r15d, 0x15
pop rdx
nop
pop r15
inc rax
cmp rax, rdx
jne 0x2904e1831
jmp 0x2904e19fb
mov rax, rbx
lea rdx, [rsp + 0x3f]
cmp r12d, edx
jne 0x2904e194e
push r14
nop
nop
nop
push rbx
inc rbx
rcpps xmm7, xmm0
and r14d, ebx
push r12
sbb r14d, r12d
emms
push rdx
packsswb mm2, mm1
sub r12d, 2
pop rdx
psrad mm2, 0x34
paddb mm7, mm3
psrad mm2, 0x55
pop r12
not ebx
pslld mm4, 0x16
pop rbx
emms
mulss xmm4, xmm8
pop r14
jmp 0x2904e1975
push rcx
ror rcx, 0x10
psrlq mm5, 0x55
neg ecx
rcr rcx, 0xa
push rax
emms
xchg rcx, rax
comiss xmm13, xmm2
nop
pop rax
psrld mm5, 6
psrlq mm4, 0x1d
paddsw mm0, mm1
nop
pop rcx
cmp r12, 0x32
jne 0x2904e1991
push r15
subps xmm4, xmm3
push r13
psrlw mm6, 0x68
psrad mm6, 0x61
pop r13
nop
pop r15
jmp 0x2904e19a6
push r14
mulss xmm12, xmm14
push rdx
movlhps xmm15, xmm0
psraw mm0, 0x21
pop rdx
emms
pop r14
push rax
nop
push r12
psraw mm0, 0x40
emms
pop r12
dec eax
pop rax
xor byte [rax], 0x99
push r11
nop
push r9
psrlw mm7, 0x23
push rcx
nop
push r10
pcmpgtd mm7, mm0
push rdx
emms
push rbx
paddb mm3, mm5
push r15
movaps xmm7, xmm11
pop r15
sar dl, 3
pop rbx
emms
pop rdx
emms
pop r10
inc ecx
pop rcx
emms
pop r9
pslld mm2, 6
pop r11
inc rax
cmp rax, rdx
jne 0x2904e18b5
push rax
nop
psrad mm6, 0x47
nop
andnps xmm9, xmm11
not eax
minps xmm6, xmm4
emms
neg rax
movups xmm14, xmm5
packsswb mm1, mm6
shl al, 0x17
nop
pop rax
mov eax, 1
jmp 0x2904e1a56
push rdx
inc rdx
push r8
comiss xmm10, xmm13
push r9
pmulhuw mm3, mm5
push r11
pslld mm0, 0xe
push r12
pcmpgtb mm3, mm0
pop r12
andps xmm8, xmm14
pop r11
not dl
pop r9
psraw mm5, 0x42
pop r8
pslld mm5, 0x2d
pop rdx
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
ret