Function at 0x406183
Capabilities:
Clear file content
Create directory
Extract resource via kernel32 functions
Get common file path
Get installed programs
Hide graphical window
Read file via mapping
Set current directory
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef4
push dword [0x40bc06]
pop dword [ebp - 4]
push dword [ebp - 4]
call sub.KERNEL32.DLL_lstrlenA
or eax, eax
je 0x4061cb
inc dword [0x40bc28]
add eax, dword [ebp - 4]
inc eax
cmp dword [eax], 0
je 0x4061c3
add eax, 6
xor ecx, ecx
mov cx, word [eax - 2]
dec cx
je 0x4061c3
add dword [0x40bc28], ecx
add eax, 4
mov dword [ebp - 4], eax
jmp 0x406195
xor ecx, ecx
mov eax, 0x40acfb
inc ecx
cmp byte [ecx + eax], 0x5c
jne 0x4061f4
push ecx
inc ecx
push ecx
push eax
lea eax, [ebp - 0x10c]
push eax
call sub.KERNEL32.DLL_lstrcpynA
push 0
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
pop ecx
jmp 0x4061cd
cmp byte [ecx + eax], 0
jne 0x4061cd
push 0
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
push 0x40acfb
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bbc0], eax
push 0x40acfb
call sub.KERNEL32.DLL_SetCurrentDirectoryA
push 0x108000
push 8
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapAlloc
mov dword [0x40bbb8], eax
push 0x100000
push 8
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapAlloc
mov dword [0x40bbbc], eax
push 0x40a952
push 1
push 0
call sub.KERNEL32.DLL_FindResourceA
push eax
push 0
call sub.KERNEL32.DLL_LoadResource
push eax
call sub.KERNEL32.DLL_LockResource
mov dword [ebp - 8], eax
push 0
push 0x40a944
call sub.KERNEL32.DLL__lcreat
mov dword [0x40bc3d], eax
push 0x2198
push dword [ebp - 8]
push eax
call sub.KERNEL32.DLL__hwrite
cmp byte [0x40bc5a], 0
jne 0x4062bb
push str.Copying_File:
push dword [0x40bb40]
call sub.user32.dll_SetWindowTextA
push 5
push dword [0x40bb74]
call sub.user32.dll_ShowWindow
push 0x40acfb
lea eax, [ebp - 0x10c]
push eax
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
lea eax, [eax + ebp - 0x10c]
cmp byte [eax - 1], 0x5c
je 0x4062e4
mov word [eax], 0x5c
lea eax, [ebp - 0x10c]
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bc06]
push eax
call sub.KERNEL32.DLL_lstrcatA
push eax
call sub.KERNEL32.DLL_lstrlenA
cmp eax, 0x50
jle 0x406360
mov edx, 0x40adff
inc edx
cmp byte [edx], 0x5c
jne 0x406311
mov dword [edx + 1], 0x2e2e2e
add eax, 0x40adff
sub eax, 0x4c
xor ecx, ecx
cmp byte [ecx + eax], 0x5c
je 0x406353
inc ecx
cmp ecx, 0x4c
jne 0x406328
lea eax, [ebp - 0x10c]
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bc06]
push eax
call sub.KERNEL32.DLL_lstrcatA
jmp 0x406360
add eax, ecx
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcatA
mov byte [0x40bc15], 0
cmp byte [0x40bc5a], 0
jne 0x406380
push 0x40adff
push dword [0x40bb74]
call sub.user32.dll_SetWindowTextA
push 0
push dword [0x40bc06]
call sub.KERNEL32.DLL__lcreat
mov dword [0x40bc1a], eax
cmp eax, 0xffffffff
jne 0x406430
cmp byte [0x40bc15], 1
jne 0x4063f8
push str.Error_creatig_file:_r_n
push 0x40adff
call sub.KERNEL32.DLL_lstrcpyA
lea eax, [ebp - 0x10c]
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcatA
push dword [0x40bc06]
push eax
call sub.KERNEL32.DLL_lstrcatA
push 0x12
push 0x40a053
push eax
push dword [0x40bb34]
call sub.user32.dll_MessageBoxA
cmp eax, 4
je 0x4062e4
cmp eax, 5
je 0x406430
push 0
call sub.KERNEL32.DLL_ExitProcess
inc byte [0x40bc15]
xor eax, eax
inc eax
mov ecx, dword [0x40bc06]
cmp byte [eax + ecx], 0
je 0x406380
cmp byte [eax + ecx], 0x5c
jne 0x406400
push eax
inc eax
push eax
push ecx
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcpynA
push 0
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
pop eax
jmp 0x406400
push dword [0x40bc06]
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bbc0], eax
add dword [0x40bc06], eax
mov esi, dword [0x40bc06]
lodsd eax, dword [esi]
add dword [0x40bc06], 4
or eax, eax
jne 0x4064a7
cmp byte [0x40bc5a], 0
jne 0x406660
inc dword [0x40bc24]
mov eax, dword [0x40bc24]
mov ebx, 0x64
mul ebx
xor edx, edx
mov ebx, dword [0x40bc28]
div ebx
push 0
push eax
push 0x402
push dword [0x40bb70]
call sub.user32.dll_SendMessageA
jmp 0x406660
push 0
push eax
add dword [0x40bc06], 2
lodsw ax, word [esi]
mov word [0x40bc1e], ax
lodsd eax, dword [esi]
mov dword [0x40bba4], eax
add dword [0x40bc06], 4
mov dword [0x40bc4a], 1
push dword [0x40bb98]
call sub.KERNEL32.DLL__llseek
push 4
push 0x40bba0
push dword [0x40bb98]
call sub.KERNEL32.DLL__hread
push str.BZh91AYSY
push dword [0x40bbb8]
call sub.KERNEL32.DLL_lstrcpyA
mov ecx, dword [0x40bba0]
sub ecx, 0xa
push ecx
add eax, 0xa
push eax
push ecx
push eax
push dword [0x40bb98]
call sub.KERNEL32.DLL__hread
push 0x40bc4a
call fcn.004073e5
push dword [0x40bbb8]
pop dword [0x40b99a]
push dword [0x40bbbc]
pop dword [0x40b9aa]
push dword [0x40bba0]
pop dword [0x40b99e]
mov dword [0x40b9ae], 0x100000
mov dword [0x40b9be], 0x4072e3
mov dword [0x40b9c2], 0x40730b
push 0
push 0
push 0x40b99a
call fcn.00401006
push 0x40b99a
call fcn.004010f3
push 0x40b99a
call fcn.00401d2b
push dword [0x40b9b2]
push dword [0x40bbbc]
push dword [0x40bc1a]
call sub.KERNEL32.DLL__hwrite
cmp byte [0x40bc5a], 0
jne 0x4065d5
inc dword [0x40bc24]
mov eax, dword [0x40bc24]
mov ebx, 0x64
mul ebx
xor edx, edx
mov ebx, dword [0x40bc28]
div ebx
push 0
push eax
push 0x402
push dword [0x40bb70]
call sub.user32.dll_SendMessageA
dec word [0x40bc1e]
cmp word [0x40bc1e], 0
jne 0x4064db
mov eax, dword [0x40bc4a]
cmp dword [0x40bba4], eax
je 0x406660
push 0x40adff
push str._s_r_n_r_nFile_integrity_check_has_failed._Do_you_want_to_continue_
push 0x40a9ef
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0x34
push 0x40a053
push 0x40a9ef
push dword [0x40bb34]
call sub.user32.dll_MessageBoxA
cmp eax, 6
je 0x406660
push dword [0x40bbb8]
push 0
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapFree
push dword [0x40bbbc]
push 0
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapFree
push dword [0x40bc1a]
call sub.KERNEL32.DLL__lclose
jmp 0x406e54
push dword [0x40bc1a]
call sub.KERNEL32.DLL__lclose
mov eax, dword [0x40bbc0]
sub eax, dword [0x40bbb0]
cmp eax, 0x7b0c
jbe 0x406682
call fcn.004072a9
mov eax, dword [0x40bc06]
cmp byte [eax], 0
jne 0x4062e4
push dword [0x40bbb8]
push 0
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapFree
push dword [0x40bbbc]
push 0
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapFree
inc dword [0x40bbc0]
mov eax, dword [0x40bbc0]
sub eax, dword [0x40bbb0]
cmp eax, 0x7b0c
jbe 0x4066d3
call fcn.004072a9
inc dword [0x40bc06]
mov esi, dword [0x40bc06]
inc dword [0x40bc06]
inc dword [0x40bbc0]
lodsb al, byte [esi]
cmp al, 0x51
jne 0x406722
push 0x40bba0
push 0x1a
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
push 0x40a9ef
push dword [0x40bba0]
call sub.shell32.dll_SHGetPathFromIDListA
push str.MicrosoftInternet_ExplorerQuick_Launch_
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
jmp 0x40684e
cmp al, 0x44
jne 0x40672d
mov eax, 0x10
jmp 0x40677d
cmp al, 0x4d
jne 0x406738
mov eax, 0xb
jmp 0x40677d
cmp al, 0x50
jne 0x406750
mov eax, 2
cmp byte [0x40bc13], 2
je 0x40683f
jmp 0x40677d
cmp al, 0x53
jne 0x40675b
mov eax, 7
jmp 0x40677d
cmp al, 0x47
jne 0x40697d
mov eax, 2
mov byte [0x40bc13], 1
cmp dword [0x40b8e4], 6
jl 0x40677d
mov eax, 0x17
push 0x40bba0
push eax
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
push 0x40a9ef
push dword [0x40bba0]
call sub.shell32.dll_SHGetPathFromIDListA
push 0x40a957
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
cmp byte [0x40bc13], 1
jne 0x40684e
mov eax, dword [0x40bc06]
xor ecx, ecx
inc ecx
cmp byte [ecx + eax], 0
je 0x4067ca
cmp byte [ecx + eax], 0x5c
jne 0x4067bd
push eax
push ecx
inc ecx
push ecx
push eax
push 0x40aaf3
call sub.KERNEL32.DLL_lstrcpynA
push eax
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
push 0
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
pop ecx
pop eax
add eax, ecx
cmp byte [eax], 0
jne 0x4067bb
mov eax, dword [0x40bbc0]
dec eax
push dword [0x40bc06]
push eax
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
add dword [0x40bc06], eax
dec eax
add dword [0x40bbc0], eax
push 0x40a957
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
push eax
push 0x40aaf3
call sub.KERNEL32.DLL_lstrcpyA
inc byte [0x40bc13]
jmp 0x4066bc
push 0x40aaf3
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bc06]
call sub.KERNEL32.DLL_lstrlenA
add eax, dword [0x40bc06]
dec eax
cmp byte [eax], 0
je 0x406878
cmp byte [eax], 0x5c
jne 0x40685f
inc eax
push eax
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
jmp 0x406888
push dword [0x40bc06]
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
push eax
call sub.KERNEL32.DLL_lstrlenA
lea edx, [eax + 0x40a9ef]
mov ecx, edx
cmp byte [ecx], 0x2e
je 0x4068a1
dec ecx
dec eax
jne 0x406896
mov ecx, edx
push ecx
push str..pif
push ecx
call sub.KERNEL32.DLL_lstrcpyA
push 0x40a9ef
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrcpyA
pop ecx
push str..lnk
push ecx
call sub.KERNEL32.DLL_lstrcpyA
push 0x40b9f2
push dword [0x40bbc0]
call sub.KERNEL32.DLL_FindFirstFileA
mov dword [0x40bba0], eax
cmp eax, 0xffffffff
je 0x4068e9
push eax
call sub.KERNEL32.DLL_FindClose
push 0x40abf7
push 0x104
call sub.KERNEL32.DLL_GetCurrentDirectoryA
push 0x40a957
push 0x40abf7
call sub.KERNEL32.DLL_lstrcatA
push dword [0x40bc06]
push eax
call sub.KERNEL32.DLL_lstrcatA
push 0x40a9ef
push 0x40abf7
call fcn.0040716e
push 0x40b9f2
push dword [0x40bbc0]
call sub.KERNEL32.DLL_FindFirstFileA
cmp eax, 0xffffffff
je 0x406946
push eax
call sub.KERNEL32.DLL_FindClose
cmp dword [0x40bba0], 0xffffffff
je 0x406956
push 0x40a9ef
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrlenA
add dword [0x40bbc0], eax
push dword [0x40bc06]
call sub.KERNEL32.DLL_lstrlenA
add dword [0x40bc06], eax
jmp 0x4066bc
mov eax, dword [0x40bbc0]
sub eax, dword [0x40bbb0]
cmp eax, 0x7b0c
jbe 0x406994
call fcn.004072a9
inc dword [0x40bbc0]
mov esi, dword [0x40bc06]
add dword [0x40bc06], 4
lodsd eax, dword [esi]
mov dword [0x40bc0e], eax
cmp eax, 0x80000000
je 0x4069ea
cmp eax, 0x80000001
je 0x4069ea
cmp eax, 0x80000002
je 0x4069ea
cmp eax, 0x80000003
je 0x4069ea
cmp eax, 0x80000004
je 0x4069ea
cmp eax, 0x80000005
je 0x4069ea
cmp eax, 0x80000006
je 0x4069ea
sub dword [0x40bc06], 4
jmp 0x406c62
mov esi, dword [0x40bc06]
lodsb al, byte [esi]
mov byte [0x40bc15], al
inc dword [0x40bc06]
push 0x40bba0
push 0xf003f
push 0
push dword [0x40bc06]
push eax
call sub.advapi32.dll_RegOpenKeyExA
mov ebx, dword [0x40bbc0]
mov byte [ebx], 0x4f
or eax, eax
je 0x406a4f
push 0
push 0x40bba0
push 0
push 0xf003f
push 0
push 0
push 0
push dword [0x40bc06]
push dword [0x40bc0e]
call sub.advapi32.dll_RegCreateKeyExA
mov ebx, dword [0x40bbc0]
mov byte [ebx], 0x43
inc dword [0x40bbc0]
mov eax, dword [0x40bbc0]
mov edx, dword [0x40bc0e]
mov dword [eax], edx
add dword [0x40bbc0], 4
push dword [0x40bc06]
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bc06], eax
add dword [0x40bbc0], eax
mov esi, dword [0x40bc06]
mov dword [0x40bba8], esi
lodsb al, byte [esi]
cmp al, 0
je 0x406c33
cmp al, 1
jne 0x406ab4
mov dword [0x40bba8], 0
xor eax, eax
jmp 0x406abf
push dword [0x40bc06]
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bc06], eax
cmp byte [0x40bc15], 0
jne 0x406c06
cmp dword [0x40bba8], 0
je 0x406b4a
push str._SetupPath_
push dword [0x40bba8]
call sub.KERNEL32.DLL_lstrcmpA
or eax, eax
jne 0x406afc
mov dword [0x40bba8], 0x40acfb
jmp 0x406b4a
push str._SetupPath_
push dword [0x40bba8]
push 1
call fcn.00408604
or eax, eax
je 0x406b4a
cmp eax, 0xffffffff
je 0x406b4a
push eax
push eax
push dword [0x40bba8]
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcpynA
push 0x40acfb
push eax
call sub.KERNEL32.DLL_lstrcatA
pop ecx
add ecx, dword [0x40bba8]
add ecx, 0xa
push ecx
push eax
call sub.KERNEL32.DLL_lstrcatA
mov dword [0x40bba8], eax
cmp dword [0x40bba8], 0
je 0x406b73
push dword [0x40bba8]
push dword [0x40bbc0]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bbc0], eax
jmp 0x406b81
mov eax, dword [0x40bbc0]
mov byte [eax], 1
inc dword [0x40bbc0]
mov esi, dword [0x40bc06]
lodsb al, byte [esi]
or al, al
je 0x406bc2
push str._SetupPath_
push dword [0x40bc06]
call sub.KERNEL32.DLL_lstrcmpA
or eax, eax
jne 0x406ba7
mov eax, 0x40acfb
jmp 0x406bf7
push str._SetupPath_
push dword [0x40bc06]
push 1
call fcn.00408604
or eax, eax
je 0x406bc2
cmp eax, 0xffffffff
jne 0x406bc9
mov eax, dword [0x40bc06]
jmp 0x406bf7
push eax
push eax
push dword [0x40bc06]
push 0x40aaf3
call sub.KERNEL32.DLL_lstrcpynA
push 0x40acfb
push eax
call sub.KERNEL32.DLL_lstrcatA
pop ecx
add ecx, dword [0x40bc06]
add ecx, 0xa
push ecx
push eax
call sub.KERNEL32.DLL_lstrcatA
push eax
push eax
call sub.KERNEL32.DLL_lstrlenA
pop edx
mov ecx, 1
jmp 0x406c1d
mov ecx, 4
mov edx, dword [0x40bc06]
mov eax, 4
add dword [0x40bc06], 4
push eax
push edx
push ecx
push 0
push dword [0x40bba8]
push dword [0x40bba0]
call sub.advapi32.dll_RegSetValueExA
push dword [0x40bba0]
call sub.advapi32.dll_RegCloseKey
cmp byte [0x40bc15], 1
je 0x40697d
push dword [0x40bc06]
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bc06], eax
jmp 0x40697d
push dword [0x40bbcc]
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_s
push 0x40a9ef
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0
push 0x40bba0
push 0
push 0xf003f
push 0
push 0
push 0
push 0x40a9ef
push 0x80000002
call sub.advapi32.dll_RegCreateKeyExA
push dword [0x40bbcc]
call sub.KERNEL32.DLL_lstrlenA
push eax
push dword [0x40bbcc]
push 1
push 0
push str.DisplayName
push dword [0x40bba0]
call sub.advapi32.dll_RegSetValueExA
push 0x40acfb
push str._sUninstall.exe
push 0x40a9ef
call sub.user32.dll_wsprintfA
add esp, 0xc
push eax
push 0x40a9ef
push 1
push 0
push str.UninstallString
push dword [0x40bba0]
call sub.advapi32.dll_RegSetValueExA
push dword [0x40bba0]
call sub.advapi32.dll_RegCloseKey
inc dword [0x40bbc0]
call fcn.004072a9
push 1
push 0
push dword [0x40bc3d]
call sub.KERNEL32.DLL__llseek
mov dword [ebp - 0xc], eax
sar eax, 3
shl eax, 3
cmp dword [ebp - 0xc], eax
je 0x406d2a
add eax, 8
push 0
push eax
push dword [0x40bc3d]
call sub.KERNEL32.DLL__llseek
mov dword [0x40bba0], eax
add dword [ebp - 8], 0x21a0
push 0x2e2
push dword [ebp - 8]
push dword [0x40bc3d]
call sub.KERNEL32.DLL__hwrite
add eax, dword [0x40bba0]
mov ecx, eax
sar eax, 9
shl eax, 9
cmp eax, ecx
je 0x406d6e
add eax, 0x200
push 0
push eax
push dword [0x40bc3d]
call sub.KERNEL32.DLL__llseek
push dword [0x40bc3d]
call sub.KERNEL32.DLL_SetEndOfFile
call fcn.00407324
push eax
push 0
push 0
push 0
push 4
push 0
push dword [0x40bc3d]
call sub.KERNEL32.DLL_CreateFileMappingA
mov dword [0x40bba4], eax
push 0
push 0
push 0
push 6
push eax
call sub.KERNEL32.DLL_MapViewOfFile
pop dword [eax + 0xc0]
mov ecx, dword [ebp - 0xc]
sub ecx, 0x2198
mov dword [eax + 0x1334], ecx
mov ecx, dword [0x40bba0]
sub ecx, 0x21a0
add dword [eax + 0x1350], ecx
mov ecx, dword [0x40bba0]
sub ecx, 0x21a1
add dword [eax + 0x230], ecx
add dword [eax + 0x144], ecx
mov ecx, dword [eax + 0x230]
sar ecx, 9
shl ecx, 9
cmp dword [eax + 0x230], ecx
je 0x406e0e
add ecx, 0x200
mov dword [eax + 0x238], ecx
push eax
mov eax, ecx
xor edx, edx
mov ebx, 0x1000
div ebx
or edx, edx
je 0x406e25
inc eax
mul ebx
pop ecx
sub dword [ecx + 0x108], 0x2200
add dword [ecx + 0x108], eax
push ecx
call sub.KERNEL32.DLL_UnmapViewOfFile
push dword [0x40bba4]
call sub.KERNEL32.DLL_CloseHandle
push dword [0x40bc3d]
call sub.KERNEL32.DLL__lclose
push dword [0x40bbb0]
push 0
push dword [0x40bc16]
call sub.KERNEL32.DLL_HeapFree
cmp byte [0x40bc5a], 0
jne 0x407008
push 2
push 0xa9
push 0x1c6
push 0
push 0
push 1
push dword [0x40bb40]
call sub.user32.dll_SetWindowPos
push dword [0x40bbcc]
push str._s_has_been_successfully_installed.
push 0x40a9ef
call sub.user32.dll_wsprintfA
add esp, 0xc
cmp dword [0x40bbe0], 0
jne 0x406ee8
push 0x40a9ef
push dword [0x40bb3c]
call sub.user32.dll_SetWindowTextA
push str.Completing_setup_wizard
push dword [0x40bb38]
call sub.user32.dll_SetWindowTextA
push dword [0x40bc06]
push dword [0x40bb40]
call sub.user32.dll_SetWindowTextA
jmp 0x406f9e
push 0x40a9ef
push dword [0x40bb8c]
call sub.user32.dll_SetWindowTextA
push dword [0x40bc06]
push dword [0x40bb90]
call sub.user32.dll_SetWindowTextA
push 1
push 0
push 0
push 0x113
push 0xb6
push 1
push dword [0x40bb44]
call sub.user32.dll_SetWindowPos
push 0x40
push 2
push 0x1f2
push 0x130
push 0
push 1
push dword [0x40bb80]
call sub.user32.dll_SetWindowPos
push 5
push dword [0x40bb8c]
call sub.user32.dll_ShowWindow
push 5
push dword [0x40bb90]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb38]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb3c]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb7c]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb40]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb78]
call sub.user32.dll_ShowWindow
push str.Click_Finish_to_exit_this_installation.
push dword [0x40bb44]
call sub.user32.dll_SetWindowTextA
push str.Finish
push dword [0x40bb50]
call sub.user32.dll_SetWindowTextA
push 0
push dword [0x40bb4c]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb48]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb70]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb74]
call sub.user32.dll_ShowWindow
mov byte [0x40bc12], 6
push 0
push 0
push dword [0x40bb34]
call sub.user32.dll_InvalidateRect
leave
ret