Function at 0x2e49b5761
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using chaskey

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
cmp edx, 0xb
jne 0x2e49b577c
push r12
psrld mm0, 0xb
pop r12
jmp 0x2e49b5781
push r8
nop
pop r8
push r10
psrlw mm7, 9
pop r10
mov word [rsp + 0x20], 0x314d
mov byte [rsp + 0x22], 0
push r12
packsswb mm4, mm5
rcpss xmm8, xmm5
psrad mm1, 0x43
nop
emms
push rdx
nop
minps xmm13, xmm6
rcr r12d, 0xd
sub dl, r12b
push rcx
neg dl
nop
dec rcx
push r15
sub r12w, dx
nop
push rax
punpckhwd mm3, mm6
pop rax
punpckhbw mm7, mm5
mov rdx, 9
pop r15
dec ecx
not edx
nop
pop rcx
not r12d
psllq mm3, 0x23
dec rdx
emms
pop rdx
rcpss xmm1, xmm13
dec r12d
emms
psllq mm5, 0x27
mov r12w, 9
pop r12
mov dword [rsp + 0x28], 0x48564232
mov word [rsp + 0x2c], 0x48
push r13
comiss xmm14, xmm15
emms
shr r13b, 0x13
emms
rcpss xmm1, xmm15
push r8
andps xmm10, xmm13
subss xmm13, xmm11
psraw mm7, 0xe
adc r13, r8
push rcx
sub r13b, cl
emms
emms
push r12
shl rcx, 0xb
add r12b, r8b
push r14
neg r14
pop r14
neg ecx
sbb r12w, r8w
pop r12
not r8
pcmpeqw mm3, mm0
emms
pop rcx
emms
shl r13d, 0xe
nop
sub r13w, 0xb
pop r8
addss xmm7, xmm13
mulss xmm11, xmm14
psubw mm0, mm6
emms
nop
pop r13
lea rdi, [rsp + 0x28]
lea rbx, [rsp + 0x20]
mov rdx, rdi
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x2e49b58e7
mov rax, rbx
lea rdx, [rsp + 0x22]
push r10
psrlw mm1, 0x19
push r13
movups xmm2, xmm1
push rdx
rcr r10b, 0x11
push r14
nop
push r11
nop
pop r11
emms
pop r14
nop
pop rdx
sub r13, 5
pop r13
nop
pop r10
xor byte [rax], 0x79
cmp edx, r15d
jne 0x2e49b58d0
push r14
neg r14b
pop r14
jmp 0x2e49b58d6
push r9
emms
pop r9
push r11
psubusw mm3, mm6
pop r11
inc rax
cmp rax, rdx
jne 0x2e49b5898
jmp 0x2e49b5929
push rax
subss xmm14, xmm9
emms
push rbx
nop
nop
push r8
psrld mm5, 0x5c
nop
push r13
emms
packsswb mm4, mm3
push r15
sbb rax, 0x10
nop
pop r15
nop
test ax, r13w
pop r13
add r8d, eax
adc r8d, ebx
pop r8
rcpps xmm12, xmm11
sub rbx, 0x17
pop rbx
emms
maxss xmm13, xmm2
pop rax
push r15
nop
psrad mm1, 0x12
nop
emms
rcl r15w, 0x10
neg r15w
inc r15d
pop r15
rdtsc
mov dword [rsp + 0x20], 0x747e4a
mov esi, edx
mov ebp, eax
push r10
nop
dec r10
nop
emms
not r10
inc r10d
emms
pop r10
mov dword [rsp + 0x28], 0x65705f32
mov byte [rsp + 0x2c], 0
push r8
psllq mm0, 4
push r15
neg r8w
push r14
minps xmm4, xmm13
push r12
mov r12w, r15w
push r9
emms
push r13
adc r13, r15
pop r13
comiss xmm10, xmm5
pop r9
add r12d, r15d
pop r12
mulss xmm7, xmm10
pop r14
nop
pop r15
nop
pop r8
mov rdx, rdi
mov rcx, rbx
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x2e49b59d4
push rdx
mov rdx, 1
push r15
push r11
pop r11
pop r15
dec rdx
jne 0x2e49b59c1
pop rdx
jmp 0x2e49b5aa6
mov rdx, rdi
lea rax, [rsp + 0x2c]
push rcx
pandn mm0, mm4
paddd mm6, mm4
psrlq mm0, 0x17
pcmpgtw mm0, mm7
push r14
pslld mm3, 0x5f
mov r14, rcx
ror r14b, 0x14
push r9
psrad mm2, 0x1c
sbb ecx, 0x14
push r15
por mm3, mm0
pop r15
emms
dec r14d
pop r9
movss xmm7, xmm15
pxor mm5, mm7
not r14
pop r14
emms
emms
emms
emms
pop rcx
xor byte [rdx], 0x55
push r9
andnps xmm0, xmm12
paddsb mm0, mm7
addps xmm11, xmm1
psrlw mm0, 0x60
pcmpeqb mm7, mm6
push rcx
psrad mm1, 0x5a
subps xmm6, xmm9
emms
xadd r9b, cl
push r14
emms
rol r14w, 0x11
mov r14, 0x12
push r13
punpcklwd mm5, mm0
psllq mm1, 0x2b
push r12
pmullw mm6, mm2
pop r12
dec r13
emms
pop r13
psllq mm0, 0x29
nop
psraw mm4, 0x55
pop r14
or r9w, cx
emms
sub ecx, 2
pmaxsw mm5, mm6
pop rcx
psubsb mm5, mm4
nop
pmullw mm6, mm1
shr r9d, 2
orps xmm10, xmm15
pop r9
inc rdx
cmp rdx, rax
jne 0x2e49b59dc
cmp dl, r12b
jne 0x2e49b5b1c
push r14
pslld mm3, 0x21
push r8
pcmpgtb mm1, mm2
push r15
shr r8d, 0xb
push rdx
sub r8, r15
push r11
nop
push rbx
emms
pop rbx
xorps xmm2, xmm4
pop r11
nop
pop rdx
sar r8w, 3
pop r15
psrld mm5, 0x45
pop r8
movlhps xmm14, xmm6
pop r14
jmp 0x2e49b5b5c
push r10
not r10w
push r8
nop
push r12
psrlw mm6, 0x2e
push rax
emms
push r9
sbb r12d, 0xe
push r13
shr r10w, 0xb
push rcx
emms
pop rcx
mov r12, r13
pop r13
psrlw mm2, 0xf
pop r9
emms
pop rax
subss xmm10, xmm6
pop r12
maxps xmm2, xmm7
pop r8
nop
pop r10
push rbx
emms
pop rbx
movabs rax, 0x7e005a0057
shl rsi, 0x20
mov qword [rsp + 0x20], rax
or rsi, rbp
push r15
shl r15b, 0xd
push r12
xchg r15w, r12w
push rdx
rol r12b, 0x12
push rbx
pmaxub mm7, mm2
push r8
psrld mm2, 0x61
pop r8
not r12w
pop rbx
sbb dl, r15b
pop rdx
rcr r12, 0x15
pop r12
not r15d
pop r15
movabs rax, 0x73006f0053
mov qword [rsp + 0x28], rax
push r9
not r9
movlhps xmm1, xmm5
mulps xmm14, xmm1
push rdx
mov dx, r9w
nop
nop
push r8
nop
subss xmm11, xmm9
push r13
subps xmm2, xmm12
emms
pop r13
psrad mm4, 0x53
test r8d, r9d
pmaddwd mm2, mm3
pop r8
emms
xchg dl, r9b
pop rdx
rcpps xmm14, xmm11
nop
pop r9
mov rdx, rdi
mov rcx, rbx
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2e49b5ec7
lea rax, [rsp + 0x26]
push r15
pcmpgtb mm7, mm1
dec r15
minps xmm11, xmm9
push rdx
xorps xmm9, xmm8
emms
inc r15
push rcx
nop
mov edx, r15d
emms
pop rcx
punpcklwd mm4, mm6
psrlq mm4, 0x55
nop
pop rdx
rol r15d, 2
por mm5, mm4
shl r15, 5
pop r15
xor word [rbx], 0x96
cmp edx, eax
je 0x2e49b5d2e
push rax
mov rax, 1
push r10
pop r10
dec rax
jne 0x2e49b5c55
pop rax
cmp r8d, r15d
je 0x2e49b5d59
push rcx
psrlq mm6, 0x37
pminsw mm5, mm1
nop
push rdx
nop
dec rcx
push r10
mulss xmm12, xmm1
pop r10
nop
inc rcx
pop rdx
nop
sbb cl, 0x14
nop
pop rcx
cmp ebx, 0x5d
je 0x2e49b5da7
push r12
emms
dec r12d
psllq mm6, 0x5f
push rax
emms
nop
emms
push r13
emms
mulss xmm13, xmm14
paddusb mm3, mm2
pop r13
adc r12, rax
dec r12
psllq mm1, 0x15
pop rax
rcpss xmm13, xmm8
subss xmm1, xmm14
sbb r12, 0xa
pop r12
cmp r13d, 0x50
je 0x2e49b5db4
push r10
nop
nop
inc r10
emms
movlhps xmm2, xmm13
sub r10d, 0x15
rcr r10, 0xf
mov r10, 2
paddusw mm0, mm2
emms
nop
nop
pop r10
cmp bx, 0x37
je 0x2e49b5dfa
cmp dx, 0xc
jne 0x2e49b5d13
push rdx
pxor mm7, mm0
pop rdx
jmp 0x2e49b5d1b
push r15
xorps xmm7, xmm11
pop r15
push rbx
emms
pop rbx
cmp r13, r11
je 0x2e49b5e12
jne 0x2e49b5e51
push rdx
movlhps xmm0, xmm6
push r11
emms
sub r11w, 0xc
push r13
ror r11d, 0xb
emms
paddusw mm3, mm2
pop r13
mov r11, rdx
psraw mm3, 0x54
pop r11
neg edx
pop rdx
jmp 0x2e49b5e51
push r8
movlhps xmm6, xmm9
movlhps xmm12, xmm9
subss xmm11, xmm12
mulps xmm15, xmm1
push rdx
psrad mm5, 0x3c
movhlps xmm14, xmm8
dec r8d
push r14
test r14b, r8b
rol r8d, 7
push r9
psrlq mm5, 2
pop r9
nop
nop
pop r14
paddsw mm7, mm2
rol dx, 8
emms
pop rdx
emms
paddusb mm5, mm0
neg r8d
nop
pop r8
jmp 0x2e49b5e51
push r14
shl r14d, 0x13
pop r14
jmp 0x2e49b5e51
cmp edx, r8d
jne 0x2e49b5dcc
push rdx
nop
push r12
ror dl, 0xa
add r12w, dx
pop r12
sub dl, 0xc
pop rdx
jmp 0x2e49b5de2
push r14
maxss xmm10, xmm13
push r10
emms
dec r14
pop r10
sbb r14b, 2
pop r14
push r9
psrlw mm4, 0x36
push r15
mov r9w, r15w
shl r9b, 0xf
pop r15
emms
pop r9
jmp 0x2e49b5e51
push rax
pmaxub mm7, mm1
neg al
push r13
sbb r13w, 0xe
pop r13
emms
sub ax, 6
pop rax
jmp 0x2e49b5e51
push rdx
nop
nop
emms
neg edx
push rbx
add dx, bx
neg bx
pcmpeqb mm4, mm7
push r14
test r14w, dx
test r14b, bl
push r13
movups xmm14, xmm2
pop r13
paddsb mm4, mm7
dec ebx
pop r14
psrlq mm5, 0x3e
packuswb mm2, mm5
psrad mm0, 0x65
pop rbx
psadbw mm3, mm0
nop
neg dl
dec rdx
pop rdx
push r13
pmaxsw mm4, mm3
emms
nop
not r13b
emms
push r8
mulss xmm1, xmm10
xchg r8b, r13b
pslld mm5, 0x41
emms
push rcx
nop
neg r13w
mov r13w, 0x10
push r15
psubusw mm1, mm0
subps xmm11, xmm15
push rdx
xor r15b, r13b
pop rdx
pcmpeqw mm3, mm7
neg r15b
pop r15
nop
dec r8
nop
pop rcx
sbb r13b, 0x11
not r13w
psraw mm1, 0x37
emms
pop r8
andnps xmm0, xmm14
neg r13
orps xmm11, xmm3
nop
subss xmm5, xmm15
pop r13
add rbx, 2
cmp rbx, rax
jne 0x2e49b5c0c
jmp 0x2e49b5f02
push r12
nop
push r11
and r12w, r11w
push r14
not r11b
push rdx
emms
push rax
movhlps xmm4, xmm5
push r9
cmp r12, rdx
push rcx
adc eax, r9d
pop rcx
add r14b, r9b
pop r9
add r11w, r14w
pop rax
punpckhbw mm5, mm1
pop rdx
add r11d, r14d
pop r14
nop
pop r11
psrad mm7, 0x23
pop r12
push r10
nop
minps xmm3, xmm0
nop
emms
rcpps xmm0, xmm12
push r8
emms
rol r10d, 0xa
and r10, r8
add r8w, r10w
push r14
nop
nop
xorps xmm6, xmm0
push r11
nop
emms
push r9
or r8d, r11d
pop r9
neg r11d
rol r14w, 0xb
pop r11
pcmpeqd mm7, mm5
movss xmm5, xmm8
nop
pop r14
nop
dec r10d
inc r10d
sub r8, r10
pop r8
not r10b
emms
shr r10, 8
nop
emms
pop r10
movzx eax, si
add rax, 0x1f0000
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret