Function at 0x1000a59a
Capabilities:
Get common file path

Disassembly:
push 0x8bc
mov eax, 0x100135b8
call fcn.100128a4
push 0x10001df8
call fcn.1000a1bd
pop ecx
lea eax, [ebp - 0x864]
push eax
lea eax, [ebp - 0x860]
push eax
xor ebx, ebx
push 1
push ebx
push ebx
mov dword [ebp - 0x860], ebx
mov dword [ebp - 0x864], ebx
call fcn.10008f8e
test eax, eax
jne 0x1000a5f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10001d80
call fcn.1000a1bd
pop ecx
jmp 0x1000aabc
mov edx, dword [ebp - 0x860]
xor eax, eax
cmp dword [ebp - 0x864], ebx
jbe 0x1000a624
lea ecx, [edx + 8]
cmp dword [ecx], ebx
je 0x1000a619
inc eax
add ecx, 0xc
cmp eax, dword [ebp - 0x864]
jb 0x1000a607
jmp 0x1000a624
imul eax, eax, 0xc
mov eax, dword [eax + edx]
mov dword [0x1001801c], eax
push edx
call fcn.10008f25
mov eax, dword [0x1001801c]
or edi, 0xffffffff
mov dword [ebp - 0x860], ebx
cmp eax, edi
je 0x1000a644
push eax
push 0x10001d4c
jmp 0x1000a699
push 0x10001d00
call fcn.1000a1bd
mov eax, dword [0x10018038]
pop ecx
mov dword [ebp - 0x86c], eax
mov eax, dword [0x10018040]
push edi
mov dword [ebp - 0x868], eax
push ebx
lea eax, [ebp - 0x86c]
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ecx, eax
sub ecx, ebx
je 0x1000aab2
dec ecx
je 0x1000a68e
push eax
push 0x10001c98
jmp 0x1000a5e9
push dword [0x1001801c]
push 0x10001c58
call fcn.1000a1bd
pop ecx
pop ecx
mov dword [ebp - 0x854], edi
mov dword [ebp - 0x850], ebx
mov dword [ebp - 4], 2
lea eax, [ebp - 0x868]
push eax
lea ecx, [ebp - 0x854]
call fcn.1000a4d9
mov byte [ebp - 4], 3
push dword [eax]
mov esi, 0x2000000
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call fcn.10009060
neg eax
sbb al, al
inc al
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x868]
cmp dword [ecx], edi
je 0x1000a6f8
mov dword [ecx + 4], 1
cmp al, bl
je 0x1000a722
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10001bf8
call fcn.1000a1bd
pop ecx
pop ecx
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x854]
call fcn.10009b82
jmp 0x1000aabd
mov dword [ebp - 0x85c], edi
mov dword [ebp - 0x858], ebx
mov byte [ebp - 4], 8
lea eax, [ebp - 0x868]
push eax
lea ecx, [ebp - 0x85c]
call fcn.1000a4d9
mov byte [ebp - 4], 9
push dword [eax]
push 1
push 1
push ebx
push esi
push dword [ebp - 0x854]
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
neg eax
sbb al, al
inc al
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x868]
cmp dword [ecx], edi
je 0x1000a777
mov dword [ecx + 4], 1
cmp al, bl
je 0x1000a7a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10001b90
call fcn.1000a1bd
pop ecx
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x85c]
call fcn.10009b82
jmp 0x1000a70f
push 4
push 0x1001801c
push 0xc
push dword [ebp - 0x85c]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
jne 0x1000a7e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10001b38
call fcn.1000a1bd
pop ecx
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x85c]
call fcn.10009b82
jmp 0x1000a70f
mov esi, 0x104
push esi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, ebx
je 0x1000aa9e
cmp eax, esi
jae 0x1000aa9e
mov esi, 0x200
push esi
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x638]
call fcn.10009a81
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x638]
call fcn.1000ce4d
mov byte [ebp - 4], 0x12
push 0x5c
lea ecx, [ebp - 0x874]
call fcn.10009567
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x638]
call fcn.1000dc48
neg eax
sbb al, al
inc al
mov byte [ebp - 0x849], al
mov byte [ebp - 4], 0x12
test byte [ebp - 0x86c], 8
je 0x1000a87f
push dword [ebp - 0x868]
call fcn.1000bf2a
mov al, byte [ebp - 0x849]
pop ecx
cmp al, bl
je 0x1000a890
push 0x5c
lea ecx, [ebp - 0x638]
call fcn.10009cab
push 0x10001afc
lea ecx, [ebp - 0x638]
call fcn.10009c3a
lea eax, [ebp - 0x638]
push eax
lea ecx, [ebp - 0x428]
call fcn.1000a2fe
mov byte [ebp - 4], 0x15
push 0x10001ae0
lea ecx, [ebp - 0x428]
call fcn.10009c3a
push esi
lea eax, [ebp - 0x838]
push eax
lea ecx, [ebp - 0x848]
call fcn.10009a81
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x428]
call fcn.10009195
mov ecx, dword [ebp - 0x420]
mov eax, dword [ebp - 0x428]
not ecx
and ecx, 1
shr eax, cl
push eax
push 4
lea ecx, [ebp - 0x848]
call fcn.10009940
mov esi, dword [ebp - 0x83c]
lea ecx, [ebp - 0x428]
call fcn.1000d0fd
mov edi, dword [ebp - 0x41c]
lea ecx, [ebp - 0x428]
call fcn.10009195
mov ecx, dword [ebp - 0x420]
mov eax, dword [ebp - 0x428]
not ecx
and ecx, 1
push 0xffffffffffffffff
shr eax, cl
push edi
push eax
push esi
call dword [sym.imp.MSVCR100_CLR0400.dll_wcsncpy_s]
push 0x40
lea eax, [ebp - 0x8c4]
push ebx
push eax
mov dword [ebp - 0x8c8], 0x44
call sub.MSVCR100_CLR0400.dll_memset
add esp, 0x1c
lea ecx, [ebp - 0x638]
call fcn.1000d0fd
lea eax, [ebp - 0x884]
push eax
lea eax, [ebp - 0x8c8]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
push dword [ebp - 0x62c]
push dword [ebp - 0x85c]
call fcn.10008ff7
test eax, eax
jne 0x1000aa10
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10001a88
call fcn.1000a1bd
pop ecx
pop ecx
mov byte [ebp - 4], 0x15
test byte [ebp - 0x840], 8
je 0x1000a9c6
push dword [ebp - 0x83c]
call fcn.1000bf2a
pop ecx
mov byte [ebp - 4], 0x12
test byte [ebp - 0x420], 8
je 0x1000a9df
push dword [ebp - 0x41c]
call fcn.1000bf2a
pop ecx
mov byte [ebp - 4], 8
test byte [ebp - 0x630], 8
je 0x1000a9f8
push dword [ebp - 0x62c]
call fcn.1000bf2a
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x85c]
call fcn.10009b82
or dword [ebp - 4], 0xffffffff
jmp 0x1000a712
push dword [ebp - 0x884]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x880]
call esi
push dword [ebp - 0x87c]
push dword [0x1001801c]
push 0x10001a18
call fcn.1000a1bd
add esp, 0xc
mov byte [ebp - 4], 0x15
test byte [ebp - 0x840], 8
je 0x1000aa58
push dword [ebp - 0x83c]
call fcn.1000bf2a
pop ecx
mov byte [ebp - 4], 0x12
test byte [ebp - 0x420], 8
je 0x1000aa71
push dword [ebp - 0x41c]
call fcn.1000bf2a
pop ecx
mov byte [ebp - 4], 8
test byte [ebp - 0x630], 8
je 0x1000aa8a
push dword [ebp - 0x62c]
call fcn.1000bf2a
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x85c]
call fcn.10009b82
jmp 0x1000aa07
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x85c]
call fcn.10009b82
jmp 0x1000a70f
push 0x100019c0
call fcn.1000a1bd
pop ecx
call fcn.10012927
ret