Function at 0x1012efe
Capabilities:
Get common file path
Reference absolute stream path on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 8], ebx
mov byte [ebp - 2], bl
mov byte [ebp - 1], bl
mov esi, 0x1022448
push esi
call fcn.010124ec
push 0x1022548
call fcn.010125cc
push 0x1001830
mov dword [0x102200c], esi
call fcn.010126c6
mov eax, dword [0x102200c]
mov edi, 0x102200c
cmp eax, edi
je 0x1012f73
test word [eax + 0x9c], 0x4000
je 0x1012f73
cmp byte [eax + 0x99], 4
jb 0x1012f73
push 0x10012f4
push 0x11
push dword [eax + 0x94]
push dword [eax + 0x90]
call fcn.010120f2
push dword [ebp + 0xc]
lea ecx, [ebp - 0x20]
push dword [ebp + 8]
call fcn.01012759
push dword [ebp - 0x14]
call fcn.01012a72
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
push 0x1022438
push ebx
push 0x10017f0
push dword [ebp - 0x14]
call fcn.01012a33
mov ecx, 0x1022010
call fcn.01012c8e
mov esi, eax
cmp esi, ebx
jl 0x10130f0
push 0x1022578
push dword [ebp - 0xc]
call dword [sym.imp.RPCRT4.dll_UuidFromStringW]
cmp eax, ebx
je 0x1013017
mov esi, eax
jle 0x1012fdd
and esi, 0xffff
or esi, 0x80070000
mov ecx, dword [0x102200c]
cmp ecx, edi
je 0x1013017
test word [ecx + 0x9c], 0x4000
je 0x1013017
cmp byte [ecx + 0x99], 1
jb 0x1013017
push eax
push dword [ebp - 0xc]
push 0x10012f4
push 0x12
push dword [ecx + 0x94]
push dword [ecx + 0x90]
call fcn.010123ac
cmp esi, ebx
jl 0x10130f0
mov ebx, 0x104
push ebx
mov edi, 0x1022588
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
mov dword [0x1022790], eax
jne 0x101308d
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov esi, eax
jle 0x1013052
and esi, 0xffff
or esi, 0x80070000
mov ecx, dword [0x102200c]
cmp ecx, 0x102200c
je 0x101308d
test word [ecx + 0x9c], 0x4000
je 0x101308d
cmp byte [ecx + 0x99], 1
jb 0x101308d
push eax
push 0x10012f4
push 0x13
push dword [ecx + 0x94]
push dword [ecx + 0x90]
call fcn.01013553
test esi, esi
jl 0x10130f0
push edi
push ebx
mov edi, 0x10227a0
push edi
call fcn.010204a5
add esp, 0xc
push 0x10017cc
push ebx
push edi
call fcn.01012dbd
mov esi, eax
test esi, esi
jge 0x1013144
mov eax, dword [0x102200c]
cmp eax, 0x102200c
je 0x10130f0
test word [eax + 0x9c], 0x4000
je 0x10130f0
cmp byte [eax + 0x99], 1
jb 0x10130f0
push esi
push 0x10012f4
push 0x14
push dword [eax + 0x94]
push dword [eax + 0x90]
call fcn.01013553
mov eax, dword [0x1022574]
mov ecx, dword [eax]
push esi
push 0x1022578
push eax
call dword [ecx + 0x38]
xor edi, edi
cmp esi, edi
jl 0x101310f
mov ecx, dword [ebp - 8]
call fcn.0101449d
mov ecx, dword [ebp - 8]
cmp ecx, edi
je 0x101311d
push 1
call fcn.01012b1f
mov eax, dword [0x1022444]
mov dword [ebp - 8], edi
cmp dword [eax], edi
je 0x101337b
mov ecx, dword [eax + 0x10]
call fcn.01012b45
test eax, eax
jne 0x101337b
xor al, al
jmp 0x101337e
push 0x102256c
push 0x1022578
push 0x10017b8
push 0x100179c
push edi
push 4
call sub.WUDFPlatform.dll_GetAndInitializePlatformObject
mov esi, eax
test esi, esi
jl 0x10130f0
push dword [0x102256c]
call fcn.01020ebd
mov esi, eax
test esi, esi
jl 0x10130f0
push dword [0x102256c]
call sub.WUDFPlatform.dll_InitializePlatformLibrary
mov esi, eax
test esi, esi
jl 0x10130f0
push 0x1022570
call sub.WUDFPlatform.dll_WdfGetLpcInterface
test eax, eax
jge 0x10131de
or eax, 0x10000000
mov esi, eax
mov eax, dword [0x102200c]
cmp eax, 0x102200c
je 0x10131de
test word [eax + 0x9c], 0x4000
je 0x10131de
cmp byte [eax + 0x99], 1
jb 0x10131de
push esi
push 0x10012f4
push 0x15
push dword [eax + 0x94]
push dword [eax + 0x90]
call fcn.01013553
test esi, esi
jl 0x10130f0
push dword [0x102256c]
mov byte [ebp - 1], 1
push dword [ebp - 0x14]
call fcn.01012e60
mov eax, dword [0x102256c]
mov ecx, dword [eax]
push 0x1022574
push eax
call dword [ecx + 0xbc]
mov esi, eax
test esi, esi
jl 0x10130f0
mov eax, dword [0x1022574]
mov ecx, dword [eax]
push 0x1022578
push eax
call dword [ecx + 0x30]
mov eax, dword [0x1022790]
add eax, 0xf
xor ecx, ecx
push 2
pop edx
mov dword [0x1022798], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0101fb27
test eax, eax
pop ecx
mov dword [0x1022794], eax
jne 0x1013292
mov eax, dword [0x102200c]
cmp eax, 0x102200c
je 0x1013288
test byte [eax + 0x9c], 4
je 0x1013288
cmp byte [eax + 0x99], 1
jb 0x1013288
push 0xe
push 0x10012f4
push 0x16
push dword [eax + 0x94]
push dword [eax + 0x90]
call fcn.01013553
mov esi, 0x8007000e
jmp 0x10130f0
push 0x100177c
push 0x1022588
push 0x1001770
push dword [0x1022798]
push eax
call fcn.01012dff
mov esi, eax
add esp, 0x14
test esi, esi
jl 0x10130f0
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov esi, eax
test esi, esi
jge 0x1013303
mov eax, dword [0x102200c]
cmp eax, 0x102200c
je 0x1013307
test byte [eax + 0x9c], 4
je 0x1013307
cmp byte [eax + 0x99], 1
jb 0x1013307
push esi
push 0x10012f4
push 0x17
push dword [eax + 0x94]
push dword [eax + 0x90]
call fcn.01013553
jmp 0x1013307
mov byte [ebp - 2], 1
test esi, esi
jl 0x10130f0
call fcn.0101d0d9
mov esi, eax
test esi, esi
jl 0x10130f0
call fcn.01017a4f
mov esi, eax
test esi, esi
jl 0x10130f0
call fcn.0101af19
mov esi, eax
test esi, esi
jl 0x10130f0
lea eax, [ebp - 8]
push eax
call fcn.010167fc
mov esi, eax
test esi, esi
jl 0x10130f0
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x20]
push eax
call fcn.01014b87
mov esi, eax
test esi, esi
jl 0x10130f0
mov eax, dword [0x1022574]
mov ecx, dword [eax]
push esi
push 0x1022578
push eax
call dword [ecx + 0x34]
jmp 0x1013101
xor eax, eax
inc eax
push eax
push 0x1001758
push edi
push edi
push edi
push 0x10016b8
push dword [0x102256c]
push 4
call fcn.01020f34
mov ecx, dword [0x1022444]
cmp ecx, edi
je 0x10133aa
push 1
call fcn.01012bf9
push dword [0x1022794]
call fcn.0101fb42
cmp byte [ebp - 1], 0
pop ecx
je 0x10133c6
call sub.WUDFPlatform.dll_ShutdownPlatformLibrary
call fcn.01020ede
mov eax, dword [0x1022574]
mov ecx, dword [eax]
push 0x1022578
push eax
call dword [ecx + 0x78]
mov eax, dword [0x1022574]
cmp eax, edi
je 0x10133eb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [0x1022574], edi
mov ecx, dword [0x1022570]
cmp ecx, edi
je 0x1013400
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [0x1022570], edi
mov eax, dword [0x102256c]
cmp eax, edi
je 0x1013415
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [0x102256c], edi
mov eax, dword [0x102200c]
cmp eax, 0x102200c
pop edi
pop esi
pop ebx
je 0x1013450
test word [eax + 0x9c], 0x4000
je 0x1013450
cmp byte [eax + 0x99], 4
jb 0x1013450
push 0x10012f4
push 0x18
push dword [eax + 0x94]
push dword [eax + 0x90]
call fcn.010120f2
cmp byte [ebp - 2], 0
je 0x101345c
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, 0x1022010
call fcn.01011fe3
call fcn.01012714
xor eax, eax
leave
ret