Function at 0x140052660
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 [0x1401e3a68]
xor rax, rsp
mov qword [rsp + 0x218], rax
mov qword [rdx], 0
cmp byte [r9], 0
je 0x1400530fb
mov r14, r9
mov ebx, r8d
mov r12, rcx
lea r15, [rcx + 0x380]
mov rcx, r15
call fcn.1400925d0
test rax, rax
jne 0x1400530fb
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.140092610
test bl, 4
jne 0x1400526ff
mov qword [rsp + 0x90], rsi
jmp 0x140052721
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.1400500a0
mov rbx, rax
call fcn.14005da80
test al, al
je 0x140052767
lea rcx, [rsp + 0xd8]
call fcn.14005d7c0
test byte [r14], 1
je 0x140052779
mov rcx, r12
call fcn.140051560
lea rcx, [r12 + 0x370]
call fcn.1400925d0
jmp 0x14005277b
mov qword [rsp + 0xd8], 0
test byte [r14], 1
jne 0x140052750
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 0x140052ba4
call fcn.1400a2670
mov edx, dword [rsp + 0x2c0]
mov rcx, rax
call fcn.1400a26d0
mov rsi, rax
mov eax, dword [0x1401e6ce0]
mov ecx, dword [0x1401e8ff8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x18]
jg 0x14005314a
mov rcx, qword [0x1401e6cd8]
call fcn.1400925d0
test rsi, rsi
je 0x140052ba4
cmp rsi, rax
je 0x140052ba4
cmp byte [rsi], 0
je 0x140052ba4
mov qword [rsp + 0x98], r15
mov qword [rsp + 0xa0], rbp
mov rcx, qword [0x1401e6cd8]
mov qword [rsp + 0x88], rsi
mov rdx, rsi
call fcn.140092610
lea rcx, [r12 + 0x10]
mov qword [rsp + 0xb0], rcx
call fcn.14004f250
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 0x1400528d3
mov r15, qword [r15]
mov rsi, rbp
cmp rbp, rax
je 0x1400528e2
mov rsi, qword [rdx + rdi*8]
mov rsi, qword [rsi]
cmp rsi, r15
je 0x1400529f4
cmp dword [r15 + 0x10], ebx
jne 0x1400528d0
cmp rax, r15
je 0x1400529f4
mov qword [rsp + 0x80], r12
lea rax, [0x140198f24]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], 1
lea rdi, [r15 + 0x18]
cmp qword [r15 + 0x30], 0xf
mov rax, rdi
jbe 0x14005292f
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.140048a30
mov r12, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xe8]
cmp r12, r13
mov rsi, qword [rsp + 0x88]
je 0x140052ab1
mov rbp, rdi
mov rcx, rsi
call fcn.1401859f0
mov rdi, rax
cmp qword [r12 + 8], rdi
jne 0x1400529b8
mov rcx, qword [r12]
mov rdx, rsi
mov r8, rdi
call fcn.14016e7e0
test eax, eax
je 0x140052b0d
add r12, 0x10
cmp r13, r12
jne 0x14005299a
mov rax, qword [r15 + 0x28]
mov rcx, qword [r15 + 0x30]
cmp rax, rcx
jae 0x140052a9e
lea rdx, [rax + 1]
mov qword [r15 + 0x28], rdx
mov rdi, rbp
mov rdx, rbp
cmp rcx, 0x10
jb 0x1400529e9
mov rdx, qword [rdi]
mov word [rdx + rax], 0x2c
jmp 0x140052ab1
mov r13, r12
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0x2c0]
call fcn.1400550e0
mov rdi, qword [rsp + 0xe0]
lea rsi, [rdi + 0x18]
mov rbx, qword [rsp + 0x88]
mov rcx, rbx
call fcn.1401859f0
mov r12, rax
mov rax, qword [rdi + 0x30]
cmp rax, r12
jae 0x140052a54
mov rcx, rsi
mov rdx, r12
mov r9, rbx
call fcn.140006910
mov rbp, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
jmp 0x140052a89
cmp rax, 0x10
mov rbp, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
jb 0x140052a6d
mov rsi, qword [rsi]
mov qword [rdi + 0x28], r12
mov rcx, rsi
mov rdx, qword [rsp + 0x88]
mov r8, r12
call fcn.14016e8e0
mov byte [rsi + r12], 0
mov r12, r13
mov rdi, qword [rsp + 0x2c8]
mov r13, qword [rsp + 0x70]
jmp 0x140052b96
mov edx, 1
mov rdi, rbp
mov rcx, rbp
mov r9b, 0x2c
call fcn.140013960
mov rcx, rsi
call fcn.1401859f0
mov rcx, qword [r15 + 0x28]
mov rbp, qword [r15 + 0x30]
mov rdx, rbp
sub rdx, rcx
cmp rdx, rax
jae 0x140052ae1
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, rax
mov r9, rsi
call fcn.140009a50
jmp 0x140052b16
mov rsi, rax
add rsi, rcx
mov qword [r15 + 0x28], rsi
cmp rbp, 0x10
jb 0x140052af4
mov rdi, qword [rdi]
add rcx, rdi
mov rdx, qword [rsp + 0x88]
mov r8, rax
call fcn.14016e8e0
mov byte [rdi + rsi], 0
jmp 0x140052b16
cmp r13, r12
je 0x1400529c1
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 0x140052b96
mov rdx, qword [rsp + 0xf0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140052b78
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1400531a3
add rdx, 0x27
mov rcx, rax
call fcn.14014a880
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 0x140052bd5
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.1400a7890
mov al, byte [r14]
mov rbx, qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin]
test al, 1
je 0x140052c85
mov rcx, rsi
mov rsi, qword [r12 + 0x408]
test rsi, rsi
je 0x140052c7f
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.1400a6f80
cmp qword [rsp + 0x78], 0
setne dl
mov rcx, rdi
mov r8, rbp
call rsi
mov rcx, rdi
call fcn.1400a7050
jmp 0x1400530f1
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 0x140052cec
xor r13d, r13d
test al, 1
je 0x140053022
lea rax, [r12 + 8]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
mov qword [rsp + 0x80], rax
je 0x140052d8d
mov rdx, rbp
call fcn.140050550
mov rsi, rax
mov dword [rsp + 0x78], 0
jmp 0x140052dac
mov qword [rsp + 0x80], r12
mov ecx, 0x88
call fcn.14014a810
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.1400a6f80
mov rcx, r14
call fcn.140015280
mov esi, dword [rax + 4]
test esi, esi
je 0x14005300f
mov r12b, 1
xor edi, edi
lea rbx, [0x1401e6cf0]
xorps xmm6, xmm6
jmp 0x140052f70
mov rcx, rax
call fcn.14004f250
mov al, 1
mov dword [rsp + 0x78], eax
mov rcx, r12
mov rdx, rbp
mov r8b, 1
call fcn.1400523f0
mov rsi, rax
test rsi, rsi
mov rax, qword [rsp + 0x90]
je 0x140052e30
test r13, r13
je 0x140052dcb
mov rcx, rsi
mov rdx, r13
call fcn.1400a70c0
jmp 0x140052e30
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.1400a7170
mov rax, qword [r12 + 0x220]
test dword [reloc.OLEAUT32.dll_VariantClear], eax
je 0x140052ed3
mov r8b, 0x42
mov al, byte [rsp + 0x6f]
cmp al, 0x58
je 0x140052e52
mov r8d, eax
mov qword [rsp + 0x20], rsi
lea rdx, [rsp + 0xe0]
mov rcx, r12
mov r9, rdi
call fcn.1400531b0
mov rax, qword [rsp + 0x208]
cmp rax, 0x10
jb 0x140052eb1
mov rcx, qword [rsp + 0x1f0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140052eac
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x1400531a3
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.14014a880
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 0x140053022
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140053022
mov rcx, rbx
call fcn.14014aa00
mov eax, dword [0x1401e6cf0]
cmp eax, 0xffffffff
jne 0x140052f9b
mov ecx, 0x18
call fcn.14014a810
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [0x1401e6ce8], rax
mov rcx, rbx
call fcn.14014aa70
jmp 0x140052f9b
mov rcx, rbx
call fcn.14014aa00
mov eax, dword [0x1401e6cf0]
cmp eax, 0xffffffff
jne 0x140052fd1
mov ecx, 0x18
call fcn.14014a810
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [0x1401e6ce8], rax
mov rcx, rbx
call fcn.14014aa70
jmp 0x140052fd1
test sil, 1
je 0x140052ff0
mov eax, dword [0x1401e6cf0]
mov ecx, dword [0x1401e8ff8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x18]
jg 0x140052ef1
mov rax, qword [0x1401e6ce8]
mov rax, qword [rax]
cmp qword [rax + rdi], 0
je 0x140052ff0
mov eax, dword [0x1401e6cf0]
mov ecx, dword [0x1401e8ff8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x18]
jg 0x140052f2e
mov rax, qword [0x1401e6ce8]
mov rax, qword [rax]
mov rcx, qword [rax + rdi]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test al, al
je 0x140052ff0
xor r12d, r12d
nop
shr esi, 1
add rdi, 8
test esi, esi
jne 0x140052f70
test r12b, r12b
mov rdi, qword [rsp + 0x2c8]
je 0x14005312a
mov rcx, r13
call fcn.1400a7050
mov rcx, r13
call fcn.14014a870
xor r13d, r13d
mov rbx, qword [rsp + 0x200]
test rbx, rbx
je 0x140053095
mov ecx, 2
call fcn.14003c410
test al, al
je 0x140053095
lea rdx, str..._.._base_trace_event_trace_log.cc
lea rsi, [rsp + 0xe0]
mov rcx, rsi
mov r8d, 0x516
mov r9d, 2
call fcn.14003c4c0
lea rcx, [rsp + 0xe8]
cmp qword [rsp + 0x208], 0xf
jbe 0x14005307d
mov rdx, qword [rsp + 0x1f0]
jmp 0x140053085
lea rdx, [rsp + 0x1f0]
mov r8, rbx
call fcn.140009cb0
mov rcx, rsi
call fcn.14003c960
test r13, r13
je 0x1400530aa
mov rcx, r13
call fcn.1400a7050
mov rcx, r13
call fcn.14014a870
mov rax, qword [rsp + 0x208]
cmp rax, 0x10
jb 0x1400530f1
mov rcx, qword [rsp + 0x1f0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400530ec
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x1400531a3
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.14014a880
mov rcx, r15
xor edx, edx
call fcn.140092610
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.14014ac50
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 + reloc.SHELL32.dll_IsUserAnAdmin]
test al, 1
jne 0x140052cb9
jmp 0x140053022
lea rcx, [0x1401e6ce0]
call fcn.14014aa00
mov eax, dword [0x1401e6ce0]
cmp eax, 0xffffffff
jne 0x1400527d8
mov ecx, 8
call fcn.14014a810
mov rdi, rax
mov qword [rax], 0
mov rcx, rax
xor edx, edx
call fcn.140092660
mov qword [0x1401e6cd8], rdi
mov rdi, qword [rsp + 0x2c8]
lea rcx, [0x1401e6ce0]
call fcn.14014aa70
jmp 0x1400527d8
call fcn.140178800
ud2