Function at 0x42a6c0
Capabilities:
Create directory
Create thread
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4525e7
mov eax, dword fs:[0]
push eax
sub esp, 0x56c
mov eax, dword [0x469738]
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 - 0x318]
push edx
push esi
push 0x45b440
lea eax, [ebp - 0x520]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x318]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x42a770
sub eax, edx
sar eax, 1
lea ebx, [edi + 0xcd0]
push eax
lea eax, [ebp - 0x318]
mov esi, ebx
mov dword [ebp - 0x55c], ebx
call fcn.004065b0
xor esi, esi
push esi
push esi
lea eax, [ebp - 0x574]
push eax
push 0x42a120
push esi
lea edx, [ebp - 0x318]
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 0x42a7dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x570]
test esi, esi
jne 0x42ac68
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42a802
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x42ac68
cmp dword [ebp - 0x564], 0
jne 0x42ac68
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42ac9b
mov eax, dword [edi + 0xcb4]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x42ac9b
lea edx, [edi + 0x814]
push edx
call fcn.0042cc70
mov esi, 8
cmp dword [ebx + 0x14], esi
jb 0x42a852
mov eax, dword [ebx]
jmp 0x42a854
mov eax, ebx
push eax
push str.__Source:__s
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 0xc
cmp dword [ebx + 0x14], esi
jb 0x42a872
mov eax, dword [ebx]
jmp 0x42a874
mov eax, ebx
push eax
lea eax, [ebp - 0x318]
push 0x104
push eax
call fcn.0043a043
add esp, 0xc
push str.Lang
lea ecx, [ebp - 0x318]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea esi, [ebp - 0x318]
call fcn.0042e040
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
xor eax, eax
cmp dword [edi + 0xc], eax
je 0x42a9a2
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.00429f30
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
jb 0x42a8e7
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.004066f0
lea esi, [ebp - 0x558]
call fcn.00429f30
mov ecx, eax
lea ebx, [ebp - 0x530]
mov byte [ebp - 4], 3
call fcn.0040d5e0
mov ebx, 1
mov byte [ebp - 4], bl
call fcn.004066f0
push 0x7f02
push 7
push 0x84
push 0x7d9
lea ecx, [ebp - 0x530]
lea edx, [ebx + 0x3a]
call fcn.00433c70
add esp, 0x10
cmp eax, 7
jne 0x42a98d
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.0040c730
jmp 0x42aca8
lea esi, [ebp - 0x530]
mov byte [ebp - 4], 0
call fcn.0040c730
mov ebx, dword [ebp - 0x55c]
push 0x45cdc0
call fcn.00402130
test eax, eax
je 0x42a9ba
call fcn.0042b8a0
jmp 0x42ac0a
push str.noinstall
call fcn.00402130
test eax, eax
je 0x42a9d4
mov esi, edi
call fcn.0042b3c0
jmp 0x42ac0a
cmp dword [ebx + 0x14], 8
jb 0x42a9e4
mov edx, dword [ebx]
mov dword [ebp - 0x568], edx
jmp 0x42a9ea
mov dword [ebp - 0x568], ebx
lea esi, [ebp - 0x574]
mov byte [ebp - 0x560], 0
call fcn.0042a0f0
mov esi, eax
test esi, esi
jne 0x42ac68
call fcn.00402500
test eax, eax
je 0x42aacf
mov eax, dword [ebp - 0x570]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42aa37
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x42ac68
cmp dword [ebp - 0x564], 0
jne 0x42ac68
call fcn.00431430
test al, al
je 0x42aaa2
or ecx, 0xffffffff
mov edi, 0x5010100
call fcn.00430d20
test al, al
je 0x42aa96
lea esi, [ebp - 0x520]
call fcn.00431620
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 0x45eb94
call fcn.00402130
test eax, eax
je 0x42aaf1
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x42ac0a
mov edx, dword [0x46bec0]
lea ecx, [ebp - 0x574]
push ecx
push 0x42a1a0
push 0
push 0x64
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x42aa37
push 0x45cd10
call fcn.00402130
test eax, eax
je 0x42ab0b
mov eax, edi
call fcn.0042b400
jmp 0x42ac0a
push str.extract
call fcn.00402130
test eax, eax
je 0x42abeb
mov eax, 0x45eb98
call fcn.0042d130
mov ecx, str.extract
call fcn.00402200
lea ecx, [ebp - 0x53c]
call fcn.004066a0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x53c]
mov esi, 8
cmp dword [ebp - 0x528], esi
jae 0x42ab59
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 0x42ab82
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 0x42aba1
lea ecx, [ebp - 0x53c]
cmp dword [ebx + 0x14], esi
jb 0x42abaa
mov eax, dword [ebx]
jmp 0x42abac
mov eax, ebx
push 1
push ecx
push eax
call fcn.00424bf0
add esp, 0xc
test eax, eax
je 0x42abd4
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.004066f0
jmp 0x42ac0a
push 0x457414
call fcn.00402130
test eax, eax
je 0x42ac03
push edi
call fcn.0042b560
test al, al
je 0x42ac0a
mov esi, edi
call fcn.0042b1b0
push 0x45cdbc
call fcn.00402130
test eax, eax
je 0x42ac31
call fcn.00402500
test eax, eax
je 0x42ac2a
mov esi, edi
call fcn.0042c650
jmp 0x42ac45
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x42ac36
push str.IIF_will_NOT_initiate_reboot
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 8
call fcn.0042d090
call fcn.0042e4f0
cmp dword [ebx + 0x14], 8
jb 0x42ac57
mov ebx, dword [ebx]
push ebx
call fcn.004244a0
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x42ac9b
push esi
lea edx, [ebp - 0x110]
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 - 0x110]
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.00438351
mov esp, ebp
pop ebp
ret