Function at 0x25df877f6
Capabilities:
Encode data using xor

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x60
push rdx
emms
push r12
emms
push r8
shl r12, 0xe
push r15
rcr r15d, 8
pop r15
sbb rdx, r8
pop r8
movups xmm5, xmm14
pop r12
nop
pop rdx
cmp r13b, r14b
jne 0x25df8788f
push r8
shr r8d, 0x17
push rdx
maxss xmm10, xmm9
push r13
comiss xmm10, xmm0
push r12
nop
pop r12
adc edx, r13d
pop r13
rcl r8d, 0x10
pop rdx
paddusw mm2, mm0
pop r8
jmp 0x25df878a5
push r8
mov r8, 2
push rdx
push r11
pop r11
pop rdx
dec r8
jne 0x25df87898
pop r8
cmp r13b, r11b
jne 0x25df878bb
push rcx
sbb rcx, 0x17
pop rcx
jmp 0x25df878c4
push r13
sbb r13w, 0xe
pop r13
push r12
emms
pop r12
movabs rax, 0x5000360041
mov qword [rsp + 0x50], rax
push rbx
psrld mm5, 0x3e
push r9
emms
dec r9
push r12
rcpss xmm1, xmm10
psllq mm6, 0x28
rcpps xmm4, xmm12
push rdx
maxps xmm2, xmm10
addss xmm14, xmm7
addps xmm2, xmm6
nop
pop rdx
psrlq mm6, 0x2c
orps xmm15, xmm12
inc ebx
pop r12
psubsb mm6, mm4
shr r9b, 5
pop r9
psllq mm6, 0x6a
pop rbx
lea rbx, [rsp + 0x50]
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 3
jne 0x25df87948
push r10
mov r10, 0x15
push rbx
nop
add r10w, bx
pop rbx
psraw mm5, 0x39
pop r10
jmp 0x25df8794f
push r13
dec r13
pop r13
cmp r13, 4
jne 0x25df87964
push r10
nop
pop r10
jmp 0x25df87968
push rax
emms
pop rax
push r11
nop
pop r11
push r9
not r9d
movlhps xmm0, xmm15
push rcx
nop
pop rcx
nop
emms
pop r9
push r13
subps xmm13, xmm6
mov r13b, 8
push r11
shl r11w, 1
pop r11
inc r13d
sub r13d, 0x14
pop r13
call fcn.25df9b14b
push r15
psrld mm0, 0x3c
por mm6, mm4
push r9
and r9d, r15d
add r15d, r9d
push r13
punpckhbw mm4, mm3
ror r9, 8
push r11
emms
dec r9
pop r11
dec r13
mov r9d, 0x13
pop r13
cmp r15w, r9w
psrlw mm6, 0x69
pop r9
psrad mm7, 0x67
emms
pop r15
movabs rax, 0x4200780044004f
mov dword [rsp + 0x48], 0x42
mov qword [rsp + 0x40], rax
push r13
nop
push rdx
nop
push rcx
nop
push r9
or dl, r13b
push r8
emms
push r11
comiss xmm2, xmm9
pop r11
pcmpeqb mm6, mm3
pop r8
psrad mm5, 0x3b
pop r9
adc rdx, rcx
pop rcx
cmp edx, r13d
pop rdx
rol r13b, 0xf
pop r13
movabs rax, 0x3f005e00490072
mov dword [rsp + 0x58], 0x27
mov qword [rsp + 0x50], rax
push r8
psllq mm1, 0x66
pop r8
lea rdi, [rsp + 0x40]
mov rdx, rbx
mov rcx, rdi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x25df87a6e
push r13
mov r13, 1
push r8
pop r8
dec r13
jne 0x25df87a61
pop r13
jmp 0x25df87a99
push r14
psllq mm1, 0x5f
push r8
emms
not r14d
push r13
neg r14w
andnps xmm3, xmm8
psrld mm3, 0x60
pop r13
psubsb mm0, mm7
rcl r14d, 0x15
pop r8
dec r14
pop r14
push r12
emms
psrlw mm2, 0x2d
inc r12d
nop
addss xmm12, xmm7
push r14
shl r12, 0xe
psubsb mm3, mm1
emms
test r14b, r12b
pslld mm1, 5
pop r14
not r12
nop
ucomiss xmm4, xmm1
rcl r12d, 0xa
shl r12w, 0xb
pandn mm2, mm6
pop r12
push r8
rol r8b, 0xe
sub r8, 0x10
sar r8b, 2
push r15
psllq mm0, 0x28
xadd r8d, r15d
adc r15d, r8d
push r14
emms
emms
emms
pop r14
or r15, r8
nop
psrlq mm6, 0x54
pop r15
nop
packuswb mm4, mm3
psllq mm2, 0x42
pop r8
rdtsc
cmp r13w, r9w
jne 0x25df87b23
push rbx
pslld mm6, 0x42
pop rbx
jmp 0x25df87b2b
push r9
rol r9d, 0x12
pop r9
push rax
psrad mm6, 0x19
pop rax
push rdx
xorps xmm2, xmm9
inc rdx
push rax
shl rax, 0xf
sar al, 3
push r15
pslld mm6, 0x10
movups xmm13, xmm1
push rcx
emms
psllq mm4, 0x4a
push r10
rcr al, 4
rol rdx, 6
pop r10
sub cx, dx
psllq mm7, 0x1f
pop rcx
emms
psrlq mm3, 0xa
pop r15
nop
emms
pop rax
nop
paddusb mm0, mm5
pop rdx
push rcx
mov rcx, 1
push r9
neg r9b
push rdx
pxor mm1, mm3
dec r9d
pop rdx
shl r9, 0xa
pop r9
dec rcx
jne 0x25df87b7e
pop rcx
mov qword [rsp + 0x38], 0xffffffffffffd8f0
push rbx
paddw mm0, mm5
nop
nop
push r14
nop
packssdw mm5, mm3
push r13
dec rbx
pop r13
rcr bl, 0x12
inc r14
pop r14
emms
neg bx
psraw mm5, 0x40
pop rbx
shl rdx, 0x20
mov eax, eax
mov ecx, 0x14
or rax, rdx
xor edx, edx
div rcx
imul esi, edx, 0x3e8
cmp r13w, r9w
jne 0x25df87bf3
push rbx
pslld mm6, 0x42
pop rbx
jmp 0x25df87bfb
push r9
rol r9d, 0x12
pop r9
push rax
psrad mm6, 0x19
pop rax
lea eax, [rsi + 0x2710]
mov dword [rsp + 0x48], 0x42
imul rax, qword [rsp + 0x38]
mov qword [rsp + 0x38], rax
movabs rax, 0x4200780044004f
mov qword [rsp + 0x40], rax
push r13
nop
push rdx
nop
push rcx
nop
push r9
or dl, r13b
push r8
emms
push r11
comiss xmm2, xmm9
pop r11
pcmpeqb mm6, mm3
pop r8
psrad mm5, 0x3b
pop r9
adc rdx, rcx
pop rcx
cmp edx, r13d
pop rdx
rol r13b, 0xf
pop r13
movabs rax, 0x3f005e00490072
mov dword [rsp + 0x58], 0x27
mov qword [rsp + 0x50], rax
push r8
psllq mm1, 0x66
pop r8
mov rdx, rbx
mov rcx, rdi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x25df87c9e
push r13
mov r13, 1
push r8
pop r8
dec r13
jne 0x25df87c91
pop r13
jmp 0x25df87cc9
push r14
psllq mm1, 0x5f
push r8
emms
not r14d
push r13
neg r14w
andnps xmm3, xmm8
psrld mm3, 0x60
pop r13
psubsb mm0, mm7
rcl r14d, 0x15
pop r8
dec r14
pop r14
push r12
emms
psrlw mm2, 0x2d
inc r12d
nop
addss xmm12, xmm7
push r14
shl r12, 0xe
psubsb mm3, mm1
emms
test r14b, r12b
pslld mm1, 5
pop r14
not r12
nop
ucomiss xmm4, xmm1
rcl r12d, 0xa
shl r12w, 0xb
pandn mm2, mm6
pop r12
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x28]
call fcn.25df8f9ca
lea rdx, [rsp + 0x38]
xor ecx, ecx
call fcn.25df940cb
mov rdx, rbx
mov rcx, rdi
call fcn.25df8f9ca
push rdx
emms
push r12
emms
push r8
shl r12, 0xe
push r15
rcr r15d, 8
pop r15
sbb rdx, r8
pop r8
movups xmm5, xmm14
pop r12
nop
pop rdx
imul rax, qword [rsp + 0x40], 0x3e8
cqo
idiv qword [rsp + 0x30]
mov rbx, rax
imul rax, qword [rsp + 0x28], 0x3e8
cqo
idiv qword [rsp + 0x50]
sub ebx, eax
push r15
nop
push rbx
paddb mm1, mm0
push r13
maxss xmm12, xmm4
pop r13
nop
pop rbx
not r15
pop r15
call fcn.25df9acf8
add esi, 0x2328
cmp esi, ebx
jae 0x25df87ddc
push r14
paddusb mm4, mm7
push rax
pmaddwd mm2, mm1
psrlq mm3, 7
push r11
psrad mm7, 7
pslld mm5, 0x4c
mov r11b, r14b
push r8
pcmpgtb mm5, mm2
sbb r8w, 4
neg r14d
addps xmm13, xmm15
pop r8
comiss xmm0, xmm9
emms
emms
pop r11
nop
dec r14d
pop rax
maxps xmm11, xmm9
pop r14
xor eax, eax
jmp 0x25df87dfd
push r15
nop
push rbx
paddb mm1, mm0
push r13
maxss xmm12, xmm4
pop r13
nop
pop rbx
not r15
pop r15
call fcn.25df9acf8
mov eax, 1
add rsp, 0x60
pop rbx
pop rsi
pop rdi
ret