Function at 0x14002c180
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x1405921c0]
xor rax, rsp
mov qword [rbp + 0x30], rax
movaps xmm7, xmm3
mov r15, r8
mov r12, rdx
mov rdi, rcx
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetKerningPairsW]
mov ebx, eax
xor ecx, ecx
call fcn.1400d4bdc
mov qword [rsp + 0x60], rbx
test ebx, ebx
jne 0x14002c1ed
xor r14d, r14d
mov esi, r14d
mov qword [rsp + 0x68], r14
jmp 0x14002c205
mov edx, 8
mov rcx, rbx
call fcn.1400d595c
mov rsi, rax
mov qword [rsp + 0x68], rax
xor r14d, r14d
mov qword [rbp - 0x40], rsi
mov r8, rsi
mov edx, ebx
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetKerningPairsW]
mov dword [rbp - 0x80], 0
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r14
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400c9d40
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x68], r14
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], 7
mov qword [rbp - 0x48], 8
mov dword [rbp - 0x80], 0x3f800000
mov r8, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp - 0x68]
call fcn.140034750
nop
test ebx, ebx
je 0x14002c62d
add rdi, 0xc8
mov qword [rsp + 0x78], rdi
lea r13, [rsi + 4]
movabs rdx, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
mov esi, 0xffffffff
nop dword [rax]
nop word [rax + rax]
movzx edi, word [r13 - 4]
movzx ecx, dil
xor rcx, rdx
imul rcx, rbx
mov eax, edi
shr rax, 8
xor rcx, rax
imul rcx, rbx
mov eax, edi
shr rax, 0x10
xor rcx, rax
imul rcx, rbx
mov eax, edi
shr rax, 0x18
xor rcx, rax
imul rcx, rbx
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 0x14002c320
mov rcx, qword [rcx + rdx*8]
cmp edi, dword [rax + 0x10]
je 0x14002c323
nop dword [rax]
cmp rax, rcx
je 0x14002c320
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x14002c310
jmp 0x14002c323
mov rax, r14
test rax, rax
je 0x14002c332
cmp rax, r8
je 0x14002c332
mov edi, dword [rax + 0x14]
jmp 0x14002c3aa
mov word [rsp + 0x4c], di
mov word [rsp + 0x4e], r14w
mov word [rsp + 0x40], r14w
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x40]
mov r8d, 1
lea rdx, [rsp + 0x4c]
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetGlyphIndicesW]
cmp eax, esi
je 0x14002c3a5
movzx eax, word [rsp + 0x40]
mov ecx, 0xffff
cmp ax, cx
je 0x14002c3a5
mov ebx, eax
mov dword [rsp + 0x48], edi
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x38]
mov rcx, r15
call fcn.140035a10
mov rcx, qword [rax]
mov dword [rcx + 0x14], ebx
movzx edi, word [rsp + 0x40]
movabs rbx, 0x100000001b3
jmp 0x14002c3aa
mov edi, 0xffffffff
mov dword [rsp + 0x48], edi
movzx esi, word [r13 - 2]
movzx ecx, sil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, rbx
mov eax, esi
shr rax, 8
xor rcx, rax
imul rcx, rbx
mov eax, esi
shr rax, 0x10
xor rcx, rax
imul rcx, rbx
mov eax, esi
shr rax, 0x18
xor rcx, rax
imul rcx, rbx
mov rdx, qword [r15 + 0x30]
and rdx, rcx
add rdx, rdx
mov r8, qword [r15 + 0x18]
mov rax, qword [r8 + rdx*8 + 8]
mov rcx, qword [r15 + 8]
cmp rax, rcx
je 0x14002c424
mov rdx, qword [r8 + rdx*8]
cmp esi, dword [rax + 0x10]
je 0x14002c427
cmp rax, rdx
je 0x14002c424
mov rax, qword [rax + 8]
cmp esi, dword [rax + 0x10]
jne 0x14002c414
jmp 0x14002c427
mov rax, r14
test rax, rax
cmove rax, rcx
cmp rax, rcx
je 0x14002c439
mov r14d, dword [rax + 0x14]
jmp 0x14002c4b8
mov word [rsp + 0x50], si
mov word [rsp + 0x52], r14w
mov word [rsp + 0x44], r14w
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x44]
mov r8d, 1
lea rdx, [rsp + 0x50]
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetGlyphIndicesW]
mov ecx, 0xffffffff
cmp eax, ecx
je 0x14002c4b2
movzx eax, word [rsp + 0x44]
mov ecx, 0xffff
cmp ax, cx
je 0x14002c4b2
mov ebx, eax
mov dword [rsp + 0x58], esi
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x28]
mov rcx, r15
call fcn.140035a10
mov rcx, qword [rax]
mov dword [rcx + 0x14], ebx
movzx r14d, word [rsp + 0x44]
movabs rbx, 0x100000001b3
jmp 0x14002c4b8
mov r14d, 0xffffffff
mov dword [rsp + 0x58], edi
movzx ecx, dil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, rbx
movzx eax, byte [rsp + 0x49]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [rsp + 0x4a]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [rsp + 0x4b]
xor rcx, rax
imul rcx, rbx
mov rdx, qword [rbp - 0x50]
and rdx, rcx
add rdx, rdx
mov rcx, qword [rbp - 0x68]
mov rax, qword [rcx + rdx*8 + 8]
mov r8, qword [rbp - 0x78]
cmp rax, r8
jne 0x14002c517
xor ecx, ecx
mov eax, ecx
jmp 0x14002c530
mov rcx, qword [rcx + rdx*8]
cmp edi, dword [rax + 0x10]
je 0x14002c52e
cmp rax, rcx
je 0x14002c511
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x14002c520
xor ecx, ecx
test rax, rax
je 0x14002c53f
cmp rax, r8
je 0x14002c53f
mov esi, dword [rax + 0x14]
jmp 0x14002c589
mov word [rbp + 0x28], cx
lea rax, [0x1404fad50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], ecx
lea r9, [rbp + 0x18]
mov r8d, 0x82
mov edx, edi
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetGlyphOutlineW]
movsx esi, word [rbp + 0x28]
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x80]
call fcn.140035a10
mov rcx, qword [rax]
mov dword [rcx + 0x14], esi
mov eax, dword [r13]
add eax, esi
movd xmm6, eax
cvtdq2ps xmm6, xmm6
divss xmm6, xmm7
mov ebx, edi
shl rbx, 0x20
mov eax, r14d
or rax, rbx
mov qword [rsp + 0x70], rax
lea r8, [rsp + 0x70]
lea rdx, [rbp - 8]
mov rcx, qword [rsp + 0x78]
call fcn.140035c50
mov rcx, qword [rax]
movss dword [rcx + 0x18], xmm6
mov eax, 0xffffffff
or rbx, rax
mov qword [rsp + 0x58], rbx
lea r8, [rsp + 0x58]
lea rdx, [rbp + 8]
mov rcx, qword [rsp + 0x78]
call fcn.140035c50
movd xmm0, esi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm7
mov rax, qword [rax]
movss dword [rax + 0x18], xmm0
add r13, 8
sub qword [rsp + 0x60], 1
movabs rbx, 0x100000001b3
mov esi, 0xffffffff
movabs rdx, 0xcbf29ce484222325
mov r14d, 0
jne 0x14002c2b0
mov rsi, qword [rsp + 0x68]
lea rcx, [rbp - 0x68]
call fcn.1400075b0
lea rcx, [rbp - 0x78]
call fcn.140007610
nop
mov rcx, rsi
call fcn.1400d4bdc
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1400c9d20
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x58]
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