Function at 0x41452d
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3b4
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], 0
mov edx, dword [ebp + 8]
mov dword [edx + 0xc], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x10], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x38], 0
mov edx, dword [ebp + 8]
mov dword [edx + 4], 0
mov eax, dword [ebp + 0xc]
and eax, 1
test eax, eax
je 0x4146d6
push 0x200
lea ecx, [ebp - 0x3b0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0x534138
lea edx, [ebp - 0x3b0]
push edx
call fcn.004202e0
add esp, 8
push 0x53413c
lea eax, [ebp - 0x3b0]
push eax
call fcn.004202e0
add esp, 8
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
lea ecx, [ebp - 0x3b0]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0xffffffff
je 0x414648
mov edx, dword [ebp - 0xd4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x534148
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
je 0x414648
push str.GetVDDVersion
mov eax, dword [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1ac], eax
cmp dword [ebp - 0x1ac], 0
je 0x41463b
call dword [ebp - 0x1ac]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0xd8]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0xd0], 0
push 0
push 0x80
push 3
push 0
push 0
push 0xc0000000
push str..hasp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0xffffffff
je 0x4146ca
push 0
lea eax, [ebp - 0x1a8]
push eax
push 8
lea ecx, [ebp - 0xd0]
push ecx
push 8
lea edx, [ebp - 0xd0]
push edx
push 0x9c402800
mov eax, dword [ebp - 0xd4]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4146bb
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xcc]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xd4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4146d6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1a8], eax
mov ecx, dword [ebp + 0xc]
and ecx, 2
test ecx, ecx
je 0x414715
lea edx, [ebp - 0x3b4]
push edx
lea eax, [ebp - 0x1b0]
push eax
call fcn.0041e882
mov ecx, dword [ebp - 0x1b0]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov dword [edx], ecx
mov eax, dword [ebp - 0x3b4]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], eax
lea edx, [ebp - 0xc8]
push edx
lea eax, [ebp - 0x1a4]
push eax
call fcn.00404ad0
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0
je 0x414742
mov eax, dword [ebp - 0xdc]
jmp 0x414846
push 0x200
lea ecx, [ebp - 0x3b0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp dword [ebp - 0x1a0], 3
jne 0x414773
push 0x534170
lea edx, [ebp - 0x3b0]
push edx
call fcn.004202e0
add esp, 8
jmp 0x414787
push 0x534180
lea eax, [ebp - 0x3b0]
push eax
call fcn.004202e0
add esp, 8
push 0x53418c
lea ecx, [ebp - 0x3b0]
push ecx
call fcn.004202e0
add esp, 8
lea edx, [ebp - 0x3b0]
push edx
call fcn.0041c6b3
add esp, 4
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0x10], 0xffffffff
jne 0x4147c3
mov eax, dword [ebp + 8]
mov dword [eax + 0x10], 0
push 0x200
lea ecx, [ebp - 0x3b0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp dword [ebp - 0x1a0], 3
jne 0x4147f4
push 0x534198
lea edx, [ebp - 0x3b0]
push edx
call fcn.004202e0
add esp, 8
jmp 0x414808
push 0x5341a8
lea eax, [ebp - 0x3b0]
push eax
call fcn.004202e0
add esp, 8
push 0x5341b4
lea ecx, [ebp - 0x3b0]
push ecx
call fcn.004202e0
add esp, 8
lea edx, [ebp - 0x3b0]
push edx
call fcn.0041c6b3
add esp, 4
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x38], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0x38], 0xffffffff
jne 0x414844
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], 0
xor eax, eax
mov esp, ebp
pop ebp
ret