Function at 0x418200
Capabilities:
Check mutex on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x449148
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x17e64
call fcn.00434bf0
mov eax, dword [0x460cd0]
xor eax, esp
mov dword [esp + 0x17e60], eax
push ebx
push esi
push edi
mov eax, dword [0x460cd0]
xor eax, esp
push eax
lea eax, [esp + 0x17e78]
mov dword fs:[0], eax
lea eax, [esp + 0x1c]
push eax
mov ebx, ecx
mov dword [esp + 0x20], 8
mov dword [esp + 0x24], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, ebx
call fcn.00429f2b
mov ecx, 0x466338
call fcn.0041a380
lea esi, [ebx + 0xc0]
push esi
call fcn.00418b90
test eax, eax
jne 0x418296
push esi
push str.Default_MFG_from_resource_is__s
mov ecx, 0x466338
call fcn.0041a690
add esp, 8
push 0x453f08
push esi
call fcn.0042f75b
add esp, 8
test eax, eax
jne 0x4182c0
push 0xff
push 0x44ea58
push 0x100
push esi
call fcn.0042f011
add esp, 0x10
push esi
push str.Default_MFG_is__s
mov ecx, 0x466338
call fcn.0041a690
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x20]
call fcn.0041d300
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00403710
xor edi, edi
mov dword [esp + 0x17e80], edi
mov eax, dword [esp + 0x18]
cmp eax, 5
jb 0x4187fe
jne 0x41830d
cmp dword [esp + 0x14], 1
jb 0x4187fe
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x418333
push 0x94
call fcn.0042636e
cmp eax, edi
je 0x41881b
push 0x94
jmp 0x418811
push edi
lea eax, [ebx + 0xa4]
push eax
lea ecx, [ebx + 0xb4]
push ecx
call sub.gdiplus.dll_GdiplusStartup
mov ecx, ebx
call fcn.00418870
push 0x104
lea edx, [esp + 0x12c48]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x12c44]
push eax
push str.CurrentFilePath_:___s_
mov ecx, 0x466338
call fcn.0041a690
add esp, 8
cmp byte [ebx + 0xb9], 0
jne 0x4184f8
lea ecx, [esp + 0x12a3c]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x4183eb
lea eax, [esp + 0x12a3c]
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4183b0
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x12a3a], 0x5c
jne 0x4183eb
lea eax, [esp + 0x12a3c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4183d4
sub eax, edx
sar eax, 1
mov word [esp + eax*2 + 0x12a3a], di
push 0x103
push str._totaluninstaller2.exe
lea edx, [esp + 0x12a44]
push 0x104
push edx
call fcn.0042f0da
push 1
lea ecx, [esp + 0x12a50]
call fcn.0041be50
add esp, 0x14
test eax, eax
mov ecx, 0x466338
jne 0x418428
push str.TotalUninstaller2_in_Temp_Directory_is_removed_successfully_before_copy
jmp 0x41842d
push str.Fail_to_remove_TotalUninstaller_2_in_TempDirectory_before_copy
call fcn.0041a690
add esp, 4
lea edi, [esp + 0x12a3c]
lea esi, [esp + 0x12c44]
call fcn.0041b540
test eax, eax
mov ecx, 0x466338
jne 0x418458
push str.success_copy_TotalUninstaller_to_Temp
jmp 0x41845d
push str.Fail_to_copy_TotalUninstaller_to_Temp
call fcn.0041a690
add esp, 4
push 0x4e20
lea eax, [esp + 0x13050]
push 0
push eax
call fcn.00430500
mov ebx, dword [ebx + 0x48]
add esp, 0xc
test ebx, ebx
je 0x4184d7
mov eax, ebx
lea edx, [eax + 2]
jmp 0x418490
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x418490
sub eax, edx
sar eax, 1
je 0x4184d7
lea ecx, [esp + 0x12c44]
push ecx
push ebx
lea edx, [esp + 0x12a44]
push edx
push str._s__s___RUN__ME__s_
lea edx, [esp + 0x1305c]
call fcn.00415730
add esp, 0x10
lea ecx, [esp + 0x1304c]
call fcn.0041d570
jmp 0x418829
lea eax, [esp + 0x12a3c]
push eax
push str._s__RUN__REMOVE_ALL
lea edx, [esp + 0x13054]
call fcn.00415730
add esp, 8
jmp 0x418829
push str.m_bRun_true
mov ecx, 0x466338
call fcn.0041a690
add esp, 4
push 0x200
lea ecx, [esp + 0x12e50]
push edi
push ecx
call fcn.00430500
add esp, 0xc
push esi
push str._s_Printer_Software_Uninstaller
lea edx, [esp + 0x12e54]
call fcn.0040dd40
add esp, 8
lea edx, [esp + 0x12e4c]
push edx
push 1
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0xbc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x418581
mov ebx, dword [ebx + 0xbc]
cmp ebx, edi
je 0x41856a
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push str.Previous_instance_exists____
mov ecx, 0x466338
call fcn.0041a690
add esp, 4
jmp 0x418829
lea eax, [esp + 0x14a4]
push eax
call fcn.004087c0
mov byte [esp + 0x17e80], 1
lea ecx, [esp + 0x11c4c]
push ecx
call fcn.004169c0
mov byte [esp + 0x17e80], 2
lea edx, [esp + 0x10f14]
push edx
call fcn.0040b420
mov byte [esp + 0x17e80], 3
lea eax, [esp + 0x704]
push eax
call fcn.00403ab0
mov byte [esp + 0x17e80], 4
lea ecx, [esp + 0x24]
push ecx
call fcn.0040e260
mov byte [esp + 0x17e80], 5
lea edx, [esp + 0xf7dc]
push edx
call fcn.00401010
mov bl, 6
mov byte [esp + 0x17e80], bl
lea eax, [esp + 0x1b4]
push eax
call fcn.0040e9e0
mov byte [esp + 0x17e80], 7
lea ecx, [esp + 0x14a4]
call fcn.0042516b
cmp eax, 1
jne 0x418774
push str.initdlg_ok
mov ecx, 0x466338
call fcn.0041a690
mov eax, dword [0x46506c]
add esp, 4
cmp eax, edi
jne 0x418646
xor esi, esi
jmp 0x418661
mov ecx, dword [0x465070]
sub ecx, eax
mov eax, 0x92002481
imul ecx
add edx, ecx
sar edx, 0xd
mov esi, edx
shr esi, 0x1f
add esi, edx
push esi
push str.size_of_global_vector_:___d_
mov ecx, 0x466338
call fcn.0041a690
add esp, 8
cmp esi, edi
jle 0x418706
lea ecx, [esp + 0x1b4]
call fcn.0042516b
cmp eax, 1
jne 0x418774
lea ecx, [esp + 0x11c4c]
call fcn.0042516b
cmp eax, 1
jne 0x4186f9
lea ecx, [esp + 0x10f14]
call fcn.0042516b
cmp eax, 1
jne 0x418774
mov ecx, dword [0x4650c0]
push 0x3ff
push ecx
lea edx, [esp + 0xab0]
push 0x400
push edx
call fcn.0042f011
add esp, 0x10
lea ecx, [esp + 0x704]
call fcn.0042516b
cmp eax, 0x4d2
jne 0x418774
call fcn.00409160
jmp 0x418612
cmp eax, 0x4d2
je 0x418612
jmp 0x418774
push str.size__0
mov ecx, 0x466338
call fcn.0041a690
add esp, 4
lea ecx, [esp + 0x24]
mov dword [esp + 0xf4], 0x120
call fcn.0042516b
cmp eax, 1
jne 0x418774
mov eax, dword [0x4650c0]
push 0x3ff
push eax
lea ecx, [esp + 0xf978]
push 0x400
push ecx
call fcn.0042f011
add esp, 0x10
lea ecx, [esp + 0xf7dc]
call fcn.0042516b
cmp eax, 2
jne 0x418774
push str.TotalUninstaller_is_finished_with_AloneDlg
mov ecx, 0x466338
call fcn.0041a690
add esp, 4
mov byte [esp + 0x17e80], bl
lea ecx, [esp + 0x1b4]
call fcn.0040eb60
mov byte [esp + 0x17e80], 5
lea ecx, [esp + 0xf7dc]
call fcn.004011a0
mov byte [esp + 0x17e80], 4
lea ecx, [esp + 0x24]
call fcn.0040e360
mov byte [esp + 0x17e80], 3
lea ecx, [esp + 0x704]
call fcn.00403c70
mov byte [esp + 0x17e80], 2
lea ecx, [esp + 0x10f14]
call fcn.0040b5e0
mov byte [esp + 0x17e80], 1
lea ecx, [esp + 0x11c4c]
call fcn.00416b90
mov byte [esp + 0x17e80], 0
lea ecx, [esp + 0x14a4]
call fcn.00408880
jmp 0x418829
push 0x95
call fcn.0042636e
cmp eax, edi
je 0x41881b
push 0x95
push eax
lea ecx, [esp + 0x18]
call fcn.004032e0
mov edx, dword [esp + 0x10]
push edi
push edi
push edx
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [esp + 0x17e80], 0xffffffff
lea ecx, [esp + 0x10]
call fcn.004036b0
xor eax, eax
mov ecx, dword [esp + 0x17e78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x17e60]
xor ecx, esp
call fcn.0042f002
mov esp, ebp
pop ebp
ret