Function at 0x1d8c59465
Capabilities:
Encode data using xor

Disassembly:
push r12
psrld mm6, 0x42
push rbx
cmp r12w, bx
push r11
nop
pop r11
nop
pop rbx
emms
pop r12
cmp r15b, dl
jne 0x1d8c3f1f2
push rax
psrlq mm1, 0x31
pop rax
jmp 0x1d8c3f1f6
push rdx
emms
pop rdx
push r11
sar r11, 0x14
pop r11
push rdx
psllq mm1, 0x3c
push r10
ucomiss xmm6, xmm15
sub r10, rdx
push rbx
and dl, r10b
punpcklwd mm2, mm1
xor rdx, rbx
push r13
emms
nop
psllq mm2, 0x18
comiss xmm10, xmm3
push r11
nop
dec ebx
xorps xmm6, xmm9
emms
neg edx
pop r11
ucomiss xmm9, xmm2
adc rbx, r13
emms
pmaxub mm3, mm4
pop r13
psrld mm5, 0x1a
nop
add r10, rbx
pop rbx
psrld mm6, 0x22
pmaddwd mm5, mm3
pop r10
pmaxsw mm1, mm3
pop rdx
xor r8d, r8d
mov eax, 0x5bc6c000
cmp edx, r8d
jle 0x1d8c3f2f3
push rbx
dec ebx
push r10
emms
push r15
psubw mm5, mm1
push r13
cmp r10d, r13d
pop r13
neg r10d
pop r15
pslld mm2, 0x2e
pop r10
nop
pop rbx
movzx r10d, word [rcx + r8*2]
push r14
emms
emms
inc r14d
push r11
pcmpeqd mm0, mm1
psllq mm5, 0x20
push r8
ror r8b, 0x17
pop r8
punpcklwd mm6, mm2
pslld mm2, 0x23
pop r11
xorps xmm9, xmm3
psubsb mm7, mm4
emms
pop r14
mov r9d, eax
ror r9d, 8
add r9d, r10d
xor eax, r9d
push r13
maxps xmm3, xmm7
push rbx
psrad mm0, 0x12
push r9
sub r9, 0x16
push r14
emms
pop r14
and r13b, bl
pop r9
punpcklbw mm7, mm0
pop rbx
shl r13, 1
pop r13
inc r8
jmp 0x1d8c3f25e
push r12
nop
inc r12d
nop
ucomiss xmm1, xmm7
push r11
test r11d, r12d
emms
packuswb mm5, mm4
push rcx
dec r12d
neg cx
push rbx
inc r12
pop rbx
emms
pslld mm0, 8
pop rcx
nop
nop
xchg r11b, r12b
pop r11
emms
nop
pmaxub mm4, mm1
shr r12d, 0x13
pop r12
ret
push rdi
push rsi
push rbx
sub rsp, 0x40
mov word [rsp + 0x2c], 0x7d4b
mov edi, ecx
mov byte [rsp + 0x2e], 0
cmp r15, 0x34
jne 0x1d8c59491
push r13
ror r13, 1
pop r13
jmp 0x1d8c59499
push r11
pslld mm1, 0x31
pop r11
push r10
sbb r10w, 6
pop r10
mov word [rsp + 0x34], 0x566d
mov byte [rsp + 0x36], 0
push rax
nop
push r15
xadd ax, r15w
push r9
minps xmm10, xmm5
push r14
nop
push rbx
sbb r14d, 0x14
pop rbx
pmaxsw mm5, mm2
pop r14
emms
pop r9
not r15w
pop r15
addss xmm10, xmm5
pop rax
lea rsi, [rsp + 0x34]
lea rbx, [rsp + 0x2c]
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x1d8c5953f
mov rax, rbx
lea rdx, [rsp + 0x2e]
push r10
mulss xmm14, xmm8
push rdx
sub r10, rdx
mov rdx, r10
push r15
psrlq mm0, 0x50
pcmpgtb mm7, mm3
emms
pop r15
nop
emms
pop rdx
punpcklwd mm0, mm1
pop r10
xor byte [rax], 8
push r11
mov r11, 1
push rcx
pop rcx
dec r11
jne 0x1d8c5952c
pop r11
inc rax
cmp rax, rdx
jne 0x1d8c594fc
jmp 0x1d8c595a8
mov rax, rsi
lea rdx, [rsp + 0x36]
push rax
nop
not al
shr ax, 4
nop
movups xmm9, xmm14
ror ax, 7
psrad mm1, 0x38
pop rax
xor byte [rax], 0x77
push r10
addss xmm12, xmm9
pcmpgtd mm5, mm1
punpckldq mm0, mm1
push rbx
not r10w
emms
emms
push rcx
ucomiss xmm7, xmm8
psrlw mm5, 0x52
push r13
emms
movups xmm4, xmm7
pop r13
shl bl, 8
mulss xmm7, xmm5
addss xmm12, xmm15
pop rcx
xchg r10b, bl
nop
pop rbx
pand mm5, mm7
nop
pop r10
inc rax
cmp rax, rdx
jne 0x1d8c59547
push r14
movss xmm13, xmm9
push r8
nop
emms
push r9
mov r14d, 0x16
paddsw mm0, mm3
emms
push r12
emms
emms
movss xmm11, xmm7
mov r14, r8
push r13
pmulhuw mm5, mm0
sub r9w, r14w
orps xmm10, xmm5
subss xmm15, xmm9
paddusb mm0, mm3
pop r13
subps xmm9, xmm4
nop
emms
dec r12
pop r12
emms
dec r8
sbb r8d, 5
pop r9
sub r8, r14
rcl r8w, 7
pop r8
emms
pop r14
movabs rax, 0x61003f00610041
mov dword [rsp + 0x3c], 0x6a
mov qword [rsp + 0x34], rax
push r9
mov r9, 1
push r11
push rbx
pop rbx
pop r11
dec r9
jne 0x1d8c5962b
pop r9
movabs rax, 0x3700770030
mov qword [rsp + 0x2c], rax
push r8
mov r8, 2
push rax
push r9
pop r9
pop rax
dec r8
jne 0x1d8c59650
pop r8
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x1d8c59721
mov rax, rsi
lea rdx, [rsp + 0x3e]
push r9
nop
emms
rcr r9b, 0x16
movups xmm10, xmm11
ror r9b, 0x15
push rcx
nop
sar rcx, 4
rcpss xmm10, xmm0
punpckhwd mm2, mm0
push r8
nop
paddsw mm3, mm7
dec ecx
push r12
dec r12
xor r9d, ecx
push r15
emms
pop r15
rcl r12, 7
mov r8d, r9d
pop r12
nop
emms
psrad mm2, 0x2b
pop r8
dec r9d
inc ecx
nop
psrld mm6, 6
pop rcx
nop
emms
punpcklwd mm6, mm2
andps xmm6, xmm9
emms
pop r9
xor word [rax], 0x43
push r14
mov r14b, 0x10
push r15
movaps xmm3, xmm6
push r12
pcmpgtw mm6, mm5
push r13
nop
push rax
paddb mm6, mm2
push r10
paddw mm3, mm5
pop r10
rcr r14, 0x14
pop rax
xor r14, r12
pop r13
pslld mm4, 0x42
pop r12
nop
pop r15
rol r14, 7
pop r14
add rax, 2
cmp rax, rdx
jne 0x1d8c59678
jmp 0x1d8c59754
mov rax, rbx
lea rdx, [rsp + 0x32]
push r14
andps xmm4, xmm7
push r8
emms
pop r8
nop
pop r14
xor word [rax], 6
push rax
mov rax, 2
push rbx
pop rbx
dec rax
jne 0x1d8c59743
pop rax
add rax, 2
cmp rax, rdx
jne 0x1d8c59729
push r10
maxss xmm10, xmm11
push r12
not r10b
push r15
movaps xmm14, xmm10
push r11
emms
push r9
sbb r10w, 0x14
push r14
emms
push rbx
por mm1, mm3
pop rbx
emms
pop r14
rcpps xmm8, xmm7
pop r9
maxss xmm1, xmm5
pop r11
maxps xmm15, xmm5
pop r15
and r12, r10
pop r12
nop
pop r10
mov rax, qword gs:[0x60]
cmp r15, 0x42
jne 0x1d8c597d4
push r11
emms
push r14
pslld mm3, 0x34
inc r14d
pop r14
sar r11, 0xa
pop r11
jmp 0x1d8c597e3
push r9
emms
push r10
nop
nop
pop r10
neg r9
pop r9
push rcx
sub rcx, 3
push r13
or cl, r13b
movss xmm5, xmm4
pop r13
nop
pop rcx
mov rax, qword [rax + 0x20]
movzx edx, word [rax + 0x60]
mov rcx, qword [rax + 0x68]
call fcn.1d8c590c5
mov edx, edi
mov rcx, rax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x1d8c3f1ca