Function at 0x4594f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0x4594f8
push ecx
push ebx
push esi
push edi
mov eax, 0x4592f8
call fcn.00406118
mov esi, 0x45cc38
xor eax, eax
push ebp
push 0x4597ea
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
call fcn.00455404
mov eax, 0x45cd60
mov edx, 0x459804
call fcn.00404384
xor edx, edx
mov eax, 2
call fcn.00456c20
mov edi, eax
mov dword [esi], 0x128
mov edx, esi
mov eax, edi
call fcn.00456c40
jmp 0x4595df
lea eax, [ebp - 0x1c]
lea edx, [esi + 0x24]
mov ecx, 0x104
call fcn.004045a0
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.00408714
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00407e68
mov eax, dword [ebp - 0x14]
push eax
lea edx, [ebp - 0x20]
mov eax, dword [0x45cd60]
call fcn.00407e68
mov edx, dword [ebp - 0x20]
pop eax
call fcn.0040473c
je 0x4595e7
lea eax, [ebp - 0x28]
lea edx, [esi + 0x24]
mov ecx, 0x104
call fcn.004045a0
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x24]
call fcn.00407e68
mov eax, dword [ebp - 0x24]
push eax
lea edx, [ebp - 0x2c]
mov eax, dword [0x45cd60]
call fcn.00407e68
mov edx, dword [ebp - 0x2c]
pop eax
call fcn.0040473c
je 0x4595e7
mov edx, esi
mov eax, edi
call fcn.00456c60
test eax, eax
jne 0x45955d
mov eax, 0x45cd60
mov edx, 0x459818
call fcn.00404384
xor ebx, ebx
xor edx, edx
mov eax, 2
call fcn.00456c20
mov edi, eax
mov dword [esi], 0x128
mov edx, esi
mov eax, edi
call fcn.00456c40
jmp 0x4596a0
lea eax, [ebp - 0x38]
lea edx, [esi + 0x24]
mov ecx, 0x104
call fcn.004045a0
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00408714
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x30]
call fcn.00407e68
mov eax, dword [ebp - 0x30]
push eax
lea edx, [ebp - 0x3c]
mov eax, dword [0x45cd60]
call fcn.00407e68
mov edx, dword [ebp - 0x3c]
pop eax
call fcn.0040473c
je 0x459693
lea eax, [ebp - 0x44]
lea edx, [esi + 0x24]
mov ecx, 0x104
call fcn.004045a0
mov eax, dword [ebp - 0x44]
lea edx, [ebp - 0x40]
call fcn.00407e68
mov eax, dword [ebp - 0x40]
push eax
lea edx, [ebp - 0x48]
mov eax, dword [0x45cd60]
call fcn.00407e68
mov edx, dword [ebp - 0x48]
pop eax
call fcn.0040473c
jne 0x459697
mov bl, 1
jmp 0x4596a8
mov edx, esi
mov eax, edi
call fcn.00456c60
test eax, eax
jne 0x45961a
cmp bl, 1
jne 0x4597cf
push 0x104
push 0x45cd64
call sub.kernel32.dll_GetWindowsDirectoryA
mov eax, dword [0x45b120]
mov edx, 0x45cd64
mov ecx, 0x105
call fcn.004045a0
mov eax, dword [0x45b120]
push dword [eax]
push 0x459830
push 0x45983c
mov eax, 0x45ce6c
mov edx, 3
call fcn.004046b0
mov eax, dword [0x45b120]
push dword [eax]
push 0x459830
push 0x45983c
lea eax, [ebp - 0x4c]
mov edx, 3
call fcn.004046b0
mov eax, dword [ebp - 0x4c]
call fcn.0040866c
test al, al
je 0x45979a
push 0
mov ecx, dword [0x45ce6c]
mov dl, 1
mov eax, dword [0x411fcc]
call fcn.00415e24
mov ebx, eax
xor ecx, ecx
mov edx, 9
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x14]
mov edx, 0x45ce70
mov ecx, 1
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, ebx
call fcn.004035e0
cmp byte [0x45ce70], 1
je 0x4597cf
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
mov edx, 0x459850
call fcn.00455014
mov ecx, dword [0x45aeb8]
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
mov edx, dword [0x457e60]
call fcn.0045541c
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
call fcn.0045549c
jmp 0x4597cf
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
mov edx, 0x459850
call fcn.00455014
mov ecx, dword [0x45aeb8]
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
mov edx, dword [0x457e60]
call fcn.0045541c
mov eax, dword [0x45b0b4]
mov eax, dword [eax]
call fcn.0045549c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4597f1
lea eax, [ebp - 0x4c]
mov edx, 0xf
call fcn.00404354
ret