Function at 0x403d10
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x528
lea rax, [rdx + 8]
lea rbp, [rdx + 0x18]
mov rsi, rcx
mov rbx, rdx
movq xmm1, rax
lea rdi, [rdx + 0x28]
movq xmm2, rbp
xor ecx, ecx
movddup xmm0, xmm1
movq xmm3, rdi
mov qword [rsp + 0x40], rax
movups xmmword [rdx + 8], xmm0
movddup xmm0, xmm2
movups xmmword [rdx + 0x18], xmm0
movddup xmm0, xmm3
mov qword [rsp + 0x38], rdi
movups xmmword [rdx + 0x28], xmm0
call qword [sym.imp.ole32.dll_CoInitialize]
test byte [section..data], 8
jne 0x404150
mov rcx, rbx
xor r13d, r13d
call sym.create_temp_directory
mov rdi, rax
test rax, rax
je 0x403e91
mov rdx, rax
mov rcx, rsi
call sym.extract_cabinet
mov r13d, eax
test eax, eax
jne 0x403eb0
test byte [section..data], 2
jne 0x404378
xor r13d, r13d
mov r12, qword [rbx + 8]
mov r15, qword [sym.imp.ucrtbase.dll_free]
mov r14, qword [rsp + 0x40]
mov rsi, qword [r12]
mov rdi, rsi
cmp qword [rsp + 0x40], r12
jne 0x403de3
jmp 0x403e16
mov rdi, rsi
mov rax, qword [r12 + 8]
mov qword [rsi + 8], rax
mov rdx, qword [r12]
mov qword [rax], rdx
mov rcx, qword [r12 + 0x10]
call sym.delete_directory
mov rcx, qword [r12 + 0x10]
call r15
mov rcx, r12
mov r12, rsi
call r15
mov rsi, qword [rsi]
cmp r14, rdi
jne 0x403de0
mov rcx, qword [rbx + 0x18]
mov rsi, qword [rcx]
mov rdi, rsi
cmp rbp, rcx
jne 0x403e33
jmp 0x403e51
mov rdi, rsi
mov rax, qword [rcx + 8]
mov qword [rsi + 8], rax
mov rdx, qword [rcx]
mov qword [rax], rdx
call sym.free_assembly
mov rcx, rsi
mov rsi, qword [rsi]
cmp rbp, rdi
jne 0x403e30
mov rcx, qword [rbx + 0x28]
mov rsi, qword [rsp + 0x38]
mov rdx, qword [rcx]
mov rbx, rdx
cmp qword [rsp + 0x38], rcx
jne 0x403e73
jmp 0x403e91
mov rdx, rbx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rdx, qword [rcx]
mov qword [rax], rdx
call sym.free_dependency
mov rcx, rbx
mov rbx, qword [rbx]
cmp rsi, rcx
jne 0x403e70
mov eax, r13d
add rsp, 0x528
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str..cab
mov rcx, rdi
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x403db5
mov rcx, rax
mov rax, qword [sym.imp.kernel32.dll_FindFirstFileW]
lea r14, [rsp + 0x80]
mov rdx, r14
mov qword [rsp + 0x50], rax
call rax
mov r15, qword [sym.imp.ucrtbase.dll_free]
mov rcx, r12
mov r13, rax
call r15
cmp r13, 0xffffffffffffffff
je 0x403fd1
mov rax, qword [sym.imp.kernel32.dll_FindNextFileW]
mov qword [rsp + 0x48], r15
mov rsi, rbx
mov qword [rsp + 0x58], rbp
mov rbp, rdi
mov rdi, rax
nop dword [rax + rax]
test byte [rsp + 0x80], 0x10
jne 0x403fa8
lea r12, [rsp + 0xac]
lea rdx, str.WSUSSCAN.cab
mov rcx, r12
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x403fa8
mov rdx, r12
mov rcx, rbp
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x403fa8
test byte [section..data], 8
jne 0x4047c0
mov rcx, rsi
call sym.create_temp_directory
mov rbx, rax
test rax, rax
je 0x4046a8
mov rdx, rax
mov rcx, r12
call sym.extract_cabinet
test eax, eax
jne 0x4044c8
test byte [section..data], 2
jne 0x405558
mov rax, qword [rsp + 0x48]
mov rcx, r12
call rax
nop dword [rax]
mov rdx, r14
mov rcx, r13
call rdi
test eax, eax
jne 0x403f20
mov rdi, rbp
mov r15, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x58]
mov rbx, rsi
mov rcx, r13
call qword [sym.imp.kernel32.dll_FindClose]
lea rdx, str..xml
mov rcx, rdi
call sym.path_combine.part.0
mov r13, rax
test rax, rax
je 0x403db5
mov rcx, rax
mov rdx, r14
mov rax, qword [rsp + 0x50]
lea rsi, section..data
call rax
mov rcx, r13
mov r12, rax
call r15
cmp r12, 0xffffffffffffffff
je 0x404092
mov qword [rsp + 0x48], r15
mov r13, qword [sym.imp.kernel32.dll_FindNextFileW]
mov qword [rsp + 0x578], rbx
mov rbx, qword [rsp + 0x38]
nop dword [rax]
test byte [rsp + 0x80], 0x10
jne 0x404074
lea rdx, [rsp + 0xac]
mov rcx, rdi
call sym.path_combine.part.0
mov r15, rax
test rax, rax
je 0x404074
mov rdx, rbx
mov rcx, rax
call sym.load_update
test eax, eax
jne 0x40406a
test byte [rsi], 2
jne 0x404b60
mov rax, qword [rsp + 0x48]
mov rcx, r15
call rax
mov rdx, r14
mov rcx, r12
call r13
test eax, eax
jne 0x404030
mov rbx, qword [rsp + 0x578]
mov rcx, r12
call qword [sym.imp.kernel32.dll_FindClose]
test byte [section..data], 8
jne 0x4048b0
mov rax, qword [rsp + 0x38]
cmp rax, qword [rbx + 0x28]
je 0x404fb0
mov rax, qword [rbx + 0x18]
cmp rbp, rax
je 0x4040cf
nop word [rax + rax]
mov dword [rax + 0x10], 0
mov rax, qword [rax]
cmp rbp, rax
jne 0x4040c0
mov edx, 1
mov rcx, rbx
call sym.install_updates
mov r13d, eax
test eax, eax
je 0x404cc0
mov rax, qword [rbx + 0x18]
cmp rbp, rax
je 0x4040ff
mov dword [rax + 0x10], 0
mov rax, qword [rax]
cmp rbp, rax
jne 0x4040f0
xor edx, edx
mov rcx, rbx
call sym.install_updates
mov r13d, eax
test eax, eax
je 0x404ec8
mov r13d, 1
test byte [section..data], 8
je 0x403db8
lea r9, str.Installation_finished_n
lea r8, str.install_msu
mov ecx, 3
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403db8
lea rax, [0x0040a034]
test rsi, rsi
je 0x40427e
mov rax, rsi
shr rax, 0x10
je 0x4042b0
mov rdx, 0xffffffffffffffff
mov rcx, rsi
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x40427e
cmp word [rsi], 0
je 0x404c94
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [rsi + rax*2], 0
jne 0x4041a0
mov edx, 0x224c
mov r8, rsi
lea r10, str.0123456789abcdefcabinet_copy_file
mov word [rsp + 0x2d0], dx
lea r9, [rsp + 0x3f2]
lea rdx, [rsp + 0x2d2]
jmp 0x404216
cmp ax, 9
je 0x4042e0
cmp ax, 0xa
jne 0x404301
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x404250
cmp rdx, r9
ja 0x404250
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x4042c8
jbe 0x4041e0
cmp ax, 0x22
je 0x404360
cmp ax, 0x5c
jne 0x4042f2
mov eax, 0x5c5c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x404208
mov byte [rdx], 0x22
test eax, eax
jle 0x404cb1
mov r15d, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], r15w
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.Processing_msu_file__s_n
lea r8, str.install_msu
mov ecx, 3
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403d7b
movzx edx, si
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40427e
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x404208
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x404208
lea r11d, [rax - 0x20]
cmp r11w, 0x5e
jbe 0x4047b0
mov r11d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r11w, 0xc
and r11d, 0xf
movzx r11d, byte [r10 + r11]
mov byte [rdx - 4], r11b
mov r11d, eax
shr r11w, 8
and r11d, 0xf
movzx r11d, byte [r10 + r11]
mov byte [rdx - 3], r11b
mov r11d, eax
and eax, 0xf
shr r11w, 4
movzx eax, byte [r10 + rax]
and r11d, 0xf
movzx r11d, byte [r10 + r11]
mov byte [rdx - 1], al
mov byte [rdx - 2], r11b
jmp 0x404208
mov eax, 0x225c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x404208
lea rax, [0x0040a034]
test rsi, rsi
je 0x40449c
mov rax, rsi
shr rax, 0x10
je 0x404eb0
mov rdx, 0xffffffffffffffff
mov rcx, rsi
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x40449c
cmp word [rsi], 0
je 0x405753
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [rsi + rax*2], 0
jne 0x4043c8
mov r9d, 0x224c
lea rdx, [rsp + 0x2d2]
lea r8, [rsp + 0x3f2]
mov word [rsp + 0x2d0], r9w
lea r9, str.0123456789abcdefcabinet_copy_file
jmp 0x404436
cmp ax, 9
je 0x404b48
cmp ax, 0xa
jne 0x404abc
mov r14d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r14w
nop dword [rax + rax]
lea eax, [rcx - 1]
cmp rdx, r8
ja 0x404470
test ecx, ecx
jle 0x404470
mov ecx, eax
movzx eax, word [rsi]
add rsi, 2
cmp ax, 0xd
je 0x404b30
jbe 0x404400
cmp ax, 0x22
je 0x404b18
cmp ax, 0x5c
jne 0x404aad
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x404428
mov byte [rdx], 0x22
test eax, eax
jle 0x405772
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.Failed_to_extract__s_n
lea r8, str.install_msu
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403db8
lea rdx, str._manifest_.cix.xml
mov rcx, rbx
call sym.path_combine.part.0
mov r15, rax
test rax, rax
je 0x4046a8
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40453b
test byte [section..data], 1
je 0x40453b
xor ecx, ecx
lea r9, str.Cabinet_uses_proprietary_msdelta_file_compression_which_is_not__yet__supported_n
lea r8, str.load_assemblies_from_cab
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
test byte [section..data], 1
je 0x40453b
lea r9, str.Installation_of_msu_file_will_most_likely_fail_n
lea r8, str.load_assemblies_from_cab
xor ecx, ecx
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
mov rax, qword [rsp + 0x48]
mov rcx, r15
call rax
mov rcx, rbx
lea rdx, [0x0040a008]
call sym.path_combine.part.0
mov rcx, rax
test rax, rax
je 0x4046a8
lea rdx, [rsp + 0x2d0]
mov qword [rsp + 0x60], rax
mov r10, qword [rsp + 0x50]
mov qword [rsp + 0x68], rdx
call r10
mov rcx, qword [rsp + 0x60]
mov r15, rax
mov rax, qword [rsp + 0x48]
call rax
cmp r15, 0xffffffffffffffff
je 0x403f9a
mov qword [rsp + 0x78], r12
lea rax, [rsp + 0x2fc]
mov qword [rsp + 0x70], r13
mov r13, qword [rsp + 0x68]
mov qword [rsp + 0x60], rbp
mov rbp, rax
nop word [rax + rax]
test byte [rsp + 0x2d0], 0x10
jne 0x404629
lea rdx, str..manifest
mov rcx, rbp
call sym.str_ends_with
test eax, eax
jne 0x4045e8
lea rdx, str..mum
mov rcx, rbp
call sym.str_ends_with
test eax, eax
je 0x404629
mov rdx, rbp
mov rcx, rbx
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x404629
mov rcx, rax
call sym.load_manifest
test rax, rax
je 0x40461f
mov rdx, qword [rsp + 0x58]
mov qword [rax], rdx
mov rdx, qword [rsi + 0x20]
mov qword [rax + 8], rdx
mov qword [rdx], rax
mov qword [rsi + 0x20], rax
mov rax, qword [rsp + 0x48]
mov rcx, r12
call rax
mov rdx, r13
mov rcx, r15
call rdi
test eax, eax
jne 0x4045b8
mov rbp, qword [rsp + 0x60]
mov r13, qword [rsp + 0x70]
mov rcx, r15
mov r12, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_FindClose]
jmp 0x403f9a
mov byte [rdx], 0x22
test eax, eax
jle 0x405962
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.Failed_to_extract__s_n
lea r8, str.load_assemblies_from_cab
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
nop word [rax + rax]
test byte [section..data], 2
je 0x403f9a
mov rax, r12
shr rax, 0x10
je 0x40586b
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x404d1d
cmp word [r12], 0
je 0x40591d
xor eax, eax
nop dword [rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x4046f8
mov r15d, 0x224c
mov r8, r12
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r15w
lea r9, [rsp + 0x3f2]
jmp 0x40476e
cmp ax, 9
je 0x4056e8
cmp ax, 0xa
jne 0x405673
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
cmp rdx, r9
ja 0x404cf1
test ecx, ecx
jle 0x404cf1
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x405650
jbe 0x404730
cmp ax, 0x22
je 0x4056d0
cmp ax, 0x5c
jne 0x405664
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x404758
mov byte [rdx], al
add rdx, 1
jmp 0x404208
shr rax, 0x10
je 0x404a10
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x404a20
cmp word [r12], 0
je 0x405843
xor eax, eax
nop dword [rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x404800
mov r8d, 0x224c
lea rdx, [rsp + 0x2d2]
lea r9, [rsp + 0x3f2]
mov word [rsp + 0x2d0], r8w
mov r8, r12
jmp 0x404876
cmp ax, 9
je 0x404de8
cmp ax, 0xa
jne 0x404d55
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x404ff8
cmp rdx, r9
ja 0x404ff8
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x404dd0
jbe 0x404838
cmp ax, 0x22
je 0x404db8
cmp ax, 0x5c
jne 0x404d46
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x404860
lea rcx, section..data
call sym.__wine_dbg_get_channel_flags
test al, 8
je 0x40409f
movzx eax, byte [section..data]
test al, 8
jne 0x405029
mov r13, qword [rbx + 0x28]
cmp qword [rsp + 0x38], r13
je 0x40508b
mov r15, qword [rsp + 0x38]
lea r14, [0x0040a034]
lea rdi, str.0123456789abcdefcabinet_copy_file
jmp 0x40490d
mov r13, qword [r13]
cmp r15, r13
je 0x405068
mov edx, eax
and edx, 8
je 0x404900
mov r12, qword [r13 + 0x10]
mov rax, r14
test r12, r12
je 0x404a7c
mov rax, r12
shr rax, 0x10
je 0x405728
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x404a7c
cmp word [r12], 0
je 0x4058b1
xor eax, eax
nop word [rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x404968
mov eax, 0x224c
lea rdx, [rsp + 0x2d2]
lea r8, [rsp + 0x3f2]
mov word [rsp + 0x2d0], ax
jmp 0x4049d6
cmp ax, 9
je 0x404e00
cmp ax, 0xa
jne 0x404e23
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
cmp rdx, r8
ja 0x404a50
test ecx, ecx
jle 0x404a50
mov ecx, eax
movzx eax, word [r12]
add r12, 2
cmp ax, 0xd
je 0x404e98
jbe 0x404998
cmp ax, 0x22
je 0x404e80
cmp ax, 0x5c
jne 0x404e14
mov r9d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r9w
jmp 0x4049c0
movzx edx, r12w
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
mov qword [rsp + 0x20], rax
lea r9, str.Processing_cab_file__s_n
lea r8, str.load_assemblies_from_cab
mov ecx, 3
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403f66
mov byte [rdx], 0x22
test eax, eax
jle 0x4058ce
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea rdx, section..data
lea r9, str.___s_n
mov ecx, 3
lea r8, str.install_msu
call sym.wine_dbg_log.constprop.0
movzx eax, byte [rsi]
mov edx, eax
and edx, 8
jmp 0x404900
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x404fe8
mov r10d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [r9 + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [r9 + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [r9 + rax]
and r10d, 0xf
movzx r10d, byte [r9 + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x404428
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x404428
mov r12d, 0x725c
add rdx, 2
mov word [rdx - 2], r12w
jmp 0x404428
mov edi, 0x745c
add rdx, 2
mov word [rdx - 2], di
jmp 0x404428
mov rax, r15
shr rax, 0x10
je 0x40577b
mov rdx, 0xffffffffffffffff
mov rcx, r15
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x404c6b
cmp word [r15], 0
je 0x4058d7
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [r15 + rax*2], 0
jne 0x404ba0
mov eax, 0x224c
mov r8, r15
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea r9, [rsp + 0x3f2]
jmp 0x404c06
cmp ax, 9
je 0x404f98
cmp ax, 0xa
jne 0x404f08
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x404c3f
cmp rdx, r9
ja 0x404c3f
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x404f80
jbe 0x404bd0
cmp ax, 0x22
je 0x404f68
cmp ax, 0x5c
jne 0x404ef9
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x404bf8
mov byte [rdx], 0x22
test eax, eax
jle 0x4058f4
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.Failed_to_load_all_updates_from__s__ignoring_n
lea r8, str.install_msu
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x40406a
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x40426e
test byte [section..data], 2
je 0x403db5
lea r9, str.Dry_run_failed__aborting_installation_n
lea r8, str.install_msu
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403db8
mov byte [rdx], 0x22
test eax, eax
jle 0x40593a
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.Failed_to_load_all_manifests_from__s__ignoring_n
lea r8, str.install_msu
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403f9a
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x405700
mov r10d, eax
lea rbx, str.0123456789abcdefcabinet_copy_file
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [rbx + rax]
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x404860
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x404860
mov r15d, 0x725c
add rdx, 2
mov word [rdx - 2], r15w
jmp 0x404860
mov ebx, 0x745c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x404860
mov r11d, 0x745c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x4049c0
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x405748
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [rdi + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [rdi + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [rdi + rax]
and r9d, 0xf
movzx r9d, byte [rdi + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x4049c0
mov r10d, 0x225c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x4049c0
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x4049c0
movzx edx, si
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40449c
test byte [section..data], 2
je 0x403db5
lea r9, str.Installation_failed_n
lea r8, str.install_msu
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403db8
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x405838
mov r10d, eax
lea r11, str.0123456789abcdefcabinet_copy_file
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [r11 + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [r11 + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [r11 + rax]
and r10d, 0xf
movzx r10d, byte [r11 + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x404bf8
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x404bf8
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x404bf8
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x404bf8
test byte [section..data], 2
je 0x403db5
lea r9, str.No_updates_found__probably_incompatible_MSU_file_format__n
lea r8, str.install_msu
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403db5
mov byte [rdx], al
add rdx, 1
jmp 0x404428
mov byte [rdx], 0x22
test eax, eax
jle 0x405862
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
jmp 0x404a20
lea rdx, section..data
lea r9, str.List_of_updates:_n
mov ecx, 3
lea r8, str.install_msu
call sym.wine_dbg_log.constprop.0
movzx eax, byte [section..data]
mov r13, qword [rbx + 0x28]
mov edx, eax
and edx, 8
cmp qword [rsp + 0x38], r13
jne 0x4048e2
nop dword [rax + rax]
test dl, dl
je 0x40508b
lea r9, str.List_of_manifests__with_dependencies_:_n
lea r8, str.install_msu
mov ecx, 3
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
mov r12, qword [rbx + 0x18]
cmp rbp, r12
je 0x40409f
mov qword [rsp + 0x578], rbx
lea r13, str.0123456789abcdefcabinet_copy_file
nop word [rax + rax]
test byte [rsi], 8
jne 0x405360
mov rbx, qword [r12 + 0x50]
lea rdi, [r12 + 0x50]
lea r14, [0x0040a034]
cmp rdi, rbx
jne 0x4050e4
jmp 0x40523e
mov rbx, qword [rbx]
cmp rbx, rdi
je 0x40523e
test byte [rsi], 8
je 0x4050d8
mov r15, qword [rbx + 0x10]
mov rax, r14
test r15, r15
je 0x40520e
mov rax, r15
shr rax, 0x10
je 0x405310
mov rdx, 0xffffffffffffffff
mov rcx, r15
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x40520e
cmp word [r15], 0
je 0x405338
xor eax, eax
nop word cs:[rax + rax]
mov ecx, eax
add rax, 1
cmp word [r15 + rax*2], 0
jne 0x405140
mov r8d, 0x224c
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r8w
lea r8, [rsp + 0x3f2]
jmp 0x4051a6
cmp ax, 9
je 0x405278
cmp ax, 0xa
jne 0x405299
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x4051e0
cmp rdx, r8
ja 0x4051e0
mov ecx, eax
movzx eax, word [r15]
add r15, 2
cmp ax, 0xd
je 0x405260
jbe 0x405170
cmp ax, 0x22
je 0x4052f8
cmp ax, 0x5c
jne 0x40528a
mov eax, 0x5c5c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405198
mov byte [rdx], 0x22
test eax, eax
jle 0x405355
mov r11d, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], r11w
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str._______s_n
lea r8, str.install_msu
mov ecx, 3
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x4050e4
mov r12, qword [r12]
cmp rbp, r12
jne 0x4050b0
mov rbx, qword [rsp + 0x578]
jmp 0x40409f
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405198
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405198
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x405328
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [r13 + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [r13 + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [r13 + rax]
and r9d, 0xf
movzx r9d, byte [r13 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x405198
mov eax, 0x225c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405198
movzx edx, r15w
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40520e
mov byte [rdx], al
add rdx, 1
jmp 0x405198
mov ecx, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], cx
lea rax, [rdx + 1]
jmp 0x4051fe
mov rdi, qword [r12 + 0x28]
lea rax, [0x0040a034]
test rdi, rdi
je 0x40547c
mov rax, rdi
shr rax, 0x10
je 0x405710
mov rdx, 0xffffffffffffffff
mov rcx, rdi
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x40547c
cmp word [rdi], 0
je 0x40588b
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [rdi + rax*2], 0
jne 0x4053b8
mov edx, 0x224c
lea r8, [rsp + 0x3f2]
mov word [rsp + 0x2d0], dx
lea rdx, [rsp + 0x2d2]
jmp 0x40541e
cmp ax, 9
je 0x405528
cmp ax, 0xa
jne 0x4054c9
mov r14d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r14w
nop dword [rax + rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x405450
cmp rdx, r8
ja 0x405450
mov ecx, eax
movzx eax, word [rdi]
add rdi, 2
cmp ax, 0xd
je 0x4054a8
jbe 0x4053e8
cmp ax, 0x22
je 0x405540
cmp ax, 0x5c
jne 0x4054ba
mov r9d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r9w
jmp 0x405410
mov byte [rdx], 0x22
test eax, eax
jle 0x4058a8
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x2d0]
call sym.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.___s_n
lea r8, str.install_msu
mov ecx, 3
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x4050b9
mov ebx, 0x725c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x405410
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x40573d
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [r13 + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [r13 + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [r13 + rax]
and r9d, 0xf
movzx r9d, byte [r13 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x405410
mov r11d, 0x745c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405410
mov r10d, 0x225c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405410
mov rax, r12
shr rax, 0x10
je 0x4058fd
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040a03b]
test r8d, r8d
jne 0x40467e
cmp word [r12], 0
je 0x405943
xor eax, eax
nop word cs:[rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x4055a0
mov r11d, 0x224c
mov r8, r12
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r11w
lea r9, [rsp + 0x3f2]
jmp 0x405616
cmp ax, 9
je 0x405790
cmp ax, 0xa
jne 0x4057b1
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x404652
cmp rdx, r9
ja 0x404652
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x405824
jbe 0x4055d8
cmp ax, 0x22
je 0x405810
cmp ax, 0x5c
jne 0x4057a2
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405600
mov r15d, 0x725c
add rdx, 2
mov word [rdx - 2], r15w
jmp 0x404758
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x405880
mov r10d, eax
lea rbx, str.0123456789abcdefcabinet_copy_file
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [rbx + rax]
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x404758
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x404758
mov ebx, 0x745c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x404758
mov byte [rdx], al
add rdx, 1
jmp 0x404860
movzx edx, di
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40547c
movzx edx, r12w
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x404a7c
mov byte [rdx], al
add rdx, 1
jmp 0x405410
mov byte [rdx], al
add rdx, 1
jmp 0x4049c0
mov r10d, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r10w
lea rax, [rdx + 1]
jmp 0x40448c
movzx edx, r15w
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x404c6b
mov ebx, 0x745c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x405600
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x405912
mov r10d, eax
lea rbx, str.0123456789abcdefcabinet_copy_file
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [rbx + rax]
and r10d, 0xf
movzx r10d, byte [rbx + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x405600
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405600
mov r15d, 0x725c
add rdx, 2
mov word [rdx - 2], r15w
jmp 0x405600
mov byte [rdx], al
add rdx, 1
jmp 0x404bf8
mov r9d, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r9w
lea rax, [rdx + 1]
jmp 0x405014
movzx edx, r12w
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x404d1d
mov byte [rdx], al
add rdx, 1
jmp 0x404758
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x40546c
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x404a6c
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x404c5b
movzx edx, r12w
lea rcx, [0x0040a02e]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40467e
mov byte [rdx], al
add rdx, 1
jmp 0x405600
mov ebx, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], bx
lea rax, [rdx + 1]
jmp 0x404d0d
mov r10d, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r10w
lea rax, [rdx + 1]
jmp 0x40466e