Function at 0x404340
Capabilities:
Check mutex on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24c
mov eax, dword [0x46d978]
xor eax, esp
mov dword [esp + 0x248], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov dword [esp + 0x10], ebx
call fcn.00404252
call fcn.0040394e
push str.Bootsetup.cpp
lea ecx, [esp + 0x2c]
call fcn.004012d4
push 0x112
lea eax, [esp + 0x2c]
push eax
xor edi, edi
push edi
lea ecx, [esp + 0x19c]
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.wWinMain
call fcn.00405695
mov edx, str.__Enter
mov ecx, eax
call fcn.00405695
lea ecx, [esp + 0x190]
call fcn.00419f5b
lea ecx, [esp + 0x28]
call fcn.00401303
mov ecx, esi
call fcn.00403a65
push esi
lea ecx, [esp + 0x74]
call fcn.00404a24
lea edx, [esp + 0x70]
mov ecx, ebx
call fcn.00403e43
cmp dword [esp + 0x84], 8
lea eax, [esp + 0x70]
cmovae eax, dword [esp + 0x70]
test eax, eax
je 0x404407
cmp word [eax], di
je 0x404407
push eax
mov ecx, 0x471710
call fcn.0041bfac
push str.Bootsetup.cpp
lea ecx, [esp + 0x2c]
call fcn.004012d4
cmp dword [esp + 0x84], 8
push 0x11b
lea eax, [esp + 0x2c]
push eax
lea esi, [esp + 0x78]
cmovae esi, dword [esp + 0x78]
push edi
lea ecx, [esp + 0x19c]
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.BootsetupApp::ParseCommandLine_:
call fcn.00405695
mov edx, esi
mov ecx, eax
call fcn.00419c99
lea ecx, [esp + 0x190]
call fcn.00419f5b
lea ecx, [esp + 0x28]
call fcn.00401303
mov edx, 0x45ef8c
lea ecx, [esp + 0x58]
call fcn.004060b9
cmp dword [esp + 0x68], edi
jne 0x404493
mov esi, 0x45e930
push esi
call fcn.00401723
pop ecx
push eax
push esi
lea ecx, [esp + 0x60]
call fcn.00405103
push 0x18
pop ecx
mov esi, str.E5638D3B_0BBC_4ab4_BED8_8CCC6D8D57A5_KSBootsetup
lea edi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x190]
push eax
push 1
push 0
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4044d0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
test esi, esi
je 0x40483f
cmp esi, 0xffffffff
je 0x40483f
cmp dword [esp + 0x68], 0
jne 0x40454f
xor ebx, ebx
push ebx
push 0x45f0b0
push 0x45f184
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
push str.Bootsetup.cpp
lea ecx, [esp + 0x2c]
call fcn.004012d4
push 0x12e
lea eax, [esp + 0x2c]
push eax
push ebx
lea ecx, [esp + 0xdc]
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.wWinMain
call fcn.00405695
mov edx, str.__Exit__pid_valid.
mov ecx, eax
call fcn.00405695
lea ecx, [esp + 0xd0]
call fcn.00419f5b
lea ecx, [esp + 0x28]
jmp 0x4048c1
lea eax, [esp + 0x58]
push eax
push ebx
lea ecx, [esp + 0x90]
call fcn.00405eac
push str.Bootsetup.cpp
lea ecx, [esp + 0x2c]
call fcn.004012d4
push 0x133
lea eax, [esp + 0x2c]
push eax
push 0
lea ecx, [esp + 0xdc]
call fcn.00419d97
mov ebx, eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x8c]
call fcn.00406361
lea ecx, [ebx + 0x28]
mov edx, str.Channel_key_is:
mov edi, eax
call fcn.00405695
mov edx, edi
mov ecx, eax
call fcn.00419cec
lea ecx, [esp + 0xd0]
call fcn.00419f5b
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x48]
call fcn.00404e3f
lea ecx, [esp + 0x28]
call fcn.00401303
push dword [esp + 0x10]
lea ecx, [esp + 0x24]
call fcn.00406640
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
cmp dword [esp + 0x6c], 8
lea edx, [esp + 0x58]
cmovae edx, dword [esp + 0x58]
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], ebx
call fcn.004041e2
test al, al
jne 0x404645
mov edx, str.silent_install
lea ecx, [esp + 0x40]
call fcn.004060b9
cmp dword [eax + 0x14], 8
jb 0x404625
mov eax, dword [eax]
push eax
call fcn.0042decf
pop ecx
push ebx
push 1
lea ecx, [esp + 0x48]
mov dword [esp + 0x18], eax
call fcn.00404e3f
lea ecx, [esp + 0x10]
call fcn.00403c19
cmp dword [esp + 0x10], 1
jne 0x404666
push 0xc0
call fcn.0042dbe8
pop ecx
test eax, eax
je 0x404693
mov ecx, eax
call fcn.0040d721
mov edi, eax
jmp 0x404695
push 0xd0
call fcn.0042dbe8
pop ecx
test eax, eax
je 0x40468a
cmp dword [esp + 0x10], 2
sete cl
movzx ecx, cl
push ecx
mov ecx, eax
call fcn.0040e712
jmp 0x40468c
mov eax, ebx
lea edi, [eax + 8]
test eax, eax
jne 0x404695
mov edi, ebx
call fcn.004178ff
mov dword [eax + 0x3c0], edi
push dword [esp + 0x24]
call fcn.004178ff
mov ecx, eax
call fcn.004177f1
call fcn.0040a4ee
mov ecx, eax
call fcn.0040a517
xor eax, eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], ebx
mov word [esp + 0x28], ax
call fcn.00414802
lea ecx, [esp + 0x14]
mov bl, al
call fcn.0040a3ee
push str.is_cover
lea ecx, [esp + 0x44]
call fcn.00404a24
xor eax, eax
test bl, bl
setne al
lea ecx, [esp + 0x14]
cdq
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.0040a444
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x48]
call fcn.00404e3f
push str.is_silent
lea ecx, [esp + 0x44]
call fcn.00404a24
xor eax, eax
cmp dword [esp + 0x10], 1
lea ecx, [esp + 0x14]
sete al
cdq
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.0040a444
lea ecx, [esp + 0x40]
push ebx
push 1
call fcn.00404e3f
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.0040a4ee
mov ecx, eax
call fcn.0040a59b
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], vtable.ReportValueList.0
call fcn.0040aa04
push ebx
push 1
lea ecx, [esp + 0x30]
call fcn.00404e3f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x404792
mov eax, dword [ecx]
call dword [eax + 0xc]
call fcn.0040a4ee
mov ecx, dword [eax]
test ecx, ecx
je 0x4047a2
call fcn.0041bd27
call fcn.00423f69
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
call fcn.004178ff
add eax, 4
push eax
push 2
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 8]
call fcn.004042de
push str.Bootsetup.cpp
lea ecx, [esp + 0x44]
call fcn.004012d4
push 0x16e
lea eax, [esp + 0x44]
push eax
push ebx
lea ecx, [esp + 0xdc]
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.wWinMain
call fcn.00405695
mov edx, str.__Exit
mov ecx, eax
call fcn.00405695
lea ecx, [esp + 0xd0]
call fcn.00419f5b
lea ecx, [esp + 0x40]
call fcn.00401303
lea ecx, [esp + 0x88]
mov dword [esp + 0x20], vtable.ApplicationWndWrapper.0
mov dword [0x4717cc], ebx
call fcn.00405ff6
jmp 0x4048c6
mov edi, str.p_home
push edi
call fcn.00401723
pop ecx
push eax
push edi
push dword [esp + 0x70]
push ecx
lea ecx, [esp + 0x68]
call fcn.00405897
xor ebx, ebx
test eax, eax
je 0x4048c6
push ebx
push 0x45f0b0
push 0x45f14c
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
push str.Bootsetup.cpp
lea ecx, [esp + 0x44]
call fcn.004012d4
push 0x127
lea eax, [esp + 0x44]
push eax
push ebx
lea ecx, [esp + 0xdc]
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.wWinMain
call fcn.00405695
mov edx, str.__Exit__mutex_unusable.
mov ecx, eax
call fcn.00405695
lea ecx, [esp + 0xd0]
call fcn.00419f5b
lea ecx, [esp + 0x40]
call fcn.00401303
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push 1
lea ecx, [esp + 0x60]
call fcn.00404e3f
push ebx
push 1
lea ecx, [esp + 0x78]
call fcn.00404e3f
mov ecx, dword [esp + 0x254]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0042d3d2
mov esp, ebp
pop ebp
ret 0x10