Function at 0x402a00
Capabilities:
Check if file exists
Copy file
Set registry value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov r14, qword [rcx]
mov rsi, rcx
mov rbx, rdx
cmp rcx, r14
je 0x402cac
mov dword [rsp + 0x120], r8d
mov rdi, qword [sym.imp.ucrtbase.dll_wcscmp]
lea rbp, [0x0040d00c]
nop dword [rax + rax]
mov rcx, qword [r14 + 0x28]
mov rdx, qword [rbx]
call qword [sym.imp.ucrtbase.dll__wcsicmp]
mov r12d, eax
test eax, eax
jne 0x402ca0
mov r13, qword [rbx + 0x10]
mov r15, qword [r14 + 0x38]
mov rdx, r13
mov rcx, r15
call rdi
test eax, eax
jne 0x402c80
mov r15, qword [rbx + 0x18]
mov r13, qword [r14 + 0x40]
mov rdx, r15
mov rcx, r13
call rdi
test eax, eax
jne 0x402cf8
mov r15, qword [rbx + 0x20]
mov r13, qword [r14 + 0x48]
mov rdx, r15
mov rcx, r13
call rdi
test eax, eax
jne 0x402d50
mov dword [rsp + 0x98], r12d
mov r13, qword [rbx + 8]
mov r12, qword [r14 + 0x30]
mov r15d, dword [rsp + 0x120]
mov rdx, r13
mov rcx, r12
call rdi
test eax, eax
jne 0x403918
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x90], rax
mov eax, dword [r14 + 0x10]
cmp eax, 2
je 0x4038c0
cmp eax, 1
je 0x403a70
mov rbx, qword [r14 + 0x50]
lea rbp, [r14 + 0x50]
mov dword [r14 + 0x10], 1
cmp rbx, rbp
je 0x402b1e
lea rdx, [rbx + 0x10]
mov r8d, r15d
mov rcx, rsi
call sym.install_assembly
test eax, eax
je 0x402c50
mov rbx, qword [rbx]
cmp rbx, rbp
jne 0x402aff
test byte [section..data], 8
jne 0x4030f0
mov rcx, qword [r14 + 0x18]
call qword [sym.imp.ucrtbase.dll__wcsdup]
mov rbp, rax
test rax, rax
je 0x403bc2
mov edx, 0x2e
mov rcx, rax
call qword [sym.imp.ucrtbase.dll_wcsrchr]
test rax, rax
je 0x402b59
xor ecx, ecx
mov word [rax], cx
mov rbx, qword [r14 + 0x60]
lea rax, [r14 + 0x60]
cmp rbx, rax
je 0x402dbb
mov dword [rsp + 0x120], r15d
mov rsi, r14
mov r15, rax
nop dword [rax + rax]
mov rdx, qword [rbx + 0x18]
mov rcx, rsi
call sym.expand_expression
mov r14, rax
test rax, rax
je 0x402c38
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x402d20
mov rcx, rax
call sym.path_combine.part.0
mov r12, rax
test rax, rax
je 0x402d20
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x402d30
mov rcx, rbp
call sym.path_combine.part.0
mov r13, rax
test rax, rax
je 0x402d30
mov edx, dword [rsp + 0x120]
test edx, edx
jne 0x402d78
lea r11, section..data
test byte [section..data], 8
jne 0x4039b0
mov rcx, r12
call sym.create_parent_directory
test eax, eax
jne 0x403060
mov rsi, r14
test byte [section..data], 2
jne 0x403148
mov rcx, rsi
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_free]
test byte [section..data], 2
jne 0x403b50
nop
mov dword [rsp + 0x98], 0
mov eax, dword [rsp + 0x98]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rbp
mov rcx, r15
call rdi
test eax, eax
je 0x402a70
mov rdx, rbp
mov rcx, r13
call rdi
test eax, eax
je 0x402a70
mov r14, qword [r14]
cmp rsi, r14
jne 0x402a40
test byte [section..data], 1
je 0x402c50
mov rcx, qword [rbx]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Assembly__s_not_found_n
lea r8, str.install_assembly
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
mov dword [rsp + 0x98], 0
jmp 0x402c5b
mov rdx, rbp
mov rcx, r13
call rdi
test eax, eax
je 0x402a88
mov rdx, rbp
mov rcx, r15
call rdi
test eax, eax
je 0x402a88
jmp 0x402ca0
mov rcx, r14
call qword [sym.imp.ucrtbase.dll_free]
jmp 0x402c38
mov rcx, r14
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_free]
jmp 0x402c38
mov rdx, rbp
mov rcx, r13
call rdi
test eax, eax
je 0x402aa0
mov rdx, rbp
mov rcx, r15
call rdi
test eax, eax
je 0x402aa0
jmp 0x402ca0
mov rcx, rax
call qword [sym.imp.shlwapi.dll_PathFileExistsW]
test eax, eax
je 0x403180
mov rcx, r14
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_free]
mov rbx, qword [rbx]
cmp rbx, r15
jne 0x402b80
mov r15d, dword [rsp + 0x120]
mov r14, rsi
mov rcx, rbp
lea rbx, [r14 + 0x70]
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, qword [r14 + 0x38]
lea rdx, [0x0040d102]
call rdi
mov qword [rsp + 0x88], rbx
cmp eax, 1
sbb eax, eax
and eax, 0x200
add eax, 0xf003f
mov dword [rsp + 0x9c], eax
mov rax, qword [r14 + 0x70]
mov qword [rsp + 0x58], rax
cmp rbx, rax
je 0x403238
mov qword [rsp + 0x60], r14
mov r13d, r15d
nop dword [rax]
mov rax, qword [rsp + 0x58]
mov edx, 0x5c
mov rbp, qword [rax + 0x10]
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_wcschr]
mov rbx, rax
test rax, rax
je 0x40300a
mov rsi, rax
lea rax, str.HKEY_CLASSES_ROOT
sub rsi, rbp
sar rsi, 1
nop dword [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x402e48
lea rdx, str.HKEY_CLASSES_ROOT
mov r12d, esi
sub rax, rdx
sar rax, 1
cmp esi, eax
je 0x403800
lea rdx, str.HKEY_CURRENT_CONFIG
mov rax, rdx
nop dword [rax]
add rax, 2
cmp word [rax], 0
jne 0x402e78
sub rax, rdx
sar rax, 1
cmp esi, eax
je 0x403830
lea rdx, str.HKEY_CURRENT_USER
mov rax, rdx
nop word [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x402ea0
sub rax, rdx
sar rax, 1
cmp esi, eax
je 0x403860
lea rdx, str.HKEY_LOCAL_MACHINE
mov rax, rdx
nop word [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x402ec8
sub rax, rdx
sar rax, 1
cmp esi, eax
je 0x403890
lea rdx, str.HKEY_USERS
mov rax, rdx
nop word [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x402ef0
sub rax, rdx
sar rax, 1
cmp esi, eax
jne 0x403528
mov r8d, esi
lea rdx, str.HKEY_USERS
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_wcsncmp]
test eax, eax
jne 0x403528
mov r12, 0xffffffff80000003
lea rax, section..data
mov qword [rsp + 0x68], rax
test byte [section..data], 8
jne 0x4036d0
test r13d, r13d
je 0x403650
mov rax, qword [rsp + 0x58]
mov rsi, qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
cmp rsi, rax
je 0x403218
nop word [rax + rax]
mov rax, qword [rsp + 0x68]
mov r12, qword [rsp + 0xa8]
test byte [rax], 8
jne 0x403278
mov rcx, qword [rsi + 0x18]
lea rdx, str.REG_SZ
call rdi
test eax, eax
je 0x403260
mov rcx, qword [rsi + 0x18]
lea rdx, str.REG_EXPAND_SZ
call rdi
test eax, eax
je 0x4031d0
mov rcx, qword [rsi + 0x18]
lea rdx, str.REG_MULTI_SZ
call rdi
test eax, eax
je 0x4032c8
mov rcx, qword [rsi + 0x18]
lea rdx, str.REG_DWORD
call rdi
mov rcx, qword [rsi + 0x18]
test eax, eax
je 0x403410
lea rdx, str.REG_BINARY
call rdi
mov ebx, eax
test eax, eax
je 0x403570
mov r15d, r13d
test byte [section..data], 1
jne 0x403490
test r15d, r15d
je 0x403473
movzx eax, byte [section..data]
nop dword [rax]
test al, 2
je 0x402c50
mov rcx, qword [rsp + 0x90]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_install_registry_keys_for__s_n
mov ecx, 1
lea r8, str.install_assembly
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x402c5b
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov rcx, r13
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.kernel32.dll_CopyFileExW]
test eax, eax
jne 0x402d89
mov rsi, r14
test byte [section..data], 2
je 0x402c1d
mov rcx, r12
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
mov rcx, r13
mov edx, 0xffffffff
mov rbx, rax
call sym.wine_dbgstr_wn
mov qword [rsp + 0x28], rbx
lea r9, str.Failed_to_copy__s_to__s_n
lea r8, str.install_files_copy
mov qword [rsp + 0x20], rax
lea rdx, section..data
mov ecx, 1
call sym.wine_dbg_log.constprop.1
jmp 0x402c1d
mov rcx, qword [rsp + 0x90]
test r15d, r15d
lea rax, [0x0040d349]
lea rbx, str.__dryrun_
cmove rbx, rax
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Installing_assembly__s_s_n
mov ecx, 3
mov qword [rsp + 0x28], rbx
lea r8, str.install_assembly
lea rdx, section..data
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0
jmp 0x402b2b
mov rcx, r12
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_create_parent_directory_for__s_n
mov ecx, 1
lea r8, str.install_files_copy
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x402c1d
mov rsi, r14
test byte [section..data], 2
je 0x402c1d
mov rcx, r13
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Required_file__s_not_found_n
mov ecx, 1
lea r8, str.install_files_copy
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x402c1d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 2
mov rcx, qword [rsp + 0x60]
lea r9, [rsi + 0x20]
lea r8, [rsi + 0x10]
mov rdx, r12
call sym.install_registry_string.isra.0
test eax, eax
je 0x4033db
mov rsi, qword [rsi]
cmp qword [rsp + 0x70], rsi
jne 0x402f70
test r13d, r13d
je 0x4036b8
nop dword [rax]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
cmp rax, qword [rsp + 0x88]
jne 0x402e10
mov r14, qword [rsp + 0x60]
test byte [section..data], 8
jne 0x403c30
mov dword [r14 + 0x10], 2
mov dword [rsp + 0x98], 1
jmp 0x402c5b
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 1
jmp 0x4031dd
mov rcx, qword [rsi + 0x20]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
mov rcx, qword [rsi + 0x10]
mov edx, 0xffffffff
mov rbx, rax
call sym.wine_dbgstr_wn
mov qword [rsp + 0x28], rbx
lea r9, str.Setting_registry_key__s___s_n
lea r8, str.install_registry_value
mov qword [rsp + 0x20], rax
lea rdx, section..data
mov ecx, 3
call sym.wine_dbg_log.constprop.0
jmp 0x402f86
mov r15, qword [rsi + 0x20]
test r15, r15
je 0x4033f5
cmp word [r15], 0
je 0x4033f0
movabs rax, 0x4000000000
mov ecx, pe_nt_image_headers64
mov qword [rsp + 0xb8], rax
call qword [sym.imp.ucrtbase.dll_malloc]
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x4033e3
movzx eax, word [r15]
lea r14, [0x0040d642]
lea rbx, [rsp + 0xb0]
lea rbp, [0x0040d646]
cmp ax, 0x22
jne 0x40371d
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], rsi
jmp 0x403399
mov r8, rax
mov rdx, r12
mov rcx, rbx
mov r15, rbx
sub r8, r12
sar r8, 1
call sym.strbuf_append
mov r8d, 1
mov rdx, rbp
mov rcx, rbx
call sym.strbuf_append
movzx eax, word [rsi + 2]
test ax, ax
je 0x403760
cmp ax, 0x2c
jne 0x4037c0
movzx eax, word [rsi + 4]
lea r15, [rsi + 4]
cmp ax, 0x22
jne 0x403710
lea r12, [r15 + 2]
mov rdx, r14
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_wcsstr]
mov rsi, rax
test rax, rax
jne 0x403348
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.ucrtbase.dll_free]
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x4033f0
cmp word [rax], 0
je 0x4033f0
mov r15d, r13d
jmp 0x403001
cmp word [r15], 0
jne 0x4033db
nop word [rax + rax]
xor eax, eax
xor r15d, r15d
test r13d, r13d
je 0x4034c8
mov rcx, r15
call qword [sym.imp.ucrtbase.dll_free]
jmp 0x4031fa
test rcx, rcx
je 0x403423
mov r8d, 0x10
xor edx, edx
call qword [sym.imp.ucrtbase.dll_wcstoul]
mov dword [rsp + 0xb0], eax
test r13d, r13d
jne 0x4031fa
mov rdx, qword [rsi + 0x10]
xor r8d, r8d
mov r9d, 4
mov rcx, r12
lea r15, [rsp + 0xb0]
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r15
call qword [sym.imp.advapi32.dll_RegSetValueExW]
test eax, eax
je 0x4031fa
test byte [section..data], 2
jne 0x403b00
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.advapi32.dll_RegCloseKey]
movzx eax, byte [section..data]
jmp 0x403018
mov rcx, qword [rsi + 0x18]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Unsupported_registry_value_type__s_n
lea r8, str.install_registry_value
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x403001
mov rdx, qword [rsi + 0x10]
xor r8d, r8d
mov dword [rsp + 0x28], eax
mov rcx, r12
mov qword [rsp + 0x20], r15
mov r9d, 7
call qword [sym.imp.advapi32.dll_RegSetValueExW]
test eax, eax
je 0x4033fe
mov r13, r15
test byte [section..data], 2
jne 0x403ac0
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.advapi32.dll_RegCloseKey]
movzx eax, byte [section..data]
jmp 0x403018
movzx eax, byte [section..data]
test al, 1
je 0x403018
mov edx, r12d
mov rcx, rbp
call sym.wine_dbgstr_wn
lea r9, str.Unknown_root_key__s_n
lea r8, str.split_registry_key
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
movzx eax, byte [section..data]
jmp 0x403018
mov rbp, qword [rsi + 0x20]
xor eax, eax
mov dword [rsp + 0xb0], 0
mov word [rsp + 0xb4], ax
test rbp, rbp
je 0x403c18
movzx edx, word [rbp]
mov rax, rbp
test dx, dx
je 0x403bf8
nop word [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x4035a8
sub rax, rbp
mov dword [rsp + 0x80], edx
mov rbx, rax
sar rbx, 1
test al, 2
jne 0x4033db
sar ebx, 1
movsxd rcx, ebx
call qword [sym.imp.ucrtbase.dll_malloc]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x4033db
mov edx, dword [rsp + 0x80]
mov r14, rax
lea r15, [rsp + 0xb0]
nop dword [rax]
mov word [rsp + 0xb0], dx
movzx eax, word [rbp + 2]
xor edx, edx
mov r8d, 0x10
mov rcx, r15
add r14, 1
add rbp, 4
mov word [rsp + 0xb2], ax
call qword [sym.imp.ucrtbase.dll_wcstoul]
mov byte [r14 - 1], al
movzx edx, word [rbp]
test dx, dx
jne 0x4035f8
test r13d, r13d
je 0x403a10
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ucrtbase.dll_free]
jmp 0x4031fa
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbx + 2]
mov rcx, r12
lea rax, [rsp + 0xa8]
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x9c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], eax
call qword [sym.imp.advapi32.dll_RegCreateKeyExW]
test eax, eax
jne 0x403c6b
mov rax, qword [rsp + 0x58]
mov rsi, qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
cmp rsi, rax
jne 0x402f70
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x403218
mov rax, qword [rsp + 0x58]
mov edx, 0xffffffff
mov rcx, qword [rax + 0x10]
call sym.wine_dbgstr_wn
lea r9, str.Processing_registry_key__s_n
mov ecx, 3
lea r8, str.install_registry
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x402f43
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
lea r15, [rsp + 0xb0]
test ax, ax
je 0x40376d
mov rax, qword [rsp + 0x68]
test byte [rax], 1
je 0x4033be
lea r9, str.Error_while_parsing_REG_MULTI_SZ_string:_Garbage_at_end_of_string_n
lea r8, str.parse_multisz
xor ecx, ecx
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x4033be
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
lea rdx, [0x0040d646]
mov rcx, r15
mov r8d, 1
call sym.strbuf_append
mov eax, dword [rsp + 0xb8]
mov rdx, qword [rsi + 0x20]
mov r15, qword [rsp + 0xb0]
add eax, eax
test rdx, rdx
je 0x4033f5
cmp word [rdx], 0
je 0x4033f5
test r15, r15
jne 0x4033f5
jmp 0x4033db
mov rbx, qword [rsp + 0x68]
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
test byte [rbx], 1
je 0x4033be
mov dword [rsp + 0x20], eax
lea r9, str.Error_while_parsing_REG_MULTI_SZ_string:_Expected_comma_but_got__c_n
lea r8, str.parse_multisz
xor ecx, ecx
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x4033be
mov r8d, esi
lea rdx, str.HKEY_CLASSES_ROOT
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_wcsncmp]
test eax, eax
jne 0x402e6a
mov r12, 0xffffffff80000000
jmp 0x402f2a
mov r8d, esi
lea rdx, str.HKEY_CURRENT_CONFIG
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_wcsncmp]
test eax, eax
jne 0x402e90
mov r12, 0xffffffff80000005
jmp 0x402f2a
mov r8d, esi
lea rdx, str.HKEY_CURRENT_USER
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_wcsncmp]
test eax, eax
jne 0x402eb8
mov r12, 0xffffffff80000001
jmp 0x402f2a
mov r8d, esi
lea rdx, str.HKEY_LOCAL_MACHINE
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_wcsncmp]
test eax, eax
jne 0x402ee0
mov r12, 0xffffffff80000002
jmp 0x402f2a
mov dword [rsp + 0x98], 1
test byte [section..data], 8
je 0x402c5b
mov rcx, qword [rsp + 0x90]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Assembly__s_already_installed_n
mov ecx, 3
lea r8, str.install_assembly
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x402c5b
lea rdx, [0x0040d00c]
mov rcx, r12
call rdi
test eax, eax
je 0x402ac8
lea rdx, [0x0040d00c]
mov rcx, r13
call rdi
test eax, eax
je 0x402ac8
test byte [section..data], 4
je 0x402ac8
mov rcx, qword [r14 + 0x30]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
mov rcx, qword [rbx + 8]
mov edx, 0xffffffff
mov rbp, rax
call sym.wine_dbgstr_wn
mov rcx, qword [rbx]
mov edx, 0xffffffff
mov r12, rax
call sym.wine_dbgstr_wn
mov qword [rsp + 0x30], rbp
lea r9, str.Ignoring_version_difference_for__s__expected__s__found__s__n
lea r8, str.lookup_assembly
mov qword [rsp + 0x28], r12
lea rdx, section..data
mov ecx, 2
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.1
jmp 0x402ac8
mov rcx, r12
mov edx, 0xffffffff
mov qword [rsp + 0x60], r11
call sym.wine_dbgstr_wn
mov rcx, r13
mov edx, 0xffffffff
mov qword [rsp + 0x58], rax
call sym.wine_dbgstr_wn
mov r8, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
lea r9, str.Copying__s_____s_n
mov qword [rsp + 0x20], rax
mov ecx, 3
mov qword [rsp + 0x28], r8
mov rdx, r11
lea r8, str.install_files_copy
call sym.wine_dbg_log.constprop.0
jmp 0x402bfd
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsi + 0x10]
xor r8d, r8d
mov dword [rsp + 0x28], ebx
mov r9d, 3
mov rcx, r12
mov qword [rsp + 0x20], rax
call qword [sym.imp.advapi32.dll_RegSetValueExW]
test eax, eax
je 0x40363b
test byte [section..data], 2
jne 0x403b8b
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.advapi32.dll_RegCloseKey]
movzx eax, byte [section..data]
jmp 0x403018
test byte [section..data], 2
je 0x402c50
mov rcx, qword [rsp + 0x90]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Assembly__s_caused_circular_dependency_n
mov ecx, 1
lea r8, str.install_assembly
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x402c5b
mov rcx, qword [rsi + 0x10]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_set_registry_key__s_n
mov ecx, 1
lea r8, str.install_registry_multisz
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x4034ff
mov rcx, qword [rsi + 0x10]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_set_registry_key__s_n
mov ecx, 1
lea r8, str.install_registry_dword
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.advapi32.dll_RegCloseKey]
movzx eax, byte [section..data]
jmp 0x403018
mov rcx, qword [rsp + 0x90]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_install_all_files_for__s_n
mov ecx, 1
lea r8, str.install_assembly
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x402c5b
mov rcx, qword [rsi + 0x10]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_set_registry_key__s_n
mov ecx, 1
lea r8, str.install_registry_binary
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x403a49
test byte [section..data], 2
je 0x402c50
lea r9, str.Failed_to_get_assembly_source_directory_n
lea r8, str.install_files
mov ecx, 1
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
jmp 0x402c41
xor ecx, ecx
call qword [sym.imp.ucrtbase.dll_malloc]
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x403632
jmp 0x4033db
mov qword [rsp + 0x78], 0
xor ebx, ebx
jmp 0x403632
mov rcx, qword [rsp + 0x90]
mov edx, 0xffffffff
call sym.wine_dbgstr_wn
lea r9, str.Installation_of__s_finished_n
mov ecx, 3
lea r8, str.install_assembly
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.0
jmp 0x403245
test byte [section..data], 2
je 0x402c50
mov rax, qword [rsp + 0x58]
mov edx, 0xffffffff
mov rcx, qword [rax + 0x10]
call sym.wine_dbgstr_wn
lea r9, str.Failed_to_open_registry_key__s_n
mov ecx, 1
lea r8, str.install_registry
mov qword [rsp + 0x20], rax
lea rdx, section..data
call sym.wine_dbg_log.constprop.1
movzx eax, byte [section..data]
jmp 0x403018