Function at 0x40dc00
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x41f284]
xor eax, ebp
mov dword [ebp - 8], eax
cmp dword [0x42303c], 0
jne 0x40dc58
push 0x100
call fcn.0040eaf7
add esp, 4
mov dword [0x42303c], eax
push 0x100
mov eax, dword [0x42303c]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
push 0x100
push str.drivers_
mov ecx, dword [0x42303c]
push ecx
call fcn.0040ed30
add esp, 0xc
push 0x100
lea edx, [ebp - 0x108]
push edx
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
mov eax, dword [ebp + 8]
add eax, 4
push eax
call fcn.00401770
add esp, 4
mov dword [ebp - 4], eax
push 0x41d4b4
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40dcad
mov eax, dword [0x42303c]
push eax
push 0x41d4c0
mov ecx, dword [ebp - 4]
push ecx
call fcn.00401a20
add esp, 0xc
push 0x41d4cc
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40dcdd
lea ecx, [ebp - 0x108]
push ecx
push 0x41d4d4
mov edx, dword [ebp - 4]
push edx
call fcn.00401a20
add esp, 0xc
push 0x41d4dc
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
push ecx
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40dd0c
call fcn.004024e0
push eax
push 0x41d4e8
mov edx, dword [ebp - 4]
push edx
call fcn.00401a20
add esp, 0xc
push 0x41d4f4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
push ecx
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40dd53
push 3
call fcn.004024e0
push eax
lea edx, [ebp - 0x10c]
push edx
call fcn.0040f200
add esp, 0xc
lea eax, [ebp - 0x10c]
push eax
push 0x41d500
mov ecx, dword [ebp - 4]
push ecx
call fcn.00401a20
add esp, 0xc
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp + 8]
add ecx, 4
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x114]
mov cl, byte [eax]
mov byte [ebp - 0x11d], cl
mov edx, dword [ebp - 0x118]
mov al, byte [ebp - 0x11d]
mov byte [edx], al
mov ecx, dword [ebp - 0x114]
add ecx, 1
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
cmp byte [ebp - 0x11d], 0
jne 0x40dd77
mov eax, dword [ebp - 4]
push eax
call fcn.004014a0
add esp, 4
mov ecx, dword [ebp + 8]
add ecx, 0x104
push ecx
call fcn.00401770
add esp, 4
mov dword [ebp - 4], eax
push 0x41d50c
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40de0b
mov ecx, dword [0x42303c]
push ecx
push str.DRVDIR
mov edx, dword [ebp - 4]
push edx
call fcn.00401a20
add esp, 0xc
push 0x41d524
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
push ecx
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40de3b
lea edx, [ebp - 0x108]
push edx
push 0x41d52c
mov eax, dword [ebp - 4]
push eax
call fcn.00401a20
add esp, 0xc
push 0x41d534
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40de6a
call fcn.004024e0
push eax
push str.DRVCUR
mov eax, dword [ebp - 4]
push eax
call fcn.00401a20
add esp, 0xc
push 0x41d54c
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
call fcn.0040d930
add esp, 8
test eax, eax
je 0x40deb1
push 3
call fcn.004024e0
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.0040f200
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
push str.DRVCURR
mov edx, dword [ebp - 4]
push edx
call fcn.00401a20
add esp, 0xc
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp + 8]
add edx, 0x104
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x124]
mov dl, byte [ecx]
mov byte [ebp - 0x12d], dl
mov eax, dword [ebp - 0x128]
mov cl, byte [ebp - 0x12d]
mov byte [eax], cl
mov edx, dword [ebp - 0x124]
add edx, 1
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x128]
add eax, 1
mov dword [ebp - 0x128], eax
cmp byte [ebp - 0x12d], 0
jne 0x40ded8
mov ecx, dword [ebp - 4]
push ecx
call fcn.004014a0
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0040e98e
mov esp, ebp
pop ebp
ret