Function at 0x140007d90
Capabilities:
Delete file
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x4c8
mov r14, rcx
mov r13d, edx
mov rbx, r8
mov esi, r9d
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
test byte [0x140010000], 8
jne 0x14000807c
lea r12, [rsp + 0xa0]
xor r9d, r9d
mov edx, 0x104
mov rcx, r14
mov r8, r12
call qword [sym.imp.kernel32.dll_GetFullPathNameW]
sub eax, 1
cmp eax, 0x103
ja 0x14000831f
lea rax, [rsp + 0x8c]
mov r8d, esi
mov edx, r13d
mov rcx, r12
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x98]
lea r9, [rsp + 0x90]
mov qword [rsp + 0x20], rax
call dbg.open_icon
mov esi, eax
test eax, eax
js 0x140008008
mov ebp, dword [rsp + 0x8c]
mov rdi, qword [rsp + 0x98]
mov r15, qword [rsp + 0x90]
test rbx, rbx
je 0x14000867c
cmp word [rbx], 0
je 0x140008812
mov rax, rbx
nop dword [rax]
add rax, 2
cmp word [rax], 0
jne 0x140007e68
sub rax, rbx
mov rcx, rax
sar rcx, 1
add ecx, 1
movsxd rcx, ecx
add rcx, rcx
call dbg.xmalloc
mov r14, rax
xor eax, eax
nop
movzx edx, word [rbx + rax]
mov word [r14 + rax], dx
add rax, 2
test dx, dx
jne 0x140007e90
mov rdx, qword [0x140020208]
lea rcx, str._siconshicolor
call dbg.heap_wprintf
mov qword [rsp + 0x68], rax
test ebp, ebp
jle 0x140008907
mov qword [rsp + 0x70], r14
mov rbx, rdi
mov esi, 1
mov r13d, ebp
lea rax, [rsp + 0x2b0]
mov dword [rsp + 0x64], 0
lea r12, [0x140010000]
mov qword [rsp + 0x78], rax
mov rax, qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsp + 0x50], rax
nop word [rax + rax]
lea ebp, [rsi - 1]
mov dword [rsp + 0x2b0], ebp
test byte [r12], 8
jne 0x140008610
test ebp, ebp
je 0x1400084d0
lea eax, [rsi - 2]
movzx edx, byte [rbx]
shl rax, 4
lea rcx, [rdi + rax + 0x10]
mov rax, rdi
jmp 0x140007f45
add rax, 0x10
cmp rcx, rax
je 0x1400084d0
cmp byte [rax], dl
jne 0x140007f38
movzx r11d, byte [rbx + 1]
cmp byte [rax + 1], r11b
jne 0x140007f38
mov r14d, esi
add esi, 1
add rbx, 0x10
cmp r13d, r14d
jg 0x140007f00
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x68]
xor r8d, r8d
lea rdx, [0x140011d9a]
mov r14, qword [rsp + 0x70]
mov r9, rsi
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetTempFileNameW]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_DeleteFileW]
mov r8, rdi
xor edx, edx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
mov rax, qword [rsp + 0x50]
call rax
mov r11d, dword [rsp + 0x64]
test r11d, r11d
js 0x14000868f
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x140007fcf
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, qword [rsp + 0x98]
xor edx, edx
mov rcx, qword [rax + 0x30]
mov rax, qword [rsp + 0x50]
call rax
mov rax, r14
add rsp, 0x4c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [sym.imp.kernel32.dll_HeapFree]
xor r14d, r14d
mov qword [rsp + 0x50], rax
test byte [0x140010000], 4
jne 0x140008353
mov rcx, qword [rsp + 0x90]
test rcx, rcx
jne 0x14000895c
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, qword [rsp + 0x98]
xor edx, edx
mov rcx, qword [rax + 0x30]
mov rax, qword [rsp + 0x50]
call rax
mov r8, r14
xor edx, edx
xor r14d, r14d
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
mov rax, qword [rsp + 0x50]
call rax
jmp 0x140007ff1
lea rdi, str._null_
test r8, r8
je 0x1400081b4
mov rax, r8
shr rax, 0x10
je 0x140008435
mov rdx, 0xffffffffffffffff
mov rcx, r8
lea rdi, str._invalid_
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
jne 0x1400081b4
movzx eax, word [rbx]
test ax, ax
je 0x1400088e1
xor edx, edx
nop word cs:[rax + rax]
mov ecx, edx
add rdx, 1
cmp word [rbx + rdx*2], 0
jne 0x1400080d0
mov edx, 0x224c
mov r8, rbx
lea r10, [rsp + 0x3d2]
mov word [rsp + 0x2b0], dx
lea r11, str.0123456789abcdefwrite_freedesktop_mime_type_entry
lea rdx, [rsp + 0x2b2]
jmp 0x14000814c
cmp ax, 9
je 0x140008763
cmp ax, 0xa
jne 0x1400086d3
mov r15d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r15w
nop dword [rax + rax]
lea r9d, [rcx - 1]
cmp rdx, r10
ja 0x140008181
test ecx, ecx
jle 0x140008181
movzx eax, word [r8]
mov ecx, r9d
add r8, 2
cmp ax, 0xd
je 0x14000873b
jbe 0x140008110
cmp ax, 0x22
je 0x140008729
cmp ax, 0x5c
jne 0x1400086c4
mov r9d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r9w
jmp 0x140008138
mov byte [rdx], 0x22
test r9d, r9d
jle 0x1400088fe
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rax, [rsp + 0x2b0]
mov rcx, rax
call dbg.__wine_dbg_strdup
mov rdi, rax
lea rax, str._null_
test r14, r14
je 0x1400082e9
mov rax, r14
shr rax, 0x10
je 0x14000844d
mov rdx, 0xffffffffffffffff
mov rcx, r14
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x1400082e9
movzx eax, word [r14]
test ax, ax
je 0x1400088bb
xor edx, edx
nop dword [rax + rax]
mov ecx, edx
add rdx, 1
cmp word [r14 + rdx*2], 0
jne 0x140008208
mov r8d, 0x224c
lea rdx, [rsp + 0x2b2]
lea r11, str.0123456789abcdefwrite_freedesktop_mime_type_entry
mov word [rsp + 0x2b0], r8w
lea r10, [rsp + 0x3d2]
mov r8, r14
jmp 0x140008284
cmp ax, 9
je 0x140008775
cmp ax, 0xa
jne 0x140008794
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
nop dword [rax]
lea r9d, [rcx - 1]
test ecx, ecx
jle 0x1400082b9
cmp rdx, r10
ja 0x1400082b9
movzx eax, word [r8]
mov ecx, r9d
add r8, 2
cmp ax, 0xd
je 0x14000874f
jbe 0x140008248
cmp ax, 0x22
je 0x1400087ea
cmp ax, 0x5c
jne 0x140008789
mov r9d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r9w
jmp 0x140008270
mov byte [rdx], 0x22
test r9d, r9d
jle 0x1400088d8
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rax, [rsp + 0x2b0]
mov rcx, rax
call dbg.__wine_dbg_strdup
mov qword [rsp + 0x30], rdi
lea r12, [0x140010000]
lea r9, str.path__s__index_d_destFilename__s__n
mov ecx, 3
mov dword [rsp + 0x28], r13d
lea r8, global___func__.9
mov rdx, r12
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0
jmp 0x140007dd4
xor r14d, r14d
test byte [0x140010000], 4
je 0x140007ff1
lea r9, str.GetFullPathName_failed_n
lea r8, global___func__.9
mov ecx, 2
lea rdx, [0x140010000]
call sym.wine_dbg_log.constprop.0
jmp 0x140007ff1
mov rax, r12
shr rax, 0x10
je 0x140008967
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000848f
movzx eax, word [rsp + 0xa0]
test ax, ax
je 0x140008987
xor edx, edx
mov ecx, edx
add rdx, 1
cmp word [r12 + rdx*2], 0
jne 0x140008396
mov r9d, 0x224c
lea rdx, [rsp + 0x2b2]
lea r10, [rsp + 0x3d2]
mov word [rsp + 0x2b0], r9w
lea r9, str.0123456789abcdefwrite_freedesktop_mime_type_entry
jmp 0x140008402
cmp ax, 9
je 0x140008830
cmp ax, 0xa
jne 0x140008853
mov eax, 0x6e5c
add rdx, 2
mov word [rdx - 2], ax
lea r8d, [rcx - 1]
cmp rdx, r10
ja 0x140008462
test ecx, ecx
jle 0x140008462
movzx eax, word [r12]
mov ecx, r8d
add r12, 2
cmp ax, 0xd
je 0x14000881c
jbe 0x1400083cc
cmp ax, 0x22
je 0x1400088a9
cmp ax, 0x5c
jne 0x140008844
mov edi, 0x5c5c
add rdx, 2
mov word [rdx - 2], di
jmp 0x1400083ed
movzx edx, r8w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
mov rdi, rax
jmp 0x1400081b4
movzx edx, r14w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x1400082e9
mov byte [rdx], 0x22
test r8d, r8d
jle 0x1400089a6
mov ebx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], bx
mov byte [rax], 0
lea rcx, [rsp + 0x2b0]
call dbg.__wine_dbg_strdup
mov dword [rsp + 0x30], esi
mov ecx, 2
xor r14d, r14d
lea r9, str.opening_icon__s_index__d_failed__hr0x_08lX_n
mov dword [rsp + 0x28], r13d
lea r8, global___func__.9
lea rdx, [0x140010000]
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0
mov rax, qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsp + 0x50], rax
jmp 0x140008024
movsxd rcx, dword [rsp + 0x2b0]
mov r14d, esi
mov rax, rbx
mov edx, esi
cmp r13d, esi
jg 0x1400084fc
jmp 0x140008540
add edx, 1
add rax, 0x10
cmp r13d, edx
je 0x140008540
movzx r10d, byte [rbx]
cmp byte [rax + 0x10], r10b
jne 0x1400084f0
movzx r10d, byte [rbx + 1]
cmp byte [rax + 0x11], r10b
jne 0x1400084f0
movsxd r8, ecx
shl r8, 4
movzx r9d, word [rdi + r8 + 6]
cmp word [rax + 0x16], r9w
jb 0x1400084f0
mov dword [rsp + 0x2b0], edx
movsxd rcx, edx
add edx, 1
add rax, 0x10
cmp r13d, edx
jne 0x1400084fc
nop dword [rax + rax]
test byte [r12], 8
jne 0x140008650
shl rcx, 4
mov rdx, qword [rsp + 0x68]
lea rax, [rdi + rcx]
mov ecx, 0x100
movzx r8d, byte [rax]
movzx r9d, byte [rax + 1]
test r8b, r8b
cmove r8d, ecx
test r9b, r9b
cmove r9d, ecx
lea rcx, str._s_dx_d_apps
call dbg.heap_wprintf
mov rcx, rax
mov rbp, rax
call dbg.create_directories
mov r8, qword [rsp + 0x70]
mov rdx, rbp
lea rcx, str._s_s.png
call dbg.heap_wprintf
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x48], rax
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x28]
mov dword [rsp + 0x64], eax
test eax, eax
js 0x1400085d3
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x78]
mov rcx, r15
call sym.convert_to_native_icon.constprop.0
mov dword [rsp + 0x64], eax
mov r9, qword gs:[0x30]
mov rax, qword [r9 + 0x60]
mov qword [rsp + 0x58], r9
mov r8, rbp
xor edx, edx
mov rbp, qword [rsp + 0x50]
mov rcx, qword [rax + 0x30]
call rbp
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x48]
xor edx, edx
mov rax, qword [r9 + 0x60]
mov rcx, qword [rax + 0x30]
call rbp
jmp 0x140007f57
movzx eax, word [rbx + 6]
lea r9, str.__d_:__d_x__d____d_n
mov rdx, r12
mov ecx, 3
lea r8, str.platform_write_icon
mov dword [rsp + 0x38], eax
movzx eax, byte [rbx + 1]
mov dword [rsp + 0x30], eax
movzx eax, byte [rbx]
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x28], eax
call sym.wine_dbg_log.constprop.0
jmp 0x140007f15
mov dword [rsp + 0x20], ecx
lea r9, str.Selected:__d_n
mov ecx, 3
mov rdx, r12
lea r8, str.platform_write_icon
call sym.wine_dbg_log.constprop.0
movsxd rcx, dword [rsp + 0x2b0]
jmp 0x14000854b
mov rdx, r12
mov ecx, r13d
call sym.compute_native_identifier.part.0
mov r14, rax
jmp 0x140007ea2
test byte [0x140010000], 4
je 0x140008024
mov eax, dword [rsp + 0x64]
lea r9, str.writing_icon_failed__error_0x_08lX_n
mov rdx, r12
mov ecx, 2
lea r8, global___func__.9
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0
jmp 0x140008024
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x140008807
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [r11 + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [r11 + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [r11 + rax]
and r9d, 0xf
movzx r9d, byte [r11 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x140008138
mov edi, 0x225c
add rdx, 2
mov word [rdx - 2], di
jmp 0x140008138
mov r12d, 0x725c
add rdx, 2
mov word [rdx - 2], r12w
jmp 0x140008138
mov r15d, 0x725c
add rdx, 2
mov word [rdx - 2], r15w
jmp 0x140008270
mov ebp, 0x745c
add rdx, 2
mov word [rdx - 2], bp
jmp 0x140008138
mov r12d, 0x745c
add rdx, 2
mov word [rdx - 2], r12w
jmp 0x140008270
lea r9d, [rax - 0x20]
cmp r9w, 0x5e
jbe 0x1400087fc
mov r9d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r9w, 0xc
and r9d, 0xf
movzx r9d, byte [r11 + r9]
mov byte [rdx - 4], r9b
mov r9d, eax
shr r9w, 8
and r9d, 0xf
movzx r9d, byte [r11 + r9]
mov byte [rdx - 3], r9b
mov r9d, eax
and eax, 0xf
shr r9w, 4
movzx eax, byte [r11 + rax]
and r9d, 0xf
movzx r9d, byte [r11 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x140008270
mov ebp, 0x225c
add rdx, 2
mov word [rdx - 2], bp
jmp 0x140008270
mov byte [rdx], al
add rdx, 1
jmp 0x140008270
mov byte [rdx], al
add rdx, 1
jmp 0x140008138
mov ecx, 2
jmp 0x140007e84
mov r15d, 0x725c
add rdx, 2
mov word [rdx - 2], r15w
jmp 0x1400083ed
mov r14d, 0x745c
add rdx, 2
mov word [rdx - 2], r14w
jmp 0x1400083ed
lea r8d, [rax - 0x20]
cmp r8w, 0x5e
jbe 0x14000897c
mov r8d, eax
mov byte [rdx], 0x5c
add rdx, 5
shr r8w, 0xc
and r8d, 0xf
movzx r8d, byte [r9 + r8]
mov byte [rdx - 4], r8b
mov r8d, eax
shr r8w, 8
and r8d, 0xf
movzx r8d, byte [r9 + r8]
mov byte [rdx - 3], r8b
mov r8d, eax
and eax, 0xf
shr r8w, 4
movzx eax, byte [r9 + rax]
and r8d, 0xf
movzx r8d, byte [r9 + r8]
mov byte [rdx - 1], al
mov byte [rdx - 2], r8b
jmp 0x1400083ed
mov ebp, 0x225c
add rdx, 2
mov word [rdx - 2], bp
jmp 0x1400083ed
mov ecx, 0x224c
mov byte [rsp + 0x2b2], 0x22
lea rdx, [rsp + 0x2b2]
mov word [rsp + 0x2b0], cx
lea rax, [rdx + 1]
jmp 0x1400082d6
mov eax, 0x224c
mov byte [rsp + 0x2b2], 0x22
lea rdx, [rsp + 0x2b2]
mov word [rsp + 0x2b0], ax
lea rax, [rdx + 1]
jmp 0x14000819e
mov rdi, qword [rsp + 0x68]
lea r12, [rsp + 0x2b0]
xor r8d, r8d
lea rdx, [0x140011d9a]
mov r9, r12
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetTempFileNameW]
mov rcx, r12
call qword [sym.imp.kernel32.dll_DeleteFileW]
mov r8, rdi
xor edx, edx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
mov rax, qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsp + 0x50], rax
call rax
jmp 0x140007fbc
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x140008035
movzx edx, r12w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000848f
mov byte [rdx], al
add rdx, 1
jmp 0x1400083ed
mov r10d, 0x224c
mov byte [rsp + 0x2b2], 0x22
lea rdx, [rsp + 0x2b2]
mov word [rsp + 0x2b0], r10w
lea rax, [rdx + 1]
jmp 0x14000847f