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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push 0x8003
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0
call sub.IMM32.dll_ImmDisableIME
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, eax
push ebx
call fcn.0043e180
add esp, 4
test al, al
jne 0x43e2e7
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push esi
push str.LocalQ360FileSmasher
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
je 0x43e31a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x43e31a
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xc], 0
jmp 0x43e31d
mov dword [ebp - 0xc], esi
mov eax, dword [0x4e3954]
mov edx, dword [eax + 0xc]
push edi
mov ecx, 0x4e3954
call edx
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov esi, eax
push str._shredfilelist_
add esi, 0x10
push ebx
mov dword [ebp - 0x10], esi
call edi
test eax, eax
je 0x43e358
lea eax, [ebp - 0x10]
push eax
mov ecx, ebx
call fcn.0043d7a0
mov esi, dword [ebp - 0x10]
add esp, 4
push str._settings
push ebx
call edi
test eax, eax
je 0x43e36b
mov byte [0x4e4796], 1
cmp dword [ebp - 0xc], 0
jne 0x43e3f7
cmp byte [0x4e4796], 0
je 0x43e39d
push 0
push 0x4c10c4
call dword [sym.imp.USER32.dll_FindWindowW]
push 0
push 0
push 0x62a
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x43e3d0
mov eax, dword [esi - 0xc]
test eax, eax
jne 0x43e3c2
push eax
push 0x4c10c4
call dword [sym.imp.USER32.dll_FindWindowW]
push 0
push 0
push 0x62b
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x43e3d0
lea ecx, [eax + eax + 2]
push ecx
push esi
call fcn.00407250
add esp, 8
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43e3ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
call fcn.00415880
lea edi, [ebp - 4]
call fcn.00401060
push eax
lea ecx, [ebp - 8]
push ecx
mov edi, str.CrashReport.dll
call fcn.00406590
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
add esp, 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43e445
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 8]
call fcn.00410ec0
test eax, eax
je 0x43e471
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x43e471
push str.Initialize
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x43e471
call eax
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43e490
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
setne al
mov byte [0x4e4795], al
test al, al
jne 0x43e576
push str.elevated
push ebx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x43e576
mov edx, dword [0x4e3954]
mov eax, dword [edx + 0xc]
mov ecx, 0x4e3954
call eax
push esi
add eax, 0x10
push str._shredfilelist_
push str._s_s__elevated
lea edi, [ebp - 8]
mov dword [ebp - 8], eax
call fcn.00406770
mov edx, dword [0x4e3954]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x4e3954
call eax
add eax, 0x10
lea edi, [ebp - 0x14]
mov dword [ebp - 4], eax
call fcn.00401060
mov ecx, dword [eax]
push 0x4c1104
push ecx
push str.__s_s_
lea edi, [ebp - 4]
call fcn.00406770
add esp, 0xc
lea ecx, [ebp - 0x14]
call fcn.00403710
call fcn.0043d440
test eax, eax
je 0x43e566
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.004556f0
mov ecx, edi
call fcn.00403710
lea ecx, [ebp - 8]
call fcn.00403710
lea ecx, [ebp - 0x10]
call fcn.00403710
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 4]
call fcn.00403710
lea ecx, [ebp - 8]
call fcn.00403710
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x14], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.00444490
call fcn.00444290
cmp byte [0x4e4795], 0
mov eax, str.FileSmasher
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], eax
setne al
mov dword [ebp - 0x30], 0x6a
mov dword [ebp - 0x2c], str.FileSmasher_filesmasher_theme.ui
mov dword [ebp - 0x24], 0x6b
mov dword [ebp - 0x20], str.filesmasher_theme.xml
test al, al
jne 0x43e67a
call fcn.0040a730
lea edx, [ebp - 0x30]
push edx
call fcn.0040b2a0
add esp, 4
xor edi, edi
call fcn.00411170
test eax, eax
je 0x43e612
call fcn.00411cd0
test al, al
je 0x43e612
mov eax, dword [ebp + 0x14]
push eax
call fcn.0043d4b0
add esp, 4
mov edi, eax
call fcn.0043e920
call fcn.0043e8c0
call dword [sym.imp.ole32.dll_OleUninitialize]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.CrashReport.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x43e653
push str.OnExiting
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x43e653
call eax
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43e66f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x30]
push ecx
call fcn.0040b100
jmp 0x43e5ed