Function at 0x42ad60
Capabilities:
Check if file exists
Create directory
Create thread
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x452b97
mov eax, dword fs:[0]
push eax
sub esp, 0x56c
mov eax, dword [0x469744]
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
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x578], edi
mov dword [ebp - method.CExtractThread.virtual_0], vtable.CExtractThread.0
mov dword [ebp - 0x56c], esi
mov dword [ebp - 0x570], 0xffffffff
push 0x104
lea eax, [ebp - 0x520]
push eax
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.temp
lea ecx, [ebp - 0x520]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x218]
push edx
push esi
push 0x45b528
lea eax, [ebp - 0x520]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x42ae10
sub eax, edx
sar eax, 1
lea ebx, [edi + 0xcd0]
push eax
lea eax, [ebp - 0x218]
mov esi, ebx
mov dword [ebp - 0x55c], ebx
call fcn.00406550
xor esi, esi
push esi
push esi
lea eax, [ebp - 0x574]
push eax
push 0x42a7b0
push esi
lea edx, [ebp - 0x218]
push esi
mov dword [ebp - 0x568], edx
mov byte [ebp - 0x560], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x570], eax
test eax, eax
jne 0x42ae7c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x570]
test esi, esi
jne 0x42b36b
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42aea2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x42b36b
cmp dword [ebp - 0x564], 0
jne 0x42b36b
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42b39e
mov eax, dword [edi + 0xcb4]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x42b39e
lea edx, [edi + 0x814]
push edx
call fcn.0042cc70
cmp dword [ebx + 0x14], 8
jb 0x42aeee
mov eax, dword [ebx]
jmp 0x42aef0
mov eax, ebx
push eax
push str.__Source:__s
push 0x46a9d4
xor eax, eax
call fcn.0042d150
mov esi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
call esi
push str.tempintel_gfx_installer_C3D9886E_5DDF_48BC_AD93_09E28F54964ALangen_USigxpin.exe.mui
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42af58
push 0x104
lea eax, [ebp - 0x218]
push eax
call esi
push str.tempintel_gfx_installer_C3D9886E_5DDF_48BC_AD93_09E28F54964ALang
lea ecx, [ebp - 0x218]
push ecx
jmp 0x42af85
cmp dword [ebx + 0x14], 8
jb 0x42af62
mov eax, dword [ebx]
jmp 0x42af64
mov eax, ebx
push eax
lea edx, [ebp - 0x218]
push 0x104
push edx
call fcn.0043a583
add esp, 0xc
push str.Lang
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea esi, [ebp - 0x218]
call fcn.0042e070
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
xor eax, eax
cmp dword [edi + 0xc], eax
je 0x42b092
mov dword [ebp - 0x530], eax
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x528], eax
lea esi, [ebp - 0x558]
mov byte [ebp - 4], 1
call fcn.0042a5c0
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
jb 0x42afd7
mov eax, dword [eax]
push eax
push str.Error_in_command_line:__s
push 0x46a9d4
mov eax, 2
call fcn.0042d150
add esp, 0xc
lea esi, [ebp - 0x558]
mov byte [ebp - 4], 1
call fcn.0042dd60
lea esi, [ebp - 0x558]
call fcn.0042a5c0
mov ecx, eax
lea ebx, [ebp - 0x530]
mov byte [ebp - 4], 3
call fcn.0040d610
mov ebx, 1
mov byte [ebp - 4], bl
call fcn.0042dd60
push 0x7f02
push 7
push 0x84
push 0x7d9
lea ecx, [ebp - 0x530]
lea edx, [ebx + 0x3a]
call fcn.00433b40
add esp, 0x10
cmp eax, 7
jne 0x42b07d
mov dword [0x46a9f8], 0xa001
call fcn.0042d090
mov ecx, dword [ebp - 0x570]
push ecx
mov dword [edi + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea esi, [ebp - 0x530]
call fcn.0040c790
jmp 0x42b3ab
lea esi, [ebp - 0x530]
mov byte [ebp - 4], 0
call fcn.0040c790
mov ebx, dword [ebp - 0x55c]
push 0x45cec4
call fcn.00402130
test eax, eax
je 0x42b0aa
call fcn.0042c020
jmp 0x42b2fa
push str.noinstall
call fcn.00402130
test eax, eax
je 0x42b0c4
mov esi, edi
call fcn.0042bb30
jmp 0x42b2fa
cmp dword [ebx + 0x14], 8
jb 0x42b0d4
mov edx, dword [ebx]
mov dword [ebp - 0x568], edx
jmp 0x42b0da
mov dword [ebp - 0x568], ebx
lea esi, [ebp - 0x574]
mov byte [ebp - 0x560], 0
call fcn.0042a780
mov esi, eax
test esi, esi
jne 0x42b36b
call fcn.00402500
test eax, eax
je 0x42b1bf
mov eax, dword [ebp - 0x570]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42b127
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x42b36b
cmp dword [ebp - 0x564], 0
jne 0x42b36b
call fcn.004313c0
test al, al
je 0x42b192
or ecx, 0xffffffff
mov edi, 0x5010100
call fcn.00430cb0
test al, al
je 0x42b186
lea esi, [ebp - 0x520]
call fcn.004315b0
push str.msls31.dll
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8000
call esi
lea ecx, [ebp - 0x520]
push ecx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push edi
call esi
mov ebx, dword [ebp - 0x55c]
mov edi, dword [ebp - 0x578]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
push 0x45f228
call fcn.00402130
test eax, eax
je 0x42b1e1
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x42b2fa
mov edx, dword [0x46bfc0]
lea ecx, [ebp - 0x574]
push ecx
push 0x42a830
push 0
push 0x64
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x42b127
push 0x45ce14
call fcn.00402130
test eax, eax
je 0x42b1fb
mov eax, edi
call fcn.0042bb70
jmp 0x42b2fa
push str.extract
call fcn.00402130
test eax, eax
je 0x42b2db
mov eax, 0x45f22c
call fcn.0042d130
mov ecx, str.extract
call fcn.00402200
lea ecx, [ebp - 0x53c]
call fcn.00406640
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x53c]
mov esi, 8
cmp dword [ebp - 0x528], esi
jae 0x42b249
lea eax, [ebp - 0x53c]
push eax
push str.Extracting_to__s
push 0x46a9d4
xor eax, eax
call fcn.0042d150
mov eax, dword [ebp - 0x53c]
add esp, 0xc
cmp dword [ebp - 0x528], esi
jae 0x42b272
lea eax, [ebp - 0x53c]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov ecx, dword [ebp - 0x53c]
cmp dword [ebp - 0x528], esi
jae 0x42b291
lea ecx, [ebp - 0x53c]
cmp dword [ebx + 0x14], esi
jb 0x42b29a
mov eax, dword [ebx]
jmp 0x42b29c
mov eax, ebx
push 1
push ecx
push eax
call fcn.00424fb0
add esp, 0xc
test eax, eax
je 0x42b2c4
push eax
push str.Extract_error_0x_X
push 0x46a9d4
mov eax, 2
call fcn.0042d150
add esp, 0xc
dec dword [0x46a9f4]
lea esi, [ebp - 0x53c]
mov byte [ebp - 4], 0
call fcn.0042dd60
jmp 0x42b2fa
push 0x457394
call fcn.00402130
test eax, eax
je 0x42b2f3
push edi
call fcn.0042bcd0
test al, al
je 0x42b2fa
mov esi, edi
call fcn.0042b920
push 0x45cec0
call fcn.00402130
test eax, eax
je 0x42b321
call fcn.00402500
test eax, eax
je 0x42b31a
mov esi, edi
call fcn.0042c670
jmp 0x42b335
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x42b326
push str.IIF_will_NOT_initiate_reboot
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 8
call fcn.0042d090
call fcn.0042e540
cmp dword [ebx + 0x14], 8
jb 0x42b358
mov eax, dword [ebx]
push eax
call fcn.00424860
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x42b39e
mov eax, ebx
push eax
call fcn.00424860
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x42b39e
push esi
lea edx, [ebp - 0x318]
push str.Error_extracting_files.__0x_X_
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
push str.Package_error
lea eax, [ebp - 0x318]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [edi + 0x10], 0xb
mov ecx, dword [ebp - 0x570]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00438876
mov esp, ebp
pop ebp
ret