Function at 0x419660
Capabilities:
Check if file exists
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x627a9b
mov eax, dword fs:[0]
push eax
sub esp, 0xdfc
mov eax, dword [0x6b278c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xd54], ecx
push 0x640820
lea ecx, [ebp - 0x2c]
call fcn.0040e4b0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0xd54]
add ecx, 0x534
call fcn.0045d260
test eax, eax
jbe 0x41983e
mov ecx, dword [ebp - 0xd54]
add ecx, 0x534
call fcn.0045d260
sub eax, 1
push eax
push 0
call fcn.004344d0
add esp, 8
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0xd54]
add ecx, 0x534
call fcn.0041c9b0
add eax, 0x1c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb0c], esp
push eax
call fcn.0040e4f0
mov dword [ebp - 0xd58], eax
mov ecx, dword [ebp - 0xd58]
mov dword [ebp - 0xd5c], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x30]
push edx
mov ecx, dword [ebp - 0xd54]
add ecx, 0x534
call fcn.0041c9b0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb10], esp
push eax
call fcn.0040e4f0
mov dword [ebp - 0xd60], eax
lea eax, [ebp - 0xb2c]
push eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xd54]
call fcn.00419300
mov dword [ebp - 0xd64], eax
mov ecx, dword [ebp - 0xd64]
mov dword [ebp - 0xd68], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xd68]
push edx
lea ecx, [ebp - 0x2c]
call fcn.0040e550
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xb2c]
call fcn.0040e530
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4197c1
mov eax, dword [ebp - 0x30]
push eax
push str.SoftInstall::_RandIdx___d_DownLoad_Succ
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
jmp 0x41983e
mov ecx, dword [ebp - 0x30]
push ecx
push str.SoftInstall::_RandIdx___d_DownLoad_Failed
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
mov edx, dword [ebp - 0x30]
push edx
lea eax, [ebp - 0xb44]
push eax
lea ecx, [ebp - 0xb3c]
push ecx
mov ecx, dword [ebp - 0xd54]
add ecx, 0x534
call fcn.00414550
mov ecx, eax
call fcn.0041cb20
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xb34], edx
mov dword [ebp - 0xb30], eax
mov ecx, dword [ebp - 0xb30]
push ecx
mov edx, dword [ebp - 0xb34]
push edx
lea eax, [ebp - 0xb4c]
push eax
mov ecx, dword [ebp - 0xd54]
add ecx, 0x534
call fcn.0041c9e0
jmp 0x4196a5
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x419971
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [ebp - 0xd54]
add ecx, 0x54c
call fcn.00414550
jmp 0x41987d
push 0
lea edx, [ebp - 0xb54]
push edx
lea ecx, [ebp - 0x38]
call fcn.0041cae0
lea eax, [ebp - 0xb5c]
push eax
mov ecx, dword [ebp - 0xd54]
add ecx, 0x54c
call fcn.0040e8c0
push eax
lea ecx, [ebp - 0x38]
call fcn.00449590
movzx ecx, al
test ecx, ecx
je 0x419971
lea ecx, [ebp - 0x38]
call fcn.0052bb90
add eax, 0x1c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb60], esp
push eax
call fcn.0040e4f0
mov dword [ebp - 0xd6c], eax
mov edx, dword [ebp - 0xd6c]
mov dword [ebp - 0xd70], edx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0052bb90
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb64], esp
push eax
call fcn.0040e4f0
mov dword [ebp - 0xd74], eax
lea eax, [ebp - 0xb80]
push eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xd54]
call fcn.00419300
mov dword [ebp - 0xd78], eax
mov ecx, dword [ebp - 0xd78]
mov dword [ebp - 0xd7c], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xd7c]
push edx
lea ecx, [ebp - 0x2c]
call fcn.0040e550
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xb80]
call fcn.0040e530
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41996c
push str.SoftInstall::_DownLoad_Self_Succ
call fcn.00412530
push eax
call fcn.0040d040
add esp, 8
jmp 0x419971
jmp 0x41986c
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4199c1
push str._t0_t0
mov ecx, dword [ebp - 0xd54]
add ecx, 0x8d0
call fcn.0040e5b0
push str.SoftInstall::_download_err
call fcn.00412530
push eax
call fcn.0040d040
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0040e530
jmp 0x41a77b
push str.SoftInstall::_download_succ
call fcn.00412530
push eax
call fcn.0040d040
add esp, 8
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb84], esp
push 0x64098c
call fcn.0040e4b0
mov dword [ebp - 0xd80], eax
mov eax, dword [ebp - 0xd80]
mov dword [ebp - 0xd84], eax
mov byte [ebp - 4], 5
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb88], esp
push 0x6409a0
call fcn.0040e4b0
mov dword [ebp - 0xd88], eax
mov ecx, dword [ebp - 0xd88]
mov dword [ebp - 0xd8c], ecx
mov byte [ebp - 4], 6
call fcn.00412530
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.0040bce0
mov edx, dword [ebp - 0xd54]
add edx, 0x4e0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb8c], esp
push edx
call fcn.0040e4f0
mov dword [ebp - 0xd90], eax
mov eax, dword [ebp - 0xd90]
mov dword [ebp - 0xd94], eax
mov byte [ebp - 4], 7
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb90], esp
push 3
push ecx
call fcn.00412530
mov ecx, eax
call fcn.0040c7b0
mov dword [ebp - 0xd98], eax
mov edx, dword [ebp - 0xd98]
mov dword [ebp - 0xd9c], edx
mov byte [ebp - 4], 8
call fcn.00412530
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.0040bce0
push 0x6409b0
mov eax, dword [ebp - 0xd54]
add eax, 0x4e0
push eax
call fcn.00412550
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x419b35
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb94], esp
push 0x6409b4
call fcn.0040e4b0
mov dword [ebp - 0xda0], eax
mov edx, dword [ebp - 0xda0]
mov dword [ebp - 0xda4], edx
mov byte [ebp - 4], 9
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb98], esp
push 0x6409c8
call fcn.0040e4b0
mov dword [ebp - 0xda8], eax
mov eax, dword [ebp - 0xda8]
mov dword [ebp - 0xdac], eax
mov byte [ebp - 4], 0xa
call fcn.00412530
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.0040bce0
jmp 0x419ba8
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb9c], esp
push 0x6409d0
call fcn.0040e4b0
mov dword [ebp - 0xdb0], eax
mov ecx, dword [ebp - 0xdb0]
mov dword [ebp - 0xdb4], ecx
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0xd54]
add ecx, 0x4e0
call fcn.0040e5d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xba0], esp
push eax
call fcn.0040e4b0
mov dword [ebp - 0xdb8], eax
mov edx, dword [ebp - 0xdb8]
mov dword [ebp - 0xdbc], edx
mov byte [ebp - 4], 0xc
call fcn.00412530
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.0040bce0
push 0x6409e4
mov ecx, dword [ebp - 0xd54]
add ecx, 0x8d0
call fcn.0040e5b0
mov eax, dword [ebp - 0xd54]
cmp dword [eax + 0x10], 0
jne 0x419c6f
xor ecx, ecx
mov word [ebp - 0x244], cx
push 0x206
push 0
lea edx, [ebp - 0x242]
push edx
call fcn.005b4de0
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.005b4dbe
add esp, 8
push 0x6409ec
lea ecx, [ebp - 0x244]
push ecx
call fcn.005b4d90
add esp, 8
mov ecx, dword [ebp - 0xd54]
add ecx, 0x518
call fcn.0040e5d0
push eax
lea edx, [ebp - 0x244]
push edx
call fcn.005b4d90
add esp, 8
push 0xea60
push 1
lea eax, [ebp - 0x244]
push eax
call fcn.00437300
add esp, 0xc
lea ecx, [ebp - 0x244]
push ecx
push 0x6409f0
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
jmp 0x41a6c2
mov edx, dword [ebp - 0xd54]
cmp dword [edx + 0x10], 1
jne 0x41a6c2
xor eax, eax
mov word [ebp - 0x454], ax
push 0x206
push 0
lea ecx, [ebp - 0x452]
push ecx
call fcn.005b4de0
add esp, 0xc
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0xba4], esp
push 0
push edx
call fcn.00412530
mov ecx, eax
call fcn.0040c7b0
mov dword [ebp - 0xdc0], eax
lea eax, [ebp - 0x694]
push eax
call fcn.0042e260
add esp, 0x20
mov dword [ebp - 0xdc4], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x694]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x419e13
lea ecx, [ebp - 0x694]
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0x454]
push ecx
call fcn.005b4dbe
add esp, 8
mov ecx, dword [ebp - 0xd54]
add ecx, 0x564
call fcn.0040e5d0
push eax
lea edx, [ebp - 0x454]
push edx
call fcn.0041c6e0
add esp, 8
mov dword [ebp - 0x698], eax
cmp dword [ebp - 0x698], 0
je 0x419de5
mov ecx, dword [ebp - 0xd54]
add ecx, 0x564
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0xbc0]
call fcn.0040e4b0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x698]
push eax
lea ecx, [ebp - 0xbdc]
call fcn.0040e4b0
mov byte [ebp - 4], 0xf
push 1
lea ecx, [ebp - 0xbc0]
push ecx
lea edx, [ebp - 0xbdc]
push edx
lea eax, [ebp - 0x694]
push eax
call fcn.0043b560
add esp, 0x10
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xbdc]
call fcn.0040e530
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xbc0]
call fcn.0040e530
lea ecx, [ebp - 0x694]
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0x454]
push ecx
call fcn.005b4dbe
add esp, 8
push 0x640a38
lea edx, [ebp - 0x454]
push edx
call fcn.005b4d90
add esp, 8
jmp 0x419df9
push 0x640a3c
lea eax, [ebp - 0x454]
push eax
call fcn.005b4dbe
add esp, 8
lea ecx, [ebp - 0x454]
push ecx
push str.Find_Old_Path__s_
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
lea edx, [ebp - 0x454]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x419e9a
push 0
push 0x26
lea eax, [ebp - 0x454]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x640a64
lea ecx, [ebp - 0x454]
push ecx
call fcn.005b4d90
add esp, 8
mov ecx, dword [ebp - 0xd54]
add ecx, 0x564
call fcn.0040e5d0
push eax
lea edx, [ebp - 0x454]
push edx
call fcn.005b4d90
add esp, 8
push 0x640a68
lea eax, [ebp - 0x454]
push eax
call fcn.005b4d90
add esp, 8
lea ecx, [ebp - 0x454]
push ecx
push 0x640a6c
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
lea edx, [ebp - 0x454]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x419ed4
lea eax, [ebp - 0x454]
push eax
push str.CreateNewPath__s_
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
lea ecx, [ebp - 0x454]
push ecx
call fcn.00432f80
add esp, 4
lea edx, [ebp - 0x454]
push edx
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
push str.UnCompressFile
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0x10
push 0x640ae8
mov eax, dword [0x63f3a0]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ee50
sub eax, 4
push eax
lea ecx, [ebp - 0xbfc]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0041c700
mov dword [ebp - 0xdc8], eax
mov edx, dword [ebp - 0xdc8]
mov dword [ebp - 0xdcc], edx
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0xdcc]
push eax
call fcn.00412550
add esp, 8
mov byte [ebp - 0xbdd], al
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xbfc]
call fcn.0040e530
movzx ecx, byte [ebp - 0xbdd]
test ecx, ecx
je 0x419f82
lea edx, [ebp - 0x454]
push edx
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
mov ecx, dword [ebp - 0xd54]
call fcn.0041a7a0
jmp 0x41a291
push str..zip
mov eax, dword [0x63f3a0]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ee50
sub eax, 4
push eax
lea ecx, [ebp - 0xc1c]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0041c700
mov dword [ebp - 0xdd0], eax
mov edx, dword [ebp - 0xdd0]
mov dword [ebp - 0xdd4], edx
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0xdd4]
push eax
call fcn.00412550
add esp, 8
mov byte [ebp - 0xbfd], al
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xc1c]
call fcn.0040e530
movzx ecx, byte [ebp - 0xbfd]
test ecx, ecx
je 0x41a23a
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
push str.UnCompressFile_Zip__s_
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
xor edx, edx
mov word [ebp - 0xab4], dx
push 0x206
push 0
lea eax, [ebp - 0xab2]
push eax
call fcn.005b4de0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x8a4], cx
push 0x206
push 0
lea edx, [ebp - 0x8a2]
push edx
call fcn.005b4de0
add esp, 0xc
lea eax, [ebp - 0x8a4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x104
lea ecx, [ebp - 0xab4]
push ecx
lea edx, [ebp - 0x8a4]
push edx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea ecx, [ebp - 0xacc]
call fcn.00414100
mov byte [ebp - 4], 0x12
push 0x640b30
lea ecx, [ebp - 0xc38]
call fcn.0040e4b0
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0xab4]
push eax
lea ecx, [ebp - 0xc54]
call fcn.0040e4b0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xacc]
push ecx
lea edx, [ebp - 0xc38]
push edx
lea eax, [ebp - 0xc54]
push eax
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x8a5]
call fcn.00474fc0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xc54]
call fcn.0040e530
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xc38]
call fcn.0040e530
lea edx, [ebp - 0xad4]
push edx
lea ecx, [ebp - 0xacc]
call fcn.00414550
jmp 0x41a119
push 0
lea eax, [ebp - 0xc5c]
push eax
lea ecx, [ebp - 0xad4]
call fcn.004163a0
lea ecx, [ebp - 0xc64]
push ecx
lea ecx, [ebp - 0xacc]
call fcn.0040e8c0
push eax
lea ecx, [ebp - 0xad4]
call fcn.00449590
movzx edx, al
test edx, edx
je 0x41a229
lea ecx, [ebp - 0xad4]
call fcn.0052bb90
mov ecx, eax
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41a224
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 0xad4]
call fcn.0052bb90
mov ecx, eax
call fcn.0040e5d0
push eax
mov ecx, dword [ebp - 0xd54]
call fcn.0041a7a0
lea ecx, [ebp - 0x454]
push ecx
lea ecx, [ebp - 0xaf0]
call fcn.0040e4b0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0xd54]
add edx, 0x4fc
push edx
lea ecx, [ebp - 0xaf0]
call fcn.0040e590
lea ecx, [ebp - 0xaf0]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41a1f9
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
push str.UnCompressFile_Succ__s_
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xaf0]
call fcn.0040e530
jmp 0x41a229
lea ecx, [ebp - 0x2c]
call fcn.0040e5d0
push eax
push str.UnCompressFile_Failed__s_
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xaf0]
call fcn.0040e530
jmp 0x41a105
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xacc]
call fcn.00416190
jmp 0x41a291
push 0
push 0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xc80]
push ecx
call fcn.0043a030
add esp, 8
mov dword [ebp - 0xdd8], eax
mov edx, dword [ebp - 0xdd8]
mov dword [ebp - 0xddc], edx
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0xddc]
call fcn.0040e460
push eax
lea eax, [ebp - 0x454]
push eax
call fcn.00429f30
add esp, 0x10
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xc80]
call fcn.0040e3e0
push str.UnCompressFile_End
call fcn.00412530
push eax
call fcn.0040d040
add esp, 8
lea ecx, [ebp - 0x454]
push ecx
lea ecx, [ebp - 0x678]
call fcn.0040e4b0
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0xd54]
add ecx, 0x4fc
call fcn.0040e5d0
push eax
lea edx, [ebp - 0x454]
push edx
call fcn.005b4d90
add esp, 8
lea eax, [ebp - 0x454]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41a40c
lea ecx, [ebp - 0xb08]
call fcn.00414100
mov byte [ebp - 4], 0x18
push 1
push 0
lea ecx, [ebp - 0xb08]
push ecx
mov edx, dword [ebp - 0xd54]
add edx, 0x4fc
push edx
lea eax, [ebp - 0x678]
push eax
call fcn.0042f430
add esp, 0x14
lea ecx, [ebp - 0xb08]
call fcn.004163e0
test eax, eax
jbe 0x41a3fd
lea ecx, [ebp - 0xb08]
call fcn.004163e0
cmp eax, 1
jbe 0x41a3bf
push 0x640bc8
mov ecx, dword [ebp - 0xd54]
add ecx, 0x8d0
call fcn.0040e5b0
lea ecx, [ebp - 0xb08]
call fcn.004163e0
push eax
push 0x640bd0
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xb08]
call fcn.00416190
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x678]
call fcn.0040e530
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x694]
call fcn.0040e530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0040e530
jmp 0x41a77b
push 0
lea ecx, [ebp - 0xb08]
call fcn.0041cab0
mov ecx, eax
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0x454]
push ecx
call fcn.005b4dbe
add esp, 8
lea edx, [ebp - 0x454]
push edx
push str.SoftInstall::
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xb08]
call fcn.00416190
push 0x640c34
lea eax, [ebp - 0x454]
push eax
call fcn.005b4d90
add esp, 8
call fcn.00434b30
mov dword [ebp - 0x248], eax
push 0x640c38
lea ecx, [ebp - 0xcb8]
call fcn.0040e4b0
mov byte [ebp - 4], 0x19
push 1
mov ecx, dword [ebp - 0x248]
push ecx
lea edx, [ebp - 0xc9c]
push edx
call fcn.0043f680
add esp, 8
mov dword [ebp - 0xde0], eax
mov eax, dword [ebp - 0xde0]
mov dword [ebp - 0xde4], eax
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0xde4]
push ecx
lea edx, [ebp - 0xcb8]
push edx
mov eax, dword [ebp - 0xd54]
add eax, 0x518
push eax
call fcn.0043b560
add esp, 0x10
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xc9c]
call fcn.0040e530
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xcb8]
call fcn.0040e530
lea ecx, [ebp - 0xcf0]
push ecx
call fcn.00412530
mov ecx, eax
call fcn.0040b570
mov dword [ebp - 0xde8], eax
mov edx, dword [ebp - 0xde8]
mov dword [ebp - 0xdec], edx
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0xdec]
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0xcd4]
call fcn.0040e4b0
mov byte [ebp - 4], 0x1c
push 0x640c48
lea ecx, [ebp - 0xd0c]
call fcn.0040e4b0
mov byte [ebp - 4], 0x1d
push 1
lea eax, [ebp - 0xcd4]
push eax
lea ecx, [ebp - 0xd0c]
push ecx
mov edx, dword [ebp - 0xd54]
add edx, 0x518
push edx
call fcn.0043b560
add esp, 0x10
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xd0c]
call fcn.0040e530
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0xcd4]
call fcn.0040e530
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xcf0]
call fcn.0040e530
xor eax, eax
mov word [ebp - 0x65c], ax
push 0x206
push 0
lea ecx, [ebp - 0x65a]
push ecx
call fcn.005b4de0
add esp, 0xc
mov edx, dword [ebp - 0x248]
push edx
mov eax, dword [ebp - 0x248]
push eax
push str.__d_d
lea ecx, [ebp - 0x65c]
push ecx
call fcn.005b50ec
add esp, 0x10
lea edx, [ebp - 0x65c]
push edx
lea ecx, [ebp - 0xd28]
call fcn.0040e4b0
mov byte [ebp - 4], 0x1e
push 0x640c64
lea ecx, [ebp - 0xd44]
call fcn.0040e4b0
mov byte [ebp - 4], 0x1f
push 1
lea eax, [ebp - 0xd28]
push eax
lea ecx, [ebp - 0xd44]
push ecx
mov edx, dword [ebp - 0xd54]
add edx, 0x518
push edx
call fcn.0043b560
add esp, 0x10
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0xd44]
call fcn.0040e530
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xd28]
call fcn.0040e530
mov ecx, dword [ebp - 0xd54]
add ecx, 0x518
call fcn.0040e5d0
push eax
lea eax, [ebp - 0x454]
push eax
call fcn.005b4d90
add esp, 8
lea ecx, [ebp - 0x454]
push ecx
push str.SoftInstall::_CreateRunProcess445__s_
call fcn.00412530
push eax
call fcn.0040d040
add esp, 0xc
mov edx, dword [ebp - 0xd54]
cmp dword [edx + 0x44], 0
jne 0x41a68e
mov eax, dword [ebp - 0xd54]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xd48], esp
push 0x640cc4
call fcn.0040e3a0
mov dword [ebp - 0xdf0], eax
mov ecx, dword [ebp - 0xdf0]
mov dword [ebp - 0xdf4], ecx
mov byte [ebp - 4], 0x20
call fcn.00412590
mov byte [ebp - 4], 0x17
mov ecx, eax
call fcn.0051f7b0
push 0x1d4c0
push 1
lea edx, [ebp - 0x454]
push edx
call fcn.00437300
add esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x678]
call fcn.0040e530
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x694]
call fcn.0040e530
mov eax, dword [ebp - 0xd54]
add eax, 0x580
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xd4c], esp
push eax
call fcn.0040e4f0
mov dword [ebp - 0xdf8], eax
mov ecx, dword [ebp - 0xdf8]
mov dword [ebp - 0xdfc], ecx
mov byte [ebp - 4], 0x21
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xd50], esp
push 0x640ccc
call fcn.0040e4b0
mov dword [ebp - 0xe00], eax
mov edx, dword [ebp - 0xe00]
mov dword [ebp - 0xe04], edx
mov byte [ebp - 4], 0x22
call fcn.00412590
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.005125d0
mov dword [ebp - 0xe08], eax
cmp dword [ebp - 0xe08], 0
je 0x41a756
push 0x640cd0
mov ecx, dword [ebp - 0xd54]
add ecx, 0x8d0
call fcn.0040e5b0
jmp 0x41a76c
push 0x640cd8
mov ecx, dword [ebp - 0xd54]
add ecx, 0x8d0
call fcn.0040e5b0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0040e530
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b4b30
mov esp, ebp
pop ebp
ret