Function at 0x1401506d0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x930]
sub rsp, 0xa30
mov rax, qword [0x140424b58]
xor rax, rsp
mov qword [rbp + 0x920], rax
movzx edi, r9b
mov byte [rsp + 0x40], r9b
mov r15, r8
mov qword [rsp + 0x48], r8
mov r9d, edx
mov dword [rsp + 0x58], edx
mov rbx, rcx
mov r11, qword [r8 + 0x18]
movzx r10d, cl
movabs rax, 0xcbf29ce484222325
xor r10, rax
movabs rdx, 0x100000001b3
imul r10, rdx
mov rax, rcx
shr rax, 8
movzx ecx, al
xor r10, rcx
imul r10, rdx
mov rax, rbx
shr rax, 0x10
movzx ecx, al
xor r10, rcx
imul r10, rdx
mov rax, rbx
shr rax, 0x18
movzx ecx, al
xor r10, rcx
imul r10, rdx
mov rax, rbx
shr rax, 0x20
movzx ecx, al
xor r10, rcx
imul r10, rdx
mov rax, rbx
shr rax, 0x28
movzx ecx, al
xor r10, rcx
imul r10, rdx
mov rax, rbx
shr rax, 0x30
movzx ecx, al
xor r10, rcx
imul r10, rdx
mov rax, rbx
shr rax, 0x38
xor r10, rax
imul r10, rdx
mov rcx, qword [r11 + 0xb0]
and rcx, r10
mov rdx, qword [r11 + 0x98]
mov rax, rcx
add rax, rax
mov r8, qword [rdx + rax*8]
mov qword [rsp + 0x50], r8
cmp r8, qword [r11 + 0x88]
je 0x140150a2a
add rcx, rcx
mov rax, qword [rdx + rcx*8 + 8]
cmp qword [r8 + 0x10], rbx
je 0x140150807
nop dword [rax]
cmp r8, rax
je 0x140150a2a
mov r8, qword [r8]
mov qword [rsp + 0x50], r8
cmp qword [r8 + 0x10], rbx
jne 0x1401507f0
mov rsi, qword [r8]
cmp r8, rax
je 0x140150821
nop
mov rcx, rsi
cmp rbx, qword [rsi + 0x10]
jne 0x140150821
mov rsi, qword [rsi]
cmp rcx, rax
jne 0x140150810
cmp r8, rsi
je 0x140150a2a
mov r12d, 0xffffffff
mov rax, qword [r15 + 0x18]
mov rdx, qword [r8 + 0x18]
mov r8, qword [rax + 0x60]
mov rax, qword [r8 + 8]
mov rcx, r8
cmp byte [rax + 0x19], 0
jne 0x140150868
nop dword [rax]
cmp qword [rax + 0x20], rdx
jae 0x14015085c
mov rax, qword [rax + 0x10]
jmp 0x140150862
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140150850
cmp byte [rcx + 0x19], 0
jne 0x14015087f
cmp rdx, qword [rcx + 0x20]
jb 0x14015087f
cmp rcx, r8
je 0x14015087f
mov rbx, qword [rcx + 0x28]
jmp 0x140150881
xor ebx, ebx
mov rcx, qword [rbx + 0x20]
test rcx, rcx
jne 0x140150896
mov rcx, rbx
call fcn.1402563a0
mov rcx, qword [rbx + 0x20]
mov dword [rsp + 0x20], 0
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
test rax, rax
je 0x140150a07
mov rdi, qword [rax + 0x30]
mov rax, qword [rax + 0x38]
mov qword [rbp - 0x80], rax
cmp rdi, rax
je 0x140150a07
mov rbx, qword [rdi]
mov rcx, qword [rbx + 0x20]
test rcx, rcx
jne 0x1401508e9
mov rcx, rbx
call fcn.1402563a0
mov rcx, qword [rbx + 0x20]
mov dword [rsp + 0x20], 1
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, qword [rax + 0x10]
mov r13, qword [rax + 0x18]
cmp rbx, r13
je 0x1401509f9
mov r14, qword [rbx + 8]
test r14, r14
je 0x140150929
lock inc dword [r14 + 8]
mov r14, qword [rbx + 8]
mov rcx, qword [rbx]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], r14
mov r15, qword [r15 + 0x18]
mov dword [rsp + 0x20], 0
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
test rax, rax
je 0x1401509a2
mov rdx, qword [rax + 8]
mov rcx, r15
call fcn.140136ea0
mov r15, rax
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x140150980
mov rcx, rax
call fcn.1402563a0
mov rcx, qword [r15 + 0x20]
mov dword [rsp + 0x20], 0
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r15, rax
jmp 0x1401509a5
xor r15d, r15d
test r15, r15
jne 0x140150a3c
test r14, r14
je 0x1401509e7
mov eax, r12d
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x1401509e7
mov r14, qword [rsp + 0x78]
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
mov eax, r12d
lock xadd dword [r14 + 0xc], eax
cmp eax, 1
jne 0x1401509e7
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 8]
add rbx, 0x10
cmp rbx, r13
mov r15, qword [rsp + 0x48]
jne 0x140150917
add rdi, 8
cmp rdi, qword [rbp - 0x80]
jne 0x1401508d1
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov r8, rax
mov qword [rsp + 0x50], rax
cmp rax, rsi
jne 0x140150830
mov r9d, dword [rsp + 0x58]
movzx edi, byte [rsp + 0x40]
cmp r9d, 0xffffffff
je 0x140150eb0
mov eax, r9d
jmp 0x140151047
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rbx + 0xf0]
mov rax, qword [rdx + 8]
mov rcx, rdx
cmp byte [rax + 0x19], 0
jne 0x140150a6d
cmp qword [rax + 0x20], r15
jae 0x140150a61
mov rax, qword [rax + 0x10]
jmp 0x140150a67
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140150a55
cmp byte [rcx + 0x19], 0
jne 0x140150a86
cmp r15, qword [rcx + 0x20]
jb 0x140150a86
cmp rcx, rdx
je 0x140150a86
mov edi, dword [rcx + 0x28]
jmp 0x140150e72
lea rdx, [r15 + 0x48]
lea rcx, [rbp + 0xd8]
call fcn.1400222d0
nop
lea rdx, [rbp + 0xd8]
cmp qword [rbp + 0xf0], 0x10
setae cl
mov byte [rsp + 0x40], cl
mov rsi, qword [rbp + 0xd8]
cmovae rdx, rsi
mov r13, qword [rbp + 0xe8]
cmp r13, 4
jne 0x140150afa
xor ecx, ecx
lea r8, str.BOTH
nop
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x140150ae8
cmp rcx, 4
jne 0x140150ad0
xor eax, eax
jmp 0x140150aed
sbb eax, eax
or eax, 1
test eax, eax
je 0x140150cfc
movzx ecx, byte [rsp + 0x40]
movabs r8, 0x7fffffffffffffff
mov rax, r8
sub rax, r13
cmp rax, 0x36
jb 0x14015107d
lea rdx, [rbp + 0xd8]
test cl, cl
cmovne rdx, rsi
mov qword [rsp + 0x50], rdx
mov qword [rbp + 0xc8], 0
mov qword [rbp + 0xd0], 0
lea rax, [r13 + 0x36]
mov ebx, 0xf
lea rdi, [rbp + 0xb8]
cmp rax, rbx
jbe 0x140150bdf
mov rbx, rax
or rbx, 0xf
cmp rbx, r8
jbe 0x140150b96
mov rbx, r8
movabs rax, 0x8000000000000027
mov rcx, rax
call fcn.14032af80
test rax, rax
je 0x140150cf0
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
lea rax, [r13 + 0x36]
mov rdx, qword [rsp + 0x50]
jmp 0x140150bd8
mov ecx, 0x16
cmp rbx, rcx
cmovb rbx, rcx
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140150bbe
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140151077
jmp 0x140150b6e
test rcx, rcx
je 0x140150bd6
call fcn.14032af80
mov rdi, rax
lea rax, [r13 + 0x36]
mov rdx, qword [rsp + 0x50]
jmp 0x140150bd8
xor edi, edi
mov qword [rbp + 0xb8], rdi
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd0], rbx
movups xmm0, xmmword [str.ignoring_surface_side_marker_on_IFC::IfcSurfaceStyle:]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [0x140367450]
movups xmmword [rdi + 0x10], xmm1
movups xmm0, xmmword [0x140367460]
movups xmmword [rdi + 0x20], xmm0
mov eax, dword [0x140367470]
mov dword [rdi + 0x30], eax
movzx eax, word [0x140367474]
mov word [rdi + 0x34], ax
lea rcx, [rdi + 0x36]
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + r13 + 0x36], 0
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.140081480
nop
lea rdx, [rbp + 0xb8]
cmp qword [rbp + 0xd0], 0x10
cmovae rdx, qword [rbp + 0xb8]
mov r8, qword [rbp + 0xc8]
lea rcx, [rbp - 0x30]
call fcn.140074140
nop
lea rcx, [rbp - 0x30]
call fcn.140136cf0
nop
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x30], rax
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 0x34], edx
lea rcx, [rbp - 0x28]
call fcn.14004cb90
lea rcx, [rbp - 0x20]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp + 0xd0]
cmp rdx, 0x10
jb 0x140150cfc
inc rdx
mov rcx, qword [rbp + 0xb8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140150cf7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140150cf7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401a68e0
mov ecx, 0x10
call fcn.14032af80
mov qword [rsp + 0x60], rax
mov rcx, rax
call fcn.1401f0d90
mov rdi, rax
mov qword [rsp + 0x58], rax
mov r13, qword [rsp + 0x48]
mov r8, r13
mov rdx, r15
mov rcx, rax
call fcn.140150080
lea rbx, [r13 + 0xc8]
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rdi
mov rdx, qword [r13 + 0xd0]
cmp rdx, qword [r13 + 0xd8]
je 0x140150d5d
mov qword [rdx], rdi
add qword [rbx + 8], 8
jmp 0x140150d6a
lea r8, [rsp + 0x60]
mov rcx, rbx
call fcn.140030400
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
sar rax, 3
lea edi, [rax - 1]
add r13, 0xf0
mov rbx, qword [r13]
mov rax, qword [rbx + 8]
mov qword [rbp - 0x78], rax
xor edx, edx
mov dword [rbp - 0x70], edx
mov rcx, rbx
cmp byte [rax + 0x19], dl
jne 0x140150dc5
nop dword [rax + rax]
mov qword [rbp - 0x78], rax
cmp qword [rax + 0x20], r15
jae 0x140150db3
mov dword [rbp - 0x70], edx
mov rax, qword [rax + 0x10]
jmp 0x140150dc0
mov dword [rbp - 0x70], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], dl
je 0x140150da0
cmp byte [rcx + 0x19], dl
jne 0x140150dd0
cmp r15, qword [rcx + 0x20]
jae 0x140150e2d
movabs rax, 0x555555555555555
cmp qword [r13 + 8], rax
je 0x140151071
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], rdx
mov ecx, 0x30
call fcn.14032af80
nop
mov qword [rax + 0x20], r15
mov dword [rax + 0x28], 0
mov qword [rax], rbx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
mov word [rax + 0x18], 0
movups xmm0, xmmword [rbp - 0x78]
movaps xmmword [rbp - 0x50], xmm0
mov r8, rax
lea rdx, [rbp - 0x50]
mov rcx, r13
call fcn.14002d3e0
mov rcx, rax
mov dword [rcx + 0x28], edi
cmp byte [rsp + 0x40], 0
je 0x140150e72
mov rdx, qword [rbp + 0xf0]
inc rdx
mov rax, rsi
cmp rdx, 0x1000
jb 0x140150e69
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140150e69
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.1401a68e0
nop
test r14, r14
je 0x140150ea9
mov eax, r12d
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x140150ea9
mov rbx, qword [rsp + 0x78]
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx]
lock xadd dword [rbx + 0xc], r12d
cmp r12d, 1
jne 0x140150ea9
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rcx]
call qword [rdx + 8]
mov eax, edi
jmp 0x140151047
test dil, dil
jne 0x140150ebf
mov eax, 0xffffffff
jmp 0x140151047
mov qword [rbp + 0x100], 0xc
movsd xmm0, qword [str._IFCDefault_]
movsd qword [rbp + 0x108], xmm0
mov eax, dword [0x140367480]
mov dword [rbp + 0x110], eax
mov byte [rbp + 0x114], 0
xor ebx, ebx
lea rdi, [r15 + 0xc8]
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
sub rax, rcx
sar rax, 3
test rax, rax
je 0x140150f85
nop dword [rax]
mov qword [rbp + 0x510], 0
mov byte [rbp + 0x518], 0
lea rax, [rbp + 0x510]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x1403537a0]
mov rcx, qword [rcx + rbx*8]
call fcn.1401f2280
mov r8, qword [rbp + 0x100]
cmp r8, qword [rbp + 0x510]
jne 0x140150f6f
lea rdx, [rbp + 0x518]
lea rcx, [rbp + 0x108]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140151029
inc rbx
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jb 0x140150f10
mov ecx, 0x10
call fcn.14032af80
mov qword [rsp + 0x68], rax
mov rcx, rax
call fcn.1401f0d90
mov rbx, rax
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x1403537a0]
lea rdx, [rbp + 0x100]
mov rcx, rax
call fcn.1401f1010
movaps xmm0, xmmword [0x140367490]
movups xmmword [rbp - 0x40], xmm0
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, str._clr.diffuse
mov r8d, 0x10
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.1401f0e30
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x68], rbx
mov rdx, qword [r15 + 0xd0]
cmp rdx, qword [r15 + 0xd8]
je 0x14015102d
mov qword [rdx], rbx
add qword [rdi + 8], 8
jmp 0x14015103a
mov eax, ebx
jmp 0x140151047
lea r8, [rsp + 0x68]
mov rcx, rdi
call fcn.140030400
mov rax, qword [rdi + 8]
sub rax, qword [rdi]
sar rax, 3
dec eax
mov rcx, qword [rbp + 0x920]
xor rcx, rsp
call fcn.14032b620
mov rbx, qword [rsp + 0xa78]
add rsp, 0xa30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14002d710
nop
call fcn.1400072b0
int3
call fcn.140028540
int3