Function at 0x407720
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xea8
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xe94], ecx
mov byte [ebp - 0x108], 0
push 0x103
push 0
lea eax, [ebp - 0x107]
push eax
call fcn.004d43c0
add esp, 0xc
mov byte [ebp - 0x20c], 0
push 0x103
push 0
lea ecx, [ebp - 0x20b]
push ecx
call fcn.004d43c0
add esp, 0xc
push 0x104
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ebp + ecx - 0x108]
push edx
push str.._c:
lea eax, [ebp - 0x20c]
push eax
call fcn.00404c90
add esp, 0xc
push 0
push 0
push 3
push 0
push 7
push 0xc0000000
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xe80], eax
cmp dword [ebp - 0xe80], 0xffffffff
jne 0x4077dc
mov al, 1
jmp 0x407ba9
mov byte [ebp - 0xe69], 0
mov dword [ebp - 0xe70], 0
mov dword [ebp - 0xe84], 0
xor edx, edx
mov dword [ebp - 0xe50], edx
mov dword [ebp - 0xe4c], edx
mov dword [ebp - 0xe48], edx
mov dword [ebp - 0xe44], edx
mov dword [ebp - 0xe40], edx
mov dword [ebp - 0xe3c], edx
mov dword [ebp - 0xe38], edx
mov dword [ebp - 0xe34], edx
push 0
lea eax, [ebp - 0xe84]
push eax
push 0x20
lea ecx, [ebp - 0xe50]
push ecx
push 0
push 0
push 0x560000
mov edx, dword [ebp - 0xe80]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x407861
mov byte [ebp - 0xe69], 1
jmp 0x407b7e
xor eax, eax
mov dword [ebp - 0xe68], eax
mov dword [ebp - 0xe64], eax
mov dword [ebp - 0xe60], eax
mov dword [ebp - 0xe5c], eax
mov dword [ebp - 0xe58], eax
mov dword [ebp - 0xe54], eax
push 0
lea ecx, [ebp - 0xe84]
push ecx
push 0x18
lea edx, [ebp - 0xe68]
push edx
push 0
push 0
push 0x74080
mov eax, dword [ebp - 0xe80]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4078bf
mov byte [ebp - 0xe69], 2
jmp 0x407b7e
mov dword [ebp - 0xe30], 0x200
mov byte [ebp - 0xe2c], 0
mov byte [ebp - 0xe2b], 1
mov byte [ebp - 0xe2a], 1
mov byte [ebp - 0xe29], 0
mov byte [ebp - 0xe28], 0
mov ecx, 0x18
imul edx, ecx, 0
mov eax, dword [ebp + edx - 0xe48]
and eax, 1
je 0x40790c
mov dword [ebp - 0xe8c], 0xb0
jmp 0x407916
mov dword [ebp - 0xe8c], 0xa0
mov cl, byte [ebp - 0xe8c]
mov byte [ebp - 0xe27], cl
movzx edx, byte [ebp - 0xe65]
mov eax, 0x18
imul ecx, eax, 0
mov ecx, dword [ebp + ecx - 0xe48]
sar edx, cl
and edx, 0x10
je 0x40794b
mov dword [ebp - 0xe90], 0xa1
jmp 0x407955
mov dword [ebp - 0xe90], 0xec
mov dl, byte [ebp - 0xe90]
mov byte [ebp - 0xe26], dl
xor eax, eax
mov byte [ebp - 0xe25], al
mov ecx, 0x18
imul edx, ecx, 0
mov al, byte [ebp + edx - 0xe48]
mov byte [ebp - 0xe24], al
xor ecx, ecx
mov dword [ebp - 0xe23], ecx
mov dword [ebp - 0xe1f], ecx
mov dword [ebp - 0xe1b], ecx
mov dword [ebp - 0xe17], ecx
mov dword [ebp - 0xe13], ecx
mov dword [ebp - 0xe88], 0x211
mov edx, dword [ebp - 0xe88]
push edx
call fcn.004dbe8c
add esp, 4
mov dword [ebp - 0xe70], eax
mov eax, dword [ebp - 0xe88]
push eax
push 0
mov ecx, dword [ebp - 0xe70]
push ecx
call fcn.004d43c0
add esp, 0xc
push 0
lea edx, [ebp - 0xe84]
push edx
mov eax, dword [ebp - 0xe88]
push eax
mov ecx, dword [ebp - 0xe70]
push ecx
push 0x21
lea edx, [ebp - 0xe30]
push edx
push 0x7c088
mov eax, dword [ebp - 0xe80]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x407a17
mov byte [ebp - 0xe69], 3
jmp 0x407b7e
mov ecx, dword [ebp - 0xe70]
add ecx, 0x10
mov dword [ebp - 0xe98], ecx
mov dword [ebp - 0xe74], 0
jmp 0x407a41
mov edx, dword [ebp - 0xe74]
add edx, 1
mov dword [ebp - 0xe74], edx
cmp dword [ebp - 0xe74], 0x100
jge 0x407a6c
mov eax, dword [ebp - 0xe74]
mov ecx, dword [ebp - 0xe98]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0xe74]
mov dword [ebp + eax*4 - 0xe0c], edx
jmp 0x407a32
lea ecx, [ebp - 0xa0c]
push ecx
push 0x13
push 0xa
lea edx, [ebp - 0xe0c]
push edx
call fcn.00407020
add esp, 0x10
lea eax, [ebp - 0x60c]
push eax
push 0x2e
push 0x1b
lea ecx, [ebp - 0xe0c]
push ecx
call fcn.00407020
add esp, 0x10
lea edx, [ebp - 0x60c]
mov dword [ebp - 0xe78], edx
mov eax, dword [ebp - 0xe78]
add eax, 1
mov dword [ebp - 0xe9c], eax
mov ecx, dword [ebp - 0xe78]
mov dl, byte [ecx]
mov byte [ebp - 0xe6a], dl
add dword [ebp - 0xe78], 1
cmp byte [ebp - 0xe6a], 0
jne 0x407abb
mov eax, dword [ebp - 0xe78]
sub eax, dword [ebp - 0xe9c]
mov dword [ebp - 0xea0], eax
mov ecx, dword [ebp - 0xea0]
push ecx
lea edx, [ebp - 0x60c]
push edx
mov eax, dword [ebp - 0xe94]
add eax, 0x18
push eax
call fcn.00409230
add esp, 0xc
lea ecx, [ebp - 0xa0c]
mov dword [ebp - 0xe7c], ecx
mov edx, dword [ebp - 0xe7c]
add edx, 1
mov dword [ebp - 0xea4], edx
mov eax, dword [ebp - 0xe7c]
mov cl, byte [eax]
mov byte [ebp - 0xe6b], cl
add dword [ebp - 0xe7c], 1
cmp byte [ebp - 0xe6b], 0
jne 0x407b26
mov edx, dword [ebp - 0xe7c]
sub edx, dword [ebp - 0xea4]
mov dword [ebp - 0xea8], edx
mov eax, dword [ebp - 0xea8]
push eax
lea ecx, [ebp - 0xa0c]
push ecx
mov edx, dword [ebp - 0xe94]
add edx, 0x18
push edx
call fcn.00409230
add esp, 0xc
xor eax, eax
jne 0x4077ed
cmp dword [ebp - 0xe70], 0
je 0x407b96
mov ecx, dword [ebp - 0xe70]
push ecx
call fcn.004d72c8
add esp, 4
mov edx, dword [ebp - 0xe80]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [ebp - 0xe69]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret