Function at 0x14002bac0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
movaps xmmword [rsp + 0x120], xmm6
mov rax, qword [0x140425440]
xor rax, rsp
mov qword [rbp + 0x18], rax
movaps xmm6, xmm3
mov r15, r8
mov r12, rdx
mov rsi, rcx
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetKerningPairsW]
mov edi, eax
xor ecx, ecx
call fcn.1400e0818
mov ecx, edi
mov qword [rsp + 0x58], rcx
mov edx, 8
call fcn.1400e9d14
mov rbx, rax
mov qword [rsp + 0x68], rax
mov r8, rax
mov edx, edi
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetKerningPairsW]
mov dword [rsp + 0x70], 0
xor r14d, r14d
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], r14
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400da124
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], r14
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x58], 8
mov dword [rsp + 0x70], 0x3f800000
mov r8, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp - 0x78]
call fcn.1400337e0
nop
test edi, edi
je 0x14002bf5c
add rsi, 0xc8
mov qword [rsp + 0x60], rsi
lea r13, [rbx + 4]
movabs rax, 0xcbf29ce484222325
mov esi, 0xffff
xor ebx, ebx
movabs r9, 0x100000001b3
mov r14d, 0xffffffff
nop word [rax + rax]
movzx edi, word [r13 - 4]
movzx ecx, dil
xor rcx, rax
imul rcx, r9
mov eax, edi
shr rax, 8
xor rcx, rax
imul rcx, r9
mov eax, edi
shr rax, 0x10
xor rcx, rax
imul rcx, r9
mov eax, edi
shr rax, 0x18
xor rcx, rax
imul rcx, r9
mov rdx, qword [r15 + 0x30]
and rdx, rcx
add rdx, rdx
mov rcx, qword [r15 + 0x18]
mov rax, qword [rcx + rdx*8 + 8]
mov r8, qword [r15 + 8]
cmp rax, r8
je 0x14002bc50
mov rcx, qword [rcx + rdx*8]
cmp edi, dword [rax + 0x10]
je 0x14002bc53
nop dword [rax]
cmp rax, rcx
je 0x14002bc50
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x14002bc40
jmp 0x14002bc53
mov rax, rbx
test rax, rax
cmove rax, r8
cmp rax, r8
je 0x14002bc64
mov edi, dword [rax + 0x14]
jmp 0x14002bcd6
mov word [rsp + 0x50], di
mov word [rsp + 0x52], bx
mov word [rsp + 0x40], bx
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x40]
mov r8d, 1
lea rdx, [rsp + 0x50]
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetGlyphIndicesW]
cmp eax, r14d
je 0x14002bcc7
cmp word [rsp + 0x40], si
je 0x14002bcc7
mov dword [rsp + 0x48], edi
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x50]
mov rcx, r15
call fcn.140034900
mov rcx, qword [rax]
movzx eax, word [rsp + 0x40]
mov dword [rcx + 0x14], eax
movzx edi, word [rsp + 0x40]
jmp 0x14002bccc
mov edi, 0xffffffff
movabs r9, 0x100000001b3
movzx esi, word [r13 - 2]
movzx ecx, sil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, r9
mov eax, esi
shr rax, 8
xor rcx, rax
imul rcx, r9
mov eax, esi
shr rax, 0x10
xor rcx, rax
imul rcx, r9
mov eax, esi
shr rax, 0x18
xor rcx, rax
imul rcx, r9
mov rdx, qword [r15 + 0x30]
and rdx, rcx
add rdx, rdx
mov rcx, qword [r15 + 0x18]
mov rax, qword [rcx + rdx*8 + 8]
mov r8, qword [r15 + 8]
cmp rax, r8
je 0x14002bd50
mov rcx, qword [rcx + rdx*8]
cmp esi, dword [rax + 0x10]
je 0x14002bd53
nop dword [rax]
cmp rax, rcx
je 0x14002bd50
mov rax, qword [rax + 8]
cmp esi, dword [rax + 0x10]
jne 0x14002bd40
jmp 0x14002bd53
mov rax, rbx
test rax, rax
cmove rax, r8
cmp rax, r8
je 0x14002bd65
mov r14d, dword [rax + 0x14]
jmp 0x14002bdde
mov word [rsp + 0x54], si
mov word [rsp + 0x56], bx
mov word [rsp + 0x44], bx
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x44]
mov r8d, 1
lea rdx, [rsp + 0x54]
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetGlyphIndicesW]
cmp eax, r14d
je 0x14002bdce
mov eax, 0xffff
cmp word [rsp + 0x44], ax
je 0x14002bdce
mov dword [rsp + 0x48], esi
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x40]
mov rcx, r15
call fcn.140034900
mov rcx, qword [rax]
movzx eax, word [rsp + 0x44]
mov dword [rcx + 0x14], eax
movzx r14d, word [rsp + 0x44]
jmp 0x14002bdd4
mov r14d, 0xffffffff
movabs r9, 0x100000001b3
mov dword [rsp + 0x48], edi
mov eax, edi
shr eax, 8
movzx edx, al
movzx eax, dil
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
imul rax, r9
xor rdx, rax
imul rdx, r9
mov eax, edi
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, edi
shr rax, 0x18
xor rdx, rax
imul rdx, r9
mov rcx, qword [rbp - 0x60]
and rcx, rdx
add rcx, rcx
mov rdx, qword [rbp - 0x78]
mov rax, qword [rdx + rcx*8 + 8]
mov r8, qword [rsp + 0x78]
cmp rax, r8
je 0x14002be58
mov rcx, qword [rdx + rcx*8]
cmp edi, dword [rax + 0x10]
je 0x14002be5b
cmp rax, rcx
je 0x14002be58
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x14002be48
jmp 0x14002be5b
mov rax, rbx
mov rcx, r8
test rax, rax
cmovne rcx, rax
cmp rcx, r8
je 0x14002be6f
mov esi, dword [rcx + 0x14]
jmp 0x14002beba
mov word [rbp + 0x10], bx
lea rax, [0x14037ca30]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebx
lea r9, [rbp]
mov r8d, 0x82
mov edx, edi
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetGlyphOutlineW]
movsx esi, word [rbp + 0x10]
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x70]
call fcn.1400346c0
mov rcx, qword [rax]
mov dword [rcx + 0x14], esi
shl rdi, 0x20
mov eax, r14d
or rax, rdi
mov qword [rsp + 0x48], rax
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x20]
mov rcx, qword [rsp + 0x60]
call fcn.140034b40
mov rcx, qword [rax]
mov eax, dword [r13]
add eax, esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
movss dword [rcx + 0x18], xmm0
mov eax, 0xffffffff
or rdi, rax
mov qword [rsp + 0x48], rdi
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x10]
mov rcx, qword [rsp + 0x60]
call fcn.140034b40
movd xmm0, esi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
mov rax, qword [rax]
movss dword [rax + 0x18], xmm0
add r13, 8
sub qword [rsp + 0x58], 1
mov esi, 0xffff
movabs rax, 0xcbf29ce484222325
movabs r9, 0x100000001b3
mov r14d, 0xffffffff
jne 0x14002bbe0
mov rbx, qword [rsp + 0x68]
lea rcx, [rbp - 0x78]
call fcn.14000ab10
lea rcx, [rsp + 0x78]
call fcn.14002c480
nop
mov rcx, rbx
call fcn.1400e0818
mov rcx, qword [rbp + 0x18]
xor rcx, rsp
call fcn.1400d9d70
mov rbx, qword [rsp + 0x188]
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret