Function at 0x140019e80
Capabilities:
Register raw input devices

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x238
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x1a0], xmm6
and rsp, 0xffffffffffffff80
mov rdi, rdx
mov rsi, rcx
mov byte [rsp + 0x80], 1
mov rax, qword [0x1402223f0]
cmp rax, 2
jne 0x14001a6ff
cmp byte [rsp + 0x80], 0
jne 0x14001a71a
call sub.kernel32.dll_GetCurrentThreadId
mov dword [rsp + 0x74], eax
cmp byte [rdi + 0x10], 0
jne 0x140019ef2
mov eax, dword [rsp + 0x74]
cmp eax, dword [0x140222414]
jne 0x14001a87c
cmp byte [rdi + 0x11], 0
je 0x140019f09
mov rax, qword [0x140222400]
cmp rax, 3
jne 0x14001a76d
mov rax, qword [0x14016b468]
cmp rax, 2
jne 0x14001a7bf
mov rax, qword [0x14016b478]
movabs rcx, 0x300000050
mov qword [rsp + 0x80], rcx
lea rcx, [0x14001f130]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], 0
mov rbx, qword [0x1402106c0]
mov qword [rsp + 0x98], rbx
xorps xmm6, xmm6
movups xmmword [rsp + 0xa0], xmm6
movups xmmword [rsp + 0xb0], xmm6
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0x80]
call sub.user32.dll_RegisterClassExW
mov rax, qword [0x14016b468]
cmp rax, 2
jne 0x14001a763
mov rdx, qword [0x14016b478]
mov qword [rsp + 0x50], rbx
movups xmmword [rsp + 0x40], xmm6
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov ecx, 0x80800a0
xor r8d, r8d
xor r9d, r9d
call sub.user32.dll_CreateWindowExW
mov r14, rax
mov r8d, 0x90000000
mov rcx, rax
mov edx, 0xfffffff0
call sub.user32.dll_SetWindowLongPtrW
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14001a02d
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14001a822
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x11
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14001a822
mov rbx, rax
movdqu xmm0, xmmword [str.winit_wait_threadFailed_to_spawn_winit_wait_thread]
movdqu xmmword [rax], xmm0
mov byte [rax + 0x10], 0x64
call fcn.140136d80
mov r15, rax
lea rcx, [rbx + 7]
and rcx, 0xfffffffffffffff8
xor eax, eax
sub rcx, rbx
je 0x14001a09b
je 0x14001a09b
xor edx, edx
nop word cs:[rax + rax]
cmp byte [rbx + rdx], 0
je 0x14001a7cc
inc rdx
cmp rcx, rdx
jne 0x14001a080
mov rax, rcx
cmp rcx, 1
ja 0x14001a0d4
movdqu xmm0, xmmword [rbx + rax]
movdqa xmm1, xmmword [0x14016c5f0]
paddq xmm1, xmm0
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rcx, xmm1
movabs rdx, 0x8080808080808080
test rcx, rdx
je 0x14001a284
mov rcx, rax
mov r9, rbx
add r9, rcx
mov r8d, 0x11
sub r8, rcx
mov rax, rcx
xor edx, edx
nop dword [rax + rax]
cmp byte [r9 + rdx], 0
je 0x14001a7c9
inc rdx
cmp r8, rdx
jne 0x14001a0f0
mov qword [rsp + 0x80], 0x11
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], 0x11
lea rcx, [rsp + 0x80]
call fcn.140031780
mov rcx, rax
call fcn.140112b80
lock inc qword [rax]
jle 0x14001a820
mov r12, rax
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14001a170
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14001a831
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x30
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14001a831
mov r13, rax
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x1d0], rax
lock inc qword [rax]
jle 0x14001a820
movzx eax, byte [0x1402222c0]
test al, al
mov qword [rsp + 0x208], rsi
je 0x14001a219
mov byte [0x1402222c0], 1
call fcn.1401357e0
test rax, rax
je 0x14001aa32
mov rbx, qword [rax]
mov qword [rax], 0
test rbx, rbx
je 0x14001a219
lock inc qword [rbx]
jle 0x14001a820
mov byte [0x1402222c0], 1
call fcn.1401357e0
test rax, rax
je 0x14001aa24
mov rcx, qword [rax]
mov qword [rax], rbx
mov rsi, rdi
test rcx, rcx
jne 0x14001a24d
jmp 0x14001a26e
movzx eax, byte [0x1402222c0]
test al, al
je 0x14001a2a3
mov byte [0x1402222c0], 1
call fcn.1401357e0
test rax, rax
je 0x14001aa32
mov rcx, qword [rax]
mov qword [rax], 0
xor ebx, ebx
mov rsi, rdi
test rcx, rcx
je 0x14001a26e
lock dec qword [rcx]
jne 0x14001a26e
mov rdi, r15
call fcn.140085a10
mov r15, qword [rsp + 0x1d0]
mov rcx, qword [r15 + 0x10]
test rcx, rcx
jne 0x14001a2bc
jmp 0x14001a2c7
mov rdi, r15
mov r15, qword [rsp + 0x1d0]
mov rcx, qword [r15 + 0x10]
test rcx, rcx
jne 0x14001a2bc
jmp 0x14001a2c7
or rax, 0x10
mov r8, rax
sub r8, 0x11
je 0x14001a103
mov r9, rbx
add r9, rax
neg r8
jmp 0x14001a0e6
mov rsi, rdi
mov rdi, r15
xor ebx, ebx
mov r15, qword [rsp + 0x1d0]
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x14001a2c7
lock inc qword [rcx + 0x18]
jle 0x14001a9ce
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14001a2f2
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14001a840
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x28
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14001a840
mov qword [rax], r12
mov qword [rax + 8], r13
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r14
mov ecx, dword [rsp + 0x74]
mov dword [rax + 0x20], ecx
lea r8, [0x1401749b0]
mov rcx, rdi
mov rdx, rax
call fcn.140136ee0
mov rbx, rdx
test rax, rax
jne 0x14001a8c5
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], rbx
mov rcx, rbx
call sub.kernel32.dll_CloseHandle
lock dec qword [r12]
mov rdi, rsi
jne 0x14001a373
mov rcx, qword [rsp + 0x80]
call fcn.140084760
mov rax, qword [rsp + 0x88]
lock dec qword [rax]
mov rsi, qword [rsp + 0x208]
jne 0x14001a396
lea rcx, [rsp + 0x88]
call fcn.14013d4a0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x1f0], xmm0
movdqa xmmword [rsp + 0x1e0], xmm0
movdqa xmmword [rsp + 0x1d0], xmm0
lea rbx, str.Winit::SendWaitThreadId
mov rcx, rbx
call fcn.140166a80
mov r15d, eax
mov rcx, rbx
call fcn.140166a80
lea rcx, [rsp + 0x1d0]
mov rdx, 0xffffffffffffffff
mov r8d, r15d
mov r9d, eax
call sub.user32.dll_GetMessageW
mov dword [rsp + 0x78], eax
mov rcx, rbx
call fcn.140166a80
mov dword [rsp + 0x7c], eax
cmp dword [rsp + 0x1d8], eax
jne 0x14001a91b
mov r13d, dword [rsp + 0x1e8]
call fcn.1401164b0
mov rbx, rax
mov r12d, edx
call fcn.14013c710
test rax, rax
je 0x14001a9a2
movups xmm6, xmmword [rax]
inc qword [rax]
movups xmm0, xmmword [0x1401e5b70]
movups xmmword [rsp + 0x98], xmm0
movups xmm0, xmmword [0x1401e5b60]
movups xmmword [rsp + 0x88], xmm0
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14001a476
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14001a84f
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0xb8
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14001a84f
mov r15, rax
mov qword [rax + 8], 1
mov dword [rax + 0x18], 0x3b9aca00
mov qword [rax + 0x20], rbx
mov dword [rax + 0x28], r12d
mov qword [rax + 0x30], 0
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movups xmmword [rax + 0x38], xmm0
movups xmmword [rax + 0x48], xmm1
mov rax, qword [rsp + 0xa0]
mov qword [r15 + 0x58], rax
movups xmmword [r15 + 0x60], xmm6
mov qword [r15 + 0x70], 0
mov qword [r15 + 0x80], r14
xorps xmm0, xmm0
movups xmmword [r15 + 0x88], xmm0
mov qword [r15 + 0x98], 8
movups xmmword [r15 + 0xa0], xmm0
mov dword [r15 + 0xb0], r13d
mov byte [r15 + 0xb4], 0
mov qword [r15], 2
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x100], xmm0
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14001a555
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14001a85e
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x280
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14001a85e
mov r12, rax
and r12, 0xffffffffffffff80
lea rbx, [r12 + 0x80]
mov qword [r12 + 0x78], rax
lea rdx, [rsp + 0x80]
mov r8d, 0x100
mov rcx, rbx
call sub.msvcrt.dll_memcpy
mov qword [r12 + 0x180], 0
mov byte [r12 + 0x188], 0
mov qword [r12 + 0x190], 0
mov qword [r12 + 0x198], 8
xorps xmm0, xmm0
movaps xmmword [r12 + 0x1a0], xmm0
mov qword [r12 + 0x1b0], 8
mov qword [r12 + 0x1b8], 0
mov byte [r12 + 0x1c0], 1
mov qword [r12 + 0x200], 1
mov qword [r12 + 0x208], 1
mov byte [r12 + 0x210], 0
movzx eax, byte [0x140222418]
mov rcx, qword [0x140222380]
test rcx, rcx
jne 0x14001a63b
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14001a86d
mov rcx, rax
mov qword [0x140222380], rax
mov r8d, 0x18
xor edx, edx
call fcn.140167f74
test rax, rax
je 0x14001a86d
mov qword [rax], 1
mov qword [rax + 8], rbx
mov qword [rax + 0x10], r15
mov rcx, r14
mov edx, 0xffffffeb
mov r8, rax
call sub.user32.dll_SetWindowLongPtrW
movabs rax, 0x200000020001
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], r14
movabs rax, 0x200000060001
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], r14
lea rcx, [rsp + 0x80]
mov edx, 2
mov r8d, 0x10
call sub.user32.dll_RegisterRawInputDevices
mov qword [rsi], 1
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r14
mov eax, dword [rsp + 0x74]
mov dword [rsi + 0x20], eax
movups xmm0, xmmword [rdi]
mov qword [rdi], 0
movups xmmword [rsi + 0x28], xmm0
movaps xmm6, xmmword [rbp + 0x1a0]
lea rsp, [rbp + 0x1b8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [rsp + 0x80]
call fcn.140024100
cmp byte [rsp + 0x80], 0
je 0x140019ed3
lea rax, str.Creating_EventLoop_multiple_times_is_not_supported.
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rax, [0x14020d258]
mov qword [rsp + 0x90], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
lea rdx, str._home_drados_.cargo_registry_src_index.crates.io_6f17d22bba15001f_winit_0.28.7_src_event_loop.rshM
lea rcx, [rsp + 0x80]
call fcn.140034e00
call fcn.140024160
jmp 0x140019fa2
mov byte [rsp + 0x1d0], 1
lea rax, [rsp + 0x1d0]
mov qword [rsp + 0x80], rax
lea rax, str._home_drados_.cargo_registry_src_index.crates.io_6f17d22bba15001f_winit_0.28.7_src_platform_impl_windows_dpi.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140222400]
lea r9, [0x14020d1c8]
lea r8, [rsp + 0x80]
xor edx, edx
call fcn.140112eb0
mov rax, qword [0x14016b468]
cmp rax, 2
je 0x140019f1a
call fcn.140024160
jmp 0x140019f1a
add rdx, rax
mov qword [rsp + 0x80], 0x11
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], 0x11
mov qword [rsp + 0x98], rdx
lea rax, str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadmod.rs
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x140174ae0]
lea r8, [rsp + 0x80]
mov edx, 0x2f
call fcn.14003bb10
ud2
mov ecx, 1
mov edx, 0x11
call fcn.1400315c0
mov ecx, 8
mov edx, 0x30
call fcn.1400315c0
mov ecx, 8
mov edx, 0x28
call fcn.1400315c0
mov ecx, 8
mov edx, 0xb8
call fcn.1400315c0
mov ecx, pe_nt_image_headers64
mov edx, 0x200
call fcn.1400315c0
mov ecx, 8
mov edx, 0x18
call fcn.1400315c0
lea rax, str.Initializing_the_event_loop_outside_of_the_main_thread_is_a_significant_cross_platform_compatibility_hazard._If_you_absolutely_need_to_create_an_EventLoop_on_a_different_thread__you_can_use_the__EventLoopBuilderExtWindows::any_thread__function.
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rax, [0x14020d258]
mov qword [rsp + 0x90], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
lea rdx, str._home_drados_.cargo_registry_src_index.crates.io_6f17d22bba15001f_winit_0.28.7_src_platform_impl_windows_event_loop.rsthis_shouldnt_be_possible._please_open_an_issue_with_Winit._error_code:
lea rcx, [rsp + 0x80]
call fcn.140034e00
lock dec qword [r15]
jne 0x14001a8d8
lea rcx, [rsp + 0x1d0]
call fcn.14013d4a0
lock dec qword [r12]
jne 0x14001a8e7
mov rcx, r12
call fcn.140084760
mov qword [rsp + 0x80], rbx
lea rax, str._home_drados_.cargo_registry_src_index.crates.io_6f17d22bba15001f_winit_0.28.7_src_platform_impl_windows_event_loop.rsthis_shouldnt_be_possible._please_open_an_issue_with_Winit._error_code:
mov qword [rsp + 0x20], rax
lea rcx, [0x140174f11]
lea r9, [0x140174aa0]
lea r8, [rsp + 0x80]
mov edx, 0x21
call fcn.14003bb10
lea rax, [rsp + 0x78]
mov qword [rsp + 0x210], rax
lea rax, [0x1400411f0]
mov qword [rsp + 0x218], rax
lea rax, [0x14020d6e0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rax, [rsp + 0x210]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 1
mov qword [rsp + 0xa0], 0
lea rdx, [rsp + 0x1d8]
lea rax, str._home_drados_.cargo_registry_src_index.crates.io_6f17d22bba15001f_winit_0.28.7_src_platform_impl_windows_event_loop.rsthis_shouldnt_be_possible._please_open_an_issue_with_Winit._error_code:
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x7c]
lea r9, [rsp + 0x80]
xor ecx, ecx
call fcn.140166b80
lea rax, [0x1401e5ce8]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x140174a80]
lea r8, [rsp + 0x80]
mov edx, 0x46
call fcn.14003bb10
add rcx, 0x10
xor edx, edx
call fcn.140116390
lea rax, str.too_many_running_threads_in_thread_scopeH
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rax, [0x14020d258]
mov qword [rsp + 0x90], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
lea rdx, str.library_std_src_thread_scoped.rs
lea rcx, [rsp + 0x80]
call fcn.140034e00
lock dec qword [rbx]
jne 0x14001aa32
mov rcx, rbx
call fcn.140135940
lea rax, str.library_std_src_threadlocal.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x1401e2460]
lea r8, [rsp + 0x80]
mov edx, 0x46
call fcn.14003bb10
mov rsi, rax
lock dec qword [rbx]
jne 0x14001aa6f
mov rcx, rbx
call fcn.140135940
mov rcx, rsi
call fcn.140168500
int3