Function at 0x140057a80
Capabilities:
Hash data using fnv
Register raw input devices

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x14022b800]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r12, r9
mov esi, r8d
mov r13d, edx
mov rbp, rcx
mov edi, r8d
shr edi, 0x18
mov r14d, r8d
shr r14d, 0x10
mov r15d, r8d
shr r15d, 8
mov rbx, qword [rcx + 0x240]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x28], xmm1
mov eax, 1
test rbx, rbx
je 0x140057b1f
mov qword [rsp + 0x28], rbx
lock xadd dword [rbx], eax
inc eax
cmp eax, 1
jle 0x140057b0d
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
cmp dword [rbx + 4], ecx
je 0x140057b1c
mov edx, 0xffffffff
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
mov dword [rbx + 4], ecx
inc dword [rbx + 8]
movzx edx, sil
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx eax, r15b
xor rdx, rax
imul rdx, rcx
movzx eax, r14b
xor rdx, rax
imul rdx, rcx
mov eax, edi
xor rdx, rax
imul rdx, rcx
mov rcx, qword [rbp + 0x100]
and rcx, rdx
shl rcx, 4
mov rax, qword [rbp + 0xe8]
add rax, rcx
mov rbx, qword [rax + 8]
mov rcx, qword [rbp + 0xd8]
mov r15d, 0xffffffff
cmp rbx, rcx
je 0x140057e50
mov rax, qword [rax]
cmp esi, dword [rbx + 0x10]
je 0x140057ba9
cmp rbx, rax
je 0x140057e50
mov rbx, qword [rbx + 8]
cmp esi, dword [rbx + 0x10]
jne 0x140057b97
test rbx, rbx
cmove rbx, rcx
cmp rbx, rcx
je 0x140057e50
mov rcx, qword [rbx + 0x18]
mov rdi, qword [rcx]
cmp rdi, rcx
je 0x140057c25
cmp dword [rdi + 0x10], r13d
jne 0x140057bd1
cmp qword [rdi + 0x18], r12
je 0x140057bdc
mov rax, qword [rdi]
mov rdi, rax
cmp rax, rcx
jmp 0x140057bc3
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
mov qword [rcx], rax
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
mov qword [rcx + 8], rax
dec qword [rbx + 0x20]
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x140057c11
mov eax, r15d
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x140057c11
mov rax, qword [rcx]
call qword [rax + 8]
mov edx, 0x30
mov rcx, rdi
call fcn.14014f59c
mov byte [rbp + 0x110], 1
cmp esi, 0x8081
jne 0x140057cd4
cmp qword [rbx + 0x20], 0
jne 0x140057c49
mov rcx, qword [rbp + 0x298]
test rcx, rcx
je 0x140057c49
call fcn.14005bb80
mov edi, 1
cmp qword [rbx + 0x20], 0
jne 0x140057e20
movzx edx, byte [rbx + 0x10]
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx eax, byte [rbx + 0x11]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rbx + 0x12]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rbx + 0x13]
xor rdx, rax
imul rdx, rcx
and rdx, qword [rbp + 0x100]
shl rdx, 4
add rdx, qword [rbp + 0xe8]
mov rax, qword [rdx]
cmp qword [rdx + 8], rbx
jne 0x140057de6
cmp rax, rbx
jne 0x140057ddc
mov rax, qword [rbp + 0xd8]
mov qword [rdx], rax
mov qword [rdx + 8], rax
jmp 0x140057df1
cmp esi, 0x808f
jne 0x140057cf3
cmp qword [rbx + 0x20], 0
jne 0x140057c49
mov rcx, qword [rbp + 0x2a0]
jmp 0x140057c3f
cmp esi, 0x80d8
jne 0x140057d12
cmp qword [rbx + 0x20], 0
jne 0x140057c49
mov rcx, qword [rbp + 0x2a8]
jmp 0x140057c3f
cmp esi, 0x8084
jne 0x140057d75
mov edi, 1
cmp qword [rbx + 0x20], 0
jne 0x140057e20
mov dword [rsp + 0x38], 0x60001
mov dword [rsp + 0x3c], edi
mov qword [rsp + 0x40], 0
lea r8d, [rdi + 0xf]
mov edx, edi
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x140057c4e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Failed_to_unregister_for_raw_input__keyboard__0x_08x
lea ecx, [rdi + 2]
call fcn.1400838f0
jmp 0x140057c4e
cmp esi, 0x8085
jne 0x140057c49
cmp qword [rbx + 0x20], 0
jne 0x140057c49
mov edi, 1
mov dword [rsp + 0x48], 0x20001
mov dword [rsp + 0x4c], edi
mov qword [rsp + 0x50], 0
lea r8d, [rdi + 0xf]
mov edx, edi
lea rcx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x140057c4e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Failed_to_unregister_for_raw_input__mouse__0x_08x
lea ecx, [rdi + 2]
call fcn.1400838f0
jmp 0x140057c4e
mov rax, qword [rbx + 8]
mov qword [rdx + 8], rax
jmp 0x140057df1
cmp rax, rbx
jne 0x140057df1
mov rax, qword [rbx]
mov qword [rdx], rax
mov rcx, qword [rbx]
dec qword [rbp + 0xe0]
mov rax, qword [rbx + 8]
mov qword [rax], rcx
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
lea rcx, [rbx + 0x18]
call fcn.1400598b0
mov edx, 0x28
mov rcx, rbx
call fcn.14014f59c
mov edx, esi
mov rcx, rbp
call fcn.1400596a0
mov rcx, qword [rbp + 0x50]
test rcx, rcx
je 0x140057e46
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8073
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x140057e55
mov rcx, rbp
call fcn.140057f00
jmp 0x140057e55
mov edi, 1
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140057e93
add dword [rcx + 8], 0xffffffff
mov edx, dword [rcx + 8]
jne 0x140057e6f
mov dword [rcx + 4], 0
mov eax, r15d
lock xadd dword [rcx], eax
cmp eax, 1
je 0x140057e93
test edx, edx
jne 0x140057e93
xor r8d, r8d
mov edx, edi
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140057ed0
add dword [rax + 8], 0xffffffff
mov ecx, dword [rax + 8]
jne 0x140057ead
mov dword [rax + 4], 0
lock xadd dword [rax], r15d
cmp r15d, 1
je 0x140057ed0
test ecx, ecx
jne 0x140057ed0
xor r8d, r8d
mov edx, edi
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
xor eax, eax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14014f2f0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret