Function at 0x4206e1
Capabilities:
Accept command line arguments
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov al, byte [ebp + 0xb]
push ebx
push esi
xor ebx, ebx
push edi
push ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.0040249b
mov esi, str.igfxcfgmutext
push esi
call fcn.0043d3e0
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.0040288f
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push ebx
mov edi, eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, 0x459e14
mov dword [ebp - 0x14], ebx
push esi
push edi
mov dword [ebp - 0x10], 1
call fcn.004205d1
pop ecx
mov edi, 0x45fd58
pop ecx
mov dword [ebp - 0xc], eax
push dword [ebp + 8]
mov dword [0x45fdc8], 0x4581e8
mov dword [0x45da80], edi
mov dword [0x45fd58], 0x84
push 0x459c80
push edi
mov dword [0x45fdbc], 0x300
call fcn.00420c0b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp - 0xc], ebx
mov dword [0x45fddc], eax
je 0x4208c2
push str.UnregServer
push dword [ebp - 0xc]
call fcn.0043d61f
pop ecx
test eax, eax
pop ecx
je 0x420894
push str.RegServer
push dword [ebp - 0xc]
call fcn.0043d61f
pop ecx
test eax, eax
pop ecx
je 0x4208a8
push str.DeviceName
push dword [ebp - 0xc]
call fcn.0043e89a
pop ecx
test eax, eax
pop ecx
je 0x42081c
push 0x459df8
push dword [ebp - 0xc]
call fcn.004205d1
pop ecx
cmp eax, ebx
pop ecx
je 0x42087c
push esi
push eax
lea eax, [ebp - 0x17c]
push eax
call fcn.00420609
add esp, 0xc
test eax, eax
je 0x42087c
lea eax, [ebp - 0x17c]
push eax
call fcn.004373db
push eax
mov dword [ebp - 4], eax
call fcn.0043d3e0
pop ecx
pop ecx
push eax
mov ecx, 0x45fd48
push dword [ebp - 4]
jmp 0x420877
push str.SchemeName
push dword [ebp - 0xc]
call fcn.0043e89a
pop ecx
test eax, eax
pop ecx
je 0x42087c
push 0x459df8
push dword [ebp - 0xc]
call fcn.004205d1
pop ecx
cmp eax, ebx
pop ecx
je 0x42087c
push esi
push eax
lea eax, [ebp - 0x17c]
push eax
call fcn.00420609
add esp, 0xc
test eax, eax
je 0x42087c
lea eax, [ebp - 0x17c]
push eax
call fcn.004373db
push eax
mov dword [ebp - 4], eax
call fcn.0043d3e0
pop ecx
pop ecx
push eax
mov ecx, 0x45fde0
push dword [ebp - 4]
call fcn.0040288f
push esi
push dword [ebp - 0xc]
call fcn.004205d1
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0xc], eax
jne 0x420789
jmp 0x4208c2
push ebx
push ebx
push 0x64
push edi
call fcn.0041f184
push ebx
push ebx
push edi
call fcn.00420ed8
jmp 0x4208bc
push ebx
push 1
push 0x64
push edi
call fcn.0041f184
push ebx
push 1
push edi
call fcn.00420d5f
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ebx
push str.Uninited
push 0x45fd48
call fcn.00421c96
pop ecx
test al, al
pop ecx
je 0x42095f
cmp dword [ebp - 0x10], ebx
je 0x420bf1
push 0x114
call fcn.0043d464
cmp eax, ebx
pop ecx
je 0x4208fe
mov ecx, eax
call fcn.0042da18
mov esi, eax
jmp 0x420900
xor esi, esi
mov eax, dword [esi + 0x10c]
cmp eax, 1
mov dword [ebp - 4], eax
jbe 0x420916
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x60]
cmp dword [ebp - 4], ebx
jbe 0x420950
push ebx
mov ecx, esi
call fcn.00421270
push eax
call fcn.0043d3e0
test eax, eax
pop ecx
jbe 0x420950
push ebx
mov ecx, esi
call fcn.00421270
push eax
mov dword [ebp - 4], eax
call fcn.0043d3e0
pop ecx
push eax
mov ecx, 0x45fd48
push dword [ebp - 4]
call fcn.0040288f
jmp 0x420953
mov dword [ebp - 0x10], ebx
cmp esi, ebx
je 0x42095f
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
cmp dword [ebp - 0x10], ebx
je 0x420bf1
push 0x45db10
push 0x45fde0
call fcn.00421c96
pop ecx
test al, al
pop ecx
je 0x420a99
push dword [0x44b69c]
lea ecx, [ebp - 0x24]
push ebx
push 0x45fd48
call fcn.00421a50
push 0x105
lea eax, [ebp - 0x284]
push ebx
push eax
call fcn.0043d480
mov eax, dword [ebp - 0x20]
add esp, 0xc
cmp eax, ebx
jne 0x4209b6
mov eax, 0x44b544
push 0x104
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.0043e494
lea eax, [ebp - 0x284]
push eax
call fcn.004374ab
mov esi, eax
push esi
call fcn.0043d3e0
add esp, 0x14
lea ecx, [ebp - 0x24]
push eax
push esi
call fcn.0040288f
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call fcn.0040249b
mov esi, str.Global_
push esi
call fcn.0043d3e0
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.0040288f
push dword [0x44b69c]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x34]
push ebx
push eax
call fcn.00421a50
mov al, byte [ebp - 0x34]
push ebx
lea ecx, [ebp - 0x44]
mov byte [ebp - 5], bl
mov byte [ebp - 0x44], al
call fcn.0040249b
push dword [0x44b69c]
lea eax, [ebp - 0x34]
push ebx
push eax
lea ecx, [ebp - 0x44]
call fcn.004145a4
mov eax, dword [ebp - 0x40]
cmp eax, ebx
jne 0x420a52
mov eax, 0x44b544
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
jne 0x420a75
cmp byte [ebp - 5], bl
jne 0x420a75
push dword [0x44b69c]
mov byte [ebp - 5], 1
lea eax, [ebp - 0x24]
push ebx
jmp 0x420a3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x420a85
mov dword [ebp - 0x10], ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.0040249b
push 1
lea ecx, [ebp - 0x34]
call fcn.0040249b
cmp dword [ebp - 0x10], ebx
je 0x420bf1
push 1
push 4
push edi
call fcn.00420c8e
mov eax, dword [0x45fd4c]
cmp eax, ebx
jne 0x420aba
mov eax, 0x44b544
mov esi, dword [ebp + 8]
push 0x4b8
push esi
push eax
call sub.hccutils.DLL_FindResources
pop ecx
pop ecx
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 4], eax
push 0x28
lea eax, [ebp - 0x78]
push ebx
push eax
call fcn.0043d480
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], esi
lea eax, [ebp - 0x78]
mov esi, str.igfxcfgClass
push eax
mov dword [ebp - 0x74], 0x42063f
mov dword [ebp - 0x54], esi
call dword [sym.imp.USER32.dll_RegisterClassA]
push 0x45db10
push 0x45fde0
call fcn.00421c96
pop ecx
test al, al
mov eax, dword [0x45fd4c]
pop ecx
je 0x420b46
cmp eax, ebx
jne 0x420b29
mov eax, 0x44b544
push eax
push str.igfxcfgWindow
call fcn.004374f4
push eax
mov dword [ebp - 4], eax
call fcn.0043d3e0
add esp, 0xc
push eax
push dword [ebp - 4]
jmp 0x420b6a
cmp eax, ebx
jne 0x420b4f
mov eax, 0x44b544
push eax
push str.igfxschemeWindow
call fcn.004374f4
push eax
mov dword [ebp - 4], eax
call fcn.0043d3e0
add esp, 0xc
push eax
push dword [ebp - 4]
lea ecx, [ebp - 0x24]
call fcn.0040288f
mov eax, dword [ebp - 0x20]
cmp eax, ebx
jne 0x420b7e
mov eax, 0x44b544
push ebx
push dword [ebp + 8]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push esi
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [0x45fde4]
cmp ecx, ebx
jne 0x420ba1
mov ecx, 0x44b544
push ecx
push ebx
push 0x111
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
lea eax, [ebp - 0x50]
push ebx
push eax
call esi
test eax, eax
je 0x420bd5
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
lea eax, [ebp - 0x50]
push ebx
push eax
jmp 0x420bbc
push edi
call fcn.00420d23
mov ecx, dword [0x45fdf4]
cmp ecx, ebx
je 0x420bf1
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45fdf4], ebx
call dword [sym.imp.ole32.dll_CoUninitialize]
push 1
lea ecx, [ebp - 0x24]
call fcn.0040249b
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x10