Function at 0x10000df7c
Capabilities:
Create directory
Get common file path

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x440
mov qword [rsp + 0x110], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1000400a0]
xor rax, rsp
mov qword [rsp + 0x430], rax
mov r12, rcx
mov qword [rsp + 0x88], rcx
xor edi, edi
cmp dword [0x1000408f4], edi
jne 0x10001592d
movabs rsi, 0x4000000000010000
lea r13, [r12 + 0x100]
mov word [r13], di
mov word [rsp + 0x220], di
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x100015985
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
mov rcx, qword [r12 + 0xc8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [rax + rbx]
mov r15d, 0x104
cmp edx, r15d
jae 0x100015e1b
mov r8, qword [r12 + 0xc8]
mov rdx, r15
mov rcx, r13
call fcn.10000e660
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x1000159ae
lea rbx, [r12 + 0x30a]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x25]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x1000159d7
mov ecx, 0x7ffffffe
mov rdx, r15
lea rax, [r12 + 0x512]
mov r9, rdi
cmp rdx, rdi
je 0x1000159fa
cmp rcx, rdi
je 0x10000e0c7
movzx r8d, word [rbx]
cmp r8w, di
je 0x10000e0c7
mov word [rax], r8w
add rax, 2
add rbx, 2
dec rdx
dec rcx
inc r9
jmp 0x10000e098
mov word [rax], di
lea rcx, [r12 + 0x30a]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea rcx, [0x100032448]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [rax + rbx + 2]
cmp ecx, r15d
jae 0x100015df5
lea r8, [0x100032464]
mov rdx, r15
lea rcx, [r12 + 0x30a]
call fcn.10000e660
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x100015dd8
lea r8, [0x100032448]
mov rdx, r15
lea rcx, [r12 + 0x30a]
call fcn.10000e660
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x100015dd8
lea rcx, [r12 + 0x512]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea rcx, [0x100032468]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [rax + rbx + 2]
cmp edx, r15d
jae 0x100015dac
lea r8, [0x100032464]
mov rdx, r15
lea rcx, [r12 + 0x512]
call fcn.10000e660
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x100015d8f
lea r8, [0x100032468]
mov rdx, r15
lea rcx, [r12 + 0x512]
call fcn.10000e660
mov r14d, eax
mov dword [rsp + 0x30], eax
cmp eax, edi
jl 0x100015d8f
lea rcx, [r12 + 0x100]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, edi
jne 0x10000e1d2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x100015a03
mov r9d, 1
mov r8d, r15d
lea rdx, [rsp + 0x220]
mov rcx, r12
call fcn.10000c5c8
cmp eax, edi
je 0x100015d64
mov ecx, 0x18
call fcn.1000023a0
mov rbx, rax
mov qword [rsp + 0xf0], rax
cmp rax, rdi
je 0x100015a71
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x118]
call fcn.100002f84
mov rdx, rax
mov rcx, rbx
call fcn.10000c948
jmp 0x10000e233
mov qword [r12 + 0x60], rax
cmp rax, rdi
je 0x100015a79
mov ecx, 0x140
call fcn.1000023a0
cmp rax, rdi
je 0x100015af1
mov rcx, qword [r12 + 0x60]
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
mov dword [rax + 0x18], edi
mov qword [rax + 0x20], rdi
mov qword [rax + 0x28], rdi
mov qword [rax + 0x30], rdi
mov dword [rax + 0x38], edi
mov qword [rax + 0x40], rdi
mov qword [rax + 0x48], rdi
mov qword [rax + 0x50], rdi
mov dword [rax + 0x58], edi
mov qword [rax + 0x60], rdi
mov qword [rax + 0x68], rdi
mov qword [rax + 0x70], rdi
mov dword [rax + 0x78], edi
mov qword [rax + 0x80], rdi
mov qword [rax + 0x88], rdi
mov qword [rax + 0x90], rdi
mov dword [rax + 0x98], edi
mov qword [rax + 0xa0], rdi
mov qword [rax + 0xa8], rdi
mov qword [rax + 0xb0], rdi
mov dword [rax + 0xb8], edi
mov qword [rax + 0x130], rcx
mov dword [rax + 0x138], 2
jmp 0x10000e2dd
mov qword [r12 + 0x70], rax
cmp rax, rdi
je 0x100015af9
mov ecx, 0x38
call fcn.1000023a0
mov rbx, rax
cmp rax, rdi
je 0x100015b77
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], rdi
mov qword [rax + 0x28], rdi
mov dword [rax + 0x30], edi
mov qword [rax + 0x10], rdi
mov dword [rsp + 0x20], 0x109
mov r9d, 0x118
mov r13d, 0x64
mov r8d, r13d
mov edx, r13d
mov rcx, rax
call qword [sym.imp.USER32.dll_SetRect]
jmp 0x10000e339
mov qword [r12 + 0x68], rbx
cmp rbx, rdi
je 0x100015b85
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov rbx, rax
cmp rax, rdi
je 0x100015c03
mov edx, 0x58
mov rcx, rax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x100040078], eax
mov edx, 0x5a
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x100040074], eax
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov byte [0x100040050], dil
xor r9d, r9d
lea r8, [rsp + 0x40]
xor edx, edx
lea ecx, [rdx + 0x30]
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
mov esi, dword [rsp + 0x48]
add esi, 0xfffffee8
mov r12d, dword [rsp + 0x44]
add r12d, 0x64
mov ecx, 0x4a
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cmp eax, edi
jne 0x100015c34
mov edx, dword [rsp + 0x48]
add edx, 0xfffffee8
mov dword [rsp + 0x20], 0x109
mov r9d, 0x118
mov r8d, r13d
lea rcx, [rsp + 0x100]
call qword [sym.imp.USER32.dll_SetRect]
mov ebx, 0xffffffd8
jmp 0x10000e3fe
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x120], xmm0
movaps xmm1, xmmword [rsp + 0x100]
movdqa xmmword [rsp + 0xf0], xmm1
mov dword [0x10004007c], esi
mov dword [0x100040080], r12d
mov dword [0x100040084], edi
lea rdx, [rsp + 0xf0]
lea rcx, [0x100040b70]
call qword [sym.imp.USER32.dll_CopyRect]
lea rdx, [rsp + 0xf0]
lea rcx, [0x100040b90]
call qword [sym.imp.USER32.dll_CopyRect]
lea rdx, [rsp + 0x120]
lea rcx, [0x100040b80]
call qword [sym.imp.USER32.dll_CopyRect]
mov dword [0x100040088], ebx
mov dword [0x10004008c], 0x28
mov esi, 0x48
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x1d0]
call sub.msvcrt.dll_memset
mov dword [rsp + 0x1d0], 0xb
mov rax, qword [0x1000400c8]
mov qword [rsp + 0x1e8], rax
mov ebx, 0x7f00
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [rsp + 0x1f8], rax
lea rcx, str.Sticky_Notes_Note_Window
mov qword [rsp + 0x210], rcx
lea r12d, [rsi + 0x1d]
mov rdx, r12
mov rcx, qword [0x1000400c8]
call qword [sym.imp.USER32.dll_LoadIconW]
mov qword [rsp + 0x1f0], rax
lea rcx, [rsp + 0x1d0]
call qword [sym.imp.USER32.dll_RegisterClassW]
cmp ax, di
je 0x100015c60
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x130]
call sub.msvcrt.dll_memset
mov dword [rsp + 0x130], 3
mov rax, qword [0x1000400c8]
mov qword [rsp + 0x148], rax
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [rsp + 0x158], rax
lea rax, [0x100002bf0]
mov qword [rsp + 0x138], rax
lea rbx, str.Sticky_Notes_Top_Window
mov qword [rsp + 0x170], rbx
mov rdx, r12
mov rcx, qword [0x1000400c8]
call qword [sym.imp.USER32.dll_LoadIconW]
mov qword [rsp + 0x150], rax
lea rcx, [rsp + 0x130]
call qword [sym.imp.USER32.dll_RegisterClassW]
cmp ax, di
je 0x100015ca1
mov rcx, qword [0x1000400c8]
call fcn.10000e9b4
cmp al, dil
je 0x100015ce2
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x180]
call sub.msvcrt.dll_memset
lea r11, [0x100001598]
mov qword [rsp + 0x188], r11
mov dword [rsp + 0x180], 0x2000b
mov rax, qword [0x1000400c8]
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a8], rdi
lea rax, str.a64c3a50_b714_4e1f_a723_78db57a20a29
mov qword [rsp + 0x1c0], rax
lea rcx, [rsp + 0x180]
call qword [sym.imp.USER32.dll_RegisterClassW]
cmp ax, di
je 0x100015d23
mov ecx, 0x50
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x100040060], eax
jmp 0x10000e627
mov eax, r14d
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.1000012f0
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov al, byte [0x1000408f8]
cmp al, 4
jae 0x100015940
cmp al, dil
jne 0x10000dfce
movabs rsi, 0x4000000000010000
test qword [0x1000408e0], rsi
je 0x10000dfd8
mov rcx, qword [0x1000408e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x10000dfd8
lea rdx, [0x100032d60]
mov rcx, qword [0x1000400f0]
call fcn.1000180a0
jmp 0x10000dfd8
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xb8], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xb8]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e010
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xd0], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xd0]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e05a
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x60], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x60]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e085
sub rax, 2
jmp 0x10000e0c7
cmp dword [0x1000408f4], edi
je 0x100015a48
mov al, byte [0x1000408f8]
cmp al, 2
jae 0x100015a1a
cmp al, dil
jne 0x100015a48
test qword [0x1000408e0], rsi
je 0x100015a48
mov rcx, qword [0x1000408e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x100015a48
lea rdx, [0x100032e20]
mov rcx, qword [0x1000400f0]
call fcn.1000180a0
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x98], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x98]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e1d2
mov rax, rdi
jmp 0x10000e233
mov eax, 0x80004005
mov dword [rsp + 0x30], eax
cmp dword [0x1000408f4], edi
je 0x100015ace
mov al, byte [0x1000408f8]
cmp al, 2
jae 0x100015a99
cmp al, dil
jne 0x100015ace
test qword [0x1000408e0], rsi
je 0x100015ace
mov rcx, qword [0x1000408e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x100015ace
lea r8, str.CPersistence
lea rdx, [0x100032d00]
mov rcx, qword [0x1000400f0]
call fcn.10001cb24
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x70], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e241
mov rax, rdi
jmp 0x10000e2dd
mov eax, 0x80004005
mov dword [rsp + 0x30], eax
cmp dword [0x1000408f4], edi
je 0x100015b4e
mov al, byte [0x1000408f8]
cmp al, 2
jae 0x100015b19
cmp al, dil
jne 0x100015b4e
test qword [0x1000408e0], rsi
je 0x100015b4e
mov rcx, qword [0x1000408e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x100015b4e
lea r8, str.CWindowOrganizer
lea rdx, [0x100032d00]
mov rcx, qword [0x1000400f0]
call fcn.10001cb24
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xa0], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xa0]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e2eb
mov rbx, rdi
mov r13d, 0x64
jmp 0x10000e339
mov eax, 0x80004005
mov dword [rsp + 0x30], eax
cmp dword [0x1000408f4], edi
je 0x100015bda
mov al, byte [0x1000408f8]
cmp al, 2
jae 0x100015ba5
cmp al, dil
jne 0x100015bda
test qword [0x1000408e0], rsi
je 0x100015bda
mov rcx, qword [0x1000408e8]
mov rax, rcx
and rax, rsi
cmp rax, rcx
jne 0x100015bda
lea r8, str.CNoteOrganizer
lea rdx, [0x100032d00]
mov rcx, qword [0x1000400f0]
call fcn.10001cb24
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x80], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x80]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e347
mov dword [rsp + 0x30], 0x80004005
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xb0], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xb0]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e35b
mov dword [rsp + 0x20], 0x109
mov r9d, 0x118
mov r8d, r13d
mov edx, r13d
lea rcx, [rsp + 0x100]
call qword [sym.imp.USER32.dll_SetRect]
mov ebx, 0x28
jmp 0x10000e3fe
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
cmp eax, edi
cmovle ecx, eax
mov dword [rsp + 0x30], ecx
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x90], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x90]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e50a
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
cmp eax, edi
cmovle ecx, eax
mov dword [rsp + 0x30], ecx
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xc0], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xc0]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e596
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
cmp eax, edi
cmovle ecx, eax
mov dword [rsp + 0x30], ecx
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xd8], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xd8]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e5ab
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
cmp eax, edi
cmovle ecx, eax
mov dword [rsp + 0x30], ecx
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xa8], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xa8]
call sub.msvcrt.dll__CxxThrowException
nop
jmp 0x10000e614
mov dword [rsp + 0x30], 0x80004005
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xc8], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xc8]
call sub.msvcrt.dll__CxxThrowException
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x50], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x50]
call sub.msvcrt.dll__CxxThrowException
mov word [r12 + 0x100], di
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0xe0], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0xe0]
call sub.msvcrt.dll__CxxThrowException
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x58], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x58]
call sub.msvcrt.dll__CxxThrowException
mov word [r12 + 0x100], di
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x68], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x68]
call sub.msvcrt.dll__CxxThrowException
mov word [r13], di
lea rax, str.Error_Intializing_Globals
mov qword [rsp + 0x78], rax
lea rdx, [0x100034270]
lea rcx, [rsp + 0x78]
call sub.msvcrt.dll__CxxThrowException
nop
mov r14d, dword [rsp + 0x30]
jmp 0x10000e627