Function at 0x14032a840
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov r12, rdx
mov rsi, rcx
xor edx, edx
mov edi, edx
mov dword [rsp + 0xc0], edx
mov r14, 0xffffffffffffffff
nop dword [rax]
inc r14
cmp word [r12 + r14*2], dx
jne 0x140320d50
mov rax, qword [rcx]
movsxd rcx, dword [rax + 4]
mov rbx, qword [rcx + rsi + 0x28]
test rbx, rbx
jle 0x140320d75
cmp rbx, r14
jle 0x140320d75
sub rbx, r14
jmp 0x140320d78
mov rbx, rdx
mov r13, rsi
mov qword [rsp + 0x20], rsi
mov rcx, qword [rcx + rsi + 0x48]
test rcx, rcx
je 0x140320d91
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsi]
movsxd rax, dword [rcx + 4]
cmp dword [rax + rsi + 0x10], 0
je 0x140320da3
xor al, al
jmp 0x140320dcd
mov rax, qword [rax + rsi + 0x50]
test rax, rax
je 0x140320dcb
cmp rax, rsi
je 0x140320dcb
mov rcx, rax
call fcn.140316bf0
mov rcx, qword [rsi]
movsxd rax, dword [rcx + 4]
cmp dword [rax + rsi + 0x10], 0
sete al
jmp 0x140320dcd
mov al, 1
mov byte [rsp + 0x28], al
test al, al
jne 0x140320de1
mov edx, 4
mov edi, edx
jmp 0x140320f25
movsxd rax, dword [rcx + 4]
mov ecx, dword [rax + rsi + 0x18]
and ecx, 0x1c0
mov r15d, 0xffff
cmp ecx, 0x40
je 0x140320e6f
nop word [rax + rax]
test rbx, rbx
jle 0x140320e6f
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov r8, qword [rcx + rsi + 0x48]
movzx r9d, word [rcx + rsi + 0x58]
mov rax, qword [r8 + 0x40]
cmp qword [rax], 0
je 0x140320e40
mov rax, qword [r8 + 0x58]
cmp dword [rax], 0
jle 0x140320e40
dec dword [rax]
mov rcx, qword [r8 + 0x40]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
mov word [rdx], r9w
jmp 0x140320e51
mov rax, qword [r8]
movzx edx, r9w
mov rcx, r8
call qword [rax + 0x18]
movzx r9d, ax
cmp r15w, r9w
jne 0x140320e6a
mov edx, 4
mov edi, edx
mov dword [rsp + 0xc0], edx
jmp 0x140320efb
dec rbx
jmp 0x140320e00
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rcx + rsi + 0x48]
mov rax, qword [rcx]
mov r8, r14
mov rdx, r12
call qword [rax + 0x48]
cmp rax, r14
jne 0x140320eec
nop dword [rax]
test rbx, rbx
jle 0x140320ef6
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov r8, qword [rcx + rsi + 0x48]
movzx r9d, word [rcx + rsi + 0x58]
mov rax, qword [r8 + 0x40]
cmp qword [rax], 0
je 0x140320ed0
mov rax, qword [r8 + 0x58]
cmp dword [rax], 0
jle 0x140320ed0
dec dword [rax]
mov rcx, qword [r8 + 0x40]
mov rdx, qword [rcx]
lea rax, [rdx + 2]
mov qword [rcx], rax
mov word [rdx], r9w
jmp 0x140320ee1
mov rax, qword [r8]
movzx edx, r9w
mov rcx, r8
call qword [rax + 0x18]
movzx r9d, ax
cmp r15w, r9w
je 0x140320eec
dec rbx
jmp 0x140320e90
or edi, 4
mov dword [rsp + 0xc0], edi
mov edx, 4
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
xor r8d, r8d
mov qword [rcx + rsi + 0x28], r8
jmp 0x140320f28
xor r8d, r8d
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
add rcx, rsi
or edi, dword [rcx + 0x10]
cmp qword [rcx + 0x48], 0
cmovne edx, r8d
or edx, edi
and edx, 0x17
mov dword [rcx + 0x10], edx
and edx, dword [rcx + 0x14]
jne 0x140320f89
call fcn.14032b358
test eax, eax
jne 0x140320f5d
mov rcx, r13
call fcn.1403164b0
nop
mov rax, qword [r13]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rcx + r13 + 0x48]
test rcx, rcx
je 0x140320f76
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rax, rsi
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test dl, 4
je 0x140320f97
lea rbx, str.ios_base::badbit_set
jmp 0x140320fac
test dl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.140317020
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140314b90
lea rdx, [0x140427d20]
lea rcx, [rsp + 0x40]
call fcn.140351894
int3
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rbp, rdx
mov r14, rcx
test r8b, r8b
jne 0x14032aa27
lea rdx, [0x1403ea548]
mov rcx, rbp
call 0x140320d20
mov rdx, qword [rax]
movsxd r8, dword [rdx + 4]
mov ecx, dword [r8 + rax + 0x18]
and ecx, 0xfffff3ff
bts ecx, 9
mov dword [r8 + rax + 0x18], ecx
mov edx, dword [r14]
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, str.__0_
call 0x140320d20
lea rbx, [r14 + 0x28]
mov edx, dword [r14 + 4]
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea528]
call 0x140320d20
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 7
jbe 0x14032a8e1
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140322ad0
mov rcx, rax
lea rdx, [0x1403ea520]
call 0x140320d20
mov eax, dword [r14 + 0x48]
mov rcx, rbp
cmp eax, 0xffffffff
jne 0x14032a915
lea rdx, str.0__0__0
call 0x140320d20
jmp 0x14032a958
mov edx, dword [r14 + 4]
sub edx, eax
dec edx
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea560]
call 0x140320d20
mov edx, dword [r14 + 0x4c]
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea560]
call 0x140320d20
mov edx, dword [r14 + 0x50]
mov rcx, rax
call fcn.140324910
lea rdx, str.__
mov rcx, rbp
call 0x140320d20
xor esi, esi
mov rax, qword [r14 + 0x60]
sub rax, qword [r14 + 0x58]
sar rax, 2
test rax, rax
je 0x14032adc2
nop
lea rdx, [0x1403ea574]
mov rcx, rbp
call 0x140320d20
mov rbx, rax
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, 2
lea rcx, [rsp + 0x20]
call fcn.140331e58
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov word [rcx + rbx + 0x58], 0x30
mov rdx, qword [r14 + 0x58]
mov edx, dword [rdx + rsi*4]
mov rcx, rbx
call fcn.140324910
mov rax, qword [r14 + 0x60]
sub rax, qword [r14 + 0x58]
sar rax, 2
dec rax
cmp rsi, rax
je 0x14032aa0a
lea rdx, [0x1403ea560]
mov rcx, rbp
call 0x140320d20
inc rsi
mov rax, qword [r14 + 0x60]
sub rax, qword [r14 + 0x58]
sar rax, 2
cmp rsi, rax
jb 0x14032a980
jmp 0x14032adc2
xor esi, esi
mov r15d, esi
mov ecx, dword [0x14042be20]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x14042b620], eax
jg 0x14032aded
lea rcx, [r14 + 8]
cmp qword [r14 + 0x20], 7
jbe 0x14032aa67
mov rcx, qword [r14 + 8]
mov rdx, rcx
jmp 0x14032aa6b
lea rdx, [r14 + 8]
mov r9, rcx
mov rax, qword [r14 + 0x18]
lea rbx, [rdx + rax*2]
movabs rdi, 0xcbf29ce484222325
movabs r8, 0x100000001b3
cmp rcx, rbx
je 0x14032ab5f
mov rdi, qword [0x14042b610]
mov r11, qword [0x14042b5f8]
mov r10, qword [0x14042b5e8]
movabs rbp, 0xcbf29ce484222325
nop dword [rax]
nop word [rax + rax]
movzx edx, word [r9]
movzx ecx, dl
xor rcx, rbp
imul rcx, r8
mov eax, edx
shr rax, 8
xor rcx, rax
imul rcx, r8
mov eax, edx
shr rax, 0x10
xor rcx, rax
imul rcx, r8
mov eax, edx
shr rax, 0x18
xor rcx, rax
imul rcx, r8
and rcx, rdi
add rcx, rcx
mov rax, qword [r11 + rcx*8 + 8]
cmp rax, r10
jne 0x14032ab0a
mov rax, rsi
jmp 0x14032ab30
mov r8, qword [r11 + rcx*8]
cmp edx, dword [rax + 0x10]
je 0x14032ab26
cmp rax, r8
je 0x14032ab23
mov rax, qword [rax + 8]
cmp edx, dword [rax + 0x10]
jne 0x14032ab13
jmp 0x14032ab26
mov rax, rsi
movabs r8, 0x100000001b3
mov rcx, r10
test rax, rax
cmovne rcx, rax
cmp rcx, r10
je 0x14032ab43
add r15d, dword [rcx + 0x18]
add r9, 2
cmp r9, rbx
jne 0x14032aac0
mov rbp, qword [rsp + 0x68]
movabs rdi, 0xcbf29ce484222325
lea rdx, [0x1403ea548]
mov rcx, rbp
call 0x140320d20
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff3ff
bts ecx, 9
mov dword [rdx + rax + 0x18], ecx
mov edx, dword [r14]
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, str.__0_
call 0x140320d20
mov edx, dword [r14 + 4]
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea560]
call 0x140320d20
lea rbx, [r14 + 0x28]
mov edx, r15d
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea528]
call 0x140320d20
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14032abe7
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140322ad0
mov rcx, rax
lea rdx, [0x1403ea520]
call 0x140320d20
mov eax, dword [r14 + 0x48]
mov rcx, rbp
cmp eax, 0xffffffff
jne 0x14032ac1c
lea rdx, str.0__0__0
call 0x140320d20
jmp 0x14032ac5f
mov edx, dword [r14 + 4]
sub edx, eax
dec edx
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea560]
call 0x140320d20
mov edx, dword [r14 + 0x4c]
mov rcx, rax
call fcn.140324910
mov rcx, rax
lea rdx, [0x1403ea560]
call 0x140320d20
mov edx, dword [r14 + 0x50]
mov rcx, rax
call fcn.140324910
lea rdx, str.__
mov rcx, rbp
call 0x140320d20
mov r15b, 1
mov rcx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14032ac83
mov rcx, qword [rbx]
mov rdx, rcx
jmp 0x14032ac86
mov rdx, rbx
mov r14, rcx
mov rax, qword [rbx + 0x10]
lea r12, [rdx + rax*2]
cmp rcx, r12
je 0x14032adc2
mov r9, qword [0x14042b5e8]
movzx edx, word [r14]
movzx ecx, dl
xor rcx, rdi
movabs r8, 0x100000001b3
imul rcx, r8
mov eax, edx
shr rax, 8
xor rcx, rax
imul rcx, r8
mov eax, edx
shr rax, 0x10
xor rcx, rax
imul rcx, r8
mov eax, edx
shr rax, 0x18
xor rcx, rax
imul rcx, r8
and rcx, qword [0x14042b610]
add rcx, rcx
mov r8, qword [0x14042b5f8]
mov rax, qword [r8 + rcx*8 + 8]
cmp rax, r9
je 0x14032ad14
mov r8, qword [r8 + rcx*8]
cmp edx, dword [rax + 0x10]
je 0x14032ad17
cmp rax, r8
je 0x14032ad14
mov rax, qword [rax + 8]
cmp edx, dword [rax + 0x10]
jne 0x14032ad04
jmp 0x14032ad17
mov rax, rsi
mov rdi, r9
test rax, rax
cmovne rdi, rax
cmp rdi, r9
je 0x14032adab
test r15b, r15b
jne 0x14032ad3e
lea rdx, [0x1403ea560]
mov rcx, rbp
call 0x140320d20
xor r15b, r15b
lea rdx, [0x1403ea574]
mov rcx, rbp
call 0x140320d20
mov rbx, rax
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, 2
lea rcx, [rsp + 0x20]
call fcn.140331e58
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov word [rcx + rbx + 0x58], 0x30
mov edx, dword [rdi + 0x14]
mov rcx, rbx
call fcn.140324910
mov r9, qword [0x14042b5e8]
add r14, 2
cmp r14, r12
movabs rdi, 0xcbf29ce484222325
jne 0x14032aca1
lea rdx, str.__n
mov rcx, rbp
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp 0x140320d20
lea rcx, [0x14042b620]
call fcn.140350b68
cmp dword [0x14042b620], 0xffffffff
jne 0x14032aa53
mov rbx, qword [0x14042b588]
mov rdi, qword [rbx]
mov dword [0x14042b5e0], 0
mov qword [0x14042b5e8], rsi
mov qword [0x14042b5f0], rsi
mov ecx, 0x20
call fcn.14035067c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x14042b5e8], rax
mov qword [0x14042b5f8], rsi
xorps xmm0, xmm0
movdqa xmmword [0x14042b600], xmm0
mov qword [0x14042b610], 7
mov qword [0x14042b618], 8
mov dword [0x14042b5e0], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [0x14042b5f8]
call fcn.14031cc40
nop
mov r8, rbx
mov rdx, rdi
lea rcx, [0x14042b5e0]
call fcn.140322580
nop
lea rcx, [0x1403e82e0]
call fcn.1403508e8
nop
lea rcx, [0x14042b620]
call fcn.140350afc
jmp 0x14032aa53