Function at 0x410710
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push edi
lea eax, [ebx + 0xc4]
push eax
lea ecx, [ebp - 0x10]
call fcn.00405a5a
lea eax, [ebp - 0x10]
push str.layout.dat
push eax
call fcn.0042e4ce
pop ecx
pop ecx
test al, al
jne 0x41076b
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00403af7
push str.Start:_Extracting_Layout
call fcn.00416edc
xor esi, esi
pop ecx
cmp dword [ebx + 0x1bc], esi
jne 0x4107bc
push str.CInstallManager::ExtractLayout_1876__:_missing_stream_KVC
call fcn.00416f04
pop ecx
jmp 0x410a0b
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [ebp - 0x10]
cmp eax, 0xffffffff
setne byte [ebp - 1]
add ecx, 0xfffffff0
call fcn.00403af7
cmp byte [ebp - 1], 0
je 0x410746
mov esi, ebx
call fcn.004104be
test al, al
jne 0x4107b5
call fcn.00408f4e
test al, al
jne 0x4107b5
push str.CInstallManager::ExtractLayout_1864__:_LoadCurrentManifest_failed
call fcn.00416f04
pop ecx
mov eax, 0x80070002
jmp 0x410a10
xor eax, eax
jmp 0x410a10
lea edi, [ebp - 0xc]
mov dword [ebp - 0xc], esi
call fcn.0041cd92
mov edi, eax
cmp edi, esi
jge 0x4107ea
push edi
push str.CInstallManager::ExtractLayout_1885__:_Initialize_failed__0x_08x_
call fcn.00416f04
pop ecx
pop ecx
lea eax, [ebp - 0xc]
push eax
call fcn.0041cd4d
mov eax, edi
jmp 0x410a10
mov ecx, dword [ebx + 0x1bc]
lea edx, [ebp - 0x10]
push edx
mov dword [ebp - 8], esi
mov eax, dword [ecx]
push 6
mov dword [ebp - 0x10], esi
call dword [eax + 0x34]
test al, al
je 0x41081d
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
lea edx, [ebp - 8]
push edx
push 0x47bc4c
call dword [eax]
mov byte [ebp - 1], 1
test eax, eax
jns 0x410821
mov byte [ebp - 1], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, esi
je 0x41082d
mov eax, dword [ecx]
call dword [eax + 8]
cmp byte [ebp - 1], 0
je 0x4109e8
mov ecx, dword [ebp - 8]
cmp ecx, esi
je 0x4109e8
mov eax, dword [ecx]
push esi
push esi
call dword [eax + 0x18]
mov eax, dword [ebp - 0xc]
cmp eax, esi
je 0x41085c
push dword [ebp - 8]
call fcn.0041d363
mov edi, eax
jmp 0x410861
mov edi, 0x80004003
cmp edi, esi
jge 0x41088a
push edi
push str.CInstallManager::ExtractLayout_1902__:_Open_failed__0x_08x_
call fcn.00416f04
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
cmp ecx, esi
je 0x4107da
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp - 8], esi
jmp 0x4107da
mov ecx, dword [ebp - 0xc]
lea edi, [ebx + 0xc4]
mov eax, dword [edi]
cmp ecx, esi
je 0x4108a4
push eax
call fcn.0041d4ef
mov dword [ebp - 0x10], eax
jmp 0x4108ab
mov dword [ebp - 0x10], 0x80004003
cmp dword [ebp - 0x10], esi
jge 0x4108e1
push dword [ebp - 0x10]
push str.CInstallManager::ExtractLayout_1910__:_ExtractFolder_failed__0x_08x_
call fcn.00416f04
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
cmp ecx, esi
je 0x4108ce
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x10]
lea eax, [ebp - 0xc]
push eax
call fcn.0041cd4d
mov eax, esi
jmp 0x410a10
push dword [edi]
push str.Finished:_Extracting_Layout___s
call fcn.00416edc
pop ecx
pop ecx
lea eax, [ebp - 2]
push eax
push 0x5021
lea eax, [ebx + 0xe0]
mov byte [ebp - 2], 0
call fcn.004043d3
test al, al
je 0x41095e
cmp byte [ebp - 2], 0
je 0x41095e
lea esi, [ebx + 0x40]
mov edi, str.COPYBASECACHE
push edi
mov ecx, esi
call fcn.0043d201
test al, al
je 0x41095c
push edi
mov ecx, esi
call fcn.0043e5fb
test eax, eax
je 0x41095c
push edi
mov ecx, esi
call fcn.0043e5fb
push eax
push str.CopyBaseFiles:__s
call fcn.00416edc
pop ecx
pop ecx
push dword [ebx + 0xc4]
mov ecx, esi
push edi
call fcn.0043e5fb
push eax
call fcn.004078ef
pop ecx
pop ecx
xor esi, esi
mov eax, ebx
call fcn.00410e8a
test al, al
jne 0x41098d
push str.CInstallManager::ExtractLayout_1930__:_failed_to_write_layout.dat
call fcn.00416f04
pop ecx
mov ecx, dword [ebp - 8]
cmp ecx, esi
je 0x410983
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp - 8], esi
mov esi, 0x80004005
jmp 0x4108d1
mov ecx, dword [ebx + 0x1bc]
mov eax, dword [ecx]
push 6
call dword [eax + 0x1c]
mov esi, ebx
call fcn.004104be
test al, al
jne 0x4109ca
push str.CInstallManager::ExtractLayout_1940__:_LoadCurrentManifest_failed
call fcn.00416f04
pop ecx
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x4109c0
mov eax, dword [ecx]
call dword [eax + 8]
and dword [ebp - 8], 0
mov esi, 0x80070002
jmp 0x4108d1
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x4109da
mov eax, dword [ecx]
call dword [eax + 8]
and dword [ebp - 8], 0
lea eax, [ebp - 0xc]
push eax
call fcn.0041cd4d
mov eax, dword [ebp - 0x10]
jmp 0x410a10
push str.CInstallManager::ExtractLayout_1893__:_no_archive_in_stream
call fcn.00416f04
pop ecx
mov ecx, dword [ebp - 8]
cmp ecx, esi
je 0x410a02
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp - 8], esi
lea eax, [ebp - 0xc]
push eax
call fcn.0041cd4d
mov eax, 0x80070057
pop edi
pop esi
leave
ret