Function at 0x14003e770
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x238
movaps xmmword [rsp + 0x220], xmm6
mov rbp, rdx
mov rax, qword [0x1400a2318]
xor rax, rsp
mov qword [rsp + 0x218], rax
mov qword [rdx], 0
cmp byte [r9], 0
je 0x14003f20b
mov r14, r9
mov ebx, r8d
mov r12, rcx
lea r15, [rcx + 0x380]
mov rcx, r15
call fcn.14003bf80
test rax, rax
jne 0x14003f20b
mov byte [rsp + 0x6f], bl
mov ebx, dword [rsp + 0x2d8]
mov rdi, qword [rsp + 0x2c8]
mov rsi, qword [rsp + 0x2b8]
mov r13, qword [rsp + 0x2b0]
mov rcx, r15
mov rdx, r15
call fcn.14003bfc0
test bl, 4
jne 0x14003e80f
mov qword [rsp + 0x90], rsi
jmp 0x14003e831
xor eax, eax
test ebx, 0x300
mov rcx, qword [r12 + 0x208]
cmovne rax, rcx
xor rsi, rax
mov qword [rsp + 0x90], rsi
xor r13, rcx
mov rdx, qword [r12 + 0x218]
mov rcx, qword [rdi]
call fcn.14002da70
mov rbx, rax
call fcn.1400285b0
test al, al
je 0x14003e877
lea rcx, [rsp + 0xd8]
call fcn.1400282f0
test byte [r14], 1
je 0x14003e889
mov rcx, r12
call fcn.14003d670
lea rcx, [r12 + 0x370]
call fcn.14003bf80
jmp 0x14003e88b
mov qword [rsp + 0xd8], 0
test byte [r14], 1
jne 0x14003e860
xor eax, eax
mov qword [rsp + 0x78], rax
mov esi, dword [rsp + 0x2c0]
call sub.KERNEL32.dll_GetCurrentThreadId
cmp esi, eax
mov qword [rsp + 0xa8], rbx
jne 0x14003ecb4
call fcn.14004d9e0
mov edx, dword [rsp + 0x2c0]
mov rcx, rax
call fcn.14004da40
mov rsi, rax
mov eax, dword [0x1400a8000]
mov ecx, dword [0x1400a5148]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003f25a
mov rcx, qword [0x1400a7ff8]
call fcn.14003bf80
test rsi, rsi
je 0x14003ecb4
cmp rsi, rax
je 0x14003ecb4
cmp byte [rsi], 0
je 0x14003ecb4
mov qword [rsp + 0x98], r15
mov qword [rsp + 0xa0], rbp
mov rcx, qword [0x1400a7ff8]
mov qword [rsp + 0x88], rsi
mov rdx, rsi
call fcn.14003bfc0
lea rcx, [r12 + 0x10]
mov qword [rsp + 0xb0], rcx
call fcn.140020570
lea rcx, [r12 + 0x138]
movzx eax, byte [rsp + 0x2c0]
movabs rdx, 0xcbf29ce484222325
xor rdx, rax
movabs rax, 0x100000001b3
imul rdx, rax
movzx ebp, byte [rsp + 0x2c1]
xor rbp, rdx
imul rbp, rax
movzx edx, byte [rsp + 0x2c2]
xor rdx, rbp
imul rdx, rax
movzx ebp, byte [rsp + 0x2c3]
xor rbp, rdx
imul rbp, rax
and rbp, qword [r12 + 0x168]
mov rax, qword [r12 + 0x140]
mov rdx, qword [r12 + 0x150]
lea rdi, [rbp + 1]
add rdi, rbp
shl rbp, 4
mov rbp, qword [rdx + rbp]
mov ebx, dword [rsp + 0x2c0]
mov r15, rbp
mov qword [rsp + 0x70], r13
jmp 0x14003e9e3
mov r15, qword [r15]
mov rsi, rbp
cmp rbp, rax
je 0x14003e9f2
mov rsi, qword [rdx + rdi*8]
mov rsi, qword [rsi]
cmp rsi, r15
je 0x14003eb04
cmp dword [r15 + 0x10], ebx
jne 0x14003e9e0
cmp rax, r15
je 0x14003eb04
mov qword [rsp + 0x80], r12
lea rax, [0x140080ec1]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], 1
lea rdi, [r15 + 0x18]
cmp qword [r15 + 0x30], 0xf
mov rax, rdi
jbe 0x14003ea3f
mov rax, qword [r15 + 0x18]
mov qword [rsp + 0xb8], rax
mov rax, qword [r15 + 0x28]
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0x20], 1
lea rcx, [rsp + 0xe0]
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0xc8]
xor r9d, r9d
call fcn.14004a0d0
mov r12, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xe8]
cmp r12, r13
mov rsi, qword [rsp + 0x88]
je 0x14003ebc1
mov rbp, rdi
mov rcx, rsi
call fcn.14006d740
mov rdi, rax
cmp qword [r12 + 8], rdi
jne 0x14003eac8
mov rcx, qword [r12]
mov rdx, rsi
mov r8, rdi
call fcn.14005ebe0
test eax, eax
je 0x14003ec1d
add r12, 0x10
cmp r13, r12
jne 0x14003eaaa
mov rax, qword [r15 + 0x28]
mov rcx, qword [r15 + 0x30]
cmp rax, rcx
jae 0x14003ebae
lea rdx, [rax + 1]
mov qword [r15 + 0x28], rdx
mov rdi, rbp
mov rdx, rbp
cmp rcx, 0x10
jb 0x14003eaf9
mov rdx, qword [rdi]
mov word [rdx + rax], 0x2c
jmp 0x14003ebc1
mov r13, r12
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0x2c0]
call fcn.1400411f0
mov rdi, qword [rsp + 0xe0]
lea rsi, [rdi + 0x18]
mov rbx, qword [rsp + 0x88]
mov rcx, rbx
call fcn.14006d740
mov r12, rax
mov rax, qword [rdi + 0x30]
cmp rax, r12
jae 0x14003eb64
mov rcx, rsi
mov rdx, r12
mov r9, rbx
call fcn.140001340
mov rbp, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
jmp 0x14003eb99
cmp rax, 0x10
mov rbp, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
jb 0x14003eb7d
mov rsi, qword [rsi]
mov qword [rdi + 0x28], r12
mov rcx, rsi
mov rdx, qword [rsp + 0x88]
mov r8, r12
call fcn.14005ece0
mov byte [rsi + r12], 0
mov r12, r13
mov rdi, qword [rsp + 0x2c8]
mov r13, qword [rsp + 0x70]
jmp 0x14003eca6
mov edx, 1
mov rdi, rbp
mov rcx, rbp
mov r9b, 0x2c
call fcn.1400151f0
mov rcx, rsi
call fcn.14006d740
mov rcx, qword [r15 + 0x28]
mov rbp, qword [r15 + 0x30]
mov rdx, rbp
sub rdx, rcx
cmp rdx, rax
jae 0x14003ebf1
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, rax
mov r9, rsi
call fcn.14000e710
jmp 0x14003ec26
mov rsi, rax
add rsi, rcx
mov qword [r15 + 0x28], rsi
cmp rbp, 0x10
jb 0x14003ec04
mov rdi, qword [rdi]
add rcx, rdi
mov rdx, qword [rsp + 0x88]
mov r8, rax
call fcn.14005ece0
mov byte [rdi + rsi], 0
jmp 0x14003ec26
cmp r13, r12
je 0x14003ead1
mov rcx, qword [rsp + 0xe0]
test rcx, rcx
mov rbp, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
mov r12, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x2c8]
mov r13, qword [rsp + 0x70]
je 0x14003eca6
mov rdx, qword [rsp + 0xf0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14003ec88
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14003f2b3
add rdx, 0x27
mov rcx, rax
call fcn.14005a6e0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], 0
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rsi, qword [rsp + 0x2a0]
mov al, byte [r14]
test al, 8
je 0x14003ece5
mov rax, qword [rsp + 0x2d0]
mov qword [rsp + 0x20], rax
mov cl, byte [rsp + 0x6f]
mov rdx, r14
mov r8, rsi
mov r9, r13
call fcn.140053450
mov al, byte [r14]
mov rbx, qword [rsp + 0x2a8]
test al, 1
je 0x14003ed95
mov rcx, rsi
mov rsi, qword [r12 + 0x408]
test rsi, rsi
je 0x14003ed8f
mov r9, qword [rsp + 0xd8]
mov edx, dword [rsp + 0x2c0]
mov eax, dword [rsp + 0x2d8]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x2d0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], r14
mov al, byte [rsp + 0x6f]
mov byte [rsp + 0x20], al
lea rdi, [rsp + 0xe0]
mov rcx, rdi
mov r8, qword [rsp + 0xa8]
call fcn.140052b40
cmp qword [rsp + 0x78], 0
setne dl
mov rcx, rdi
mov r8, rbp
call rsi
mov rcx, rdi
call fcn.140052c10
jmp 0x14003f201
mov al, byte [r14]
mov rsi, rcx
mov qword [rsp + 0x70], r13
mov ecx, 0xf
movq xmm0, rcx
pslldq xmm0, 8
movdqu xmmword [rsp + 0x200], xmm0
mov byte [rsp + 0x1f0], 0
test al, 0x10
jne 0x14003edfc
xor r13d, r13d
test al, 1
je 0x14003f132
lea rax, [r12 + 8]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
mov qword [rsp + 0x80], rax
je 0x14003ee9d
mov rdx, rbp
call fcn.14003c660
mov rsi, rax
mov dword [rsp + 0x78], 0
jmp 0x14003eebc
mov qword [rsp + 0x80], r12
mov ecx, 0x88
call fcn.14005a670
mov r13, rax
mov r9, qword [rsp + 0xd8]
mov edx, dword [rsp + 0x2c0]
mov eax, dword [rsp + 0x2d8]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x2d0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r14
mov al, byte [rsp + 0x6f]
mov byte [rsp + 0x20], al
mov rcx, r13
mov r8, qword [rsp + 0xa8]
call fcn.140052b40
mov rcx, r14
call fcn.14001d180
mov esi, dword [rax + 4]
test esi, esi
je 0x14003f11f
mov r12b, 1
xor edi, edi
lea rbx, [0x1400a8010]
xorps xmm6, xmm6
jmp 0x14003f080
mov rcx, rax
call fcn.140020570
mov al, 1
mov dword [rsp + 0x78], eax
mov rcx, r12
mov rdx, rbp
mov r8b, 1
call fcn.14003e500
mov rsi, rax
test rsi, rsi
mov rax, qword [rsp + 0x90]
je 0x14003ef40
test r13, r13
je 0x14003eedb
mov rcx, rsi
mov rdx, r13
call fcn.140052c80
jmp 0x14003ef40
mov r9, qword [rsp + 0xd8]
mov edx, dword [rsp + 0x2c0]
mov ecx, dword [rsp + 0x2d8]
mov dword [rsp + 0x58], ecx
mov rcx, qword [rsp + 0x2d0]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov rax, qword [rsp + 0x2a0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
mov al, byte [rsp + 0x6f]
mov byte [rsp + 0x20], al
mov rcx, rsi
mov r8, qword [rsp + 0xa8]
call fcn.140052d30
mov rax, qword [r12 + 0x220]
test dword [0x140086708], eax
je 0x14003efe3
mov r8b, 0x42
mov al, byte [rsp + 0x6f]
cmp al, 0x58
je 0x14003ef62
mov r8d, eax
mov qword [rsp + 0x20], rsi
lea rdx, [rsp + 0xe0]
mov rcx, r12
mov r9, rdi
call fcn.14003f2c0
mov rax, qword [rsp + 0x208]
cmp rax, 0x10
jb 0x14003efc1
mov rcx, qword [rsp + 0x1f0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14003efbc
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x14003f2b3
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.14005a6e0
movdqu xmm0, xmmword [rsp + 0xe0]
movups xmm1, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x200], xmm1
movdqa xmmword [rsp + 0x1f0], xmm0
cmp byte [rsp + 0x78], 0
je 0x14003f132
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x14003f132
mov rcx, rbx
call fcn.14005a860
mov eax, dword [0x1400a8010]
cmp eax, 0xffffffff
jne 0x14003f0ab
mov ecx, 0x18
call fcn.14005a670
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [0x1400a8008], rax
mov rcx, rbx
call fcn.14005a8d0
jmp 0x14003f0ab
mov rcx, rbx
call fcn.14005a860
mov eax, dword [0x1400a8010]
cmp eax, 0xffffffff
jne 0x14003f0e1
mov ecx, 0x18
call fcn.14005a670
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [0x1400a8008], rax
mov rcx, rbx
call fcn.14005a8d0
jmp 0x14003f0e1
test sil, 1
je 0x14003f100
mov eax, dword [0x1400a8010]
mov ecx, dword [0x1400a5148]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003f001
mov rax, qword [0x1400a8008]
mov rax, qword [rax]
cmp qword [rax + rdi], 0
je 0x14003f100
mov eax, dword [0x1400a8010]
mov ecx, dword [0x1400a5148]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003f03e
mov rax, qword [0x1400a8008]
mov rax, qword [rax]
mov rcx, qword [rax + rdi]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 8]
test al, al
je 0x14003f100
xor r12d, r12d
nop
shr esi, 1
add rdi, 8
test esi, esi
jne 0x14003f080
test r12b, r12b
mov rdi, qword [rsp + 0x2c8]
je 0x14003f23a
mov rcx, r13
call fcn.140052c10
mov rcx, r13
call fcn.14005a6d0
xor r13d, r13d
mov rbx, qword [rsp + 0x200]
test rbx, rbx
je 0x14003f1a5
mov ecx, 2
call fcn.1400230d0
test al, al
je 0x14003f1a5
lea rdx, str..._.._base_trace_event_trace_log.cc
lea rsi, [rsp + 0xe0]
mov rcx, rsi
mov r8d, 0x516
mov r9d, 2
call fcn.140023180
lea rcx, [rsp + 0xe8]
cmp qword [rsp + 0x208], 0xf
jbe 0x14003f18d
mov rdx, qword [rsp + 0x1f0]
jmp 0x14003f195
lea rdx, [rsp + 0x1f0]
mov r8, rbx
call fcn.14000e890
mov rcx, rsi
call fcn.140023620
test r13, r13
je 0x14003f1ba
mov rcx, r13
call fcn.140052c10
mov rcx, r13
call fcn.14005a6d0
mov rax, qword [rsp + 0x208]
cmp rax, 0x10
jb 0x14003f201
mov rcx, qword [rsp + 0x1f0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14003f1fc
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x14003f2b3
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.14005a6e0
mov rcx, r15
xor edx, edx
call fcn.14003bfc0
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.14005aa40
mov rax, rbp
movaps xmm6, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, byte [r14]
mov r12, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x2a8]
test al, 1
jne 0x14003edc9
jmp 0x14003f132
lea rcx, [0x1400a8000]
call fcn.14005a860
mov eax, dword [0x1400a8000]
cmp eax, 0xffffffff
jne 0x14003e8e8
mov ecx, 8
call fcn.14005a670
mov rdi, rax
mov qword [rax], 0
mov rcx, rax
xor edx, edx
call fcn.14003c010
mov qword [0x1400a7ff8], rdi
mov rdi, qword [rsp + 0x2c8]
lea rcx, [0x1400a8000]
call fcn.14005a8d0
jmp 0x14003e8e8
call fcn.140066430
ud2