Function at 0x403350
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Hide graphical window
Set file attributes
Terminate process

Disassembly:
sub esp, 0x74c
lea eax, [esp + 0x10c]
push ebx
push esi
push edi
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edi, [esp + 0x118]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x21c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x21c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x41f268
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x21c]
and ecx, 3
push eax
push str.Unzip_:_UNZIP_START____s
push 0x423bf0
rep movsb byte es:[edi], byte [esi]
call fcn.0040da30
push 0x423bf0
call fcn.00408aa0
add esp, 0x10
lea ecx, [esp + 0x21c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40345f
push str.Unzip_:_Important_Setup_File_Not_found_So_Quiting
push 0x423bf0
call fcn.0040da30
push 0x423bf0
call fcn.00408aa0
mov eax, dword [0x424104]
add esp, 0xc
test eax, eax
jne 0x403439
push 0
push str.Installation_Wizard
push str.Important_Setup_File_Not_found_So_Quiting.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x403453
push str.c:zvInstaller.ini
push str.Quit:No_Extracted_file
push str.Status
push str.Installer
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
call fcn.004090c0
push 0
call fcn.0040d8b0
push 2
lea edx, [esp + 0x220]
push 0
push edx
call fcn.0040d6f0
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [esp + 0xc], edi
je 0x4037e9
lea eax, [esp + 0x320]
push ebp
push eax
push 0xffffffffffffffff
push edi
call fcn.0040d760
add esp, 0xc
test eax, eax
jne 0x4037df
mov ebx, dword [esp + 0x324]
lea ecx, [esp + 0x18]
push ebx
push str.0____d
push ecx
call fcn.0040da30
mov edx, dword [0x4240e8]
add esp, 0xc
push 5
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [0x4240e8]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x18]
push eax
push 0
push 0xc
push ecx
call esi
mov edx, dword [0x4240d0]
push ebx
push 0
push 0x406
push edx
call esi
lea eax, [esp + 0x18]
push str.c:zvInstaller.ini
push eax
push str.Status
push str.Installer
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [esp + 0x324]
push ecx
push str.Unzip_:_item_count__d
push 0x423bf0
call fcn.0040da30
push 0x423bf0
call fcn.00408aa0
add esp, 0x10
xor ebp, ebp
test ebx, ebx
jle 0x4037df
mov edi, 0x42410c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x554]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x324]
push ecx
push ebp
push edi
call fcn.0040d760
push ebx
push ebp
lea edx, [esp + 0x2c]
push str._d____d
push edx
call fcn.0040da30
mov ecx, dword [0x4240e8]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0x1c
lea eax, [esp + 0x18]
push eax
push 0
push 0xc
push ecx
call esi
push ebx
push ebp
lea edx, [esp + 0x20]
push str.Installing:_d____d
push edx
call fcn.0040da30
add esp, 0x10
lea eax, [esp + 0x18]
push str.c:zvInstaller.ini
push eax
push str.Status
push str.Installer
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [0x4240d0]
push 0
push ebp
push 0x402
push ecx
call esi
test byte [esp + 0x42c], 0x10
je 0x40370a
lea edi, [esp + 0x328]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x11c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2f2f
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x120]
push ecx
call fcn.0040d840
add esp, 8
test eax, eax
je 0x403633
mov byte [eax], 0
lea edx, [esp + 0x11c]
push 0x2f2f
push edx
call fcn.0040d840
mov edx, eax
add esp, 8
test edx, edx
je 0x40367f
inc edx
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x554]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [edx - 1], 0
mov esi, dword [esp + 0x760]
lea ecx, [esp + 0x11c]
push ecx
push esi
lea edx, [esp + 0x660]
push 0x41eb2c
push edx
call fcn.0040da30
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add esp, 0x10
lea eax, [esp + 0x658]
push 0
push eax
call edi
lea ecx, [esp + 0x554]
push 0x41f194
push ecx
call fcn.0040db30
add esp, 8
test eax, eax
jne 0x4037d2
lea edx, [esp + 0x554]
lea eax, [esp + 0x11c]
push edx
push eax
push esi
lea ecx, [esp + 0x664]
push str._s_s_s
push ecx
call fcn.0040da30
add esp, 0x14
lea edx, [esp + 0x658]
push 0
push edx
call edi
jmp 0x4037d2
mov ecx, dword [esp + 0x760]
lea eax, [esp + 0x328]
push eax
push ecx
lea edx, [esp + 0x458]
push 0x41eb2c
push edx
call fcn.0040da30
add esp, 0x10
lea eax, [esp + 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
cmp eax, 1
jne 0x403750
lea ecx, [esp + 0x450]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 2
lea edx, [esp + 0x454]
push 0
push edx
push ebp
push edi
call fcn.0040d7a0
add esp, 0x14
cmp eax, 0x700
jne 0x4037c2
push str.Unzip_:_Important_file_May_be_corrupt_contact_to_Administrator
push 0x423bf0
call fcn.0040da30
push 0x423bf0
call fcn.00408aa0
mov eax, dword [0x424104]
add esp, 0xc
test eax, eax
jne 0x4037a8
push 0x10
push str.NP_Installation_Wizard
push str.Important_file_May_be_corrupt_contact_to_Administrator
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x4037c2
push str.c:zvInstaller.ini
push str.ERR:Extracted_file_corrupt
push str.Status
push str.Installer
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [esp + 0x450]
push 0x20
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
inc ebp
cmp ebp, ebx
jl 0x403537
mov edi, dword [esp + 0x10]
push edi
call fcn.0040d7f0
add esp, 4
pop ebp
push str.c:zvInstaller.ini
push str.Unzipped_Success
push str.Status
push str.Installer
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0x21c]
push ecx
push str.Unzip_:_UNZIP_SUCCESS_____s__done
push 0x423bf0
call fcn.0040da30
push 0x423bf0
call fcn.00408aa0
add esp, 0x10
pop edi
pop esi
pop ebx
add esp, 0x74c
ret