Function at 0x29a0b28d0
Capabilities:
Encode data using xor

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x40
mov qword [rsp + 0x60], rcx
mov rbx, rdx
mov esi, r8d
mov edi, r9d
push r9
mov r9, 2
push r13
push r10
pop r10
pop r13
dec r9
jne 0x29a0b28ee
pop r9
mov ecx, 0x10
call sub.msvcrt.dll_malloc
mov rcx, rax
push r9
psrlw mm4, 0x4f
push r8
pmullw mm1, mm6
push r10
pslld mm7, 0x5c
push rdx
dec r8
push r15
pmaddwd mm2, mm4
pop r15
nop
pop rdx
rcpss xmm9, xmm5
pop r10
emms
pop r8
emms
pop r9
mov edx, 0x70
call sub.msvcrt.dll_realloc
mov rcx, rax
cmp r12d, 0xa
je 0x29a0b2a49
push r9
comiss xmm10, xmm0
packuswb mm2, mm4
psrad mm1, 1
emms
nop
rol r9b, 0xb
emms
pop r9
cmp rdx, 0xd
je 0x29a0b2a5d
push r14
xorps xmm9, xmm5
push r11
shl r11b, 0x13
movaps xmm7, xmm1
pop r11
psrlq mm7, 0x63
pop r14
cmp rax, 4
je 0x29a0b2a8b
push r8
psraw mm7, 0x44
rcpss xmm10, xmm0
nop
nop
push rdx
rcr r8, 0x14
ror dx, 0x10
rol r8d, 0xd
push r9
xor dx, r9w
xchg r9, rdx
push r12
ror r9, 7
pop r12
emms
neg r9w
pop r9
xadd r8d, edx
inc rdx
rcr r8, 0x12
pop rdx
inc r8d
ucomiss xmm5, xmm6
nop
nop
pop r8
cmp r11b, r14b
je 0x29a0b2ab6
push r14
subss xmm3, xmm0
emms
push rbx
xor rbx, r14
pop rbx
pmaxsw mm4, mm2
nop
pop r14
cmp r11d, 0x58
je 0x29a0b2acc
cmp r12d, r13d
jne 0x29a0b2a1a
push r12
mulss xmm10, xmm5
push rbx
emms
emms
pop rbx
pslld mm0, 0x47
pop r12
jmp 0x29a0b2a2d
push r9
emms
push r15
punpckhwd mm5, mm2
xchg r15, r9
pop r15
psubusw mm7, mm5
pop r9
push rax
punpckhwd mm6, mm3
push rdx
nop
ror rdx, 0xb
pop rdx
nop
pop rax
cmp r11b, bl
je 0x29a0b2ae2
jne 0x29a0b2af8
push rbx
psraw mm2, 0xc
push rcx
psubw mm0, mm5
pop rcx
orps xmm11, xmm0
pop rbx
jmp 0x29a0b2af8
push rdx
shr rdx, 9
dec edx
punpckldq mm4, mm6
inc rdx
push r15
movss xmm2, xmm15
emms
nop
sub r15b, 0xe
pop r15
emms
dec rdx
rcpss xmm12, xmm0
psrlq mm5, 0x5c
pop rdx
jmp 0x29a0b2af8
push r9
rol r9d, 0xd
push r15
andps xmm2, xmm14
psllq mm7, 0x59
push r8
or r8b, r15b
pcmpeqb mm2, mm1
pslld mm2, 0x65
pop r8
emms
paddusw mm0, mm3
pop r15
emms
pop r9
jmp 0x29a0b2af8
push r13
mov r13, 2
push r9
pop r9
dec r13
jne 0x29a0b2abf
pop r13
jmp 0x29a0b2af8
push r8
mov r8, 3
push r9
pop r9
dec r8
jne 0x29a0b2ad5
pop r8
jmp 0x29a0b2af8
push rax
mov rax, 2
push r10
push r12
pop r12
pop r10
dec rax
jne 0x29a0b2aea
pop rax
push r14
movhlps xmm14, xmm15
nop
push rdx
nop
pop rdx
psrad mm2, 0x67
maxss xmm1, xmm0
pop r14
call sub.msvcrt.dll_free
push r9
sbb r9b, 0xc
push rdx
movss xmm10, xmm13
nop
pop rdx
subps xmm4, xmm14
pop r9
mov qword [rsp + 0x38], rbx
mov word [rsp + 0x35], 0x2a6a
mov byte [rsp + 0x37], 0
push r15
xorps xmm2, xmm5
minps xmm10, xmm15
push r14
pslld mm0, 0x64
pop r14
mulss xmm6, xmm12
nop
pop r15
lea rbx, [rsp + 0x35]
mov rcx, rbx
call sub.msvcrt.dll_strlen
cmp rax, 2
jne 0x29a0b2bf8
mov rax, rbx
lea rdx, [rsp + 0x37]
push r14
psubusw mm6, mm1
shl r14d, 1
rcl r14w, 5
neg r14
push r13
orps xmm11, xmm4
xadd r14, r13
inc r13d
push rdx
emms
pcmpeqb mm6, mm0
push rbx
cmp r13b, bl
pop rbx
sbb r14w, 0x12
not r13
pop rdx
pmullw mm0, mm7
nop
comiss xmm2, xmm13
pop r13
shl r14b, 0x13
not r14
sar r14d, 6
rcl r14, 5
pop r14
xor byte [rax], 0x19
push r12
inc r12
push r11
ror r12w, 0xb
shl r12d, 0x13
push r8
dec r12d
emms
pslld mm0, 0x64
pop r8
psrld mm3, 0x2a
psrld mm1, 0x46
pop r11
psrad mm7, 0x4e
pop r12
inc rax
cmp rax, rdx
jne 0x29a0b2b6e
jmp 0x29a0b2c2f
push rcx
paddusb mm7, mm3
emms
emms
push r9
not r9w
psrld mm1, 9
psraw mm2, 6
push r15
psrad mm4, 0x22
emms
or r15, rcx
pop r15
emms
psrld mm7, 0x51
inc rcx
pop r9
emms
emms
movhlps xmm6, xmm9
pop rcx
push r15
nop
ror r15, 6
movups xmm1, xmm6
push r11
sbb r11d, 1
emms
ror r15, 0x12
push rax
nop
emms
push rcx
rol r11b, 8
punpckhwd mm5, mm6
pop rcx
shr al, 0x16
not r11
emms
pop rax
not r15b
nop
pop r11
rcl r15w, 9
nop
pop r15
mov dword [rsp + 0x28], edi
lea r9, [rsp + 0x38]
xor r8d, r8d
or rcx, 0xffffffffffffffff
mov dword [rsp + 0x20], esi
lea rdx, [rsp + 0x60]
call fcn.29a0bc71f
mov word [rsp + 0x35], 0x2a6a
mov byte [rsp + 0x37], 0
push r15
xorps xmm2, xmm5
minps xmm10, xmm15
push r14
pslld mm0, 0x64
pop r14
mulss xmm6, xmm12
nop
pop r15
mov rcx, rbx
call sub.msvcrt.dll_strlen
cmp rax, 2
jne 0x29a0b2d50
mov rax, rbx
lea rdx, [rsp + 0x37]
push r14
psubusw mm6, mm1
shl r14d, 1
rcl r14w, 5
neg r14
push r13
orps xmm11, xmm4
xadd r14, r13
inc r13d
push rdx
emms
pcmpeqb mm6, mm0
push rbx
cmp r13b, bl
pop rbx
sbb r14w, 0x12
not r13
pop rdx
pmullw mm0, mm7
nop
comiss xmm2, xmm13
pop r13
shl r14b, 0x13
not r14
sar r14d, 6
rcl r14, 5
pop r14
xor byte [rax], 0x19
push r12
inc r12
push r11
ror r12w, 0xb
shl r12d, 0x13
push r8
dec r12d
emms
pslld mm0, 0x64
pop r8
psrld mm3, 0x2a
psrld mm1, 0x46
pop r11
psrad mm7, 0x4e
pop r12
inc rax
cmp rax, rdx
jne 0x29a0b2cc6
jmp 0x29a0b2d87
push rcx
paddusb mm7, mm3
emms
emms
push r9
not r9w
psrld mm1, 9
psraw mm2, 6
push r15
psrad mm4, 0x22
emms
or r15, rcx
pop r15
emms
psrld mm7, 0x51
inc rcx
pop r9
emms
emms
movhlps xmm6, xmm9
pop rcx
push r15
nop
ror r15, 6
movups xmm1, xmm6
push r11
sbb r11d, 1
emms
ror r15, 0x12
push rax
nop
emms
push rcx
rol r11b, 8
punpckhwd mm5, mm6
pop rcx
shr al, 0x16
not r11
emms
pop rax
not r15b
nop
pop r11
rcl r15w, 9
nop
pop r15
mov rax, qword [rsp + 0x60]
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret