Function at 0x401e50
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Delete directory
Get common file path
Hide graphical window
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4209f2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x35d4
call fcn.00413db0
push esi
push edi
push str.Extracting_files.
call fcn.00403d90
add esp, 4
push str.Dialog:_Preparing_to_install...
call fcn.00403d90
add esp, 4
push 0xff
lea eax, [ebp - 0x864]
push eax
push 5
mov ecx, dword [0x429fac]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [ebp - 0x864]
push edx
push 0x3ed
mov eax, dword [0x429a84]
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 0x422aec
push 0x2711
mov ecx, dword [0x429a84]
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 5
push 0x3ef
mov edx, dword [0x429a84]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0x3f2
mov eax, dword [0x429a84]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 5
push 0x3f1
mov ecx, dword [0x429a84]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 5
push 0x3ea
mov edx, dword [0x429a84]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0x3eb
mov eax, dword [0x429a84]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0x3ee
mov ecx, dword [0x429a84]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 5
push 0x3f3
mov edx, dword [0x429a84]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 5
push 0x2711
mov eax, dword [0x429a84]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x105
lea ecx, [ebp - 0xaac]
push ecx
push 6
mov edx, dword [0x429fac]
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x4016a0
lea ecx, [ebp - 0x9a4]
call fcn.0040c6d0
mov dword [ebp - 4], 0
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x33f8], esp
push eax
call fcn.0040c96a
add esp, 4
mov dword [ebp - 0x35c0], eax
lea ecx, [ebp - 0x9a4]
push ecx
lea ecx, [ebp - 0x648]
call fcn.0040c85b
mov dword [ebp - 0x35c4], eax
mov byte [ebp - 4], 1
cmp dword [0x429fc8], 0
je 0x402061
push 0x422af0
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x33fc], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x33fc]
jmp 0x4035d4
lea edx, [ebp - 0x1cd4]
push edx
push 0x105
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
lea ecx, [ebp - 0x96c]
push ecx
call fcn.00413870
add esp, 8
push 0x429ea8
call fcn.00413970
add esp, 4
test eax, eax
jbe 0x4020c7
push 0x429ea8
lea edx, [ebp - 0x1cd4]
push edx
call fcn.00413870
add esp, 8
lea eax, [ebp - 0x1cd4]
push eax
push str.Using_working_directory_to_decompress_files:__s
call fcn.00403d90
add esp, 8
jmp 0x40220f
lea ecx, [ebp - 0x1cd4]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetTempPathA]
test eax, eax
jne 0x40220f
lea edx, [ebp - 0x1cd4]
push edx
push str.Using_TEMP_path_from_win32_subsystem:__s
call fcn.00403d90
add esp, 8
mov dword [ebp - 0x2f48], str.C:Temp
mov eax, dword [ebp - 0x2f48]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
test eax, eax
jne 0x4021e9
push 0
mov ecx, dword [ebp - 0x2f48]
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
test eax, eax
jne 0x402179
lea edx, [ebp - 0x1cd4]
push edx
call fcn.00401a60
add esp, 4
push str._FAILURE:_Unable_to_create_a_working_directory_
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3400], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3400]
jmp 0x4035d4
mov eax, dword [ebp - 0x2f48]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
test eax, eax
jne 0x4021e9
lea ecx, [ebp - 0x61c]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea edx, [ebp - 0x1cd4]
push edx
call fcn.00401a60
add esp, 4
push str._FAILURE:_Unable_to_access_the_working_directory_
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3404], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3404]
jmp 0x4035d4
lea eax, [ebp - 0x1cd4]
push eax
push 0x105
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
push 0x422bd8
lea ecx, [ebp - 0x1cd4]
push ecx
call fcn.00413880
add esp, 8
cmp dword [0x429fc8], 0
je 0x40225b
push 0x422bdc
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3408], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3408]
jmp 0x4035d4
lea edx, [ebp - 0x61c]
push edx
push 0x105
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
lea eax, [ebp - 0x61c]
push eax
push str.Extracting_to:__s
call fcn.00403d90
add esp, 8
lea ecx, [ebp - 0x1cd4]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
call fcn.004132c0
lea edx, [ebp - 0x1de4]
push edx
call fcn.00413287
add esp, 4
mov eax, dword [ebp - 0x1de4]
push eax
push str.I_ld
lea ecx, [ebp - 0x1bc4]
push ecx
call fcn.00412a94
add esp, 0xc
push 0
lea edx, [ebp - 0x1bc4]
push edx
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
test eax, eax
jne 0x402315
lea eax, [ebp - 0x1cd4]
push eax
call fcn.00401a60
add esp, 4
mov dword [ebp - 0x340c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x340c]
jmp 0x4035d4
lea ecx, [ebp - 0x2f50]
push ecx
push 0
push 0
lea edx, [ebp - 0x1bc4]
push edx
call dword [sym.imp.KERNEL32.DLL_GetFullPathNameA]
mov dword [ebp - 0x2f4c], eax
mov eax, dword [ebp - 0x2f4c]
add eax, 1
push eax
call fcn.00413282
add esp, 4
mov dword [ebp - 0x3410], eax
mov ecx, dword [ebp - 0x3410]
mov dword [0x42a0dc], ecx
mov edx, dword [0x42a0dc]
mov byte [edx], 0
lea eax, [ebp - 0x2f50]
push eax
mov ecx, dword [0x42a0dc]
push ecx
mov edx, dword [ebp - 0x2f4c]
add edx, 1
push edx
lea eax, [ebp - 0x1bc4]
push eax
call dword [sym.imp.KERNEL32.DLL_GetFullPathNameA]
lea ecx, [ebp - 0x1bc4]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
test eax, eax
jne 0x4023f5
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1bc4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
lea ecx, [ebp - 0x1cd4]
push ecx
call fcn.00401a60
add esp, 4
mov dword [ebp - 0x3414], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3414]
jmp 0x4035d4
lea edx, [ebp - 0x1cd4]
push edx
push 0x105
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
push 0x422c10
lea eax, [ebp - 0x1cd4]
push eax
call fcn.00413880
add esp, 8
lea ecx, [ebp - 0x1cd4]
push ecx
push 0x429c98
call fcn.00413870
add esp, 8
lea edx, [ebp - 0x61c]
push edx
push 0x429b90
call fcn.00413870
add esp, 8
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
cmp dword [0x429fc8], 0
je 0x4024a9
lea ecx, [ebp - 0x1cd4]
push ecx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0x422c14
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3418], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3418]
jmp 0x4035d4
push 0x105
lea edx, [ebp - 0x1bc4]
push edx
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
lea eax, [ebp - 0xbb4]
push eax
lea ecx, [ebp - 0x10c]
push ecx
lea edx, [ebp - 0x1ddc]
push edx
lea eax, [ebp - 0x1cd8]
push eax
lea ecx, [ebp - 0x1bc4]
push ecx
call fcn.0041313a
add esp, 0x14
movsx edx, byte [ebp - 0x10c]
cmp edx, 0x40
jne 0x402500
mov dword [0x429a80], 1
jmp 0x40250a
mov dword [0x429a80], 0
push 0x422c2c
lea eax, [ebp - 0x1bc4]
push eax
call fcn.00413127
add esp, 8
mov dword [ebp - 0x650], eax
cmp dword [0x429fc8], 0
je 0x40258a
lea ecx, [ebp - 0x61c]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea edx, [ebp - 0x1cd4]
push edx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0x422c30
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x341c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x341c]
jmp 0x4035d4
cmp dword [ebp - 0x650], 0
jne 0x4025fa
push str._FAILURE:_Unable_to_extract_the_compressed_file
call fcn.00403d90
add esp, 4
push 9
call fcn.00401870
add esp, 4
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea ecx, [ebp - 0x1cd4]
push ecx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
mov dword [ebp - 0x3420], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3420]
jmp 0x4035d4
call fcn.00403f60
mov dword [ebp - 0x1bc8], eax
push 0
mov edx, dword [ebp - 0x1bc8]
push edx
mov eax, dword [ebp - 0x650]
push eax
call fcn.0041306f
add esp, 0xc
mov ecx, dword [ebp - 0x650]
push ecx
push 1
push 4
lea edx, [ebp - 0x970]
push edx
call fcn.00412f86
add esp, 0x10
mov dword [ebp - 0x64c], eax
cmp dword [ebp - 0x970], 0x4e3e5b
jne 0x402652
cmp dword [ebp - 0x64c], 1
jae 0x4026c8
push str._FAILURE:_The_magic_number_did_not_match
call fcn.00403d90
add esp, 4
push 0xb
call fcn.00401870
add esp, 4
mov eax, dword [ebp - 0x650]
push eax
call fcn.00412f30
add esp, 4
lea ecx, [ebp - 0x61c]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea edx, [ebp - 0x1cd4]
push edx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
mov dword [ebp - 0x3424], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3424]
jmp 0x4035d4
mov eax, dword [ebp - 0x650]
push eax
push 0x400
push 1
lea ecx, [ebp - 0x1bc4]
push ecx
call fcn.00412f86
add esp, 0x10
mov dword [ebp - 0x64c], eax
lea edx, [ebp - 0x1bc4]
push edx
lea eax, [ebp - 0x514]
push eax
call fcn.00413870
add esp, 8
cmp dword [0x429fc8], 0
je 0x402776
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.00412f30
add esp, 4
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0x422ca8
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3428], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3428]
jmp 0x4035d4
cmp dword [ebp - 0x64c], 4
jae 0x4027f5
push str._FAILURE:_There_is_no_EXE_name_buffer_to_be_found.
call fcn.00403d90
add esp, 4
push 0xc
call fcn.00401870
add esp, 4
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.00412f30
add esp, 4
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
mov dword [ebp - 0x342c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x342c]
jmp 0x4035d4
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.00412dd7
add esp, 4
mov dword [0x429d9c], eax
push 2
push 0
mov edx, dword [ebp - 0x650]
push edx
call fcn.0041306f
add esp, 0xc
mov eax, dword [ebp - 0x650]
push eax
call fcn.00412dd7
add esp, 4
sub eax, dword [0x429d9c]
mov dword [ebp - 0x974], eax
push 0
mov ecx, dword [0x429d9c]
push ecx
mov edx, dword [ebp - 0x650]
push edx
call fcn.0041306f
add esp, 0xc
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea ecx, [ebp - 0x1ef4]
push ecx
call fcn.00401ca0
add esp, 4
test eax, eax
jne 0x4028d8
push 0xd
call fcn.00401870
add esp, 4
mov edx, dword [ebp - 0x650]
push edx
call fcn.00412f30
add esp, 4
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea ecx, [ebp - 0x1cd4]
push ecx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
mov dword [ebp - 0x3430], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3430]
jmp 0x4035d4
push str.Retrieved_free_disk_space...
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x760], 0
mov edx, dword [ebp - 0x974]
mov dword [ebp - 0x764], edx
cmp dword [0x429fc8], 0
je 0x402970
mov eax, dword [ebp - 0x650]
push eax
call fcn.00412f30
add esp, 4
lea ecx, [ebp - 0x61c]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea edx, [ebp - 0x1cd4]
push edx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0x422d18
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3434], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3434]
jmp 0x4035d4
push str.Comparing_free_disk_space...
call fcn.00403d90
add esp, 4
push 0
push 3
mov eax, dword [ebp - 0x760]
push eax
mov ecx, dword [ebp - 0x764]
push ecx
call fcn.00412c00
mov dword [ebp - 0x35cc], eax
mov dword [ebp - 0x35c8], edx
mov edx, dword [ebp - 0x35c8]
cmp edx, dword [ebp - 0x1ef0]
jb 0x402a6a
ja 0x4029c6
mov eax, dword [ebp - 0x35cc]
cmp eax, dword [ebp - 0x1ef4]
jbe 0x402a6a
push 0xe
call fcn.00401870
add esp, 4
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.00412f30
add esp, 4
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0
push 0x400
mov ecx, dword [ebp - 0x1ef0]
push ecx
mov edx, dword [ebp - 0x1ef4]
push edx
call fcn.00413ee0
push eax
mov eax, dword [ebp - 0x974]
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
push str._FAILURE:_Not_enough_free_disk_space_available:_Compressed_file_size__ld_KB__available_is__ld_KB
call fcn.00403d90
add esp, 0xc
mov dword [ebp - 0x3438], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3438]
jmp 0x4035d4
mov eax, dword [ebp - 0x650]
push eax
call fcn.00412f30
add esp, 4
call fcn.0040a1e0
push str.ExtractFile____free_disk_space_compared_ok
call fcn.0040a290
add esp, 4
call fcn.0040a1e0
push str.ExtractFile____extracting_files_from_zip
call fcn.0040a290
add esp, 4
mov byte [ebp - 0x1eec], 0
push 0x104
lea ecx, [ebp - 0x1eec]
push ecx
mov edx, dword [0x429fac]
push edx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
mov dword [ebp - 0x2f54], eax
cmp dword [ebp - 0x2f54], 0
jne 0x402ad8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x2f54], eax
call fcn.0040a1e0
push str.ExtractFile____instantiating_archive
call fcn.0040a290
add esp, 4
lea eax, [ebp - 0x1eec]
push eax
lea ecx, [ebp - 0x2f44]
call fcn.0040c672
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x648]
push ecx
lea ecx, [ebp - 0x2f44]
call fcn.0040bbfd
call fcn.0040a1e0
lea edx, [ebp - 0x1cd4]
push edx
push 0x422e34
call fcn.0040a290
add esp, 8
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
call fcn.0040a1e0
push str.ExtractFile____uncompressing_data
call fcn.0040a290
add esp, 4
cmp dword [0x429fc8], 0
je 0x402bbf
lea ecx, [ebp - 0x61c]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea edx, [ebp - 0x1cd4]
push edx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0x422e88
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x343c], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x343c]
jmp 0x4035d4
lea eax, [ebp - 0x648]
push eax
lea ecx, [ebp - 0x2f44]
call fcn.0040b6d7
mov dword [ebp - 0xab0], eax
call fcn.0040a1e0
mov ecx, dword [ebp - 0xab0]
push ecx
push str.ExtractFile____Archive.Extract_returned:__d
call fcn.0040a290
add esp, 8
cmp dword [ebp - 0xab0], 0
je 0x402c08
mov edx, dword [ebp - 0xab0]
push edx
call fcn.00401350
add esp, 4
call fcn.0040a1e0
push str.ExtractFile____checking_for_ExitInEffect__1_
call fcn.0040a290
add esp, 4
cmp dword [0x429fc8], 0
je 0x402c8f
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea ecx, [ebp - 0x1cd4]
push ecx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0x422efc
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3440], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3440]
jmp 0x4035d4
cmp dword [ebp - 0xab0], 0
jge 0x402d1c
push 0x429fd0
call fcn.00401b80
add esp, 4
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
mov ecx, dword [ebp - 0xab0]
push ecx
push str._FAILURE:_Unable_to_unzip_file:_Error__d
call fcn.00403d90
add esp, 8
mov dword [ebp - 0x3444], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3444]
jmp 0x4035d4
call fcn.0040a1e0
push str.ExtractFile____checking_for_ExitInEffect__2_
call fcn.0040a290
add esp, 4
cmp dword [0x429fc8], 0
je 0x402da3
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push str.User_requested_ABORT
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3448], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3448]
jmp 0x4035d4
call fcn.0040a1e0
push str.ExtractFile____creating_sea_loc_file
call fcn.0040a290
add esp, 4
lea ecx, [ebp - 0x1cd4]
push ecx
lea edx, [ebp - 0x75c]
push edx
call fcn.00413870
add esp, 8
push str.sea_loc
lea eax, [ebp - 0x75c]
push eax
call fcn.00413880
add esp, 8
push 0x422fb8
lea ecx, [ebp - 0x75c]
push ecx
call fcn.00413127
add esp, 8
mov dword [ebp - 0x1de0], eax
cmp dword [ebp - 0x1de0], 0
jne 0x402e9c
push str._FAILURE:_Unable_to_create_the_sea_loc_file:_asking_to_find_a_new_location
call fcn.00403d90
add esp, 4
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0xff
lea ecx, [ebp - 0x864]
push ecx
push 0x15
mov edx, dword [0x429fac]
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x864]
push eax
call fcn.00401b80
add esp, 4
mov dword [ebp - 0x344c], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x344c]
jmp 0x4035d4
push 0x1000
lea ecx, [ebp - 0x2ef4]
push ecx
mov edx, dword [0x429fac]
push edx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
call fcn.0040a1e0
lea eax, [ebp - 0x2ef4]
push eax
push str.ExtractFile____module_file_name:__s
call fcn.0040a290
add esp, 8
lea ecx, [ebp - 0x2ef4]
push ecx
lea edx, [ebp - 0x1bc4]
push edx
call fcn.00413870
add esp, 8
push 0x423034
lea eax, [ebp - 0x1bc4]
push eax
call fcn.00413880
add esp, 8
mov ecx, dword [ebp - 0x1de0]
push ecx
lea edx, [ebp - 0x1bc4]
push edx
call fcn.00413970
add esp, 4
push eax
push 1
lea eax, [ebp - 0x1bc4]
push eax
call fcn.00412cd0
add esp, 0x10
mov dword [ebp - 0xbb8], eax
call fcn.0040a1e0
mov ecx, dword [ebp - 0xbb8]
push ecx
push str.ExtractFile____wrote__l_bytes
call fcn.0040a290
add esp, 8
lea edx, [ebp - 0x1bc4]
push edx
call fcn.00413970
add esp, 4
cmp dword [ebp - 0xbb8], eax
je 0x402fff
mov eax, dword [ebp - 0x1de0]
push eax
call fcn.00412f30
add esp, 4
lea ecx, [ebp - 0x61c]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea edx, [ebp - 0x1cd4]
push edx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 0xff
lea eax, [ebp - 0x864]
push eax
push 0x15
mov ecx, dword [0x429fac]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [ebp - 0x864]
push edx
call fcn.00401b80
add esp, 4
push str._FAILURE:_We_ran_out_of_space_while_creating_the_compressed_file.
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3450], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3450]
jmp 0x4035d4
mov eax, dword [ebp - 0x1de0]
push eax
call fcn.00412f30
add esp, 4
call fcn.0040a1e0
lea ecx, [ebp - 0x514]
push ecx
push str.ExtractFile____trying_to_execute__s
call fcn.0040a290
add esp, 8
lea edx, [ebp - 0x514]
cmp edx, 0x4230c4
je 0x403587
call fcn.0040a1e0
lea eax, [ebp - 0x1cd4]
push eax
push str.ExtractFile____setting_current_directory:__s
call fcn.0040a290
add esp, 8
lea ecx, [ebp - 0x1cd4]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
call fcn.0040a1e0
push str.ExtractFile____zeroing_memory
call fcn.0040a290
add esp, 4
push 0x10
push 0
push 0x429fb4
call fcn.00412c70
add esp, 0xc
push 0x44
push 0
lea edx, [ebp - 0x30bc]
push edx
call fcn.00412c70
add esp, 0xc
lea eax, [ebp - 0x32e4]
push eax
lea ecx, [ebp - 0x3054]
push ecx
lea edx, [ebp - 0x33ec]
push edx
lea eax, [ebp - 0x32e8]
push eax
lea ecx, [ebp - 0x514]
push ecx
call fcn.0041313a
add esp, 0x14
lea edx, [ebp - 0x32e8]
push edx
lea eax, [ebp - 0x31e4]
push eax
call fcn.00413870
add esp, 8
lea ecx, [ebp - 0x33ec]
push ecx
lea edx, [ebp - 0x31e4]
push edx
call fcn.00413880
add esp, 8
lea eax, [ebp - 0x31e4]
push eax
call fcn.00413970
add esp, 4
cmp eax, 1
jae 0x403116
lea ecx, [ebp - 0x1cd4]
push ecx
lea edx, [ebp - 0x31e4]
push edx
call fcn.00413870
add esp, 8
call dword [sym.imp.KERNEL32.DLL_GetCommandLineA]
push eax
lea ecx, [ebp - 0x3074]
call fcn.00403fd0
mov byte [ebp - 4], 3
call fcn.0040a1e0
sub esp, 0x1c
mov ecx, 7
lea esi, [ebp - 0x3074]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push str.ExtractFile____origCommandLine:__s
call fcn.0040a290
add esp, 0x20
mov byte [ebp - 0x32e9], 0x20
mov dword [ebp - 0x33f0], 0
mov dword [ebp - 0x34a8], 0
cmp dword [ebp - 0x305c], 0x10
jb 0x403182
mov eax, dword [ebp - 0x3070]
mov dword [ebp - 0x35d0], eax
jmp 0x40318e
lea ecx, [ebp - 0x3070]
mov dword [ebp - 0x35d0], ecx
mov edx, dword [ebp - 0x35d0]
add edx, dword [ebp - 0x34a8]
movsx eax, byte [edx]
cmp eax, 0x22
jne 0x4031b3
mov byte [ebp - 0x32e9], 0x22
mov dword [ebp - 0x33f0], 1
push 0
push 0
lea ecx, [ebp - 0x30d8]
call fcn.00404500
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x514]
push ecx
call fcn.00413970
add esp, 4
push eax
lea edx, [ebp - 0x514]
push edx
lea ecx, [ebp - 0x30d8]
call fcn.004041b0
cmp dword [ebp - 0x30c0], 0x10
jb 0x4031ff
mov eax, dword [ebp - 0x30d4]
mov dword [ebp - 0x34d4], eax
jmp 0x40320b
lea ecx, [ebp - 0x30d4]
mov dword [ebp - 0x34d4], ecx
mov edx, dword [ebp - 0x34d4]
mov dword [ebp - 0x33f4], edx
jmp 0x403240
mov eax, dword [ebp - 0x33f4]
mov dword [ebp - 0x34d8], eax
mov ecx, dword [ebp - 0x33f4]
add ecx, 1
mov dword [ebp - 0x33f4], ecx
mov edx, dword [ebp - 0x34d8]
mov dword [ebp - 0x3454], edx
cmp dword [ebp - 0x30c0], 0x10
jb 0x403257
mov eax, dword [ebp - 0x30d4]
mov dword [ebp - 0x35d4], eax
jmp 0x403263
lea ecx, [ebp - 0x30d4]
mov dword [ebp - 0x35d4], ecx
mov edx, dword [ebp - 0x35d4]
add edx, dword [ebp - 0x30c4]
mov dword [ebp - 0x34dc], edx
mov eax, dword [ebp - 0x34dc]
mov dword [ebp - 0x3458], eax
mov ecx, dword [ebp - 0x33f4]
sub ecx, dword [ebp - 0x3458]
neg ecx
sbb ecx, ecx
inc ecx
movzx edx, cl
neg edx
sbb edx, edx
inc edx
movzx eax, dl
test eax, eax
je 0x4032bd
mov ecx, dword [ebp - 0x33f4]
movsx edx, byte [ecx]
cmp edx, 0x2f
jne 0x4032b8
mov eax, dword [ebp - 0x33f4]
mov byte [eax], 0x5c
jmp 0x403219
mov cl, byte [ebp - 0x32e9]
mov byte [ebp - 0x34e9], cl
push 1
mov edx, dword [ebp - 0x33f0]
push edx
lea eax, [ebp - 0x34e9]
push eax
lea ecx, [ebp - 0x3074]
call fcn.004043f0
cmp eax, dword [0x423250]
je 0x40331e
mov cl, byte [ebp - 0x32e9]
mov byte [ebp - 0x34f9], cl
push 1
mov edx, dword [ebp - 0x33f0]
push edx
lea eax, [ebp - 0x34f9]
push eax
lea ecx, [ebp - 0x3074]
call fcn.004043f0
add eax, 1
mov dword [ebp - 0x35d8], eax
jmp 0x403336
mov ecx, dword [ebp - 0x3500]
mov dword [ebp - 0x35d8], ecx
mov edx, dword [ebp - 0x3060]
mov dword [ebp - 0x35d8], edx
mov eax, dword [0x423250]
push eax
mov ecx, dword [ebp - 0x35d8]
push ecx
lea edx, [ebp - 0x3474]
push edx
lea ecx, [ebp - 0x3074]
call fcn.00404030
mov dword [ebp - 0x35dc], eax
mov eax, dword [ebp - 0x35dc]
mov dword [ebp - 0x3548], eax
mov byte [ebp - 4], 5
push 0x42313c
call fcn.00413970
add esp, 4
push eax
push 0x42313c
lea ecx, [ebp - 0x30d8]
call fcn.004041b0
mov dword [ebp - 0x354c], eax
mov ecx, dword [0x423250]
push ecx
push 0
mov edx, dword [ebp - 0x3548]
push edx
mov ecx, dword [ebp - 0x354c]
call fcn.00404080
mov byte [ebp - 4], 4
push 0
push 1
lea ecx, [ebp - 0x3474]
call fcn.00404500
cmp dword [ebp - 0x30c0], 0x10
jb 0x4033d4
mov eax, dword [ebp - 0x30d4]
mov dword [ebp - 0x35e0], eax
jmp 0x4033e0
lea ecx, [ebp - 0x30d4]
mov dword [ebp - 0x35e0], ecx
mov edx, dword [ebp - 0x35e0]
push edx
call fcn.00412c39
add esp, 4
mov dword [ebp - 0x3058], eax
call fcn.0040a1e0
push str.ExtractFile____creating_process
call fcn.0040a290
add esp, 4
push 0x429fb4
lea eax, [ebp - 0x30bc]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [ebp - 0x3058]
push ecx
push 0
call dword [sym.imp.KERNEL32.DLL_CreateProcessA]
test eax, eax
jne 0x4034ed
push 0x12
call fcn.00401870
add esp, 4
lea edx, [ebp - 0x61c]
push edx
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
lea eax, [ebp - 0x1cd4]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push str._FAILURE:_Unable_to_execute_the_EXE_program.
call fcn.00403d90
add esp, 4
mov ecx, dword [ebp - 0x3058]
mov dword [ebp - 0x3478], ecx
mov edx, dword [ebp - 0x3478]
push edx
call fcn.00412c34
add esp, 4
mov dword [ebp - 0x347c], 0
mov byte [ebp - 4], 3
push 0
push 1
lea ecx, [ebp - 0x30d8]
call fcn.00404500
mov byte [ebp - 4], 2
push 0
push 1
lea ecx, [ebp - 0x3074]
call fcn.00404500
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x347c]
jmp 0x4035d4
mov dword [0x42a0d8], 1
push str.Success._The_extracted_file_execution_has_begun.
call fcn.00403d90
add esp, 4
mov eax, dword [ebp - 0x3058]
mov dword [ebp - 0x3480], eax
mov ecx, dword [ebp - 0x3480]
push ecx
call fcn.00412c34
add esp, 4
mov dword [ebp - 0x3484], 1
mov byte [ebp - 4], 3
push 0
push 1
lea ecx, [ebp - 0x30d8]
call fcn.00404500
mov byte [ebp - 4], 2
push 0
push 1
lea ecx, [ebp - 0x3074]
call fcn.00404500
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3484]
jmp 0x4035d4
push str.Success._The_extraction_is_complete.
call fcn.00403d90
add esp, 4
mov dword [ebp - 0x3488], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f44]
call fcn.0040b98a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.0040c8e7
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.0040c6ed
mov eax, dword [ebp - 0x3488]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret