Function at 0x401000
Capabilities:
Allocate thread local storage

Disassembly:
push 0x60
push 0
push 0x41bef8
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleW
mov dword [0x41befc], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x41bef8], eax
mov eax, str._ProfileItem0__r_nIDdeviceRender_r_nDefaultRender1_r_nDefaultRenderCommunications1_r_nDefaultRenderMultimedia1_r_nVolumeScalarvolume_r_n_ProfileItem1__r_nIDdeviceCapture_r_nDefaultCapture1_r_nDefaultCaptureCommunications1_r_nDefaultCaptureMultimedia1_r_n_General__r_nItemsCount2_r_n
mov dword [0x41bf30], eax
call fcn.0040f960
call fcn.0040f00f
call fcn.0040ed10
call fcn.0040db60
call fcn.0040bc9c
call fcn.0040b540
call fcn.0040ab1e
call fcn.00409bc9
call fcn.0040970a
call fcn.00409462
call fcn.00408e3b
call fcn.004088ab
call fcn.004082e0
call fcn.00407fee
call fcn.00406d7a
call fcn.00405a19
call fcn.00405857
call fcn.00404c25
call fcn.004045fe
call fcn.004043ea
mov eax, 0x200
push eax
lea eax, [0x41bf50]
push eax
push 0x41a788
push 8
push 4
call fcn.00408e5a
push dword [0x41bf50]
call fcn.00402ca7
mov eax, str._ProfileItem0__r_nIDdeviceRender_r_nDefaultRender1_r_nDefaultRenderCommunications1_r_nDefaultRenderMultimedia1_r_nVolumeScalarvolume_r_n_ProfileItem1__r_nIDdeviceCapture_r_nDefaultCapture1_r_nDefaultCaptureCommunications1_r_nDefaultCaptureMultimedia1_r_n_General__r_nItemsCount2_r_n
mov dword [0x41bf30], eax
lea ecx, [0x41bf1c]
mov edx, dword [0x41bf30]
call fcn.00404008
add dword [0x41bf30], eax
mov eax, 0x200
push eax
lea eax, [0x41bf54]
push eax
xor eax, eax
push eax
push 0x15
push 4
call fcn.00408e5a
mov eax, str.Advapi32.dll
push eax
push 0xffffffff
call fcn.004058ca
mov dword [0x41bf10], eax
cmp dword [0x41bf10], 0
je 0x4011a5
mov eax, str.RegDeleteKeyExW
push eax
push dword [0x41bf10]
call main
mov dword [0x41bf14], eax
mov eax, 0x41a1d6
push eax
push dword [0x41bf10]
call main
mov dword [0x41bf04], eax
mov eax, str.RegDeleteTreeW
push eax
push dword [0x41bf10]
call main
mov dword [0x41bf0c], eax
mov eax, 0x41a3dc
push eax
push dword [0x41bf10]
call main
mov dword [0x41bf00], eax
mov eax, str.RegCopyTreeW
push eax
push dword [0x41bf10]
call main
mov dword [0x41bf08], eax
push 0x10
mov eax, str.fontSize
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
call fcn.0040de10
push eax
mov eax, str.font
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push 0xffffffff
call fcn.0040f05c
mov dword [0x41bf18], eax
push dword [0x41bf18]
call fcn.0040f125
mov dword [0x41bf34], eax
push 0x10
mov eax, str.fontSizeHeadline
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
call fcn.0040de10
push eax
mov eax, str.font
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push 0xffffffff
call fcn.0040f05c
mov dword [0x41bf18], eax
push dword [0x41bf18]
call fcn.0040f125
mov dword [0x41bf28], eax
push 0xb4
push 0x190
push 0
push 0
call fcn.00403280
mov eax, str.windowOnTop
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov edx, str.true
pop ecx
call fcn.00404070
je 0x40129d
push 1
push dword [0x41bf40]
call fcn.00406de5
push dword [0x41bf28]
push dword [0x41bf2c]
call fcn.00405abf
mov eax, str.devicesHeadline
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf2c]
call fcn.00405b2e
push dword [0x41bf34]
mov eax, str.devices1Text
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf44]
call fcn.004035b1
push dword [0x41bf34]
mov eax, str.devices2Text
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf48]
call fcn.004035b1
push dword [0x41bf28]
push dword [0x41bf20]
call fcn.00405abf
mov eax, str.volumesHeadline
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf20]
call fcn.00405b2e
push dword [0x41bf34]
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.volumes1Text
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf38]
call fcn.004035b1
push dword [0x41bf34]
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.volumes2Text
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf3c]
call fcn.004035b1
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov edx, str.devices1
mov ecx, dword [esp]
call fcn.00404070
je 0x40144c
push dword [0x41bf44]
call fcn.00403776
push dword [0x41bf48]
call fcn.0040360d
jmp 0x401471
mov edx, str.devices2
mov ecx, dword [esp]
call fcn.00404070
je 0x401471
push dword [0x41bf48]
call fcn.00403776
push dword [0x41bf44]
call fcn.0040360d
pop eax
mov eax, str.lastVolume
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov edx, str.volumes1
mov ecx, dword [esp]
call fcn.00404070
je 0x4014af
push dword [0x41bf38]
call fcn.00403776
push dword [0x41bf3c]
call fcn.0040360d
jmp 0x4014d4
mov edx, str.volumes2
mov ecx, dword [esp]
call fcn.00404070
je 0x4014d4
push dword [0x41bf3c]
call fcn.00403776
push dword [0x41bf38]
call fcn.0040360d
pop eax
push 0
push dword [0x41bf40]
call fcn.00406efb
call fcn.00407038
mov dword [0x41bf4c], eax
push dword [0x41bf4c]
mov ebx, 0x332c
cmp ebx, dword [esp]
jne 0x401a7e
push dword [0x41bf40]
call fcn.00407040
push eax
call sub.USER32.DLL_LockWindowUpdate
call fcn.004089c5
push eax
push dword [0x41bf44]
call fcn.00403766
cmp eax, dword [esp]
jne 0x401627
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, str.devices1
lea ecx, [ebp]
call fcn.00404008
push dword [0x41bf44]
call fcn.00403776
push dword [0x41bf48]
call fcn.0040360d
push 0
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.volumes1Text
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf38]
call fcn.004035b1
push 0
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.volumes2Text
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf3c]
call fcn.004035b1
jmp 0x4017c2
push dword [0x41bf48]
call fcn.00403766
cmp eax, dword [esp]
jne 0x401734
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, str.devices2
lea ecx, [ebp]
call fcn.00404008
push dword [0x41bf48]
call fcn.00403776
push dword [0x41bf44]
call fcn.0040360d
push 0
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.volumes1Text
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf38]
call fcn.004035b1
push 0
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.volumes2Text
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
push dword [0x41bf3c]
call fcn.004035b1
jmp 0x4017c2
push dword [0x41bf38]
call fcn.00403766
cmp eax, dword [esp]
jne 0x40177c
mov eax, str.lastVolume
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, str.volumes1
lea ecx, [ebp]
call fcn.00404008
push dword [0x41bf38]
call fcn.00403776
push dword [0x41bf3c]
call fcn.0040360d
jmp 0x4017c2
push dword [0x41bf3c]
call fcn.00403766
cmp eax, dword [esp]
jne 0x4017c2
mov eax, str.lastVolume
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, str.volumes2
lea ecx, [ebp]
call fcn.00404008
push dword [0x41bf3c]
call fcn.00403776
push dword [0x41bf38]
call fcn.0040360d
pop eax
call fcn.004089c5
push eax
call fcn.004037a5
and eax, eax
je 0x4017e3
call fcn.004089c5
push eax
call fcn.004037a5
push eax
call fcn.0040362e
push 0
call sub.USER32.DLL_LockWindowUpdate
push dword [0x41bf40]
call fcn.00407040
push eax
call sub.USER32.DLL_UpdateWindow
call fcn.004089c5
push eax
push dword [0x41bf44]
call fcn.00403766
cmp eax, dword [esp]
je 0x401848
push dword [0x41bf48]
call fcn.00403766
cmp eax, dword [esp]
je 0x401848
push dword [0x41bf38]
call fcn.00403766
cmp eax, dword [esp]
je 0x401848
push dword [0x41bf3c]
call fcn.00403766
cmp eax, dword [esp]
jne 0x401a7d
mov edx, dword [0x41bf1c]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
push 0x41bf24
call fcn.0040fa40
mov edx, dword [0x41c20c]
push edx
push edx
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.SpeakerID
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov eax, str.deviceRender
push eax
push dword [0x41bf24]
call fcn.0040e290
push 0x41bf24
call fcn.0040fa40
mov edx, dword [0x41c20c]
push edx
push edx
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov edx, str.MicID
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov eax, str.deviceCapture
push eax
push dword [0x41bf24]
call fcn.0040e290
push 0x41bf24
call fcn.0040fa40
mov edx, dword [0x41c20c]
push edx
push edx
mov edx, dword [0x41c20c]
push edx
push edx
push 2
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push dword [0x41c20c]
push edx
call fcn.0040f9e0
mov eax, str.lastVolume
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
mov edx, dword [ebp]
push edx
call fcn.0040f9e0
mov edx, str.Value
push edx
call fcn.0040f9e0
mov edx, dword [esp]
mov dword [0x41c20c], edx
mov edx, dword [0x41a9e0]
add dword [esp], edx
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
call fcn.0040e2b0
fdiv qword [0x41a780]
sub esp, 8
fstp qword [esp]
call fcn.0040e340
add dword [0x41c20c], 2
mov eax, 0x41a030
push eax
push dword [0x41bf24]
mov edx, dword [0x41a9e0]
add dword [esp + 8], edx
call fcn.0040e290
push 0x41bf24
call fcn.0040fa40
mov eax, str.profile.spr
push eax
push 0
call fcn.004084f0
and eax, eax
je 0x401a3a
push dword [0x41bf24]
push 0
call fcn.004086c0
push 0
call fcn.00408210
jmp 0x401a50
mov eax, str.Unable_to_write_profile_file_
push eax
mov eax, str.Error
push eax
call fcn.00404454
add esp, 8
jmp 0x401a7f
push 1
mov eax, 0x41a028
push eax
mov eax, str.profile.spr
push eax
mov eax, str.LoadProfile
push eax
call fcn.004034d6
call fcn.004089c5
push eax
call fcn.004037a5
push eax
call fcn.004037e8
pop eax
pop eax
mov ebx, dword [0x41bf4c]
cmp ebx, 0x333c
jne 0x4014e5
push 1
push dword [0x41bf40]
call fcn.00406efb
mov eax, str.lastDevice
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov eax, str.lastDevice
push eax
call fcn.004033db
mov eax, str.lastVolume
push eax
push dword [0x41bf50]
call fcn.00408f27
mov ebp, eax
push dword [ebp]
mov eax, str.lastVolume
push eax
call fcn.004033db
push dword [0x41bf48]
call fcn.00403797
push dword [0x41bf44]
call fcn.00403797
push dword [0x41bf3c]
call fcn.00403797
push dword [0x41bf38]
call fcn.00403797
push 0
call 0x401b2e
call fcn.0040f9b0
push dword [0x41bef8]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.00404c13
call fcn.0040584b
call fcn.004059c3
call fcn.00406d57
call fcn.00407fdd
call fcn.0040813b
call fcn.004082d0
call fcn.0040888d
call fcn.004096fe
call fcn.0040ab11
call fcn.0040db80
call fcn.0040f182
call fcn.0040f18e
call fcn.0040ed00
ret