Function at 0x409c10
Capabilities:
Accept command line arguments
Check if file exists
Copy file
Create directory
Query environment variable
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48394d
mov eax, dword fs:[0]
push eax
sub esp, 0xd90
mov eax, dword [0x4ab4ec]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0xcd4]
call fcn.00433a10
xor ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebp - 0xce8]
push eax
mov dword [ebp - 0xce8], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push 0x4a9438
lea ecx, [ebp - 0x6b4]
push str._TEMP__
push ecx
mov dword [ebp - 0xcdc], eax
call fcn.00406340
add esp, 0xc
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x6b0]
mov edi, 8
cmp dword [ebp - 0x69c], edi
jae 0x409ca4
lea eax, [ebp - 0x6b0]
push 0x104
lea edx, [ebp - 0x420]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push ebx
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [ebp - 0x420]
push ecx
call esi
test eax, eax
jne 0x409ced
push 0x3ea
push ebx
call fcn.00423790
add esp, 8
push 2
call fcn.00408380
cmp dword [ebp - 0xce8], 1
mov dword [ebp - 0xce0], ebx
jle 0x409f1e
mov edx, dword [ebp - 0xcdc]
mov eax, dword [edx + 4]
push 0x48e9b8
push eax
call fcn.0045783d
add esp, 8
test eax, eax
jne 0x409f1e
cmp dword [ebp - 0xce8], 1
jg 0x409d55
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xce0], esp
push str.Missing_target_path_for_administrative_install.
call fcn.00405d80
mov byte [ebp - 4], 2
push ebx
mov byte [ebp - 4], 1
call fcn.00423860
add esp, 0x20
push 1
call fcn.00408380
mov ecx, dword [ebp - 0xcdc]
mov edx, dword [ecx + 8]
push edx
lea ecx, [ebp - 0x644]
call fcn.00405d80
mov byte [ebp - 4], 3
push str.InstallFiles
lea ecx, [ebp - 0x644]
call fcn.004055d0
push str.HEADER
lea ecx, [ebp - 0x67c]
call fcn.00405d80
mov byte [ebp - 4], 4
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0xd20]
push str.This_is_an_administartive_install__extracting_installation_files_to
push ecx
call fcn.00406340
mov byte [ebp - 4], 5
lea edx, [ebp - 0x67c]
push edx
push eax
call fcn.0041d4f0
add esp, 0x14
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xd20]
call fcn.00403ac0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x67c]
call fcn.00403ac0
mov eax, dword [ebp - 0x640]
cmp dword [ebp - 0x62c], edi
jae 0x409df0
lea eax, [ebp - 0x640]
push eax
call esi
test eax, eax
jne 0x409e14
mov eax, dword [ebp - 0x640]
cmp dword [ebp - 0x62c], edi
jae 0x409e0b
lea eax, [ebp - 0x640]
push ebx
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov eax, dword [ebp - 0x640]
cmp dword [ebp - 0x62c], edi
jae 0x409e28
lea eax, [ebp - 0x640]
push eax
call esi
test eax, eax
jne 0x409eee
push str.HEADER
lea ecx, [ebp - 0x67c]
call fcn.00405d80
mov byte [ebp - 4], 6
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0xd20]
push 0x48e878
push ecx
call fcn.00406340
mov byte [ebp - 4], 7
lea edx, [ebp - 0x67c]
push edx
push eax
call fcn.0041d4f0
add esp, 0x14
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd20]
call fcn.00403ac0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x67c]
call fcn.00403ac0
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0x67c]
push 0x48e878
push ecx
call fcn.00406340
mov byte [ebp - 4], 8
sub esp, 0x10
mov edx, esp
mov dword [ebp - 0xce0], esp
push 0x48e874
push eax
push edx
call fcn.004059f0
add esp, 0xc
mov byte [ebp - 4], 9
push ebx
mov byte [ebp - 4], 8
call fcn.00423860
add esp, 0x20
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x67c]
call fcn.00403ac0
push 1
call fcn.00408380
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0xb38]
mov dword [ebp - 0xce0], 1
call fcn.00404f40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x644]
call fcn.00403ac0
jmp 0x409f49
lea eax, [ebp - 0x420]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x409f27
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x420]
push ecx
lea ecx, [ebp - 0xb38]
call fcn.00405130
mov edx, dword [0x48e85c]
mov eax, dword [str.stall.log]
mov ecx, dword [0x48e864]
mov dword [ebp - 0x218], edx
mov edx, dword [0x48e868]
push 0x1f0
mov dword [ebp - 0x20c], edx
mov dword [ebp - 0x214], eax
mov eax, dword [0x48e86c]
mov dword [ebp - 0x210], ecx
mov ecx, dword [0x48e870]
lea edx, [ebp - 0x200]
push ebx
push edx
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x204], ecx
call fcn.004578d0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x640], ax
mov esi, 7
lea eax, [ebp - 0x420]
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x630], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x409fc7
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x420]
push ecx
lea ecx, [ebp - 0x644]
call fcn.00405130
mov byte [ebp - 4], 0xa
push 0x48e858
lea edx, [ebp - 0x644]
push edx
lea eax, [ebp - 0xd04]
push eax
call fcn.004059f0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x218]
push ecx
push eax
lea edx, [ebp - 0x660]
push edx
call fcn.004059f0
mov byte [ebp - 4], 0xc
push eax
call fcn.0041bfb0
add esp, 0x1c
test al, al
sete byte [ebp - 0xcd5]
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x648], edi
jb 0x40a04e
mov eax, dword [ebp - 0x65c]
push eax
call fcn.00456b63
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x64c], ebx
mov word [ebp - 0x65c], cx
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0xcec], edi
jb 0x40a07e
mov edx, dword [ebp - 0xd00]
push edx
call fcn.00456b63
add esp, 4
xor eax, eax
mov dword [ebp - 0xcec], esi
mov dword [ebp - 0xcf0], ebx
mov word [ebp - 0xd00], ax
mov byte [ebp - 4], 1
cmp dword [ebp - 0x62c], edi
jb 0x40a0ae
mov ecx, dword [ebp - 0x640]
push ecx
call fcn.00456b63
add esp, 4
xor edx, edx
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x630], ebx
mov word [ebp - 0x640], dx
cmp byte [ebp - 0xcd5], bl
je 0x40a0e0
push 0x3eb
push ebx
call fcn.00423790
add esp, 8
push 2
call fcn.00408380
push 0x48e818
lea ecx, [ebp - 0x660]
call fcn.00405d80
mov byte [ebp - 4], 0xd
xor eax, eax
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x630], ebx
mov word [ebp - 0x640], ax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x644]
push ecx
lea edx, [ebp - 0x660]
push edx
call fcn.0041d4f0
add esp, 8
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x62c], edi
jb 0x40a13e
mov eax, dword [ebp - 0x640]
push eax
call fcn.00456b63
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x630], ebx
mov word [ebp - 0x640], cx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x648], edi
jb 0x40a16e
mov edx, dword [ebp - 0x65c]
push edx
call fcn.00456b63
add esp, 4
mov ecx, dword [ebp - 0xcdc]
mov edx, dword [ebp - 0xce8]
push ebx
push 1
push ecx
xor eax, eax
push edx
lea ecx, [ebp - 0xd9c]
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x64c], ebx
mov word [ebp - 0x65c], ax
call fcn.00427420
mov byte [ebp - 4], 0xf
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xcdc], esp
push 0x48e814
call fcn.00405d80
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xd9c]
call fcn.00425720
mov byte [ebp - 0xcd5], al
xor eax, eax
mov dword [ebp - 0x680], esi
mov dword [ebp - 0x684], ebx
mov word [ebp - 0x694], ax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x698]
push ecx
call fcn.00433240
add esp, 4
push str.HEADER
lea ecx, [ebp - 0x660]
call fcn.00405d80
mov byte [ebp - 4], 0x12
lea edx, [ebp - 0x698]
push edx
lea eax, [ebp - 0xd04]
push 0x48e80c
push eax
call fcn.00406340
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x660]
push ecx
push eax
call fcn.0041d4f0
add esp, 0x14
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0xcec], edi
jb 0x40a254
mov edx, dword [ebp - 0xd00]
push edx
call fcn.00456b63
add esp, 4
xor eax, eax
mov dword [ebp - 0xcec], esi
mov dword [ebp - 0xcf0], ebx
mov word [ebp - 0xd00], ax
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x648], edi
jb 0x40a284
mov ecx, dword [ebp - 0x65c]
push ecx
call fcn.00456b63
add esp, 4
xor edx, edx
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x64c], ebx
mov word [ebp - 0x65c], dx
call fcn.00420740
mov eax, dword [0x4a9458]
cmp dword [0x4a946c], edi
jae 0x40a2b0
mov eax, 0x4a9458
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x4ad0e0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x4ad0e0], ebx
je 0x40a2e9
cmp eax, 0xb7
jne 0x40a2e9
push 0x3e9
push ebx
call fcn.00423680
add esp, 8
push 2
call fcn.00408380
push 0x104
lea eax, [ebp - 0x628]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x628]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x40a305
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x628]
push ecx
lea ecx, [ebp - 0xbfc]
call fcn.00405130
lea edx, [ebp - 0xbc4]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xcdc], esp
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0xbfc]
xor eax, eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push edx
mov word [ecx + 4], ax
call fcn.00404f40
mov byte [ebp - 4], 0x14
mov byte [ebp - 4], 0x11
call fcn.004204b0
mov eax, dword [ebp - 0xbc0]
add esp, 0x20
cmp dword [ebp - 0xbac], edi
jae 0x40a378
lea eax, [ebp - 0xbc0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.MAIN
lea ecx, [ebp - 0x660]
call fcn.00405d80
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0xbc4]
push eax
lea ecx, [ebp - 0xd04]
push str.Installation_Directory:
push ecx
call fcn.00406340
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x660]
push edx
push eax
call fcn.0041d4f0
add esp, 0x14
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0xcec], edi
jb 0x40a3da
mov eax, dword [ebp - 0xd00]
push eax
call fcn.00456b63
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xcec], esi
mov dword [ebp - 0xcf0], ebx
mov word [ebp - 0xd00], cx
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x648], edi
jb 0x40a40a
mov edx, dword [ebp - 0x65c]
push edx
call fcn.00456b63
add esp, 4
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xcdc], esp
xor eax, eax
push 0xffffffffffffffff
mov word [ebp - 0x65c], ax
push ebx
lea eax, [ebp - 0xbfc]
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x64c], ebx
mov word [ecx + 4], dx
call fcn.00404f40
mov byte [ebp - 4], 0x17
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x768]
call fcn.004342d0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x6dc]
push ecx
lea edx, [ebp - 0x768]
push edx
call fcn.00432c90
xor eax, eax
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x630], ebx
mov word [ebp - 0x640], ax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x6c0]
push ecx
lea edx, [ebp - 0x67c]
push edx
call fcn.004081e0
mov edi, eax
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xbfc]
push eax
lea ecx, [ebp - 0xd20]
push str.Package_file
push ecx
call fcn.00406340
mov byte [ebp - 4], 0x1b
push str.__Size
push eax
lea edx, [ebp - 0xd3c]
push edx
call fcn.004059f0
mov byte [ebp - 4], 0x1c
push edi
push eax
lea eax, [ebp - 0xd58]
push eax
call fcn.00406120
mov byte [ebp - 4], 0x1d
push 0x48e784
push eax
lea ecx, [ebp - 0xd74]
push ecx
call fcn.004059f0
add esp, 0x40
mov byte [ebp - 4], 0x1e
lea edx, [ebp - 0x6dc]
push edx
push eax
lea eax, [ebp - 0x660]
push eax
call fcn.00406120
mov byte [ebp - 4], 0x1f
push 0x48e780
push eax
lea ecx, [ebp - 0xd04]
push ecx
call fcn.004059f0
mov byte [ebp - 4], 0x20
lea edx, [ebp - 0x644]
push edx
push eax
call fcn.0041d4f0
add esp, 0x20
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0xcec], 8
jb 0x40a559
mov eax, dword [ebp - 0xd00]
push eax
call fcn.00456b63
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xcec], esi
mov dword [ebp - 0xcf0], ebx
mov word [ebp - 0xd00], cx
mov byte [ebp - 4], 0x1e
mov edi, 8
cmp dword [ebp - 0x648], edi
jb 0x40a58e
mov edx, dword [ebp - 0x65c]
push edx
call fcn.00456b63
add esp, 4
xor eax, eax
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x64c], ebx
mov word [ebp - 0x65c], ax
mov byte [ebp - 4], 0x1d
cmp dword [ebp - 0xd5c], edi
jb 0x40a5be
mov ecx, dword [ebp - 0xd70]
push ecx
call fcn.00456b63
add esp, 4
xor edx, edx
mov dword [ebp - 0xd5c], esi
mov dword [ebp - 0xd60], ebx
mov word [ebp - 0xd70], dx
mov byte [ebp - 4], 0x1c
cmp dword [ebp - 0xd40], edi
jb 0x40a5ee
mov eax, dword [ebp - 0xd54]
push eax
call fcn.00456b63
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xd40], esi
mov dword [ebp - 0xd44], ebx
mov word [ebp - 0xd54], cx
mov byte [ebp - 4], 0x1b
cmp dword [ebp - 0xd24], edi
jb 0x40a61e
mov edx, dword [ebp - 0xd38]
push edx
call fcn.00456b63
add esp, 4
xor eax, eax
mov dword [ebp - 0xd24], esi
mov dword [ebp - 0xd28], ebx
mov word [ebp - 0xd38], ax
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0xd08], edi
jb 0x40a64e
mov ecx, dword [ebp - 0xd1c]
push ecx
call fcn.00456b63
add esp, 4
xor edx, edx
mov dword [ebp - 0xd08], esi
mov dword [ebp - 0xd0c], ebx
mov word [ebp - 0xd1c], dx
mov byte [ebp - 4], 0x19
cmp dword [ebp - 0x664], edi
jb 0x40a67e
mov eax, dword [ebp - 0x678]
push eax
call fcn.00456b63
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x664], esi
mov dword [ebp - 0x668], ebx
mov word [ebp - 0x678], cx
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x62c], edi
jb 0x40a6ae
mov edx, dword [ebp - 0x640]
push edx
call fcn.00456b63
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xcdc], esp
xor eax, eax
push 0xffffffffffffffff
mov word [ebp - 0x640], ax
push ebx
lea eax, [ebp - 0xbfc]
xor edx, edx
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x630], ebx
mov word [ecx + 4], dx
call fcn.00404f40
mov byte [ebp - 4], 0x21
mov byte [ebp - 4], 0x18
call fcn.0042bce0
add esp, 0x1c
mov edi, eax
sub eax, 1
je 0x40a82a
sub eax, 1
jne 0x40a906
push str.HEADER
lea ecx, [ebp - 0x67c]
call fcn.00405d80
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0xb38]
push ecx
lea edx, [ebp - 0xd74]
push str.Clean
push edx
call fcn.00406340
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x67c]
push ecx
push eax
call fcn.0041d4f0
add esp, 0x14
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0xd74]
call fcn.00403ac0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x67c]
call fcn.00403ac0
lea ecx, [ebp - 0xcd4]
call fcn.00433660
push str.HEADER
lea ecx, [ebp - 0xd3c]
mov byte [ebp - 0xa40], 1
call fcn.00405d80
mov byte [ebp - 4], 0x24
push str.Enabled_download_from_the_web.
lea ecx, [ebp - 0xd20]
call fcn.00405d80
mov byte [ebp - 4], 0x25
lea edx, [ebp - 0xd3c]
push edx
lea eax, [ebp - 0xd20]
push eax
call fcn.0041d4f0
add esp, 8
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xd20]
call fcn.00403ac0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xd3c]
call fcn.00403ac0
push ebx
sub esp, 0x1c
lea edx, [ebp - 0xb38]
mov ecx, esp
mov dword [ebp - 0xcdc], esp
push edx
call fcn.004054b0
mov byte [ebp - 4], 0x26
sub esp, 0x1c
lea eax, [ebp - 0xbfc]
mov ecx, esp
mov dword [ebp - 0xce4], esp
push eax
call fcn.004054b0
mov byte [ebp - 4], 0x27
jmp 0x40a8d6
push 0x400
push ebx
call fcn.00423790
add esp, 8
push 2
call fcn.00408380
push str.HEADER
lea ecx, [ebp - 0xd58]
call fcn.00405d80
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0xb38]
push ecx
lea edx, [ebp - 0xd04]
push str.Clean
push edx
call fcn.00406340
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0xd58]
push ecx
push eax
call fcn.0041d4f0
add esp, 0x14
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0xd04]
call fcn.00403ac0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xd58]
call fcn.00403ac0
lea ecx, [ebp - 0xcd4]
call fcn.00433660
cmp byte [ebp - 0xcd5], bl
sete dl
movzx eax, dl
push eax
sub esp, 0x1c
lea edx, [ebp - 0xb38]
mov ecx, esp
mov dword [ebp - 0xce4], esp
push edx
call fcn.004054b0
mov byte [ebp - 4], 0x2a
sub esp, 0x1c
lea eax, [ebp - 0xbfc]
mov ecx, esp
mov dword [ebp - 0xcdc], esp
push eax
call fcn.004054b0
mov byte [ebp - 4], 0x2b
mov byte [ebp - 4], 0x18
call fcn.0042cc00
add esp, 0x3c
cmp al, bl
je 0x40a815
cmp dword [ebp - 0xb20], 8
mov eax, dword [ebp - 0xb34]
jae 0x40a8ff
lea eax, [ebp - 0xb34]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp dword [ebp - 0xce0], ebx
je 0x40aa35
xor ecx, ecx
mov dword [ebp - 0x664], esi
mov dword [ebp - 0x668], ebx
mov word [ebp - 0x678], cx
mov byte [ebp - 4], 0x2c
lea edx, [ebp - 0x67c]
push edx
sub esp, 0x1c
lea eax, [ebp - 0xb38]
mov ecx, esp
mov dword [ebp - 0xce4], esp
push eax
call fcn.004054b0
mov byte [ebp - 4], 0x2d
mov byte [ebp - 4], 0x2c
call fcn.004203b0
push 0x48e714
lea ecx, [ebp - 0x67c]
push ecx
lea edx, [ebp - 0xd3c]
push edx
call fcn.004059f0
mov esi, eax
mov byte [ebp - 4], 0x2e
push str.Header.exe
lea eax, [ebp - 0xb38]
push eax
lea ecx, [ebp - 0xd20]
push ecx
call fcn.004059f0
add esp, 0x38
mov byte [ebp - 4], 0x2f
mov ecx, 8
cmp dword [esi + 0x18], ecx
jb 0x40a9a2
mov esi, dword [esi + 4]
jmp 0x40a9a5
add esi, 4
cmp dword [eax + 0x18], ecx
jb 0x40a9af
mov eax, dword [eax + 4]
jmp 0x40a9b2
add eax, 4
push ebx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0xd20]
call fcn.00403ac0
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd3c]
call fcn.00403ac0
lea edx, [ebp - 0x67c]
push edx
lea eax, [ebp - 0xd20]
push str.Installation_files_extracted_to
push eax
call fcn.00406340
mov byte [ebp - 4], 0x30
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0xce4], esp
push 0x48e874
push eax
push ecx
call fcn.004059f0
add esp, 0xc
mov byte [ebp - 4], 0x31
push ebx
mov byte [ebp - 4], 0x30
call fcn.004237b0
add esp, 0x20
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd20]
call fcn.00403ac0
push ebx
call fcn.00408380
cmp edi, ebx
jbe 0x40aa2f
cmp edi, 2
ja 0x40aa2f
push 0x48e6a0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40a815
mov edx, dword [0x4ad0e0]
push edx
mov dword [ebp - 0xce0], ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x4ad0e0]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx edi, byte [ebp - 0xcd5]
neg edi
mov dword [ebp - 0xcdc], 5
sbb edi, edi
jmp 0x40aa90
dec dword [ebp - 0xcdc]
cmp byte [ebp - 0xa40], bl
je 0x40aac6
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xce4], esp
push 0x48e69c
call fcn.00405d80
mov byte [ebp - 4], 0x32
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xd9c]
call fcn.00426030
xor ecx, ecx
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x64c], ebx
mov word [ebp - 0x65c], cx
mov byte [ebp - 4], 0x33
push ebx
lea edx, [ebp - 0x660]
push edx
lea ecx, [ebp - 0xd9c]
call fcn.00424c00
lea eax, [ebp - 0xce0]
push eax
push 1
push 1
push edi
sub esp, 0x1c
lea edx, [ebp - 0x660]
mov ecx, esp
mov dword [ebp - 0xce4], esp
push edx
call fcn.004054b0
mov byte [ebp - 4], 0x34
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xd7c], esp
push 0x48e6a0
call fcn.00405d80
mov byte [ebp - 4], 0x35
sub esp, 0x1c
lea eax, [ebp - 0xb38]
mov ecx, esp
mov dword [ebp - 0xd78], esp
push eax
call fcn.004054b0
mov byte [ebp - 4], 0x36
mov byte [ebp - 4], 0x33
call fcn.00422200
add esp, 0x64
cmp eax, 0xfffffffe
jne 0x40ab7b
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x660]
call fcn.00403ac0
cmp dword [ebp - 0xcdc], ebx
ja 0x40aa90
jmp 0x40ab8a
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x660]
call fcn.00403ac0
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]