Function at 0x406136
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 [0x40bc0a]
pop dword [ebp - 4]
push dword [ebp - 4]
call sub.KERNEL32.DLL_lstrlenA
or eax, eax
je 0x40617e
inc dword [0x40bc2c]
add eax, dword [ebp - 4]
inc eax
cmp dword [eax], 0
je 0x406176
add eax, 6
xor ecx, ecx
mov cx, word [eax - 2]
dec cx
je 0x406176
add dword [0x40bc2c], ecx
add eax, 4
mov dword [ebp - 4], eax
jmp 0x406148
xor ecx, ecx
mov eax, 0x40acfb
inc ecx
cmp byte [ecx + eax], 0x5c
jne 0x4061a7
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 0x406180
cmp byte [ecx + eax], 0
jne 0x406180
push 0
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
push 0x40acfb
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bbc4], eax
push 0x40acfb
call sub.KERNEL32.DLL_SetCurrentDirectoryA
push 0x108000
push 8
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapAlloc
mov dword [0x40bbbc], eax
push 0x100000
push 8
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapAlloc
mov dword [0x40bbc0], 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 [0x40bc41], eax
push 0x2198
push dword [ebp - 8]
push eax
call sub.KERNEL32.DLL__hwrite
cmp byte [0x40bc5e], 0
jne 0x40626e
push str.Copying_File:
push dword [0x40bb40]
call sub.user32.dll_SetWindowTextA
push 5
push dword [0x40bb78]
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 0x406297
mov word [eax], 0x5c
lea eax, [ebp - 0x10c]
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bc0a]
push eax
call sub.KERNEL32.DLL_lstrcatA
push eax
call sub.KERNEL32.DLL_lstrlenA
cmp eax, 0x50
jle 0x406313
mov edx, 0x40adff
inc edx
cmp byte [edx], 0x5c
jne 0x4062c4
mov dword [edx + 1], 0x2e2e2e
add eax, 0x40adff
sub eax, 0x4c
xor ecx, ecx
cmp byte [ecx + eax], 0x5c
je 0x406306
inc ecx
cmp ecx, 0x4c
jne 0x4062db
lea eax, [ebp - 0x10c]
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bc0a]
push eax
call sub.KERNEL32.DLL_lstrcatA
jmp 0x406313
add eax, ecx
push eax
push 0x40adff
call sub.KERNEL32.DLL_lstrcatA
mov byte [0x40bc19], 0
cmp byte [0x40bc5e], 0
jne 0x406333
push 0x40adff
push dword [0x40bb78]
call sub.user32.dll_SetWindowTextA
push 0
push dword [0x40bc0a]
call sub.KERNEL32.DLL__lcreat
mov dword [0x40bc1e], eax
cmp eax, 0xffffffff
jne 0x4063e3
cmp byte [0x40bc19], 1
jne 0x4063ab
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 [0x40bc0a]
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 0x406297
cmp eax, 5
je 0x4063e3
push 0
call sub.KERNEL32.DLL_ExitProcess
inc byte [0x40bc19]
xor eax, eax
inc eax
mov ecx, dword [0x40bc0a]
cmp byte [eax + ecx], 0
je 0x406333
cmp byte [eax + ecx], 0x5c
jne 0x4063b3
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 0x4063b3
push dword [0x40bc0a]
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bbc4], eax
add dword [0x40bc0a], eax
mov esi, dword [0x40bc0a]
lodsd eax, dword [esi]
add dword [0x40bc0a], 4
or eax, eax
jne 0x40645a
cmp byte [0x40bc5e], 0
jne 0x406613
inc dword [0x40bc28]
mov eax, dword [0x40bc28]
mov ebx, 0x64
mul ebx
xor edx, edx
mov ebx, dword [0x40bc2c]
div ebx
push 0
push eax
push 0x402
push dword [0x40bb74]
call sub.user32.dll_SendMessageA
jmp 0x406613
push 0
push eax
add dword [0x40bc0a], 2
lodsw ax, word [esi]
mov word [0x40bc22], ax
lodsd eax, dword [esi]
mov dword [0x40bba8], eax
add dword [0x40bc0a], 4
mov dword [0x40bc4e], 1
push dword [0x40bb9c]
call sub.KERNEL32.DLL__llseek
push 4
push 0x40bba4
push dword [0x40bb9c]
call sub.KERNEL32.DLL__hread
push str.BZh91AYSY
push dword [0x40bbbc]
call sub.KERNEL32.DLL_lstrcpyA
mov ecx, dword [0x40bba4]
sub ecx, 0xa
push ecx
add eax, 0xa
push eax
push ecx
push eax
push dword [0x40bb9c]
call sub.KERNEL32.DLL__hread
push 0x40bc4e
call fcn.0040739d
push dword [0x40bbbc]
pop dword [0x40b99a]
push dword [0x40bbc0]
pop dword [0x40b9aa]
push dword [0x40bba4]
pop dword [0x40b99e]
mov dword [0x40b9ae], 0x100000
mov dword [0x40b9be], 0x40729b
mov dword [0x40b9c2], 0x4072c3
push 0
push 0
push 0x40b99a
call fcn.00401006
push 0x40b99a
call fcn.004010f3
push 0x40b99a
call fcn.00401d2b
push dword [0x40b9b2]
push dword [0x40bbc0]
push dword [0x40bc1e]
call sub.KERNEL32.DLL__hwrite
cmp byte [0x40bc5e], 0
jne 0x406588
inc dword [0x40bc28]
mov eax, dword [0x40bc28]
mov ebx, 0x64
mul ebx
xor edx, edx
mov ebx, dword [0x40bc2c]
div ebx
push 0
push eax
push 0x402
push dword [0x40bb74]
call sub.user32.dll_SendMessageA
dec word [0x40bc22]
cmp word [0x40bc22], 0
jne 0x40648e
mov eax, dword [0x40bc4e]
cmp dword [0x40bba8], eax
je 0x406613
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 0x406613
push dword [0x40bbbc]
push 0
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapFree
push dword [0x40bbc0]
push 0
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapFree
push dword [0x40bc1e]
call sub.KERNEL32.DLL__lclose
jmp 0x406e1e
push dword [0x40bc1e]
call sub.KERNEL32.DLL__lclose
mov eax, dword [0x40bbc4]
sub eax, dword [0x40bbb4]
cmp eax, 0x7b0c
jbe 0x406635
call fcn.00407263
mov eax, dword [0x40bc0a]
cmp byte [eax], 0
jne 0x406297
push dword [0x40bbbc]
push 0
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapFree
push dword [0x40bbc0]
push 0
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapFree
inc dword [0x40bbc4]
mov eax, dword [0x40bbc4]
sub eax, dword [0x40bbb4]
cmp eax, 0x7b0c
jbe 0x406686
call fcn.00407263
inc dword [0x40bc0a]
mov esi, dword [0x40bc0a]
inc dword [0x40bc0a]
inc dword [0x40bbc4]
lodsb al, byte [esi]
cmp al, 0x51
jne 0x4066d5
push 0x40bba4
push 0x1a
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
push 0x40a9ef
push dword [0x40bba4]
call sub.shell32.dll_SHGetPathFromIDListA
push str.MicrosoftInternet_ExplorerQuick_Launch_
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
jmp 0x406801
cmp al, 0x44
jne 0x4066e0
mov eax, 0x10
jmp 0x406730
cmp al, 0x4d
jne 0x4066eb
mov eax, 0xb
jmp 0x406730
cmp al, 0x50
jne 0x406703
mov eax, 2
cmp byte [0x40bc17], 2
je 0x4067f2
jmp 0x406730
cmp al, 0x53
jne 0x40670e
mov eax, 7
jmp 0x406730
cmp al, 0x47
jne 0x406930
mov eax, 2
mov byte [0x40bc17], 1
cmp dword [0x40b8e4], 6
jl 0x406730
mov eax, 0x17
push 0x40bba4
push eax
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
push 0x40a9ef
push dword [0x40bba4]
call sub.shell32.dll_SHGetPathFromIDListA
push 0x40a957
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
cmp byte [0x40bc17], 1
jne 0x406801
mov eax, dword [0x40bc0a]
xor ecx, ecx
inc ecx
cmp byte [ecx + eax], 0
je 0x40677d
cmp byte [ecx + eax], 0x5c
jne 0x406770
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 0x40676e
mov eax, dword [0x40bbc4]
dec eax
push dword [0x40bc0a]
push eax
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
add dword [0x40bc0a], eax
dec eax
add dword [0x40bbc4], eax
push 0x40a957
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
push eax
push 0x40aaf3
call sub.KERNEL32.DLL_lstrcpyA
inc byte [0x40bc17]
jmp 0x40666f
push 0x40aaf3
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bc0a]
call sub.KERNEL32.DLL_lstrlenA
add eax, dword [0x40bc0a]
dec eax
cmp byte [eax], 0
je 0x40682b
cmp byte [eax], 0x5c
jne 0x406812
inc eax
push eax
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcatA
jmp 0x40683b
push dword [0x40bc0a]
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 0x406854
dec ecx
dec eax
jne 0x406849
mov ecx, edx
push ecx
push str..pif
push ecx
call sub.KERNEL32.DLL_lstrcpyA
push 0x40a9ef
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrcpyA
pop ecx
push str..lnk
push ecx
call sub.KERNEL32.DLL_lstrcpyA
push 0x40b9f2
push dword [0x40bbc4]
call sub.KERNEL32.DLL_FindFirstFileA
mov dword [0x40bba4], eax
cmp eax, 0xffffffff
je 0x40689c
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 [0x40bc0a]
push eax
call sub.KERNEL32.DLL_lstrcatA
push 0x40a9ef
push 0x40abf7
call fcn.00407128
push 0x40b9f2
push dword [0x40bbc4]
call sub.KERNEL32.DLL_FindFirstFileA
cmp eax, 0xffffffff
je 0x4068f9
push eax
call sub.KERNEL32.DLL_FindClose
cmp dword [0x40bba4], 0xffffffff
je 0x406909
push 0x40a9ef
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrcpyA
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrlenA
add dword [0x40bbc4], eax
push dword [0x40bc0a]
call sub.KERNEL32.DLL_lstrlenA
add dword [0x40bc0a], eax
jmp 0x40666f
mov eax, dword [0x40bbc4]
sub eax, dword [0x40bbb4]
cmp eax, 0x7b0c
jbe 0x406947
call fcn.00407263
inc dword [0x40bbc4]
mov esi, dword [0x40bc0a]
add dword [0x40bc0a], 4
lodsd eax, dword [esi]
mov dword [0x40bc12], eax
cmp eax, 0x80000000
je 0x40699d
cmp eax, 0x80000001
je 0x40699d
cmp eax, 0x80000002
je 0x40699d
cmp eax, 0x80000003
je 0x40699d
cmp eax, 0x80000004
je 0x40699d
cmp eax, 0x80000005
je 0x40699d
cmp eax, 0x80000006
je 0x40699d
sub dword [0x40bc0a], 4
jmp 0x406c1a
mov esi, dword [0x40bc0a]
lodsb al, byte [esi]
mov byte [0x40bc19], al
inc dword [0x40bc0a]
push 0x40bba4
push 0xf003f
push 0
push dword [0x40bc0a]
push dword [0x40bc12]
call sub.advapi32.dll_RegOpenKeyExA
mov ebx, dword [0x40bbc4]
mov byte [ebx], 0x4f
or eax, eax
je 0x406a07
push 0
push 0x40bba4
push 0
push 0xf003f
push 0
push 0
push 0
push dword [0x40bc0a]
push dword [0x40bc12]
call sub.advapi32.dll_RegCreateKeyExA
mov ebx, dword [0x40bbc4]
mov byte [ebx], 0x43
inc dword [0x40bbc4]
mov eax, dword [0x40bbc4]
mov edx, dword [0x40bc12]
mov dword [eax], edx
add dword [0x40bbc4], 4
push dword [0x40bc0a]
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bc0a], eax
add dword [0x40bbc4], eax
mov esi, dword [0x40bc0a]
mov dword [0x40bbac], esi
lodsb al, byte [esi]
cmp al, 0
je 0x406beb
cmp al, 1
jne 0x406a6c
mov dword [0x40bbac], 0
xor eax, eax
jmp 0x406a77
push dword [0x40bc0a]
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bc0a], eax
cmp byte [0x40bc19], 0
jne 0x406bbe
cmp dword [0x40bbac], 0
je 0x406b02
push str._SetupPath_
push dword [0x40bbac]
call sub.KERNEL32.DLL_lstrcmpA
or eax, eax
jne 0x406ab4
mov dword [0x40bbac], 0x40acfb
jmp 0x406b02
push str._SetupPath_
push dword [0x40bbac]
push 1
call fcn.004085c8
or eax, eax
je 0x406b02
cmp eax, 0xffffffff
je 0x406b02
push eax
push eax
push dword [0x40bbac]
push 0x40a9ef
call sub.KERNEL32.DLL_lstrcpynA
push 0x40acfb
push eax
call sub.KERNEL32.DLL_lstrcatA
pop ecx
add ecx, dword [0x40bbac]
add ecx, 0xa
push ecx
push eax
call sub.KERNEL32.DLL_lstrcatA
mov dword [0x40bbac], eax
cmp dword [0x40bbac], 0
je 0x406b2b
push dword [0x40bbac]
push dword [0x40bbc4]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bbc4], eax
jmp 0x406b39
mov eax, dword [0x40bbc4]
mov byte [eax], 1
inc dword [0x40bbc4]
mov esi, dword [0x40bc0a]
lodsb al, byte [esi]
or al, al
je 0x406b7a
push str._SetupPath_
push dword [0x40bc0a]
call sub.KERNEL32.DLL_lstrcmpA
or eax, eax
jne 0x406b5f
mov eax, 0x40acfb
jmp 0x406baf
push str._SetupPath_
push dword [0x40bc0a]
push 1
call fcn.004085c8
or eax, eax
je 0x406b7a
cmp eax, 0xffffffff
jne 0x406b81
mov eax, dword [0x40bc0a]
jmp 0x406baf
push eax
push eax
push dword [0x40bc0a]
push 0x40aaf3
call sub.KERNEL32.DLL_lstrcpynA
push 0x40acfb
push eax
call sub.KERNEL32.DLL_lstrcatA
pop ecx
add ecx, dword [0x40bc0a]
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 0x406bd5
mov ecx, 4
mov edx, dword [0x40bc0a]
mov eax, 4
add dword [0x40bc0a], 4
push eax
push edx
push ecx
push 0
push dword [0x40bbac]
push dword [0x40bba4]
call sub.advapi32.dll_RegSetValueExA
push dword [0x40bba4]
call sub.advapi32.dll_RegCloseKey
cmp byte [0x40bc19], 1
je 0x406930
push dword [0x40bc0a]
call sub.KERNEL32.DLL_lstrlenA
inc eax
add dword [0x40bc0a], eax
jmp 0x406930
push dword [0x40bbd0]
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_s
push 0x40a9ef
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0
push 0x40bba4
push 0
push 0xf003f
push 0
push 0
push 0
push 0x40a9ef
push 0x80000002
call sub.advapi32.dll_RegCreateKeyExA
push dword [0x40bbd0]
call sub.KERNEL32.DLL_lstrlenA
push eax
push dword [0x40bbd0]
push 1
push 0
push str.DisplayName
push dword [0x40bba4]
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 [0x40bba4]
call sub.advapi32.dll_RegSetValueExA
push dword [0x40bba4]
call sub.advapi32.dll_RegCloseKey
inc dword [0x40bbc4]
call fcn.00407263
push 1
push 0
push dword [0x40bc41]
call sub.KERNEL32.DLL__llseek
mov dword [ebp - 0xc], eax
sar eax, 3
shl eax, 3
cmp dword [ebp - 0xc], eax
je 0x406ce2
add eax, 8
push 0
push eax
push dword [0x40bc41]
call sub.KERNEL32.DLL__llseek
mov dword [0x40bba4], eax
push 0x18
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
push 0x483
push eax
push dword [0x40bc41]
call sub.KERNEL32.DLL__hwrite
add eax, dword [0x40bba4]
mov ecx, eax
sar eax, 9
shl eax, 9
cmp eax, ecx
je 0x406d36
add eax, 0x200
push 0
push eax
push dword [0x40bc41]
call sub.KERNEL32.DLL__llseek
push dword [0x40bc41]
call sub.KERNEL32.DLL_SetEndOfFile
call fcn.004072dc
push eax
push 0
push 0
push 0
push 4
push 0
push dword [0x40bc41]
call sub.KERNEL32.DLL_CreateFileMappingA
mov dword [0x40bba8], 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 [0x40bba4]
sub ecx, 0x21a0
add dword [eax + 0x1350], ecx
mov ecx, dword [0x40bba4]
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 0x406dd6
add ecx, 0x200
mov dword [eax + 0x238], ecx
mov ecx, dword [eax + 0x230]
add ecx, dword [eax + 0x234]
push eax
mov eax, ecx
xor edx, edx
mov ebx, 0x1000
div ebx
or edx, edx
je 0x406df9
inc eax
mul ebx
pop ecx
mov dword [ecx + 0x108], eax
push ecx
call sub.KERNEL32.DLL_UnmapViewOfFile
push dword [0x40bba8]
call sub.KERNEL32.DLL_CloseHandle
push dword [0x40bc41]
call sub.KERNEL32.DLL__lclose
push dword [0x40bbb4]
push 0
push dword [0x40bc1a]
call sub.KERNEL32.DLL_HeapFree
cmp byte [0x40bc5e], 0
jne 0x406fc2
push 2
push 0xa9
push 0x1c6
push 0
push 0
push 1
push dword [0x40bb40]
call sub.user32.dll_SetWindowPos
push dword [0x40bbd0]
push str._s_has_been_successfully_installed.
push 0x40a9ef
call sub.user32.dll_wsprintfA
add esp, 0xc
cmp dword [0x40bbe4], 0
jne 0x406eb7
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 [0x40bc0a]
push dword [0x40bb40]
call sub.user32.dll_SetWindowTextA
mov eax, dword [0x40bb44]
jmp 0x406f55
push 0x40a9ef
push dword [0x40bb90]
call sub.user32.dll_SetWindowTextA
push dword [0x40bc0a]
push dword [0x40bb94]
call sub.user32.dll_SetWindowTextA
push 0x40
push 2
push 0x1f2
push 0x130
push 0
push 1
push dword [0x40bb84]
call sub.user32.dll_SetWindowPos
push 5
push dword [0x40bb90]
call sub.user32.dll_ShowWindow
push 5
push dword [0x40bb94]
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 [0x40bb80]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb40]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb7c]
call sub.user32.dll_ShowWindow
mov eax, dword [0x40bb48]
push 5
push eax
push str.Click_Finish_to_exit_this_installation.
push eax
call sub.user32.dll_SetWindowTextA
call sub.user32.dll_ShowWindow
push str.Finish
push dword [0x40bb54]
call sub.user32.dll_SetWindowTextA
push 0
push dword [0x40bb50]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb4c]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb74]
call sub.user32.dll_ShowWindow
push 0
push dword [0x40bb78]
call sub.user32.dll_ShowWindow
mov byte [0x40bc16], 6
push 0
push 0
push dword [0x40bb34]
call sub.user32.dll_InvalidateRect
leave
ret