Function at 0x486538
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffa90
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x570], edx
mov dword [ebp - 0x56c], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov esi, eax
lea eax, [ebp - 0x164]
mov edx, dword [0x4078b8]
call fcn.00404efc
xor eax, eax
push ebp
push 0x486870
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00402dfc
test eax, eax
je 0x4865ec
lea edx, [ebp - 0xc]
mov eax, 1
call fcn.00402e64
lea ecx, [ebp - 0x164]
mov edx, 0x10
mov eax, dword [ebp - 0xc]
call fcn.00408fa4
test eax, eax
jne 0x4865b6
lea eax, [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.00404564
jmp 0x486620
push 0x3ff
lea eax, [ebp - 0x565]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
lea eax, [ebp - 4]
lea edx, [ebp - 0x565]
mov ecx, 0x401
call fcn.0040473c
lea eax, [ebp - 8]
mov ecx, 0x486888
mov edx, dword [ebp - 4]
call fcn.004047d8
jmp 0x486620
push 0x3ff
lea eax, [ebp - 0x565]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
lea eax, [ebp - 4]
lea edx, [ebp - 0x565]
mov ecx, 0x401
call fcn.0040473c
lea eax, [ebp - 8]
mov ecx, 0x486888
mov edx, dword [ebp - 4]
call fcn.004047d8
mov edx, 0x4868a0
mov eax, dword [esi + 0x32c]
call fcn.0043cbc4
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x328]
call fcn.0043cbc4
mov eax, dword [esi + 0x30c]
mov eax, dword [eax + 0x218]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0x56c]
mov ecx, 0x4868c0
mov edx, dword [ebp - 8]
call fcn.004047d8
mov eax, dword [ebp - 0x56c]
lea ecx, [ebp - 0x164]
mov edx, 0x3f
call fcn.00408fa4
mov ebx, eax
test ebx, ebx
jne 0x4866be
mov edi, dword [ebp - 0x15c]
mov eax, edi
and eax, 0x10
cmp eax, 0x10
je 0x4866ad
and edi, 8
cmp edi, 8
je 0x4866ad
mov eax, dword [esi + 0x30c]
mov eax, dword [eax + 0x218]
mov edx, dword [ebp - 0x158]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x164]
call fcn.00408ff4
mov ebx, eax
test ebx, ebx
je 0x48667e
lea eax, [ebp - 0x164]
call fcn.00409018
lea eax, [ebp - 0x570]
mov ecx, 0x4868d0
mov edx, dword [ebp - 8]
call fcn.004047d8
mov eax, dword [ebp - 0x570]
lea ecx, [ebp - 0x164]
mov edx, 0x3f
call fcn.00408fa4
mov ebx, eax
test ebx, ebx
jne 0x486738
mov edi, dword [ebp - 0x15c]
mov eax, edi
and eax, 0x10
cmp eax, 0x10
je 0x486727
and edi, 8
cmp edi, 8
je 0x486727
mov eax, dword [esi + 0x30c]
mov eax, dword [eax + 0x218]
mov edx, dword [ebp - 0x158]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x164]
call fcn.00408ff4
mov ebx, eax
test ebx, ebx
je 0x4866f8
lea eax, [ebp - 0x164]
call fcn.00409018
mov eax, dword [esi + 0x30c]
mov eax, dword [eax + 0x218]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4867c6
mov dl, 1
mov eax, dword [esi + 0x318]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov edx, 0x4868e0
mov eax, dword [esi + 0x334]
call fcn.0043cbc4
mov eax, dword [esi + 0x334]
mov eax, dword [eax + 0x68]
mov edx, 0xff
call fcn.00421298
mov eax, dword [esi + 0x334]
mov ebx, dword [eax + 0x68]
mov eax, ebx
call fcn.00421558
mov edx, eax
or dl, byte [0x486900]
mov eax, ebx
call fcn.00421564
mov eax, dword [esi + 0x338]
mov eax, dword [eax + 0x208]
xor edx, edx
call fcn.0042ff0c
mov edx, 0x48690c
call fcn.0042fe68
jmp 0x486834
xor edx, edx
mov eax, dword [esi + 0x318]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov edx, 0x48693c
mov eax, dword [esi + 0x334]
call fcn.0043cbc4
mov eax, dword [esi + 0x334]
mov eax, dword [eax + 0x68]
mov edx, 0xff000008
call fcn.00421298
mov eax, dword [esi + 0x334]
mov ebx, dword [eax + 0x68]
mov eax, ebx
call fcn.00421558
mov dl, byte [0x486900]
not edx
and dl, al
mov eax, ebx
call fcn.00421564
mov eax, dword [esi + 0x338]
mov eax, dword [eax + 0x208]
xor edx, edx
call fcn.0042ff0c
mov edx, 0x48693c
call fcn.0042fe68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x486877
lea eax, [ebp - 0x570]
mov edx, 2
call fcn.004044f0
lea eax, [ebp - 0x164]
mov edx, dword [0x4078b8]
call fcn.00404fcc
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004044f0
ret