Function at 0x29a0c6232
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
sub rsp, 0x48
mov rsi, rcx
push r15
subps xmm15, xmm2
push rax
psrlq mm2, 0x43
push r8
or r8d, eax
push r11
neg r8d
pop r11
dec r8d
pop r8
shl al, 0xc
pop rax
punpckhbw mm3, mm0
pop r15
movsxd rbx, edx
test ebx, ebx
jle 0x29a0c64eb
push rbx
sbb ebx, 0xf
paddusw mm5, mm3
psrad mm5, 0x50
mulss xmm15, xmm1
nop
push rcx
emms
psubsb mm0, mm4
sub rbx, 9
nop
push r11
psrld mm7, 0x15
emms
pand mm3, mm7
push rdx
pxor mm5, mm0
nop
push r15
xorps xmm6, xmm14
pop r15
emms
cmp bl, r11b
pop rdx
and bx, r11w
sbb r11, 0xd
emms
pop r11
xadd rcx, rbx
mulps xmm15, xmm11
inc rbx
not cx
pop rcx
nop
psrlw mm1, 0x5d
subss xmm6, xmm0
nop
shl rbx, 0xf
pop rbx
mov edx, 4
mov ecx, 4
call sub.msvcrt.dll_calloc
mov rcx, rax
push rdx
maxss xmm0, xmm11
push r14
subps xmm11, xmm3
push r10
adc r10d, edx
push r8
inc edx
push r11
psrld mm7, 0x38
push rbx
psubusw mm1, mm7
pop rbx
nop
pop r11
nop
pop r8
xchg r10w, dx
pop r10
nop
pop r14
nop
pop rdx
mov edx, pe_nt_image_headers64
call sub.msvcrt.dll_realloc
mov rcx, rax
push rcx
mov rcx, 3
push rdx
sub edx, 7
inc rdx
psrlw mm1, 0x37
push r9
rol edx, 0x11
add edx, r9d
push r11
ror r11b, 0x15
pop r11
psrlw mm2, 0x33
subps xmm9, xmm7
pop r9
sub edx, 2
nop
psraw mm5, 0x40
pop rdx
dec rcx
jne 0x29a0c6327
pop rcx
call sub.msvcrt.dll_free
push r8
emms
dec r8
emms
punpckhwd mm2, mm5
neg r8
sar r8d, 7
nop
paddusw mm2, mm4
punpckldq mm3, mm6
dec r8d
shl r8b, 0x17
psrad mm3, 0x59
pop r8
cmp word [rsi + rbx*2 - 2], 0x5c
lea rax, [rbx - 1]
jne 0x29a0c64e3
movabs rax, 0x35005f00710067
mov word [rsp + 0x34], 0
mov qword [rsp + 0x2c], rax
push rax
mov rax, 3
cmp r12d, 0x61
jne 0x29a0c63c6
push r14
nop
pop r14
jmp 0x29a0c63cc
push r10
emms
pop r10
push r11
not r11b
pop r11
dec rax
jne 0x29a0c63b5
pop rax
movabs rax, 0x650073004c0044
mov word [rsp + 0x3e], 0
mov qword [rsp + 0x36], rax
push r10
mov r10, 3
push r14
push r13
pop r13
pop r14
dec r10
jne 0x29a0c63f8
pop r10
lea rsi, [rsp + 0x36]
lea rcx, [rsp + 0x2c]
mov rdx, rsi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x29a0c6451
push rdx
rol edx, 0x15
not rdx
dec rdx
dec rdx
nop
push rcx
pcmpgtw mm1, mm6
psllq mm6, 0x20
movss xmm13, xmm4
emms
adc ecx, edx
pop rcx
movups xmm12, xmm10
ror dl, 9
por mm6, mm0
emms
paddd mm3, mm0
emms
pop rdx
jmp 0x29a0c64ad
mov rax, rsi
lea rdx, [rsp + 0x3e]
push rcx
sub ecx, 0x12
emms
nop
psrad mm4, 0x61
emms
rcpss xmm5, xmm13
emms
por mm3, mm2
ucomiss xmm5, xmm0
neg cl
not ecx
subps xmm2, xmm4
pop rcx
xor word [rax], 0x85
push rdx
punpcklwd mm0, mm3
maxps xmm1, xmm5
nop
paddusb mm5, mm2
ror dx, 0x15
inc edx
not rdx
ror dx, 0xb
pslld mm2, 0x19
emms
pcmpgtd mm7, mm6
emms
pop rdx
add rax, 2
cmp rax, rdx
jne 0x29a0c6459
mov eax, ebx
push r11
shl r11b, 0xf
dec r11d
psrlw mm3, 0x4e
push r13
addss xmm11, xmm8
emms
push rcx
nop
pop rcx
psrld mm2, 0x41
maxps xmm14, xmm12
pop r13
rcpps xmm15, xmm0
emms
rol r11, 0xa
pop r11
jmp 0x29a0c66db
mov rbx, rax
jmp 0x29a0c6263
mov dword [rsp + 0x36], 0x6e6a34
push r14
maxss xmm0, xmm6
push r13
nop
push r15
nop
push rcx
subps xmm13, xmm0
push r11
addss xmm9, xmm15
push rax
test r15b, r13b
pop rax
not r13b
pop r11
movlhps xmm0, xmm11
pop rcx
nop
pop r15
rcpps xmm0, xmm1
pop r13
neg r14w
pop r14
mov word [rsp + 0x2c], 0x757e
mov byte [rsp + 0x2e], 0
push r12
emms
push r8
pslld mm1, 0xc
push r14
subps xmm5, xmm6
push rdx
sub r8d, 0x17
push rax
dec r8
push rcx
subss xmm11, xmm1
push rbx
shl r12, 0x15
pop rbx
andps xmm6, xmm13
pop rcx
nop
pop rax
psrlq mm0, 0x13
pop rdx
por mm6, mm3
pop r14
movlhps xmm8, xmm10
pop r8
emms
pop r12
lea rbx, [rsp + 0x2c]
lea rsi, [rsp + 0x36]
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x29a0c662a
mov rax, rsi
lea rdx, [rsp + 0x39]
push rdx
psllq mm1, 0xf
pcmpeqw mm6, mm3
punpckhbw mm3, mm6
push r8
psadbw mm6, mm2
neg r8b
rcr r8, 0x11
push r12
emms
not rdx
push rcx
emms
cmp r8, r12
pop rcx
shl r8b, 9
pand mm4, mm7
nop
pop r12
movaps xmm14, xmm13
inc rdx
pop r8
dec edx
pslld mm5, 0x6a
pop rdx
xor byte [rax], 0x37
push rdx
paddsb mm3, mm5
ror rdx, 0xf
push r8
psllq mm1, 0x2f
emms
push r15
psllq mm6, 0x61
rcpss xmm4, xmm15
push rcx
sar r15d, 0x11
sbb r8d, ecx
pop rcx
movups xmm11, xmm3
psrlq mm6, 0x2e
pop r15
psrad mm1, 0x30
pmaxub mm3, mm5
pop r8
comiss xmm13, xmm8
rcr dl, 0x15
pop rdx
inc rax
cmp rax, rdx
jne 0x29a0c6598
jmp 0x29a0c66c0
mov rax, rbx
lea rdx, [rsp + 0x2e]
push r13
mov r13, 2
push r8
emms
nop
psrad mm5, 0x30
push r12
orps xmm5, xmm11
andps xmm2, xmm10
not r12d
push r10
paddsb mm4, mm1
emms
xchg r8, r10
pop r10
movlhps xmm6, xmm15
minps xmm4, xmm8
emms
pop r12
dec r8d
psrad mm5, 0x4e
neg r8w
pop r8
dec r13
jne 0x29a0c663b
pop r13
xor byte [rax], 2
push r15
comiss xmm6, xmm11
push r9
pslld mm5, 0x67
push rcx
pcmpeqb mm6, mm5
push rax
rcl eax, 0x16
push rdx
nop
push r11
emms
pop r11
shl r9d, 0xd
pop rdx
pslld mm3, 0x29
pop rax
rol r15, 6
pop rcx
not r9d
pop r9
emms
pop r15
inc rax
cmp rax, rdx
jne 0x29a0c6632
push r12
neg r12b
neg r12w
push r9
pcmpeqb mm4, mm1
pop r9
mov r12d, 5
nop
pop r12
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
ret