Function at 0x4a7b20
Capabilities:
Check mutex on windows
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x16c
mov eax, dword [0x4c75d0]
xor eax, esp
mov dword [esp + 0x168], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], 8
mov dword [esp + 0x48], 0x43f
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x64
push 0x4ed4b0
push 0xb86
push edi
call esi
push 0x100
push 0x4edea0
push 0xbae
push edi
call esi
mov ecx, dword [sym.imp.MSVCR100.dll___argc]
mov eax, dword [ecx]
mov edx, dword [sym.imp.MSVCR100.dll___argv]
mov esi, dword [edx]
mov ebx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], esi
cmp eax, ebx
jle 0x4a7c8f
mov dword [esp + 0x10], 2
jmp 0x4a7bc0
mov eax, dword [esi + ebx*4]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push 0x4bd894
push eax
call edi
test eax, eax
je 0x4a7c7c
mov ecx, dword [esi + ebx*4]
push str._debugbreak
push ecx
call edi
test eax, eax
je 0x4a7c7c
mov edx, dword [esi + ebx*4]
push 0x4bd068
push edx
call edi
test eax, eax
je 0x4a7c74
mov eax, dword [esi + ebx*4]
push str._multiinstance
push eax
call edi
test eax, eax
je 0x4a7c74
mov ecx, dword [esi + ebx*4]
push str._fileassoc
push ecx
call edi
test eax, eax
je 0x4a7d42
mov edx, dword [esi + ebx*4]
push 0x4bd8c8
push edx
call edi
test eax, eax
je 0x4a7c3b
mov eax, dword [esi + ebx*4]
push str._file
push eax
call edi
test eax, eax
jne 0x4a7c7c
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x14]
jge 0x4a7c7c
mov eax, dword [esi + ebx*4 + 4]
inc dword [esp + 0x10]
inc ebx
lea ecx, [esp + 0x48]
call fcn.00401e50
lea ecx, [esp + 0x48]
mov edi, 0x4ede64
call fcn.00401e90
lea esi, [esp + 0x48]
call fcn.00401b70
mov esi, dword [esp + 0x3c]
jmp 0x4a7c7c
mov dword [esp + 0x1c], 1
inc dword [esp + 0x10]
inc ebx
cmp ebx, dword [esp + 0x14]
jl 0x4a7bc0
mov edi, dword [esp + 0x18]
push 0x4ed4b0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x4edd3c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4a7ea5
push 0
push 0x4ed4b0
call dword [sym.imp.USER32.dll_FindWindowA]
mov ecx, dword [0x4ede68]
mov ebx, dword [0x4ede64]
mov esi, eax
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], esi
je 0x4a7e5a
xor ecx, ecx
cmp esi, ecx
je 0x4a7e41
mov dword [esp + 0x10], ecx
cmp eax, ecx
jbe 0x4a7e41
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov ecx, 7
mov esi, str.TunerPro:_OpenFileInExisting
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
add eax, ebx
movsb byte es:[edi], byte [esi]
cmp dword [eax + 0x14], 0x10
jb 0x4a7d27
mov eax, dword [eax]
mov edx, eax
mov eax, 0x104
lea ecx, [esp + 0x68]
call fcn.004a0810
cmp byte [esp + 0x48], 0
jne 0x4a7daa
xor esi, esi
jmp 0x4a7db8
xor edi, edi
lea eax, [ebx + 1]
mov dword [esp + 0x10], edi
cmp eax, dword [esp + 0x14]
jge 0x4a7d61
mov ebx, eax
mov edx, dword [esi + ebx*4]
push edx
call fcn.004755e0
add esp, 4
mov edi, eax
lea eax, [ebx + 1]
cmp eax, dword [esp + 0x14]
jge 0x4a7d7b
mov ecx, dword [esi + ebx*4 + 4]
push ecx
call fcn.004755e0
add esp, 4
mov dword [esp + 0x10], eax
push edi
call fcn.00478a10
mov edx, dword [esp + 0x14]
add esp, 4
push edx
call fcn.004785b0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x168]
xor ecx, esp
call fcn.0042dbe7
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomA]
movzx esi, ax
cmp byte [esp + 0x68], 0
jne 0x4a7dc3
xor edi, edi
jmp 0x4a7dd1
lea edx, [esp + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomA]
movzx edi, ax
mov edx, dword [esp + 0x18]
movzx eax, di
movzx ecx, si
shl eax, 0x10
or eax, ecx
push eax
push edx
push 0x3e0
push 0xffff
call dword [sym.imp.USER32.dll_SendMessageA]
test si, si
je 0x4a7dfe
push esi
call dword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
test di, di
je 0x4a7e0a
push edi
call dword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
mov ecx, dword [0x4ede68]
mov ebx, dword [0x4ede64]
mov esi, dword [esp + 0x10]
add dword [esp + 0x14], 0x1c
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
mov dword [esp + 0x10], esi
cmp esi, eax
jb 0x4a7d08
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x168]
xor ecx, esp
call fcn.0042dbe7
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esp + 0x1c], 0
jne 0x4a7ea5
push 0x30
push str.TunerPro_Initialization_Error
push str.TunerPro_is_already_open
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test esi, esi
je 0x4a7e8c
push 3
push 0
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x168]
xor ecx, esp
call fcn.0042dbe7
mov esp, ebp
pop ebp
ret 0x10
push edi
call fcn.004a78e0
add esp, 4
push 0
push edi
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push 0x4edea0
push 0x4ed4b0
push 0x10
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
test esi, esi
je 0x4a7d91
call fcn.004a31e0
mov ecx, dword [0x4dd0e4]
push ecx
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
push 0
push 0
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x4a800d
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [ecx]
cmp dword [0x4ee08c], 0
je 0x4a7f4c
mov eax, dword [esp + 0x24]
cmp eax, 0x201
je 0x4a7f42
cmp eax, 0x204
je 0x4a7f42
cmp eax, 0x100
jne 0x4a7f9e
mov esi, 0x4ee084
call fcn.00465760
cmp dword [esp + 0x24], 0x100
jne 0x4a7f9e
cmp dword [esp + 0x28], 0x1b
jne 0x4a7f9e
mov ecx, dword [0x4ede80]
mov edx, dword [0x4ee004]
lea eax, [esp + 0x20]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x4a7ff4
mov ecx, dword [0x4ee008]
lea eax, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
test eax, eax
jne 0x4a7ff4
lea edx, [esp + 0x20]
push edx
call ebx
lea eax, [esp + 0x20]
push eax
jmp 0x4a7fee
mov edx, dword [0x4ede80]
mov eax, dword [0x4ee004]
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x4a7ff4
lea ecx, [esp + 0x20]
push ecx
mov edi, 0x4ede74
call fcn.00476b70
test eax, eax
jne 0x4a7ff4
mov eax, dword [0x4ee008]
lea edx, [esp + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
test eax, eax
jne 0x4a7ff4
lea ecx, [esp + 0x20]
push ecx
call ebx
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
jne 0x4a7f20
call fcn.004a4f50
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042dbe7
mov esp, ebp
pop ebp
ret 0x10