Function at 0x401000
Capabilities:
Check mutex on windows
Check os version
Create process on windows
Create thread
Hide graphical window
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x31c
mov eax, dword [esp + 0x328]
push ebx
push ebp
push esi
push edi
push 0x40d424
push eax
mov byte [esp + 0x23], 1
mov dword [esp + 0x38], 1
call fcn.00407ba0
add esp, 8
test eax, eax
je 0x4010c7
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 + 0xac]
mov esi, eax
push 0x80
push ecx
push esi
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea edx, [esp + 0xac]
push str.ALSMTrayClass
push edx
call ebx
test eax, eax
je 0x4010a4
push 2
push esi
call ebp
mov esi, eax
test esi, esi
je 0x4010b5
lea eax, [esp + 0xac]
push 0x80
push eax
push esi
call edi
lea ecx, [esp + 0xac]
push str.ALSMTrayClass
push ecx
call ebx
test eax, eax
jne 0x401076
test esi, esi
je 0x4010b5
push 0
push 0
push 0x10
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x31c
ret 0x10
push str.ALCMTrayMutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x40e270], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4010f7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x31c
ret 0x10
push 0x410000
mov dword [0x410000], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [0x410004]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp eax, 4
jne 0x40112c
cmp dword [0x410008], 0xa
jne 0x40112c
push 0x1388
call edi
mov eax, dword [esp + 0x334]
mov esi, dword [esp + 0x330]
test eax, eax
mov ebx, 8
mov ebp, 6
jne 0x40119b
push 0x66
push esi
mov dword [esp + 0x68], str.ALSMTrayClass
mov dword [esp + 0x48], 0x4022d0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], esi
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push 0
mov dword [esp + 0x58], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
lea edx, [esp + 0x3c]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], eax
xor eax, eax
push edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
call dword [sym.imp.USER32.dll_RegisterClassA]
push 0
push esi
push 0
push 0
push 0
push 0
push 0
push 0
push 0x80880000
push section..data
push str.ALSMTrayClass
push 0x108
mov dword [0x40e274], esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov dword [0x40e278], eax
jne 0x4011e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x31c
ret 0x10
mov eax, dword [0x410004]
mov esi, 2
cmp eax, 5
jne 0x4012d4
cmp dword [0x410008], esi
jne 0x4012d4
call dword [sym.imp.WINMM.dll_mixerGetNumDevs]
test eax, eax
jne 0x4012d4
lea eax, [esp + 0x10]
push eax
push str.SoftwareRealtekInitAP
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x401254
mov eax, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push edx
push eax
push 0
push str.WS2003MSG
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4012c2
mov eax, dword [0x40e278]
mov ecx, dword [0x40e274]
push 0
push 0x405620
push eax
push 0x6b
push ecx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test eax, eax
je 0x4012c2
call fcn.00404a50
test eax, eax
je 0x4012ae
call fcn.00404a90
push 0xbb8
call edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x31c
ret 0x10
push 5
push str.rundll32.exe_shell32.dll_Control_RunDLL_mmsys.cpl__
call dword [sym.imp.KERNEL32.dll_WinExec]
push 0xbb8
call edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x31c
ret 0x10
push 0x40e288
call fcn.00407330
add esp, 4
test eax, eax
je 0x4012ea
call fcn.00404380
push 0x40e288
call fcn.00407330
push 0x40f71c
call fcn.004072c0
mov ax, word [0x40f71c]
add esp, 8
cmp ax, 0x414c
jne 0x40144c
mov eax, dword [0x40f71e]
and eax, 0xfff0
cmp eax, 0x4750
jg 0x4013fd
je 0x4013ef
cmp eax, 0x4720
jg 0x401395
je 0x401387
cmp eax, 0x4320
je 0x401379
cmp eax, 0x4710
jne case.0x401413.18276
mov ax, word [0x40f720]
cmp ax, 0x10
jae 0x401361
mov word [0x40ff5a], 3
jmp 0x4014bf
xor edx, edx
cmp ax, 0x13
sete dl
add edx, 4
mov word [0x40ff5a], dx
jmp 0x4014bf
mov word [0x40ff5a], 1
jmp 0x4014bf
mov word [0x40ff5a], 0xb
jmp 0x4014bf
sub eax, 0x4730
je 0x4013e3
sub eax, 0x10
jne case.0x401413.18276
mov ax, word [0x40f720]
cmp ax, 7
ja 0x4013bd
mov word [0x40ff5a], bx
jmp 0x4014bf
cmp ax, 9
je 0x4013d5
cmp ax, 0xd
je 0x4013d5
mov word [0x40ff5a], bp
jmp 0x4014bf
mov word [0x40ff5a], 7
jmp 0x4014bf
mov word [0x40ff5a], si
jmp 0x4014bf
mov word [0x40ff5a], 0xa
jmp 0x4014bf
add eax, 0xffffb8a0
cmp eax, 0x30
ja case.0x401413.18276
xor ecx, ecx
mov cl, byte [eax + 0x40229c]
jmp dword [ecx*4 + 0x402288]
mov word [0x40ff5a], 0xc
jmp 0x4014bf
mov word [0x40ff5a], 9
jmp 0x4014bf
mov word [0x40ff5a], 0xd
jmp 0x4014bf
mov word [0x40ff5a], 0xe
jmp 0x4014bf
cmp ax, 0x10ec
jne 0x40148e
xor eax, eax
mov ax, word [0x40f71e]
sub eax, 0x280
je 0x401483
sub eax, 0x5e0
je 0x401478
sub eax, 0x20
jne case.0x401413.18276
mov word [0x40ff5a], 0xf
jmp 0x4014bf
mov word [0x40ff5a], 0x10
jmp 0x4014bf
mov word [0x40ff5a], 0x11
jmp 0x4014bf
cmp ax, 0x434d
jne case.0x401413.18276
mov eax, dword [0x40f71e]
cmp ax, 0x4978
je 0x4014ab
cmp ax, 0x4982
je 0x4014ab
cmp ax, 0x4983
jne case.0x401413.18276
mov word [0x40ff5a], 0x12
jmp 0x4014bf
mov word [0x40ff5a], 0
push 0x40e28e
push 0x40e28c
call fcn.004072f0
add esp, 8
test eax, eax
jne 0x4014e1
mov word [0x40e28c], ax
mov word [0x40e28e], ax
call fcn.00404dd0
mov si, word [0x40ff5a]
mov eax, dword [0x40e288]
mov cx, word [0x40e28e]
mov dx, word [0x40e28c]
mov di, word [0x40e28a]
cmp si, 0xe
jne 0x4015a3
cmp di, 0x1019
jne 0x401658
cmp ax, 0x1b08
je 0x40169d
cmp ax, 0xaa51
je 0x40169d
cmp ax, 0xaa52
je 0x40169d
cmp ax, 0xaa53
je 0x40169d
cmp ax, 0xaa54
je 0x40169d
cmp ax, 0xaa55
je 0x40169d
cmp ax, 0xaa56
je 0x40169d
cmp ax, 0xaa57
je 0x40169d
cmp ax, 0xaa58
je 0x40169d
cmp ax, 0xaa59
je 0x40169d
cmp ax, 0x1b13
je 0x40169d
cmp ax, 0x1877
je 0x40169d
cmp ax, 0x1878
jne 0x401658
jmp 0x40169d
cmp di, 0x147b
jne 0x4015b0
cmp si, 0xd
jmp 0x4015eb
cmp di, 0x10cf
jne 0x401662
cmp ax, 0x127c
jne 0x4015d3
cmp dx, 0x1039
jne 0x40169d
cmp cx, 0x7012
jmp 0x4015eb
cmp ax, 0x127d
je 0x4015df
cmp ax, 0x127e
jne 0x401609
cmp dx, 0x8086
jne 0x4015f2
cmp cx, 0x24c5
je 0x401658
jmp 0x40169d
cmp dx, 0x10de
jne 0x40169d
cmp cx, 0xda
je 0x401658
jmp 0x40169d
cmp ax, 0x12f1
jne 0x40163d
cmp dx, 0x8086
jne 0x40162d
cmp cx, 0x266e
je 0x401658
cmp cx, 0x24d5
je 0x401658
cmp cx, 0x27de
je 0x401658
jmp 0x40169d
cmp dx, 0x1002
jne 0x4015c1
cmp cx, 0x4370
je 0x401658
jmp 0x40169d
cmp ax, 0x12f2
jne 0x40169d
cmp dx, 0x8086
jne 0x40169d
cmp cx, 0x266e
je 0x401658
cmp cx, 0x24c5
jne 0x40169d
mov dword [0x40e2c0], 1
cmp di, 0x107b
jne 0x401686
cmp ax, 0x405
jne 0x40169d
cmp dx, 0x8086
jne 0x40169d
cmp cx, 0x24c5
jne 0x40169d
sub dword [0x40d2b8], 2
jmp 0x40169d
cmp di, 0x1458
jne 0x40169d
cmp si, 0xd
jne 0x40169d
push 0
call fcn.00407570
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebx, 1
mov esi, 0x40d058
push 0
push 0
push 0
push 0
call edi
test eax, eax
mov dword [esi], eax
jne 0x4016bf
xor ebx, ebx
add esi, 0x1c
cmp esi, 0x40d218
jl 0x4016ad
test ebx, ebx
je 0x4016da
mov dword [0x40e2a8], 1
jmp 0x4016e3
mov eax, dword [0x40e2a8]
test eax, eax
je 0x401705
call fcn.00403a10
lea edx, [esp + 0x64]
push edx
push 0
push 0
push 0x403990
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x40e298], eax
mov ax, word [0x40e28a]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov cx, word [0x40ff5a]
cmp ax, 0x1458
jne 0x4017fa
cmp cx, 0xd
jne 0x4017fa
lea eax, [esp + 0x10]
push eax
push str.SoftwareRealtekUAJ
push 0x80000001
call esi
test eax, eax
jne 0x401794
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push 0x40e2b4
push edx
push eax
mov eax, dword [esp + 0x20]
push str.UAJStatus
push eax
call ebp
test eax, eax
je 0x401794
mov ecx, dword [esp + 0x10]
push 4
push 0x40e2b4
push 4
push 0
push str.UAJStatus
push ecx
mov dword [0x40e2b4], 1
call edi
mov edx, dword [esp + 0x10]
push edx
call ebx
lea eax, [esp + 0x10]
push eax
push str.SoftwareRealtekUAJ
push 0x80000001
call esi
test eax, eax
jne 0x4017f1
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push 0x40e2b8
push edx
push eax
mov eax, dword [esp + 0x20]
push str.AutoNextTime
push eax
call ebp
test eax, eax
je 0x4017f1
mov ecx, dword [esp + 0x10]
push 4
push 0x40e2b8
push 4
push 0
push str.AutoNextTime
push ecx
mov dword [0x40e2b8], 1
call edi
mov edx, dword [esp + 0x10]
push edx
call ebx
jmp 0x40183e
cmp cx, 0xa
jne 0x401813
cmp ax, 0x107b
jne 0x401813
cmp word [0x40e288], 0x4009
je 0x401848
jmp 0x401839
cmp ax, 0x1170
jne 0x401839
cmp word [0x40e288], 7
jne 0x401839
cmp word [0x40e28c], 0x8086
jne 0x401839
cmp word [0x40e28e], 0x24c5
je 0x40183e
call fcn.00403cb0
cmp word [0x40ff5a], 0xa
jne 0x401860
lea eax, [esp + 0x14]
mov esi, 3
push eax
mov dword [esp + 0x18], esi
call fcn.00407b20
add esp, 4
jmp 0x401865
mov esi, 3
mov ax, word [0x40ff5a]
cmp ax, 0xe
jne 0x4019b9
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], esi
push ecx
call fcn.00407b20
add esp, 4
lea edx, [esp + 0x10]
mov eax, 4
push edx
push str.SoftwareRealtekUAJ
push 0x80000001
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x401ac2
lea eax, [esp + 0x14]
lea ecx, [esp + 0x38]
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x28]
push ecx
push edx
push 0
push str.UIO1Type
push eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x2c], 2
call ebp
test eax, eax
jne 0x4018ea
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00407a30
add esp, 4
lea edx, [esp + 0x14]
lea eax, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x28]
push eax
push ecx
push 0
push str.UIO2Type
push edx
call ebp
test eax, eax
jne 0x401945
mov eax, dword [esp + 0x2c]
push eax
call fcn.00407a60
add esp, 4
cmp word [esp + 0x2c], 2
jne 0x40193b
push 1
call fcn.00407ac0
mov eax, dword [esp + 0x2c]
add esp, 4
cmp eax, esi
jne 0x401945
push 1
call fcn.00407b50
jmp 0x401942
push 0
call fcn.00407ac0
add esp, 4
lea ecx, [esp + 0x14]
lea edx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push edx
push eax
push 0
push str.UIO3Type
push ecx
call ebp
test eax, eax
jne 0x4019ad
mov edx, dword [esp + 0x34]
push edx
call fcn.00407a90
add esp, 4
cmp word [esp + 0x34], 2
jne 0x4019a3
push 1
call fcn.00407af0
mov eax, dword [esp + 0x2c]
add esp, 4
cmp eax, esi
jne 0x4019ad
push 1
call fcn.00407b50
mov eax, dword [esp + 0x14]
add esp, 4
push eax
call ebx
jmp 0x401ac2
push 0
call fcn.00407af0
add esp, 4
mov eax, dword [esp + 0x10]
push eax
call ebx
jmp 0x401ac2
cmp ax, 0xa
jne 0x4019db
cmp word [0x40e28a], 0x107b
jne 0x4019db
cmp word [0x40e288], 0x4009
je 0x401ae6
jmp 0x401a0a
cmp word [0x40e28a], 0x1170
jne 0x401a0a
cmp word [0x40e288], 7
jne 0x401a0a
cmp word [0x40e28c], 0x8086
jne 0x401a0a
cmp word [0x40e28e], 0x24c5
je 0x401ac2
lea ecx, [esp + 0x14]
push ecx
call fcn.004075b0
add esp, 4
test eax, eax
je 0x401a2f
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x401a37
push 0
call fcn.00407ac0
add esp, 4
jmp 0x401a37
mov dword [esp + 0x14], 1
lea edx, [esp + 0x28]
push edx
call fcn.00407740
add esp, 4
test eax, eax
je 0x401a5c
cmp word [esp + 0x28], 2
jne 0x401a5c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x401a5c
push 1
jmp 0x401a5e
push 0
call fcn.00407ac0
add esp, 4
lea eax, [esp + 0x14]
push eax
call fcn.004075f0
add esp, 4
test eax, eax
je 0x401a8b
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x401a93
push 0
call fcn.00407af0
add esp, 4
jmp 0x401a93
mov dword [esp + 0x14], 1
lea ecx, [esp + 0x24]
push ecx
call fcn.004077a0
add esp, 4
test eax, eax
je 0x401ab8
cmp word [esp + 0x24], 2
jne 0x401ab8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x401ab8
push 1
jmp 0x401aba
push 0
call fcn.00407af0
add esp, 4
cmp word [0x40ff5a], 0xa
jne 0x401afe
cmp word [0x40e28a], 0x107b
jne 0x401afe
cmp word [0x40e288], 0x4009
jne 0x401ed7
push 0
call fcn.00407570
push 2
call fcn.00407770
push 1
call fcn.004077d0
add esp, 0xc
cmp word [0x40e28a], 0x1462
mov esi, dword [sym.imp.KERNEL32.dll_WinExec]
jne 0x401bba
cmp word [0x40ff5a], 0xe
jne 0x401ed7
lea edx, [esp + 0x24]
mov dword [esp + 0x14], 0
push edx
mov dword [esp + 0x28], 6
call fcn.004079d0
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, 8
jne 0x401bba
lea eax, [esp + 0x10]
push eax
push str.SoftwareRealtekInitAP
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x401bb3
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push edx
push eax
push 0
push str.InitCH
push ecx
call ebp
test eax, eax
je 0x401bb3
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push 4
push edx
push 4
push 0
push str.InitCH
push eax
mov dword [esp + 0x2c], 1
call edi
push 5
push str.ChCfg.EXE_5
call esi
push 8
call fcn.004079a0
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
call ebx
cmp word [0x40e28a], 0x1458
jne 0x401c8f
cmp word [0x40e288], 0xae01
jne 0x401ed7
cmp word [0x40e28c], 0x8086
jne 0x401ed7
cmp word [0x40e28e], 0x266e
jne 0x401ed7
lea edx, [esp + 0x24]
mov dword [esp + 0x14], 0
push edx
mov dword [esp + 0x28], 6
call fcn.004079d0
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, 8
jne 0x401c8f
lea eax, [esp + 0x10]
push eax
push str.SoftwareRealtekInitAP
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x401c88
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push edx
push eax
push 0
push str.InitCH
push ecx
call ebp
test eax, eax
je 0x401c88
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push 4
push edx
push 4
push 0
push str.InitCH
push eax
mov dword [esp + 0x2c], 1
call edi
push 5
push str.ChCfg.EXE_5
call esi
push 8
call fcn.004079a0
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
call ebx
mov ax, word [0x40e28a]
cmp ax, 0x1558
jne 0x401cc9
cmp word [0x40e288], 0x4701
jne 0x401db7
cmp word [0x40e28c], 0x1106
jne 0x401ed7
cmp word [0x40e28e], 0x3059
je 0x401cdd
jmp 0x401ed7
cmp ax, 0x17c0
jne 0x401d4e
cmp word [0x40e288], 0x49
jne 0x401ed7
lea edx, [esp + 0x10]
mov dword [esp + 0x14], 0
push edx
push str.SoftwareRealtekInitAP
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x401d47
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push ecx
push edx
push 0
push str.InitCH
push eax
call ebp
test eax, eax
je 0x401d47
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push 4
push ecx
push 4
push 0
push str.InitCH
push edx
mov dword [esp + 0x2c], 1
call edi
push 0
push str.ChCfg.EXE_4
call esi
mov eax, dword [esp + 0x10]
push eax
call ebx
mov ax, word [0x40e28a]
cmp ax, 0x1915
jne 0x401d95
mov eax, dword [0x40e288]
cmp ax, 0x5103
jne 0x401d84
cmp word [0x40e28c], 0x1106
jne 0x401ed7
cmp word [0x40e28e], 0x3059
je 0x401df6
jmp 0x401ed7
cmp ax, 0x5111
je 0x401df6
cmp ax, 0x5101
je 0x401df6
jmp 0x401ed7
cmp ax, 0x1071
jne 0x401db1
mov eax, dword [0x40e288]
cmp ax, 0x8082
je 0x401df6
cmp ax, 0x8083
je 0x401df6
jmp 0x401ed7
cmp ax, 0x1558
jne 0x401dc7
cmp word [0x40e288], 0x570
je 0x401df6
jmp 0x401ed7
cmp ax, 0x1991
jne 0x401ddd
cmp word [0x40e288], 0x5426
je 0x401df6
jmp 0x401ed7
cmp ax, 0x161f
jne 0x401e69
cmp word [0x40e288], 0x2050
jne 0x401ed7
push 5
push str.ChCfg.EXE_4
call esi
push 0x4100a0
push str.Rear
call fcn.00406260
add esp, 8
test eax, eax
jne 0x401e24
mov dword [0x4100a0], eax
mov dword [0x4100a4], 0xffffffff
push 1
push 0x4100a0
call fcn.004063a0
push 0x40ff60
push str.Center
call fcn.00406260
add esp, 0x10
test eax, eax
jne 0x401e55
mov dword [0x40ff60], eax
mov dword [0x40ff64], 0xffffffff
push 1
push 0x40ff60
call fcn.004063a0
add esp, 8
call fcn.00405900
cmp word [0x40e28a], 0x15bd
jne 0x401ed7
cmp word [0x40e288], 0x1001
jne 0x401ed7
cmp word [0x40e28c], 0x8086
jne 0x401ed7
cmp word [0x40e28e], 0x24d5
jne 0x401ed7
push 5
push str.ChCfg.EXE_3
call esi
push 0x4100a0
push str.Rear
call fcn.00406260
add esp, 8
test eax, eax
jne 0x401ec3
mov dword [0x4100a0], eax
mov dword [0x4100a4], 0xffffffff
push 1
push 0x4100a0
call fcn.004063a0
add esp, 8
call fcn.00405900
mov edx, dword [0x40e274]
mov ecx, dword [0x40e278]
mov esi, dword [sym.imp.USER32.dll_LoadImageA]
push 0x40
push 0x10
push 0x10
push 1
mov ebx, 0x40a
push 0x66
push edx
mov dword [0x40fd80], 0x58
mov dword [0x40fd84], ecx
mov dword [0x40fd88], 1
mov dword [0x40fd8c], 7
mov dword [0x40fd90], ebx
call esi
mov ecx, dword [0x40e274]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov dword [0x40fd94], eax
lea eax, [esp + 0x12c]
push 0x200
push eax
push 1
push ecx
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x12c]
push edx
push 0x40fd98
call ebp
mov ecx, dword [0x40e274]
mov eax, dword [0x40e278]
push 0x40
push 0x10
push 0x10
push 1
push 0x79
push ecx
mov dword [0x40ff00], 0x58
mov dword [0x40ff04], eax
mov dword [0x40ff08], 1
mov dword [0x40ff0c], 7
mov dword [0x40ff10], ebx
call esi
lea edx, [esp + 0x12c]
mov dword [0x40ff14], eax
mov eax, dword [0x40e274]
push 0x200
push edx
push 1
push eax
call edi
lea ecx, [esp + 0x12c]
push ecx
push 0x40ff18
call ebp
mov eax, dword [0x40e274]
mov edx, dword [0x40e278]
push 0x40
push 0x10
push 0x10
push 1
push 0x7a
push eax
mov dword [0x410140], 0x58
mov dword [0x410144], edx
mov dword [0x410148], 1
mov dword [0x41014c], 7
mov dword [0x410150], ebx
call esi
mov edx, dword [0x40e274]
lea ecx, [esp + 0x12c]
push 0x200
push ecx
push 1
push edx
mov dword [0x410154], eax
call edi
lea eax, [esp + 0x12c]
push eax
push 0x410158
call ebp
mov ax, word [0x40e28a]
mov ecx, dword [0x40e288]
cmp ax, 0x104d
jne 0x40206d
cmp cx, 0x8176
je 0x402057
cmp cx, 0x818b
jne 0x40206d
cmp word [0x40e28c], 0x8086
jne 0x40206d
cmp word [0x40e28e], 0x24c5
je 0x402084
cmp word [0x40ff5a], 0xf
jne 0x402089
cmp ax, 0x104d
jne 0x402089
cmp cx, 0x81a0
jne 0x402089
mov byte [esp + 0x1b], 0
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
lea ecx, [esp + 0x10]
push ecx
push str.SoftwareAvanceAC97_AudioALSMTray
push 0x80000001
call esi
test eax, eax
jne 0x4020e3
lea edx, [esp + 0x1c]
lea eax, [esp + 0x1b]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push eax
push ecx
push 0
mov edi, 1
push str.ShowIcon
push edx
mov dword [esp + 0x38], 3
mov dword [esp + 0x34], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4020e8
mov edi, 1
mov al, byte [esp + 0x1b]
test al, al
je 0x40210d
lea ecx, [esp + 0x84]
push ecx
call fcn.004072c0
add esp, 4
test eax, eax
je 0x40210d
push edi
call fcn.00402ec0
add esp, 4
lea edx, [esp + 0x10]
push edx
push str.SoftwareAvanceAC97_Audio
push 0x80000002
call esi
test eax, eax
jne 0x4021cb
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x8c]
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push ecx
push edx
push 0
push str.Layout
push eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], 0x20
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4021c0
mov esi, 0x40d304
lea eax, [esp + 0x8c]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40218e
test cl, cl
je 0x40218a
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40218e
add eax, 2
add esi, 2
test cl, cl
jne 0x402166
xor eax, eax
jmp 0x402193
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4021c0
push eax
mov dword [0x40e2c8], edi
call fcn.00402ec0
add esp, 4
cmp word [0x40ff5a], 0xd
jne 0x4021c0
cmp word [0x40f720], 0x13
jb 0x4021c0
mov dword [0x40e2bc], edi
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp word [0x40e28a], 0x1025
jne 0x4021ff
mov eax, dword [0x40e288]
cmp ax, 0x64
jb 0x4021ff
cmp ax, 0x100
ja 0x4021ff
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push 0x405450
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [0x40e278]
push 0
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
push str.RT_SoundmanCreate
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
mov ecx, dword [0x40e278]
push 0
push ecx
push eax
push 0xffff
mov dword [0x410138], eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea edx, [esp + 0x70]
push 0
push edx
call esi
test eax, eax
je 0x402275
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
lea eax, [esp + 0x68]
push eax
call edi
lea ecx, [esp + 0x68]
push ecx
call ebx
push 0
push 0
lea edx, [esp + 0x70]
push 0
push edx
call esi
test eax, eax
jne 0x402256
mov eax, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x31c
ret 0x10