Function at 0x402de0
Capabilities:
Create process on windows
Delete directory
Delete file
Delete registry key
Delete registry value
Enumerate files on windows
Get common file path
Get file attributes
Self delete
Set file attributes
Set registry value
Shutdown system

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5cc
cmp dword [0x411ab4], 0
mov ecx, dword [ebp + 0x10]
push ebx
push esi
push edi
je 0x402e01
cmp dword [ecx], 0xf
jne 0x404809
mov eax, dword [ecx]
mov ebx, 0x104
cmp eax, 0xa
jg 0x404127
je 0x404082
cmp eax, 9
ja case.default.0x404142
jmp dword [eax*4 + 0x40486d]
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x402ee6
cmp byte [0x4118ac], al
push 0x412ae0
jne 0x402e5f
mov edi, 0x412d20
jmp 0x402e77
mov edi, 0x412d20
push esi
push edi
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x402e7f
push 0x412ae0
push edi
call fcn.004080d0
pop ecx
pop ecx
push edi
push esi
push str.SetOutPath:___s_____s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
xor esi, esi
push esi
call fcn.00407fad
add esp, 0x14
lea eax, [ebp - 0x248]
mov dword [ebp + 0x10], edi
push ebx
push eax
push 0xc
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x402ec1
push 0xc
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
push eax
push ebx
mov ebx, 0x4119b0
lea eax, [ebp - 0x248]
push ebx
push esi
push esi
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push ebx
jmp 0x4047e0
push str.SetOutPath:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push 0x412d20
push esi
mov eax, dword [eax + 4]
mov dword [ebp - 8], eax
call fcn.004080d0
cmp byte [0x4118ac], 0
pop ecx
pop ecx
mov eax, esi
je 0x402f33
push eax
call dword [sym.imp.USER32.dll_CharNextA]
cmp byte [eax], 0
jne 0x402f16
cmp eax, esi
je 0x402f33
push eax
push esi
call dword [sym.imp.USER32.dll_CharPrevA]
cmp byte [eax], 0x5c
je 0x402f40
push 0x410b34
push esi
call fcn.004080e0
pop ecx
pop ecx
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403265
push edi
push dword [ebp - 8]
push str.File:_overwriteflag_d__name__s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push edi
push esi
call fcn.004080e0
mov eax, dword [ebp - 8]
add esp, 0x1c
and eax, 3
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
and al, 1
neg al
sbb eax, eax
inc eax
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 4], 0
jne 0x402fbc
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 1
je 0x402fbc
xor eax, 1
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
xor eax, eax
push eax
push eax
push dword [ebp - 0x10]
push eax
push eax
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0xc], eax
jne 0x403180
cmp dword [ebp - 4], 0
jne 0x4030b0
push esi
push str.File:_error_creating___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x10
lea eax, [ebp - 0x248]
mov dword [ebp - 0xc], esi
push ebx
push eax
push 0xe
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403027
push 0xe
call fcn.0040755d
pop ecx
lea eax, [ebp - 0xc]
push eax
push ebx
push 0x4119b0
push 0
lea eax, [ebp - 0x248]
push 0
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0x4119b0
push 0x410af0
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [0x410ba4], 0
je 0x40307a
push 0x12
push 0x412a40
push edi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40307d
push 5
pop eax
sub eax, 3
je 0x403128
dec eax
jne 0x4030a8
push str.File:_on_error__user_selected_retry._n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0xc
jmp 0x402fa0
dec eax
je 0x40311e
jmp 0x403f8f
lea eax, [ebp - 0x248]
push ebx
push eax
push 0xd
push dword [0x4120b4]
mov dword [ebp + 0x10], esi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4030d5
push 0xd
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov edi, 0x4119b0
push eax
push ebx
xor ebx, ebx
push edi
push ebx
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push edi
call fcn.00406e71
push dword [ebp - 8]
push esi
push str.File:_skipping:___s___overwriteflag_d__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push ebx
call fcn.00407fad
add esp, 0x18
jmp 0x404809
push str.File:_on_error__user_selected_cancel._n
jmp 0x4047f4
push str.File:_on_error__user_selected_abort._n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
xor edi, edi
push edi
call fcn.00407fad
add esp, 0xc
lea eax, [ebp - 0x248]
mov dword [ebp + 0x10], esi
push ebx
push eax
push 0xf
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403168
push 0xf
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
push esi
push edi
push edi
lea eax, [ebp - 0x248]
jmp 0x403f7c
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x10
push dword [0x4120b4]
mov dword [ebp - 0x10], esi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4031a5
push 0x10
call fcn.0040755d
pop ecx
lea eax, [ebp - 0x10]
mov edi, 0x4119b0
push eax
push ebx
push edi
push 0
lea eax, [ebp - 0x248]
push 0
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push edi
call fcn.00406e71
mov eax, dword [ebp + 0x10]
push dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.00404a8b
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push esi
push eax
push str.File:_wrote__d_to___s__n
push 0x4121e0
mov dword [ebp + 0x10], eax
call edi
push 0
call fcn.00407fad
add esp, 0x24
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x10], 0
jl 0x403219
mov eax, dword [ebp + 0x10]
jmp 0x404868
cmp dword [ebp + 0x10], 0xfffffffd
je 0x403247
cmp dword [ebp + 0x10], 0xfffffffa
je 0x403247
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push str.File:_error_writing._deleted._n
push 0x4121e0
call edi
push 0
call fcn.00407fad
add esp, 0xc
jmp 0x403f8f
push dword [ebp + 0x10]
push str.File:_INSTALLER_CORRUPTED__gcdfdb:_d__n
push 0x4121e0
call edi
push 0
call fcn.00407fad
add esp, 0x10
jmp case.default.0x404142
push str.File:_INSTALLER_CORRUPTED_n
jmp 0x404812
and dword [ebp - 0x20], 0
xor eax, eax
lea edi, [ebp - 0x1c]
push 0x10
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x488]
mov dword [ebp - 0x48c], 0x44
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403493
push edi
push str.Exec:_command__s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push 0x412ae0
mov esi, 0x4118ac
push edi
push esi
call fcn.004077ae
add esp, 0x1c
test eax, eax
je 0x4032ef
push edi
push esi
call fcn.004080d0
pop ecx
pop ecx
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x11
push dword [0x4120b4]
mov dword [ebp + 0xc], esi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403314
push 0x11
call fcn.0040755d
pop ecx
lea eax, [ebp + 0xc]
xor edi, edi
push eax
push ebx
mov ebx, 0x4119b0
lea eax, [ebp - 0x248]
push ebx
push edi
push edi
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push ebx
call fcn.00406e71
pop ecx
push edi
push 1
push dword [0x412e24]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x48c]
push eax
push 0x412d20
push edi
push 8
push edi
push edi
push edi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
push esi
je 0x40345e
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push str.Exec:_success____s___n
push 0x4121e0
call ebx
push edi
call fcn.00407fad
add esp, 0x10
cmp dword [ebp - 0x1c], edi
je 0x4033a2
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x20], edi
je 0x403477
mov eax, dword [ebp + 0x10]
cmp dword [eax + 8], 1
jne 0x403419
push 0xffffffffffffffff
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push edi
push dword [0x412e24]
call esi
push 5
push dword [0x412e24]
call esi
push 1
push edi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x412e24]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 1
push 0xf
push 0xf
lea eax, [ebp - 0x40]
push dword [0x412e24]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x403419
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x4033f3
lea eax, [ebp + 0x10]
push eax
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x40344b
push str.Exec:_failed_getting_exit_code_n
push 0x4121e0
call ebx
push edi
call fcn.00407fad
add esp, 0xc
mov dword [0x410ba0], 0xff
jmp 0x403453
mov eax, dword [ebp + 0x10]
mov dword [0x410ba0], eax
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403477
push str.Exec:_failed_createprocess____s___n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push edi
call fcn.00407fad
add esp, 0x10
push 1
push 1
push dword [0x412e24]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x404809
push str.Exec:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
xor esi, esi
push esi
call dword [sym.imp.ole32.dll_OleInitialize]
cmp eax, esi
mov dword [ebp - 4], eax
je 0x403531
cmp eax, 1
je 0x403531
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x31
push dword [0x4120b4]
mov dword [ebp + 0x10], 0x4118ac
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4034ff
push 0x31
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
push eax
push ebx
push edi
push esi
lea eax, [ebp - 0x248]
push esi
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
cmp dword [0x410ba4], esi
je 0x404809
push esi
push 0x412a40
push edi
jmp 0x404546
push 0x412ae0
mov esi, 0x4118ac
push edi
push esi
call fcn.004077ae
add esp, 0xc
test eax, eax
jne 0x40370f
and dword [ebp + 0x10], eax
cmp byte [0x4118ac], 0x2d
jne 0x403569
cmp byte [0x4118ad], 0x20
jne 0x403569
mov dword [ebp + 0x10], 2
mov eax, dword [ebp + 0x10]
lea eax, [eax + 0x4118ac]
push eax
mov dword [ebp + 8], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [ebp + 0xc], eax
je 0x4036ad
cmp dword [ebp + 0x10], 0
mov eax, str.DllUnregisterServer
jne 0x403597
mov eax, 0x41091c
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [ebp - 0x10], eax
je 0x403640
xor edi, edi
cmp dword [ebp + 0x10], edi
jne 0x4035ed
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x2d
push dword [0x4120b4]
mov dword [ebp + 0x10], esi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4035d8
push 0x2d
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
push esi
push edi
push edi
lea eax, [ebp - 0x248]
jmp 0x403628
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x248]
push eax
push 0x2e
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403615
push 0x2e
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
push esi
push edi
push edi
lea eax, [ebp - 0x248]
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push esi
call fcn.00406e71
pop ecx
call dword [ebp - 0x10]
jmp 0x4036a2
cmp dword [ebp + 0x10], 0
jne 0x4036a2
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x2f
push dword [0x4120b4]
mov dword [ebp + 0x10], esi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x40366b
push 0x2f
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
xor esi, esi
push eax
push ebx
push edi
push esi
lea eax, [ebp - 0x248]
push esi
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
cmp dword [0x410ba4], esi
je 0x4036a2
push esi
push 0x412a40
push edi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40370f
cmp dword [ebp + 0x10], 0
jne 0x40370f
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x30
push dword [0x4120b4]
mov dword [ebp + 0x10], esi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4036d8
push 0x30
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
xor esi, esi
push eax
push ebx
push edi
push esi
lea eax, [ebp - 0x248]
push esi
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
cmp dword [0x410ba4], esi
je 0x40370f
push esi
push 0x412a40
push edi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp - 4], 0
jne 0x404809
call dword [sym.imp.ole32.dll_OleUninitialize]
jmp 0x404809
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x4039b0
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 0xc]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x4039b0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x14]
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push eax
push esi
push ecx
mov dword [ebp - 4], ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x403982
cmp dword [ebp - 8], 1
jne 0x403874
lea eax, [ebp - 0x144]
push ebx
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x10]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403977
lea eax, [ebp - 0x144]
push 0x412ae0
push eax
lea eax, [ebp - 0x448]
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x4037f2
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x448]
push eax
call fcn.004080d0
pop ecx
pop ecx
push 0x412ae0
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x40381a
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004080d0
pop ecx
pop ecx
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x144]
push eax
push esi
push dword [ebp - 4]
push str.WriteRegStr:_set__d_s_s_to__s_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
lea eax, [ebp - 0x448]
push eax
call fcn.00408050
add esp, 0x20
inc eax
push eax
lea eax, [ebp - 0x448]
push eax
push 1
lea eax, [ebp - 0x144]
push 0
push eax
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x403977
cmp dword [ebp - 8], 2
jne 0x4038d7
push 0x412ae0
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x4038a2
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004080d0
pop ecx
pop ecx
mov eax, dword [ebp + 0x10]
push dword [eax + 0x10]
lea edi, [eax + 0x10]
lea eax, [ebp - 0x144]
push eax
push esi
push dword [ebp - 4]
push str.WriteRegDword:_set__d_s_s_to__d_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x1c
push 4
push edi
push 4
jmp 0x40385d
cmp dword [ebp - 8], 3
jne 0x403977
lea eax, [ebp - 0x344]
push 0x200
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x10]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.00404c86
add esp, 0x10
mov dword [ebp + 0x10], eax
test eax, eax
jl 0x40394f
push 0x412ae0
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x403931
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004080d0
pop ecx
pop ecx
push dword [ebp + 0x10]
lea eax, [ebp - 0x344]
push eax
push 3
lea eax, [ebp - 0x144]
push 0
push eax
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp + 0x10]
lea eax, [ebp - 0x144]
push eax
push esi
push dword [ebp - 4]
push str.WriteRegBin:_set__d_s_s_with__d_bytes_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x1c
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4039a0
push esi
push dword [ebp - 4]
push str.WriteReg:_error_creating_key__d_s_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x14
cmp dword [ebp - 8], 0
jle 0x4039b0
cmp dword [ebp - 8], 4
jl 0x404809
push str.WriteReg:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x248]
push ebx
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403b20
lea eax, [ebp - 0x590]
push ebx
push eax
mov eax, dword [edi + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403b20
mov eax, dword [edi + 0xc]
mov esi, 0x4118ac
add eax, dword [ebp + 0xc]
push ebx
push esi
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403b20
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 0x10]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403b20
mov ebx, 0x412ae0
lea eax, [ebp - 0x448]
push ebx
push edi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x403a6f
lea eax, [ebp - 0x448]
push edi
push eax
call fcn.004080d0
pop ecx
pop ecx
push ebx
push esi
push edi
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x403a87
push esi
push edi
call fcn.004080d0
pop ecx
pop ecx
lea eax, [ebp - 0x590]
push ebx
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x403ab7
lea eax, [ebp - 0x590]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.004080d0
pop ecx
pop ecx
lea eax, [ebp - 0x248]
push ebx
push eax
push esi
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x403adb
lea eax, [ebp - 0x248]
push eax
push esi
call fcn.004080d0
pop ecx
pop ecx
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x144]
push edi
push eax
push esi
push str.WriteINIStr:_wrote___s___s_s_in__s_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x1c
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x144]
push edi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x404809
push str.WriteINIStr:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
add eax, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
push 0x412ae0
lea eax, [ebp - 0x144]
push esi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
jne case.default.0x404142
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov eax, dword [eax + 0xc]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
push 0x412ae0
lea eax, [ebp - 0x448]
push esi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
jne case.default.0x404142
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov eax, dword [eax + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0xc
test eax, eax
jne case.default.0x404142
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
push 0x412ae0
lea eax, [ebp - 0x590]
push esi
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
jne case.default.0x404142
push dword [ebp - 4]
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x590]
push edi
push eax
push str.CreateShortCut:_out:___s___in:___s__s___icon:__s__d_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
xor esi, esi
push esi
call fcn.00407fad
mov al, byte [ebp - 0x448]
lea ecx, [ebp - 0x448]
neg al
sbb eax, eax
push 0x412d20
and eax, ecx
lea ecx, [ebp - 0x144]
push eax
mov al, byte [ebp - 0x144]
neg al
push edi
push dword [ebp - 4]
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0x590]
push eax
push dword [0x412e24]
call fcn.00405800
lea eax, [ebp - 0x590]
add esp, 0x3c
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x12
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403cc4
push 0x12
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov edi, 0x4119b0
push eax
push ebx
push edi
push esi
lea eax, [ebp - 0x248]
push esi
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push edi
call fcn.00406e71
jmp 0x4047ec
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x403e6a
push esi
push str.Delete:___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0x1c
test eax, eax
jne 0x403e60
push edi
push esi
mov dword [ebp + 0x10], esi
call fcn.004080d0
cmp byte [0x4118ac], 0
pop ecx
pop ecx
je 0x403d87
push dword [ebp + 0x10]
call dword [sym.imp.USER32.dll_CharNextA]
cmp byte [eax], 0
mov dword [ebp + 0x10], eax
jne 0x403d5b
cmp eax, esi
jbe 0x403d87
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0x5c
je 0x403d87
push eax
push esi
call dword [sym.imp.USER32.dll_CharPrevA]
cmp eax, esi
mov dword [ebp + 0x10], eax
ja 0x403d70
mov eax, dword [ebp + 0x10]
and byte [eax], 0
lea eax, [ebp - 0x5cc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [ebp + 0x10], eax
je 0x404809
test byte [ebp - 0x5cc], 0x10
jne 0x403e3a
lea eax, [ebp - 0x5a0]
push eax
push esi
push str._s_s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
push edi
push str.Delete:_DeleteFile___s___n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x20
lea eax, [ebp - 0x248]
mov dword [ebp + 0xc], edi
push ebx
push eax
push 0x13
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403e08
push 0x13
call fcn.0040755d
pop ecx
lea eax, [ebp + 0xc]
push eax
push ebx
push 0x4119b0
push 0
lea eax, [ebp - 0x248]
push 0
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0x4119b0
call fcn.00406e71
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x5cc]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x403da7
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x404809
push str.Delete:_error_parsing_parameter_n
jmp 0x4047f4
push str.Delete:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov edi, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [edi + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x404078
mov edi, dword [edi + 4]
push edi
push esi
mov dword [ebp - 4], edi
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push str.FindWindow:_checking_for_window_class:__s_._whattodo_d_n
push 0x4121e0
call edi
push 0
call fcn.00407fad
add esp, 0x14
cmp dword [ebp - 4], 2
jne 0x403fa1
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 0xc]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x404078
push 0
push esi
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x404809
cmp dword [0x410ba4], 0
je 0x403f1a
push 2
push 0x412a40
push edi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x403f1d
push 5
pop eax
cmp eax, 3
je 0x403f29
cmp eax, 5
je 0x403f97
jmp 0x403eea
push str.FindWindow:_user_abort_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
xor edi, edi
push edi
call fcn.00407fad
add esp, 0xc
lea eax, [ebp - 0x248]
mov dword [ebp + 0x10], esi
push ebx
push eax
push 0x14
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x403f69
push 0x14
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
push esi
push edi
push edi
lea eax, [ebp - 0x248]
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push esi
call fcn.00406e71
pop ecx
push 0xfffffffffffffffe
pop eax
jmp 0x404868
push str.FindWindow:_user_ignore_n
jmp 0x4047f4
cmp dword [ebp - 4], 1
jne 0x403fe4
xor ebx, ebx
push ebx
push esi
call dword [sym.imp.USER32.dll_FindWindowA]
cmp eax, ebx
mov dword [ebp + 0x10], eax
je 0x404809
push esi
push str.FindWindow:_closing_window___s___one_shot__n
push 0x4121e0
call edi
push ebx
call fcn.00407fad
add esp, 0x10
push ebx
push ebx
push 0x10
push dword [ebp + 0x10]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x404809
cmp dword [ebp - 4], 0
jne 0x404809
mov ebx, dword [sym.imp.USER32.dll_FindWindowA]
push 0
push esi
mov dword [ebp + 0x10], 8
call ebx
test eax, eax
mov dword [ebp + 0xc], eax
je 0x40403d
push 0
push 0
push 0x10
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 0x10]
dec dword [ebp + 0x10]
test eax, eax
jl 0x404037
push 0
push esi
call ebx
test eax, eax
mov dword [ebp + 0xc], eax
jne 0x404007
cmp dword [ebp + 0xc], 0
jne 0x40405c
push dword [ebp + 0x10]
push esi
push str.FindWindow:_closed_window___s___multi_try_.__d_n
push 0x4121e0
call edi
push 0
call fcn.00407fad
add esp, 0x14
jmp 0x404809
push esi
push str.FindWindow:_gave_up_closing_window___s__n
push 0x4121e0
call edi
push 0
call fcn.00407fad
add esp, 0x10
jmp 0x404809
push str.FindWindow:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ecx + 8]
mov esi, 0x4118ac
add eax, dword [ebp + 0xc]
push ebx
push esi
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x40411d
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0xc
test eax, eax
jne 0x404113
mov esi, dword [ebp + 0x10]
push edi
push dword [esi + 4]
push str.MessageBox:__d___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
xor ebx, ebx
push ebx
call fcn.00407fad
add esp, 0x14
cmp dword [0x410ba4], ebx
je 0x404809
push dword [esi + 4]
push 0x412a40
push edi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x404108
cmp eax, 2
jne 0x40471b
mov dword [0x410ba0], ebx
jmp 0x404809
push str.MessageBox:_error_parsing_parameter_n
jmp 0x4047f4
push str.MessageBox:_INSTALLER_CORRUPTED_n
jmp 0x404812
cmp eax, 0x29
jg case.default.0x404142
je 0x40472a
add eax, 0xfffffff5
cmp eax, 8
ja case.default.0x404142
jmp dword [eax*4 + 0x404895]
push str.InstNSPlug:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0xc], 0xffffffff
mov edi, dword [eax + 4]
je 0x4041eb
lea eax, [ebp - 4]
push eax
push esi
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x404809
mov eax, dword [ebp + 0x10]
mov edi, 0x4117a8
push ebx
push edi
mov eax, dword [eax + 0xc]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x4041dd
push 0x412ae0
push edi
push esi
call fcn.004077ae
add esp, 0xc
test eax, eax
je 0x4041d3
push edi
push esi
call fcn.004080d0
pop ecx
pop ecx
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x404809
push esi
push edi
push str.DeleteRegKey:__d_s_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x14
push esi
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x404809
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x4042e0
push esi
push str.RMDir:___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0x1c
test eax, eax
jne 0x4047ef
push edi
push str.RMDir:_RemoveDirectory___s___n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x10
lea eax, [ebp - 0x248]
mov dword [ebp + 0x10], esi
push ebx
push eax
push 0x15
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4042ac
push 0x15
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
push esi
push 0
lea eax, [ebp - 0x248]
push 0
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push esi
call fcn.00406e71
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x404809
push str.RMDir:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x4043fe
push esi
push str.RMDirRecursive:___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0x1c
test eax, eax
jne 0x4043f4
push edi
push str.RMDirRecursive:_RemoveDirectory___s___n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x10
lea eax, [ebp - 0x248]
mov dword [ebp + 0x10], esi
push ebx
push eax
push 0x15
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x404382
push 0x15
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
xor ebx, ebx
push esi
push ebx
lea eax, [ebp - 0x248]
push ebx
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push esi
call fcn.00406e71
push edi
call fcn.00408050
and byte [eax + 0x4117a8], bl
push edi
call fcn.00408050
and byte [eax + 0x4117a9], bl
mov eax, dword [0x412e24]
add esp, 0xc
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x3c], 3
push eax
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x30], 0x414
mov dword [ebp - 0x2a], ebx
mov dword [ebp - 0x26], ebx
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
jmp 0x404809
push str.RMDirRecursive:_error_parsing_parameter_n
jmp 0x4047f4
push str.RMDirRecursive:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x40449f
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push esi
push str.If:___s__n
push 0x4121e0
call ebx
push 0
call fcn.00407fad
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0x1c
test eax, eax
jne 0x40448e
push edi
push str.If_variables_evaluated_:____s___n
push 0x4121e0
call ebx
push 0
call fcn.00407fad
push edi
call fcn.004074b4
add esp, 0x14
test eax, eax
jne 0x404809
mov dword [0x411ab4], 1
jmp 0x404809
push str.If:_error_parsing_parameter_n
push 0x4121e0
call ebx
jmp 0x4047ff
push str.If:_INSTALLER_CORRUPTED_n
jmp 0x404812
and dword [0x411ab4], 0
jmp 0x404809
cmp dword [0x410ba4], 0
je 0x404809
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov ebx, 0x104
mov esi, 0x4118ac
push ebx
push esi
push 0x32
push dword [0x4120b4]
call edi
test eax, eax
jne 0x4044ea
push 0x32
call fcn.0040755d
pop ecx
push 0x34
push 0x412a40
push esi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x404809
push 0
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
test eax, eax
jne 0x404809
push ebx
push esi
push 0x36
push dword [0x4120b4]
call edi
test eax, eax
jne 0x404531
push 0x36
call fcn.0040755d
pop ecx
cmp dword [0x410ba4], 0
je 0x404809
push 0
push 0x412a40
push esi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x404809
cmp dword [0x410ba4], 0
je 0x404809
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x4045ee
push esi
push str.Browser:___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0x1c
test eax, eax
jne 0x4045e4
lea eax, [ebp - 0x248]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x248]
push 5
push eax
push 0
push edi
push str.open
push dword [0x412e24]
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x404809
push str.Browser:_error_parsing_parameter_n
jmp 0x4047f4
push str.Browser:_INSTALLER_CORRUPTED_n
jmp 0x404812
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
lea eax, [ebp - 0x590]
push ebx
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
lea eax, [ebp - 0x248]
push ebx
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne case.default.0x404142
mov edi, 0x412ae0
push edi
push esi
push 0x4119b0
call fcn.004077ae
add esp, 0xc
test eax, eax
jne 0x404809
lea eax, [ebp - 0x248]
push edi
push eax
lea eax, [ebp - 0x448]
push eax
call fcn.004077ae
add esp, 0xc
test eax, eax
jne 0x404809
push edi
lea eax, [ebp - 0x590]
mov edi, 0x4117a8
push eax
push edi
call fcn.004077ae
add esp, 0xc
test eax, eax
jne 0x404809
push 0x4119b0
push 0x412f40
call fcn.004080d0
push edi
push 0x412c00
call fcn.004080d0
lea eax, [ebp - 0x448]
push eax
push 0x412a00
call fcn.004080d0
add esp, 0x18
cmp dword [0x410ba4], 0
je 0x40471b
push 0
push 0x406590
push dword [0x412e24]
push 0x6c
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov dword [0x410ba0], eax
jmp 0x404809
mov dword [0x410ba0], 1
jmp 0x404809
mov eax, dword [ebp + 0x10]
mov esi, 0x4118ac
push ebx
push esi
mov eax, dword [eax + 4]
add eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.004049f2
add esp, 0x10
test eax, eax
jne 0x40480d
push esi
push str.MKDir:___s__n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
push 0x412ae0
mov edi, 0x4117a8
push esi
push edi
call fcn.004077ae
add esp, 0x1c
test eax, eax
jne 0x4047ef
push edi
push str.MKDir:_recursive_create_directory___s___n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0x10
lea eax, [ebp - 0x248]
mov dword [ebp + 0x10], esi
push ebx
push eax
push 0x2c
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x4047be
push 0x2c
call fcn.0040755d
pop ecx
lea eax, [ebp + 0x10]
mov esi, 0x4119b0
push eax
push ebx
push esi
push 0
lea eax, [ebp - 0x248]
push 0
push eax
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push esi
call fcn.00406e71
push edi
call fcn.004075f2
pop ecx
pop ecx
jmp 0x404809
push str.RMDir:_error_parsing_parameter_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0xc
xor eax, eax
jmp 0x404868
push str.MKDir:_INSTALLER_CORRUPTED_n
push 0x4121e0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0
call fcn.00407fad
add esp, 0xc
mov esi, 0x4119b0
push ebx
push esi
push 0x16
push dword [0x4120b4]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x404848
push 0x16
call fcn.0040755d
pop ecx
cmp dword [0x410ba4], 0
je 0x404865
push 0x10
push 0x412a40
push esi
push dword [0x412e24]
call dword [sym.imp.USER32.dll_MessageBoxA]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
leave
ret