Function at 0x47b0d9
Capabilities:
Register raw input devices

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov byte [esp + 0x14], 1
mov edi, edx
mov ebx, ecx
mov eax, dword [0xa71024]
cmp eax, 2
je 0x47b131
lea edx, [0xa71028]
lea esi, [esp + 0x38]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x24]
mov dword [esi], edx
lea edx, [esp + 0x50]
mov dword [ecx], eax
mov dword [edx], ecx
lea ecx, [esp + 0x18]
mov dword [edx + 4], esi
mov dword [edx + 8], ecx
mov ecx, 0xa71024
push 0xa38f8c
call fcn.0056dc90
pop eax
cmp byte [esp + 0x14], 0
jne 0x47b5c2
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
cmp byte [edi + 8], 0
mov dword [esp + 0x1c], eax
jne 0x47b15c
mov eax, dword [esp + 0x1c]
cmp eax, dword [0xa7103c]
jne 0x47b5d3
cmp byte [edi + 9], 0
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edi
je 0x47b178
mov eax, dword [0xa71030]
cmp eax, 3
jne 0x47b592
call fcn.00627fbf
mov eax, dword [eax]
lea esi, [esp + 0x50]
mov edi, 0x400000
mov dword [esi], 0x30
mov dword [esi + 4], 3
mov dword [esi + 8], 0x47b89c
and dword [esi + 0xc], 0
and dword [esi + 0x10], 0
mov dword [esi + 0x14], edi
and dword [esi + 0x20], 0
and dword [esi + 0x24], 0
and dword [esi + 0x18], 0
and dword [esi + 0x1c], 0
mov dword [esi + 0x28], eax
and dword [esi + 0x2c], 0
push esi
call dword [sym.imp.user32.dll_RegisterClassExW]
call fcn.00627fbf
push 0
push edi
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [eax]
push 0x80800a0
call dword [sym.imp.user32.dll_CreateWindowExW]
push 0x90000000
push 0xfffffffffffffff0
mov dword [esp + 0x28], eax
push eax
call dword [sym.imp.user32.dll_SetWindowLongW]
and dword [esi + 8], 0
and dword [esi], 0
push 0x11
pop esi
mov ecx, esi
xor edx, edx
call fcn.00567657
mov ebx, edx
mov edi, eax
push esi
push 0x80b30c
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x24]
lea edx, [esp + 0x50]
mov dword [eax], edi
lea edi, [esp + 0x38]
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov ecx, edi
push eax
call fcn.005def20
pop eax
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 8]
mov ebx, dword [edi + 0x10]
mov dword [esp + 0x10], eax
xor eax, eax
cmp dword [edi], eax
je 0x47b258
mov eax, dword [esp + 0x3c]
jmp 0x47b25d
call fcn.005f0c80
test esi, esi
mov dword [esp + 0xc], eax
je 0x47b27e
cmp ebx, 7
ja 0x47b282
xor eax, eax
xor ecx, ecx
xor edx, edx
inc ecx
cmp ebx, edx
je 0x47b28f
cmp byte [esi + edx], 0
je 0x47b293
inc edx
jmp 0x47b271
xor ecx, ecx
jmp 0x47b2e5
mov edx, esi
xor ecx, ecx
push ebx
call fcn.00447f20
pop ecx
jmp 0x47b295
mov edx, ebx
jmp 0x47b295
mov eax, ecx
test eax, eax
je 0x47b2ab
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], edx
jmp 0x47b2ca
mov eax, dword [esp + 0x10]
lea edi, [esp + 0x50]
mov ecx, edi
mov dword [edi], esi
mov dword [edi + 8], ebx
mov dword [edi + 4], eax
call fcn.0043ae70
mov dword [edi + 4], eax
mov dword [edi + 8], edx
xor esi, esi
lea ecx, [esp + 0x50]
mov edx, str.thread_name_may_not_contain_interior_null_bytes
mov dword [ecx], esi
push 0xa0ee7c
push 0x2f
call fcn.004750bf
pop ecx
pop ecx
mov ecx, eax
call fcn.005dba60
mov dword [esp + 0x18], eax
lock inc dword [eax]
jle 0x47b5be
mov edi, eax
push 0x18
pop ecx
push 4
pop edx
call fcn.004a3937
mov esi, eax
xor eax, eax
inc eax
mov dword [esi], eax
mov dword [esi + 4], eax
and dword [esi + 8], 0
and dword [esi + 0xc], 0
mov dword [esp + 0x24], esi
lock inc dword [esi]
jle 0x47b5be
xor ecx, ecx
call fcn.005e82f0
mov ebx, eax
test eax, eax
je 0x47b33d
lock inc dword [ebx]
jle 0x47b5be
mov ecx, ebx
jmp 0x47b33f
xor ecx, ecx
call fcn.005e82f0
lea ecx, [esp + 0x50]
mov dword [ecx], eax
call fcn.0047b7f4
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x47b35e
add ecx, 8
call fcn.005ded70
push 0x14
pop ecx
push 4
pop edx
call fcn.004a3937
mov ecx, dword [esp + 0x1c]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov edx, dword [esp + 0xc]
lea ebx, [esp + 0x50]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov ecx, ebx
push 0x80aaac
push eax
call fcn.005f0e00
pop eax
pop ecx
movzx eax, byte [ebx]
cmp eax, 4
jne 0x47b5ff
lea ebx, [esp + 0x54]
mov eax, dword [ebx]
mov dword [ebx - 4], edi
mov dword [ebx], esi
mov dword [ebx + 4], eax
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
lea esi, [esp + 0x50]
mov ecx, esi
call fcn.00626882
mov ecx, ebx
call fcn.0047b7e5
and dword [esi + 0x14], 0
and dword [esi + 0x10], 0
and dword [esi + 0x18], 0
xorps xmm0, xmm0
mov ecx, 0xa70bb0
movaps xmmword [esi], xmm0
call fcn.00625819
mov ecx, 0xa70bb0
mov edi, eax
call fcn.00625819
push eax
push edi
push 0xffffffffffffffff
push esi
call dword [sym.imp.user32.dll_GetMessageW]
mov ecx, 0xa70bb0
mov dword [esp + 0x14], eax
call fcn.00625819
cmp dword [esi + 4], eax
mov dword [esp + 0x18], eax
jne 0x47b64b
lea ebx, [esp + 0x50]
mov edi, dword [ebx + 0xc]
call fcn.005f2e70
mov dword [esp + 0x10], ecx
mov ecx, ebx
mov dword [esp + 0xc], eax
mov esi, edx
call fcn.006266e6
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x50], eax
xor eax, eax
mov dword [ebx + 0x54], edi
mov dword [ebx + 0x28], 0x3b9aca00
mov byte [ebx + 0x6c], al
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x38], eax
and dword [ebx + 0x40], 0
and dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 8
and dword [ebx + 0x60], 0
and dword [ebx + 0x64], 0
and dword [ebx + 0x68], 0
and dword [ebx + 0x48], 0
push 0x78
pop ecx
push 8
pop edx
call fcn.004a3937
mov ecx, eax
xor eax, eax
inc eax
lea edi, [ecx + 8]
mov dword [ecx + 4], eax
mov eax, ecx
push 0x1c
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
push 2
pop ecx
mov dword [eax], ecx
mov edi, eax
mov dword [esp + 0xc], eax
push 0x40
pop edx
mov ecx, 0x100
call fcn.004a3937
movaps xmm0, xmmword [0x6461b0]
xor ecx, ecx
and dword [eax], 0
and dword [eax + 4], 0
and dword [eax + 0x40], 0
and dword [eax + 0x44], 0
and dword [eax + 0x80], 0
mov esi, eax
mov byte [eax + 0x84], cl
mov dword [eax + 0x88], 4
and dword [eax + 0x8c], 0
movaps xmmword [eax + 0x90], xmm0
mov byte [eax + 0xa0], 1
xor eax, eax
inc eax
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], eax
mov byte [esi + 0xc8], cl
push 0xc
pop ecx
push 4
pop edx
call fcn.004a3937
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edi
push eax
push 0xffffffffffffffeb
mov edi, dword [esp + 0x28]
push edi
call dword [sym.imp.user32.dll_SetWindowLongW]
mov eax, 0x2000
mov dword [ebx], 0x20001
mov dword [ebx + 4], eax
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], 0x60001
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edi
push 0xc
push 2
pop eax
push eax
push ebx
call dword [sym.imp.user32.dll_RegisterRawInputDevices]
mov edx, dword [esp + 0x30]
xor eax, eax
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [edx], eax
mov dword [edx + 4], esi
mov esi, dword [esp + 0xc]
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x10], edi
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
and dword [ecx], 0
mov dword [edx + 0x14], edi
mov dword [edx + 0x18], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x38]
lea esi, [esp + 0x50]
mov ecx, 0xa71030
xor edx, edx
mov byte [eax], 1
mov dword [esi], eax
push 0xa39328
push 0xa38ce4
push esi
call fcn.00642700
add esp, 0xc
jmp 0x47b178
ud2
lea ecx, [esp + 0x50]
mov edx, 0x80b1f0
mov dword [ecx], str.Creating_EventLoop_multiple_times_is_not_supported.
jmp 0x47b5e2
lea ecx, [esp + 0x50]
mov edx, 0x80b2fc
mov dword [ecx], 0x80b2f4
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
call fcn.0063cbf0
ud2
movzx esi, byte [esp + 0x53]
movzx ecx, word [esp + 0x51]
mov edi, dword [esp + 0x54]
shl ecx, 8
shl esi, 0x18
or esi, ecx
lea ecx, [esp + 0x24]
or esi, eax
call fcn.0047b7e5
lea ecx, [esp + 0x18]
call fcn.00626882
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], esi
push 0x21
pop edx
mov ecx, 0x80b31d
push 0x80b340
push 0x80ab9c
push ebx
call fcn.0063cff0
jmp 0x47b695
xor ecx, ecx
lea eax, [esp + 0x14]
mov dword [esp + 0x38], 0xa39648
lea edx, [esp + 0x54]
mov dword [esp + 0x24], eax
inc ecx
lea eax, [esp + 0x24]
mov dword [esp + 0x28], fcn.0044cd50
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
and dword [esp + 0x48], 0
lea eax, [esp + 0x18]
xor ecx, ecx
push 0xa39650
lea esi, [esp + 0x3c]
push esi
push eax
call fcn.006446d7
add esp, 0xc
ud2