Function at 0x14002bb60
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x1404716f0]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r15, rcx
lea rcx, [rsp + 0x40]
call fcn.140018b20
mov rbx, qword [rsp + 0x40]
mov rdx, rbx
xor esi, esi
mov r14d, esi
mov r8d, 0x2800
mov r9d, 0x7ff
nop
movzx ecx, word [rdx]
add rdx, 2
lea eax, [r8 + rcx]
cmp ax, r9w
ja 0x14002bbdd
movzx eax, word [rdx]
add rdx, 2
test ax, ax
jmp 0x14002bbe0
test cx, cx
je 0x14002bbe7
inc r14
jmp 0x14002bbc0
lea rcx, [r14 + r14]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
mov qword [rsp + 0x50], rax
xorps xmm7, xmm7
mov dword [rsp + 0x20], 1
mov r9, rax
mov r8d, r14d
mov rdx, rbx
mov rcx, qword [r15 + 0x68]
call qword [sym.imp.GDI32.dll_GetGlyphIndicesW]
mov ecx, 0xffffffff
cmp eax, ecx
je 0x14002bdf4
mov rax, rsi
test r14, r14
je 0x14002bdf4
movabs rdx, 0xcbf29ce484222325
movabs r13, 0x100000001b3
lea rbp, [rax + 1]
cmp rbp, r14
jae 0x14002bc54
movzx ecx, word [rdi + rax*2 + 2]
jmp 0x14002bc59
mov ecx, 0xffffffff
movzx r12d, word [rdi + rax*2]
mov ebx, r12d
shl rbx, 0x20
mov r9d, ecx
or r9, rbx
mov qword [rsp + 0x40], r9
mov rax, rdx
lea rdx, [rsp + 0x40]
mov r8d, 8
nop
movzx ecx, byte [rdx]
xor rax, rcx
imul rax, r13
lea rdx, [rdx + 1]
sub r8, 1
jne 0x14002bc80
mov rsi, qword [r15 + 0xf8]
mov r8, rsi
and r8, rax
mov r11, qword [r15 + 0xe0]
add r8, r8
mov r10, qword [r11 + r8*8]
mov rax, r10
mov rdx, qword [r15 + 0xd0]
nop dword [rax]
cmp r10, rdx
jne 0x14002bcca
mov rcx, rdx
jmp 0x14002bcd2
mov rcx, qword [r11 + r8*8 + 8]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14002bcf1
cmp qword [rax + 0x10], r9
je 0x14002bce2
mov rax, qword [rax]
jmp 0x14002bcc0
cmp rax, rdx
je 0x14002bcf1
movss xmm6, dword [rax + 0x18]
jmp 0x14002bdda
mov eax, 0xffffffff
or rbx, rax
mov qword [rsp + 0x40], rbx
movabs rax, 0xcbf29ce484222325
lea r8, [rsp + 0x40]
mov r9d, 8
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r8]
xor rax, rcx
imul rax, r13
lea r8, [r8 + 1]
sub r9, 1
jne 0x14002bd20
and rsi, rax
add rsi, rsi
mov r8, qword [r11 + rsi*8]
mov rax, r8
cmp r8, rdx
jne 0x14002bd4c
mov rcx, rdx
jmp 0x14002bd54
mov rcx, qword [r11 + rsi*8 + 8]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14002bd64
cmp qword [rax + 0x10], rbx
je 0x14002bd67
mov rax, qword [rax]
jmp 0x14002bd42
mov rax, rdx
cmp rax, rdx
je 0x14002bd73
movss xmm6, dword [rax + 0x18]
jmp 0x14002bdda
xor esi, esi
mov word [rsp + 0x68], si
lea rax, [0x1402c3628]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x58]
mov r8d, 0x82
mov edx, r12d
mov rcx, qword [r15 + 0x68]
call qword [sym.imp.GDI32.dll_GetGlyphOutlineW]
movsx eax, word [rsp + 0x68]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movd xmm0, dword [r15 + 0x70]
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
lea rcx, [r15 + 0xc8]
mov qword [rsp + 0x40], rbx
lea rdx, [rsp + 0x40]
call fcn.14002d410
movss dword [rax], xmm6
addss xmm7, xmm6
mov rax, rbp
cmp rbp, r14
movabs rdx, 0xcbf29ce484222325
jb 0x14002bc44
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movaps xmm0, xmm7
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14010a310
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret