Function at 0x4025d0
Capabilities:
Accept command line arguments
Check mutex on windows
Check os version
Create thread
Delete file
Delete registry key
Get common file path
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4de4
call fcn.00409870
mov eax, dword [0x40d798]
xor eax, esp
mov dword [esp + 0x4de0], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
push str.USER32.DLL
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp eax, edi
je 0x402643
push str.SetProcessDPIAware
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, edi
je 0x402643
call eax
push 0x200
lea ecx, [esp + 0x19ec]
push edi
push ecx
call fcn.00405e80
add esp, 0xc
push 0x800
lea edx, [esp + 0x3dec]
push edi
push edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
call fcn.00405e80
add esp, 0xc
push 0x800
lea eax, [esp + 0x35ec]
push edi
push eax
call fcn.00405e80
add esp, 0xc
push 0x800
lea ecx, [esp + 0x45ec]
push edi
push ecx
call fcn.00405e80
add esp, 0xc
push 0x800
lea edx, [esp + 0x2dec]
push edi
push edx
call fcn.00405e80
add esp, 0xc
push 0x105
lea eax, [esp + 0x3bc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4026dd
mov word [esp + 0x3b8], di
cmp word [esp + 0x3b8], di
lea eax, [esp + 0x3b8]
mov edx, eax
je 0x40270d
movzx ecx, word [eax]
add eax, 2
cmp cx, 0x5c
je 0x402702
cmp cx, 0x3a
jne 0x402704
mov edx, eax
cmp word [eax], di
jne 0x4026f0
cmp edx, edi
je 0x402710
mov word [edx], di
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [esp + 0x3b8]
push ecx
lea edx, [esp + 0x17dc]
push edx
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.SETUP.INI
lea eax, [esp + 0x17dc]
push eax
call esi
push 0x114
lea ecx, [esp + 0x94]
push edi
push ecx
call fcn.00405e80
add esp, 0xc
lea edx, [esp + 0x90]
push edx
mov dword [esp + 0x94], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0xa0], 2
jne 0x40336f
cmp dword [esp + 0x94], 5
jb 0x40336f
mov eax, dword [ebp + 0x10]
cmp word [eax], di
je 0x402838
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, 1
cmp dword [esp + 0x20], esi
mov edi, eax
jle 0x40283f
mov ecx, esi
lea esp, [esp]
mov eax, dword [edi + esi*4]
cmp word [eax], 0x2d
je 0x4027e3
push eax
lea edx, [esp + 0x5cc]
push edx
mov dword [esp + 0x24], 1
call ebx
mov ecx, 1
jmp case.0x4027f6.66
movzx eax, word [eax + 2]
add eax, 0xffffffbf
cmp eax, 0x32
ja case.0x4027f6.66
movzx eax, byte [eax + 0x4033c4]
jmp dword [eax*4 + 0x4033a4]
mov dword [esp + 0xc], ecx
jmp case.0x4027f6.66
mov dword [esp + 0x14], ecx
jmp case.0x4027f6.66
mov dword [esp + 0x40], ecx
jmp case.0x4027f6.66
mov dword [esp + 0x48], ecx
jmp case.0x4027f6.66
mov dword [esp + 0x18], ecx
jmp case.0x4027f6.66
mov dword [esp + 0x18], 2
jmp case.0x4027f6.66
mov dword [esp + 0x10], ecx
add esi, ecx
cmp esi, dword [esp + 0x20]
jl 0x4027c0
mov edi, 1
jmp 0x402841
mov edi, 1
jmp 0x402847
mov edi, esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.Global_
lea ecx, [esp + 0xfdc]
push ecx
call ebx
push str.IJPLMINSTALLER
lea edx, [esp + 0xfdc]
push edx
call esi
cmp dword [esp + 0xc], 0
je 0x40287b
push str._UNINSTALL
lea eax, [esp + 0xfdc]
push eax
call esi
lea ecx, [esp + 0xfd8]
push ecx
push edi
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
mov dword [esp + 0x20], eax
je 0x40327e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40327e
cmp dword [esp + 0xc], 0
jne 0x4028c2
cmp dword [esp + 0x10], 0
jne 0x4028c2
cmp dword [esp + 0x1c], 0
je 0x40335d
push 0x200
lea edx, [esp + 0x1bec]
push 0
push edx
call fcn.00405e80
add esp, 0xc
push 0x200
lea eax, [esp + 0x1dec]
push 0
push eax
call fcn.00405e80
add esp, 0xc
cmp dword [esp + 0x1c], 0
je 0x402967
push 0
lea edi, [esp + 0x5cc]
call fcn.00401090
add esp, 4
lea ecx, [esp + 0x3c]
push ecx
mov edx, edi
push str.PRIMARY_LANGID
push edx
call fcn.004011f0
add esp, 0xc
lea eax, [esp + 0x44]
push eax
mov ecx, edi
push str.SUB_LANGID
push ecx
call fcn.004011f0
add esp, 0xc
lea edx, [esp + 0x1be8]
push edx
mov eax, edi
push str.RESIDENCE
push eax
call fcn.00401140
add esp, 0xc
lea ecx, [esp + 0x1de8]
push ecx
mov edx, edi
push str.REGION
push edx
call fcn.00401140
add esp, 0xc
mov edi, 1
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
cmp dword [esp + 0x1c], 0
movzx edx, ax
je 0x40298b
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40298b
mov ecx, dword [esp + 0x44]
shl ecx, 0xa
or ecx, eax
movzx edx, cx
mov eax, dword [str.English]
test eax, eax
mov dword [0x40ed48], eax
mov ecx, 0x40dcd0
je 0x4029d6
mov edi, edi
movzx eax, word [ecx]
test eax, 0xfc00
jne 0x4029be
xor eax, edx
test eax, 0x3ff
jne 0x4029c3
mov edx, dword [ecx + 4]
mov dword [0x40ed48], edx
jmp 0x4029d6
cmp ax, dx
je 0x4029ce
add ecx, 8
cmp dword [ecx + 4], 0
jne 0x4029a0
jmp 0x4029d6
mov eax, dword [ecx + 4]
mov dword [0x40ed48], eax
push 0x105
push 0x40eb38
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, 0x40eb38
call section..text
push str.RESMESSAGE_
push eax
call ebx
mov ecx, dword [0x40ed48]
push ecx
push 0x40eb38
call esi
push str.MESSAGE.INI
push 0x40eb38
call esi
push 0x40eb38
push 0
push str.RTLREADING
push str.STRING
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push str.APPNAME
mov ecx, 0x40e930
mov dword [0x40ed44], eax
call fcn.004012a0
add esp, 4
push str.PSVI03
lea ecx, [esp + 0x3dec]
call fcn.004012a0
add esp, 4
push str.PSVI04
lea ecx, [esp + 0x35ec]
call fcn.004012a0
add esp, 4
push str.PSVI05
lea ecx, [esp + 0x45ec]
call fcn.004012a0
add esp, 4
push str.PSVI08
lea ecx, [esp + 0x2dec]
call fcn.004012a0
add esp, 4
call fcn.00401cf0
test eax, eax
jne 0x402b85
cmp dword [esp + 0xc], eax
jne 0x402adf
cmp dword [esp + 0x10], eax
jne 0x402b16
push str.PSVI06
lea ecx, [esp + 0x7dc]
call fcn.004012a0
add esp, 4
push 0x40e930
lea edx, [esp + 0x7dc]
push edx
lea eax, [esp + 0xfe0]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x402b4d
cmp dword [esp + 0x10], 0
jne 0x402b16
push str.PSVI09
lea ecx, [esp + 0x7dc]
call fcn.004012a0
add esp, 4
push 0x40e930
push 0x40e930
lea ecx, [esp + 0x7e0]
push ecx
lea edx, [esp + 0xfe4]
push edx
jmp 0x402b44
push str.PSVI14
lea ecx, [esp + 0x7dc]
call fcn.004012a0
add esp, 4
push 0x40e930
push 0x40e930
lea eax, [esp + 0x7e0]
push eax
lea ecx, [esp + 0xfe4]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp dword [0x40ed44], 0
mov eax, 0x10
je 0x402b60
mov eax, 0x180010
push eax
push 0x40e930
lea edx, [esp + 0xfe0]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [0x40dda8], 0
jmp 0x40327e
mov eax, dword [esp + 0x24]
push 0
push 0x10
push 0x10
push edi
push 0x6b
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
cmp dword [esp + 0x10], 0
mov dword [0x40ed4c], eax
je 0x402c18
push 0x40e930
lea ecx, [esp + 0x7dc]
push str.Canon__s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push str.PSVI13
lea ecx, [esp + 0xfdc]
call fcn.004012a0
add esp, 4
cmp dword [0x40ed44], 0
mov eax, 0x44
je 0x402be7
mov eax, 0x180044
push eax
lea edx, [esp + 0x7dc]
push edx
lea eax, [esp + 0xfe0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
sub eax, 6
neg eax
sbb eax, eax
add eax, 2
push eax
call fcn.00402510
add esp, 4
jmp 0x40327e
cmp dword [esp + 0xc], 0
jne 0x402e87
cmp dword [esp + 0x14], 0
jne 0x402c57
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x402c4a
push eax
push 0x83
mov edx, 0x4015a0
mov ecx, 0x81
call fcn.00401390
add esp, 8
cmp eax, 2
jne 0x402c57
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edi
cmp dword [0x40dda8], 0
je 0x40327e
lea edx, [esp + 0x74]
push edx
push 2
push 0
lea eax, [esp + 0x17e4]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x40327e
push 0x40e930
lea ecx, [esp + 0x21ec]
push str.Canon__s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
mov edi, dword [esp + 0x1c]
add esp, 0xc
push 0
push 0
push 1
lea edx, [esp + 0x21f4]
push edx
push 0xea60
push edi
call dword [sym.imp.SETUPAPI.dll_SetupSetDirectoryIdExW]
cmp dword [esp + 0xc], 0
mov eax, str.INSTALL
je 0x402cd2
mov eax, str.UNINSTALL
lea ecx, [esp + 0x80]
push ecx
push str.EXEC
push eax
push edi
mov dword [esp + 0x28], eax
mov word [esp + 0x25f8], 0
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x402d74
mov esi, dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
lea edx, [esp + 0x6c]
push edx
push 0x100
lea eax, [esp + 0x23f0]
push eax
push 1
lea ecx, [esp + 0x90]
push ecx
call esi
lea edx, [esp + 0x7c]
push edx
push 0x100
lea eax, [esp + 0x1ff0]
push eax
push 2
lea ecx, [esp + 0x90]
push ecx
call esi
lea edx, [esp + 0x78]
push edx
push 0x400
lea eax, [esp + 0x25f0]
push eax
lea ecx, [esp + 0x23f4]
push ecx
push 0
push edi
call dword [sym.imp.SETUPAPI.dll_SetupGetTargetPathW]
lea edx, [esp + 0x1fe8]
push edx
lea eax, [esp + 0x25ec]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp dword [esp + 0x14], 0
mov dword [0x40ed54], 0
jne 0x402d9e
push 0
push 0
push 0
push 0x401870
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esp + 0x38], eax
push edi
call fcn.00402120
add esp, 4
cmp dword [esp + 0xc], 0
mov dword [esp + 0x24], eax
jne 0x402df4
test eax, eax
jne 0x402f9f
lea esi, [esp + 0x19e8]
call fcn.00401e40
call fcn.00402440
mov dword [esp + 0x34], eax
call fcn.00402360
mov dword [esp + 0x28], eax
or eax, edx
mov dword [esp + 0x2c], edx
jne 0x402deb
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push edi
call fcn.00402260
add esp, 4
push str.IJPLMUI_CLOSE
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov ebx, eax
xor esi, esi
push str.GlobalCANON_IJPLMUI
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, eax
test edi, edi
je 0x402e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
push edi
jne 0x402f32
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
push ebx
push 0xffff
call dword [sym.imp.USER32.dll_PostMessageW]
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
add esi, 1
cmp esi, 2
jl 0x402e03
push str.GlobalCANON_IJPLMUI
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
je 0x402f3a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x402f3a
mov edi, 1
jmp 0x402f3c
cmp dword [esp + 0x14], 0
jne 0x402f27
cmp dword [esp + 0x48], 0
jne 0x402f27
push str.PSVI01
lea ecx, [esp + 0x7dc]
call fcn.004012a0
add esp, 4
push 0x40e930
lea ecx, [esp + 0x7dc]
push ecx
lea edx, [esp + 0xfe0]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push str.PSVI02
lea ecx, [esp + 0x7dc]
call fcn.004012a0
add esp, 4
cmp dword [0x40ed44], 0
mov eax, 0x34
je 0x402ef6
mov eax, 0x180034
push eax
lea eax, [esp + 0x7dc]
push eax
lea ecx, [esp + 0xfe0]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x402c57
mov dword [0x40dda8], 0
jmp 0x40327e
mov dword [0x40dda8], edi
jmp 0x402c64
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x402f4f
xor edi, edi
test esi, esi
je 0x402f47
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x4031cf
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0
push 0
push 0
push 0x401b60
push 0x108
lea edx, [esp + 0x3cc]
push edx
push 0x80000002
push 0x10
push eax
push ecx
call esi
mov edi, dword [sym.imp.SETUPAPI.dll_SetupInstallFromInfSectionW]
push eax
call edi
test eax, eax
je 0x4031cf
xor ebx, ebx
cmp dword [esp + 0xc], ebx
jne 0x402fa9
cmp dword [esp + 0x24], ebx
je 0x402fc5
call fcn.00401d50
jmp 0x403242
cmp word [esp + 0x25e8], bx
je 0x402fc7
lea edx, [esp + 0x25e8]
push edx
call fcn.00401c40
add esp, 4
jmp 0x402fc7
xor ebx, ebx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push ebx
push ebx
push ebx
push 0x401ab0
push 0x108
lea eax, [esp + 0x3cc]
push eax
push 0x80000002
push 0x14
push ecx
push edx
call esi
push eax
call edi
mov esi, eax
cmp esi, ebx
je 0x403047
cmp dword [esp + 0xc], ebx
jne 0x403047
call fcn.00401d50
lea eax, [esp + 0x19e8]
push eax
call fcn.00401f20
mov ecx, dword [esp + 0x38]
add esp, 4
push ecx
call fcn.004024b0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esp, 4
push edx
push eax
call fcn.004023e0
add esp, 8
lea ebx, [esp + 0x1de8]
lea eax, [esp + 0x1be8]
call fcn.00402090
xor ebx, ebx
push 0x20a
lea ecx, [esp + 0x1ac]
push ebx
push ecx
call fcn.00405e80
add esp, 0xc
lea edx, [esp + 0x1a8]
push edx
push ebx
push ebx
push 0x23
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push str.CanonIJPLM
lea eax, [esp + 0x1ac]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp esi, ebx
je 0x4031a5
cmp dword [esp + 0xc], ebx
jne 0x4030a2
lea edi, [esp + 0x1a8]
call fcn.004022e0
jmp 0x4031af
cmp dword [esp + 0x40], ebx
mov esi, dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov edi, 0x414
jne 0x4030e6
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x1a8]
push edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 3
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebx
mov word [esp + 0x60], di
mov dword [esp + 0x62], ebx
mov dword [esp + 0x66], ebx
mov dword [esp + 0x6a], ebx
call esi
push 0x20a
lea eax, [esp + 0x1ac]
push ebx
push eax
call fcn.00405e80
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x70]
push ecx
push 0x105
lea edx, [esp + 0x1b0]
push edx
push 0x40bb30
push ebx
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetTargetPathW]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x1a8]
push edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 3
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebx
mov word [esp + 0x60], di
mov dword [esp + 0x62], ebx
mov dword [esp + 0x66], ebx
mov dword [esp + 0x6a], ebx
call esi
push str.SoftwareCanonIJPLM
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
call fcn.00401040
test eax, eax
je 0x4031a5
push str.ADVAPI32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
cmp esi, ebx
je 0x4031a5
push str.RegDeleteKeyExW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x40319e
push ebx
push 0x100
push str.SoftwareCanonIJPLM
push 0x80000002
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [esp + 0xc], ebx
jne 0x403244
cmp word [esp + 0x25e8], bx
je 0x403244
lea eax, [esp + 0x25e8]
push eax
call fcn.00401c40
add esp, 4
jmp 0x403244
cmp dword [esp + 0x14], 0
jne 0x403238
push 0x400
lea ecx, [esp + 0x2dec]
push ecx
lea edx, [esp + 0x7e0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x40e930
lea eax, [esp + 0x7dc]
push eax
lea ecx, [esp + 0xfe0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp dword [0x40ed44], 0
mov eax, 0x10
je 0x403222
mov eax, 0x180010
push eax
push 0x40e930
lea edx, [esp + 0xfe0]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [0x40dda8], 0
xor ebx, ebx
mov eax, dword [0x40ed54]
cmp eax, ebx
je 0x403258
push ebx
push ebx
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [esp + 0x38]
cmp esi, ebx
je 0x403273
push 0x1388
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
cmp dword [esp + 0xc], 0
je 0x403345
cmp dword [esp + 0x14], 0
jne 0x403345
cmp dword [0x40dda8], 0
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x400
je 0x4032bc
lea ecx, [esp + 0x3dec]
push ecx
lea edx, [esp + 0xfe0]
push edx
call esi
jmp 0x4032ec
lea eax, [esp + 0x35ec]
push eax
lea ecx, [esp + 0x7e0]
push ecx
call esi
push 0x40e930
lea edx, [esp + 0x7dc]
push edx
lea eax, [esp + 0xfe0]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x400
lea ecx, [esp + 0x45ec]
push ecx
lea edx, [esp + 0x7e0]
push edx
call esi
cmp word [esp + 0xfd8], 0
je 0x403345
cmp word [esp + 0x7d8], 0
je 0x403345
cmp dword [0x40ed44], 0
mov eax, 0x40
je 0x40332c
mov eax, 0x180040
push eax
lea eax, [esp + 0x7dc]
push eax
lea ecx, [esp + 0xfe0]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [esp + 0x1c], 0
je 0x40335d
push 1
lea edi, [esp + 0x5cc]
call fcn.00401090
add esp, 4
cmp dword [esp + 0x20], 0
je 0x40336f
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x40ed4c]
test eax, eax
je 0x403389
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov dword [0x40ed4c], 0
mov ecx, dword [esp + 0x4dec]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00403699
mov esp, ebp
pop ebp
ret 0x10