Function at 0x401000
Capabilities:
Check mutex on windows
Create thread
Hide graphical window

Disassembly:
sub esp, 0x6e4
mov ecx, 6
xor eax, eax
push ebx
push ebp
push esi
push edi
mov esi, str.SoftwareRealtekInitAp_
lea edi, [esp + 0x2f4]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0xf9
lea edi, [esp + 0x30d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push str.Realtek_Simulate
stosb byte es:[edi], al
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
push 0x40a0c0
mov eax, dword [esp + 0x704]
push eax
call fcn.00403b60
add esp, 8
test eax, eax
je 0x4010e0
push 5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ebp, dword [sym.imp.USER32.dll_GetWindow]
push eax
call ebp
mov edi, dword [sym.imp.USER32.dll_GetClassNameA]
lea ecx, [esp + 0x74]
mov esi, eax
push 0x80
push ecx
push esi
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea edx, [esp + 0x74]
push str.AlcxmntrClass
push edx
call ebx
test eax, eax
je 0x4010bd
push 2
push esi
call ebp
mov esi, eax
test esi, esi
je 0x4010ce
lea eax, [esp + 0x74]
push 0x80
push eax
push esi
call edi
lea ecx, [esp + 0x74]
push str.AlcxmntrClass
push ecx
call ebx
test eax, eax
jne 0x401095
test esi, esi
je 0x4010ce
push 0
push 0
push 0x10
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6e4
ret 0x10
call fcn.004028b0
test eax, eax
jne 0x4010fb
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6e4
ret 0x10
lea edx, [esp + 0x10]
xor edi, edi
push edx
push 0x2001f
lea eax, [esp + 0x2fc]
push edi
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40112c
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x401137
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
push str.AlcxmntrMutex
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x40ca60], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401165
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6e4
ret 0x10
push 0x40cb18
call fcn.00403420
add esp, 4
test eax, eax
jne 0x401195
mov eax, dword [0x40ca60]
cmp eax, edi
je 0x4011ad
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6e4
ret 0x10
cmp dword [0x40cb18], edi
jne 0x4011bc
mov eax, dword [0x40ca60]
cmp eax, edi
je 0x4011ad
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6e4
ret 0x10
mov eax, dword [esp + 0x6fc]
mov esi, dword [esp + 0x6f8]
cmp eax, edi
jne 0x401226
push 0x66
push esi
mov dword [esp + 0x58], str.AlcxmntrClass
mov dword [esp + 0x38], 0x4014d0
mov dword [esp + 0x34], 8
mov dword [esp + 0x44], esi
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push edi
mov dword [esp + 0x48], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
lea edx, [esp + 0x2c]
mov dword [esp + 0x48], 6
push edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
call dword [sym.imp.USER32.dll_RegisterClassA]
push edi
push esi
push edi
push edi
push 0x8c
push 0xc8
push edi
push edi
push DirectSoundCreate
push str.ALCXMNTR
push str.AlcxmntrClass
push 0x88
mov dword [0x40ca64], esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, edi
mov dword [0x40ca68], eax
jne 0x40126e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6e4
ret 0x10
push 0xf
push 0x14
push 0x78
push 0xc8
mov eax, 0x77
push edi
push edi
mov dword [esp + 0x2c], 0xa0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0xbe
mov dword [esp + 0x38], 0x87
mov dword [esp + 0x3c], 0xb4
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_CreateRoundRectRgn]
mov dword [0x40ce0c], eax
push 2
lea eax, [esp + 0x18]
push 3
push eax
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push 2
mov dword [0x40ce10], eax
push eax
mov eax, dword [0x40ce0c]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov ecx, dword [0x40ce0c]
mov edx, dword [0x40ca68]
push 1
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowRgn]
call fcn.00402870
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push edi
push edi
push edi
push edi
call esi
push edi
push edi
push edi
push edi
mov dword [0x40ca88], eax
call esi
push edi
push edi
push edi
push edi
mov dword [0x40ca98], eax
call esi
push edi
push edi
push edi
push edi
mov dword [0x40caa8], eax
call esi
mov dword [0x40cab8], eax
mov eax, dword [0x40cac8]
cmp eax, edi
jne 0x401343
push edi
push edi
push edi
push edi
call esi
push edi
push edi
push edi
push edi
mov dword [0x40cac8], eax
call esi
mov dword [0x40cad8], eax
push edi
push edi
push edi
push edi
call esi
push edi
push edi
push edi
push edi
mov dword [0x40cae8], eax
call esi
mov dword [0x40caf8], eax
call fcn.00402580
lea eax, [esp + 0x54]
push eax
push edi
push edi
push 0x402400
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [0x40ca64]
mov ecx, dword [0x40ca68]
mov esi, dword [sym.imp.USER32.dll_LoadImageA]
push 0x40
push 0x10
push 0x10
push 1
mov ebp, 0x40a
push 0x67
push edx
mov dword [0x40ca80], eax
mov dword [0x40ce80], 0x58
mov dword [0x40ce84], ecx
mov dword [0x40ce88], 1
mov dword [0x40ce8c], 7
mov dword [0x40ce90], ebp
call esi
mov ecx, dword [0x40ca64]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov dword [0x40ce94], eax
lea eax, [esp + 0xf4]
push 0x200
push eax
push 1
push ecx
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0xf4]
push edx
push 0x40ce98
call ebx
mov ecx, dword [0x40ca64]
mov eax, dword [0x40ca68]
push 0x40
push 0x10
push 0x10
push 1
push 0x6c
push ecx
mov dword [0x40ce20], 0x58
mov dword [0x40ce24], eax
mov dword [0x40ce28], 1
mov dword [0x40ce2c], 7
mov dword [0x40ce30], ebp
call esi
lea edx, [esp + 0xf4]
mov dword [0x40ce34], eax
mov eax, dword [0x40ca64]
push 0x200
push edx
push 1
push eax
call edi
lea ecx, [esp + 0xf4]
push ecx
push 0x40ce38
call ebx
mov edx, dword [0x40ca68]
push 0
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea eax, [esp + 0x60]
push 0
push eax
call esi
test eax, eax
je 0x4014ba
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [esp + 0x58]
push ecx
call edi
lea edx, [esp + 0x58]
push edx
call ebx
push 0
push 0
lea eax, [esp + 0x60]
push 0
push eax
call esi
test eax, eax
jne 0x40149b
mov eax, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6e4
ret 0x10