Function at 0x140026330
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov qword [rsp + 0x28], r9
mov r12d, r8d
mov r14, rdx
mov rdi, rcx
mov rsi, qword [rsp + 0x1f0]
mov rax, qword [0x140191d78]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov eax, dword [0x1401954a8]
test eax, eax
je 0x140026383
mov eax, dword [0x1401954a8]
test eax, eax
jne 0x140026ab2
lea rcx, [rdi + 0x10]
mov qword [rsp + 0x30], rcx
call fcn.1400387d0
mov qword [rsp + 0x50], 0
test rsi, rsi
je 0x1400263a4
mov eax, dword [rsi + 0x78]
jmp 0x1400263a9
call sub.KERNEL32.dll_GetCurrentThreadId
mov dword [rsp + 0x4c], eax
cmp r12b, 0x45
jne 0x140026429
lea rsi, [rdi + 0x160]
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x4c]
mov rcx, rsi
call fcn.140028ae0
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx + 0x30]
test rax, rax
jne 0x1400263de
mov rax, qword [rcx + 0x20]
mov rcx, qword [rcx + 0x18]
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx]
sub rdx, qword [rcx + rax*8 - 8]
mov qword [rsp + 0x50], rdx
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x4c]
mov rcx, rsi
call fcn.140028ae0
mov rax, qword [rsp + 0x58]
lea rcx, [rax + 0x18]
mov rdx, qword [rax + 0x30]
test rdx, rdx
jne 0x14002641c
mov rdx, qword [rax + 0x20]
add rdx, 0xffffffffffffffff
mov qword [rax + 0x30], rdx
call fcn.140028f30
lea rcx, [rdi + 0x118]
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x4c]
call fcn.140028620
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x170], xmm0
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsi + 0x28]
cmp qword [rsi + 0x30], 0xf
jbe 0x140026462
mov rsi, qword [rsi + 0x18]
jmp 0x140026466
add rsi, 0x18
cmp rbp, 0xf
mov qword [rsp + 0x38], r14
ja 0x140026485
movdqu xmm0, xmmword [rsi]
movdqa xmmword [rsp + 0x160], xmm0
mov ebx, 0xf
jmp 0x1400264dd
mov rbx, rbp
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x1400264bd
lea rcx, [rbx + 0x28]
call fcn.1400edc90
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1400264c9
lea rcx, [rbx + 1]
call fcn.1400edc90
mov rcx, rax
mov qword [rsp + 0x160], rcx
lea r8, [rbp + 1]
mov rdx, rsi
call fcn.1400f0ce0
mov qword [rsp + 0x170], rbp
mov qword [rsp + 0x178], rbx
lea r13, [rdi + 0x1a0]
lea rdx, [rsp + 0x40]
lea r14, [rsp + 0x160]
mov rcx, r13
mov r8, r14
call fcn.140053820
mov rax, qword [rsp + 0x40]
cmp rax, qword [rdi + 0x1a8]
jne 0x14002655c
mov rsi, qword [rdi + 0x1b0]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, rsi
mul rcx
shr rdx, 2
add edx, edx
lea eax, [rdx + rdx*2]
sub esi, eax
add esi, 1
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x160]
mov rcx, r13
call fcn.140029050
mov rax, qword [rsp + 0x58]
mov dword [rax + 0x30], esi
lea rax, [0x140155980]
mov qword [rsp + 0x58], rax
lea rbx, [rsp + 0xe0]
lea rbp, [rsp + 0x60]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xdc], 0x78
xor r8d, r8d
mov rcx, rbx
mov rdx, rbp
call fcn.140005640
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 4]
lea rcx, [0x140155978]
mov qword [rsp + rax + 0x58], rcx
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x88]
mov dword [rsp + rax + 0x54], ecx
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x60], rax
mov ecx, 0x10
call fcn.1400edc90
mov rsi, rax
mov ecx, 1
call fcn.1400ef700
mov qword [rsi + 8], rax
mov qword [rsp + 0xc0], rsi
lea rax, [rsp + 0x68]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xac]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xa8], 0
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
movdqu xmmword [rsp + 0x88], xmm0
lea rax, [0x140155990]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0xc8], 0
mov dword [rsp + 0xd0], 4
lea r15, [rsp + 0x140]
mov rcx, r13
mov rdx, r15
mov r8, r14
call fcn.140029050
mov rax, qword [rsp + 0x140]
mov r9d, dword [rax + 0x30]
cmp qword [rsp + 0x178], 0xf
jbe 0x1400266c2
mov r14, qword [rsp + 0x160]
lea rdx, str._s:_e_0_3_dm
mov rcx, r15
mov r8, r14
call fcn.1400226b0
mov r8, qword [rsp + 0x150]
cmp qword [rsp + 0x158], 0xf
jbe 0x1400266ef
mov r15, qword [rsp + 0x140]
lea rcx, [rsp + 0x58]
mov rdx, r15
call fcn.1400032d0
mov rax, qword [rsp + 0x158]
cmp rax, 0x10
jb 0x14002674d
mov rcx, qword [rsp + 0x140]
add rax, 1
cmp rax, 0x1000
jb 0x140026748
test cl, 0x1f
jne 0x140026ad4
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140026ad4
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x140026ad4
call fcn.1400edcd0
mov r13, rbp
mov r15, rbx
movzx eax, byte [rsp + 0x4c]
movabs rcx, 0xcbf29ce484222325
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx edx, byte [rsp + 0x4d]
xor rdx, rcx
imul rdx, rax
movzx ecx, byte [rsp + 0x4e]
xor rcx, rdx
imul rcx, rax
movzx ebx, byte [rsp + 0x4f]
xor rbx, rcx
imul rbx, rax
and rbx, qword [rdi + 0x190]
mov rcx, qword [rdi + 0x168]
mov rdx, qword [rdi + 0x178]
lea r14, [rdi + 0x160]
lea rbp, [rbx + rbx]
add rbp, 1
shl rbx, 4
mov rdi, qword [rdx + rbx]
mov esi, dword [rsp + 0x4c]
mov rax, rdi
jmp 0x1400267d3
mov rax, qword [rax]
mov rbx, rdi
cmp rdi, rcx
je 0x1400267e2
mov rbx, qword [rdx + rbp*8]
mov rbx, qword [rbx]
cmp rbx, rax
je 0x140026831
cmp dword [rax + 0x10], esi
jne 0x1400267d0
cmp rcx, rax
je 0x140026831
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
mov rbp, rcx
sub rbp, rdx
jae 0x14002680b
sub rcx, rdx
add rcx, qword [rax + 0x20]
mov rbp, rcx
test rbp, rbp
je 0x140026831
lea rbx, [0x140155e37]
lea rsi, [rsp + 0x58]
nop dword [rax]
mov rcx, rsi
mov rdx, rbx
call fcn.140001700
add rbp, 0xffffffffffffffff
jne 0x140026820
mov rcx, qword [rsp + 0x1f0]
test rcx, rcx
je 0x140026848
lea rdx, [rsp + 0x58]
call fcn.14004d850
cmp r12b, 0x45
mov rbx, r15
mov rbp, r13
jne 0x14002690e
lea rcx, [rsp + 0x50]
call fcn.14002a500
lea rdx, str.___.3f_ms_
lea rdi, [rsp + 0x140]
mov rcx, rdi
movdqa xmm2, xmm0
movq r8, xmm0
call fcn.1400226b0
mov r8, qword [rsp + 0x150]
cmp qword [rsp + 0x158], 0xf
jbe 0x14002689d
mov rdi, qword [rsp + 0x140]
lea rcx, [rsp + 0x58]
mov rdx, rdi
call fcn.1400032d0
mov rax, qword [rsp + 0x158]
cmp rax, 0x10
jb 0x1400268fb
mov rcx, qword [rsp + 0x140]
add rax, 1
cmp rax, 0x1000
jb 0x1400268f6
test cl, 0x1f
jne 0x140026ad4
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140026ad4
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x140026ad4
call fcn.1400edcd0
lea rdx, str.e_0_m
lea rcx, [rsp + 0x58]
call fcn.140001700
jmp 0x140026981
lea rdx, str.e_0_m
lea rcx, [rsp + 0x58]
call fcn.140001700
cmp r12b, 0x42
jne 0x140026981
lea rdx, [rsp + 0x140]
lea r8, [rsp + 0x4c]
mov rcx, r14
call fcn.140028ae0
mov rsi, qword [rsp + 0x140]
lea rcx, [rsi + 0x18]
mov edx, 1
call fcn.1400295c0
mov rax, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x30]
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx]
mov qword [rax + rcx*8], rdx
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x30]
add rax, 0xffffffffffffffff
xor edx, edx
cmp rcx, rax
lea rax, [rcx + 1]
cmove rax, rdx
mov qword [rsi + 0x30], rax
mov rcx, rbp
mov rsi, qword [rsp + 0x38]
mov rdx, rsi
call fcn.140017ec0
mov rax, qword [rsp + 0x58]
movsxd rcx, dword [rax + 4]
lea rdx, [0x140155978]
mov qword [rsp + rcx + 0x58], rdx
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x88]
mov dword [rsp + rax + 0x54], ecx
lea rcx, [rbx - 0x80]
lea rax, [0x140155990]
mov qword [rsp + 0x60], rax
call fcn.1400177c0
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
je 0x140026a0c
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140026a04
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x140026a04
mov rbp, qword [rax]
mov edx, 1
mov rcx, rax
call qword [rbp]
mov rcx, rdi
call fcn.1400edcd0
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0xe0], rax
mov rcx, rbx
call fcn.1400ef330
mov rax, qword [rsp + 0x178]
cmp rax, 0x10
jb 0x140026a6c
mov rcx, qword [rsp + 0x160]
add rax, 1
cmp rax, 0x1000
jb 0x140026a67
test cl, 0x1f
jne 0x140026ad4
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140026ad4
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x140026ad4
call fcn.1400edcd0
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [0x1401954a8]
test eax, eax
je 0x140026a8b
mov eax, dword [0x1401954a8]
test eax, eax
jne 0x140026ac0
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.1400edc60
mov rax, rsi
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14004be00
add dword [rax + 0x38], 1
jmp 0x140026383
call fcn.14004be00
mov ecx, dword [rax + 0x38]
test ecx, ecx
je 0x140026a8b
add ecx, 0xffffffff
mov dword [rax + 0x38], ecx
jmp 0x140026a8b
call fcn.1400f4650
ud2