Function at 0x29a0c5cc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov dword [rsp + 0x2c], 0x6e6a34
mov rdi, rcx
mov rbp, rdx
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 + 0x29], 0x757e
mov byte [rsp + 0x2b], 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 + 0x29]
lea rsi, [rsp + 0x2c]
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x29a0c5e0d
mov rax, rsi
lea rdx, [rsp + 0x2f]
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 0x29a0c5d7b
jmp 0x29a0c5ea3
mov rax, rbx
lea rdx, [rsp + 0x2b]
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 0x29a0c5e1e
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 0x29a0c5e15
push r12
neg r12b
neg r12w
push r9
pcmpeqb mm4, mm1
pop r9
mov r12d, 5
nop
pop r12
mov qword [rdi + 8], rbp
test rbp, rbp
je 0x29a0c615d
cmp r12d, 2
jne 0x29a0c5ed5
push rcx
not cl
pop rcx
jmp 0x29a0c5ed9
push rax
not al
pop rax
push rbx
not bl
pop rbx
call fcn.29a0c37db
mov rcx, rbp
call fcn.29a0bf97b
lea ebx, [rax + rax]
push r10
nop
push rdx
sar dx, 0x10
push r13
psrlq mm7, 0x28
pop r13
rcl dx, 9
pop rdx
psllq mm4, 0x2b
pop r10
mov edx, 4
mov ecx, 3
call sub.msvcrt.dll_calloc
mov rcx, rax
cmp r12, 0x19
jne 0x29a0c5f84
push r14
neg r14b
push r13
emms
push rcx
psubsb mm4, mm1
push rax
andnps xmm9, xmm14
pop rax
movaps xmm13, xmm0
pop rcx
psraw mm6, 0x5e
pop r13
paddsb mm7, mm4
pop r14
jmp 0x29a0c5fef
push rdx
emms
psrlq mm7, 0x61
inc rdx
emms
nop
push r10
emms
subss xmm2, xmm1
nop
adc edx, r10d
push rcx
not ecx
psrlw mm7, 5
emms
push r12
emms
ror rcx, 8
push r8
movups xmm3, xmm8
pop r8
xadd r10w, dx
rcl r12d, 0x12
pop r12
psrlw mm1, 0x49
psubsb mm0, mm1
sar ecx, 0x15
pop rcx
not dx
xadd dl, r10b
psrld mm4, 0x69
psrad mm7, 0x4f
pop r10
psrlw mm1, 0x67
emms
pslld mm7, 0x24
pslld mm6, 0x13
pxor mm7, mm4
pop rdx
push r12
pcmpeqb mm7, mm6
inc r12
psubusw mm1, mm0
psrlq mm2, 0x4b
movups xmm13, xmm1
push rdx
nop
pmaddwd mm4, mm6
not rdx
psraw mm6, 0xe
psraw mm1, 0x43
pop rdx
dec r12d
neg r12b
neg r12w
nop
inc r12d
pcmpeqb mm3, mm6
pop r12
mov edx, 0x6c
call sub.msvcrt.dll_realloc
mov rcx, rax
xor eax, eax
cmp r12w, 5
jne 0x29a0c6066
push r15
punpcklbw mm2, mm1
push r8
paddusb mm3, mm6
psrlq mm6, 0x29
pop r8
pxor mm0, mm7
pop r15
jmp 0x29a0c6074
push rax
por mm2, mm1
push r14
nop
nop
pop r14
neg rax
pop rax
push r10
psubusw mm5, mm0
push rcx
nop
xadd cl, r10b
pop rcx
neg r10d
pop r10
xor dword [rcx + rax*4], 0x16
push rdx
psrlq mm4, 0x57
pmulhuw mm2, mm1
emms
nop
dec rdx
pmaxsw mm6, mm1
sbb rdx, 0xc
pop rdx
inc rax
cmp rax, 3
jne 0x29a0c6035
call sub.msvcrt.dll_free
push r14
mov r14, 0xa
shl r14w, 0x14
por mm3, mm2
sar r14d, 0xd
push rbx
nop
sar bl, 0xc
nop
push r9
rcl r9b, 0x14
nop
push r13
nop
pop r13
nop
addps xmm9, xmm11
pop r9
shl r14b, 7
rcl bl, 2
or bx, r14w
pop rbx
mulss xmm7, xmm5
nop
nop
sar r14w, 0xf
pop r14
push rbx
ror bx, 0xb
push r15
emms
push r14
rcr r14b, 6
pop r14
packssdw mm2, mm4
pop r15
nop
pop rbx
call fcn.29a0c43cf
mov eax, 0xfffc
cmp ebx, eax
cmova ebx, eax
mov word [rdi], bx
push r8
psllq mm2, 0x3b
pcmpeqd mm6, mm4
push rbx
neg r8b
pop rbx
dec r8d
psrlw mm0, 0x3c
pop r8
mov eax, dword [rdi]
add eax, 2
mov word [rdi + 2], ax
push rbx
ror bx, 0xb
push r15
emms
push r14
rcr r14b, 6
pop r14
packssdw mm2, mm4
pop r15
nop
pop rbx
call fcn.29a0c43cf
jmp 0x29a0c6161
xor eax, eax
mov dword [rdi], eax
push r15
emms
push r9
andps xmm0, xmm14
push rax
addps xmm4, xmm2
push r14
dec r15d
push r11
sbb r11, r15
push r12
psrad mm1, 0xa
pop r12
sub al, 0x11
pop r11
pmulhuw mm2, mm7
pop r14
shr r9d, 0xb
pop rax
pmaxsw mm2, mm3
pop r9
emms
pop r15
mov ecx, 0x14
call sub.msvcrt.dll_malloc
mov rcx, rax
push r11
emms
push r14
subss xmm2, xmm14
push r13
psrld mm3, 0x2c
pop r13
psrlq mm4, 0x24
pop r14
psrlw mm0, 7
pop r11
mov edx, 0xb4
call sub.msvcrt.dll_realloc
mov rcx, rax
push r9
not r9d
emms
paddusb mm7, mm2
neg r9w
subps xmm12, xmm5
psrad mm5, 0x68
rcl r9w, 0xa
emms
shl r9b, 0x15
nop
pslld mm5, 0x65
packsswb mm1, mm2
pop r9
call sub.msvcrt.dll_free
push rax
mov rax, 0xd
push rcx
rcpps xmm13, xmm14
neg cl
push rdx
nop
mulss xmm4, xmm5
psraw mm0, 0x2f
pop rdx
addss xmm7, xmm13
pslld mm7, 0x10
pop rcx
mulps xmm3, xmm4
pop rax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret