Function at 0x404620
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 rdi, [rdx + 0x18]
mov rbx, rcx
mov r15, rdx
movq xmm1, rax
lea rbp, [rdx + 0x28]
movq xmm2, rdi
xor ecx, ecx
movddup xmm0, xmm1
movq xmm3, rbp
mov qword [rsp + 0x38], rax
movups xmmword [rdx + 8], xmm0
movddup xmm0, xmm2
movups xmmword [rdx + 0x18], xmm0
movddup xmm0, xmm3
movups xmmword [rdx + 0x28], xmm0
call qword [sym.imp.ole32.dll_CoInitialize]
test byte [section..data], 8
jne 0x404a20
mov rcx, r15
xor r13d, r13d
call sym.create_temp_directory
mov r14, rax
test rax, rax
je 0x40476e
mov rdx, rax
mov rcx, rbx
call sym.extract_cabinet
mov r13d, eax
test eax, eax
jne 0x404788
test byte [section..data], 2
jne 0x404c40
xor r13d, r13d
mov r12, qword [r15 + 8]
mov rbx, qword [sym.imp.ucrtbase.dll_free]
mov r14, qword [rsp + 0x38]
mov rsi, qword [r12]
cmp qword [rsp + 0x38], r12
je 0x404711
nop
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.isra.0
mov rcx, qword [r12 + 0x10]
call rbx
mov rcx, r12
mov r12, rsi
call rbx
mov rsi, qword [rsi]
cmp r14, r12
jne 0x4046e0
mov rcx, qword [r15 + 0x18]
mov rbx, qword [rcx]
cmp rdi, rcx
je 0x40473e
nop dword [rax]
mov rax, qword [rcx + 8]
mov qword [rbx + 8], rax
mov rdx, qword [rcx]
mov qword [rax], rdx
call sym.free_assembly
mov rcx, rbx
mov rbx, qword [rbx]
cmp rdi, rcx
jne 0x404720
mov rcx, qword [r15 + 0x28]
mov rbx, qword [rcx]
cmp rbp, rcx
je 0x40476e
nop word [rax + rax]
mov rax, qword [rcx + 8]
mov qword [rbx + 8], rax
mov rdx, qword [rcx]
mov qword [rax], rdx
call sym.free_dependency
mov rcx, rbx
mov rbx, qword [rbx]
cmp rbp, rcx
jne 0x404750
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, r14
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x4046c0
mov rcx, rax
mov rax, qword [sym.imp.kernel32.dll_FindFirstFileW]
lea rsi, [rsp + 0x80]
mov rdx, rsi
mov qword [rsp + 0x48], rax
call rax
mov rbx, qword [sym.imp.ucrtbase.dll_free]
mov rcx, r12
mov r13, rax
call rbx
cmp r13, 0xffffffffffffffff
je 0x4048b6
mov rax, qword [sym.imp.kernel32.dll_FindNextFileW]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbp
mov rdi, rax
mov rbp, r15
mov r15, r14
nop word [rax + rax]
test byte [rsp + 0x80], 0x10
jne 0x404888
lea r12, [rsp + 0xac]
lea rdx, str.WSUSSCAN.cab
mov rcx, r12
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x404888
mov rdx, r12
mov rcx, r15
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x404888
test byte [section..data], 8
jne 0x405080
mov rcx, rbp
call sym.create_temp_directory
mov rbx, rax
test rax, rax
je 0x404f70
mov rdx, rax
mov rcx, r12
call sym.extract_cabinet
test eax, eax
jne 0x404d90
test byte [section..data], 2
jne 0x405db4
mov rax, qword [rsp + 0x40]
mov rcx, r12
call rax
nop dword [rax]
mov rdx, rsi
mov rcx, r13
call rdi
test eax, eax
jne 0x404800
mov r14, r15
mov rdi, qword [rsp + 0x50]
mov r15, rbp
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x58]
mov rcx, r13
call qword [sym.imp.kernel32.dll_FindClose]
lea rdx, str..xml
mov rcx, r14
call sym.path_combine.part.0
mov r13, rax
test rax, rax
je 0x4046c0
mov rcx, rax
mov rdx, rsi
mov rax, qword [rsp + 0x48]
call rax
mov rcx, r13
mov r12, rax
call rbx
cmp r12, 0xffffffffffffffff
je 0x404964
mov qword [rsp + 0x578], r15
mov r13, qword [sym.imp.kernel32.dll_FindNextFileW]
nop dword [rax + rax]
test byte [rsp + 0x80], 0x10
jne 0x404946
lea rdx, [rsp + 0xac]
mov rcx, r14
call sym.path_combine.part.0
mov r15, rax
test rax, rax
je 0x404946
mov rdx, rbp
mov rcx, rax
call sym.load_update
test eax, eax
jne 0x404941
lea rax, section..data
test byte [rax], 2
jne 0x405402
mov rcx, r15
call rbx
mov rdx, rsi
mov rcx, r12
call r13
test eax, eax
jne 0x404900
mov r15, qword [rsp + 0x578]
mov rcx, r12
call qword [sym.imp.kernel32.dll_FindClose]
test byte [section..data], 8
jne 0x40516f
cmp rbp, qword [r15 + 0x28]
je 0x40583d
mov rax, qword [r15 + 0x18]
cmp rdi, rax
je 0x404997
nop dword [rax]
mov dword [rax + 0x10], 0
mov rax, qword [rax]
cmp rdi, rax
jne 0x404988
mov edx, 1
mov rcx, r15
call sym.install_updates
mov r13d, eax
test eax, eax
je 0x40555a
mov rax, qword [r15 + 0x18]
cmp rdi, rax
je 0x4049cf
nop dword [rax + rax]
mov dword [rax + 0x10], 0
mov rax, qword [rax]
cmp rdi, rax
jne 0x4049c0
xor edx, edx
mov rcx, r15
call sym.install_updates
mov r13d, eax
test eax, eax
je 0x4057d4
mov r13d, 1
test byte [section..data], 8
je 0x4046c3
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 0x4046c3
lea rax, [0x0040b00e]
test rbx, rbx
je 0x404b4c
mov rax, rbx
shr rax, 0x10
je 0x404b78
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x404b4c
cmp word [rbx], 0
je 0x405534
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [rbx + rax*2], 0
jne 0x404a70
mov edx, 0x224c
mov r8, rbx
lea r9, [rsp + 0x3f2]
mov word [rsp + 0x2d0], dx
lea r10, str.0123456789abcdefcabinet_copy_file
lea rdx, [rsp + 0x2d2]
jmp 0x404ae6
cmp ax, 9
je 0x404ba8
cmp ax, 0xa
jne 0x404bcb
mov r14d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r14w
nop dword [rax + rax]
lea eax, [rcx - 1]
cmp rdx, r9
ja 0x404b20
test ecx, ecx
jle 0x404b20
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x404b90
jbe 0x404ab0
cmp ax, 0x22
je 0x404c28
cmp ax, 0x5c
jne 0x404bbc
mov r11d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x404ad8
mov byte [rdx], 0x22
test eax, eax
jle 0x405551
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.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 0x404686
movzx edx, bx
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x404b4c
mov r13d, 0x725c
add rdx, 2
mov word [rdx - 2], r13w
jmp 0x404ad8
mov r12d, 0x745c
add rdx, 2
mov word [rdx - 2], r12w
jmp 0x404ad8
lea r11d, [rax - 0x20]
cmp r11w, 0x5e
jbe 0x405070
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 0x404ad8
mov esi, 0x225c
add rdx, 2
mov word [rdx - 2], si
jmp 0x404ad8
lea rax, [0x0040b00e]
test rbx, rbx
je 0x404d62
mov rax, rbx
shr rax, 0x10
je 0x40573c
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x404d62
cmp word [rbx], 0
je 0x405f8d
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [rbx + rax*2], 0
jne 0x404c90
mov r9d, 0x224c
lea rdx, [rsp + 0x2d2]
lea r8, str.0123456789abcdefcabinet_copy_file
mov word [rsp + 0x2d0], r9w
lea r9, [rsp + 0x3f2]
jmp 0x404cfe
cmp ax, 9
je 0x4053f0
cmp ax, 0xa
jne 0x405362
mov r14d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r14w
nop dword [rax + rax]
lea eax, [rcx - 1]
cmp rdx, r9
ja 0x404d36
test ecx, ecx
jle 0x404d36
mov ecx, eax
movzx eax, word [rbx]
add rbx, 2
cmp ax, 0xd
je 0x4053d4
jbe 0x404cc8
cmp ax, 0x22
je 0x4053c0
cmp ax, 0x5c
jne 0x405353
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x404cf0
mov byte [rdx], 0x22
test eax, eax
jle 0x405fac
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 0x4046c3
lea rdx, str._manifest_.cix.xml
mov rcx, rbx
call sym.path_combine.part.0
mov r14, rax
test rax, rax
je 0x404f70
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x404e03
test byte [section..data], 1
je 0x404e03
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 0x404e03
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 + 0x40]
mov rcx, r14
call rax
mov rcx, rbx
lea rdx, [0x0040b072]
call sym.path_combine.part.0
mov rcx, rax
test rax, rax
je 0x404f70
lea rdx, [rsp + 0x2d0]
mov qword [rsp + 0x60], rax
mov r10, qword [rsp + 0x48]
mov qword [rsp + 0x68], rdx
call r10
mov rcx, qword [rsp + 0x60]
mov r14, rax
mov rax, qword [rsp + 0x40]
call rax
cmp r14, 0xffffffffffffffff
je 0x40487a
mov qword [rsp + 0x78], r12
lea rax, [rsp + 0x2fc]
mov qword [rsp + 0x60], r15
mov r15, qword [rsp + 0x68]
mov qword [rsp + 0x70], r13
mov r13, rax
nop word [rax + rax]
test byte [rsp + 0x2d0], 0x10
jne 0x404ef1
lea rdx, str..manifest
mov rcx, r13
call sym.str_ends_with
test eax, eax
jne 0x404eb0
lea rdx, str..mum
mov rcx, r13
call sym.str_ends_with
test eax, eax
je 0x404ef1
mov rdx, r13
mov rcx, rbx
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x404ef1
mov rcx, rax
call sym.load_manifest
test rax, rax
je 0x404ee7
mov rdx, qword [rsp + 0x50]
mov qword [rax], rdx
mov rdx, qword [rbp + 0x20]
mov qword [rax + 8], rdx
mov qword [rdx], rax
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x40]
mov rcx, r12
call rax
mov rdx, r15
mov rcx, r14
call rdi
test eax, eax
jne 0x404e80
mov r15, qword [rsp + 0x60]
mov r13, qword [rsp + 0x70]
mov rcx, r14
mov r12, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_FindClose]
jmp 0x40487a
mov byte [rdx], 0x22
test eax, eax
jle 0x406199
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 0x40487a
mov rax, r12
shr rax, 0x10
je 0x4060a2
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x405640
cmp word [r12], 0
je 0x406154
xor eax, eax
nop dword [rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x404fc0
mov r14d, 0x224c
mov r8, r12
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r14w
lea r9, [rsp + 0x3f2]
jmp 0x405036
cmp ax, 9
je 0x405f1e
cmp ax, 0xa
jne 0x405eae
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x405614
cmp rdx, r9
ja 0x405614
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x405f30
jbe 0x404ff8
cmp ax, 0x22
je 0x405f0a
cmp ax, 0x5c
jne 0x405e9f
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405020
mov byte [rdx], al
add rdx, 1
jmp 0x404ad8
shr rax, 0x10
je 0x4052b4
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x4052c4
cmp word [r12], 0
je 0x40607a
xor eax, eax
nop dword [rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x4050c0
mov r8d, 0x224c
lea rdx, [rsp + 0x2d2]
lea r9, [rsp + 0x3f2]
mov word [rsp + 0x2d0], r8w
mov r8, r12
jmp 0x405136
cmp ax, 9
je 0x405680
cmp ax, 0xa
jne 0x40559a
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
cmp rdx, r9
ja 0x40586e
test ecx, ecx
jle 0x40586e
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x405669
jbe 0x4050f8
cmp ax, 0x22
je 0x405600
cmp ax, 0x5c
jne 0x40558b
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405120
lea rcx, section..data
call sym.__wine_dbg_get_channel_flags
test al, 8
je 0x404971
movzx eax, byte [section..data]
test al, 8
jne 0x40589f
mov r12, qword [r15 + 0x28]
cmp rbp, r12
je 0x4058fa
lea rbx, [0x0040b00e]
lea r13, str.0123456789abcdefcabinet_copy_file
jmp 0x4051bd
mov r12, qword [r12]
cmp rbp, r12
je 0x4058d7
mov edx, eax
and edx, 8
je 0x4051b0
mov rsi, qword [r12 + 0x10]
mov rax, rbx
test rsi, rsi
je 0x40531b
mov rax, rsi
shr rax, 0x10
je 0x405f4f
mov rdx, 0xffffffffffffffff
mov rcx, rsi
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x40531b
cmp word [rsi], 0
je 0x4060dd
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp word [rsi + rax*2], 0
jne 0x405218
mov eax, 0x224c
lea rdx, [rsp + 0x2d2]
lea r8, [rsp + 0x3f2]
mov word [rsp + 0x2d0], ax
jmp 0x40527e
cmp ax, 9
je 0x405698
cmp ax, 0xa
jne 0x4056b9
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x4052ed
cmp rdx, r8
ja 0x4052ed
mov ecx, eax
movzx eax, word [rsi]
add rsi, 2
cmp ax, 0xd
je 0x40572a
jbe 0x405248
cmp ax, 0x22
je 0x405718
cmp ax, 0x5c
jne 0x4056aa
mov eax, 0x5c5c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405270
movzx edx, r12w
lea rcx, [0x0040b008]
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 0x404846
mov byte [rdx], 0x22
test eax, eax
jle 0x4060fa
mov r14d, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], r14w
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
lea rax, section..data
movzx eax, byte [rax]
mov edx, eax
and edx, 8
jmp 0x4051b0
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x405832
mov r10d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [r8 + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [r8 + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [r8 + rax]
and r10d, 0xf
movzx r10d, byte [r8 + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x404cf0
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x404cf0
mov r12d, 0x725c
add rdx, 2
mov word [rdx - 2], r12w
jmp 0x404cf0
mov esi, 0x745c
add rdx, 2
mov word [rdx - 2], si
jmp 0x404cf0
mov rax, r15
shr rax, 0x10
je 0x405fb5
mov rdx, 0xffffffffffffffff
mov rcx, r15
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x40550b
cmp word [r15], 0
je 0x40610e
xor eax, eax
nop
mov ecx, eax
add rax, 1
cmp word [r15 + rax*2], 0
jne 0x405440
mov eax, 0x224c
mov r8, r15
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea r9, [rsp + 0x3f2]
jmp 0x4054a6
cmp ax, 9
je 0x405820
cmp ax, 0xa
jne 0x40575f
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x4054df
cmp rdx, r9
ja 0x4054df
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x405805
jbe 0x405470
cmp ax, 0x22
je 0x4057c0
cmp ax, 0x5c
jne 0x405750
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405498
mov byte [rdx], 0x22
test eax, eax
jle 0x40612b
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 0x404941
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x404b3c
test byte [section..data], 2
je 0x4046c0
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 0x4046c3
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x405f44
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 0x405120
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405120
mov byte [rdx], 0x22
test eax, eax
jle 0x406171
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 0x40487a
mov r14d, 0x725c
add rdx, 2
mov word [rdx - 2], r14w
jmp 0x405120
mov ebx, 0x745c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x405120
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405270
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x405f82
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 0x405270
mov eax, 0x225c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405270
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405270
movzx edx, bx
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x404d62
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x40606f
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 0x405498
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405498
test byte [section..data], 2
je 0x4046c0
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 0x4046c3
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405498
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405498
mov byte [rdx], al
add rdx, 1
jmp 0x404cf0
test byte [section..data], 2
je 0x4046c0
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 0x4046c0
mov byte [rdx], 0x22
test eax, eax
jle 0x406099
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 0x4052c4
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 r12, qword [r15 + 0x28]
mov edx, eax
and edx, 8
cmp rbp, r12
jne 0x40519f
test dl, dl
je 0x4058fa
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 rsi, qword [r15 + 0x18]
cmp rdi, rsi
je 0x404971
mov qword [rsp + 0x40], rbp
lea r12, str.0123456789abcdefcabinet_copy_file
nop dword [rax + rax]
lea rax, section..data
test byte [rax], 8
jne 0x405bc8
mov rbp, qword [rsi + 0x50]
lea rbx, [rsi + 0x50]
lea r13, [0x0040b00e]
cmp rbx, rbp
jne 0x405955
jmp 0x405aaf
mov rbp, qword [rbp]
cmp rbp, rbx
je 0x405aaf
lea rax, section..data
test byte [rax], 8
je 0x405948
mov r14, qword [rbp + 0x10]
mov rax, r13
test r14, r14
je 0x405a7e
mov rax, r14
shr rax, 0x10
je 0x405b78
mov rdx, 0xffffffffffffffff
mov rcx, r14
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x405a7e
cmp word [r14], 0
je 0x405b9b
xor eax, eax
nop
mov ecx, eax
add rax, 1
cmp word [r14 + rax*2], 0
jne 0x4059b0
mov r8d, 0x224c
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r8w
lea r8, [rsp + 0x3f2]
jmp 0x405a16
cmp ax, 9
je 0x405ae0
cmp ax, 0xa
jne 0x405b01
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea eax, [rcx - 1]
cmp rdx, r8
ja 0x405a50
test ecx, ecx
jle 0x405a50
mov ecx, eax
movzx eax, word [r14]
add r14, 2
cmp ax, 0xd
je 0x405ac8
jbe 0x4059e0
cmp ax, 0x22
je 0x405b60
cmp ax, 0x5c
jne 0x405af2
mov eax, 0x5c5c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405a08
mov byte [rdx], 0x22
test eax, eax
jle 0x405bb8
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 rbp, qword [rbp]
cmp rbp, rbx
jne 0x405955
mov rsi, qword [rsi]
cmp rdi, rsi
jne 0x405918
mov rbp, qword [rsp + 0x40]
jmp 0x404971
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405a08
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405a08
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x405b90
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [r12 + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [r12 + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [r12 + rax]
and r9d, 0xf
movzx r9d, byte [r12 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x405a08
mov eax, 0x225c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x405a08
movzx edx, r14w
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x405a7e
mov byte [rdx], al
add rdx, 1
jmp 0x405a08
mov ecx, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], cx
lea rax, [rdx + 1]
jmp 0x405a6e
mov rbx, qword [rsi + 0x28]
lea rax, [0x0040b00e]
test rbx, rbx
je 0x405ce2
mov rax, rbx
shr rax, 0x10
je 0x405f63
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x405ce2
cmp word [rbx], 0
je 0x4060b7
xor eax, eax
nop dword [rax + rax]
mov ecx, eax
add rax, 1
cmp word [rbx + rax*2], 0
jne 0x405c20
mov edx, 0x224c
lea r8, [rsp + 0x3f2]
mov word [rsp + 0x2d0], dx
lea rdx, [rsp + 0x2d2]
jmp 0x405c86
cmp ax, 9
je 0x405d88
cmp ax, 0xa
jne 0x405d2c
mov r13d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r13w
nop dword [rax + rax]
lea eax, [rcx - 1]
test ecx, ecx
jle 0x405cb6
cmp rdx, r8
ja 0x405cb6
mov ecx, eax
movzx eax, word [rbx]
add rbx, 2
cmp ax, 0xd
je 0x405d0b
jbe 0x405c50
cmp ax, 0x22
je 0x405da0
cmp ax, 0x5c
jne 0x405d1d
mov r9d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r9w
jmp 0x405c78
mov byte [rdx], 0x22
test eax, eax
jle 0x4060d4
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 0x405928
mov ebp, 0x725c
add rdx, 2
mov word [rdx - 2], bp
jmp 0x405c78
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x405f77
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [r12 + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [r12 + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [r12 + rax]
and r9d, 0xf
movzx r9d, byte [r12 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x405c78
mov r11d, 0x745c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405c78
mov r10d, 0x225c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405c78
mov rax, r12
shr rax, 0x10
je 0x406134
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, [0x0040b015]
test r8d, r8d
jne 0x404f46
cmp word [r12], 0
je 0x40617a
xor eax, eax
nop word [rax + rax]
mov ecx, eax
add rax, 1
cmp word [r12 + rax*2], 0
jne 0x405df8
mov r11d, 0x224c
mov r8, r12
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r11w
lea r9, [rsp + 0x3f2]
jmp 0x405e66
cmp ax, 9
je 0x405fde
cmp ax, 0xa
jne 0x405fff
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax + rax]
lea eax, [rcx - 1]
cmp rdx, r9
ja 0x404f1a
test ecx, ecx
jle 0x404f1a
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x405fca
jbe 0x405e2a
cmp ax, 0x22
je 0x40605b
cmp ax, 0x5c
jne 0x405ff0
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x405e50
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x406103
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 0x405020
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405020
mov ebx, 0x745c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x405020
mov r14d, 0x725c
add rdx, 2
mov word [rdx - 2], r14w
jmp 0x405020
mov byte [rdx], al
add rdx, 1
jmp 0x405120
movzx edx, si
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40531b
movzx edx, bx
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x405ce2
mov byte [rdx], al
add rdx, 1
jmp 0x405c78
mov byte [rdx], al
add rdx, 1
jmp 0x405270
mov r10d, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r10w
lea rax, [rdx + 1]
jmp 0x404d52
movzx edx, r15w
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x40550b
mov r14d, 0x725c
add rdx, 2
mov word [rdx - 2], r14w
jmp 0x405e50
mov ebx, 0x745c
add rdx, 2
mov word [rdx - 2], bx
jmp 0x405e50
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x406149
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 0x405e50
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x405e50
mov byte [rdx], al
add rdx, 1
jmp 0x405498
mov r9d, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r9w
lea rax, [rdx + 1]
jmp 0x40588a
movzx edx, r12w
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x405640
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x405cd2
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x40530b
mov byte [rdx], al
add rdx, 1
jmp 0x405020
mov eax, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], ax
lea rax, [rdx + 1]
jmp 0x4054fb
movzx edx, r12w
lea rcx, [0x0040b008]
call sym.wine_dbg_sprintf.constprop.0
jmp 0x404f46
mov byte [rdx], al
add rdx, 1
jmp 0x405e50
mov ebx, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], bx
lea rax, [rdx + 1]
jmp 0x405630
mov r10d, 0x224c
mov byte [rsp + 0x2d2], 0x22
lea rdx, [rsp + 0x2d2]
mov word [rsp + 0x2d0], r10w
lea rax, [rdx + 1]
jmp 0x404f36