Function at 0x2f8885220
Capabilities:
Encode data using xor
Encrypt data using chaskey

Disassembly:
push r10
neg r10d
nop
push rdx
add dx, r10w
nop
push r15
nop
orps xmm4, xmm6
push r14
movups xmm3, xmm9
pmaxub mm2, mm4
push r11
nop
psrlw mm4, 0x44
pop r11
orps xmm7, xmm13
rcpss xmm13, xmm9
pop r14
emms
nop
pop r15
neg r10w
addss xmm4, xmm6
pop rdx
nop
addps xmm8, xmm3
pop r10
push r13
emms
push rax
pand mm3, mm5
psraw mm3, 0xf
push r12
rcpps xmm5, xmm3
psubw mm5, mm4
nop
pop r12
psubusw mm7, mm0
adc rax, r13
pop rax
sbb r13w, 0x12
pop r13
push rcx
pcmpeqd mm6, mm7
push r14
addps xmm13, xmm14
push rax
sbb r14d, 0x11
pop rax
sar r14d, 0xf
pop r14
pslld mm7, 0x3b
pop rcx
push r11
nop
push rax
pminsw mm3, mm5
psrlq mm4, 0xc
pop rax
emms
pop r11
cmp r10, 0x31
jne 0x2f8885177
push rcx
subss xmm8, xmm12
pop rcx
jmp 0x2f888517e
push r15
punpcklbw mm2, mm1
pop r15
push r8
emms
pop r8
push rax
sar ax, 5
maxss xmm4, xmm9
neg al
push rbx
psrlq mm3, 0x59
ror rbx, 9
neg al
push r11
inc eax
paddsw mm3, mm6
push rdx
pslld mm3, 0x12
not bx
pop rdx
emms
shl bx, 1
psubsb mm3, mm2
pop r11
dec eax
pcmpgtw mm7, mm2
pop rbx
dec rax
ror rax, 0xf
pop rax
cmp r10b, 0x64
jne 0x2f88851d1
push r14
emms
pop r14
jmp 0x2f88851d6
push rcx
ror ecx, 0x11
pop rcx
push r8
andnps xmm13, xmm10
pop r8
push r8
inc r8
emms
sub r8w, 0x10
neg r8w
mulss xmm11, xmm15
push rbx
or r8, rbx
nop
nop
pxor mm3, mm2
not bl
pop rbx
emms
nop
nop
shl r8d, 1
shl r8, 6
minps xmm2, xmm10
pop r8
ret
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rbp, rcx
mov esi, edx
cmp r10d, r13d
jne 0x2f8885268
push r13
punpckldq mm1, mm3
push rcx
psrlq mm2, 0x4b
emms
pop rcx
psllq mm6, 0x43
pop r13
jmp 0x2f8885279
push r8
pslld mm5, 0x61
push rax
inc eax
not eax
pop rax
punpcklwd mm6, mm0
pop r8
push r12
neg r12b
push rbx
not r12d
dec r12
pop rbx
pcmpeqb mm2, mm1
pop r12
call fcn.2f888468a
push r11
pslld mm3, 0x6b
push r10
shl r10d, 3
neg r11d
push rcx
inc r10d
nop
xchg r10d, r11d
pop rcx
adc r10d, r11d
mulps xmm15, xmm0
pop r10
punpckldq mm3, mm5
pop r11
lea rbx, [0x2f8886060]
lea r12, [rsp + 0x60]
lea r13, [rbx + 0x10]
mov rdi, r12
push r14
ror r14b, 0x13
dec r14d
psrld mm0, 0x37
neg r14w
push rbx
ror r14d, 9
not r14d
nop
push rdx
nop
or bl, r14b
push rcx
pcmpeqb mm4, mm1
pop rcx
maxps xmm15, xmm3
psraw mm1, 0x37
pop rdx
andnps xmm6, xmm2
nop
xadd r14d, ebx
pop rbx
nop
emms
emms
punpcklbw mm0, mm2
pop r14
call fcn.2f8884e45
mov al, byte [rbx]
mov byte [rdi], al
push r12
shr r12, 0x11
push rbx
psrad mm7, 0x44
emms
push r10
emms
nop
nop
pop r10
nop
not bl
pop rbx
neg r12w
pop r12
mov al, byte [rbx + 0x10]
inc rbx
inc rdi
mov byte [rdi + 0xf], al
cmp rbx, r13
jne 0x2f88852c9
movabs rax, 0x35004a004f
mov qword [rsp + 0x44], rax
push rcx
psrlq mm0, 0x45
push r15
emms
pop r15
psrld mm7, 0x4f
pop rcx
movabs rax, 0x6a004f00530061
mov dword [rsp + 0x58], 0x59
mov qword [rsp + 0x50], rax
push r11
nop
psrld mm6, 0x29
psubw mm0, mm1
nop
emms
push r9
packssdw mm4, mm2
emms
emms
paddusw mm7, mm0
psraw mm1, 0xf
pop r9
psllq mm7, 0x6a
pmaxsw mm7, mm6
nop
pmaxub mm7, mm6
maxss xmm1, xmm4
dec r11
pop r11
lea rax, [rsp + 0x44]
lea rdi, [rsp + 0x50]
mov rdx, rdi
mov rcx, rax
mov qword [rsp + 0x20], rax
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f888541b
mov rax, qword [rsp + 0x20]
lea rdx, [rsp + 0x4a]
push r9
rcpss xmm3, xmm5
push r12
xorps xmm8, xmm15
push r14
emms
pop r14
psrlw mm0, 0x6b
pop r12
not r9b
pop r9
xor word [rax], 0x48
push r13
paddw mm2, mm0
movss xmm1, xmm10
dec r13
psraw mm2, 0x49
emms
orps xmm14, xmm12
inc r13
pop r13
add rax, 2
cmp rax, rdx
jne 0x2f88853d3
jmp 0x2f8885436
cmp r10, r8
jne 0x2f8885428
push r12
emms
pop r12
jmp 0x2f888542e
push rdx
sar dx, 0xd
pop rdx
push r9
neg r9w
pop r9
cmp r10, 0xa
jne 0x2f8885449
push r11
emms
pop r11
jmp 0x2f8885452
push r9
sar r9w, 6
pop r9
push r12
psubsb mm4, mm3
pop r12
push rax
ror rax, 0x14
push r10
dec r10
push r12
sbb r12w, 1
push rcx
neg al
push r15
or r15d, r12d
push r13
rcpss xmm12, xmm3
push r14
rcr r10, 0x10
pop r14
not r15
pop r13
shl r12w, 0x13
pop r15
xchg r10d, r12d
pop rcx
xor rax, r10
pop r12
xadd eax, r10d
pop r10
nop
pop rax
movabs r14, 0x44003100760038
movabs r15, 0x35004a004f
test esi, esi
je 0x2f888601a
push r12
andnps xmm11, xmm1
nop
nop
shr r12, 3
mulps xmm4, xmm14
push r10
emms
pminsw mm4, mm1
emms
rcpss xmm4, xmm6
push r13
psraw mm7, 0x57
add r13b, r10b
neg r13w
push rdx
pcmpeqb mm7, mm1
mulss xmm5, xmm13
push rbx
psrlq mm3, 0xb
pop rbx
adc r13d, edx
nop
pop rdx
nop
and r13b, r12b
punpckldq mm7, mm4
pop r13
emms
movups xmm10, xmm4
dec r12d
rcr r10, 5
pop r10
emms
psrlq mm6, 0x4a
nop
mulps xmm5, xmm0
emms
pop r12
xor r13d, r13d
lea rbx, [rsp + 0x70]
push r14
mov r14, 2
push rcx
push r8
pop r8
pop rcx
dec r14
jne 0x2f888552f
pop r14
call fcn.2f8884ac1
mov al, byte [rbx + r13]
mov byte [rdi + r13], al
push r8
sub r8w, 0xe
rcl r8b, 0x11
nop
pxor mm7, mm1
push rdx
not r8w
shl dx, 3
movups xmm12, xmm0
nop
pop rdx
dec r8d
rcr r8d, 0xb
paddsw mm0, mm3
sub r8, 0xf
pop r8
call fcn.2f8883d08
inc r13
cmp r13, 0x10
jne 0x2f8885526
push rcx
inc ecx
movlhps xmm15, xmm14
ucomiss xmm2, xmm5
push r11
pslld mm0, 0x2f
subps xmm3, xmm6
psubw mm1, mm2
push r9
mov r11, rcx
nop
push r15
nop
emms
pop r15
nop
nop
sub r11, rcx
pop r9
paddsb mm0, mm4
emms
pop r11
psraw mm3, 0x17
psraw mm0, 0x26
pop rcx
push rbx
maxss xmm9, xmm14
push r13
rcr r13, 9
push r12
psllq mm2, 0x57
push r11
nop
push r14
not r14d
push rcx
psrld mm3, 0x22
push rdx
movups xmm2, xmm10
pop rdx
maxps xmm13, xmm2
pop rcx
emms
pop r14
psllq mm7, 0x64
pop r11
inc r13
pop r12
psubsb mm1, mm7
pop r13
mulss xmm9, xmm13
pop rbx
xor ebx, ebx
lea r13, [rsp + 0x3a]
movabs rax, 0x2b005b007b0059
mov word [rsp + 0x42], 0
mov qword [rsp + 0x3a], rax
push rcx
emms
push r13
xchg cx, r13w
emms
push r12
psubw mm2, mm7
pmaxub mm6, mm4
psrlq mm3, 0x34
push r10
nop
rcr r13, 0x14
subps xmm1, xmm0
movss xmm15, xmm9
pop r10
nop
psrlq mm5, 0x51
xor r12d, ecx
pop r12
nop
not r13d
pop r13
dec ecx
pop rcx
mov qword [rsp + 0x44], r14
mov dword [rsp + 0x4c], 0x5a
push r15
nop
push rcx
rcr cl, 9
emms
push r12
not r12w
ror r15b, 7
emms
push r8
maxss xmm8, xmm11
inc r12d
comiss xmm5, xmm12
comiss xmm5, xmm0
push rbx
psllq mm3, 5
pmulhuw mm5, mm6
pslld mm5, 0x2b
punpckldq mm2, mm3
shl ebx, 0x17
pop rbx
shr cl, 7
sub r15b, 4
sbb r8, 0xa
punpckhwd mm4, mm2
pop r8
nop
neg r15
add r15w, r12w
pop r12
psllq mm1, 0x53
psrad mm5, 0x2e
pop rcx
psrad mm3, 3
pop r15
mov rdx, qword [rsp + 0x20]
mov rcx, r13
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f888579c
mov rax, r13
lea rdx, [rsp + 0x42]
push r10
dec r10
push r15
shl r15d, 8
or r10d, r15d
push rdx
nop
xorps xmm6, xmm14
maxps xmm12, xmm4
pop rdx
nop
psrad mm6, 8
pop r15
orps xmm6, xmm10
pop r10
xor word [rax], 0x94
cmp r10b, 0x1e
jne 0x2f8885768
push r11
psrlq mm0, 0x45
nop
sbb r11w, 4
push r15
pcmpgtw mm3, mm5
emms
push rbx
not r11w
pop rbx
psrlw mm2, 6
sbb r15b, 9
pop r15
subps xmm3, xmm5
movss xmm7, xmm14
not r11d
pop r11
jmp 0x2f8885773
push r14
nop
push rax
add rax, r14
pop rax
nop
pop r14
push rax
rol rax, 4
emms
rcr eax, 0xa
movss xmm2, xmm14
pcmpeqd mm3, mm1
psrad mm7, 0x1c
paddsw mm6, mm0
pop rax
add rax, 2
cmp rax, rdx
jne 0x2f88856e7
jmp 0x2f88857ac
push r15
nop
push rbx
emms
psraw mm7, 0x26
pop rbx
pmaxsw mm1, mm3
pop r15
cmp r10w, 0x16
je 0x2f88858ba
push r11
sub r11w, 0xf
neg r11d
packuswb mm5, mm2
movss xmm11, xmm2
push r9
addps xmm7, xmm3
pmaddwd mm1, mm2
emms
emms
pop r9
sub r11b, 2
psrlw mm6, 3
psraw mm1, 0x26
neg r11b
pop r11
cmp ecx, 0xc
je 0x2f8885900
push r15
movups xmm12, xmm4
subss xmm10, xmm0
mov r15w, 0xa
push r14
subps xmm5, xmm14
not r14w
push r11
shr r14b, 0x17
pop r11
psubw mm1, mm4
add r14d, r15d
pop r14
packuswb mm3, mm4
dec r15d
nop
pop r15
cmp ecx, eax
je 0x2f888591d
push r10
shl r10b, 3
psrad mm6, 0x18
xorps xmm1, xmm15
push rdx
mov edx, r10d
psraw mm6, 0x46
psrld mm6, 0xe
push r14
rol r10, 0xd
emms
rcl r10, 8
pop r14
rcpps xmm4, xmm9
sub r10w, 0xf
psubsb mm7, mm3
pop rdx
inc r10
movups xmm2, xmm8
psrlw mm2, 0x4f
pop r10
cmp rcx, 0x36
je 0x2f888597e
push r10
mov r10, 2
push rbx
push r15
pop r15
pop rbx
dec r10
jne 0x2f8885881
pop r10
cmp r12, 3
je 0x2f8885994
push rbx
mov rbx, 1
push r9
pop r9
dec rbx
jne 0x2f88858a0
pop rbx
cmp r9d, 0x4f
je 0x2f88859d8
jne 0x2f88859f2
cmp r10b, 0x2b
jne 0x2f88858d7
push r12
sbb r12w, 2
push r8
sbb r8b, r12b
inc r8
pop r8
emms
pop r12
jmp 0x2f88858e9
push rcx
pmulhuw mm5, mm7
push rdx
rcpps xmm13, xmm4
pcmpgtb mm5, mm3
pop rdx
sub rcx, 0x11
pop rcx
push r10
rcr r10b, 0xf
push rax
nop
psrld mm3, 1
pop rax
neg r10d
pop r10
jmp 0x2f88859f2
push r14
mov r14, 2
push r13
push r12
pop r12
pop r13
dec r14
jne 0x2f8885909
pop r14
jmp 0x2f88859f2
push r15
dec r15
rcpss xmm9, xmm6
subps xmm5, xmm11
nop
neg r15d
push rcx
nop
addps xmm15, xmm1
neg rcx
dec ecx
push r9
nop
nop
psubsb mm7, mm4
push r12
inc rcx
pand mm6, mm5
push rdx
nop
pop rdx
nop
shl cl, 0x14
pop r12
punpckhbw mm3, mm7
shl cl, 5
psrlw mm7, 0x62
pop r9
paddd mm5, mm4
pcmpgtw mm3, mm0
xchg r15, rcx
pcmpgtb mm1, mm0
pop rcx
psrad mm6, 0x4a
psrld mm1, 0x49
neg r15b
emms
emms
pop r15
jmp 0x2f88859f2
push r13
psrad mm3, 0x43
push r11
psrlq mm6, 0x36
pop r11
movaps xmm1, xmm11
pop r13
jmp 0x2f88859f2
push r13
psraw mm3, 0x3f
push rdx
emms
psllq mm2, 6
push r12
test dx, r12w
psrlq mm5, 0x6b
comiss xmm3, xmm14
push r8
pslld mm7, 0xe
dec r8
psubw mm3, mm5
nop
pop r8
punpckldq mm0, mm5
movups xmm7, xmm10
adc r13d, r12d
pop r12
emms
maxss xmm11, xmm5
pop rdx
emms
pop r13
jmp 0x2f88859f2
push rax
ror al, 8
movlhps xmm7, xmm3
nop
addss xmm4, xmm14
minps xmm2, xmm10
movaps xmm14, xmm5
psrlq mm3, 0x4c
pop rax
push r8
ror r8, 0xb
push r15
cmp r8d, r15d
push rcx
pcmpeqw mm5, mm2
push r9
emms
push r10
pcmpgtd mm7, mm3
pop r10
psrlq mm3, 0xe
pop r9
adc r15d, r8d
pop rcx
psraw mm1, 9
pop r15
emms
pop r8
mov eax, dword [rdi + rbx]
xor eax, dword [r12 + rbx]
mov dword [rdi + rbx], eax
add rbx, 4
cmp rbx, 0x10
jne 0x2f888560a
push rbx
dec rbx
nop
psrld mm5, 0x52
push r12
nop
psrad mm3, 0x56
rcr r12b, 4
push r10
sub rbx, 0x10
or r10d, ebx
xchg bl, r10b
pop r10
mulss xmm12, xmm15
emms
punpckhwd mm1, mm3
pop r12
nop
packsswb mm0, mm7
punpcklwd mm1, mm2
pop rbx
cmp r10d, r13d
jne 0x2f8885a9e
push r13
punpckldq mm1, mm3
push rcx
psrlq mm2, 0x4b
emms
pop rcx
psllq mm6, 0x43
pop r13
jmp 0x2f8885aaf
push r8
pslld mm5, 0x61
push rax
inc eax
not eax
pop rax
punpcklwd mm6, mm0
pop r8
push r12
neg r12b
push rbx
not r12d
dec r12
pop rbx
pcmpeqb mm2, mm1
pop r12
call fcn.2f888468a
mov eax, dword [rsp + 0x54]
mov edx, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
add ecx, eax
add r8d, edx
rol eax, 5
rol edx, 8
xor eax, ecx
rol ecx, 0x10
xor edx, r8d
add r8d, eax
rol eax, 7
add ecx, edx
rol edx, 0xd
xor eax, r8d
xor edx, ecx
rol r8d, 0x10
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x5c], edx
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x58], r8d
dec ebx
jne 0x2f8885a6e
push r11
emms
push rax
emms
push rcx
psrad mm0, 0x5b
push r13
psraw mm2, 0x38
push r10
emms
push r9
rol ecx, 3
push r14
and r11b, r14b
pop r14
sar r13b, 4
pop r9
emms
pop r10
adc eax, r11d
pop r13
neg ecx
pop rcx
sub r11b, 0xc
pop rax
psrad mm5, 9
pop r11
call fcn.2f8884ea5
xor eax, eax
push rbx
pxor mm2, mm4
push rcx
packsswb mm4, mm0
push r13
nop
push r14
sar r13, 2
push r10
packuswb mm0, mm5
push r9
not r9b
push r8
pand mm3, mm4
pop r8
movups xmm10, xmm3
pop r9
inc r14
pop r10
neg r13d
pop r14
psrad mm3, 0x13
pop r13
nop
pop rcx
subss xmm2, xmm1
pop rbx
mov edx, dword [rdi + rax]
xor edx, dword [r12 + rax]
mov dword [rdi + rax], edx
add rax, 4
cmp rax, 0x10
jne 0x2f8885b5d
push rbx
pxor mm2, mm4
push rcx
packsswb mm4, mm0
push r13
nop
push r14
sar r13, 2
push r10
packuswb mm0, mm5
push r9
not r9b
push r8
pand mm3, mm4
pop r8
movups xmm10, xmm3
pop r9
inc r14
pop r10
neg r13d
pop r14
psrad mm3, 0x13
pop r13
nop
pop rcx
subss xmm2, xmm1
pop rbx
mov ebx, 0x10
cmp esi, ebx
cmovbe rbx, rsi
cmp r10, r8
jne 0x2f8885c14
push r9
nop
push r13
and r9, r13
shl r9d, 0xc
pop r13
inc r9
pop r9
jmp 0x2f8885c27
push r11
andnps xmm10, xmm15
push r8
or r11b, r8b
emms
pop r8
emms
pop r11
push rax
emms
push r10
maxss xmm12, xmm1
rol r10d, 0x12
pop r10
dec rax
pop rax
xor eax, eax
push r14
emms
subps xmm9, xmm8
paddb mm6, mm7
neg r14
push rcx
mulss xmm1, xmm11
paddsb mm2, mm5
punpckhwd mm6, mm4
or r14, rcx
pop rcx
sub r14b, 0x14
rcl r14b, 0xf
neg r14
nop
pop r14
mov dl, byte [rdi + rax]
xor byte [rbp + rax], dl
push rbx
pxor mm2, mm4
push rcx
packsswb mm4, mm0
push r13
nop
push r14
sar r13, 2
push r10
packuswb mm0, mm5
push r9
not r9b
push r8
pand mm3, mm4
pop r8
movups xmm10, xmm3
pop r9
inc r14
pop r10
neg r13d
pop r14
psrad mm3, 0x13
pop r13
nop
pop rcx
subss xmm2, xmm1
pop rbx
inc rax
cmp eax, ebx
jb 0x2f8885c3d
mov qword [rsp + 0x3a], r15
push rcx
psrlq mm0, 0x45
push r15
emms
pop r15
psrld mm7, 0x4f
pop rcx
movabs rax, 0x6a004f00530061
mov dword [rsp + 0x4c], 0x59
mov qword [rsp + 0x44], rax
push r11
nop
psrld mm6, 0x29
psubw mm0, mm1
nop
emms
push r9
packssdw mm4, mm2
emms
emms
paddusw mm7, mm0
psraw mm1, 0xf
pop r9
psllq mm7, 0x6a
pmaxsw mm7, mm6
nop
pmaxub mm7, mm6
maxss xmm1, xmm4
dec r11
pop r11
mov rdx, qword [rsp + 0x20]
mov rcx, r13
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f8885d76
mov rax, r13
lea rdx, [rsp + 0x40]
push r9
rcpss xmm3, xmm5
push r12
xorps xmm8, xmm15
push r14
emms
pop r14
psrlw mm0, 0x6b
pop r12
not r9b
pop r9
xor word [rax], 0x48
push r13
paddw mm2, mm0
movss xmm1, xmm10
dec r13
psraw mm2, 0x49
emms
orps xmm14, xmm12
inc r13
pop r13
add rax, 2
cmp rdx, rax
jne 0x2f8885d2e
jmp 0x2f8885d91
cmp r10, r8
jne 0x2f8885d83
push r12
emms
pop r12
jmp 0x2f8885d89
push rdx
sar dx, 0xd
pop rdx
push r9
neg r9w
pop r9
cmp r10, 0xa
jne 0x2f8885da4
push r11
emms
pop r11
jmp 0x2f8885dad
push r9
sar r9w, 6
pop r9
push r12
psubsb mm4, mm3
pop r12
sub esi, ebx
push r14
mov r14, 2
push rcx
push r8
pop r8
pop rcx
dec r14
jne 0x2f8885dbf
pop r14
call fcn.2f8884ac1
add rbp, rbx
push r14
ror r14b, 0x13
dec r14d
psrld mm0, 0x37
neg r14w
push rbx
ror r14d, 9
not r14d
nop
push rdx
nop
or bl, r14b
push rcx
pcmpeqb mm4, mm1
pop rcx
maxps xmm15, xmm3
psraw mm1, 0x37
pop rdx
andnps xmm6, xmm2
nop
xadd r14d, ebx
pop rbx
nop
emms
emms
punpcklbw mm0, mm2
pop r14
call fcn.2f8884e45
lea rax, [r12 - 0x10]
mov rbx, r12
mov qword [rsp + 0x28], rax
push r14
emms
push r12
add r14b, r12b
push rdx
emms
push r8
psllq mm0, 0x11
push r15
mov r14b, r8b
pop r15
psrlq mm6, 0x52
pop r8
emms
pop rdx
nop
pop r12
xorps xmm8, xmm13
pop r14
call fcn.2f8884c54
inc byte [rbx + 0x1f]
jne 0x2f8885f69
mov word [rsp + 0x3a], 0x7973
mov byte [rsp + 0x3c], 0
push r8
rcl r8, 0x11
nop
nop
shr r8w, 0x15
nop
emms
emms
inc r8
dec r8d
emms
not r8
addss xmm15, xmm14
pop r8
mov dword [rsp + 0x44], 0x244f59
push r11
nop
push r10
psrlw mm6, 0x1c
push r8
maxss xmm12, xmm13
push rax
subps xmm15, xmm8
pop rax
rcr r8w, 0xe
pop r8
psrld mm3, 0x52
pop r10
xorps xmm13, xmm3
pop r11
mov rdx, qword [rsp + 0x20]
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x2f8885f17
push r15
nop
shr r15b, 8
addps xmm15, xmm4
push r14
psllq mm5, 0x3e
and r15, r14
emms
push rax
shl r14, 0xd
nop
push r8
psubusw mm0, mm3
psrad mm4, 0x54
pop r8
xadd r14, r15
addps xmm7, xmm13
pxor mm6, mm1
pop rax
emms
rol r14d, 0x11
pop r14
pand mm2, mm1
psllq mm7, 0x5e
pop r15
jmp 0x2f8885f54
push r11
paddusb mm1, mm2
andps xmm7, xmm6
emms
push rbx
psrld mm4, 0x2b
add bl, r11b
nop
push rdx
pmaddwd mm7, mm2
psrlq mm1, 0x46
push rcx
xor cl, r11b
psubusw mm1, mm4
pop rcx
nop
mov rbx, 0x13
subps xmm8, xmm2
pop rdx
pslld mm1, 0x53
nop
pop rbx
nop
psllq mm7, 0x1d
pop r11
push r9
punpcklwd mm6, mm0
pop r9
dec rbx
cmp qword [rsp + 0x28], rbx
jne 0x2f8885e26
push r11
mov r11w, 0x14
neg r11b
push rbx
mulss xmm4, xmm10
inc rbx
push rdx
add bx, r11w
emms
push r8
emms
psraw mm3, 0x5d
pop r8
inc ebx
nop
pop rdx
rcpss xmm11, xmm8
psrad mm3, 0x36
pop rbx
nop
subss xmm5, xmm12
pop r11
push rdx
mov rdx, 1
cmp r10d, r11d
jne 0x2f8885fc1
push r10
ucomiss xmm12, xmm1
pop r10
jmp 0x2f8885fc8
push r8
por mm1, mm2
pop r8
push r14
emms
pop r14
dec rdx
jne 0x2f8885fab
pop rdx
push r10
nop
push r12
pminsw mm7, mm6
neg r10d
push r11
dec r12d
inc r11d
pslld mm0, 0x26
push r15
comiss xmm11, xmm13
add r15w, r11w
emms
emms
pop r15
emms
or r11w, r12w
emms
pop r11
punpcklbw mm3, mm1
rcl r10w, 0xf
pop r12
xorps xmm13, xmm3
pop r10
jmp 0x2f88854b2
push rcx
mulss xmm15, xmm5
push r15
inc rcx
push r13
emms
push rbx
emms
push r12
adc rbx, r12
pop r12
comiss xmm14, xmm4
pop rbx
rol r15b, 3
pop r13
emms
pop r15
psraw mm3, 0x67
pop rcx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x2f88850d4