Function at 0x18005cadc
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 0x18005cd3c
sub rax, 1
je 0x18005cd05
sub rax, 1
je 0x18005cca4
sub rax, 1
je 0x18005cb96
sub rax, 1
je 0x18005ce13
cmp rax, 1
jne 0x18005ce13
movzx eax, word [rdx + 0xe]
shr ax, 0xa
test al, 1
je 0x18005cde6
mov eax, 0x1000
test word [rdx + 0xe], ax
jne 0x18005cb6b
mov rdx, qword [rdx + 8]
movabs rax, 0xffffffffffff
and rdx, rax
cmp byte [rdx], 0x23
lea rcx, [rdx + 1]
cmovne rcx, rdx
call fcn.18005d6b4
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 0x18005ce40
mov eax, 0x1000
test word [rdx + 0xe], ax
jne 0x18005cbc2
mov rdx, qword [rdx + 8]
movabs rax, 0xffffffffffff
and rdx, rax
mov al, byte [rdx]
movabs r9, 0xcbf29ce484222325
mov r8, rdx
jmp 0x18005cc0d
cmp al, 0x5c
jne 0x18005cbde
mov eax, 0x2f
jmp 0x18005cbf6
mov al, byte [r8]
sub al, 0x41
cmp al, 0x19
ja 0x18005cbf2
movsx eax, byte [r8]
add eax, 0x20
cdqe
jmp 0x18005cbf6
movsx rax, byte [r8]
xor r9, rax
movabs rax, 0x100000001b3
imul r9, rax
inc r8
mov al, byte [r8]
test al, al
jne 0x18005cbd3
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 0x18005cc42
cmp dword [r8], r11d
jne 0x18005cc3e
cmp qword [r8 + 8], r9
je 0x18005cc47
add r8, 0x18
cmp r8, rax
jne 0x18005cc33
cmp r8, rax
je 0x18005ce6d
mov rcx, qword [r8 + 0x10]
mov rax, qword [r10 + 0x10]
xor edx, edx
div qword [r10 + 0x18]
sub rax, 1
je 0x18005cd5f
sub rax, 1
je 0x18005cc97
sub rax, 2
je 0x18005cc8b
cmp rax, 4
jne 0x18005cb86
mov rax, qword [rbx + 0x18]
mov qword [rax + rdi*8], rcx
jmp 0x18005cb86
mov rax, qword [rbx + 0x18]
mov dword [rax + rdi*4], ecx
jmp 0x18005cb86
mov rax, qword [rbx + 0x18]
mov word [rax + rdi*2], cx
jmp 0x18005cb86
mov al, byte [rdx + 0xe]
shr al, 4
test al, 1
je 0x18005ce9d
mov rcx, rdx
call fcn.180030d18
mov rcx, qword [rbx + 0x10]
xor edx, edx
mov rax, qword [rcx + 0x10]
div qword [rcx + 0x18]
mov r8, rax
cmp rax, 4
je 0x18005ccee
cmp rax, 8
jne 0x18005cb86
mov rcx, qword [rbx + 0x18]
imul r8, rdi
movsd qword [r8 + rcx], xmm0
jmp 0x18005cb86
mov rax, qword [rbx + 0x18]
imul r8, rdi
cvtsd2ss xmm0, xmm0
movss dword [r8 + rax], xmm0
jmp 0x18005cb86
movzx r8d, word [rdx + 0xe]
mov al, r8b
shr al, 3
test al, 1
je 0x18005cd21
cmp r8w, 0xa
sete cl
jmp 0x18005cc54
mov al, r8b
shr al, 4
test al, 1
je 0x18005cd6b
test r8b, r8b
jns 0x18005ceca
mov rcx, qword [rdx]
jmp 0x18005cc54
movzx r8d, word [rdx + 0xe]
mov al, r8b
shr al, 3
test al, 1
jne 0x18005cd14
mov al, r8b
shr al, 4
test al, 1
je 0x18005cdb9
bt r8w, 8
jae 0x18005cd98
jmp 0x18005cd34
mov rax, qword [rbx + 0x18]
mov byte [rdi + rax], cl
jmp 0x18005cb86
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_number
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
lea rdx, str.rapidjson_assert_fail
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_number
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_string
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
mov rdx, qword [rbx + 8]
lea rcx, str.unknown_field_type_for_key__s__d
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_string
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
mov r8, rdx
lea rcx, str.unknown_enum_value_for_key__s___s
mov rdx, qword [rbx + 8]
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
mov rdx, qword [rbx + 8]
lea rcx, str.field__s_should_be_a_number
call fcn.1800667dc
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3
lea rdx, str.rapidjson_assert_fail
lea rcx, [rbp - 0x20]
call fcn.180014200
lea rdx, [0x180161188]
lea rcx, [rbp - 0x20]
call fcn.1800a6da0
int3