Function at 0x14049d4e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
movdqa xmmword [rsp + 0x50], xmm6
mov rdi, rdx
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rsi, qword [rdx + 0xa0]
movzx eax, word [rcx]
rol ax, 8
movzx eax, ax
lea r15, [0x1405d7500]
mov rdx, r15
cmp eax, r8d
jbe 0x14049d530
mov eax, r8d
lea rdx, [rcx + rax*4]
add rdx, 2
mov eax, dword [rsp + 0xc8]
movzx r10d, word [rdx]
movzx r8d, word [rdx + 2]
rol r10w, 8
movzx edx, r10w
rol r8w, 8
test r8w, r8w
je 0x14049d55e
movzx r8d, r8w
add rcx, r8
mov r15, rcx
xor ebx, ebx
cmp edx, eax
jae 0x14049d9f4
mov r14, qword [rsp + 0xc0]
movzx ecx, word [r14]
rol cx, 8
movzx ecx, cx
cmp ecx, r9d
jbe 0x14049d9f4
imul eax, r9d
add edx, eax
movzx eax, word [r14 + rdx*2 + 2]
rol ax, 8
movzx eax, ax
test ax, ax
je 0x14049da16
add r14, rax
test eax, eax
je 0x14049da25
mov ebx, dword [rsp + 0xd0]
mov eax, dword [rsi + 0x54]
mov ecx, dword [rsi + 0x58]
lea r9d, [rax + 1]
cmp ecx, r9d
cmovb r9d, ecx
mov ecx, r9d
sub ecx, ebx
mov r12d, ebx
cmp ecx, 2
jb 0x14049d7ce
or byte [rsi + 0xb4], 0x20
mov rdx, qword [rsi + 0x68]
mov r8d, 0xffffffff
cmp r9d, ebx
je 0x14049d7b3
cmp dword [rsi + 0x1c], 2
jne 0x14049d614
cmp r9d, ebx
jbe 0x14049d7b3
mov eax, r9d
mov rcx, rax
sub rcx, r12
cmp rcx, 9
jae 0x14049d635
mov rcx, r12
jmp 0x14049d78e
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
lea rcx, [r12 + r12*4]
mov ecx, dword [rdx + rcx*4 + 8]
mov r8d, dword [rdx + rax*4 + 8]
cmp ecx, r8d
cmovb r8d, ecx
jmp 0x14049d7b3
mov r10d, ecx
and r10d, 7
mov r8d, 8
cmovne r8, r10
sub rcx, r8
add rcx, r12
add r8, r12
sub r8, rax
lea r10, [r12 + r12*4]
lea r10, [rdx + r10*4]
add r10, 0x94
pcmpeqd xmm1, xmm1
movdqa xmm0, xmmword [0x140599730]
pcmpeqd xmm2, xmm2
nop word cs:[rax + rax]
movd xmm3, dword [r10 - 0x50]
movd xmm4, dword [r10 - 0x64]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x78]
movd xmm5, dword [r10 - 0x8c]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm4
movd xmm3, dword [r10]
movd xmm4, dword [r10 - 0x14]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x28]
movd xmm6, dword [r10 - 0x3c]
punpckldq xmm6, xmm3
punpcklqdq xmm6, xmm4
movdqa xmm3, xmm1
movdqa xmm4, xmm5
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm4, xmm1
pand xmm3, xmm4
pandn xmm4, xmm5
movdqa xmm1, xmm4
por xmm1, xmm3
movdqa xmm3, xmm2
movdqa xmm4, xmm6
pxor xmm4, xmm0
pxor xmm2, xmm0
pcmpgtd xmm4, xmm2
pand xmm3, xmm4
pandn xmm4, xmm6
movdqa xmm2, xmm4
por xmm2, xmm3
add r10, 0xa0
add r8, 8
jne 0x14049d680
movdqa xmm3, xmm1
pxor xmm3, xmm0
movdqa xmm4, xmm2
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
pand xmm1, xmm4
pandn xmm4, xmm2
por xmm4, xmm1
pshufd xmm1, xmm4, 0xee
movdqa xmm2, xmm4
pxor xmm2, xmm0
movdqa xmm3, xmm1
pxor xmm3, xmm0
pcmpgtd xmm3, xmm2
pand xmm4, xmm3
pandn xmm3, xmm1
por xmm3, xmm4
pshufd xmm1, xmm3, 0x55
movdqa xmm2, xmm3
pxor xmm2, xmm0
pxor xmm0, xmm1
pcmpgtd xmm0, xmm2
pand xmm3, xmm0
pandn xmm0, xmm1
por xmm0, xmm3
movd r8d, xmm0
sub rax, rcx
lea rcx, [rcx + rcx*4]
lea rcx, [rdx + rcx*4]
add rcx, 8
nop dword [rax]
mov r10d, dword [rcx]
cmp r8d, r10d
cmovae r8d, r10d
add rcx, 0x14
dec rax
jne 0x14049d7a0
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x28], 3
mov rcx, rsi
mov r8d, ebx
call fcn.14034bed0
mov eax, dword [rsi + 0x54]
mov rcx, qword [rsi + 0x68]
mov eax, eax
lea rax, [rax + rax*4]
mov r8d, dword [rcx + rax*4]
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x44], 0
movzx eax, word [r15]
rol ax, 8
cmp ax, 3
je 0x14049d84a
movzx eax, ax
cmp eax, 2
je 0x14049d866
cmp eax, 1
jne 0x14049d880
movzx eax, word [r15 + 2]
rol ax, 8
cwde
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov rax, qword [rdi + 0x90]
mulss xmm0, dword [rax + 0x4c]
movss dword [rsp + 0x44], xmm0
movzx ecx, word [r15 + 4]
rol cx, 8
movsx ecx, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mulss xmm0, dword [rax + 0x50]
movss dword [rsp + 0x40], xmm0
jmp 0x14049d880
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x44]
mov rcx, r15
mov rdx, rdi
call fcn.14049d110
jmp 0x14049d880
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x44]
mov rcx, r15
mov rdx, rdi
call fcn.14049cfc0
mov rax, qword [rsi + 0x68]
lea rcx, [r12 + r12*4]
mov r8d, dword [rax + rcx*4]
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
movzx eax, word [r14]
rol ax, 8
cmp ax, 3
je 0x14049d8fa
movzx eax, ax
cmp eax, 2
je 0x14049d916
cmp eax, 1
jne 0x14049d930
movzx eax, word [r14 + 2]
rol ax, 8
cwde
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov rax, qword [rdi + 0x90]
mulss xmm0, dword [rax + 0x4c]
movss dword [rsp + 0x3c], xmm0
movzx ecx, word [r14 + 4]
rol cx, 8
movsx ecx, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mulss xmm0, dword [rax + 0x50]
movss dword [rsp + 0x38], xmm0
jmp 0x14049d930
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x3c]
mov rcx, r14
mov rdx, rdi
call fcn.14049d110
jmp 0x14049d930
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x3c]
mov rcx, r14
mov rdx, rdi
call fcn.14049cfc0
mov rcx, qword [rdi + 0xa0]
cmp qword [rcx + 0xc0], 0
je 0x14049d95c
mov r9d, dword [rcx + 0x54]
mov rdx, qword [rdi + 0x90]
mov dword [rsp + 0x20], ebx
lea r8, str.attaching_mark_glyph_at__u_to_glyph_at__u
call fcn.140420f90
mov r14, qword [rsi + 0x78]
mov eax, dword [rsi + 0x54]
lea r15, [rax + rax*4]
movss xmm0, dword [rsp + 0x3c]
subss xmm0, dword [rsp + 0x44]
movss xmm6, dword [0x14059b040]
addss xmm0, xmm6
call fcn.14056fa9c
cvttss2si eax, xmm0
mov dword [r14 + r15*4 + 8], eax
movss xmm0, dword [rsp + 0x38]
subss xmm0, dword [rsp + 0x40]
addss xmm0, xmm6
call fcn.14056fa9c
cvttss2si eax, xmm0
mov dword [r14 + r15*4 + 0xc], eax
mov byte [r14 + r15*4 + 0x12], 1
mov eax, ebx
sub eax, dword [rsi + 0x54]
mov word [r14 + r15*4 + 0x10], ax
or byte [rsi + 0xb4], 8
mov rcx, qword [rdi + 0xa0]
cmp qword [rcx + 0xc0], 0
je 0x14049d9ef
mov r9d, dword [rcx + 0x54]
mov rdx, qword [rdi + 0x90]
mov dword [rsp + 0x20], ebx
lea r8, str.attached_mark_glyph_at__u_to_glyph_at__u
call fcn.140420f90
inc dword [rsi + 0x54]
mov bl, 1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1405602f0
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea r14, [0x1405d7500]
test eax, eax
jne 0x14049d5ab
xor ebx, ebx
jmp 0x14049d9f4