Function at 0x29a0b1661
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
movabs rax, 0x35005f00710067
mov qword [rsp + 0x40], rax
mov word [rsp + 0x48], 0
push rax
mov rax, 3
cmp r12d, 0x61
jne 0x29a0b1698
push r14
nop
pop r14
jmp 0x29a0b169e
push r10
emms
pop r10
push r11
not r11b
pop r11
dec rax
jne 0x29a0b1687
pop rax
movabs rax, 0x650073004c0044
mov word [rsp + 0x58], 0
mov qword [rsp + 0x50], rax
push r10
mov r10, 3
push r14
push r13
pop r13
pop r14
dec r10
jne 0x29a0b16ca
pop r10
lea rdi, [rsp + 0x50]
lea rbp, [rsp + 0x40]
mov rdx, rdi
mov rcx, rbp
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x29a0b1726
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 0x29a0b1782
mov rax, rdi
lea rdx, [rsp + 0x58]
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 0x29a0b172e
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
cmp r12d, ebx
jne 0x29a0b17c5
push r8
paddsb mm6, mm0
pop r8
jmp 0x29a0b17cd
push r13
sar r13b, 0xd
pop r13
push r10
inc r10
pop r10
push r13
emms
push r12
not r13w
push r8
not r13b
push rbx
shl r12w, 1
push r15
nop
push r14
pcmpgtb mm6, mm4
push r9
psraw mm2, 0x41
pop r9
not r15
pop r14
nop
pop r15
dec r8d
pop rbx
pcmpgtw mm5, mm3
pop r8
shl r13, 0x15
pop r12
rcpss xmm2, xmm8
pop r13
push r14
mov r14, 1
push r15
push r13
pop r13
pop r15
dec r14
jne 0x29a0b181f
pop r14
call fcn.29a0c375e
cmp r12, 0x3f
jne 0x29a0b1847
push r10
nop
pop r10
jmp 0x29a0b1850
push r9
rol r9w, 3
pop r9
push r11
pslld mm5, 0xa
pop r11
call fcn.29a0c462b
cmp r12w, r9w
jne 0x29a0b18d4
push r12
pand mm1, mm4
push rbx
psrad mm4, 9
pop rbx
psubw mm3, mm2
pop r12
jmp 0x29a0b1929
cmp r12w, 0x22
jne 0x29a0b1904
push rax
rcr ax, 0xf
push r13
psrlq mm7, 0x15
nop
pop r13
movss xmm1, xmm11
pop rax
jmp 0x29a0b1917
push r10
rol r10b, 4
push rcx
emms
punpcklwd mm5, mm0
pop rcx
psrad mm0, 0x5e
pop r10
push r12
dec r12d
push r14
nop
nop
pop r14
rcpss xmm13, xmm8
pop r12
push r10
sub r10b, 0xc
push r15
psrlq mm1, 7
psrlq mm2, 0x5e
pop r15
rcr r10w, 3
pop r10
call fcn.29a0c49dc
push rdx
inc edx
push r13
emms
push rax
rcl al, 0xd
pop rax
nop
pop r13
mulss xmm7, xmm14
pop rdx
push r13
pandn mm0, mm1
push rdx
psrlw mm0, 0xf
push rax
pcmpgtb mm3, mm0
push r12
neg r13
pop r12
movups xmm14, xmm9
pop rax
psllq mm6, 2
pop rdx
ror r13, 8
pop r13
call fcn.29a0c34e8
rdtsc
push r10
psrad mm4, 0x67
psraw mm0, 9
packsswb mm6, mm2
pslld mm0, 0x4c
psrlw mm3, 0x1d
nop
sub r10, 2
pmaxsw mm6, mm0
pmullw mm5, mm0
nop
nop
pslld mm5, 0x20
pop r10
shl rdx, 0x20
mov eax, eax
mov rbx, rdx
or rbx, rax
cmp r12, 0x52
jne 0x29a0b19e6
push rcx
nop
push r15
not ecx
paddsw mm2, mm6
pop r15
psrad mm1, 0x53
pop rcx
jmp 0x29a0b19f9
push r12
paddusb mm7, mm5
push rbx
neg bl
psrlw mm3, 3
pop rbx
shl r12b, 0xd
pop r12
push r10
rcr r10b, 6
push r9
inc r9
neg r10w
pop r9
shl r10b, 7
pop r10
mov edx, 4
mov ecx, 3
call sub.msvcrt.dll_calloc
mov rcx, rax
push r15
maxps xmm9, xmm2
nop
neg r15
push rax
sbb rax, 6
movlhps xmm7, xmm5
psrad mm3, 0x19
push r14
not r15b
add r14d, eax
push r10
nop
emms
pop r10
sar ax, 1
sar rax, 0x14
neg r15
pop r14
pcmpeqd mm6, mm3
sub al, r15b
pop rax
emms
psrlq mm2, 0x68
pop r15
mov edx, 0x6c
call sub.msvcrt.dll_realloc
mov rcx, rax
push r12
pslld mm1, 0x5d
push r10
nop
push rax
not ax
push r13
nop
push r11
dec r11
push r8
xchg r11b, r12b
pop r8
psraw mm0, 0x22
pop r11
and r12d, eax
pop r13
emms
pop rax
nop
pop r10
pcmpeqw mm2, mm6
pop r12
call sub.msvcrt.dll_free
push r8
paddd mm1, mm5
emms
push r10
maxss xmm8, xmm12
rcl r8d, 0x10
push r11
packssdw mm7, mm2
sbb r8w, r11w
push r12
psrad mm6, 0x36
and r11b, r12b
pop r12
sbb r11d, r8d
sbb r11w, 5
pop r11
psrad mm0, 0x28
rcr r8b, 3
pop r10
pslld mm4, 0x18
dec r8d
pop r8
push r9
sbb r9b, 9
push rbx
emms
push r11
emms
pop r11
mulss xmm9, xmm6
pop rbx
sar r9b, 6
pop r9
call fcn.29a0c43b0
mov qword [rsp + 0x50], 0xffffffffffffd8f0
push r13
pandn mm0, mm1
push rdx
psrlw mm0, 0xf
push rax
pcmpgtb mm3, mm0
push r12
neg r13
pop r12
movups xmm14, xmm9
pop rax
psllq mm6, 2
pop rdx
ror r13, 8
pop r13
call fcn.29a0c34e8
mov ecx, 0x14
mov rax, rbx
xor edx, edx
div rcx
imul ebx, edx, 0x3e8
lea esi, [rbx + 0x2710]
push r8
psrlw mm2, 0x61
nop
neg r8d
paddd mm7, mm1
push rcx
emms
paddusb mm2, mm3
movlhps xmm12, xmm15
push r13
sbb cx, r8w
neg cl
push r9
inc rcx
pop r9
nop
nop
pop r13
punpckhbw mm2, mm6
emms
rcl rcx, 4
pop rcx
psrlq mm4, 0x30
inc r8d
movss xmm11, xmm6
movups xmm10, xmm2
pop r8
mov ecx, 8
call sub.msvcrt.dll_malloc
mov rcx, rax
push rdx
mulss xmm5, xmm14
nop
movss xmm14, xmm6
push rcx
psrld mm5, 0x50
emms
push r12
emms
pop r12
emms
sbb rcx, 0x12
pop rcx
sbb edx, 8
movaps xmm6, xmm1
emms
pop rdx
mov edx, 0x30
call sub.msvcrt.dll_realloc
mov rcx, rax
xor eax, eax
push r8
psubsb mm7, mm1
nop
comiss xmm1, xmm4
push r13
inc r8
test r13d, r8d
nop
push r15
movss xmm3, xmm15
rcr r13b, 0x15
push r9
emms
psrld mm0, 0x3e
pop r9
nop
pxor mm0, mm7
pcmpeqd mm2, mm5
pop r15
test r13w, r8w
xorps xmm14, xmm15
pop r13
neg r8
emms
pop r8
xor dword [rcx + rax*4], 0x69
push rbx
psrlw mm0, 0x1a
push r14
cmp bx, r14w
push r10
maxss xmm13, xmm9
push r15
shl r10d, 0x13
push rax
adc ebx, eax
pop rax
movups xmm11, xmm15
pop r15
cmp r10d, r14d
pop r10
not r14w
pop r14
ror ebx, 0x12
pop rbx
test rax, rax
jne 0x29a0b1c65
mov eax, 1
jmp 0x29a0b1be0
call sub.msvcrt.dll_free
cmp r12w, 0x3b
jne 0x29a0b1c82
push r12
ror r12, 4
pop r12
jmp 0x29a0b1c88
push r10
emms
pop r10
push rax
addss xmm15, xmm10
pop rax
imul rsi, qword [rsp + 0x50]
mov qword [rsp + 0x50], rsi
push rdx
mov rdx, 2
push r14
pop r14
dec rdx
jne 0x29a0b1ca2
pop rdx
call fcn.29a0c42ad
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x28]
call fcn.29a0bc065
mov rdx, rdi
xor ecx, ecx
call fcn.29a0c0967
lea rcx, [rsp + 0x38]
mov rdx, rbp
call fcn.29a0bc065
cmp r12d, 0x20
jne 0x29a0b1d40
push r9
psrad mm5, 0x28
push rdx
not dl
psrlw mm2, 0x6a
push rbx
rol dl, 2
dec ebx
adc rdx, rbx
push r13
emms
psraw mm4, 0xb
sub bl, 0xf
shl bl, 5
pop r13
add bl, r9b
pcmpeqb mm7, mm2
minps xmm6, xmm9
pop rbx
emms
mov r9, 5
pop rdx
rcpps xmm15, xmm5
pop r9
jmp 0x29a0b1d61
push r15
sbb r15, 4
push rax
nop
push rcx
nop
push r9
psrlq mm6, 0xa
pop r9
rcl r15d, 0x16
pop rcx
inc rax
pop rax
movss xmm4, xmm6
pop r15
push r8
psraw mm6, 0x43
pslld mm1, 0xb
push rbx
emms
pop rbx
not r8w
emms
pop r8
mov ecx, 8
call sub.msvcrt.dll_malloc
mov rcx, rax
push rdx
shr dl, 0x13
shr edx, 9
push rcx
nop
pop rcx
psraw mm5, 0x17
nop
pop rdx
mov edx, 0x30
call sub.msvcrt.dll_realloc
mov rcx, rax
cmp r12d, 4
jne 0x29a0b1dc0
push r9
psraw mm7, 0x24
push r12
comiss xmm8, xmm6
movhlps xmm5, xmm0
pop r12
sar r9, 0xb
pop r9
jmp 0x29a0b1dd0
push r14
rcpps xmm8, xmm9
push rdx
nop
emms
pop rdx
pminsw mm6, mm2
pop r14
push rax
emms
push r8
pslld mm1, 0x28
movhlps xmm3, xmm5
pop r8
psllq mm3, 0x28
pop rax
call sub.msvcrt.dll_free
push r15
maxps xmm7, xmm15
nop
nop
push r9
movss xmm1, xmm13
nop
psllq mm6, 0x38
push r13
rcpss xmm7, xmm13
not r9b
emms
pop r13
emms
emms
xadd r15b, r9b
pop r9
nop
nop
sar r15b, 0xa
pop r15
imul rax, qword [rsp + 0x38], 0x3e8
cqo
idiv qword [rsp + 0x30]
mov rcx, rax
imul rax, qword [rsp + 0x28], 0x3e8
cqo
idiv qword [rsp + 0x40]
sub ecx, eax
push r14
mov r14, 3
push r11
push rbx
pop rbx
pop r11
dec r14
jne 0x29a0b1e4a
pop r14
add ebx, 0x2328
cmp ebx, ecx
jae 0x29a0b1f48
cmp r12, 0x49
jne 0x29a0b1ed5
push r11
nop
inc r11
psubsb mm7, mm1
push r14
emms
xadd r11w, r14w
push r10
packuswb mm4, mm3
pop r10
psrlq mm7, 4
nop
pop r14
neg r11d
psrad mm5, 0x3a
minps xmm3, xmm8
pop r11
jmp 0x29a0b1f11
push r13
emms
psllq mm7, 1
push r8
psrlq mm3, 0x36
emms
push r15
inc r15d
pslld mm3, 0x5e
push r10
emms
neg r15d
pop r10
not r15d
sub r13, 0x15
pop r15
pcmpgtd mm5, mm4
pslld mm7, 0x65
pop r8
emms
sbb r13, 0x14
pop r13
push rcx
nop
push r8
psubusw mm2, mm7
push rbx
shl cx, 1
push r11
nop
push r9
sub r9d, ecx
push rdx
pandn mm2, mm0
pop rdx
psrlw mm1, 0x43
pop r9
not rbx
pop r11
nop
pop rbx
sar r8w, 0x10
pop r8
pmaxub mm1, mm0
pop rcx
xor eax, eax
jmp 0x29a0b2154
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 0x29a0b1fdf
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 0x29a0b204a
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 0x29a0b20c1
push r15
punpcklbw mm2, mm1
push r8
paddusb mm3, mm6
psrlq mm6, 0x29
pop r8
pxor mm0, mm7
pop r15
jmp 0x29a0b20cf
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 0x29a0b2090
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
mov eax, 1
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret