Function at 0x100505d5
Capabilities:
Get common file path

Disassembly:
push 0x220
mov eax, 0x10159a84
call fcn.1012b6ae
mov eax, dword [0x10246a48]
xor ebx, ebx
mov edi, dword [ebp + 8]
test al, 1
jne 0x1005062b
or eax, 1
mov dword [0x10246a48], eax
mov dword [ebp - 4], ebx
mov dword [0x10246a38], ebx
mov dword [0x10246a3c], ebx
mov dword [0x10246a40], ebx
mov byte [ebp - 4], 1
mov dword [0x10246a44], ebx
mov byte [ebp - 4], bl
push 0x1017e72c
call fcn.1012b5d3
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [0x10246a34], 0
jne 0x1005098a
push 0x10246930
lea ecx, [ebp - 0x228]
call fcn.10007b01
mov dword [ebp - 4], 2
cmp byte [0x10246a34], 0
jne 0x10050964
push 0x208
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.1012db70
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call fcn.10007945
push eax
lea ecx, [ebp - 0x21c]
call fcn.10008bfd
mov byte [ebp - 4], 4
lea eax, [ebp - 0x218]
push str.catroot_
push eax
lea eax, [ebp - 0x21c]
push 0x10181380
push eax
call fcn.10014838
add esp, 0x10
lea eax, [ebp - 0x21c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push eax
call fcn.10008916
mov byte [ebp - 4], 5
lea eax, [ebp - 0x220]
push eax
mov byte [ebp - 4], 4
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 6
mov ecx, 0x10246a38
push dword [eax]
call fcn.100a9eff
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.100078bc
push str.catroot2_
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x21c]
push 0x10181380
push eax
call fcn.10014838
add esp, 0x10
lea eax, [ebp - 0x21c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push eax
call fcn.10008916
mov byte [ebp - 4], 8
lea eax, [ebp - 0x220]
push eax
mov byte [ebp - 4], 4
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 9
mov ecx, 0x10246a38
push dword [eax]
call fcn.100a9eff
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.100078bc
push str.logfiles_
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x21c]
push 0x10181380
push eax
call fcn.10014838
add esp, 0x10
lea eax, [ebp - 0x21c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push eax
call fcn.10008916
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x220]
push eax
mov byte [ebp - 4], 4
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 0xc
mov ecx, 0x10246a38
push dword [eax]
call fcn.100a9eff
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.100078bc
push str.spool_
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x21c]
push 0x10181380
push eax
call fcn.10014838
add esp, 0x10
lea eax, [ebp - 0x21c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push eax
call fcn.10008916
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x220]
push eax
mov byte [ebp - 4], 4
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 0xf
mov ecx, 0x10246a38
push dword [eax]
call fcn.100a9eff
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.100078bc
push str.driversetc_
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x21c]
push 0x10181380
push eax
call fcn.10014838
add esp, 0x10
lea eax, [ebp - 0x21c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push eax
call fcn.10008916
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x220]
push eax
mov byte [ebp - 4], 4
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 0x12
mov ecx, 0x10246a38
push dword [eax]
call fcn.100a9eff
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.100078bc
call fcn.1005121e
test eax, eax
jne 0x1005094b
call fcn.100514ce
test eax, eax
jne 0x1005094b
call fcn.100515c9
test eax, eax
jne 0x1005094b
push str.driverstore_
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x21c]
push 0x10181380
push eax
call fcn.10014838
add esp, 0x10
lea eax, [ebp - 0x21c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push eax
call fcn.10008916
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x220]
push eax
mov byte [ebp - 4], 4
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 0x15
mov ecx, 0x10246a38
push dword [eax]
call fcn.100a9eff
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.100078bc
mov byte [0x10246a34], 1
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x21c]
lea ecx, [ecx - 0x10]
call fcn.100078bc
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x228], 0
je 0x1005097d
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x10246a34], 0
je 0x10050a1d
push 0x10246930
lea ecx, [ebp - 0x228]
call fcn.10007b01
mov dword [ebp - 4], 0x18
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], ebx
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x22c], esp
push edi
mov dword [ebp - 0x220], ebx
call fcn.100088c7
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x224]
push eax
mov byte [ebp - 4], 0x18
call fcn.100561d1
pop ecx
pop ecx
mov byte [ebp - 4], 0x1a
mov ecx, 0x10246a38
push dword [eax]
call fcn.100aa040
mov ebx, eax
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x224]
add ecx, 0xfffffff0
call fcn.100078bc
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x228], 0
je 0x10050a1d
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
call fcn.1012b658
ret