Function at 0x403e10
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
lea ecx, [edx + 0x18]
mov ebp, esp
push edi
lea edi, [edx + 8]
push esi
push ebx
mov ebx, eax
sub esp, 0x4fc
mov dword [ebp - 0x4bc], edi
mov dword [edx + 0xc], edi
mov dword [edx + 8], edi
lea edi, [edx + 0x10]
mov dword [ebp - 0x4c4], edx
mov dword [ebp - 0x4cc], edi
mov dword [edx + 0x14], edi
mov dword [edx + 0x10], edi
mov dword [ebp - 0x4c8], ecx
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], ecx
mov dword [esp], 0
call sym._CoInitialize_4
sub esp, 4
test byte [section..data], 8
jne 0x4042f0
mov eax, dword [ebp - 0x4c4]
xor esi, esi
call sym._create_temp_directory
mov dword [ebp - 0x4d0], eax
mov edx, eax
test eax, eax
je 0x403f7a
mov eax, ebx
call sym._extract_cabinet
test eax, eax
jne 0x403f88
test byte [section..data], 2
jne 0x4043d0
xor esi, esi
mov eax, dword [ebp - 0x4c4]
mov ebx, dword [eax + 8]
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [ebx]
mov dword [ebp - 0x4c0], eax
cmp dword [ebp - 0x4bc], ebx
je 0x403f09
mov dword [ebp - 0x4d0], esi
mov esi, ebx
mov ebx, dword [ebp - 0x4c0]
lea esi, [esi]
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov ecx, dword [esi]
mov dword [eax], ecx
mov eax, dword [esi + 8]
call sym._delete_directory.isra.0
mov eax, dword [esi + 8]
mov dword [esp], eax
call ebx
mov dword [esp], esi
mov esi, edi
call ebx
mov edi, dword [edi]
cmp dword [ebp - 0x4bc], esi
jne 0x403ed8
mov esi, dword [ebp - 0x4d0]
mov eax, dword [ebp - 0x4c4]
mov edi, dword [ebp - 0x4cc]
mov eax, dword [eax + 0x10]
mov ebx, dword [eax]
cmp dword [ebp - 0x4cc], eax
je 0x403f42
lea esi, [esi]
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call sym._free_assembly
mov eax, ebx
mov ebx, dword [ebx]
cmp edi, eax
jne 0x403f28
mov eax, dword [ebp - 0x4c4]
mov edi, dword [ebp - 0x4c8]
mov eax, dword [eax + 0x18]
mov ebx, dword [eax]
cmp dword [ebp - 0x4c8], eax
je 0x403f7a
lea esi, cs:[esi]
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call sym._free_dependency
mov eax, ebx
mov ebx, dword [ebx]
cmp edi, eax
jne 0x403f60
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x4d0]
mov edx, str..cab
call sym._path_combine
mov ebx, eax
test eax, eax
je 0x403ea6
lea eax, [ebp - 0x4b8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x4e0], eax
call eax
mov esi, dword [sym.imp.ucrtbase.dll_free]
sub esp, 8
mov edi, eax
mov dword [ebp - 0x4d4], eax
mov dword [esp], ebx
mov dword [ebp - 0x4c0], esi
call esi
cmp edi, 0xffffffff
je 0x4040c2
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
lea esi, cs:[esi]
nop
test byte [ebp - 0x4b8], 0x10
jne 0x404090
lea eax, [ebp - 0x48c]
mov dword [esp + 4], str.WSUSSCAN.cab
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x404090
mov eax, dword [ebp - 0x4d0]
lea edx, [ebp - 0x48c]
call sym._path_combine
mov dword [ebp - 0x4d8], eax
test eax, eax
je 0x404090
test byte [section..data], 8
jne 0x404ab0
mov eax, dword [ebp - 0x4c4]
call sym._create_temp_directory
mov ebx, eax
test eax, eax
je 0x4047f0
mov edx, eax
mov eax, dword [ebp - 0x4d8]
call sym._extract_cabinet
test eax, eax
jne 0x4045a8
test byte [section..data], 2
jne 0x405499
mov eax, dword [ebp - 0x4d8]
mov dword [esp], eax
mov eax, dword [ebp - 0x4c0]
call eax
lea esi, cs:[esi]
lea eax, [ebp - 0x4b8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4d4]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
jne 0x403ff0
mov eax, dword [ebp - 0x4d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
mov eax, dword [ebp - 0x4d0]
mov edx, str..xml
call sym._path_combine
mov ebx, eax
test eax, eax
je 0x403ea6
lea eax, [ebp - 0x4b8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4e0]
call eax
sub esp, 8
mov edi, eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x4c0]
call eax
cmp edi, 0xffffffff
je 0x404180
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
lea esi, [esi]
test byte [ebp - 0x4b8], 0x10
jne 0x40415e
mov eax, dword [ebp - 0x4d0]
lea edx, [ebp - 0x48c]
call sym._path_combine
mov ebx, eax
test eax, eax
je 0x40415e
mov eax, dword [ebp - 0x4c8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._load_update
test eax, eax
jne 0x404153
test byte [section..data], 2
jne 0x405180
mov dword [esp], ebx
mov eax, dword [ebp - 0x4c0]
call eax
lea eax, [ebp - 0x4b8]
mov dword [esp], edi
mov dword [esp + 4], eax
call esi
sub esp, 8
test eax, eax
jne 0x404110
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
test byte [section..data], 8
jne 0x404bfd
mov eax, dword [ebp - 0x4c4]
mov ebx, dword [eax + 0x18]
cmp dword [ebp - 0x4c8], ebx
je 0x405463
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x4cc]
cmp edx, eax
je 0x40583f
lea esi, cs:[esi]
mov dword [eax + 8], 0
mov eax, dword [eax]
cmp edx, eax
jne 0x4041b8
mov eax, dword [ebp - 0x4c4]
mov edi, dword [ebp - 0x4c8]
mov ebx, dword [eax + 0x18]
cmp edi, ebx
je 0x404bd7
mov esi, dword [ebp - 0x4cc]
jmp 0x4041f2
mov ebx, dword [ebx]
cmp edi, ebx
je 0x404960
lea edx, [ebx + 8]
mov ecx, 1
mov eax, esi
call sym._install_assembly
test eax, eax
jne 0x4041e8
test byte [section..data], 2
je 0x403ea6
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x405df6
mov eax, ebx
shr eax, 0x10
je 0x405d3f
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x40b019
test edx, edx
jne 0x4055fa
cmp word [ebx], 0
je 0x405f43
lea esi, [esi]
mov eax, edx
lea edx, [edx + 1]
cmp word [ebx + eax*2 + 2], 0
jne 0x404258
mov ecx, 0x224c
movzx esi, word [str._r_]
lea edi, [ebp - 0x266]
mov word [ebp - 0x268], cx
jmp 0x4042b7
cmp dx, 9
je 0x405926
cmp dx, 0xa
jne 0x405d72
mov edx, 0x6e5c
add edi, 2
mov word [edi - 2], dx
sub eax, 1
jb 0x405e97
lea edx, [ebp - 0x146]
cmp edx, edi
jb 0x4055ce
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x4059ae
jbe 0x404280
cmp dx, 0x22
je 0x40599b
cmp dx, 0x5c
jne 0x405d5f
mov edx, 0x5c5c
add edi, 2
mov word [edi - 2], dx
jmp 0x4042a0
mov eax, ebx
shr eax, 0x10
je 0x4044c0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, eax
sub esp, 8
mov eax, 0x40b019
test ecx, ecx
jne 0x4044d0
cmp word [ebx], 0
je 0x4058e0
lea esi, cs:[esi]
mov edx, ecx
lea ecx, [ecx + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x404330
mov edi, 0x224c
mov dword [ebp - 0x4c0], ebx
lea eax, [ebp - 0x266]
mov word [ebp - 0x268], di
mov edi, ebx
jmp 0x404397
cmp cx, 9
je 0x404560
cmp cx, 0xa
jne 0x404908
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x4053a0
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x404ba0
movzx ecx, word [edi]
add edi, 2
cmp cx, 0xd
je 0x404578
jbe 0x404360
cmp cx, 0x22
je 0x404590
cmp cx, 0x5c
jne 0x4048f0
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x404380
mov eax, ebx
shr eax, 0x10
je 0x4053b1
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x40b019
sub esp, 8
test eax, eax
jne 0x40452b
cmp word [ebx], 0
je 0x405dc3
lea esi, cs:[esi]
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x404410
mov edi, 0x224c
mov dword [ebp - 0x4c0], ebx
lea eax, [ebp - 0x266]
mov word [ebp - 0x268], di
movzx edi, word [str._r_]
jmp 0x404477
cmp cx, 9
je 0x405158
cmp cx, 0xa
jne 0x405412
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x405818
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x4044fd
add dword [ebp - 0x4c0], 2
mov ecx, dword [ebp - 0x4c0]
movzx ecx, word [ecx - 2]
cmp cx, 0xd
je 0x405170
jbe 0x404440
cmp cx, 0x22
je 0x405140
cmp cx, 0x5c
jne 0x4053ff
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x404460
mov dword [esp + 4], ebx
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Processing_msu_file__s_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403e6d
mov byte [eax], 0x22
test edx, edx
je 0x40581b
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_extract__s_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403ea6
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x404380
movzx esi, word [str._r_]
add eax, 2
mov word [eax - 2], si
jmp 0x404380
movzx esi, word [0x40bbc0]
add eax, 2
mov word [eax - 2], si
jmp 0x404380
mov edx, str._manifest_.cix.xml
mov eax, ebx
call sym._path_combine
mov edi, eax
test eax, eax
je 0x4047f0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x404629
test byte [section..data], 1
je 0x404629
mov dword [esp + 0xc], str.Cabinet_uses_proprietary_msdelta_file_compression_which_is_not__yet__supported_n
mov dword [esp + 8], str.load_assemblies_from_cab
mov dword [esp + 4], 0x40a000
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
test byte [section..data], 1
je 0x404629
mov dword [esp + 0xc], str.Installation_of_msu_file_will_most_likely_fail_n
mov dword [esp + 8], str.load_assemblies_from_cab
mov dword [esp + 4], 0x40a000
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
mov dword [esp], edi
mov eax, dword [ebp - 0x4c0]
call eax
mov edx, 0x40b06e
mov eax, ebx
call sym._path_combine
mov edi, eax
test eax, eax
je 0x4047f0
lea ecx, [ebp - 0x268]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x4e0]
call ecx
sub esp, 8
mov dword [ebp - 0x4dc], eax
mov dword [esp], edi
mov edi, dword [ebp - 0x4c0]
call edi
cmp dword [ebp - 0x4dc], 0xffffffff
je 0x404077
mov dword [ebp - 0x4e4], ebx
lea esi, cs:[esi]
nop
mov ebx, dword [ebp - 0x268]
and ebx, 0x10
jne 0x40475a
movzx ecx, word [ebp - 0x23c]
test cx, cx
je 0x405836
lea eax, [ebp - 0x23c]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4046b8
lea edi, [ebp - 0x23c]
sub eax, edi
mov edi, eax
sar edi, 1
mov edx, str..manifest
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x4046d8
sub edx, str..manifest
cmp eax, edx
jb 0x4050d0
sar edx, 1
mov dword [esp + 4], str..manifest
sub edi, edx
lea eax, [ebp + edi*2 - 0x23c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x4050c1
mov eax, dword [ebp - 0x4e4]
lea edx, [ebp - 0x23c]
call sym._path_combine
mov ebx, eax
test eax, eax
je 0x40475a
mov dword [esp], eax
call sym._load_manifest
test eax, eax
je 0x40474f
mov edi, dword [ebp - 0x4cc]
mov dword [eax], edi
mov edi, dword [ebp - 0x4c4]
mov edx, dword [edi + 0x14]
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [edi + 0x14], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x4c0]
call eax
lea eax, [ebp - 0x268]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4dc]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
jne 0x404690
mov eax, dword [ebp - 0x4dc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
jmp 0x404077
mov byte [eax], 0x22
test edx, edx
je 0x405e03
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_extract__s_n
mov dword [esp + 8], str.load_assemblies_from_cab
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
lea esi, cs:[esi]
nop
test byte [section..data], 2
je 0x404077
mov eax, dword [ebp - 0x4d8]
shr eax, 0x10
je 0x4058fe
mov dword [esp + 4], 0xffffffff
mov edi, dword [ebp - 0x4d8]
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x40b019
sub esp, 8
test eax, eax
jne 0x405305
cmp word [edi], 0
je 0x405efc
mov ecx, edi
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x404840
mov ebx, dword [ebp - 0x4d8]
mov edi, 0x224c
lea eax, [ebp - 0x266]
mov word [ebp - 0x268], di
mov dword [ebp - 0x4dc], ebx
jmp 0x4048a7
cmp cx, 9
je 0x40566b
cmp cx, 0xa
jne 0x40594a
mov ebx, 0x6e5c
add eax, 2
mov word [eax - 2], bx
lea esi, [esi]
sub edx, 1
jb 0x405d54
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x4052d7
add dword [ebp - 0x4dc], 2
mov edi, dword [ebp - 0x4dc]
movzx ecx, word [edi - 2]
cmp cx, 0xd
je 0x405658
jbe 0x40486d
cmp cx, 0x22
je 0x4055bb
cmp cx, 0x5c
jne 0x405937
mov edi, 0x5c5c
add eax, 2
mov word [eax - 2], di
jmp 0x404890
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x404908
mov byte [eax], cl
add eax, 1
jmp 0x404380
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x404380
mov eax, dword [ebp - 0x4c4]
mov eax, dword [eax + 0x10]
cmp dword [ebp - 0x4cc], eax
je 0x40498d
mov edx, dword [ebp - 0x4cc]
lea esi, cs:[esi]
nop
mov dword [eax + 8], 0
mov eax, dword [eax]
cmp edx, eax
jne 0x404980
mov eax, dword [ebp - 0x4c4]
mov ebx, dword [eax + 0x18]
cmp dword [ebp - 0x4c8], ebx
je 0x404be6
mov esi, dword [ebp - 0x4cc]
mov edi, dword [ebp - 0x4c8]
jmp 0x4049ba
mov ebx, dword [ebx]
cmp edi, ebx
je 0x404be6
xor ecx, ecx
lea edx, [ebx + 8]
mov eax, esi
call sym._install_assembly
test eax, eax
jne 0x4049b0
test byte [section..data], 2
je 0x403ea6
mov edi, dword [ebx + 8]
test edi, edi
je 0x405e8d
mov eax, edi
shr eax, 0x10
je 0x405de1
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x40b019
test edx, edx
jne 0x405878
cmp word [edi], 0
je 0x405f5e
mov eax, edx
lea edx, [edx + 1]
cmp word [edi + eax*2 + 2], 0
jne 0x404a1a
mov ecx, 0x224c
movzx esi, word [str._r_]
lea ebx, [ebp - 0x266]
mov word [ebp - 0x268], cx
jmp 0x404a79
cmp dx, 9
je 0x405d10
cmp dx, 0xa
jne 0x405e3c
mov edx, 0x6e5c
add ebx, 2
mov word [ebx - 2], dx
sub eax, 1
jb 0x405f1a
lea edx, [ebp - 0x146]
cmp edx, ebx
jb 0x40584c
movzx edx, word [edi]
add edi, 2
cmp dx, 0xd
je 0x405d21
jbe 0x404a42
cmp dx, 0x22
je 0x405d2c
cmp dx, 0x5c
jne 0x405e0b
mov edx, 0x5c5c
add ebx, 2
mov word [ebx - 2], dx
jmp 0x404a62
shr eax, 0x10
je 0x404c92
mov dword [esp + 4], 0xffffffff
mov edi, dword [ebp - 0x4d8]
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x40b019
sub esp, 8
test eax, eax
jne 0x404caa
cmp word [edi], 0
je 0x405e1e
mov ecx, edi
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x404af0
mov ebx, dword [ebp - 0x4d8]
mov eax, 0x224c
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x266]
mov dword [ebp - 0x4dc], ebx
jmp 0x404b57
cmp cx, 9
je 0x405332
cmp cx, 0xa
jne 0x40567c
mov edi, 0x6e5c
add eax, 2
mov word [eax - 2], di
sub edx, 1
jb 0x40591b
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x4056e4
add dword [ebp - 0x4dc], 2
mov edi, dword [ebp - 0x4dc]
movzx ecx, word [edi - 2]
cmp cx, 0xd
je 0x405343
jbe 0x404b20
cmp cx, 0x22
je 0x405356
cmp cx, 0x5c
jne 0x4055a4
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x404b40
mov byte [eax], 0x22
mov ebx, dword [ebp - 0x4c0]
test edx, edx
je 0x4053a9
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
jmp 0x4044d0
mov eax, dword [eax + 0x10]
cmp dword [ebp - 0x4cc], eax
jne 0x404971
test byte [section..data], 8
jne 0x404cd7
mov esi, 1
jmp 0x403ea8
mov dword [esp], section..data
call sym.___wine_dbg_get_channel_flags
test al, 8
je 0x40418d
test byte [section..data], 8
jne 0x4059b9
mov eax, dword [ebp - 0x4c4]
mov edi, dword [eax + 0x18]
cmp dword [ebp - 0x4c8], edi
je 0x404c45
mov eax, dword [edi]
mov edx, dword [ebp - 0x4c8]
cmp dword [ebp - 0x4c8], eax
je 0x404c45
mov eax, dword [eax]
cmp edx, eax
jne 0x404c3f
mov eax, dword [ebp - 0x4c4]
mov ecx, dword [eax + 0x10]
cmp dword [ebp - 0x4cc], ecx
je 0x40418d
mov ebx, ecx
lea esi, [esi]
test byte [section..data], 8
jne 0x404d00
mov esi, dword [ebx + 0x28]
lea edi, [ebx + 0x28]
cmp esi, edi
je 0x404c83
mov eax, dword [esi]
cmp edi, eax
je 0x404c83
mov eax, dword [eax]
cmp edi, eax
jne 0x404c7d
mov ebx, dword [ebx]
cmp dword [ebp - 0x4cc], ebx
jne 0x404c60
jmp 0x40418d
mov eax, dword [ebp - 0x4d8]
mov dword [esp], 0x40b00c
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Processing_cab_file__s_n
mov dword [esp + 8], str.load_assemblies_from_cab
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x404040
mov dword [esp + 0xc], str.Installation_finished_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x404bf3
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x4058d6
mov eax, esi
shr eax, 0x10
je 0x4056cd
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x40b019
sub esp, 8
test eax, eax
jne 0x404e0b
cmp word [esi], 0
je 0x405ec0
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [esi + edx*2 + 2], 0
jne 0x404d48
mov edi, 0x224c
mov dword [ebp - 0x4c0], ebx
lea eax, [ebp - 0x266]
mov word [ebp - 0x268], di
jmp 0x404da3
cmp cx, 9
je 0x40537c
cmp cx, 0xa
jne 0x405717
mov ebx, 0x6e5c
add eax, 2
mov word [eax - 2], bx
sub edx, 1
jb 0x405c60
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x404dd7
movzx ecx, word [esi]
add esi, 2
cmp cx, 0xd
je 0x405369
jbe 0x404d70
cmp cx, 0x22
je 0x40538d
cmp cx, 0x5c
jne 0x405768
mov edi, 0x5c5c
add eax, 2
mov word [eax - 2], di
jmp 0x404d90
mov byte [eax], 0x22
mov ebx, dword [ebp - 0x4c0]
test edx, edx
je 0x405c69
mov esi, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], si
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
lea edi, [ebx + 0x28]
mov dword [esp + 0xc], str.___s_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov esi, dword [ebx + 0x28]
cmp esi, edi
je 0x404c83
mov dword [ebp - 0x4d0], ebx
lea esi, cs:[esi]
nop
test byte [section..data], 8
jne 0x404e68
mov ebx, dword [ebp - 0x4d0]
jmp 0x404c77
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x4050a0
mov eax, ebx
shr eax, 0x10
je 0x405018
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x40b019
test edx, edx
jne 0x404f8a
cmp word [ebx], 0
je 0x405586
lea esi, cs:[esi]
mov eax, edx
lea edx, [edx + 1]
cmp word [ebx + eax*2 + 2], 0
jne 0x404eb0
mov edx, 0x224c
mov dword [ebp - 0x4d4], esi
mov word [ebp - 0x268], dx
lea edx, [ebp - 0x266]
mov dword [ebp - 0x4c0], ebx
jmp 0x404f13
cmp cx, 9
je 0x404fd0
cmp cx, 0xa
jne 0x405030
mov ebx, 0x6e5c
add edx, 2
mov word [edx - 2], bx
sub eax, 1
jb 0x4050b0
lea ecx, [ebp - 0x146]
cmp ecx, edx
jb 0x404f58
add dword [ebp - 0x4c0], 2
mov esi, dword [ebp - 0x4c0]
movzx ecx, word [esi - 2]
cmp cx, 0xd
je 0x404fe8
jbe 0x404ee0
cmp cx, 0x22
je 0x405000
cmp cx, 0x5c
jne 0x405088
mov esi, 0x5c5c
add edx, 2
mov word [edx - 2], si
jmp 0x404f00
mov byte [edx], 0x22
mov esi, dword [ebp - 0x4d4]
test eax, eax
je 0x4050b9
mov ebx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], bx
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._______s_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov esi, dword [esi]
cmp esi, edi
jne 0x404e50
mov ebx, dword [ebp - 0x4d0]
jmp 0x404c83
mov ecx, 0x745c
add edx, 2
mov word [edx - 2], cx
jmp 0x404f00
movzx esi, word [str._r_]
add edx, 2
mov word [edx - 2], si
jmp 0x404f00
movzx esi, word [0x40bbc0]
add edx, 2
mov word [edx - 2], si
jmp 0x404f00
mov dword [esp + 4], ebx
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
jmp 0x404f8a
mov esi, ecx
mov byte [edx], 0x5c
add edx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and esi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov byte [edx - 1], cl
mov byte [edx - 2], bl
jmp 0x404f00
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x405030
mov byte [edx], cl
add edx, 1
jmp 0x404f00
mov eax, 0x40b012
jmp 0x404f8a
mov byte [edx], 0x22
mov esi, dword [ebp - 0x4d4]
lea eax, [edx + 1]
jmp 0x404f79
movzx ecx, word [ebp - 0x23c]
lea esi, cs:[esi]
test cx, cx
je 0x405cf6
lea eax, [ebp - 0x23c]
nop
add eax, 2
cmp word [eax], 0
jne 0x4050e0
lea edi, [ebp - 0x23c]
sub eax, edi
mov ebx, eax
sar ebx, 1
mov edx, str..mum
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x405100
sub edx, str..mum
cmp eax, edx
jb 0x40475a
sar edx, 1
mov dword [esp + 4], str..mum
sub ebx, edx
lea eax, [ebp + ebx*2 - 0x23c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x404713
jmp 0x40475a
movzx esi, word [0x40bbc0]
add eax, 2
mov word [eax - 2], si
jmp 0x404460
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x404460
mov word [eax], di
add eax, 2
jmp 0x404460
mov eax, ebx
shr eax, 0x10
je 0x40577b
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x40b019
test edx, edx
jne 0x4052aa
cmp word [ebx], 0
je 0x405ede
lea esi, cs:[esi]
mov eax, edx
lea edx, [edx + 1]
cmp word [ebx + eax*2 + 2], 0
jne 0x4051c0
mov edx, 0x224c
mov dword [ebp - 0x4d8], edi
mov word [ebp - 0x268], dx
lea edx, [ebp - 0x266]
mov dword [ebp - 0x4dc], ebx
mov dword [ebp - 0x4d4], ebx
jmp 0x405233
cmp cx, 9
je 0x4053c8
cmp cx, 0xa
jne 0x4057c7
mov edi, 0x6e5c
add edx, 2
mov word [edx - 2], di
lea esi, cs:[esi]
sub eax, 1
jb 0x405cdf
lea edi, [ebp - 0x146]
cmp edi, edx
jb 0x405272
add dword [ebp - 0x4d4], 2
mov edi, dword [ebp - 0x4d4]
movzx ecx, word [edi - 2]
cmp cx, 0xd
je 0x4053d9
jbe 0x4051f8
cmp cx, 0x22
je 0x4053ec
cmp cx, 0x5c
jne 0x405823
mov ecx, 0x5c5c
add edx, 2
mov word [edx - 2], cx
jmp 0x405220
mov edi, dword [ebp - 0x4d8]
mov ebx, dword [ebp - 0x4dc]
mov byte [edx], 0x22
test eax, eax
je 0x405cee
mov byte [edx + 3], 0x2e
mov eax, 0x2e2e
mov word [edx + 1], ax
lea eax, [edx + 4]
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_load_all_updates_from__s__ignoring_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x404153
mov byte [eax], 0x22
test edx, edx
je 0x405d57
mov ebx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], bx
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_load_all_manifests_from__s__ignoring_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x404077
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x404b40
movzx edi, word [str._r_]
add eax, 2
mov word [eax - 2], di
jmp 0x404b40
movzx ecx, word [0x40bbc0]
add eax, 2
mov word [eax - 2], cx
jmp 0x404b40
movzx edi, word [str._r_]
add eax, 2
mov word [eax - 2], di
jmp 0x404d90
mov ecx, 0x745c
add eax, 2
mov word [eax - 2], cx
jmp 0x404d90
movzx ecx, word [0x40bbc0]
add eax, 2
mov word [eax - 2], cx
jmp 0x404d90
mov byte [eax], 0x22
mov ebx, dword [ebp - 0x4c0]
lea edx, [eax + 1]
jmp 0x404bc1
mov dword [esp + 4], ebx
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x40452b
mov ebx, 0x745c
add edx, 2
mov word [edx - 2], bx
jmp 0x405220
movzx edi, word [str._r_]
add edx, 2
mov word [edx - 2], di
jmp 0x405220
movzx ecx, word [0x40bbc0]
add edx, 2
mov word [edx - 2], cx
jmp 0x405220
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x405412
mov byte [eax], cl
add eax, 1
jmp 0x404460
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x404460
test byte [section..data], 2
je 0x403ea6
mov dword [esp + 0xc], str.No_updates_found__probably_incompatible_MSU_file_format__n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403ea6
mov eax, dword [ebp - 0x4d8]
shr eax, 0x10
je 0x405c71
mov dword [esp + 4], 0xffffffff
mov edi, dword [ebp - 0x4d8]
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x40b019
sub esp, 8
test eax, eax
jne 0x4047bf
cmp word [edi], 0
mov ecx, edi
je 0x405f25
lea esi, cs:[esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x4054e0
mov ebx, dword [ebp - 0x4d8]
mov eax, 0x224c
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x266]
mov dword [ebp - 0x4dc], ebx
jmp 0x405547
cmp cx, 9
je 0x405790
cmp cx, 0xa
jne 0x405c8e
mov edi, 0x6e5c
add eax, 2
mov word [eax - 2], di
lea esi, [esi]
sub edx, 1
jb 0x405e00
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x404791
add dword [ebp - 0x4dc], 2
mov ecx, dword [ebp - 0x4dc]
movzx ecx, word [ecx - 2]
cmp cx, 0xd
je 0x4057a1
jbe 0x40550d
cmp cx, 0x22
je 0x4057b4
cmp cx, 0x5c
jne 0x405cfd
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x405530
mov ecx, 0x224c
mov byte [ebp - 0x266], 0x22
lea eax, [ebp - 0x265]
mov word [ebp - 0x268], cx
jmp 0x404f79
lea edi, [ecx - 0x20]
cmp di, 0x5e
ja 0x40567c
mov byte [eax], cl
add eax, 1
jmp 0x404b40
movzx ecx, word [0x40bbc0]
add eax, 2
mov word [eax - 2], cx
jmp 0x404890
mov byte [edi], 0x22
test eax, eax
je 0x405e9a
mov ebx, 0x2e2e
mov byte [edi + 3], 0x2e
lea eax, [edi + 4]
mov word [edi + 1], bx
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_install_update__s_n
mov dword [esp + 8], str.install_updates
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
test byte [section..data], 2
je 0x403ea6
mov dword [esp + 0xc], str.Dry_run_failed__aborting_installation_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403ea6
movzx ecx, word [str._r_]
add eax, 2
mov word [eax - 2], cx
jmp 0x404890
mov ecx, 0x745c
add eax, 2
mov word [eax - 2], cx
jmp 0x404890
mov edi, ecx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
and ecx, 0xf
shr di, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x404b40
mov dword [esp + 4], esi
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x404e0b
mov byte [eax], 0x22
test edx, edx
je 0x40591e
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
jmp 0x404caa
mov edi, ecx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
and ecx, 0xf
shr di, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x404d90
lea edi, [ecx - 0x20]
cmp di, 0x5e
ja 0x405717
mov byte [eax], cl
add eax, 1
jmp 0x404d90
mov dword [esp + 4], ebx
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
jmp 0x4052aa
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x405530
movzx ecx, word [str._r_]
add eax, 2
mov word [eax - 2], cx
jmp 0x405530
movzx ecx, word [0x40bbc0]
add eax, 2
mov word [eax - 2], cx
jmp 0x405530
mov edi, ecx
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
and ecx, 0xf
shr di, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov byte [edx - 1], cl
mov byte [edx - 2], bl
jmp 0x405220
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x404518
lea edi, [ecx - 0x20]
cmp di, 0x5e
ja 0x4057c7
mov byte [edx], cl
add edx, 1
jmp 0x405220
xor eax, eax
xor edi, edi
jmp 0x4046cd
mov edi, dword [ebp - 0x4c8]
mov esi, edx
jmp 0x4041f2
mov byte [ebx], 0x22
test eax, eax
je 0x405f1d
mov byte [ebx + 3], 0x2e
mov eax, 0x2e2e
mov word [ebx + 1], ax
lea eax, [ebx + 4]
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_install_update__s_n
mov dword [esp + 8], str.install_updates
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
test byte [section..data], 2
je 0x403ea6
mov dword [esp + 0xc], str.Installation_failed_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403ea6
mov edx, 0x40b012
jmp 0x404e0b
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x404bc1
mov eax, dword [ebp - 0x4d8]
mov dword [esp], 0x40b00c
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x405305
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x4056ff
mov ecx, 0x745c
add edi, 2
mov word [edi - 2], cx
jmp 0x4042a0
lea edi, [ecx - 0x20]
cmp di, 0x5e
ja 0x40594a
mov byte [eax], cl
add eax, 1
jmp 0x404890
mov edi, ecx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
and ecx, 0xf
shr di, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x404890
movzx ecx, word [0x40bbc0]
add edi, 2
mov word [edi - 2], cx
jmp 0x4042a0
mov word [edi], si
add edi, 2
jmp 0x4042a0
mov dword [esp + 0xc], str.List_of_updates:_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x4c4]
mov esi, dword [ebp - 0x4c8]
mov edi, dword [eax + 0x18]
movzx eax, byte [section..data]
cmp esi, edi
je 0x405b5f
lea esi, cs:[esi]
test al, 8
je 0x404c2f
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x405c45
mov eax, ebx
shr eax, 0x10
je 0x405bca
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x40b019
sub esp, 8
test eax, eax
jne 0x405b26
cmp word [ebx], 0
je 0x405ea2
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x405a50
mov eax, 0x224c
mov dword [ebp - 0x4d0], esi
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x266]
mov dword [ebp - 0x4c0], ebx
jmp 0x405ab3
cmp cx, 9
je 0x405ba6
cmp cx, 0xa
jne 0x405bf4
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x405c4f
lea ecx, [ebp - 0x146]
cmp ecx, eax
jb 0x405af2
add dword [ebp - 0x4c0], 2
mov ecx, dword [ebp - 0x4c0]
movzx ecx, word [ecx - 2]
cmp cx, 0xd
je 0x405b93
jbe 0x405a80
cmp cx, 0x22
je 0x405bb7
cmp cx, 0x5c
jne 0x405be1
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x405aa0
mov byte [eax], 0x22
mov esi, dword [ebp - 0x4d0]
test edx, edx
je 0x405c58
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x268]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.___s_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov edi, dword [edi]
movzx eax, byte [section..data]
cmp esi, edi
jne 0x405a00
and eax, 8
test al, al
je 0x404c45
mov dword [esp + 0xc], str.List_of_manifests__with_dependencies_:_n
mov dword [esp + 8], str.install_msu
mov dword [esp + 4], 0x40a000
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x404c45
movzx esi, word [str._r_]
add eax, 2
mov word [eax - 2], si
jmp 0x405aa0
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x405aa0
movzx esi, word [0x40bbc0]
add eax, 2
mov word [eax - 2], si
jmp 0x405aa0
mov dword [esp + 4], ebx
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x405b26
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x405bf4
mov byte [eax], cl
add eax, 1
jmp 0x405aa0
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x405aa0
mov edx, 0x40b012
jmp 0x405b26
mov byte [eax], 0x22
mov esi, dword [ebp - 0x4d0]
lea edx, [eax + 1]
jmp 0x405b13
mov byte [eax], 0x22
mov ebx, dword [ebp - 0x4c0]
lea edx, [eax + 1]
jmp 0x404df8
mov eax, dword [ebp - 0x4d8]
mov dword [esp], 0x40b00c
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x4047bf
mov edi, ecx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov edi, ecx
and ecx, 0xf
shr di, 4
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefcabinet_copy_file]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x405530
mov edi, dword [ebp - 0x4d8]
mov ebx, dword [ebp - 0x4dc]
mov byte [edx], 0x22
lea eax, [edx + 1]
jmp 0x405299
xor eax, eax
jmp 0x4050f5
lea edi, [ecx - 0x20]
cmp di, 0x5e
ja 0x405c8e
mov byte [eax], cl
add eax, 1
jmp 0x405530
mov ecx, 0x745c
add ebx, 2
mov word [ebx - 2], cx
jmp 0x404a62
mov word [ebx], si
add ebx, 2
jmp 0x404a62
movzx ecx, word [0x40bbc0]
add ebx, 2
mov word [ebx - 2], cx
jmp 0x404a62
mov dword [esp + 4], ebx
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
jmp 0x4055fa
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x4052f2
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x405d72
mov byte [edi], dl
add edi, 1
jmp 0x4042a0
mov ecx, edx
mov byte [edi], 0x5c
add edi, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
mov byte [edi - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
mov byte [edi - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefcabinet_copy_file]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
mov byte [edi - 1], dl
mov byte [edi - 2], cl
jmp 0x4042a0
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x404518
mov dword [esp + 4], edi
mov dword [esp], 0x40b00c
call sym._wine_dbg_sprintf.constprop.0
jmp 0x405878
mov eax, 0x40b012
jmp 0x4055fa
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x4047ac
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x405e3c
mov byte [ebx], dl
add ebx, 1
jmp 0x404a62
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x4056ff
mov ecx, edx
mov byte [ebx], 0x5c
add ebx, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
mov byte [ebx - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
mov byte [ebx - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefcabinet_copy_file]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefcabinet_copy_file]
mov byte [ebx - 1], dl
mov byte [ebx - 2], cl
jmp 0x404a62
mov eax, 0x40b012
jmp 0x405878
mov byte [edi], 0x22
lea eax, [edi + 1]
jmp 0x4055e9
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x405b13
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x404df8
mov ecx, 0x224c
mov byte [ebp - 0x266], 0x22
lea eax, [ebp - 0x265]
mov word [ebp - 0x268], cx
jmp 0x405299
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x4052f2
mov byte [ebx], 0x22
lea eax, [ebx + 1]
jmp 0x405867
mov eax, 0x224c
mov byte [ebp - 0x266], 0x22
lea edx, [ebp - 0x265]
mov word [ebp - 0x268], ax
jmp 0x4047ac
mov word [ebp - 0x268], 0x224c
lea eax, [ebp - 0x265]
mov byte [ebp - 0x266], 0x22
jmp 0x4055e9
mov word [ebp - 0x268], 0x224c
lea eax, [ebp - 0x265]
mov byte [ebp - 0x266], 0x22
jmp 0x405867