Function at 0x402ac0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe98
mov eax, dword [0x46e140]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0xe98], ecx
mov byte [ebp - 0x618], 0
push 0x103
push 0
lea eax, [ebp - 0x617]
push eax
call fcn.00446c70
add esp, 0xc
mov byte [ebp - 0x510], 0
push 0x103
push 0
lea ecx, [ebp - 0x50f]
push ecx
call fcn.00446c70
add esp, 0xc
push 0x104
lea edx, [ebp - 0x618]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
movsx eax, byte [ebp - 0x618]
push eax
push str.._c:
lea ecx, [ebp - 0x510]
push ecx
call fcn.004474db
add esp, 0xc
push 0
push 0
push 3
push 0
push 7
push 0xc0000000
lea edx, [ebp - 0x510]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x402b6d
mov al, 1
jmp 0x402e3a
mov byte [ebp - 0x619], 0
mov dword [ebp - 0xa24], 0
mov dword [ebp - 0xe48], 0
push 0x20
push 0
lea eax, [ebp - 0xe90]
push eax
call fcn.00446c70
add esp, 0xc
push 0
lea ecx, [ebp - 0xe48]
push ecx
push 0x20
lea edx, [ebp - 0xe90]
push edx
push 0
push 0
push 0x560000
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x402bd0
mov byte [ebp - 0x619], 1
jmp 0x402e12
push 0x18
push 0
lea ecx, [ebp - 0xa3c]
push ecx
call fcn.00446c70
add esp, 0xc
push 0
lea edx, [ebp - 0xe48]
push edx
push 0x18
lea eax, [ebp - 0xa3c]
push eax
push 0
push 0
push 0x74080
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x402c18
mov byte [ebp - 0x619], 2
jmp 0x402e12
mov dword [ebp - 0xe6c], 0x200
mov byte [ebp - 0xe68], 0
mov byte [ebp - 0xe67], 1
mov byte [ebp - 0xe66], 1
mov byte [ebp - 0xe65], 0
mov byte [ebp - 0xe64], 0
mov edx, dword [ebp - 0xe88]
and edx, 1
neg edx
sbb edx, edx
and edx, 0x10
add edx, 0xa0
mov byte [ebp - 0xe63], dl
movzx eax, byte [ebp - 0xa39]
mov ecx, dword [ebp - 0xe88]
sar eax, cl
and eax, 0x10
neg eax
sbb eax, eax
and eax, 0xffffffb5
add eax, 0xec
mov byte [ebp - 0xe62], al
xor ecx, ecx
mov byte [ebp - 0xe61], cl
mov dl, byte [ebp - 0xe88]
mov byte [ebp - 0xe60], dl
xor eax, eax
mov dword [ebp - 0xe5f], eax
mov dword [ebp - 0xe5b], eax
mov dword [ebp - 0xe57], eax
mov dword [ebp - 0xe53], eax
mov dword [ebp - 0xe4f], eax
mov dword [ebp - 0xe44], 0x211
mov ecx, dword [ebp - 0xe44]
push ecx
call fcn.004476e8
add esp, 4
mov dword [ebp - 0xa24], eax
mov edx, dword [ebp - 0xe44]
push edx
push 0
mov eax, dword [ebp - 0xa24]
push eax
call fcn.00446c70
add esp, 0xc
push 0
lea ecx, [ebp - 0xe48]
push ecx
mov edx, dword [ebp - 0xe44]
push edx
mov eax, dword [ebp - 0xa24]
push eax
push 0x21
lea ecx, [ebp - 0xe6c]
push ecx
push 0x7c088
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x402d2f
mov byte [ebp - 0x619], 3
jmp 0x402e12
mov eax, dword [ebp - 0xa24]
add eax, 0x10
mov dword [ebp - 0xe70], eax
mov dword [ebp - 0xe94], 0
jmp 0x402d59
mov ecx, dword [ebp - 0xe94]
add ecx, 1
mov dword [ebp - 0xe94], ecx
cmp dword [ebp - 0xe94], 0x100
jge 0x402d84
mov edx, dword [ebp - 0xe94]
mov eax, dword [ebp - 0xe70]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0xe94]
mov dword [ebp + edx*4 - 0xe40], ecx
jmp 0x402d4a
lea eax, [ebp - 0xa20]
push eax
push 0x13
push 0xa
lea ecx, [ebp - 0xe40]
push ecx
call fcn.00402500
add esp, 0x10
lea edx, [ebp - 0x408]
push edx
push 0x2e
push 0x1b
lea eax, [ebp - 0xe40]
push eax
call fcn.00402500
add esp, 0x10
lea ecx, [ebp - 0x408]
push ecx
call fcn.00447580
add esp, 4
push eax
lea edx, [ebp - 0x408]
push edx
mov eax, dword [ebp - 0xe98]
add eax, 0x18
push eax
call fcn.00401040
add esp, 0xc
lea ecx, [ebp - 0xa20]
push ecx
call fcn.00447580
add esp, 4
push eax
lea edx, [ebp - 0xa20]
push edx
mov eax, dword [ebp - 0xe98]
add eax, 0x18
push eax
call fcn.00401040
add esp, 0xc
xor ecx, ecx
jne 0x402b7e
cmp dword [ebp - 0xa24], 0
je 0x402e2a
mov edx, dword [ebp - 0xa24]
push edx
call fcn.0044760b
add esp, 4
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [ebp - 0x619]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00446cea
mov esp, ebp
pop ebp
ret