Function at 0x14000b0d0
Capabilities:
Check if process is running under wine
Check os version
Delete file
Delete registry key
Delete registry value
Set registry value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x268
xor ecx, ecx
lea r9, str.winemenubuilder_semaphore
mov r8d, 1
mov edx, 1
mov qword [rsp + 0x108], 0
call qword [sym.imp.kernel32.dll_CreateSemaphoreA]
xor r8d, r8d
mov ecx, 1
mov dword [rsp + 0x20], 0x1cff
mov qword [rsp + 0x108], rax
lea rdx, [rsp + 0x108]
mov r9d, 0xffffffff
call qword [sym.imp.user32.dll_MsgWaitForMultipleObjects]
test eax, eax
je 0x14000b169
test byte [0x140010000], 2
jne 0x14000b453
mov rcx, qword [rsp + 0x108]
call qword [sym.imp.kernel32.dll_CloseHandle]
nop
add rsp, 0x268
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [0x140020208]
lea rcx, str._smime
lea r15, [rsp + 0x130]
lea r12, str.XDG_DATA_DIRS
call dbg.heap_wprintf
lea rcx, str._spackages
mov rdx, rax
mov qword [rsp + 0x70], rax
call dbg.heap_wprintf
mov rcx, rax
mov qword [rsp + 0x78], rax
call dbg.create_directories
mov rdx, qword [0x140020208]
lea rcx, str._s_applications
call dbg.heap_wprintf
mov rcx, rax
mov qword [rsp + 0x58], rax
call dbg.create_directories
mov rdi, qword [sym.imp.ucrtbase.dll__wgetenv]
mov rcx, r12
lea rax, [dbg.winemenubuilder_rb_string_compare]
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x130], r15
mov qword [rsp + 0x138], r15
mov qword [rsp + 0xc8], rdi
call rdi
test rax, rax
je 0x14000baea
mov rcx, r12
call rdi
mov rsi, rax
test rax, rax
je 0x14000bfda
cmp word [rax], 0
je 0x14000bfe1
nop
add rax, 2
cmp word [rax], 0
jne 0x14000b230
sub rax, rsi
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov rbx, rax
xor eax, eax
nop word cs:[rax + rax]
movzx edx, word [rsi + rax]
mov word [rbx + rax], dx
add rax, 2
test dx, dx
jne 0x14000b260
mov rcx, qword [0x140020208]
mov rdx, r15
call dbg.add_mimes
mov r14, qword [sym.imp.kernel32.dll_HeapFree]
test eax, eax
jne 0x14000b5ff
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
xor edx, edx
mov r8, rbx
mov rcx, qword [rax + 0x30]
call r14
mov rcx, r15
call dbg.free_native_mime_types
test byte [0x140010000], 2
jne 0x14000bd13
mov dword [rsp + 0x50], 0
mov r8, r15
lea rdx, str.SoftwareWineFileOpenAssociations
mov rcx, 0xffffffff80000001
call qword [sym.imp.advapi32.dll_RegCreateKeyW]
mov esi, eax
test eax, eax
jne 0x14000bb46
mov r12, qword [rsp + 0x130]
test r12, r12
je 0x14000bb46
xor edi, edi
lea rbp, str.0123456789abcdefwrite_freedesktop_mime_type_entry
jmp 0x14000b33a
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
add esi, 1
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, rbx
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov edx, esi
mov rcx, r12
call dbg.reg_enum_keyW
mov rbx, rax
test rax, rax
je 0x14000b3d2
lea r8, str.open
mov rdx, rax
mov ecx, 1
call dbg.assoc_query
mov r8, rax
test rax, rax
jne 0x14000b308
lea r8, str.DesktopFile
mov rdx, rbx
mov rcx, r12
call dbg.reg_get_valW
mov rdi, rax
test rax, rax
je 0x14000b3a3
lea r13, [0x140010000]
test byte [0x140010000], 8
jne 0x14000b4de
mov rcx, rdi
call qword [sym.imp.kernel32.dll_DeleteFileW]
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.advapi32.dll_RegDeleteKeyW]
mov r8, rdi
xor edx, edx
mov edi, 1
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
call r14
jmp 0x14000b321
mov rcx, r12
call qword [sym.imp.advapi32.dll_RegCloseKey]
or dword [rsp + 0x50], edi
mov ecx, dword [rsp + 0x50]
test ecx, ecx
jne 0x14000b477
xor r8d, r8d
mov rcx, qword [rsp + 0x108]
mov edx, 1
mov rbx, qword gs:[0x30]
call qword [sym.imp.kernel32.dll_ReleaseSemaphore]
mov rcx, qword [rsp + 0x108]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rax, qword [rbx + 0x60]
mov r8, qword [rsp + 0x70]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [rbx + 0x60]
mov r8, qword [rsp + 0x78]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [rbx + 0x60]
mov r8, qword [rsp + 0x58]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
jmp 0x14000b155
lea r9, str.failed_wait_for_semaphore_n
lea r8, str.RefreshFileTypeAssociations
mov ecx, 1
lea rdx, [0x140010000]
call sym.wine_dbg_log.constprop.0
jmp 0x14000b146
mov rcx, qword [rsp + 0x70]
lea rax, str.update_mime_database
mov qword [rsp + 0x130], rax
call sym.wine_get_unix_file_name
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x138], rax
call sym.__wine_unix_spawnvp
mov rcx, qword [rsp + 0x58]
lea rax, str.update_desktop_database
mov qword [rsp + 0x130], rax
call sym.wine_get_unix_file_name
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x138], rax
call sym.__wine_unix_spawnvp
jmp 0x14000b3eb
mov rax, rbx
shr rax, 0x10
je 0x14000bcff
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000b5da
cmp word [rbx], 0
je 0x14000bd4a
xor eax, eax
mov ecx, eax
add rax, 1
cmp word [rbx + rax*2], 0
jne 0x14000b51a
mov edx, 0x224c
mov r8, rbx
lea r9, [rsp + 0x252]
mov word [rsp + 0x130], dx
lea rdx, [rsp + 0x132]
jmp 0x14000b578
cmp ax, 9
je 0x14000bcd1
cmp ax, 0xa
jne 0x14000bc64
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
lea eax, [rcx - 1]
test ecx, ecx
jle 0x14000b5b1
cmp rdx, r9
ja 0x14000b5b1
mov ecx, eax
movzx eax, word [r8]
add r8, 2
cmp ax, 0xd
je 0x14000bce3
jbe 0x14000b549
cmp ax, 0x22
je 0x14000bcbd
cmp ax, 0x5c
jne 0x14000bc55
mov r10d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r10w
jmp 0x14000b56a
mov byte [rdx], 0x22
test eax, eax
jle 0x14000bd67
mov r8d, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], r8w
mov byte [rax], 0
mov rcx, r15
call dbg.__wine_dbg_strdup
mov qword [rsp + 0x20], rax
lea r9, str.removing_file_type_association_for__s_n
mov rdx, r13
mov ecx, 3
lea r8, str.cleanup_associations
call sym.wine_dbg_log.constprop.0
jmp 0x14000b39a
mov rax, qword [sym.imp.ucrtbase.dll_wcstok]
lea rsi, [rsp + 0x118]
lea rdi, [0x14001216c]
mov rcx, rbx
mov rdx, rdi
mov qword [rsp + 0xe0], rsi
mov r8, rsi
mov qword [rsp + 0x50], rax
call rax
mov rdx, rax
test rax, rax
je 0x14000b6e5
mov qword [rsp + 0x60], rbx
lea r12, [0x140012170]
mov rbp, qword gs:[0x30]
nop
mov rcx, r12
call dbg.heap_wprintf
movzx edx, word [rax]
mov r13, rax
test dx, dx
je 0x14000b685
nop dword [rax + rax]
cmp dx, 0x2f
jne 0x14000b678
mov r9d, 0x5c
mov word [rax], r9w
movzx edx, word [rax + 2]
add rax, 2
test dx, dx
jne 0x14000b668
lea rdx, [r13 + 0x12]
cmp rax, rdx
jbe 0x14000b6a0
cmp word [rax - 2], 0x5c
jne 0x14000b6a0
xor r8d, r8d
mov word [rax - 2], r8w
nop dword [rax]
mov rdx, r15
mov rcx, r13
call dbg.add_mimes
xor edx, edx
mov r8, r13
mov ebx, eax
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax + 0x30]
call r14
test ebx, ebx
je 0x14000bcf5
mov rdx, rdi
mov rax, qword [rsp + 0x50]
mov r8, rsi
xor ecx, ecx
call rax
mov rdx, rax
test rax, rax
jne 0x14000b650
mov rbx, qword [rsp + 0x60]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, rbx
xor edx, edx
xor ebp, ebp
mov rcx, qword [rax + 0x30]
call r14
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x68], r15
jmp 0x14000b72c
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, rbx
xor edx, edx
add ebp, 1
mov rcx, qword [rax + 0x30]
call r14
mov edx, ebp
mov rcx, 0xffffffff80000000
call dbg.reg_enum_keyW
mov rbx, rax
test rax, rax
je 0x14000ba10
cmp word [rax], 0x2e
jne 0x14000b710
mov rsi, qword [sym.imp.ucrtbase.dll__wcsicmp]
lea rdx, str..com
mov rcx, rax
call rsi
test eax, eax
je 0x14000b710
lea rdx, str..exe
mov rcx, rbx
call rsi
test eax, eax
je 0x14000b710
lea rdx, str..msi
mov rcx, rbx
call rsi
test eax, eax
je 0x14000b710
lea r8, str.open
mov rdx, rbx
mov ecx, 1
call dbg.assoc_query
mov qword [rsp + 0xf0], rax
test rax, rax
je 0x14000bb77
mov rdx, rax
mov rcx, rbx
call dbg.is_soft_blacklisted
mov r12d, eax
test eax, eax
jne 0x14000bb77
mov rcx, rbx
mov rdi, qword [sym.imp.ucrtbase.dll__wcslwr]
call rdi
xor r8d, r8d
mov rdx, rbx
mov ecx, 3
call dbg.assoc_query
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xf
mov qword [rsp + 0x90], rax
call dbg.assoc_query
mov ecx, 0xe
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x80], rax
call dbg.assoc_query
mov qword [rsp + 0x88], rax
mov rcx, rax
test rax, rax
je 0x14000bd70
call rdi
mov rax, qword [rsp + 0x130]
lea r15, [rax - 0x10]
cmp qword [rsp + 0x68], rax
je 0x14000c123
xor edi, edi
xor r13d, r13d
mov rdx, qword [r15 + 8]
mov rcx, rbx
call qword [sym.imp.shlwapi.dll_PathMatchSpecW]
test eax, eax
je 0x14000b888
test r13, r13
je 0x14000bfa9
mov rdx, qword [r15 + 8]
cmp word [rdx], 0
je 0x14000c084
mov rax, rdx
nop word [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x14000b870
sub rax, rdx
sar rax, 1
cmp edi, eax
jl 0x14000bfd5
mov rax, qword [r15 + 0x10]
lea r15, [rax - 0x10]
cmp qword [rsp + 0x68], rax
jne 0x14000b83c
test r13, r13
je 0x14000c114
cmp word [r13], 0
je 0x14000ce4d
mov rax, r13
add rax, 2
cmp word [rax], 0
jne 0x14000b8af
sub rax, r13
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov rsi, rax
xor eax, eax
movzx edx, word [r13 + rax]
mov word [rsi + rax], dx
add rax, 2
test dx, dx
jne 0x14000b8d5
lea r8, str.open
mov rdx, rbx
mov ecx, 2
xor edi, edi
call dbg.assoc_query
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x14000b918
mov rdx, rax
xor ecx, ecx
call sym.compute_native_identifier.part.0
mov rdi, rax
lea r8, str.open
mov rdx, rbx
mov ecx, 4
call dbg.assoc_query
mov rdx, rbx
test rax, rax
mov rcx, rax
lea rax, str.A_Wine_application
cmovne rax, rcx
xor r8d, r8d
mov rcx, 0xffffffff80000000
mov qword [rsp + 0x60], rax
call dbg.reg_get_valW
mov r12, rax
test rax, rax
je 0x14000bbae
mov r8, rax
mov rdx, rsi
lea rcx, str._s__s
call dbg.heap_wprintf
mov r13, qword [rsp + 0x128]
mov r15, rax
test r13, r13
je 0x14000cc75
mov rax, qword [rsp + 0x120]
mov rdx, r13
mov qword [rsp + 0xa0], rbx
mov rbx, r15
mov r15, r13
mov r13, rdi
mov rdi, rsi
mov rsi, rdx
mov qword [rsp + 0x98], rax
jmp 0x14000b9c7
mov rax, qword [rsi + 8]
cmovns rax, qword [rsi + 0x10]
mov rsi, rax
test rax, rax
je 0x14000bfeb
mov rax, qword [rsp + 0x98]
mov rdx, rsi
mov rcx, rbx
call rax
test eax, eax
jne 0x14000b9b2
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r15, rbx
mov rsi, rdi
xor edx, edx
mov rbx, qword [rsp + 0xa0]
mov rdi, r13
mov r8, r15
mov rcx, qword [rax + 0x30]
call r14
jmp 0x14000bbae
mov rax, qword [rsp + 0x128]
mov r15, qword [rsp + 0x68]
test rax, rax
je 0x14000badd
nop word cs:[rax + rax]
mov rsi, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x14000ba30
mov rax, qword [rsi + 0x10]
test rax, rax
jne 0x14000ba30
mov rbx, qword [rsi]
mov rdi, qword gs:[0x30]
test rbx, rbx
je 0x14000bab2
nop word cs:[rax + rax]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x14000ba85
cmp rax, rsi
je 0x14000ba85
nop
mov rbx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x14000ba70
mov rax, qword [rbx + 0x10]
test rax, rax
jne 0x14000ba70
mov rax, qword [rdi + 0x60]
mov r8, qword [rsi - 8]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [rdi + 0x60]
lea r8, [rsi - 8]
mov rsi, rbx
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rbx, qword [rsi]
test rbx, rbx
jne 0x14000ba60
mov rbx, qword gs:[0x30]
mov rax, qword [rbx + 0x60]
mov r8, qword [rsi - 8]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [rbx + 0x60]
lea r8, [rsi - 8]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rcx, r15
call dbg.free_native_mime_types
jmp 0x14000b2c5
lea rsi, str._usr_local_share_:_usr_share_
mov edx, 0x75
mov rax, rsi
jmp 0x14000baff
movzx edx, word [rax + 2]
add rax, 2
test dx, dx
jne 0x14000bafb
sub rax, rsi
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov edx, 0x2f
mov rbx, rax
xor eax, eax
jmp 0x14000bb34
movzx edx, word [rsi + rax]
mov word [rbx + rax], dx
add rax, 2
test dx, dx
jne 0x14000bb30
jmp 0x14000b271
test byte [0x140010000], 2
je 0x14000b3df
lea r9, str.could_not_open_file_associations_key_n
lea r8, str.cleanup_associations
mov ecx, 1
lea rdx, [0x140010000]
call sym.wine_dbg_log.constprop.0
jmp 0x14000b3df
mov qword [rsp + 0x88], 0
xor esi, esi
xor edi, edi
xor r12d, r12d
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0xa8], 0
mov r13, qword gs:[0x30]
mov rax, qword [r13 + 0x60]
mov r8, qword [rsp + 0xf0]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, qword [rsp + 0xa8]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, rdi
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, qword [rsp + 0x90]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, qword [rsp + 0x80]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, qword [rsp + 0x88]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, rsi
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [r13 + 0x60]
mov r8, r12
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
jmp 0x14000b710
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x14000bd3f
mov r10d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [rbp + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [rbp + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [rbp + rax]
and r10d, 0xf
movzx r10d, byte [rbp + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x14000b56a
mov r11d, 0x225c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x14000b56a
mov eax, 0x745c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x14000b56a
mov eax, 0x725c
add rdx, 2
mov word [rdx - 2], ax
jmp 0x14000b56a
mov rbx, qword [rsp + 0x60]
jmp 0x14000b28f
movzx edx, bx
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000b5da
lea r9, str.could_not_build_native_MIME_types_n
lea r8, str.generate_associations
mov ecx, 1
lea rdx, [0x140010000]
call sym.wine_dbg_log.constprop.0
mov dword [rsp + 0x50], 0
jmp 0x14000b2c5
mov byte [rdx], al
add rdx, 1
jmp 0x14000b56a
mov eax, 0x224c
mov byte [rsp + 0x132], 0x22
lea rdx, [rsp + 0x132]
mov word [rsp + 0x130], ax
lea rax, [rdx + 1]
jmp 0x14000b5cf
mov rax, qword [rsp + 0x130]
lea r15, [rax - 0x10]
cmp qword [rsp + 0x68], rax
jne 0x14000b837
lea rdx, str..lnk
mov rcx, rbx
call rsi
test eax, eax
je 0x14000cc0a
lea rdi, [rbx + 2]
lea rcx, str.application_x_wine_extension__s
mov rdx, rdi
call dbg.heap_wprintf
cmp qword [rsp + 0x80], 0
mov rsi, rax
je 0x14000be94
test rax, rax
je sym.RefreshFileTypeAssociations.cold
cmp word [rsi], 0
mov rax, rsi
je 0x14000bddc
add rax, 2
cmp word [rax], 0
jne 0x14000bdd2
sub rax, rsi
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov r13, rax
xor eax, eax
movzx edx, word [rsi + rax]
mov word [r13 + rax], dx
add rax, 2
test dx, dx
jne 0x14000bdf8
movzx eax, word [r13]
mov rdx, r13
test ax, ax
je 0x14000be33
cmp ax, 0x2f
jne 0x14000be26
mov ecx, 0x2d
mov word [rdx], cx
movzx eax, word [rdx + 2]
add rdx, 2
test ax, ax
jne 0x14000be18
mov rcx, qword [rsp + 0x80]
mov edx, 0x2c
call qword [sym.imp.ucrtbase.dll_wcsrchr]
test rax, rax
je 0x14000be65
xor edx, edx
lea rcx, [rax + 2]
mov r8d, 0xa
mov word [rax], dx
xor edx, edx
call qword [sym.imp.ucrtbase.dll_wcstol]
mov r12d, eax
mov rcx, qword [rsp + 0x80]
mov r8, r13
mov edx, r12d
xor r9d, r9d
call dbg.extract_icon
mov r8, r13
xor edx, edx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
call r14
lea rax, [0x140010000]
mov qword [rsp + 0x98], rax
test byte [0x140010000], 8
jne 0x14000c750
mov rdx, qword [rsp + 0x78]
mov r8, rdi
lea rcx, str._sx_wine_extension__s.xml
call dbg.heap_wprintf
lea rdx, [0x140011358]
mov rdi, rax
mov rcx, rax
call qword [sym.imp.ucrtbase.dll__wfopen]
mov r12, rax
test rax, rax
je 0x14000c096
lea rdx, str.__xml_version_1.0__encoding_UTF_8____n
mov rcx, rax
call dbg.fprintf
lea rdx, str._mime_info_xmlns_http:__www.freedesktop.org_standards_shared_mime_info___n
mov rcx, r12
call dbg.fprintf
mov rcx, rsi
call dbg.wchars_to_xml_text
lea rdx, str.___mime_type_type__s___n
mov rcx, r12
mov r8, rax
call dbg.fprintf
mov rcx, rbx
call dbg.wchars_to_xml_text
lea rdx, str._____glob_pattern__s____n
mov rcx, r12
mov r8, rax
call dbg.fprintf
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x14000bf5c
mov rcx, rax
call dbg.wchars_to_xml_text
lea rdx, str._____comment__s__comment__n
mov rcx, r12
mov r8, rax
call dbg.fprintf
lea rdx, str.____mime_type__n
mov rcx, r12
call dbg.fprintf
mov rcx, r12
lea rdx, str.__mime_info__n
call dbg.fprintf
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_fclose]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, rdi
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov dword [rsp + 0x50], 1
jmp 0x14000b8e8
mov rdx, qword [r15 + 8]
mov r13, qword [r15]
cmp word [rdx], 0
je 0x14000c10d
mov rax, rdx
add rax, 2
cmp word [rax], 0
jne 0x14000bfbd
sub rax, rdx
mov rdi, rax
sar rdi, 1
jmp 0x14000b888
mov r13, qword [r15]
jmp 0x14000bfba
xor ebx, ebx
jmp 0x14000b271
mov ecx, 2
jmp 0x14000b24c
mov ecx, 0x28
mov rsi, rdi
mov rdi, r13
mov r13, r15
mov r15, rbx
mov rbx, qword [rsp + 0xa0]
call dbg.xmalloc
mov rcx, r15
mov qword [rax], r15
mov r15, rax
jmp 0x14000c03a
lea r8, [r13 + 8]
lea rdx, [r13 + 0x10]
mov rcx, qword [rsp + 0xa0]
mov rax, r8
cmovns rax, rdx
mov rdx, qword [rax]
test rdx, rdx
je 0x14000c1ab
mov r13, rdx
mov qword [rsp + 0xa0], rcx
mov rax, qword [rsp + 0x98]
mov rdx, r13
call rax
test eax, eax
jne 0x14000c014
test byte [0x140010000], 2
je 0x14000bbae
lea r9, str.error_updating_rb_tree_n
lea r8, str.generate_associations
mov ecx, 1
lea rdx, [0x140010000]
call sym.wine_dbg_log.constprop.0
jmp 0x14000bbae
test edi, edi
jns 0x14000b888
mov r13, qword [r15]
xor edi, edi
jmp 0x14000b888
test byte [0x140010000], 2
je 0x14000bf83
lea rax, str._null_
test rdi, rdi
je 0x14000c0e3
mov rax, rdi
shr rax, 0x10
je 0x14000ce39
mov rdx, 0xffffffffffffffff
mov rcx, rdi
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000c0e3
mov rcx, rdi
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x98]
lea r9, str.error_writing_file__s_n
lea r8, [0x140012c20]
mov ecx, 1
call sym.wine_dbg_log.constprop.0
jmp 0x14000bf83
xor edi, edi
jmp 0x14000b888
cmp qword [rsp + 0x88], 0
je 0x14000bd87
mov rdi, qword [rsp + 0x88]
mov edx, 0x2f
mov rcx, rdi
call qword [sym.imp.ucrtbase.dll_wcschr]
test rax, rax
je 0x14000bd87
cmp word [rdi], 0
mov rax, rdi
je 0x14000cbfd
add rax, 2
cmp word [rax], 0
jne 0x14000c14f
sub rax, qword [rsp + 0x88]
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov rsi, rax
xor eax, eax
mov rdi, qword [rsp + 0x88]
movzx edx, word [rdi + rax]
mov word [rsi + rax], dx
add rax, 2
test dx, dx
jne 0x14000c17a
cmp qword [rsp + 0x80], 0
lea rdi, [rbx + 2]
jne 0x14000bdc9
jmp 0x14000be94
mov r9, r15
lea rdx, [r15 + 8]
mov dword [r9 + 0x20], 1
xor r8d, r8d
mov qword [r9 + 8], r13
mov qword [r9 + 0x10], 0
mov qword [r9 + 0x18], 0
mov r9, qword [rsp + 0xb0]
mov qword [rax], rdx
mov rax, qword [rdx]
test rax, rax
je 0x14000c23e
test byte [rax + 0x18], 1
je 0x14000c22d
mov rcx, qword [rax]
mov r10, qword [rcx + 8]
cmp r10, rax
je 0x14000cd49
test r10, r10
je 0x14000cc96
test byte [r10 + 0x18], 1
je 0x14000cc96
xor dword [rcx + 0x18], 1
xor dword [r10 + 0x18], 1
mov rax, qword [rcx + 0x10]
xor dword [rax + 0x18], 1
mov rax, qword [rdx]
mov rdx, qword [rax]
mov rax, qword [rdx]
test rax, rax
jne 0x14000c1e4
mov qword [rsp + 0xb0], r9
test r8b, r8b
jne 0x14000cd3c
mov rax, qword [rsp + 0x128]
mov r8, qword [rsp + 0xe0]
lea rdx, str.SoftwareWineFileOpenAssociations
mov rcx, 0xffffffff80000001
and dword [rax + 0x18], 0xfffffffe
mov rax, qword [sym.imp.advapi32.dll_RegCreateKeyW]
mov qword [rsp + 0xe8], rax
call rax
test eax, eax
jne 0x14000ce90
mov r13, qword [rsp + 0x118]
test r13, r13
je 0x14000ce90
lea r8, str.MimeType
mov rdx, rbx
mov rcx, r13
mov r15d, 1
call dbg.reg_get_valW
mov r8, rax
test rax, rax
je 0x14000c2cf
mov qword [rsp + 0x98], rax
mov rdx, rsi
mov rcx, rax
xor r15d, r15d
call qword [sym.imp.ucrtbase.dll_wcscmp]
mov r8, qword [rsp + 0x98]
test eax, eax
setne r15b
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
lea r8, str.ProgID
mov rdx, rbx
mov rcx, r13
call dbg.reg_get_valW
mov r8, rax
test rax, rax
je 0x14000c31f
mov qword [rsp + 0x98], rax
mov rdx, r12
mov rcx, rax
call qword [sym.imp.ucrtbase.dll_wcscmp]
mov r8, qword [rsp + 0x98]
test eax, eax
je 0x14000c325
mov r15d, 1
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
lea r8, str.AppName
mov rdx, rbx
mov rcx, r13
call dbg.reg_get_valW
mov r8, rax
test rax, rax
je 0x14000c377
mov qword [rsp + 0x98], rax
mov rdx, qword [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.ucrtbase.dll_wcscmp]
mov r8, qword [rsp + 0x98]
test eax, eax
je 0x14000c37d
mov r15d, 1
mov r9, qword gs:[0x30]
mov rax, qword [r9 + 0x60]
mov qword [rsp + 0x98], r9
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
lea r8, str.OpenWithIcon
mov rcx, r13
mov rdx, rbx
call dbg.reg_get_valW
test rdi, rdi
mov r9, qword [rsp + 0x98]
setne byte [rsp + 0xa0]
test rax, rax
mov r8, rax
movzx ecx, byte [rsp + 0xa0]
setne al
cmp cl, al
je 0x14000ce57
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [sym.imp.advapi32.dll_RegCloseKey]
mov rcx, r13
mov qword [rsp + 0xd8], rax
call rax
mov rdx, qword [rsp + 0x58]
lea r8, [rbx + 2]
lea rcx, str._swine_extension__s.desktop
call dbg.heap_wprintf
lea rcx, str.WINECONFIGDIR
mov r13, rax
mov rax, qword [rsp + 0xc8]
call rax
mov qword [rsp + 0xf8], rax
lea rax, [0x140010000]
mov qword [rsp + 0x98], rax
test byte [0x140010000], 8
jne 0x14000c9c4
lea rdx, [0x140011358]
mov rcx, r13
call qword [sym.imp.ucrtbase.dll__wfopen]
mov r15, rax
test rax, rax
je 0x14000c950
lea rdx, str._Desktop_Entry__n
mov rcx, rax
call dbg.fprintf
lea rdx, str.TypeApplication_n
mov rcx, r15
call dbg.fprintf
mov rcx, qword [rsp + 0x60]
call dbg.wchars_to_utf8_chars
lea rdx, str.Name_s_n
mov rcx, r15
mov r8, rax
call dbg.fprintf
mov rcx, rsi
call dbg.wchars_to_utf8_chars
mov rcx, r15
lea rdx, str.MimeType_s__n
mov r8, rax
call dbg.fprintf
mov rcx, qword [rsp + 0xf8]
test rcx, rcx
je 0x14000c843
call sym.wine_get_unix_file_name
mov rcx, r12
mov qword [rsp + 0x50], rax
call dbg.escape
mov r8, qword [rsp + 0x50]
mov rcx, r15
lea rdx, str.Execenv_WINEPREFIX__s___s_start__ProgIDOpen__s___f_n
mov qword [rsp + 0x20], rax
lea r9, str.wine
call dbg.fprintf
mov r8, qword [rsp + 0x50]
xor edx, edx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
call r14
lea rdx, str.NoDisplaytrue_n
mov rcx, r15
call dbg.fprintf
lea rdx, str.StartupNotifytrue_n
mov rcx, r15
call dbg.fprintf
test rdi, rdi
je 0x14000c55b
mov rcx, rdi
call dbg.wchars_to_utf8_chars
lea rdx, str.Icon_s_n
mov rcx, r15
mov r8, rax
call dbg.fprintf
mov rcx, r15
call qword [sym.imp.ucrtbase.dll_fclose]
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x110], 0
lea rdx, str.SoftwareWineFileOpenAssociations
mov rax, qword [rsp + 0xe8]
mov rcx, 0xffffffff80000001
call rax
test eax, eax
jne 0x14000c8e8
mov r15, qword [rsp + 0x118]
test r15, r15
je 0x14000c8e8
mov rax, qword [rsp + 0xe8]
lea r8, [rsp + 0x110]
mov rdx, rbx
mov rcx, r15
call rax
test eax, eax
jne 0x14000c862
cmp word [rsi], 0
mov rax, rsi
je 0x14000c5dc
add rax, 2
cmp word [rax], 0
jne 0x14000c5d2
sub rax, rsi
xor r8d, r8d
mov qword [rsp + 0x20], rsi
mov rcx, qword [rsp + 0x110]
sar rax, 1
mov r9d, 1
lea rdx, str.MimeType
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [sym.imp.advapi32.dll_RegSetValueExW]
mov qword [rsp + 0x50], rax
call rax
cmp word [r12], 0
mov rax, r12
je 0x14000c62a
add rax, 2
cmp word [rax], 0
jne 0x14000c620
sub rax, r12
xor r8d, r8d
mov qword [rsp + 0x20], r12
mov rcx, qword [rsp + 0x110]
sar rax, 1
mov r9d, 1
lea rdx, str.ProgID
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
call rax
mov rax, qword [rsp + 0x60]
cmp word [rax], 0
je 0x14000c942
add rax, 2
cmp word [rax], 0
jne 0x14000c66b
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov r9d, 1
lea rdx, str.AppName
sub rax, rcx
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x110]
sar rax, 1
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
call rax
cmp word [r13], 0
mov rax, r13
je 0x14000c6c1
add rax, 2
cmp word [rax], 0
jne 0x14000c6b7
sub rax, r13
xor r8d, r8d
mov qword [rsp + 0x20], r13
mov rcx, qword [rsp + 0x110]
sar rax, 1
mov r9d, 1
lea rdx, str.DesktopFile
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
call rax
test rdi, rdi
je 0x14000cecc
cmp word [rdi], 0
mov rax, rdi
je 0x14000c70f
add rax, 2
cmp word [rax], 0
jne 0x14000c705
sub rax, rdi
mov qword [rsp + 0x20], rdi
mov r9d, 1
mov rcx, qword [rsp + 0x110]
sar rax, 1
xor r8d, r8d
lea rdx, str.OpenWithIcon
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
call rax
jmp 0x14000c86f
mov rax, qword [rsp + 0x90]
lea r12, str._null_
test rax, rax
je 0x14000c79c
shr rax, 0x10
je 0x14000ce1d
mov r15, qword [rsp + 0x90]
mov rdx, 0xffffffffffffffff
lea r12, str._invalid_
mov rcx, r15
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
jne 0x14000c79c
mov rcx, r15
call sym.wine_dbgstr_wn.part.0.constprop.0
mov r12, rax
mov rax, rbx
shr rax, 0x10
je 0x14000ce06
mov rdx, 0xffffffffffffffff
mov rcx, rbx
lea r13, str._invalid_
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
jne 0x14000c7cf
mov rcx, rbx
call sym.wine_dbgstr_wn.part.0.constprop.0
mov r13, rax
lea rax, str._null_
test rsi, rsi
je 0x14000c80f
mov rax, rsi
shr rax, 0x10
je 0x14000cd28
mov rdx, 0xffffffffffffffff
mov rcx, rsi
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000c80f
mov rcx, rsi
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0x30], r12
mov rdx, qword [rsp + 0x98]
lea r9, str.writing_MIME_type__s__extension_s__comment_s_n
lea r8, [0x140012c20]
mov qword [rsp + 0x28], r13
mov ecx, 3
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0
jmp 0x14000beb0
mov rcx, r12
call dbg.escape
lea rdx, str.Execwine_start__ProgIDOpen__s___f_n
mov rcx, r15
mov r8, rax
call dbg.fprintf
jmp 0x14000c51e
test byte [0x140010000], 2
jne 0x14000c91d
mov rcx, r15
mov r15, qword [rsp + 0xd8]
mov rax, r15
call rax
mov rcx, qword [rsp + 0x110]
mov rax, r15
call rax
mov dword [rsp + 0x50], 1
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, r13
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
test byte [rsp + 0x50], 1
je 0x14000bbae
cmp byte [rsp + 0xa0], 0
je 0x14000bbae
mov rcx, qword [rsp + 0xa8]
xor r9d, r9d
mov r8, rdi
xor edx, edx
call dbg.extract_icon
mov dword [rsp + 0x50], 1
jmp 0x14000bbae
xor r15d, r15d
test byte [0x140010000], 2
je 0x14000c86f
mov rdx, qword [rsp + 0x98]
lea r9, str.could_not_open_file_associations_key_n
mov ecx, 1
lea r8, str.update_association
call sym.wine_dbg_log.constprop.0
jmp 0x14000c86f
mov rdx, qword [rsp + 0x98]
lea r9, str.could_not_create_extension_subkey_n
mov ecx, 1
lea r8, str.update_association
call sym.wine_dbg_log.constprop.0
jmp 0x14000c86f
mov rax, qword [rsp + 0x60]
jmp 0x14000c675
test byte [0x140010000], 2
je 0x14000c894
lea rax, str._null_
test r13, r13
je 0x14000c99a
mov rax, r13
shr rax, 0x10
je 0x14000cbcb
or rdx, 0xffffffffffffffff
mov rcx, r13
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000c99a
mov rcx, r13
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x98]
lea r9, str.error_writing_association_file__s_n
lea r8, str.write_freedesktop_association_entry
mov ecx, 1
call sym.wine_dbg_log.constprop.0
jmp 0x14000c894
lea rax, str._null_
mov qword [rsp + 0xc0], rax
test r13, r13
je 0x14000ca15
mov rax, r13
shr rax, 0x10
je 0x14000cbe0
mov rcx, r13
or rdx, 0xffffffffffffffff
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
lea rcx, str._invalid_
mov qword [rsp + 0xc0], rcx
test eax, eax
jne 0x14000ca15
mov rcx, r13
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0xc0], rax
lea rax, str._null_
mov qword [rsp + 0xb8], rax
test rdi, rdi
je 0x14000ca66
mov rax, rdi
shr rax, 0x10
je 0x14000cbaf
mov rcx, rdi
or rdx, 0xffffffffffffffff
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
lea rcx, str._invalid_
mov qword [rsp + 0xb8], rcx
test eax, eax
jne 0x14000ca66
mov rcx, rdi
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0xb8], rax
mov rax, r12
shr rax, 0x10
je 0x14000cb92
mov rcx, r12
or rdx, 0xffffffffffffffff
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
lea rcx, str._invalid_
mov qword [rsp + 0xd0], rcx
test eax, eax
jne 0x14000caa3
mov rcx, r12
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0xd0], rax
lea r15, str._null_
test rsi, rsi
je 0x14000cadf
mov rax, rsi
shr rax, 0x10
je 0x14000cb7b
or rdx, 0xffffffffffffffff
mov rcx, rsi
lea r15, str._invalid_
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
jne 0x14000cadf
mov rcx, rsi
call sym.wine_dbgstr_wn.part.0.constprop.0
mov r15, rax
mov rax, qword [rsp + 0x60]
shr rax, 0x10
je 0x14000cb68
mov rcx, qword [rsp + 0x60]
or rdx, 0xffffffffffffffff
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000cb12
mov rcx, qword [rsp + 0x60]
call sym.wine_dbgstr_wn.part.0.constprop.0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x28], r15
lea r9, str.friendlyAppName_s__MIME_type__s__progID_s__icon_s_to_file__s_n
lea r8, str.write_freedesktop_association_entry
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x30], rcx
mov ecx, 3
call sym.wine_dbg_log.constprop.0
jmp 0x14000c450
movzx edx, word [rsp + 0x60]
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000cb12
movzx edx, si
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov r15, rax
jmp 0x14000cadf
movzx edx, r12w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov qword [rsp + 0xd0], rax
jmp 0x14000caa3
movzx edx, di
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov qword [rsp + 0xb8], rax
jmp 0x14000ca66
movzx edx, r13w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000c99a
movzx edx, r13w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov qword [rsp + 0xc0], rax
jmp 0x14000ca15
mov rax, qword [rsp + 0x88]
jmp 0x14000c159
lea rdx, str.application_x_ms_shortcut
mov ecx, 0x70
mov rax, rdx
jmp 0x14000cc1f
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
jne 0x14000cc1b
sub rax, rdx
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov edx, 0x61
mov rsi, rax
mov rcx, rax
lea rax, str.application_x_ms_shortcut
jmp 0x14000cc56
movzx edx, word [rax]
add rcx, 2
add rax, 2
mov word [rcx - 2], dx
test dx, dx
jne 0x14000cc53
test rsi, rsi
jne 0x14000c193
jmp 0x14000bd9b
mov ecx, 0x28
call dbg.xmalloc
mov qword [rax], r15
mov r9, rax
lea rdx, [rax + 8]
lea rax, [rsp + 0x128]
jmp 0x14000c1b2
mov r10, qword [rax + 8]
cmp rdx, r10
je 0x14000ccff
mov rax, qword [rdx]
and dword [rax + 0x18], 0xfffffffe
mov rax, qword [rdx]
mov rax, qword [rax]
or dword [rax + 0x18], 1
mov rax, qword [rdx]
mov rax, qword [rax]
mov r10, qword [rax]
mov rcx, qword [rax + 0x10]
test r10, r10
je 0x14000ccf4
cmp rax, qword [r10 + 8]
je 0x14000ccee
mov qword [r10 + 0x10], rcx
mov r10, qword [rcx + 8]
mov qword [rax + 0x10], r10
test r10, r10
je 0x14000ccdc
mov qword [r10], rax
mov qword [rcx + 8], rax
mov r10, qword [rax]
mov qword [rcx], r10
mov qword [rax], rcx
jmp 0x14000c225
mov qword [r10 + 8], rcx
jmp 0x14000cccc
mov r9, rcx
mov r8d, 1
jmp 0x14000cccc
mov qword [rcx + 0x10], r10
mov rdx, qword [r10 + 0x10]
mov qword [rax + 8], rdx
test rdx, rdx
je 0x14000cd13
mov qword [rdx], rax
mov qword [r10 + 0x10], rax
mov rdx, qword [rax]
mov qword [r10], rdx
mov rdx, rax
mov qword [rax], r10
jmp 0x14000cc9f
movzx edx, si
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000c80f
mov qword [rsp + 0x128], r9
jmp 0x14000c23e
mov r10, qword [rcx + 0x10]
test r10, r10
je 0x14000cd74
test byte [r10 + 0x18], 1
je 0x14000cd74
xor dword [rcx + 0x18], 1
xor dword [rax + 0x18], 1
mov rax, qword [rcx + 0x10]
xor dword [rax + 0x18], 1
mov rax, qword [rdx]
mov rdx, qword [rax]
jmp 0x14000c225
mov r10, qword [rax + 0x10]
cmp rdx, r10
je 0x14000cddd
mov rax, qword [rdx]
and dword [rax + 0x18], 0xfffffffe
mov rax, qword [rdx]
mov rax, qword [rax]
or dword [rax + 0x18], 1
mov rax, qword [rdx]
mov rax, qword [rax]
mov r10, qword [rax]
mov rcx, qword [rax + 8]
test r10, r10
je 0x14000cdd2
cmp rax, qword [r10 + 8]
je 0x14000cdcc
mov qword [r10 + 0x10], rcx
mov r10, qword [rcx + 0x10]
mov qword [rax + 8], r10
test r10, r10
je 0x14000cdba
mov qword [r10], rax
mov qword [rcx + 0x10], rax
mov r10, qword [rax]
mov qword [rcx], r10
mov qword [rax], rcx
jmp 0x14000c225
mov qword [r10 + 8], rcx
jmp 0x14000cdaa
mov r9, rcx
mov r8d, 1
jmp 0x14000cdaa
mov qword [rcx + 8], r10
mov rdx, qword [r10 + 8]
mov qword [rax + 0x10], rdx
test rdx, rdx
je 0x14000cdf1
mov qword [rdx], rax
mov qword [r10 + 8], rax
mov rdx, qword [rax]
mov qword [r10], rdx
mov rdx, rax
mov qword [rax], r10
jmp 0x14000cd7d
movzx edx, bx
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov r13, rax
jmp 0x14000c7cf
movzx edx, word [rsp + 0x90]
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov r12, rax
jmp 0x14000c79c
movzx edx, di
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000c0e3
mov ecx, 2
jmp 0x14000b8cb
test rdi, rdi
jne 0x14000cee6
mov rax, qword [r9 + 0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [sym.imp.advapi32.dll_RegCloseKey]
mov rcx, r13
mov qword [rsp + 0xd8], rax
call rax
test r15d, r15d
jne 0x14000c403
jmp 0x14000bbae
test rdi, rdi
setne byte [rsp + 0xa0]
test byte [0x140010000], 2
je 0x14000c8ad
lea r9, str.error_opening_associations_registry_key_n
lea r8, str.has_association_changed
mov ecx, 1
lea rdx, [0x140010000]
call sym.wine_dbg_log.constprop.0
jmp 0x14000c8ad
mov rcx, qword [rsp + 0x110]
lea rdx, str.OpenWithIcon
call qword [sym.imp.advapi32.dll_RegDeleteValueW]
jmp 0x14000c86f
mov qword [rsp + 0x98], r8
mov rcx, r8
mov rdx, rdi
mov qword [rsp + 0xb8], r9
call qword [sym.imp.ucrtbase.dll_wcscmp]
mov r8, qword [rsp + 0x98]
test eax, eax
jne 0x14000c3d9
mov r9, qword [rsp + 0xb8]
xor edx, edx
mov rax, qword [r9 + 0x60]
mov rcx, qword [rax + 0x30]
call r14
mov rax, qword [sym.imp.advapi32.dll_RegCloseKey]
mov rcx, r13
mov qword [rsp + 0xd8], rax
call rax
test r15d, r15d
jne 0x14000c403
mov byte [rsp + 0xa0], 1
jmp 0x14000c8ad