Function at 0x42c770
Capabilities:
Connect network resource
Delete file
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x330
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x520014]
xor ecx, ebp
mov dword [esp + 0x328], ecx
xor ecx, ecx
dec ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
cmp byte [eax + 0xb], 0
js 0x42c7b9
mov ecx, dword [eax + 8]
mov dword [esp + 0x68], ecx
movq xmm0, qword [eax]
movq qword [esp + 0x60], xmm0
jmp 0x42c7c7
lea ecx, [esp + 0x60]
push dword [eax + 4]
push dword [eax]
call fcn.0046b840
movzx ecx, byte [esp + 0x6b]
mov eax, ecx
test cl, cl
jns 0x42c7d6
mov eax, dword [esp + 0x64]
test eax, eax
je 0x42cdfd
test cl, cl
jns 0x42c7e8
mov edx, dword [esp + 0x60]
jmp 0x42c7ec
lea edx, [esp + 0x60]
lea edi, [esp + 0xb0]
mov ecx, edi
push eax
push edx
call fcn.00443e60
push edi
call fcn.004476f0
add esp, 4
mov ebx, eax
mov ecx, edi
call fcn.0046c2c0
test bl, bl
jne 0x42cc47
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
je 0x42c82c
cmp eax, 0x52e
jne 0x42d26d
xor ebx, ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call fcn.004d51c0
add esp, 4
mov dword [esp + 0x14], eax
push eax
push ebx
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
je 0x42c87f
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp esi, 0xffffffff
je 0x42d7b0
call fcn.0046dd90
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebx, esi
lea eax, [ebx + 1]
mov dword [esp + 0x10], eax
cmp eax, 1
mov dword [esp + 0xc], ebx
jbe 0x42cd62
xor eax, eax
lea ecx, [esp + 0xa0]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
pxor xmm0, xmm0
lea esi, [esp + 0x2d0]
movdqu xmmword [esi + 0xc], xmm0
movdqa xmmword [esi], xmm0
push 0x1c
push esi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
cmp eax, 0x1c
jne 0x42ca7a
mov eax, dword [esp + 0x2dc]
cmp eax, 0xffffffff
je 0x42ca7a
cmp dword [esp + 0x2e8], 0x40000
jne 0x42ca5a
push 0x20a
push 0
push edi
call fcn.004926b0
add esp, 0xc
push 0x104
push edi
push dword [esp + 0x2d8]
push ebx
call sub.KERNEL32.dll_K32GetMappedFileNameW
dec eax
cmp eax, 0x103
ja 0x42ca53
push edi
call fcn.004a81e6
add esp, 4
push 1
push 4
push str..msi
push eax
push edi
call fcn.00449650
add esp, 0x14
test al, al
je 0x42ca53
push edi
call fcn.004a81e6
add esp, 4
cmp eax, 0x7ffffff0
jae 0x42e1e2
mov ebx, eax
cmp eax, 5
jae 0x42c992
mov byte [esp + 0x2cb], bl
cmp ebx, 3
jne 0x42ca66
movzx eax, word [esp + 0xb4]
mov word [esp + 0x2c4], ax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x2c0], eax
lea esi, [esp + 0x2c0]
jmp 0x42c9d7
lea edi, [ebx + 8]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.0048e8dd
add esp, 4
mov esi, eax
mov dword [esp + 0x2c0], eax
or edi, 0x80000000
mov dword [esp + 0x2c8], edi
lea edi, [esp + 0xb0]
mov dword [esp + 0x2c4], ebx
mov eax, ebx
add eax, ebx
push eax
push edi
push esi
call fcn.00491bb0
add esp, 0xc
mov word [esi + ebx*2], 0
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa8]
jae 0x42ca1b
mov ecx, dword [esp + 0x2c8]
mov dword [eax + 8], ecx
movq xmm0, qword [esp + 0x2c0]
movq qword [eax], xmm0
add eax, 0xc
mov dword [esp + 0xa4], eax
mov ebx, dword [esp + 0xc]
lea esi, [esp + 0x2d0]
jmp 0x42ca53
lea ecx, [esp + 0xa0]
lea eax, [esp + 0x2c0]
push eax
call fcn.0042e4f0
cmp byte [esp + 0x2cb], 0
mov ebx, dword [esp + 0xc]
lea esi, [esp + 0x2d0]
jns 0x42ca53
push dword [esp + 0x2c0]
call fcn.0048e90d
add esp, 4
mov eax, dword [esp + 0x2dc]
add eax, dword [esp + 0x2d0]
jmp 0x42c8b8
lea esi, [esp + 0x2c0]
test ebx, ebx
jne 0x42c9c8
jmp 0x42c9d7
mov eax, dword [esp + 0xa4]
sub eax, dword [esp + 0xa0]
cmp eax, 0xc
jne 0x42cff9
lea esi, [esp + 0x90]
xor eax, eax
dec eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov ecx, esi
call fcn.0046c1e0
mov eax, dword [esp + 0xa4]
movzx edx, byte [eax - 1]
test dl, dl
jns 0x42cac1
mov edx, dword [eax - 8]
mov eax, dword [eax - 0xc]
jmp 0x42cac4
add eax, 0xfffffff4
mov ecx, edi
push edx
push eax
call fcn.00443e60
push esi
push edi
call fcn.00447cf0
add esp, 8
mov ebx, eax
mov ecx, edi
call fcn.0046c2c0
test bl, bl
je 0x42d13f
cmp byte [esp + 0x7b], 0
movzx eax, byte [esp + 0x9b]
js 0x42d524
test al, al
jns 0x42cb18
lea ecx, [esp + 0x70]
push dword [esp + 0x94]
push dword [esp + 0x94]
call fcn.004431b0
jmp 0x42cb32
mov eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
movq xmm0, qword [esp + 0x90]
movq qword [esp + 0x70], xmm0
lea ecx, [esp + 0x90]
call fcn.0046c2c0
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x42cb90
mov eax, dword [esp + 0xa4]
cmp eax, esi
je 0x42ce4f
lea edi, [eax - 0xc]
cmp byte [eax - 1], 0
jns 0x42cb6c
push dword [eax - 0xc]
call fcn.0048e90d
add esp, 4
mov eax, edi
cmp edi, esi
jne 0x42cb58
mov eax, dword [esp + 0xa0]
lea edi, [esp + 0xb0]
mov dword [esp + 0xa4], esi
push eax
call fcn.0048e90d
add esp, 4
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x10]
cmp eax, 2
jb 0x42cbad
call fcn.0046dd90
push dword [esp + 0xc]
call fcn.00470d70
add esp, 4
test bl, bl
je 0x42cd30
movzx eax, byte [esp + 0x7b]
test al, al
jns 0x42cbc8
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
jmp 0x42cbcc
lea edx, [esp + 0x70]
mov ecx, edi
push eax
push edx
call fcn.00443e60
push edi
call fcn.004476f0
add esp, 4
mov ebx, eax
mov ecx, edi
call fcn.0046c2c0
test bl, bl
je 0x42cd30
cmp byte [esp + 0x6b], 0
movzx eax, byte [esp + 0x7b]
js 0x42d4c0
test al, al
jns 0x42cc33
lea ecx, [esp + 0x60]
push dword [esp + 0x74]
push dword [esp + 0x74]
call fcn.004431b0
mov bl, 1
cmp byte [esp + 0x7b], 0
jns 0x42cc29
push dword [esp + 0x70]
call fcn.0048e90d
add esp, 4
test bl, bl
je 0x42ccff
jmp 0x42cc47
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
movq xmm0, qword [esp + 0x70]
movq qword [esp + 0x60], xmm0
mov eax, dword [ebp + 0x10]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xa0], xmm0
movzx ecx, byte [eax + 0xb]
mov edx, ecx
test cl, cl
jns 0x42cc64
mov edx, dword [eax + 4]
test edx, edx
jne 0x42cca8
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x14a
push str.GetPartnerPackageOverrideGUIDMarker
push 0
call fcn.0043a1a0
lea edi, [esp + 0xec]
mov ecx, edi
push 0x507459
push str.partner_package_guid
call fcn.004b9460
mov ecx, edi
push 0x507adf
push 0x507aa8
jmp 0x42ccf0
test cl, cl
jns 0x42ccae
mov eax, dword [eax]
lea ecx, [esp + 0xa0]
push ecx
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jns 0x42cde9
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x151
push str.GetPartnerPackageOverrideGUIDMarker
push 0
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507ca8
push str.Failed_to_decode_guid_string:_assuming_no_override_for_brand_package.
call fcn.004b9460
mov ecx, esi
call fcn.0043a3d0
mov esi, dword [ebp + 8]
mov dword [esi], 0
cmp byte [esp + 0x6b], 0
jns 0x42cd18
push dword [esp + 0x60]
call fcn.0048e90d
add esp, 4
mov ecx, dword [esp + 0x328]
xor ecx, ebp
call fcn.0048f468
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
dec eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
movzx eax, byte [esp + 0x6b]
test al, al
jns 0x42ce56
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
jmp 0x42ce5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [esp + 0x2d0]
push eax
push edi
call fcn.004bcc70
add esp, 8
lea esi, [esp + 0xb0]
mov ecx, esi
push edi
push 0xea
push str.FindMsiDatabaseLocalCopy
push 1
call fcn.004bca70
lea ebx, [esp + 0xb8]
lea ecx, [esp + 0xec]
push 0x507b5c
push str.Failed_to_open_parent_process_id
call fcn.004b9460
mov ecx, ebx
push dword [esp + 0x14]
call fcn.004b9380
mov ecx, esi
call fcn.004bcab0
cmp byte [edi + 0xb], 0
jns 0x42cdd8
push dword [esp + 0x2d0]
call fcn.0048e90d
add esp, 4
xor ebx, ebx
mov esi, dword [ebp + 8]
lea edi, [esp + 0xb0]
jmp 0x42cb93
cmp byte [esp + 0x6b], 0
jns 0x42d1a5
mov eax, dword [esp + 0x60]
jmp 0x42d1a9
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x12b
push 0x507a90
push 0
call fcn.0043a1a0
lea edi, [esp + 0xec]
mov ecx, edi
push 0x507444
push str.msi_database
call fcn.004b9460
mov ecx, edi
push 0x507adf
push 0x507aa8
call fcn.004b9460
mov ecx, esi
mov esi, dword [ebp + 8]
call fcn.0043a3d0
jmp 0x42ccff
mov eax, esi
jmp 0x42cb80
lea edx, [esp + 0x60]
lea esi, [esp + 0x2d0]
mov ecx, esi
push eax
push edx
call fcn.00443e60
mov ecx, esi
push edi
call fcn.0046c3d0
cmp byte [esp + 0xbb], 0
jns 0x42ce98
lea ecx, [esp + 0xa0]
push dword [esp + 0xb4]
push dword [esp + 0xb4]
call fcn.0046b840
jmp 0x42ceb8
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xa8], eax
movq xmm0, qword [esp + 0xb0]
movq qword [esp + 0xa0], xmm0
lea ecx, [esp + 0xb0]
call fcn.0046c2c0
lea esi, [esp + 0x2d0]
mov ecx, esi
call fcn.0046c2c0
pxor xmm0, xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
cmp byte [esp + 0xab], 0
jns 0x42cef2
mov eax, dword [esp + 0xa0]
jmp 0x42cef9
lea eax, [esp + 0xa0]
mov dword [esp + 0x2e4], eax
mov eax, 0x507bbe
push 8
push eax
push eax
push esi
call sub.MPR.dll_WNetAddConnection2W
test eax, eax
sete bl
jne 0x42cf69
lea ecx, [esp + 0xb0]
push 0x123
push str.ConnectInteractiveToFileIfLogonFailure
push 0
call fcn.0043a1a0
lea esi, [esp + 0xec]
mov ecx, esi
push 0x507c3e
push str.Successfully_connected_to
call fcn.004b9460
movzx eax, byte [esp + 0xab]
test al, al
jns 0x42d2d0
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x42d2d7
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [esp + 0x90]
push eax
push edi
call fcn.004bcc70
add esp, 8
lea ecx, [esp + 0xb0]
push edi
push 0x120
push str.ConnectInteractiveToFileIfLogonFailure
push 1
call fcn.004bca70
lea edi, [esp + 0xb8]
lea ecx, [esp + 0xec]
push 0x507c0c
push str.Failed_WNetAddConnection2_with_error
call fcn.004b9460
mov ecx, edi
push esi
call fcn.004b9380
mov esi, eax
add esi, 0x34
mov ecx, esi
push 0x507c23
push str._during_connection_to
call fcn.004b9460
movzx eax, byte [esp + 0xab]
test al, al
jns 0x42d332
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x42d339
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [esp + 0x2c0]
push eax
push edi
call fcn.004bcc70
add esp, 8
lea esi, [esp + 0xb0]
mov ecx, esi
push edi
push 0x10c
push str.FindMsiDatabaseLocalCopy
push 1
call fcn.004bca70
lea ebx, [esp + 0xb8]
lea ecx, [esp + 0xec]
push 0x507bbc
push str.Unexpected_count_of_local_mapped_msi_
call fcn.004b9460
mov eax, dword [esp + 0xa4]
sub eax, dword [esp + 0xa0]
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov ecx, ebx
push eax
call fcn.004b9c40
mov ecx, esi
call fcn.004bcab0
cmp byte [edi + 0xb], 0
jns 0x42d083
push dword [esp + 0x2c0]
call fcn.0048e90d
add esp, 4
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
cmp ebx, eax
je 0x42d131
lea esi, [esp + 0xb0]
mov edi, esi
mov ecx, esi
push 0x10e
push str.FindMsiDatabaseLocalCopy
push 0
call fcn.0043a1a0
movzx eax, byte [ebx + 0xb]
mov ecx, ebx
test al, al
jns 0x42d0c8
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
push eax
push ecx
lea esi, [esp + 0x2c8]
push esi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [esp + 0x2cb]
test al, al
jns 0x42d0f4
mov eax, dword [esp + 0x2c4]
mov esi, dword [esp + 0x2c0]
lea ecx, [esp + 0xec]
push eax
push esi
call fcn.0046ab40
cmp byte [esp + 0x2cb], 0
mov esi, edi
jns 0x42d11d
push dword [esp + 0x2c0]
call fcn.0048e90d
add esp, 4
mov ecx, esi
call fcn.0043a3d0
add ebx, 0xc
cmp ebx, dword [esp + 0x14]
jne 0x42d0a4
xor ebx, ebx
lea edi, [esp + 0xb0]
jmp 0x42cb3e
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esp + 0x80]
push eax
push esi
call fcn.004bcc70
add esp, 8
lea ecx, [esp + 0xb0]
push esi
push 0x105
push str.FindMsiDatabaseLocalCopy
push 1
call fcn.004bca70
lea esi, [esp + 0xec]
mov ecx, esi
push 0x507b94
push str.DevicePathToDriveLetterPath_failed_for_path
call fcn.004b9460
mov eax, dword [esp + 0xa4]
movzx ecx, byte [eax - 1]
test cl, cl
jns 0x42d3cd
mov ecx, dword [eax - 8]
mov eax, dword [eax - 0xc]
jmp 0x42d3d0
lea eax, [esp + 0x60]
sub esp, 0x1c
movdqa xmm0, xmmword [0x507420]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x42d21c
xor edi, edi
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x3ec
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507746
push str.Failed_to_open_msi_file_for_reading
call fcn.004b9460
mov ecx, esi
mov esi, dword [ebp + 8]
call fcn.0043a3d0
mov dword [esi], edi
jmp 0x42d659
lea eax, [esp + 0x58]
xor ecx, ecx
dec ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
xor edi, edi
push 2
push eax
push edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x42d44f
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x3f4
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507790
push str.Failed_to_get_source_file_size_for_extracted_package_validation.
jmp 0x42d640
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [esp + 0x2d0]
push eax
push edi
call fcn.004bcc70
add esp, 8
lea esi, [esp + 0xb0]
mov ecx, esi
push edi
push 0x139
push 0x507a90
push 1
call fcn.004bca70
lea edi, [esp + 0xb8]
lea ecx, [esp + 0xec]
push 0x507ae9
push str.MSI_file
call fcn.004b9460
cmp byte [esp + 0x6b], 0
jns 0x42d4dd
mov eax, dword [esp + 0x60]
jmp 0x42d4e1
lea ecx, [esp + 0xa0]
lea edi, [esp + 0x2c0]
push eax
push ecx
push edi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [edi + 0xb]
test al, al
jns 0x42d2ff
mov eax, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2c0]
mov ecx, esi
push eax
push edi
call fcn.0046ab40
cmp byte [esp + 0x2cb], 0
jns 0x42d321
push dword [esp + 0x2c0]
call fcn.0048e90d
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.0043a3d0
mov esi, dword [ebp + 8]
jmp 0x42d3ab
lea ecx, [esp + 0xa0]
lea edi, [esp + 0x2c0]
push eax
push ecx
push edi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [edi + 0xb]
test al, al
jns 0x42d361
mov eax, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2c0]
mov ecx, esi
push eax
push edi
call fcn.0046ab40
cmp byte [esp + 0x2cb], 0
jns 0x42d383
push dword [esp + 0x2c0]
call fcn.0048e90d
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.004bcab0
cmp byte [esp + 0x9b], 0
mov esi, dword [ebp + 8]
jns 0x42d3ab
push dword [esp + 0x90]
call fcn.0048e90d
add esp, 4
cmp byte [esp + 0xab], 0
jns 0x42cc16
push dword [esp + 0xa0]
call fcn.0048e90d
add esp, 4
jmp 0x42cc16
add eax, 0xfffffff4
lea edi, [esp + 0x2c0]
push ecx
push eax
push edi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [edi + 0xb]
test al, al
jns 0x42d3f8
mov eax, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2c0]
mov ecx, esi
push eax
push edi
call fcn.0046ab40
cmp byte [esp + 0x2cb], 0
jns 0x42d41a
push dword [esp + 0x2c0]
call fcn.0048e90d
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.004bcab0
cmp byte [esp + 0x8b], 0
lea edi, [esp + 0xb0]
jns 0x42cb32
push dword [esp + 0x80]
call fcn.0048e90d
add esp, 4
jmp 0x42cb32
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x50], 0xfffffff0
sub esp, 0x14
movq xmm0, qword [esp + 0x64]
movq qword [esp + 4], xmm0
mov dword [esp], ebx
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x42d546
xor edi, edi
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x3fb
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x5077be
push str.Failed_to_move_file_pointer_for_guid_reading.
jmp 0x42d640
test al, al
lea edx, [esp + 0x70]
cmovs eax, dword [edx + 4]
cmovs edx, dword [edx]
lea ecx, [esp + 0x60]
push eax
push edx
call fcn.004430b0
jmp 0x42cc14
lea eax, [esp + 0x60]
mov ecx, edi
push eax
call fcn.004b9bc0
lea ecx, [eax + 0x34]
push 0x507b21
push str.does_not_exist:_assuming_no_override_for_brand_package.
call fcn.004b9460
mov ecx, esi
call fcn.004bcab0
cmp byte [esp + 0x2db], 0
jns 0x42ccfc
push dword [esp + 0x2d0]
call fcn.0048e90d
add esp, 4
jmp 0x42ccfc
test al, al
cmovs eax, dword [esp + 0x94]
cmovs esi, dword [esp + 0x90]
lea ecx, [esp + 0x70]
push eax
push esi
call fcn.004430b0
jmp 0x42cb32
pcmpeqd xmm0, xmm0
lea eax, [esp + 0x90]
movdqa xmmword [eax], xmm0
xor edi, edi
mov dword [esp + 0xb0], edi
push edi
lea ecx, [esp + 0xb4]
push ecx
push 0x10
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42d616
cmp dword [esp + 0xb0], 0
je 0x42d616
movdqa xmm0, xmmword [esp + 0xa0]
pcmpeqb xmm0, xmmword [esp + 0x90]
pmovmskb eax, xmm0
cmp eax, 0xffff
jne 0x42d665
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x48], 0xffffffe8
sub esp, 0x14
movq xmm0, qword [esp + 0x5c]
movq qword [esp + 4], xmm0
mov dword [esp], ebx
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x42d7b7
xor edi, edi
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x40f
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507870
push str.Failed_to_move_file_pointer_for_target_position_reading.
jmp 0x42d640
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x403
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x5077e1
push str.Failed_to_read_tailing_guid_marker
call fcn.004b9460
mov ecx, esi
mov esi, dword [ebp + 8]
call fcn.0043a3d0
mov dword [esi], edi
test ebx, ebx
je 0x42cd05
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x42cd05
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esp + 0x80]
push eax
push esi
call fcn.004bcc70
add esp, 8
lea ecx, [esp + 0xb0]
push esi
push 0x409
push str.ExtractPartnerPackageOverridePackage
push 1
call fcn.004bca70
lea edi, [esp + 0xec]
mov ecx, edi
push 0x50781b
push str.Tail_GUID_from_msi_does_not_match_specified_guid_marker:
call fcn.004b9460
mov ecx, edi
push 0x507828
push str.guid_marker
call fcn.004b9460
movdqa xmm0, xmmword [esp + 0xa0]
lea eax, [esp + 0x2c0]
movdqa xmmword [eax], xmm0
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x2d0]
movdqa xmmword [esi + 0x40], xmm0
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
push 0x28
push esi
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
je 0x42d710
lea ecx, [esp + 0xb8]
push esi
call fcn.004b9bc0
mov ecx, edi
push 0x507837
push str._tailing_guid
call fcn.004b9460
movdqa xmm0, xmmword [esp + 0x90]
movdqa xmmword [esp + 0x2c0], xmm0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x310], xmm0
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
push 0x28
push esi
lea eax, [esp + 0x2c8]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x42dc23
lea ecx, [esp + 0xb0]
call fcn.004bcab0
cmp byte [esp + 0x8b], 0
jns 0x42d7a2
push dword [esp + 0x80]
call fcn.0048e90d
add esp, 4
mov esi, dword [ebp + 8]
mov dword [esi], 0
jmp 0x42d651
xor esi, esi
jmp 0x42c876
lea eax, [esp + 0x40]
xor ecx, ecx
dec ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
xor edi, edi
mov dword [esp + 0xb0], edi
push edi
lea ecx, [esp + 0xb4]
push ecx
push 8
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42d852
cmp dword [esp + 0xb0], 0
je 0x42d852
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
sub esp, 0x14
movq xmm0, qword [esp + 0x4c]
movq qword [esp + 4], xmm0
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x42d865
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x41d
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x5078af
push str.Failed_to_move_file_pointer_to_target_pos_for_package_reading.
jmp 0x42d640
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x417
jmp 0x42d624
pcmpeqd xmm0, xmm0
lea eax, [esp + 0x80]
movdqa xmmword [eax], xmm0
mov dword [esp + 0xb0], edi
push edi
lea ecx, [esp + 0xb4]
push ecx
push 0x10
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42dbf2
cmp dword [esp + 0xb0], 0
je 0x42dbf2
movdqa xmm0, xmmword [esp + 0xa0]
pcmpeqb xmm0, xmmword [esp + 0x80]
pmovmskb eax, xmm0
cmp eax, 0xffff
jne 0x42dc35
xor edi, edi
lea eax, [esp + 0x34]
mov dword [eax], edi
mov dword [esp + 0xb0], edi
push edi
lea ecx, [esp + 0xb4]
push ecx
push 4
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42dd6a
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x42dd6a
cmp eax, 4
jne 0x42dd6a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x42dd6a
xor edi, edi
lea esi, [esp + 0x2c0]
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov byte [esp + 0xb0], 0
mov ecx, esi
lea edx, [esp + 0xb0]
push edx
push eax
call fcn.004b9ef0
mov ecx, dword [esp + 0x34]
mov eax, dword [esi]
mov dword [esp + 0xb0], edi
push edi
lea edx, [esp + 0xb4]
push edx
mov esi, ecx
push ecx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42d968
mov eax, dword [esp + 0xb0]
xor edi, edi
cmp esi, eax
jne 0x42ddaa
lea eax, [esp + 0x30]
mov dword [eax], edi
mov dword [esp + 0xb0], edi
push edi
lea ecx, [esp + 0xb4]
push ecx
push 4
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42ddd6
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x42ddd6
cmp eax, 4
jne 0x42ddd6
mov eax, dword [esp + 0x30]
test eax, eax
je 0x42ddd6
xor edi, edi
lea esi, [esp + 0x70]
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov byte [esp + 0xb0], 0
mov ecx, esi
lea edx, [esp + 0xb0]
push edx
push eax
call fcn.004b9ef0
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
mov dword [esp + 0xb0], edi
push edi
lea edx, [esp + 0xb4]
push edx
mov esi, ecx
push ecx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42da10
mov eax, dword [esp + 0xb0]
cmp esi, eax
jne 0x42ded4
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0xb0]
call fcn.004db470
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x2c4]
sub edx, eax
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov edi, dword [edi + 4]
sub edi, eax
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
sub esi, eax
lea ecx, [esp + 0xb0]
push edx
push dword [esp + 0x10]
push edi
push dword [esp + 0x1c]
push esi
push eax
call fcn.004db670
mov byte [esp + 0xc], al
lea ecx, [esp + 0xb0]
call fcn.004db490
cmp byte [esp + 0xc], 0
je 0x42df16
lea esi, [esp + 0x24]
xor eax, eax
dec eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
lea edi, [esp + 0xb0]
push edi
call fcn.0042aac0
add esp, 4
push edi
push esi
call fcn.0042add0
add esp, 8
cmp byte [esp + 0xbb], 0
jns 0x42dac5
push dword [esp + 0xb0]
call fcn.0048e90d
add esp, 4
movzx eax, byte [esp + 0x2f]
test al, al
jns 0x42dad6
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
lea edi, [esp + 0xb0]
mov ecx, edi
push eax
push esi
call fcn.00443e60
push 0x1c
call fcn.0048e8dd
add esp, 4
mov esi, eax
mov ecx, eax
push 0x261
push edi
call fcn.00443c60
mov ecx, edi
call fcn.0046c2c0
mov dword [esp + 0xc], esi
mov ecx, esi
call fcn.00470460
test al, al
je 0x42df88
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x2c4]
mov ecx, dword [esp + 0xc]
call fcn.004262d0
mov esi, eax
xor eax, eax
mov dword [esp + 0xb0], eax
push 2
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x42de8a
mov ecx, eax
sub edi, dword [esp + 0x10]
xor eax, eax
push eax
push edi
push eax
mov dword [esp + 0x20], ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_LockFile]
xor eax, eax
push eax
lea eax, [esp + 0xb4]
push eax
push edi
push dword [esp + 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 0x10], eax
xor eax, eax
push eax
push edi
push eax
push dword [esp + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [esp + 0x10], 0
je 0x42de8a
cmp dword [esp + 0xb0], edi
jne 0x42de8a
mov ecx, dword [ebp + 0x18]
lea eax, [esp + 0x24]
cmp eax, ecx
sete dl
test ecx, ecx
je 0x42de57
test dl, dl
jne 0x42de57
cmp byte [ecx + 0xb], 0
movzx edx, byte [esp + 0x2f]
js 0x42e0fc
test dl, dl
jns 0x42de46
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.004431b0
jmp 0x42de57
xor edi, edi
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x424
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x5078d3
push str.Failed_to_read_starting_guid_marker
jmp 0x42d640
lea ecx, [esp + 0xb8]
push esi
call fcn.004b9bc0
jmp 0x42d77d
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esp + 0x70]
push eax
push esi
call fcn.004bcc70
add esp, 8
lea ecx, [esp + 0xb0]
push esi
push 0x42a
push str.ExtractPartnerPackageOverridePackage
push 1
call fcn.004bca70
lea edi, [esp + 0xec]
mov ecx, edi
push 0x507917
push str.Appendix_start_GUID_from_msi_does_not_match_specified_guid_marker:
call fcn.004b9460
mov ecx, edi
push 0x507828
push str.guid_marker
call fcn.004b9460
movdqa xmm0, xmmword [esp + 0xa0]
lea eax, [esp + 0x2c0]
movdqa xmmword [eax], xmm0
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x2d0]
movdqa xmmword [esi + 0x40], xmm0
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
push 0x28
push esi
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
je 0x42dcdd
lea ecx, [esp + 0xb8]
push esi
call fcn.004b9bc0
mov ecx, edi
push 0x507837
push str._tailing_guid
call fcn.004b9460
movdqa xmm0, xmmword [esp + 0x80]
movdqa xmmword [esp + 0x2c0], xmm0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x310], xmm0
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
push 0x28
push esi
lea eax, [esp + 0x2c8]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x42de34
lea ecx, [esp + 0xb0]
call fcn.004bcab0
cmp byte [esp + 0x7b], 0
jns 0x42d7a2
push dword [esp + 0x70]
jmp 0x42d79a
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x433
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x50792f
push str.Failed_to_read_zip_size
call fcn.004b9460
mov ecx, esi
call fcn.0043a3d0
mov eax, dword [ebp + 8]
mov dword [eax], edi
jmp 0x42de2c
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x43a
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507947
push str.Failed_to_read_zip_data
jmp 0x42de00
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x444
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507965
push str.Failed_to_read_signature_size
call fcn.004b9460
mov ecx, esi
call fcn.0043a3d0
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov eax, dword [esp + 0x2c0]
test eax, eax
je 0x42de2c
mov dword [esp + 0x2c4], eax
push eax
call fcn.0048e90d
add esp, 4
mov esi, dword [ebp + 8]
jmp 0x42d651
lea ecx, [esp + 0xb8]
push esi
call fcn.004b9bc0
jmp 0x42dd4a
mov eax, dword [esp + 0x2c]
mov dword [ecx + 8], eax
movq xmm0, qword [esp + 0x24]
movq qword [ecx], xmm0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov dword [eax], ecx
cmp byte [esp + 0x2f], 0
jns 0x42de73
push dword [esp + 0x24]
call fcn.0048e90d
add esp, 4
mov eax, dword [esp + 0x70]
test eax, eax
je 0x42de11
mov dword [esp + 0x74], eax
push eax
call fcn.0048e90d
add esp, 4
jmp 0x42de11
lea ecx, [esp + 0xb0]
push 0x467
push str.ExtractPartnerPackageOverridePackage
push 0
call fcn.0043a1a0
lea esi, [esp + 0xec]
mov ecx, esi
push 0x5079ef
push str.Failed_to_write_file_data_to_output_file
call fcn.004b9460
movzx eax, byte [esp + 0x2f]
test al, al
jns 0x42dfd2
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
jmp 0x42dfd6
xor edi, edi
lea esi, [esp + 0xb0]
mov ecx, esi
push 0x44c
push str.ExtractPartnerPackageOverridePackage
push edi
call fcn.0043a1a0
lea ecx, [esp + 0xec]
push 0x507983
push str.Failed_to_read_signature_data
call fcn.004b9460
mov ecx, esi
call fcn.0043a3d0
mov eax, dword [ebp + 8]
mov dword [eax], edi
jmp 0x42de73
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [esp + 0x2d0]
push eax
push edi
call fcn.004bcc70
add esp, 8
lea esi, [esp + 0xb0]
mov ecx, esi
push edi
push 0x453
push str.ExtractPartnerPackageOverridePackage
push 1
call fcn.004bca70
lea ecx, [esp + 0xec]
push 0x50799d
push str.Zip_verification_failed:
call fcn.004b9460
mov ecx, esi
call fcn.004bcab0
cmp byte [edi + 0xb], 0
jns 0x42df7a
push dword [esp + 0x2d0]
call fcn.0048e90d
add esp, 4
mov eax, dword [ebp + 8]
mov dword [eax], 0
jmp 0x42de73
lea ecx, [esp + 0xb0]
push 0x45e
push str.ExtractPartnerPackageOverridePackage
push 0
call fcn.0043a1a0
lea esi, [esp + 0xec]
mov ecx, esi
push 0x5079c5
push str.Failed_to_open_target_file_for_reading
call fcn.004b9460
movzx eax, byte [esp + 0x2f]
test al, al
jns 0x42e075
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
jmp 0x42e079
lea ecx, [esp + 0x24]
lea edi, [esp + 0x2d0]
push eax
push ecx
push edi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [edi + 0xb]
test al, al
jns 0x42dffe
mov eax, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2d0]
mov ecx, esi
push eax
push edi
call fcn.0046ab40
cmp byte [esp + 0x2db], 0
jns 0x42e020
push dword [esp + 0x2d0]
call fcn.0048e90d
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.0043a3d0
cmp dword [esp + 0xc], 0
je 0x42e047
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.0046c140
push esi
call fcn.0048e90d
add esp, 4
cmp byte [esp + 0x2f], 0
jns 0x42e054
mov eax, dword [esp + 0x24]
jmp 0x42e058
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x42e114
mov eax, dword [ebp + 8]
mov dword [eax], 0
jmp 0x42de60
lea ecx, [esp + 0x24]
lea edi, [esp + 0x2d0]
push eax
push ecx
push edi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [edi + 0xb]
test al, al
jns 0x42e0a1
mov eax, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2d0]
mov ecx, esi
push eax
push edi
call fcn.0046ab40
cmp byte [esp + 0x2db], 0
jns 0x42e0c3
push dword [esp + 0x2d0]
call fcn.0048e90d
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.0043a3d0
mov eax, dword [ebp + 8]
mov dword [eax], 0
cmp dword [esp + 0xc], 0
je 0x42de60
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.0046c140
push esi
call fcn.0048e90d
add esp, 4
jmp 0x42de60
test dl, dl
cmovs edx, dword [esp + 0x28]
cmovs eax, dword [esp + 0x24]
push edx
push eax
call fcn.004430b0
jmp 0x42de57
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esp + 0x18]
push eax
push esi
call fcn.004bcc70
add esp, 8
lea ecx, [esp + 0xb0]
push esi
push 0x46a
push str.ExtractPartnerPackageOverridePackage
push 1
call fcn.004bca70
lea esi, [esp + 0xec]
mov ecx, esi
push 0x507a07
push str.Unable_to_delete_file:
call fcn.004b9460
movzx eax, byte [esp + 0x2f]
test al, al
jns 0x42e16c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
jmp 0x42e170
lea ecx, [esp + 0x24]
lea edi, [esp + 0x2d0]
push eax
push ecx
push edi
call fcn.0046fb00
add esp, 0xc
movzx eax, byte [edi + 0xb]
test al, al
jns 0x42e198
mov eax, dword [esp + 0x2d4]
mov edi, dword [esp + 0x2d0]
mov ecx, esi
push eax
push edi
call fcn.0046ab40
cmp byte [esp + 0x2db], 0
jns 0x42e1ba
push dword [esp + 0x2d0]
call fcn.0048e90d
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.004bcab0
cmp byte [esp + 0x23], 0
jns 0x42e067
push dword [esp + 0x18]
call fcn.0048e90d
add esp, 4
jmp 0x42e067
lea ecx, [esp + 0x2c0]
call fcn.004d0930
int3