Function at 0x66e12c30
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x66f7815a
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x66fe31a0]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x66fe31a0]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x14], ebp
call fcn.66e13490
lea esi, [ebp + 0x14]
mov dword [esp + 0x13c], 0
mov ecx, esi
call fcn.66e13490
lea ecx, [ebp + 0x28]
mov byte [esp + 0x13c], 1
call fcn.66e13490
lea ecx, [ebp + 0x3c]
mov byte [esp + 0x13c], 2
call fcn.66e13490
lea ecx, [ebp + 0x50]
mov byte [esp + 0x13c], 3
call fcn.66e13490
lea ecx, [ebp + 0x64]
mov byte [esp + 0x13c], 4
call fcn.66e13490
lea ecx, [ebp + 0x78]
mov byte [esp + 0x13c], 5
call fcn.66e13490
push 0x104
lea eax, [esp + 0x30]
mov byte [esp + 0x140], 6
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x66e12d2a
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12d23
lea edi, [esp + 0x2c]
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12d10
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
push eax
jmp 0x66e12d2f
push 0x66f8c480
mov ecx, ebp
call fcn.66e13540
push 0x104
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x66e12d83
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12d75
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12d62
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
call fcn.66e13540
jmp 0x66e12d8b
push ebp
mov ecx, esi
call fcn.66e134f0
push esi
lea ecx, [ebp + 0x28]
call fcn.66e134f0
push str.drivers_
lea ecx, [ebp + 0x28]
call fcn.66e136f0
lea eax, [esp + 0x2c]
push 0x104
push eax
call fcn.66f2c87d
add esp, 8
test eax, eax
je 0x66e12dea
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12de3
lea edi, [esp + 0x2c]
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12dd0
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
push eax
jmp 0x66e12def
push 0x66f8c480
lea ecx, [ebp + 0x3c]
call fcn.66e13540
push 0x66f8c490
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x66e12f17
push 0x66f8c4a0
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x66e12f10
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0x8026
push 0
call esi
test eax, eax
js 0x66e12e70
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12e63
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12e50
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
push eax
lea ecx, [ebp + 0x50]
call fcn.66e13540
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0x802b
push 0
call esi
test eax, eax
js 0x66e12ec0
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12eb3
lea edi, [esp + 0x2c]
dec edi
mov edi, edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12ea0
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
push eax
lea ecx, [ebp + 0x64]
call fcn.66e13540
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0x8023
push 0
call esi
test eax, eax
js 0x66e12f10
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12f03
lea edi, [esp + 0x2c]
dec edi
mov edi, edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12ef0
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
push eax
lea ecx, [ebp + 0x78]
call fcn.66e13540
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp + 0x50]
call fcn.66e13a90
lea esi, [ebp + 0x64]
test eax, eax
je 0x66e12f35
mov ecx, esi
call fcn.66e13a90
test eax, eax
jne 0x66e13020
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push str.SoftwareMicrosoftWindowsCurrentVersion
lea ecx, [esp + 0x24]
call fcn.66e11e60
lea ecx, [ebp + 0x50]
mov byte [esp + 0x13c], 7
call fcn.66e13a90
test eax, eax
jne 0x66e12fb0
push 0x104
lea eax, [esp + 0x30]
push eax
push 0x66f8c4e0
lea ecx, [esp + 0x24]
call fcn.66e12190
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e12fa3
lea edi, [esp + 0x2c]
dec edi
mov edi, edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12f90
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
push eax
lea ecx, [ebp + 0x50]
call fcn.66e13540
mov ecx, esi
call fcn.66e13a90
test eax, eax
jne 0x66e1300f
push 0x104
lea eax, [esp + 0x30]
push eax
push 0x66f8c4f0
lea ecx, [esp + 0x24]
call fcn.66e12190
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.66e0e680
add esp, 8
test al, al
jne 0x66e13003
lea edi, [esp + 0x2c]
dec edi
jmp 0x66e12ff0
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x66e12ff0
mov ax, word [0x66f8af3c]
mov word [edi], ax
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
call fcn.66e13540
lea ecx, [esp + 0x18]
mov byte [esp + 0x13c], 6
call fcn.66e11ea0
mov eax, ebp
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.66f2a29c
add esp, 0x12c
ret