Function at 0x18005c54c
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x40
mov r10, qword [rcx + 0x10]
mov rdi, r8
mov rbx, rcx
xor ecx, ecx
mov r11, qword [r10 + 8]
mov r8d, r11d
shr r11, 0x20
mov eax, r8d
test r8, r8
je 0x18005c7ac
sub rax, 1
je 0x18005c775
sub rax, 1
je 0x18005c714
sub rax, 1
je 0x18005c606
sub rax, 1
je 0x18005c883
cmp rax, 1
jne 0x18005c883
movzx eax, word [rdx + 0xe]
shr ax, 0xa
test al, 1
je 0x18005c856
mov eax, 0x1000
test word [rdx + 0xe], ax
jne 0x18005c5db
mov rdx, qword [rdx + 8]
movabs rax, 0xffffffffffff
and rdx, rax
cmp byte [rdx], 0x23
lea rcx, [rdx + 1]
cmovne rcx, rdx
call fcn.18005d124
mov rcx, qword [rbx + 0x18]
add rdi, rdi
mov qword [rcx + rdi*8], rax
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x40
pop rbp
ret
movzx eax, word [rdx + 0xe]
shr ax, 0xa
test al, 1
je 0x18005c8b0
mov eax, 0x1000
test word [rdx + 0xe], ax
jne 0x18005c632
mov rdx, qword [rdx + 8]
movabs rax, 0xffffffffffff
and rdx, rax
mov al, byte [rdx]
movabs r9, 0xcbf29ce484222325
mov r8, rdx
jmp 0x18005c67d
cmp al, 0x5c
jne 0x18005c64e
mov eax, 0x2f
jmp 0x18005c666
mov al, byte [r8]
sub al, 0x41
cmp al, 0x19
ja 0x18005c662
movsx eax, byte [r8]
add eax, 0x20
cdqe
jmp 0x18005c666
movsx rax, byte [r8]
xor r9, rax
movabs rax, 0x100000001b3
imul r9, rax
inc r8
mov al, byte [r8]
test al, al
jne 0x18005c643
movabs rax, 0x7fffffffffffffff
and r9, rax
mov rax, qword [rbx]
mov r8, qword [rax + 0x10]
mov rax, qword [rax + 0x18]
lea rcx, [rax + rax*2]
lea rax, [r8 + rcx*8]
jmp 0x18005c6b2
cmp dword [r8], r11d
jne 0x18005c6ae
cmp qword [r8 + 8], r9
je 0x18005c6b7
add r8, 0x18
cmp r8, rax
jne 0x18005c6a3
cmp r8, rax
je 0x18005c8dd
mov rcx, qword [r8 + 0x10]
mov rax, qword [r10 + 0x10]
xor edx, edx
div qword [r10 + 0x18]
sub rax, 1
je 0x18005c7cf
sub rax, 1
je 0x18005c707
sub rax, 2
je 0x18005c6fb
cmp rax, 4
jne 0x18005c5f6
mov rax, qword [rbx + 0x18]
mov qword [rax + rdi*8], rcx
jmp 0x18005c5f6
mov rax, qword [rbx + 0x18]
mov dword [rax + rdi*4], ecx
jmp 0x18005c5f6
mov rax, qword [rbx + 0x18]
mov word [rax + rdi*2], cx
jmp 0x18005c5f6
mov al, byte [rdx + 0xe]
shr al, 4
test al, 1
je 0x18005c90d
mov rcx, rdx
call fcn.1800305b8
mov rcx, qword [rbx + 0x10]
xor edx, edx
mov rax, qword [rcx + 0x10]
div qword [rcx + 0x18]
mov r8, rax
cmp rax, 4
je 0x18005c75e
cmp rax, 8
jne 0x18005c5f6
mov rcx, qword [rbx + 0x18]
imul r8, rdi
movsd qword [r8 + rcx], xmm0
jmp 0x18005c5f6
mov rax, qword [rbx + 0x18]
imul r8, rdi
cvtsd2ss xmm0, xmm0
movss dword [r8 + rax], xmm0
jmp 0x18005c5f6
movzx r8d, word [rdx + 0xe]
mov al, r8b
shr al, 3
test al, 1
je 0x18005c791
cmp r8w, 0xa
sete cl
jmp 0x18005c6c4
mov al, r8b
shr al, 4
test al, 1
je 0x18005c7db
test r8b, r8b
jns 0x18005c93a
mov rcx, qword [rdx]
jmp 0x18005c6c4
movzx r8d, word [rdx + 0xe]
mov al, r8b
shr al, 3
test al, 1
jne 0x18005c784
mov al, r8b
shr al, 4
test al, 1
je 0x18005c829
bt r8w, 8
jae 0x18005c808
jmp 0x18005c7a4
mov rax, qword [rbx + 0x18]
mov byte [rdi + rax], cl
jmp 0x18005c5f6
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_number
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
lea rdx, str.rapidjson_assert_fail
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_number
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_string
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
mov rdx, qword [rbx + 8]
lea rcx, str.unknown_field_type_for_key__s__d
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_string
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
mov r8, rdx
lea rcx, str.unknown_enum_value_for_key__s___s
mov rdx, qword [rbx + 8]
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_number
call fcn.18006624c
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3
lea rdx, str.rapidjson_assert_fail
lea rcx, [rbp - 0x20]
call fcn.1800140f0
lea rdx, [0x180161030]
lea rcx, [rbp - 0x20]
call fcn.1800a6760
int3