Function at 0x41f770
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43be5e
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x4b249c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x44]
add ecx, 0x28
call fcn.00403cd0
cmp eax, 1
jae 0x41f7af
xor al, al
jmp 0x41fa50
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1c], esp
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x28]
push edx
call fcn.00405190
mov dword [ebp - 0x48], eax
call fcn.00402220
add esp, 0x1c
mov eax, dword [ebp - 0x44]
add eax, 0x28
push eax
lea ecx, [ebp - 0x18]
call fcn.0040a240
mov dword [ebp - 4], 0
push str.SetupUI.cab
lea ecx, [ebp - 0x18]
call fcn.00421c10
push 0
lea ecx, [ebp - 0x18]
call fcn.004053b0
push eax
push 0x442588
push 0xce
mov ecx, dword [ebp - 0x44]
call fcn.0041f340
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x41f8a3
push 0x442590
call fcn.0040de50
add esp, 4
test eax, eax
jne 0x41f852
push 4
push str.SaveResourceToFile_Try_again_
mov ecx, dword [ebp - 0x44]
push ecx
push 0x4425e8
call fcn.0040e820
add esp, 8
mov ecx, eax
call fcn.0040d970
mov ecx, eax
call fcn.0040de00
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x44]
call fcn.004218d0
push 0
lea ecx, [ebp - 0x18]
call fcn.004053b0
push eax
push 0x442660
push 0xce
mov ecx, dword [ebp - 0x44]
call fcn.0041f340
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x41f8a3
mov byte [ebp - 0x1d], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00403cf0
mov al, byte [ebp - 0x1d]
jmp 0x41fa50
lea ecx, [ebp - 0x18]
call fcn.004053b0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f908
push 0x442668
call fcn.0040de50
add esp, 4
test eax, eax
jne 0x41f8ed
push 5
push str.Resource_SetupUI.cab_Release_SUCC._But_File_NOT_EXISTS_
mov edx, dword [ebp - 0x44]
push edx
push 0x4426c0
call fcn.0040e820
add esp, 8
mov ecx, eax
call fcn.0040d970
mov ecx, eax
call fcn.0040de00
mov byte [ebp - 0x1e], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00403cf0
mov al, byte [ebp - 0x1e]
jmp 0x41fa50
mov eax, dword [ebp - 0x44]
add eax, 0x28
push eax
lea ecx, [ebp - 0x10]
call fcn.0040a240
mov byte [ebp - 4], 1
push 0x442750
lea ecx, [ebp - 0x10]
call fcn.00421c10
lea ecx, [ebp - 0x10]
call fcn.004053b0
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x44]
call fcn.00421220
test eax, eax
jne 0x41fa2e
push 0x442768
call fcn.0040de50
add esp, 4
test eax, eax
jne 0x41f97c
push 4
push str.ExtractCabinet_Try_again_
mov edx, dword [ebp - 0x44]
push edx
push 0x4427c0
call fcn.0040e820
add esp, 8
mov ecx, eax
call fcn.0040d970
mov ecx, eax
call fcn.0040de00
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x10]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00405190
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x44]
call fcn.00420a60
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.00405210
lea ecx, [ebp - 0x10]
call fcn.004053b0
push eax
mov edx, dword [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x44]
call fcn.00421220
test eax, eax
jne 0x41fa2e
push 0x442838
call fcn.0040de50
add esp, 4
test eax, eax
jne 0x41fa0a
push 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Extract_SetupUI.cab_FAILED____Error_Code_
mov eax, dword [ebp - 0x44]
push eax
push str.CKKPSetupEnvironment::ExtractSkinToWorkDir
call fcn.0040e820
add esp, 8
mov ecx, eax
call fcn.0040d970
mov ecx, eax
call fcn.0040d7c0
mov ecx, eax
call fcn.0040de00
mov byte [ebp - 0x3d], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00403cf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00403cf0
mov al, byte [ebp - 0x3d]
jmp 0x41fa50
mov byte [ebp - 0x3e], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00403cf0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00403cf0
mov al, byte [ebp - 0x3e]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret