Function at 0x401195
Capabilities:
Check mutex on windows
Get common file path
Set current directory
Write file on windows

Disassembly:
jmp 0x4130b0
mov eax, 0x1258
call fcn.0041be90
mov eax, dword [0x44e1b4]
xor eax, esp
mov dword [esp + 0x1254], eax
push ebp
push esi
mov esi, dword [esp + 0x1264]
xor ebp, ebp
cmp esi, ebp
je 0x41326f
push 0x208
lea eax, [esp + 0x428]
push ebp
push eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
call fcn.0041be10
push 0x410
lea ecx, [esp + 0x24]
push ebp
push ecx
call fcn.0041be10
push 0x410
lea edx, [esp + 0x648]
push ebp
push edx
call fcn.0041be10
push 0x208
lea eax, [esp + 0xa64]
push ebp
push eax
call fcn.0041be10
push 0x208
lea ecx, [esp + 0xc78]
push ebp
push ecx
call fcn.0041be10
push 0x208
lea edx, [esp + 0x1094]
push ebp
push edx
call fcn.0041be10
add esp, 0x48
push 0x208
lea eax, [esp + 0xe50]
push ebp
push eax
call fcn.0041be10
push 0x208
push ebp
push 0x450030
call fcn.0041be10
add esp, 0x18
push 0x104
lea ecx, [esp + 0xa40]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x41326f
push ebp
push ebp
push ebp
push ebp
push 0x104
lea edx, [esp + 0x1068]
push edx
push 0x104
lea eax, [esp + 0xc60]
push eax
lea ecx, [esp + 0xa5c]
push ecx
call fcn.0041c92d
add esp, 0x24
lea edx, [esp + 0xc44]
push edx
push 0x44f818
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [esp + 0x1054]
push eax
push 0x44f818
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x44f818
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp word [esi], bp
je 0x413212
push esi
mov dword [0x450c54], 1
call fcn.004010d2
add esp, 4
lea ecx, [esp + 8]
push ecx
push str.setup.ini
call fcn.004010e1
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x413288
mov eax, dword [0x486304]
push 0x100
lea edx, [esp + 0x18]
push edx
push 0x452
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push str.setup.ini
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x634]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
push ebp
lea eax, [esp + 0x63c]
push eax
push ebp
call fcn.004010be
add esp, 0x18
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x1254]
xor ecx, esp
call fcn.0041bdf4
add esp, 0x1258
ret
mov ecx, dword [esp + 8]
push str.AppName
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4132dd
push 0x200
push 0x44f200
push eax
call fcn.004011fe
mov ecx, dword [esp + 0x14]
push str.MutexName
push ecx
push esi
call fcn.0040120d
add esp, 0x18
cmp eax, ebp
je 0x413341
push 0x200
push 0x450238
push eax
call fcn.004011fe
add esp, 0xc
test eax, eax
jne 0x413358
mov eax, dword [0x486304]
push 0x100
lea edx, [esp + 0x18]
push edx
push 0x452
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push str.setup.ini
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x634]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
push ebp
lea eax, [esp + 0x63c]
push eax
push ebp
call fcn.004010be
push esi
call fcn.004012bc
add esp, 0x1c
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x1254]
xor ecx, esp
call fcn.0041bdf4
add esp, 0x1258
ret
push str.setup.exe
push 0x100
push 0x450238
call fcn.0041c22f
add esp, 0xc
push 0x450238
push 1
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
je 0x413377
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4133a5
push 0x460
push ebp
push ebp
call fcn.004010be
push esi
call fcn.004012bc
add esp, 0x10
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x1254]
xor ecx, esp
call fcn.0041bdf4
add esp, 0x1258
ret
mov ecx, dword [esp + 8]
push str.CHECKVERSION
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4133ca
cmp word [eax], 0x30
jne 0x4133ca
mov dword [0x44fe20], ebp
jmp 0x41343e
cmp dword [0x44fe20], ebp
je 0x41343e
mov edx, dword [esp + 8]
push str.Version
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
jne 0x41342b
mov ecx, dword [0x486304]
push 0x100
lea eax, [esp + 0x18]
push eax
push 0x452
push ecx
call dword [sym.imp.USER32.dll_LoadStringW]
push str.setup.ini
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x634]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push ebp
lea ecx, [esp + 0x63c]
push ecx
jmp 0x413319
push 0x200
push 0x451680
push eax
call fcn.004011fe
add esp, 0xc
mov edx, dword [esp + 8]
push str.InstallPathInfo
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413467
push 0x44fa20
push eax
call fcn.00401023
add esp, 8
test eax, eax
je 0x4133e9
mov edx, dword [esp + 8]
push str.FolderName
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413499
push 0x208
push 0x44f608
push eax
call fcn.004011fe
add esp, 0xc
test eax, eax
je 0x4133e9
mov edx, dword [esp + 8]
push 0x434b8c
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4133e9
push 0x200
push 0x479048
push eax
call fcn.004011fe
mov edx, dword [esp + 0x14]
push 0x434b08
push edx
push esi
call fcn.0040120d
add esp, 0x18
cmp eax, ebp
je 0x4134e9
push eax
call fcn.0041bee1
add esp, 4
mov dword [0x46b140], eax
cmp dword [0x46b140], ebp
jne 0x41352e
mov eax, dword [esp + 8]
push str.RegionName
push eax
push esi
call fcn.0040120d
push 0x28
push 0x46b154
push eax
call fcn.004011fe
mov ecx, dword [esp + 0x20]
push str.AreaName
push ecx
push esi
call fcn.0040120d
push 0x14
push 0x46b17c
push eax
call fcn.004011fe
add esp, 0x30
mov edx, dword [esp + 8]
push str.MinimumSize
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4133e9
xor edx, edx
mov dword [0x477ba4], edx
movzx ecx, word [eax]
cmp cx, 0xd
push edi
lea edi, [edx + 2]
je 0x413588
mov edi, edi
cmp cx, 0x30
jb 0x41357c
cmp cx, 0x39
ja 0x41357c
movzx ecx, cx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2 - 0x30]
mov dword [0x477ba4], edx
movzx ecx, word [eax + edi]
add eax, edi
cmp cx, 0xd
jne 0x413560
mov edx, dword [esp + 0xc]
push str.MaxPathLen
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
jne 0x4135ab
mov dword [0x478bf4], 0xf7
jmp 0x4135e8
xor edx, edx
mov dword [0x478bf4], edx
movzx ecx, word [eax]
cmp cx, 0xd
je 0x4135e8
lea esp, [esp]
cmp cx, 0x30
jb 0x4135dc
cmp cx, 0x39
ja 0x4135dc
movzx ecx, cx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2 - 0x30]
mov dword [0x478bf4], edx
movzx ecx, word [eax + edi]
add eax, edi
cmp cx, 0xd
jne 0x4135c0
mov edx, dword [esp + 0xc]
push ebx
push str.Update1
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
mov ebx, 3
je 0x41361c
push eax
call fcn.0041bee1
add esp, 4
cmp eax, ebp
mov dword [0x451670], eax
jl 0x41361c
cmp eax, 4
jle 0x413622
mov dword [0x451670], ebx
mov eax, dword [esp + 0x10]
push str.Update2
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x41364f
push eax
call fcn.0041bee1
add esp, 4
cmp eax, ebp
mov dword [0x44f810], eax
jl 0x41364f
cmp eax, ebx
jle 0x413655
mov dword [0x44f810], edi
mov ecx, dword [esp + 0x10]
push 0x434abc
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x41367f
push 0x200
push 0x451880
push eax
call fcn.004011fe
add esp, 0xc
mov edx, dword [esp + 0x10]
push str.UninstallName
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
jne 0x4136bc
mov ecx, dword [0x486304]
push 0x100
lea eax, [esp + 0x20]
push eax
push 0x452
push ecx
call dword [sym.imp.USER32.dll_LoadStringW]
push str.setup.ini
jmp 0x413e05
push 0x200
push 0x451470
push eax
call fcn.004011fe
mov edx, dword [esp + 0x1c]
push 0x434ba8
push edx
push esi
call fcn.0040120d
add esp, 0x18
cmp eax, ebp
je 0x4136f6
push 0x200
push 0x451070
push eax
call fcn.004011fe
add esp, 0xc
mov eax, dword [esp + 0x10]
push str.TargetFile
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413720
push 0x200
push 0x44fe30
push eax
call fcn.004011fe
add esp, 0xc
mov ecx, dword [esp + 0x10]
push str.CtrlStartup
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413745
push eax
call fcn.0041bee1
add esp, 4
mov dword [0x478e18], eax
mov edx, dword [esp + 0x10]
push str.Language
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x41376f
push 0x200
push 0x451270
push eax
call fcn.004011fe
add esp, 0xc
mov eax, dword [esp + 0x10]
push str.CtrlLang
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413794
push eax
call fcn.0041d18b
add esp, 4
mov dword [0x4787ec], eax
mov ecx, dword [esp + 0x10]
push str.UninfoName
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4137bd
push 0x200
push 0x44fc20
push eax
call fcn.004011fe
jmp 0x4137d1
push str.uninst.ini
push 0x100
push 0x44fc20
call fcn.0041c22f
mov edx, dword [esp + 0x1c]
add esp, 0xc
push str.UninstExeName
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4137fd
push 0x200
push 0x450440
push eax
call fcn.004011fe
jmp 0x413811
push str.uninst.exe
push 0x100
push 0x450440
call fcn.0041c22f
mov eax, dword [esp + 0x1c]
add esp, 0xc
push str.UninstDllName
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x41383d
push 0x200
push 0x479448
push eax
call fcn.004011fe
jmp 0x413851
push str.uinstrsc.dll
push 0x100
push 0x479448
call fcn.0041c22f
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push str.LangInfo
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413879
push 0x478e30
push eax
call fcn.00401023
add esp, 8
mov edx, dword [esp + 0x10]
push str.TgtAppName
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4138a3
push 0x200
push 0x4785e8
push eax
call fcn.004011fe
add esp, 0xc
mov eax, dword [esp + 0x10]
push str.NoLang
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4138c8
push eax
call fcn.0041bee1
add esp, 4
mov dword [0x477ba0], eax
mov ecx, dword [esp + 0x10]
push str.TargetFileName
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4138f2
push 0x200
push 0x4789f0
push eax
call fcn.004011fe
add esp, 0xc
mov edx, dword [esp + 0x10]
push str.TargetFileVersion
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x41391c
push 0x200
push 0x450a50
push eax
call fcn.004011fe
add esp, 0xc
mov eax, dword [esp + 0x10]
push str.WIN95
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413946
cmp word [eax], 0x31
jne 0x413946
mov edi, 1
mov dword [0x46b13c], edi
jmp 0x41394b
mov edi, 1
mov ecx, dword [esp + 0x10]
push str.WIN98
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x41396e
cmp word [eax], 0x31
jne 0x41396e
mov dword [0x45043c], edi
mov edx, dword [esp + 0x10]
push str.WINME
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413991
cmp word [eax], 0x31
jne 0x413991
mov dword [0x479044], edi
mov eax, dword [esp + 0x10]
push str.WINNT
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4139b4
cmp word [eax], 0x31
jne 0x4139b4
mov dword [0x478e14], edi
mov ecx, dword [esp + 0x10]
push str.WIN2K
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4139d7
cmp word [eax], 0x31
jne 0x4139d7
mov dword [0x450c50], edi
mov edx, dword [esp + 0x10]
push str.WINXP
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x4139fa
cmp word [eax], 0x31
jne 0x4139fa
mov dword [0x451058], edi
mov eax, dword [esp + 0x10]
push str.WINVT
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
jne 0x413a28
mov ecx, dword [esp + 0x10]
push str.WINNW
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413a34
cmp word [eax], 0x31
jne 0x413a34
mov dword [0x478e24], edi
mov edx, dword [esp + 0x10]
push str.WINNW
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413a57
cmp word [eax], 0x31
jne 0x413a57
mov dword [0x478e1c], edi
call fcn.004011f4
test eax, eax
jne 0x413a91
cmp dword [0x450c54], ebp
jne 0x413a77
push 0x456
push ebp
push ebp
call fcn.004010be
add esp, 0xc
push esi
mov dword [0x478e10], 0x96
call fcn.004012bc
add esp, 4
xor eax, eax
jmp 0x41425a
lea eax, [esp + 0x18]
push eax
push esi
call fcn.00401258
add esp, 8
test eax, eax
je 0x413f3f
cmp dword [0x44fe24], ebx
jl 0x413abc
call fcn.004011bd
test eax, eax
je 0x413f3f
mov ecx, dword [esp + 0x10]
push str.MakeISU
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413ad9
cmp word [eax], 0x31
jne 0x413adf
mov dword [0x450644], edi
mov edx, dword [esp + 0x10]
push str.CtrlExApp
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413b02
cmp word [eax], 0x31
jne 0x413b02
mov dword [0x479648], edi
mov eax, dword [esp + 0x10]
push str.UpdateUninst
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413b25
cmp word [eax], 0x31
jne 0x413b25
mov dword [0x47964c], edi
mov ecx, dword [esp + 0x10]
push str.UninstVersion
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413b4e
push 0x200
push 0x477fb0
push eax
call fcn.004011fe
jmp 0x413b62
push str.2.0.0.0
push 0x100
push 0x477fb0
call fcn.0041c22f
add esp, 0xc
cmp dword [0x450c54], ebp
jne 0x413b93
mov edx, dword [esp + 0x10]
push str.EULA
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413b93
xor ecx, ecx
cmp word [eax], 0x31
sete cl
mov dword [0x44f814], ecx
mov edx, dword [esp + 0x10]
push str.SELECT
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413bc4
cmp word [eax], 0x31
je 0x413bc4
cmp dword [0x450c54], ebp
mov dword [0x4787e8], edi
je 0x413bc4
mov dword [0x450c54], edi
mov eax, dword [esp + 0x10]
push str.GroupShortcut
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413be7
cmp word [eax], 0x31
jne 0x413be7
mov dword [0x45167c], edi
mov ecx, dword [esp + 0x10]
push str.Shortcut
push ecx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413c1a
push eax
call fcn.0041bee1
add esp, 4
cmp eax, ebp
mov dword [0x478e2c], eax
jle 0x413c14
cmp eax, ebx
jle 0x413c1a
mov dword [0x478e2c], ebp
mov edx, dword [esp + 0x10]
push str.StartProcess
push edx
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413c49
push eax
call fcn.0041bee1
add esp, 4
cmp eax, edi
mov dword [0x478e20], eax
je 0x413c49
mov dword [0x478e20], ebp
mov eax, dword [esp + 0x10]
push str.ProcName
push eax
push esi
call fcn.0040120d
add esp, 0xc
cmp eax, ebp
je 0x413c73
push 0x200
push 0x450c58
push eax
call fcn.004011fe
add esp, 0xc
push 0x45e730
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x4140b1
push 0x104
push 0x478c00
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x4140b1
push 2
push 0x478c00
push 0xa
push 0x479030
call fcn.0041c29b
mov edi, dword [esp + 0x28]
add esp, 0x10
cmp dword [0x450c54], 2
jne 0x413d05
mov eax, 0x44f400
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x413cd0
sub eax, edx
sar eax, 1
cmp eax, ebx
je 0x413cf3
push 0x435bfc
push 0x44f400
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x44f608
push 0x44f400
call dword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x413d67
lea ecx, [esp + 0xe54]
push edi
push ecx
call fcn.00401302
add esp, 8
cmp eax, 1
jne 0x413d30
lea edx, [esp + 0xe54]
push edx
push 0x44f400
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x413d49
push 2
push 0x478c00
push 0x104
push 0x44f400
call fcn.0041c29b
add esp, 0x10
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.Canon_
push 0x44f400
call ebx
push 0x44f608
push 0x44f400
call ebx
cmp dword [0x44fe28], ebp
je 0x413db9
cmp edi, ebp
je 0x413db9
push 0x478c00
push 0x104
push 0x450030
call fcn.0041c22f
push 0x5c
push 0x478c00
call fcn.004010eb
add esp, 0x14
push 0x435c58
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.SysWow64_
push 0x104
push 0x450030
call fcn.0041c1b5
add esp, 0xc
cmp word [0x44fa20], bp
je 0x413e7a
cmp dword [0x4787e8], 1
jne 0x413e7a
push 0x44f400
call fcn.0040124e
add esp, 4
test eax, eax
jne 0x413e26
mov ecx, dword [0x486304]
push 0x100
lea eax, [esp + 0x20]
push eax
push 0x464
push ecx
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x4785e8
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x63c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push ebp
lea ecx, [esp + 0x644]
push ecx
jmp 0x4140a2
push 0x450a50
push 0x4789f0
push 0x44f400
call fcn.0040109b
add esp, 0xc
cmp eax, 2
jne 0x413e7a
mov eax, dword [0x486304]
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x464
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x4785e8
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x63c]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x414099
mov ecx, dword [esp + 0x10]
push ecx
push esi
call fcn.00401041
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
add esp, 8
test eax, eax
jne 0x413edb
mov eax, dword [0x486304]
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x452
push eax
call ebx
push str.setup.ini
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x63c]
push edx
call edi
push ebp
lea eax, [esp + 0x644]
push eax
push ebp
call fcn.004010be
push esi
call fcn.004012bc
add esp, 0x1c
cmp dword [0x4787ec], 0xffffffff
je 0x413fc5
push 0x478e30
call fcn.0040110e
add esp, 4
sub eax, ebp
je 0x413f83
sub eax, 2
je 0x413f4f
sub eax, 1
jne 0x413fc5
mov edx, dword [0x486304]
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x466
push edx
call ebx
push 0x24
push 0x44f200
lea eax, [esp + 0x24]
push eax
push ebp
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x413fc5
push esi
call fcn.004012bc
add esp, 4
xor eax, eax
jmp 0x41425a
mov edx, dword [0x486304]
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x465
push edx
call ebx
push ebp
lea eax, [esp + 0x20]
push eax
push ebp
call fcn.004010be
push esi
call fcn.004012bc
add esp, 0x10
xor eax, eax
jmp 0x41425a
cmp dword [0x477ba0], ebp
je 0x413fc5
mov edx, dword [0x486304]
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x464
push edx
call ebx
push 0x4785e8
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x63c]
push ecx
call edi
push ebp
lea edx, [esp + 0x644]
push edx
jmp 0x4140a2
push 0x45e730
push 0x4781d8
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x435bfc
push 0x4781d8
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x4781b0
call fcn.004010d7
add esp, 4
test eax, eax
jne 0x41403a
mov ecx, dword [0x486304]
push 0x100
lea eax, [esp + 0x20]
push eax
push 0x452
push ecx
call ebx
push 0x44fc20
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x63c]
push eax
call edi
push ebp
lea ecx, [esp + 0x644]
push ecx
push ebp
call fcn.004010be
push esi
call fcn.004012bc
add esp, 0x1c
push 0x4781b0
push 0x4781d8
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebp
push 0x80
push 2
push ebp
push ebp
push 0x40000000
push 0x4781d8
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [0x486308], eax
jne 0x4140b8
mov eax, dword [0x486304]
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x452
push eax
call ebx
push 0x44fc20
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x63c]
push edx
call edi
push ebp
lea eax, [esp + 0x644]
push eax
push ebp
call fcn.004010be
push esi
call fcn.004012bc
add esp, 0x1c
xor eax, eax
jmp 0x41425a
push eax
call fcn.00401181
add esp, 4
test eax, eax
je 0x4140b1
mov ecx, dword [0x486308]
mov edx, dword [esp + 0x10]
push ecx
push edx
push esi
call fcn.004011cc
add esp, 0xc
test eax, eax
je 0x413f3f
push 0xa
push 0xd
push 0x44f200
lea eax, [esp + 0x438]
push str.AppName_s_1c_1c
push eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 0x14
push 0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x434]
push edx
call ebx
mov ecx, dword [0x486308]
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
add eax, eax
push eax
lea eax, [esp + 0x438]
push eax
push ecx
call ebp
push 0xa
push 0xd
push 0x44f608
lea edx, [esp + 0x438]
push str.FolderName_s_1c_1c
push edx
call edi
add esp, 0x14
push 0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x434]
push ecx
call ebx
add eax, eax
push eax
mov eax, dword [0x486308]
lea edx, [esp + 0x438]
push edx
push eax
call ebp
push 0xa
push 0xd
push 0x451880
lea ecx, [esp + 0x438]
push str.ProductName_s_1c_1c
push ecx
call edi
add esp, 0x14
push 0
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x434]
push eax
call ebx
mov edx, dword [0x486308]
add eax, eax
push eax
lea ecx, [esp + 0x438]
push ecx
push edx
call ebp
push 0xa
push 0xd
push 0x451470
lea eax, [esp + 0x438]
push str.UninstallName_s_1c_1c
push eax
call edi
add esp, 0x14
push 0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x434]
push edx
call ebx
add eax, eax
push eax
mov ecx, dword [0x486308]
lea eax, [esp + 0x438]
push eax
push ecx
call ebp
mov edx, dword [0x479648]
push 0xa
push 0xd
push edx
lea eax, [esp + 0x438]
push str.CtrlExApp_1d_1c_1c
push eax
call edi
add esp, 0x14
push 0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x434]
push edx
call ebx
mov ecx, dword [0x486308]
add eax, eax
push eax
lea eax, [esp + 0x438]
push eax
push ecx
call ebp
mov edx, dword [0x486308]
mov eax, dword [esp + 0x10]
push edx
push eax
push esi
call fcn.00401118
add esp, 0xc
test eax, eax
push esi
je 0x413f40
call fcn.004012bc
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x1264]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.0041bdf4
add esp, 0x1258
ret