Function at 0x140087040
Capabilities:
Get common file path

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2c8
mov rax, qword [0x1401737a8]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x80], r8
mov dword [rsp + 0x68], edx
mov rbp, rcx
mov eax, dword [0x14018df94]
mov dword [rsp + 0x64], eax
lea rdx, str.LightTheme
lea rcx, [0x14018e4a4]
call fcn.1400e89f4
mov ecx, 0x9f3f
mov r14d, 0x9f41
test eax, eax
cmove r14d, ecx
xor ecx, ecx
call fcn.14005ef80
cmp eax, 0x4563
jb 0x140087152
lea rdx, str.DarkTheme
lea rcx, [0x14018e4a4]
call fcn.1400e89f4
test eax, eax
jne 0x1400870d9
mov r14d, 0x9f40
jmp 0x1400870eb
cmp r14d, 0x9f41
jne 0x140087152
call fcn.140088630
test al, al
je 0x140087152
call fcn.140050810
xor r8d, r8d
lea rdx, str.DarkTheme
mov rcx, rax
call fcn.140051980
call fcn.1400508b0
mov rbx, rax
mov rcx, rax
call fcn.14004e460
mov dword [rbp + 0x110], eax
mov rcx, rbx
call fcn.14004e3e0
mov dword [rbp + 0x114], eax
mov ecx, ntohs
call qword [sym.imp.USER32.dll_GetSysColor]
mov dword [rbp + 0x118], eax
mov ecx, reloc.WS2_32.dll_ntohl
call qword [sym.imp.USER32.dll_GetSysColor]
mov dword [rbp + 0x11c], eax
mov dword [rbp + 0x120], 0x404040
call fcn.1400518e0
test al, al
jne 0x140087160
call fcn.140054ef0
xor edi, edi
mov rbx, qword [rbp + 8]
lea r9, [rbp + 0x3c0]
movzx eax, byte [rsp + 0x60]
mov byte [rsp + 0x20], al
lea r8, [0x14016f860]
lea rdx, [0x14016c420]
lea rcx, [0x1401a95f0]
call fcn.14004dd50
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x38], ax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x56000000
xor r9d, r9d
lea r8, [0x14016c468]
mov rdx, rbx
lea rcx, [rbp + 0x380]
call fcn.14006ad30
mov qword [rbp + 0x58], rax
and byte [rbp + 0x58d], 0xfe
lea r15, [rbp + 0x440]
mov rbx, qword [rbp + 0x388]
lea r9, [r15 + 0x40]
movzx eax, byte [rsp + 0x60]
mov byte [rsp + 0x20], al
lea r8, [0x14016f760]
lea rdx, [0x14016c420]
lea rcx, [0x1401a95f0]
call fcn.14004dd50
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x38], ax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x56000000
xor r9d, r9d
lea r8, [0x14016c468]
mov rdx, rbx
mov rcx, r15
call fcn.14006ad30
nop
lea r8d, [rdi + 0x60]
mov edx, dword [0x1401794e8]
lea ecx, [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, eax
lea r8d, [rdi + 0x60]
mov edx, dword [0x1401794e8]
lea ecx, [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [rsp + 0x20], 3
lea r9d, [rdi + 3]
lea r8d, [rdi + 0x21]
mov edx, ebx
mov ecx, eax
call qword [sym.imp.COMCTL32.dll_ImageList_Create]
mov rbx, rax
mov qword [rsp + 0x98], rax
xor edx, edx
lea ecx, [rdi + 0x37]
call fcn.140041e10
mov r8, rax
mov r12, 0xffffffffffffffff
mov edx, r12d
mov rcx, rbx
call qword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
mov edx, 0x104
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r8, str.NtDll.dll
mov edx, 0x104
lea rcx, [rsp + 0xa0]
call fcn.1400f7f64
mov word [rsp + 0x60], di
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0xa0]
mov rcx, qword [0x1401a95f8]
call qword [sym.imp.SHELL32.dll_ExtractAssociatedIconW]
mov r8, rax
mov edx, r12d
mov rcx, rbx
call qword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
lea r8d, [rdi + 0x60]
mov edx, dword [0x1401794e8]
lea ecx, [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, eax
lea r8d, [rdi + 0x60]
mov edx, dword [0x1401794e8]
lea ecx, [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], esi
mov r9d, eax
mov edx, 0xb9
lea r8d, [rdi + 1]
mov rcx, qword [0x1401a9600]
call qword [sym.imp.USER32.dll_LoadImageW]
mov r8, rax
mov edx, r12d
mov rcx, rbx
call qword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
mov r9, rbx
xor r8d, r8d
mov edx, 0x1303
mov rcx, qword [rbp + 0x488]
call qword [sym.imp.USER32.dll_SendMessageW]
lea rbx, [rbp + 0x598]
mov rax, qword [rbp + 0x448]
mov qword [rsp + 0x70], rax
lea rdx, [rbx + 0x40]
lea rcx, [0x14016f960]
call fcn.140071e30
movzx r13d, ax
mov rax, qword [rbx + 0x28]
test rax, rax
jne 0x140087534
call fcn.1400dee38
mov qword [rbx + 0x28], rax
test rax, rax
jne 0x140087534
lea ecx, [rdi + 0xe]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [rbp + 0x388]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rbp + 8]
call fcn.1400a2d40
test rax, rax
js 0x140087838
lea rbx, [rbp + 0x328]
mov rsi, qword [0x14018ec98]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r12, rax
mov rax, qword [rbx + 0x28]
test rax, rax
jne 0x140087420
call fcn.1400dee38
mov qword [rbx + 0x28], rax
test rax, rax
je 0x140087455
mov r8, rbx
mov rdx, r12
mov rcx, rax
call fcn.1400def68
mov rcx, qword [rbx + 0x28]
call fcn.1400deeb4
mov r8, rax
mov edx, 0xfffffffc
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
test rax, rax
je 0x140087455
mov qword [rbx + 0x40], rax
mov qword [rbx + 8], rsi
mov rbx, qword [rbp + 0x5a0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1304
mov rcx, qword [r15 + 0x48]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 2
lea r9, [0x1401330e0]
mov r8, rbx
mov edx, eax
mov rcx, r15
call fcn.140086c90
mov rax, qword [0x1401a9440]
mov qword [rbp + 0x48], rax
mov rax, qword [0x14018ec98]
mov qword [rbp + 0x50], rax
mov rcx, qword [rbp + 8]
call qword [sym.imp.USER32.dll_GetMenu]
mov r12, rax
lea rcx, [rbp + 0xc0]
mov rdx, rax
call fcn.140086180
mov rcx, rbp
call fcn.140086830
lea rbx, [rbp + 0x3c8]
mov rdx, qword [rbp + 0x448]
mov rcx, qword [0x14018ec80]
mov qword [rbx + 8], rcx
mov qword [rbx + 0x10], rdx
mov rcx, rbx
call fcn.1400734e0
movsd xmm0, qword [0x140189df0]
mulsd xmm0, qword [0x140130d88]
cvttsd2si ecx, xmm0
mov edx, 0x7fffffff
mov r8d, 0x64
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [rbx + 0x58], eax
mov ecx, dword [rbx + 0x4c]
mov r8d, dword [rbx + 0x3c]
cmp byte [rbx], 0
je 0x140087606
mov edx, dword [rbx + 0x20]
sub edx, dword [rbx + 0x18]
jmp 0x14008760c
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400def68
test r13w, r13w
je 0x1400873bb
lea rsi, [rbx + 0x10]
test rsi, rsi
je 0x14008786a
test rbx, rbx
je 0x14008786a
mov qword [rsi], rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rsi + 8], eax
lea rcx, [0x14016c428]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x14016c450]
mov qword [rsi + 0x10], rax
mov qword [0x14016c450], rsi
lea rcx, [0x14016c428]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r10d, dword [0x14016c46c]
mov r8d, dword [0x14016c474]
sub r8d, r10d
mov r9d, dword [0x14016c468]
mov ecx, dword [0x14016c470]
sub ecx, r9d
mov rdx, r13
mov qword [rsp + 0x58], rdi
mov rax, qword [0x1401a95f8]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rbx
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r9d
mov r9d, 0x56000000
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExW]
jmp 0x1400873bb
mov edx, dword [rbx + 0x24]
sub edx, dword [rbx + 0x1c]
sub edx, ecx
sub edx, r8d
test edx, edx
jle 0x140087640
mov r8d, 0x7fffffff
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [rbx + 0x5c], 0
mov rcx, rbx
mov edx, 0x48
test rbx, rbx
cmove rcx, rdx
xor r8d, r8d
mov edx, eax
call fcn.140072a00
mov rcx, rbx
call fcn.1400734e0
cmp byte [0x14018df98], 0
jne 0x14008768e
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x14008766c
lea edx, [rax + 5]
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_ShowWindow]
xor edx, edx
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.USER32.dll_ShowWindow]
cmp dword [rbx + 0x38], 0
je 0x140087681
mov dword [rbx + 0x38], edi
mov dword [rbx + 0x64], edi
mov rcx, rbx
call fcn.1400734e0
jmp 0x1400876ac
mov edx, dword [rsp + 0x64]
mov rcx, r15
call fcn.140072800
lea r9, [rsp + 0x64]
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.140087cf0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
lea rcx, [0x1401a9580]
call fcn.140086780
mov rbx, rax
lea r15, [rbp + 0x68]
mov esi, dword [rax + 0x10]
movsxd rdx, dword [rax + 0x14]
cmp esi, edx
jne 0x14008772a
mov r9, qword [rax + 8]
lea rax, [rsp + 0x88]
cmp rax, r9
jb 0x1400876f8
lea rcx, [r9 + rdx*8]
lea rax, [rsp + 0x88]
cmp rax, rcx
jb 0x14008787a
test edx, edx
jne 0x140087701
lea esi, [rdx + 1]
jmp 0x140087705
add esi, esi
js 0x140087741
mov edx, esi
cmp rdx, 0xfffffff
ja 0x140087741
mov r8d, 8
mov rcx, r9
call fcn.1400fbac0
test rax, rax
je 0x140087741
mov dword [rbx + 0x14], esi
mov qword [rbx + 8], rax
movsxd rcx, dword [rbx + 0x10]
mov rax, qword [rbx + 8]
lea rdx, [rax + rcx*8]
test rdx, rdx
je 0x14008773e
mov qword [rdx], r15
inc dword [rbx + 0x10]
lea r15, [rbp + 0x70]
mov esi, dword [rbx + 0x20]
movsxd rdx, dword [rbx + 0x24]
cmp esi, edx
jne 0x1400877a8
mov r9, qword [rbx + 0x18]
lea rax, [rsp + 0x90]
cmp rax, r9
jb 0x140087776
lea rcx, [r9 + rdx*8]
lea rax, [rsp + 0x90]
cmp rax, rcx
jb 0x14008785f
test edx, edx
jne 0x14008777f
lea esi, [rdx + 1]
jmp 0x140087783
add esi, esi
js 0x1400877bf
mov edx, esi
cmp rdx, 0xfffffff
ja 0x1400877bf
mov r8d, 8
mov rcx, r9
call fcn.1400fbac0
test rax, rax
je 0x1400877bf
mov dword [rbx + 0x24], esi
mov qword [rbx + 0x18], rax
movsxd rcx, dword [rbx + 0x20]
mov rax, qword [rbx + 0x18]
lea r9, [rax + rcx*8]
test r9, r9
je 0x1400877bc
mov qword [r9], r15
inc dword [rbx + 0x20]
mov dword [rsp + 0x20], edi
mov r9d, r14d
mov edx, 0x9f3f
lea r8d, [rdx + 2]
mov rcx, r12
call qword [sym.imp.USER32.dll_CheckMenuRadioItem]
movzx eax, byte [0x14018df98]
neg al
sbb ebx, ebx
and ebx, 8
mov rcx, qword [rbp + 8]
call qword [sym.imp.USER32.dll_GetMenu]
mov r8d, ebx
mov edx, 0x9c6e
mov rcx, rax
call qword [sym.imp.USER32.dll_CheckMenuItem]
movzx r9d, byte [0x14018df98]
mov edx, 0x402
mov r8d, 0x9c6e
mov rcx, qword [0x14018eca0]
call qword [sym.imp.USER32.dll_SendMessageW]
mov edx, 1
mov rcx, rbp
call fcn.140073030
mov byte [rbp + 0x728], 1
mov r12, rdi
mov rax, r12
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.1400e17a0
add rsp, 0x2c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x80004005
call fcn.140032b30
int3
mov edx, 1
mov ecx, 0xc0000005
call fcn.14004e200
int3
mov ecx, 0x80004005
call fcn.140032b30
int3