Function at 0x399979c0d
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rsi, rcx
push r11
pcmpgtb mm6, mm5
nop
push r15
emms
psrld mm0, 0x16
push r12
paddsb mm4, mm1
not r12
push r9
nop
emms
pop r9
psrlq mm0, 0x14
movlhps xmm7, xmm5
pop r12
pcmpgtd mm0, mm1
emms
pop r15
pslld mm6, 0x2a
psraw mm2, 0x32
pop r11
movabs rax, 0x7c0052007d0033
mov dword [rsp + 0x58], 0xb18b68aa
mov word [rsp + 0x5c], 0x7537
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], 0
push r13
mov r13, 3
push r8
pop r8
dec r13
jne 0x399979c80
pop r13
lea rbp, [rsp + 0x70]
mov rcx, rbp
call sub.msvcrt.dll_wcslen
cmp rax, 5
jne 0x399979cb6
push r8
mov r8, 1
push r11
push rdx
pop rdx
pop r11
dec r8
jne 0x399979ca7
pop r8
jmp 0x399979d1f
mov rax, rbp
lea rdx, [rsp + 0x78]
cmp rbx, r8
jne 0x399979cd4
push r9
psrlq mm6, 0x51
pop r9
jmp 0x399979cd7
push rax
nop
pop rax
push r10
psraw mm2, 0x53
pop r10
xor word [rax], 0x42
push rcx
emms
sar rcx, 8
emms
push r8
emms
punpckhwd mm7, mm3
nop
push rdx
ror ecx, 0x11
psrlq mm2, 0x5c
and r8, rcx
pop rdx
psrlw mm0, 0x16
not cl
pslld mm4, 0x27
pop r8
nop
rcr rcx, 4
psllq mm6, 0x27
pop rcx
add rax, 2
cmp rax, rdx
jne 0x399979cbe
push rbx
inc rbx
push r13
psrad mm0, 0x42
push r15
mov r15b, bl
push rcx
sar bl, 6
pop rcx
nop
pop r15
not bl
pop r13
psrad mm1, 0x34
pop rbx
mov dword [rsp + 0x5e], 0xdfa51fd2
mov word [rsp + 0x62], 0x755a
push r10
emms
pop r10
xor eax, eax
lea r8, [rsp + 0x5e]
push rax
mov ax, 0x13
push r15
emms
pop r15
rol al, 1
pop rax
mov dl, byte [rsp + rax + 0x58]
xor dl, byte [rax + r8]
lea rcx, [rsp + 0x58]
mov byte [rsp + rax + 0x58], dl
inc rax
cmp rax, 6
jne 0x399979d5b
push r14
nop
psrlq mm2, 3
push r11
nop
psrad mm7, 0x58
push r13
emms
comiss xmm9, xmm10
push r9
inc r14
psrad mm2, 0x18
push rdx
maxss xmm4, xmm13
emms
pop rdx
rcr r11b, 9
emms
pop r9
not r13d
emms
pop r13
movlhps xmm0, xmm3
shr r14, 9
pop r11
emms
neg r14d
pop r14
push r12
pslld mm4, 0x5d
push r9
shl r9, 0xe
pop r9
paddd mm6, mm0
pop r12
lea rdi, [rsp + 0x64]
mov rdx, rcx
mov r8d, 6
mov rcx, rdi
call fcn.39996dbf8
push r13
psllq mm0, 0x32
push rbx
nop
neg r13b
push r12
emms
psrld mm3, 0x35
emms
push r8
psllq mm3, 0x6a
pcmpgtb mm4, mm3
neg r8
nop
pop r8
sar r12w, 2
rcr r12, 4
not r13
pop r12
not r13w
packuswb mm2, mm6
pop rbx
mov r13, 4
pop r13
push rcx
shr rcx, 4
nop
emms
push r15
nop
psraw mm5, 0x1c
pslld mm2, 0x5f
push rdx
add r15b, cl
nop
movlhps xmm12, xmm2
pop rdx
nop
nop
sbb cl, 0xd
pop r15
nop
emms
nop
pop rcx
mov rcx, rdi
call fcn.39997927d
mov rbx, rax
push rdx
comiss xmm13, xmm8
push r12
emms
shl r12, 8
push rbx
nop
rcl r12b, 0xd
punpcklbw mm5, mm3
pop rbx
add r12w, dx
movss xmm7, xmm3
pop r12
emms
pop rdx
test rax, rax
jne 0x39997a002
push rbx
mov rbx, 3
push r15
pcmpgtw mm5, mm2
push rcx
rcpps xmm8, xmm12
push r11
emms
push rax
psrlq mm3, 0x18
push rbx
paddsw mm1, mm2
pop rbx
pcmpgtw mm6, mm7
pop rax
psrlq mm3, 0x17
pop r11
subss xmm13, xmm4
pop rcx
inc r15
pop r15
dec rbx
jne 0x399979e9f
pop rbx
mov edx, 4
mov ecx, 3
call sub.msvcrt.dll_calloc
mov rcx, rax
push r8
paddw mm0, mm3
nop
mov r8w, 0x17
push rdx
xor edx, r8d
psrlw mm4, 0x13
movss xmm15, xmm11
push r13
rcr r13w, 6
pminsw mm7, mm2
push rax
pmulhuw mm2, mm7
emms
pop rax
psrld mm2, 0x4c
psrld mm2, 0x19
neg r8
pop r13
nop
test r8w, dx
pop rdx
emms
ror r8d, 9
pop r8
mov edx, 0x60
call sub.msvcrt.dll_realloc
mov rcx, rax
cmp ebx, edx
jne 0x399979f4e
push r8
nop
push r12
dec r12
pcmpeqd mm5, mm1
pop r12
xorps xmm6, xmm12
pop r8
jmp 0x399979f60
push r15
nop
push r13
nop
shl r13d, 0x10
pop r13
shr r15b, 0x13
pop r15
push rdx
psrad mm7, 0xa
push rax
psrld mm5, 0x66
punpcklwd mm3, mm5
pop rax
inc rdx
pop rdx
call sub.msvcrt.dll_free
push rcx
pand mm1, mm5
push rax
nop
push r12
nop
push r9
minps xmm15, xmm0
push r15
psrlq mm3, 0x13
push r8
rcpss xmm10, xmm2
pop r8
maxss xmm9, xmm2
pop r15
rcl ax, 0x12
pop r9
neg ecx
pop r12
psrlq mm3, 0x21
pop rax
nop
pop rcx
mov rcx, rdi
call fcn.39997927d
mov rbx, rax
push rdx
packuswb mm1, mm2
nop
psraw mm2, 0x51
pcmpgtw mm1, mm3
psrlq mm7, 2
shl dl, 4
por mm3, mm6
paddsb mm6, mm1
mov dx, 0xb
pslld mm5, 0x40
emms
emms
pop rdx
test rax, rax
jne 0x39997a002
push r9
mov r9, 1
push r12
push r13
pop r13
pop r12
dec r9
jne 0x399979fec
pop r9
xor ecx, ecx
call fcn.39996e7a4
push rbx
nop
nop
pslld mm4, 0x32
push r15
emms
emms
neg rbx
push r8
inc r15d
psrad mm5, 0x69
push r12
pcmpgtb mm5, mm3
mov r15b, 0xf
pop r12
nop
emms
psrlq mm1, 0x61
pop r8
nop
nop
pop r15
sub bl, 0xf
nop
pop rbx
call fcn.399979ae0
mov rdi, rax
push r12
pslld mm4, 0x5d
push r9
shl r9, 0xe
pop r9
paddd mm6, mm0
pop r12
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
xor ecx, ecx
call fcn.399967598
mov qword [rsi], rax
push rdx
comiss xmm13, xmm8
push r12
emms
shl r12, 8
push rbx
nop
rcl r12b, 0xd
punpcklbw mm5, mm3
pop rbx
add r12w, dx
movss xmm7, xmm3
pop r12
emms
pop rdx
push r13
shr r13w, 0xc
push r15
psrld mm3, 0xd
push rcx
psubusw mm3, mm2
push r8
emms
push r12
nop
pop r12
comiss xmm5, xmm4
pop r8
test r13, rcx
pop rcx
test r13d, r15d
pop r15
packuswb mm6, mm3
pop r13
push r15
neg r15w
push r13
ror r15d, 0xd
push rdx
pxor mm2, mm7
push r12
psraw mm3, 0x63
pop r12
add r15w, dx
pop rdx
not r13b
pop r13
not r15w
pop r15
push rcx
mov rcx, 2
push r8
emms
push r11
orps xmm4, xmm8
por mm4, mm2
push r10
pcmpgtb mm3, mm0
nop
psubusw mm7, mm0
pop r10
mov r11w, 0xa
emms
pop r11
inc r8
pop r8
dec rcx
jne 0x39997a0ec
pop rcx
call fcn.3999785b5
push r11
pcmpgtb mm6, mm5
nop
push r15
emms
psrld mm0, 0x16
push r12
paddsb mm4, mm1
not r12
push r9
nop
emms
pop r9
psrlq mm0, 0x14
movlhps xmm7, xmm5
pop r12
pcmpgtd mm0, mm1
emms
pop r15
pslld mm6, 0x2a
psraw mm2, 0x32
pop r11
xor eax, eax
mov dword [rsp + 0x30], edi
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x40], rax
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x38], rax
mov rax, qword [rsi]
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x28], rax
call fcn.39996d28e
mov ebp, eax
push r11
orps xmm1, xmm2
push r12
psrlq mm2, 0x4f
pop r12
neg r11d
pop r11
mov rdi, qword [rsp + 0x78]
cmp ebx, r15d
jne 0x39997a1c5
push rcx
nop
push r14
adc rcx, r14
neg cl
pop r14
psrld mm7, 0x41
pop rcx
jmp 0x39997a1d9
push r13
paddd mm7, mm2
push r11
orps xmm8, xmm2
psrld mm4, 0x2d
pop r11
nop
pop r13
push r8
pslld mm2, 0x30
push rdx
pslld mm1, 0x29
inc r8d
pop rdx
nop
pop r8
call fcn.399977bb6
test ebp, ebp
je 0x39997a20d
push r11
orps xmm1, xmm2
push r12
psrlq mm2, 0x4f
pop r12
neg r11d
pop r11
xor ecx, ecx
call fcn.39996e7a4
push r11
orps xmm1, xmm2
push r12
psrlq mm2, 0x4f
pop r12
neg r11d
pop r11
push r11
orps xmm1, xmm2
push r12
psrlq mm2, 0x4f
pop r12
neg r11d
pop r11
and edi, 0xffffffff
mov qword [rsi + 8], rdi
push rax
psrad mm6, 0x22
psllq mm2, 0x3c
shl al, 0xa
push r8
psrad mm0, 0x29
xadd ax, r8w
push r15
dec r8
pop r15
xchg al, r8b
nop
pop r8
sar eax, 0x10
emms
rol eax, 0x12
pop rax
mov rcx, rbx
call fcn.399971c66
nop
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
ret