Function at 0x4587a4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x4587ad
mov eax, dword [ebp - 4]
add esp, 0xfffff2dc
push ebx
push esi
push edi
mov byte [ebp - 0x11e], cl
mov byte [ebp - 0x11d], dl
mov ebx, eax
mov eax, 0x49f014
call fcn.0048dd88
push 0
cmp byte [0x4b0a12], 0
je 0x4587ed
mov eax, 2
jmp 0x4587f2
mov eax, 1
mov edx, 0x4b2734
mov cl, byte [ebp - 0x11d]
call fcn.00475efc
mov byte [ebp - 0x11f], al
call fcn.0044a498
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0x528]
push eax
push 0x400
call sub.KERNEL32.DLL_GetCurrentDirectoryA
cmp byte [ebp - 0x11e], 0
jne 0x458889
mov edx, 0x49ec82
mov eax, 0x49ec77
xor ecx, ecx
call fcn.00465b48
test eax, eax
je 0x458889
push 0x49ec8e
push 0x1000
lea ecx, [ebp - 0x2528]
mov edx, 0x49ec85
mov eax, 0x49ec77
call fcn.00465a04
cmp word [ebp - 0x2528], 0
je 0x458889
cmp dword [0x4b3338], 0
je 0x458889
push 0
lea eax, [ebp - 0x2528]
mov cl, 1
mov edx, dword [0x4b3338]
call fcn.0044ca94
mov al, byte [0x4b0ed9]
mov byte [ebp - 0x125], al
mov byte [0x4b0ed9], 0
cmp byte [ebp - 0x125], 0
je 0x458911
cmp byte [0x4b0a12], 0
jne 0x458911
mov eax, 0x4b2734
call fcn.0040b578
push eax
lea edx, [ebp - 0x2928]
push edx
call fcn.0048d8e8
add esp, 8
lea eax, [ebp - 0x2928]
xor edx, edx
call fcn.0040b88c
mov edx, 0x49ec90
lea eax, [ebp - 0x2928]
call fcn.0040b9a4
test al, al
je 0x4588f5
lea eax, [ebp - 0x2928]
xor edx, edx
call fcn.0040b88c
lea eax, [ebp - 0x2928]
xor ecx, ecx
xor edx, edx
call fcn.00409c94
lea eax, [ebp - 0x2928]
push eax
call fcn.0048f2ec
pop ecx
mov word [ebp - 0x10c], 8
mov edx, dword [0x4b12ec]
mov eax, dword [ebx + edx*4 + 0x104]
mov edx, dword [eax]
call dword [edx]
mov word [ebp - 0x10c], 0
jmp 0x45894e
cmp byte [0x4b0a12], 0
jne 0x458b57
cmp dword [0x4b1afc], 0
je 0x458b57
call fcn.0044a498
cmp eax, dword [ebp - 0x124]
jne 0x458b57
cmp dword [0x4bc228], 0
jne 0x458b57
cmp dword [0x4bc224], 0
jne 0x458b57
xor ebx, ebx
mov eax, dword [0x4b3334]
call fcn.0040f19c
jmp 0x4589bd
push 0x49ec94
lea edx, [ebp - 0x2d28]
push edx
call fcn.0048d89c
add esp, 8
test eax, eax
jne 0x4589bd
mov bl, 1
jmp 0x4589d6
lea edx, [ebp - 0x2d28]
mov ecx, 0x400
mov eax, dword [0x4b3334]
call fcn.0040f058
test al, al
jne 0x4589a1
test bl, bl
je 0x458a1f
cmp dword [0x4b1afc], 1
jne 0x458a1f
push 0x24
mov eax, 0x24e
call fcn.004116e8
push eax
mov eax, 0x578
call fcn.004116e8
push eax
cmp byte [ebp - 0x11f], 0
je 0x458a0c
mov edx, dword [0x4b989c]
jmp 0x458a12
mov edx, dword [0x4b9890]
push edx
call sub.USER32.DLL_MessageBoxA
cmp eax, 6
je 0x458a1f
xor ebx, ebx
mov word [ebp - 0x10c], 0x14
test bl, bl
je 0x458b34
mov word [ebp - 0x10c], 0x20
lea eax, [ebp - 0xf8]
call fcn.0040ee0c
add dword [ebp - 0x100], 4
mov word [ebp - 0x10c], 0x2c
mov ecx, 0x4b2b34
mov edx, 0x4b2734
lea eax, [ebp - 0xf8]
call fcn.0040efdc
push 1
push 2
mov ecx, 0x4b2b34
mov edx, 0x4b2734
mov eax, 0x4ba5d4
call fcn.0045bd3c
dec eax
jne 0x458af4
push 0x4b2734
lea edx, [ebp - 0x3128]
push edx
call fcn.0048d8e8
add esp, 8
jmp 0x458aab
lea edx, [ebp - 0x3128]
lea eax, [ebp - 0xf8]
call fcn.0040efd4
lea edx, [ebp - 0x3128]
mov eax, 0x4ba5d4
call fcn.0045d754
test al, al
je 0x458af4
lea eax, [ebp - 0x3128]
xor edx, edx
call fcn.0040a0c8
test al, al
jne 0x458a9a
jmp 0x458af4
lea edx, [ebp - 0x3d28]
lea eax, [ebp - 0x3528]
call fcn.0040a4f4
lea edx, [ebp - 0x3d28]
lea eax, [ebp - 0x3528]
call fcn.0040a8fc
push 0x400
lea ecx, [ebp - 0x3d28]
lea edx, [ebp - 0x3528]
lea eax, [ebp - 0xf8]
call fcn.0040f064
test al, al
jne 0x458ad2
sub dword [ebp - 0x100], 4
lea eax, [ebp - 0xf8]
mov edx, 2
call fcn.0040ef28
mov word [ebp - 0x10c], 0x14
mov word [ebp - 0x10c], 0
jmp 0x458b57
mov dl, byte [ebp - 0x125]
mov byte [0x4b0ed9], dl
lea ecx, [ebp - 0x528]
push ecx
call fcn.0048f2ec
pop ecx
cmp dword [0x4bc21c], 0
jne 0x458b8d
cmp byte [ebp - 0x11f], 0
je 0x458b8d
push dword [0x4b989c]
call sub.USER32.DLL_DestroyWindow
mov eax, dword [ebp - 0x11c]
mov dword fs:[0], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret