Function at 0x408870
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x440928
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x74c
mov eax, dword [0x454688]
xor eax, ebp
mov dword [ebp - 0x2c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x750], ecx
mov dword [ebp - 0x14], 0
mov dword [0x458740], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x750]
call fcn.00401aa0
push eax
lea ecx, [ebp - 0x28]
call fcn.00406150
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.004061f0
test eax, eax
jne 0x40895e
push 0
push 0x652
push 0x10
push 0
push 0x66
lea ecx, [ebp - 0x66c]
call fcn.00401060
mov eax, dword [ebp - 0x66c]
mov dword [ebp - 0x700], eax
mov ecx, dword [ebp - 0x668]
mov dword [ebp - 0x6fc], ecx
mov edx, dword [ebp - 0x664]
mov dword [ebp - 0x6f8], edx
mov eax, dword [ebp - 0x660]
mov dword [ebp - 0x6f4], eax
mov ecx, dword [ebp - 0x65c]
mov dword [ebp - 0x6f0], ecx
mov edx, dword [ebp - 0x658]
mov dword [ebp - 0x6ec], edx
push 0x44fe98
lea eax, [ebp - 0x700]
push eax
call fcn.0042b7b2
jmp 0x4089db
lea ecx, [ebp - 0x28]
call fcn.00406210
test eax, eax
jne 0x4089db
push 0
push 0x643
push 0x10
push 0
push 0x68
lea ecx, [ebp - 0x684]
call fcn.00401060
mov ecx, dword [ebp - 0x684]
mov dword [ebp - 0x718], ecx
mov edx, dword [ebp - 0x680]
mov dword [ebp - 0x714], edx
mov eax, dword [ebp - 0x67c]
mov dword [ebp - 0x710], eax
mov ecx, dword [ebp - 0x678]
mov dword [ebp - 0x70c], ecx
mov edx, dword [ebp - 0x674]
mov dword [ebp - 0x708], edx
mov eax, dword [ebp - 0x670]
mov dword [ebp - 0x704], eax
push 0x44fe98
lea ecx, [ebp - 0x718]
push ecx
call fcn.0042b7b2
mov ecx, dword [ebp - 0x750]
call fcn.004085c0
push 0
push 0x80
push 3
push 0
push 3
push SysReAllocString
mov ecx, dword [ebp - 0x750]
call fcn.00406400
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x654], eax
cmp dword [ebp - 0x654], 0xffffffff
jne 0x408b21
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x688], eax
cmp dword [ebp - 0x688], 2
jne 0x408aac
mov ecx, dword [ebp - 0x750]
call fcn.00406400
push eax
push 2
push 0x10
push 0
push 0x70
lea ecx, [ebp - 0x6a0]
call fcn.00401060
mov edx, dword [ebp - 0x6a0]
mov dword [ebp - 0x730], edx
mov eax, dword [ebp - 0x69c]
mov dword [ebp - 0x72c], eax
mov ecx, dword [ebp - 0x698]
mov dword [ebp - 0x728], ecx
mov edx, dword [ebp - 0x694]
mov dword [ebp - 0x724], edx
mov eax, dword [ebp - 0x690]
mov dword [ebp - 0x720], eax
mov ecx, dword [ebp - 0x68c]
mov dword [ebp - 0x71c], ecx
push 0x44fe98
lea edx, [ebp - 0x730]
push edx
call fcn.0042b7b2
jmp 0x408b1f
push 0
mov eax, dword [ebp - 0x688]
push eax
push 0x10
push 0
push 0x69
lea ecx, [ebp - 0x6b8]
call fcn.00401060
mov ecx, dword [ebp - 0x6b8]
mov dword [ebp - 0x748], ecx
mov edx, dword [ebp - 0x6b4]
mov dword [ebp - 0x744], edx
mov eax, dword [ebp - 0x6b0]
mov dword [ebp - 0x740], eax
mov ecx, dword [ebp - 0x6ac]
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp - 0x6a8]
mov dword [ebp - 0x738], edx
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x734], eax
push 0x44fe98
lea ecx, [ebp - 0x748]
push ecx
call fcn.0042b7b2
jmp 0x408b2e
mov edx, dword [ebp - 0x654]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x750]
call fcn.00406400
push eax
push 0x30e
lea eax, [ebp - 0x650]
push eax
call fcn.004016e0
mov ecx, dword [ebp - 0x750]
call fcn.00401600
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jbe 0x408b99
mov ecx, dword [ebp - 0x750]
call fcn.00408ef0
mov dword [ebp - 0x754], eax
mov ecx, dword [ebp - 0x754]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x74c], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.004061c0
mov eax, dword [ebp - 0x74c]
jmp 0x408d56
lea ecx, [ebp - 0x20]
call fcn.00404ed0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
call fcn.00404ed0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.004052a0
lea ecx, [ebp - 0x1c]
call fcn.004052a0
mov ecx, dword [ebp - 0x750]
call fcn.00406660
push eax
lea ecx, [ebp - 0x20]
call fcn.00404fb0
mov ecx, dword [ebp - 0x750]
call fcn.00404ce0
push eax
lea ecx, [ebp - 0x1c]
call fcn.00404fb0
push 0
push 0x448604
lea ecx, [ebp - 0x20]
call fcn.004050b0
test eax, eax
jge 0x408c14
push 0x448610
lea eax, [ebp - 0x20]
push eax
call fcn.0040a280
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x408c4c
push str.Msiexec__s___s___s_REBOOTReallySuppress
mov edx, dword [ebp - 0x750]
add edx, 0x53bc
push edx
lea eax, [ebp - 0x650]
push eax
push 0x448620
mov ecx, dword [ebp - 0x750]
call fcn.00407150
mov dword [ebp - 0x758], eax
mov ecx, dword [ebp - 0x758]
mov dword [ebp - 0x18], ecx
push 0
push 0x448628
lea ecx, [ebp - 0x20]
call fcn.004050b0
cmp eax, 0xffffffff
jne 0x408cd5
push 0
push 0x448638
lea ecx, [ebp - 0x20]
call fcn.004050b0
cmp eax, 0xffffffff
jne 0x408cd5
push 0
push 0x448644
lea ecx, [ebp - 0x1c]
call fcn.004050b0
cmp eax, 0xffffffff
jne 0x408cd5
push 0x448650
mov ecx, dword [ebp - 0x750]
add ecx, 0x55cc
call fcn.00404fb0
mov ecx, dword [ebp - 0x750]
call fcn.00404ce0
push eax
mov ecx, dword [ebp - 0x750]
add ecx, 0x55cc
call fcn.00404ff0
mov ecx, dword [ebp - 0x750]
call fcn.00408d80
mov dword [ebp - 0x75c], eax
mov edx, dword [ebp - 0x75c]
mov dword [ebp - 0x18], edx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
call fcn.00401130
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00401130
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.004061c0
jmp 0x408d4c
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.00429c7e
mov esp, ebp
pop ebp
ret