Function at 0x25df87e10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x548
mov rbp, rcx
push r9
mov r9, 3
cmp r13w, 0x65
jne 0x25df87e3f
push rbx
paddd mm4, mm3
push r12
shr r12, 7
nop
pop r12
nop
pop rbx
jmp 0x25df87e55
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 0x25df87e27
pop r9
call fcn.25df9b32f
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp]
lea r9, [rsp + 0x60]
mov r8d, 0x40
call fcn.25df89623
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
xor ecx, ecx
mov dword [rsp + 0x78], 0x53
movabs rax, 0x7c002900250031
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
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 rsi, [rsp + 0x70]
mov rcx, rsi
call sub.msvcrt.dll_wcslen
cmp rax, 5
jne 0x25df87f3b
push r9
shl r9d, 8
pop r9
jmp 0x25df87f66
push rbx
mov rbx, 2
cmp r13b, bl
jne 0x25df87f52
push r12
movss xmm5, xmm6
pop r12
jmp 0x25df87f58
push r14
emms
pop r14
push r15
psrld mm6, 0x21
pop r15
dec rbx
jne 0x25df87f43
pop rbx
push rcx
mov rcx, 1
push rdx
push r8
pop r8
pop rdx
dec rcx
jne 0x25df87f6e
pop rcx
xor eax, eax
xor edx, edx
mov dword [rsp + 0x30], 5
or r9, 0xffffffffffffffff
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x68]
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov rax, qword [fcn.25df8f9ca]
mov qword [rsp + 0x28], rdx
mov edx, 0x1fffff
mov qword [rsp + 0x20], rax
call fcn.25df98947
push r10
nop
push r13
sub r10w, r13w
push rdx
psrlw mm0, 0x14
push rax
ucomiss xmm13, xmm8
push r14
sub r14d, edx
push rcx
psrlw mm4, 0x43
push r9
pcmpgtw mm7, mm2
pop r9
addps xmm13, xmm6
pop rcx
punpckldq mm7, mm6
pop r14
emms
pop rax
psubusw mm5, mm7
pop rdx
cmp r13, r10
pop r13
nop
pop r10
mov ecx, 2
mov edx, 4
xor edi, edi
call sub.msvcrt.dll_calloc
mov rcx, rax
push r13
pmaxub mm4, mm2
dec r13
emms
neg r13b
psllq mm6, 0x4e
psubsb mm6, mm2
emms
rcpps xmm6, xmm4
sbb r13, 4
dec r13
mulps xmm12, xmm6
packssdw mm7, mm2
pop r13
xor dword [rcx + rdi*4], 2
push r13
nop
dec r13
psllq mm7, 0x65
not r13b
push rax
pcmpeqb mm0, mm1
rcr r13w, 4
ror al, 0xe
push r8
addps xmm9, xmm6
adc r8d, eax
push r10
pand mm5, mm7
pop r10
pslld mm4, 0x1f
psrlw mm5, 0x43
pop r8
psrad mm6, 0x5b
emms
minps xmm12, xmm4
pop rax
nop
andps xmm10, xmm12
nop
emms
pop r13
test rdi, rdi
jne 0x25df88096
mov edi, 1
jmp 0x25df88012
call sub.msvcrt.dll_free
push rax
emms
push r9
nop
emms
pop r9
sar ax, 5
pop rax
cmp qword [rsp + 0x68], 0
lea rbx, [rsp + 0x64]
je 0x25df8895b
mov word [rsp + 0x64], 0x4837
mov byte [rsp + 0x66], 0
cmp r13d, 0xe
jne 0x25df880f5
push r11
dec r11d
push rcx
neg r11b
neg r11w
pop rcx
pmaddwd mm6, mm7
pop r11
jmp 0x25df88105
push r14
pmaxub mm6, mm1
push rbx
emms
emms
pop rbx
not r14b
pop r14
push r13
nop
push r12
sbb r12w, r13w
emms
pop r12
nop
pop r13
mov dword [rsp + 0x70], 0x42565b43
mov byte [rsp + 0x74], 0
push r8
pmaxub mm6, mm0
pmaxsw mm0, mm5
pcmpgtw mm6, mm2
nop
push rbx
pmaxsw mm6, mm4
nop
emms
shr rbx, 0x14
pop rbx
movss xmm5, xmm9
packssdw mm1, mm7
pminsw mm3, mm2
nop
pop r8
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x25df881fd
mov rax, rbx
lea rdx, [rsp + 0x66]
push r15
mov r15, 3
push rcx
psrld mm1, 0x12
pslld mm4, 0x47
emms
dec rcx
ror cx, 0x14
subps xmm11, xmm14
mov cl, 0x13
pop rcx
dec r15
jne 0x25df8816c
pop r15
xor byte [rax], 0x96
push r12
rcl r12, 0xb
push rcx
nop
or r12w, cx
push r8
movups xmm4, xmm1
emms
sub r8b, 4
push r13
inc r13
nop
rcr r13b, 0x15
emms
push r10
dec r8
ror r12d, 0xe
and r8w, r13w
pslld mm4, 0x44
rcr r10, 0x16
pop r10
mov r8d, r13d
and cx, r13w
pcmpgtb mm7, mm4
emms
pop r13
sar r8d, 0xf
nop
packssdw mm3, mm5
pop r8
psllq mm4, 0x4a
subps xmm0, xmm12
pop rcx
pmullw mm3, mm2
pop r12
inc rax
cmp rax, rdx
jne 0x25df88163
jmp 0x25df88243
push r15
emms
nop
push rax
emms
emms
push rdx
emms
rcr ax, 0x14
push r10
pmulhuw mm2, mm7
movss xmm0, xmm9
push rcx
psrlw mm3, 0x48
sub r15d, 0x11
pop rcx
xorps xmm15, xmm9
test rax, rdx
pop r10
movhlps xmm2, xmm12
pcmpgtd mm4, mm2
pop rdx
emms
packsswb mm6, mm5
pop rax
psrlq mm5, 0x13
minps xmm8, xmm14
pop r15
push r10
mulps xmm1, xmm5
push rax
neg r10w
push r14
maxss xmm12, xmm3
push r9
nop
pop r9
psrlq mm5, 0x5d
pop r14
inc r10d
pop rax
andnps xmm8, xmm12
pop r10
mov word [rsp + 0x64], 0x4837
mov byte [rsp + 0x66], 0
cmp r13d, 0xe
jne 0x25df882a3
push r11
dec r11d
push rcx
neg r11b
neg r11w
pop rcx
pmaddwd mm6, mm7
pop r11
jmp 0x25df882b3
push r14
pmaxub mm6, mm1
push rbx
emms
emms
pop rbx
not r14b
pop r14
push r13
nop
push r12
sbb r12w, r13w
emms
pop r12
nop
pop r13
mov dword [rsp + 0x70], 0x42565b43
mov byte [rsp + 0x74], 0
push r8
pmaxub mm6, mm0
pmaxsw mm0, mm5
pcmpgtw mm6, mm2
nop
push rbx
pmaxsw mm6, mm4
nop
emms
shr rbx, 0x14
pop rbx
movss xmm5, xmm9
packssdw mm1, mm7
pminsw mm3, mm2
nop
pop r8
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x25df883ab
mov rax, rbx
lea rdx, [rsp + 0x66]
push r15
mov r15, 3
push rcx
psrld mm1, 0x12
pslld mm4, 0x47
emms
dec rcx
ror cx, 0x14
subps xmm11, xmm14
mov cl, 0x13
pop rcx
dec r15
jne 0x25df8831a
pop r15
xor byte [rax], 0x96
push r12
rcl r12, 0xb
push rcx
nop
or r12w, cx
push r8
movups xmm4, xmm1
emms
sub r8b, 4
push r13
inc r13
nop
rcr r13b, 0x15
emms
push r10
dec r8
ror r12d, 0xe
and r8w, r13w
pslld mm4, 0x44
rcr r10, 0x16
pop r10
mov r8d, r13d
and cx, r13w
pcmpgtb mm7, mm4
emms
pop r13
sar r8d, 0xf
nop
packssdw mm3, mm5
pop r8
psllq mm4, 0x4a
subps xmm0, xmm12
pop rcx
pmullw mm3, mm2
pop r12
inc rax
cmp rax, rdx
jne 0x25df88311
jmp 0x25df883f1
push r15
emms
nop
push rax
emms
emms
push rdx
emms
rcr ax, 0x14
push r10
pmulhuw mm2, mm7
movss xmm0, xmm9
push rcx
psrlw mm3, 0x48
sub r15d, 0x11
pop rcx
xorps xmm15, xmm9
test rax, rdx
pop r10
movhlps xmm2, xmm12
pcmpgtd mm4, mm2
pop rdx
emms
packsswb mm6, mm5
pop rax
psrlq mm5, 0x13
minps xmm8, xmm14
pop r15
push r10
mulps xmm1, xmm5
push rax
neg r10w
push r14
maxss xmm12, xmm3
push r9
nop
pop r9
psrlq mm5, 0x5d
pop r14
inc r10d
pop rax
andnps xmm8, xmm12
pop r10
mov dword [rsp + 0xa0], 0x10000b
cmp r13, r14
jne 0x25df88438
push r11
shr r11w, 8
pop r11
jmp 0x25df8843e
push r10
emms
pop r10
push rdx
shr edx, 3
pop rdx
mov rcx, qword [rsp + 0x68]
mov rdx, rsi
call fcn.25df8f37d
test eax, eax
je 0x25df884ab
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 0x25df8845c
pop rcx
mov rcx, qword [rsp + 0x68]
call fcn.25df928e6
cmp r13, r8
jne 0x25df88493
push r11
sbb r11w, 1
pop r11
jmp 0x25df8849a
push r14
inc r14d
pop r14
push r8
pcmpgtd mm7, mm3
pop r8
call sym.ExtValidHeap.dll_RecentDialStroke
jmp 0x25df88be3
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
mov rax, qword [rbp]
mov qword [rsp + 0xf0], rax
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
mov rcx, qword [rsp + 0x68]
mov rdx, rsi
call fcn.25df95e34
test eax, eax
je 0x25df885e8
push rax
shr al, 0xf
pmaddwd mm5, mm1
psrad mm4, 0x18
subps xmm1, xmm8
push rbx
dec rbx
psraw mm7, 0x3a
punpckhbw mm7, mm6
pand mm3, mm1
pop rbx
psubsb mm7, mm0
emms
dec rax
maxps xmm10, xmm2
pop rax
mov rcx, qword [rsp + 0x68]
call fcn.25df928e6
push r15
psadbw mm7, mm5
emms
psrlq mm5, 0x22
psrlq mm3, 8
pmullw mm4, mm3
push rax
packsswb mm6, mm1
rol r15w, 1
pslld mm0, 0x3c
dec rax
psrad mm4, 0x69
pop rax
emms
ucomiss xmm6, xmm0
punpcklbw mm7, mm2
pcmpgtb mm7, mm1
shr r15, 0x16
emms
pop r15
jmp 0x25df88be3
push r10
nop
push r13
sub r10w, r13w
push rdx
psrlw mm0, 0x14
push rax
ucomiss xmm13, xmm8
push r14
sub r14d, edx
push rcx
psrlw mm4, 0x43
push r9
pcmpgtw mm7, mm2
pop r9
addps xmm13, xmm6
pop rcx
punpckldq mm7, mm6
pop r14
emms
pop rax
psubusw mm5, mm7
pop rdx
cmp r13, r10
pop r13
nop
pop r10
mov ecx, 2
mov edx, 4
call sub.msvcrt.dll_calloc
mov rcx, rax
xor eax, eax
push r13
pmaxub mm4, mm2
dec r13
emms
neg r13b
psllq mm6, 0x4e
psubsb mm6, mm2
emms
rcpps xmm6, xmm4
sbb r13, 4
dec r13
mulps xmm12, xmm6
packssdw mm7, mm2
pop r13
xor dword [rcx + rax*4], 2
push r13
nop
dec r13
psllq mm7, 0x65
not r13b
push rax
pcmpeqb mm0, mm1
rcr r13w, 4
ror al, 0xe
push r8
addps xmm9, xmm6
adc r8d, eax
push r10
pand mm5, mm7
pop r10
pslld mm4, 0x1f
psrlw mm5, 0x43
pop r8
psrad mm6, 0x5b
emms
minps xmm12, xmm4
pop rax
nop
andps xmm10, xmm12
nop
emms
pop r13
test rax, rax
jne 0x25df886b8
mov rax, rdi
jmp 0x25df88639
call sub.msvcrt.dll_free
push rax
emms
push r9
nop
emms
pop r9
sar ax, 5
pop rax
cmp r13b, 0x19
jne 0x25df886fb
push rbx
pcmpgtb mm7, mm3
push r14
neg ebx
or r14, rbx
pop r14
pslld mm2, 0x15
pop rbx
jmp 0x25df8870c
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 0x25df887bb
push r14
psubw mm3, mm4
push rcx
paddsb mm2, mm3
emms
pop rcx
nop
pop r14
cmp r9w, 0x51
je 0x25df887d4
push r11
mov r11, 3
push r13
push rax
pop rax
pop r13
dec r11
jne 0x25df8875c
pop r11
cmp r14, 0x4b
je 0x25df8880c
push r15
emms
pminsw mm0, mm2
push rcx
emms
pop rcx
emms
paddsw mm3, mm4
pop r15
cmp r8, 0x65
je 0x25df8882e
push rdx
nop
push r15
adc edx, r15d
emms
pop r15
not dl
pop rdx
cmp r12, r14
je 0x25df88837
push r12
pandn mm0, mm4
pop r12
cmp al, cl
je 0x25df8887d
jne 0x25df888ba
push rdx
rcr dl, 8
push r8
inc edx
psraw mm6, 0x55
pop r8
subss xmm13, xmm5
pop rdx
jmp 0x25df888ba
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 0x25df888ba
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 0x25df888ba
push rax
emms
pop rax
jmp 0x25df888ba
cmp r13, rdx
jne 0x25df88850
push rbx
sbb bl, 0x16
push r9
minps xmm10, xmm13
emms
pop r9
pcmpgtd mm6, mm0
pop rbx
jmp 0x25df88865
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 0x25df888ba
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
mov rcx, qword [rsp + 0x68]
mov rdx, rbx
call fcn.25df97c81
mov word [rsp + 0x64], 0x4837
mov byte [rsp + 0x66], 0
cmp r13d, 0xe
jne 0x25df88995
push r11
dec r11d
push rcx
neg r11b
neg r11w
pop rcx
pmaddwd mm6, mm7
pop r11
jmp 0x25df889a5
push r14
pmaxub mm6, mm1
push rbx
emms
emms
pop rbx
not r14b
pop r14
push r13
nop
push r12
sbb r12w, r13w
emms
pop r12
nop
pop r13
mov dword [rsp + 0x70], 0x42565b43
mov byte [rsp + 0x74], 0
push r8
pmaxub mm6, mm0
pmaxsw mm0, mm5
pcmpgtw mm6, mm2
nop
push rbx
pmaxsw mm6, mm4
nop
emms
shr rbx, 0x14
pop rbx
movss xmm5, xmm9
packssdw mm1, mm7
pminsw mm3, mm2
nop
pop r8
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x25df88a9a
lea rax, [rsp + 0x66]
push r15
mov r15, 3
push rcx
psrld mm1, 0x12
pslld mm4, 0x47
emms
dec rcx
ror cx, 0x14
subps xmm11, xmm14
mov cl, 0x13
pop rcx
dec r15
jne 0x25df88a09
pop r15
xor byte [rbx], 0x96
push r12
rcl r12, 0xb
push rcx
nop
or r12w, cx
push r8
movups xmm4, xmm1
emms
sub r8b, 4
push r13
inc r13
nop
rcr r13b, 0x15
emms
push r10
dec r8
ror r12d, 0xe
and r8w, r13w
pslld mm4, 0x44
rcr r10, 0x16
pop r10
mov r8d, r13d
and cx, r13w
pcmpgtb mm7, mm4
emms
pop r13
sar r8d, 0xf
nop
packssdw mm3, mm5
pop r8
psllq mm4, 0x4a
subps xmm0, xmm12
pop rcx
pmullw mm3, mm2
pop r12
inc rbx
cmp rbx, rax
jne 0x25df88a00
jmp 0x25df88ae0
push r15
emms
nop
push rax
emms
emms
push rdx
emms
rcr ax, 0x14
push r10
pmulhuw mm2, mm7
movss xmm0, xmm9
push rcx
psrlw mm3, 0x48
sub r15d, 0x11
pop rcx
xorps xmm15, xmm9
test rax, rdx
pop r10
movhlps xmm2, xmm12
pcmpgtd mm4, mm2
pop rdx
emms
packsswb mm6, mm5
pop rax
psrlq mm5, 0x13
minps xmm8, xmm14
pop r15
push r10
mulps xmm1, xmm5
push rax
neg r10w
push r14
maxss xmm12, xmm3
push r9
nop
pop r9
psrlq mm5, 0x5d
pop r14
inc r10d
pop rax
andnps xmm8, xmm12
pop r10
mov rcx, qword [rsp + 0x68]
call fcn.25df928e6
cmp r13, r14
jne 0x25df88b26
push r11
shr r11w, 8
pop r11
jmp 0x25df88b2c
push r10
emms
pop r10
push rdx
shr edx, 3
pop rdx
xor ecx, ecx
call fcn.25df923f8
cmp r13b, r14b
jne 0x25df88ba8
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 0x25df88bbe
push r8
mov r8, 2
push rdx
push r11
pop r11
pop rdx
dec r8
jne 0x25df88bb1
pop r8
cmp r13b, r11b
jne 0x25df88bd4
push rcx
sbb rcx, 0x17
pop rcx
jmp 0x25df88bdd
push r13
sbb r13w, 0xe
pop r13
push r12
emms
pop r12
add rsp, 0x548
pop rbx
pop rsi
pop rdi
pop rbp
ret