Function at 0x40f840
Capabilities:
Create thread
Hide graphical window
Read .ini file
Terminate thread

Disassembly:
sub esp, 0x268
mov eax, dword [str.ResdllAdo_d.dll]
mov ecx, dword [0x427348]
mov edx, dword [0x42734c]
push ebx
mov dword [esp + 0xec], eax
mov eax, dword [0x427350]
mov dword [esp + 0xf0], ecx
mov cl, byte [0x427354]
push ebp
push esi
push edi
mov dword [esp + 0x104], eax
mov byte [esp + 0x108], cl
mov ecx, 0x1b
xor eax, eax
lea edi, [esp + 0x109]
mov dword [esp + 0x100], edx
mov esi, dword [esp + 0x284]
rep stosd dword es:[edi], eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
push esi
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x18], 0
call ebx
cmp eax, 0x50
mov dword [esp + 0x10], eax
jge 0x40f8c8
lea edx, [esp + 0x178]
push esi
push edx
jmp 0x40f8d8
inc eax
push eax
call fcn.0041be34
add esp, 4
mov dword [esp + 0x14], eax
push esi
push eax
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
call esi
lea eax, [esp + 0x178]
push str.Play
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea ecx, [esp + 0x178]
push ecx
mov dword [esp + 0x1c], eax
call fcn.0040ee40
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x40f91d
movsx edx, byte [esp + 0x17e]
mov dword [0x943a34], edx
lea eax, [esp + 0x178]
push eax
call fcn.0040efc0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x40f943
movsx ecx, byte [esp + 0x17f]
mov dword [0x88e0e8], ecx
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, 0x80000000
mov dword [esp + 0x10], eax
je 0x40f97b
cmp al, 3
jne 0x40f97b
push 0
push str.Win32s
push str.Can_NOT_RUN_On_WIN32s
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x268
ret 0x10
call fcn.004158b0
test eax, eax
jne 0x40f9a5
push eax
push str.No_MMX
push str.Can_NOT_RUN_On_No_MMX_CPU
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x268
ret 0x10
push str.STHVCD.INI
push str.HeroMp3.ini
call esi
mov edi, dword [esp + 0x27c]
mov dword [0x82f300], edi
call dword [sym.imp.KERNEL32.dll_GetACP]
mov esi, eax
lea edx, [esp + 0xf8]
push esi
lea eax, [esp + 0x58]
push edx
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0xf8]
push 0x80
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
mov dword [esp + 0x10], eax
je 0x40fa2d
lea edx, [esp + 0xf8]
push edx
call ebx
test eax, eax
mov dword [esp + 0x10], eax
jl 0x40fa23
mov cl, 0x5c
cmp byte [esp + eax + 0xf8], cl
je 0x40fa1f
dec eax
jns 0x40fa13
mov dword [esp + 0x10], eax
mov byte [esp + eax + 0xf9], 0
jmp 0x40fa50
push str.HeroMp3.ini
lea eax, [esp + 0xfc]
push 0x80
push eax
push 0x82d6c0
push str.INSTALLPATH
push str.INSTALL
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x54]
lea edx, [esp + 0xf8]
push ecx
push edx
call edi
lea eax, [esp + 0xf8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, dword [sym.imp.USER32.dll_LoadStringA]
mov dword [0x82f33c], eax
test eax, eax
jne 0x40fa91
mov ecx, dword [esp + 0x27c]
mov dword [0x82f33c], ecx
jmp 0x40fadc
lea edx, [esp + 0x54]
push 0x40
push edx
push 0xc389
push eax
call ebx
lea eax, [esp + 0x54]
push eax
call fcn.00408ca0
add esp, 4
mov dword [esp + 0x10], eax
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
je 0x40fac2
cmp dword [esp + 0x10], esi
je 0x40fadc
mov ecx, dword [0x82f33c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, dword [esp + 0x27c]
mov dword [0x82f33c], edx
push str.HeroMp3.ini
lea eax, [esp + 0x58]
push 0x40
push eax
push 0x82d6c0
push str.SOURCEPATH
push str.INSTALL
call ebp
test eax, eax
mov dword [esp + 0x10], eax
je 0x40fb24
movsx eax, byte [esp + 0x54]
cmp eax, 0x61
jl 0x40fb10
cmp eax, 0x7a
jle 0x40fb1c
mov al, byte [esp + 0x57]
test al, al
je 0x40fc32
mov dword [esp + 0x10], 0
push str.HeroMp3.ini
push 1
push str.BERUN
push str.SETTING
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
inc eax
lea ecx, [esp + 0x54]
push eax
push 0x4268c4
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x54]
push str.HeroMp3.ini
push edx
push str.BERUN
push str.SETTING
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [esp + 0x10], 0x1e
jg 0x40fc08
mov eax, dword [0x426e90]
test eax, eax
je 0x40fbfb
lea eax, [esp + 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xbe]
mov eax, dword [esp + 0xc2]
and edx, 0xffff
shl edx, 4
and ecx, 0xffff
and eax, 0xffff
or edx, ecx
mov ecx, dword [0x426e90]
shl edx, 8
or edx, eax
cmp edx, ecx
mov dword [esp + 0x10], edx
ja 0x40fc08
mov eax, ecx
mov esi, ecx
shr ecx, 8
and ecx, 0xf
and esi, 0xff
shr eax, 0xc
dec ecx
cmp ecx, 1
jge 0x40fbed
mov ecx, 0xc
dec eax
shl eax, 4
or eax, ecx
shl eax, 8
or eax, esi
cmp edx, eax
jb 0x40fc08
call fcn.0040d260
test eax, eax
mov dword [esp + 0x10], eax
jne 0x40fc3f
call fcn.0040d1d0
mov eax, dword [0x82f33c]
mov ecx, dword [0x82f300]
cmp eax, ecx
je 0x40fc23
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x268
ret 0x10
mov dword [esp + 0x10], 1
jmp 0x40fb79
call dword [sym.imp.KERNEL32.dll_GetVersion]
not eax
shr eax, 0x1f
mov dword [0x82f3dc], eax
call fcn.00405ec0
mov ecx, dword [0x82f33c]
push 0x50
push 0x82f184
push 0xc36a
push ecx
call ebx
push str._2000
push 0x82f184
call edi
push str.HeroMp3.ini
push 0
push str.FixedLost
push str.SETTING
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0
mov dword [0x428ddc], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push 0
mov edi, eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push str.HeroMp3.ini
push 1
push str.Face
push str.SETTING
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str.HeroMp3.ini
lea edx, [esp + 0x58]
push 0x40
push edx
push 0x82d6c0
push str.FaceBitmap
push str.SETTING
mov dword [0x426e98], eax
call ebp
cmp edi, 8
mov dword [0x82f3fc], 0
mov dword [esp + 0x10], eax
jge 0x40fd05
mov dword [0x426e98], 0
xor ebp, ebp
cmp eax, ebp
je 0x40fd2a
cmp dword [0x426e98], ebp
je 0x40fd2a
lea eax, [esp + 0x54]
push eax
push edi
call fcn.0040f5c0
add esp, 8
cmp eax, ebp
mov dword [0x82f3fc], eax
jne 0x40fd54
cmp edi, 8
jg 0x40fd3d
mov ecx, dword [0x82f33c]
push 0x95
push ecx
jmp 0x40fd49
mov edx, dword [0x82f33c]
push 0x94
push edx
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov dword [0x82f3fc], eax
push eax
push ebp
call sub.FaceHelp.dll_Ordinal_38
cmp eax, ebp
mov dword [esp + 0x10], eax
je 0x40fd68
call fcn.0041b430
mov eax, dword [0x82f3fc]
push eax
call sub.PlayList.dll_SetHBitmap
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 4
push str.HeroMp3.ini
push 1
push str.EnableFaceBmp
push str.SETTING
call ebx
mov dword [0x426e94], eax
mov eax, dword [0x426e98]
cmp eax, ebp
jne 0x40fda3
mov dword [0x426e94], ebp
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov dword [0x82f348], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0x426ea8
mov dword [0x82f34c], eax
call dword [sym.imp.GDI32.dll_CreateBrushIndirect]
mov dword [0x82f358], eax
call fcn.00418530
mov edi, dword [esp + 0x27c]
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x6a
push edi
mov dword [0x82f320], eax
call esi
push 0x6b
push edi
mov dword [0x82f360], eax
call esi
push 0x6c
push edi
mov dword [0x82f364], eax
call esi
push 0x6d
push edi
mov dword [0x82f368], eax
call esi
push 0x6e
push edi
mov dword [0x82f36c], eax
call esi
push 0x6f
push edi
mov dword [0x82f370], eax
call esi
push 0x70
push edi
mov dword [0x82f374], eax
call esi
push 0x71
push edi
mov dword [0x82f378], eax
call esi
mov dword [0x82f37c], eax
cmp dword [esp + 0x280], ebp
jne 0x40feb4
mov ecx, dword [0x82f360]
push 0x7f00
push ebp
mov dword [esp + 0x9c], 0x23
mov dword [esp + 0xa0], 0x4115f0
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], ecx
call dword [sym.imp.USER32.dll_LoadCursorA]
mov edx, dword [0x82f34c]
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xac], eax
lea eax, [esp + 0x94]
push eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xbc], str.SthADOClass
call dword [sym.imp.USER32.dll_RegisterClassA]
mov ecx, dword [0x82f33c]
mov esi, dword [sym.imp.USER32.dll_LoadMenuA]
push 0x7f
push ecx
call esi
mov ebp, dword [sym.imp.USER32.dll_GetMenuItemCount]
push eax
mov dword [0x82f340], eax
call ebp
mov edx, dword [0x82f33c]
push 0x78
push edx
mov dword [0x943e64], eax
call esi
mov dword [0x82f344], eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
call fcn.0040ef30
test eax, eax
mov dword [esp + 0x24], eax
jne 0x40ff29
mov ecx, dword [0x82f340]
push 0x400
push 3
push ecx
call dword [sym.imp.USER32.dll_RemoveMenu]
mov edx, dword [0x82f340]
push edx
call ebp
mov dword [0x943e64], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x82d7d0]
add eax, 0x50
push 0
neg ecx
sbb ecx, ecx
push edi
mov edi, dword [0x82f340]
mov dword [esp + 0x18], eax
not ecx
and ecx, edi
push ecx
push 0
push 0xaa
push 0x1b8
push eax
push 0x50
push 0xcf0000
push 0x82f184
push str.SthADOClass
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
push 0
push edi
mov dword [0x82f304], edi
mov dword [esp + 0xd4], 0x2c
mov dword [esp + 0xd8], 0x12
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe4], 0xefff
mov dword [esp + 0xf8], str.On_tTop
mov dword [esp + 0xfc], 4
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov esi, eax
push esi
call ebp
mov ebp, dword [sym.imp.USER32.dll_InsertMenuItemA]
lea edx, [esp + 0xcc]
mov dword [esp + 0x10], eax
push edx
dec eax
push 1
push eax
push esi
call ebp
lea eax, [esp + 0xcc]
mov dword [esp + 0xd0], 0x10
mov ecx, dword [esp + 0x10]
push eax
push 1
push ecx
push esi
mov dword [esp + 0xe4], 0x800
call ebp
push str.HeroMp3.ini
push 0
push str.HEROMP3OnTop
push str.SETTING
call ebx
mov dword [0x82f414], eax
neg eax
sbb eax, eax
and eax, 8
push eax
push 0xefff
push esi
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov eax, dword [0x82f414]
xor edx, edx
mov esi, dword [sym.imp.USER32.dll_SetWindowPos]
push 0x23
test eax, eax
push 0
push 0
setne dl
push 0
add edx, 0xfffffffe
push 0
push edx
push edi
call esi
mov eax, dword [0x82d7d0]
test eax, eax
je 0x410069
push edi
call fcn.0040adb0
mov eax, dword [0x82f3fc]
test eax, eax
je 0x410077
call fcn.0040f420
push edi
call fcn.0040c720
add esp, 4
lea eax, [esp + 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClientRect]
call fcn.004155d0
mov eax, dword [0x82f308]
test eax, eax
je 0x41009f
call fcn.00415b00
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
call fcn.004064c0
add esp, 0x10
mov dword [0x426e9c], eax
push 6
push eax
push 0x1b8
push 0
push 0
push 0
push edi
call esi
mov eax, dword [0x82f308]
test eax, eax
je 0x4100ed
call fcn.00415bf0
jmp 0x4100f6
push edi
call fcn.0040ed80
add esp, 4
call fcn.0040ebd0
push 0x943900
call fcn.004099b0
add esp, 4
call fcn.00409870
push 0x943900
push 1
push str.ENABLEDEMO
push str.CONFIG
call ebx
push 0
mov dword [0x426480], eax
call fcn.004074a0
mov eax, dword [0x82f328]
add esp, 4
test eax, eax
jne 0x410156
mov eax, dword [0x82f3dc]
test eax, eax
je 0x410156
push 0
push 0x64
push 0x5678
push edi
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [0x82f328], eax
mov eax, dword [0x82f32c]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x4101a4
mov eax, dword [0x82f3dc]
test eax, eax
jne 0x4101a4
push 0x82f330
push 0
push 0
push 0x40ece0
push 0
push 0
mov dword [0x426eb8], 0x64
mov dword [0x426eb4], 1
call ebp
push 0xffffffffffffffff
push eax
mov dword [0x82f32c], eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push str.HeroMp3.ini
push 0
push str.SthADORun
push str.SETTING
call ebx
push edi
lea ecx, [esp + 0x58]
push 0x4268c4
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x4101f5
lea edx, [esp + 0x54]
push str.HeroMp3.ini
push edx
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.SthADORun
push str.SETTING
call ebx
jmp 0x410231
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4101d7
mov eax, dword [esp + 0x10]
push 0
push 0
push 0x4c88
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0x4888
mov dword [esp + 0x10], eax
je 0x41022b
lea ecx, [esp + 0x54]
push str.HeroMp3.ini
push ecx
jmp 0x4101e1
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0x18]
mov esi, dword [sym.imp.USER32.dll_PostMessageA]
test eax, eax
jne 0x41024e
push 0
push 0x9c66
push 0x111
push edi
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x410265
push 0
push 0x9cc8
push 0x111
push edi
call esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41027c
push 0
push 0x9ce4
push 0x111
push edi
call esi
lea eax, [esp + 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
mov dword [esp + 0x10], eax
je 0x41034e
xor ecx, ecx
test eax, eax
jle 0x4102ab
cmp byte [esp + ecx + 0x178], 0x40
je 0x4102dd
inc ecx
cmp ecx, eax
jl 0x41029c
lea eax, [esp + 0x178]
push 0
push eax
call fcn.00401df0
mov ecx, dword [0x42d3c4]
add esp, 8
cmp eax, ecx
jge 0x4102fd
lea ecx, [esp + 0x178]
push 0
mov dword [0x82f410], ecx
push 0x9c3f
jmp 0x410346
cmp ecx, eax
jge 0x4102ab
lea edx, [esp + 0x178]
lea ecx, [esp + 0x178]
push edx
mov dword [0x82f410], ecx
push 0x9c3d
jmp 0x410346
mov edx, dword [esp + 0x10]
push 0x42728c
lea eax, [esp + edx + 0x179]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x410333
mov ecx, dword [esp + 0x10]
push 0x427288
lea edx, [esp + ecx + 0x179]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x41034e
lea eax, [esp + 0x178]
push 0
mov dword [0x82f410], eax
push 0x9c3e
push 0x111
push edi
call esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x410369
push eax
push 0x9c3d
push 0x111
push edi
mov dword [0x82f410], eax
call esi
mov ecx, dword [0x82f304]
lea edx, [esp + 0x178]
push str.NoOldPlus
push edx
mov dword [0x82f3ec], ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x41039d
call fcn.00415da0
push 0x943900
push 0x42681c
jmp 0x4103a7
push 0x943900
push 0x42677c
push str.NotFirstRun
push str.Mp3Dlg
call ebx
call fcn.0040eea0
test eax, eax
je 0x4103c0
xor eax, eax
jmp 0x4103c7
mov eax, dword [esp + 0x288]
push eax
mov eax, dword [0x82f3ec]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [0x82f33c]
push 0x75
push ecx
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
lea edx, [esp + 0x10]
mov dword [0x9438e4], eax
push edx
push 0
push 0
push 0x40ed60
push 0
push 0
call ebp
push 1
push edi
mov dword [0x82f2f8], eax
call fcn.004052b0
mov ebx, dword [sym.imp.USER32.dll_GetMessageA]
add esp, 8
lea eax, [esp + 0x38]
push 0
push 0
push 0
push eax
call ebx
test eax, eax
je 0x4104b4
mov esi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [esp + 0x3c]
cmp eax, 0x102
je 0x410453
cmp eax, 0x100
je 0x410453
cmp eax, 0x101
jne 0x410473
mov ecx, dword [esp + 0x40]
cmp ecx, 0x1b
je 0x410461
cmp ecx, 0xd
jne 0x410473
lea ecx, [esp + 0x38]
push ecx
call esi
lea edx, [esp + 0x38]
push edx
call ebp
mov eax, dword [esp + 0x3c]
cmp eax, 0x233
jne 0x41047e
mov dword [esp + 0x38], edi
mov ecx, dword [0x9438e4]
lea eax, [esp + 0x38]
push eax
push ecx
push edi
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x4104a3
lea edx, [esp + 0x38]
push edx
call esi
lea eax, [esp + 0x38]
push eax
call ebp
push 0
push 0
lea ecx, [esp + 0x40]
push 0
push ecx
call ebx
test eax, eax
jne 0x41043a
push 0
push edi
call fcn.004052b0
mov edx, dword [0x9438e4]
add esp, 8
push edx
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
mov eax, dword [0x82f34c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call esi
call fcn.0040f6c0
mov ecx, dword [0x82f358]
push ecx
call esi
mov edx, dword [0x82f340]
mov esi, dword [sym.imp.USER32.dll_DestroyMenu]
push edx
call esi
mov eax, dword [0x82f344]
push eax
call esi
call fcn.00415ed0
call fcn.00409960
call fcn.00401d70
mov esi, dword [sym.imp.USER32.dll_DestroyIcon]
xor eax, eax
mov dword [esp + 0x10], eax
mov ecx, dword [eax*4 + 0x82f360]
push ecx
call esi
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 7
mov dword [esp + 0x10], eax
jl 0x41051a
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41053f
call fcn.0040efa0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x410550
push eax
call fcn.0041bb45
add esp, 4
call fcn.004070e0
call fcn.00411ff0
mov eax, dword [0x82f2f8]
test eax, eax
je 0x41057f
mov ecx, dword [0x82f2fc]
test ecx, ecx
je 0x410576
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41057f
push 1
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov edx, dword [esp + 0x27c]
push edx
push str.SthADOClass
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, dword [0x82f33c]
mov ecx, dword [0x82f300]
cmp eax, ecx
je 0x4105a8
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.0040cac0
push str.HeroMp3.ini
push 0
push str.SthADORun
push str.SETTING
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, edi
mov dword [esp + 0x10], eax
jne 0x4105ea
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.HeroMp3.ini
push 0x42677c
push str.SthADORun
push str.SETTING
call esi
jmp 0x4105f0
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [0x82f414]
test eax, eax
mov eax, 0x42681c
jne 0x410603
mov eax, 0x42677c
push str.HeroMp3.ini
push eax
push str.HEROMP3OnTop
push str.SETTING
call esi
mov eax, dword [0x82d8b4]
test eax, eax
mov eax, 0x42681c
jne 0x410628
mov eax, 0x42677c
push str.HeroMp3.ini
push eax
push str.EnableMicroPhone
push str.SETTING
call esi
mov eax, dword [0x943ecc]
test eax, eax
mov eax, 0x42681c
jne 0x41064d
mov eax, 0x42677c
push str.HeroMp3.ini
push eax
push str.ENABLEDAB
push str.SETTING
call esi
mov eax, dword [0x82f308]
test eax, eax
je 0x41066d
call fcn.00415940
push 0x943900
call fcn.00409a30
mov eax, dword [0x82d7d0]
add esp, 4
test eax, eax
je 0x410688
call fcn.0040afd0
mov ecx, dword [0x426480]
lea eax, [esp + 0x54]
push 0xa
push eax
push ecx
call fcn.0041babc
add esp, 0xc
lea edx, [esp + 0x54]
push 0x943900
push edx
push str.ENABLEDEMO
push str.CONFIG
call esi
mov ecx, dword [0x426e8c]
lea eax, [esp + 0x54]
push 0xa
push eax
push ecx
call fcn.0041babc
add esp, 0xc
lea edx, [esp + 0x54]
push 0x943900
push edx
push str.ADOCACHESIZE
push str.CONFIG
call esi
push 0x943900
call fcn.0041ac20
mov eax, dword [esp + 0x44]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x268
ret 0x10