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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x452a07
mov eax, dword fs:[0]
push eax
sub esp, 0x56c
mov eax, dword [0x468744]
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 0x45a528
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 0x42ace0
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.00406580
xor esi, esi
push esi
push esi
lea eax, [ebp - 0x574]
push eax
push 0x42a680
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 0x42ad4c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x570]
test esi, esi
jne 0x42b23b
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42ad72
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x42b23b
cmp dword [ebp - 0x564], 0
jne 0x42b23b
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42b26e
mov eax, dword [edi + 0xcb4]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x42b26e
lea edx, [edi + 0x814]
push edx
call fcn.0042cb40
cmp dword [ebx + 0x14], 8
jb 0x42adbe
mov eax, dword [ebx]
jmp 0x42adc0
mov eax, ebx
push eax
push str.__Source:__s
push 0x4699d4
xor eax, eax
call fcn.0042d020
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 0x42ae28
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 0x42ae55
cmp dword [ebx + 0x14], 8
jb 0x42ae32
mov eax, dword [ebx]
jmp 0x42ae34
mov eax, ebx
push eax
lea edx, [ebp - 0x218]
push 0x104
push edx
call fcn.0043a483
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.0042df40
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
xor eax, eax
cmp dword [edi + 0xc], eax
je 0x42af62
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.0042a490
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
jb 0x42aea7
mov eax, dword [eax]
push eax
push str.Error_in_command_line:__s
push 0x4699d4
mov eax, 2
call fcn.0042d020
add esp, 0xc
lea esi, [ebp - 0x558]
mov byte [ebp - 4], 1
call fcn.0042dc30
lea esi, [ebp - 0x558]
call fcn.0042a490
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.0042dc30
push 0x7f02
push 7
push 0x84
push 0x7d9
lea ecx, [ebp - 0x530]
lea edx, [ebx + 0x3a]
call fcn.00433a00
add esp, 0x10
cmp eax, 7
jne 0x42af4d
mov dword [0x4699f8], 0xa001
call fcn.0042cf60
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.0040cae0
jmp 0x42b27b
lea esi, [ebp - 0x530]
mov byte [ebp - 4], 0
call fcn.0040cae0
mov ebx, dword [ebp - 0x55c]
push 0x45bec4
call fcn.00402130
test eax, eax
je 0x42af7a
call fcn.0042bef0
jmp 0x42b1ca
push str.noinstall
call fcn.00402130
test eax, eax
je 0x42af94
mov esi, edi
call fcn.0042ba00
jmp 0x42b1ca
cmp dword [ebx + 0x14], 8
jb 0x42afa4
mov edx, dword [ebx]
mov dword [ebp - 0x568], edx
jmp 0x42afaa
mov dword [ebp - 0x568], ebx
lea esi, [ebp - 0x574]
mov byte [ebp - 0x560], 0
call fcn.0042a650
mov esi, eax
test esi, esi
jne 0x42b23b
call fcn.00402500
test eax, eax
je 0x42b08f
mov eax, dword [ebp - 0x570]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42aff7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x42b23b
cmp dword [ebp - 0x564], 0
jne 0x42b23b
call fcn.00431270
test al, al
je 0x42b062
or ecx, 0xffffffff
mov edi, 0x5010100
call fcn.00430b60
test al, al
je 0x42b056
lea esi, [ebp - 0x520]
call fcn.00431460
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 0x45e1a8
call fcn.00402130
test eax, eax
je 0x42b0b1
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x42b1ca
mov edx, dword [0x46afc0]
lea ecx, [ebp - 0x574]
push ecx
push 0x42a700
push 0
push 0x64
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x42aff7
push 0x45be14
call fcn.00402130
test eax, eax
je 0x42b0cb
mov eax, edi
call fcn.0042ba40
jmp 0x42b1ca
push str.extract
call fcn.00402130
test eax, eax
je 0x42b1ab
mov eax, 0x45e1ac
call fcn.0042d000
mov ecx, str.extract
call fcn.00402200
lea ecx, [ebp - 0x53c]
call fcn.00406670
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x53c]
mov esi, 8
cmp dword [ebp - 0x528], esi
jae 0x42b119
lea eax, [ebp - 0x53c]
push eax
push str.Extracting_to__s
push 0x4699d4
xor eax, eax
call fcn.0042d020
mov eax, dword [ebp - 0x53c]
add esp, 0xc
cmp dword [ebp - 0x528], esi
jae 0x42b142
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 0x42b161
lea ecx, [ebp - 0x53c]
cmp dword [ebx + 0x14], esi
jb 0x42b16a
mov eax, dword [ebx]
jmp 0x42b16c
mov eax, ebx
push 1
push ecx
push eax
call fcn.00424ee0
add esp, 0xc
test eax, eax
je 0x42b194
push eax
push str.Extract_error_0x_X
push 0x4699d4
mov eax, 2
call fcn.0042d020
add esp, 0xc
dec dword [0x4699f4]
lea esi, [ebp - 0x53c]
mov byte [ebp - 4], 0
call fcn.0042dc30
jmp 0x42b1ca
push 0x456394
call fcn.00402130
test eax, eax
je 0x42b1c3
push edi
call fcn.0042bba0
test al, al
je 0x42b1ca
mov esi, edi
call fcn.0042b7f0
push 0x45bec0
call fcn.00402130
test eax, eax
je 0x42b1f1
call fcn.00402500
test eax, eax
je 0x42b1ea
mov esi, edi
call fcn.0042c540
jmp 0x42b205
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x42b1f6
push str.IIF_will_NOT_initiate_reboot
push 0x4699d4
xor eax, eax
call fcn.0042d020
add esp, 8
call fcn.0042cf60
call fcn.0042e3f0
cmp dword [ebx + 0x14], 8
jb 0x42b228
mov eax, dword [ebx]
push eax
call fcn.00424790
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x42b26e
mov eax, ebx
push eax
call fcn.00424790
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x42b26e
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.00438786
mov esp, ebp
pop ebp
ret