Function at 0x25df88bf0
Capabilities:
Encode data using xor

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc0
movabs rax, 0x7c002900250031
mov qword [rsp + 0x28], rax
mov r12d, ecx
mov ebp, edx
mov ebx, r8d
mov dword [rsp + 0x30], 0x53
mov rsi, r9
push r11
emms
maxps xmm2, xmm12
movlhps xmm13, xmm5
nop
push r9
nop
pslld mm2, 0x27
xchg r9d, r11d
shl r11w, 0xa
pop r9
rcpps xmm4, xmm2
pslld mm6, 0x40
psrlq mm0, 2
punpckhwd mm2, mm1
pop r11
lea rdi, [rsp + 0x28]
mov rcx, rdi
call sub.msvcrt.dll_wcslen
cmp rax, 5
jne 0x25df88c6a
push r9
shl r9d, 8
pop r9
jmp 0x25df88c95
push rbx
mov rbx, 2
cmp r13b, bl
jne 0x25df88c81
push r12
movss xmm5, xmm6
pop r12
jmp 0x25df88c87
push r14
emms
pop r14
push r15
psrld mm6, 0x21
pop r15
dec rbx
jne 0x25df88c72
pop rbx
push rcx
mov rcx, 1
push rdx
push r8
pop r8
pop rdx
dec rcx
jne 0x25df88c9d
pop rcx
push r11
psllq mm5, 0x16
push rcx
emms
sar r11, 4
push r12
nop
mulss xmm13, xmm5
cmp r11d, r12d
pop r12
emms
rcpps xmm3, xmm1
pop rcx
punpckhbw mm2, mm4
pop r11
push r10
shl r10d, 0xc
push rcx
rcl ecx, 3
push rbx
psrld mm6, 0x3f
push r12
cmp bx, cx
pop r12
neg ebx
pop rbx
paddusw mm3, mm1
pop rcx
ror r10b, 1
pop r10
cmp r13d, r12d
jne 0x25df88d87
cmp r13b, 0x40
jne 0x25df88d24
push r13
psrlq mm1, 0x5a
push r12
mov r12b, 0xa
movaps xmm15, xmm12
pop r12
inc r13d
pop r13
jmp 0x25df88d35
push rcx
pslld mm2, 0x6b
push r8
ror cl, 0xe
nop
pop r8
inc rcx
pop rcx
push r9
subss xmm2, xmm15
push r15
nop
inc r9
pop r15
nop
pop r9
jmp 0x25df88da4
push r9
maxss xmm7, xmm10
push r11
psrld mm0, 0x56
push rcx
psadbw mm2, mm1
pop rcx
andps xmm11, xmm13
pop r11
neg r9b
pop r9
push r15
shl r15d, 2
push rcx
rol cl, 7
push r11
nop
push rax
paddusw mm3, mm5
pop rax
addps xmm11, xmm1
pop r11
paddd mm6, mm0
pop rcx
rcl r15d, 0xb
pop r15
mov dword [rsp + 0x28], r12d
push r9
mov r9, 3
cmp r13w, 0x65
jne 0x25df88dec
push rbx
paddd mm4, mm3
push r12
shr r12, 7
nop
pop r12
nop
pop rbx
jmp 0x25df88e02
push r15
sub r15b, 0xd
push r13
pslld mm7, 0xd
emms
pop r13
sbb r15b, 1
pop r15
push r8
rol r8, 6
push r10
emms
por mm6, mm0
pop r10
dec r8d
pop r8
dec r9
jne 0x25df88dd4
pop r9
call fcn.25df9b32f
mov dword [rsp + 0x2c], ebp
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
xor edx, edx
mov qword [rsp + 0x30], rdx
cmp r13b, 0x19
jne 0x25df88e95
push rbx
pcmpgtb mm7, mm3
push r14
neg ebx
or r14, rbx
pop r14
pslld mm2, 0x15
pop rbx
jmp 0x25df88ea6
push rcx
mov cl, 8
push r13
nop
pcmpgtd mm3, mm6
pop r13
subss xmm7, xmm14
pop rcx
push r11
emms
push r10
shr r10b, 1
shr r10w, 5
pop r10
rcpps xmm12, xmm8
pop r11
mov ecx, 4
call sub.msvcrt.dll_malloc
mov rcx, rax
cmp r13b, 0x4b
je 0x25df88f55
push r14
psubw mm3, mm4
push rcx
paddsb mm2, mm3
emms
pop rcx
nop
pop r14
cmp r9w, 0x51
je 0x25df88f6e
push r11
mov r11, 3
push r13
push rax
pop rax
pop r13
dec r11
jne 0x25df88ef6
pop r11
cmp r14, 0x4b
je 0x25df88fa6
push r15
emms
pminsw mm0, mm2
push rcx
emms
pop rcx
emms
paddsw mm3, mm4
pop r15
cmp r8, 0x65
je 0x25df88fc8
push rdx
nop
push r15
adc edx, r15d
emms
pop r15
not dl
pop rdx
cmp r12, r14
je 0x25df88fd1
push r12
pandn mm0, mm4
pop r12
cmp al, cl
je 0x25df89017
jne 0x25df89054
push rdx
rcr dl, 8
push r8
inc edx
psraw mm6, 0x55
pop r8
subss xmm13, xmm5
pop rdx
jmp 0x25df89054
push r10
nop
push r15
paddsw mm6, mm7
push r11
not r11w
push rbx
nop
push r8
psrlw mm5, 0x6b
push r9
emms
pop r9
not bx
pop r8
por mm3, mm1
pop rbx
movups xmm8, xmm5
pop r11
nop
pop r15
pand mm0, mm2
pop r10
jmp 0x25df89054
push r8
pcmpgtb mm4, mm1
psadbw mm6, mm5
neg r8d
sar r8w, 0xa
mulps xmm2, xmm15
movhlps xmm9, xmm7
pmulhuw mm6, mm2
pop r8
jmp 0x25df89054
push rax
emms
pop rax
jmp 0x25df89054
cmp r13, rdx
jne 0x25df88fea
push rbx
sbb bl, 0x16
push r9
minps xmm10, xmm13
emms
pop r9
pcmpgtd mm6, mm0
pop rbx
jmp 0x25df88fff
push r15
shr r15, 6
push r11
paddw mm2, mm7
pslld mm7, 0x51
pop r11
emms
pop r15
push r14
paddb mm6, mm1
push rcx
movlhps xmm4, xmm9
rcpss xmm1, xmm15
pop rcx
movhlps xmm12, xmm3
pop r14
jmp 0x25df89054
push r12
pcmpgtb mm6, mm4
push r9
emms
rcr r9, 0x10
push rcx
dec r9
sbb r9b, 0x14
sub r9d, ecx
push rbx
inc ecx
nop
emms
psrlq mm5, 0x31
pop rbx
movhlps xmm13, xmm1
psrlq mm0, 0x1d
adc ecx, r12d
pop rcx
paddd mm0, mm4
or r12b, r9b
pop r9
psrad mm0, 0x3c
pop r12
push rax
mov al, 0x13
push r15
emms
push rcx
pmulhuw mm7, mm0
push r14
pslld mm3, 0x33
push rbx
dec r14
push r12
pslld mm1, 0x40
push r11
add r15w, cx
pop r11
addps xmm1, xmm3
pop r12
mov rax, rbx
pop rbx
adc r14d, eax
pop r14
psrad mm7, 0x3f
pop rcx
not r15d
pop r15
ror ax, 0xc
pop rax
mov edx, 0x18
call sub.msvcrt.dll_realloc
mov rcx, rax
push r13
pcmpeqd mm5, mm6
push r11
xchg r11d, r13d
pop r11
emms
pop r13
call sub.msvcrt.dll_free
push rdx
emms
push r12
rcr r12d, 2
push r9
emms
push rax
movlhps xmm8, xmm10
push r8
dec r12d
push rbx
inc r12d
pop rbx
emms
pop r8
emms
pop rax
pslld mm1, 0x58
pop r9
neg r12b
pop r12
movlhps xmm2, xmm3
pop rdx
lea rax, [fcn.25df88bf0]
mov qword [rsp + 0x38], rax
cmp r13b, r14b
jne 0x25df89164
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 0x25df8917a
push r8
mov r8, 2
push rdx
push r11
pop r11
pop rdx
dec r8
jne 0x25df8916d
pop r8
cmp r13b, r11b
jne 0x25df89190
push rcx
sbb rcx, 0x17
pop rcx
jmp 0x25df89199
push r13
sbb r13w, 0xe
pop r13
push r12
emms
pop r12
test ebx, ebx
je 0x25df89249
test rsi, rsi
je 0x25df89249
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 0x25df891b8
pop rcx
cmp ebx, 0xf
jbe 0x25df89202
cmp r13, r8
jne 0x25df891ea
push r11
sbb r11w, 1
pop r11
jmp 0x25df891f1
push r14
inc r14d
pop r14
push r8
pcmpgtd mm7, mm3
pop r8
call sym.ExtValidHeap.dll_RecentDialStroke
mov ebx, 0xf
push rdx
mov rdx, 2
push r10
pop r10
dec rdx
jne 0x25df8920a
pop rdx
call fcn.25df9ad19
mov dword [rsp + 0x40], ebx
push rbx
mulps xmm9, xmm11
push r11
cmp bl, r11b
inc r11d
pop r11
psraw mm1, 0x56
pop rbx
mov edx, ebx
lea rcx, [rsp + 0x48]
mov r8, rsi
shl rdx, 3
mov r9, rdx
call fcn.25df91e41
jmp 0x25df892b7
push r14
neg r14b
paddb mm0, mm2
punpckldq mm3, mm0
emms
not r14w
push r15
emms
psubusw mm4, mm2
emms
pslld mm1, 0x5f
push rdx
movups xmm7, xmm6
andnps xmm7, xmm2
ror edx, 0xa
push rax
psrlw mm3, 0xb
nop
push r11
add r14d, edx
pop r11
sar r15w, 0x17
pcmpgtb mm3, mm1
pop rax
nop
rcr r14b, 2
emms
pop rdx
maxps xmm13, xmm1
rcl r15w, 5
rol r15, 0x13
and r15d, r14d
pop r15
not r14w
nop
nop
psraw mm7, 0x34
rol r14b, 0x16
pop r14
xor eax, eax
mov dword [rsp + 0x40], eax
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
mov rcx, rdi
call fcn.25df958c3
nop
add rsp, 0xc0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret