Function at 0x402560
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x413348
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x4190a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
push esi
mov byte [ebp - 4], 1
call dword [sym.imp.USER32.dll_IsWindow]
mov eax, dword [0x41b070]
mov ebx, dword [eax]
mov dword [ebp - 0x14], ebx
mov edi, edi
cmp ebx, dword [0x41b070]
je 0x4026f6
mov edi, dword [0x41b09c]
lea ecx, [ebp - 0x18]
add ebx, 8
push ecx
mov eax, 0x41b098
call fcn.00404290
cmp dword [ebp - 0x18], edi
jne 0x4026e7
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
cmp ebx, edx
jae 0x40264f
cmp edi, ebx
ja 0x40264f
sub ebx, edi
sar ebx, 2
cmp edx, esi
jne 0x402644
mov eax, edx
sub eax, edi
sar eax, 2
cmp eax, 0x3ffffffe
jbe 0x40260b
push str.vector_T__too_long
call fcn.00406232
mov ecx, esi
sub ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x402644
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x40262a
xor ecx, ecx
jmp 0x40262c
add ecx, edx
cmp ecx, eax
jae 0x402632
mov ecx, eax
push ecx
lea esi, [ebp - 0x38]
call fcn.00404d50
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x4026ad
mov eax, dword [edi + ebx*4]
mov dword [edx], eax
jmp 0x4026ad
cmp edx, esi
jne 0x4026a1
mov eax, edx
sub eax, edi
sar eax, 2
cmp eax, 0x3ffffffe
jbe 0x40266b
push str.vector_T__too_long
call fcn.00406232
mov ecx, esi
sub ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4026a1
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x40268a
xor ecx, ecx
jmp 0x40268c
add ecx, edx
cmp ecx, eax
jae 0x402692
mov ecx, eax
push ecx
lea esi, [ebp - 0x38]
call fcn.00404d50
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x4026ad
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 8]
mov dword [edx], ecx
push 0
add edx, 4
push 0
mov dword [ebp - 0x34], edx
call dword [sym.imp.USER32.dll_GetWindow]
mov ebx, dword [ebp - 0x14]
mov edi, dword [0x41b0c8]
lea edx, [ebp - 0x1c]
push edx
add ebx, 8
call fcn.00404590
cmp dword [ebp - 0x1c], edi
je 0x4026e7
push ebx
call fcn.00403ee0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov dword [ebp - 0x14], ecx
mov ebx, ecx
jmp 0x4025b0
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x14], esi
lea esp, [esp]
cmp esi, dword [ebp - 0x34]
je 0x402834
mov eax, esi
mov edi, 0x41b06c
call fcn.00403d40
mov edi, dword [eax]
push 0
mov dword [ebp - 0x18], edi
call dword [sym.imp.USER32.dll_IsWindow]
lea edx, [ebp - 0x28]
push edx
mov eax, esi
call fcn.00404350
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
xor ecx, ecx
mov eax, ebx
cmp eax, esi
je 0x402740
mov eax, dword [eax]
inc ecx
jmp 0x402737
mov ecx, dword [0x41b070]
mov eax, dword [ecx]
cmp ebx, eax
jne 0x402820
cmp esi, ecx
jne 0x402820
mov dword [ecx], ecx
mov ecx, dword [0x41b070]
mov dword [ecx + 4], ecx
mov edi, 0x41b070
mov dword [0x41b074], 0
cmp eax, dword [edi]
je 0x402785
mov ebx, dword [eax]
push eax
call fcn.004062a0
add esp, 4
mov eax, ebx
jmp 0x402772
mov eax, dword [0x41b070]
mov ecx, dword [0x41b07c]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x41b080]
mov edx, 0x41b07c
cmp ecx, eax
je 0x4027b6
mov edi, eax
cmp eax, edi
je 0x4027b3
mov esi, dword [eax]
mov dword [ecx], esi
add ecx, 4
add eax, 4
jmp 0x4027a3
mov dword [edx + 4], ecx
mov eax, dword [edx]
lea ecx, [ebp - 0x1c]
push ecx
push eax
mov ecx, 0x10
call fcn.004051f0
mov edi, dword [ebp - 0x18]
mov dword [0x41b08c], 7
mov dword [0x41b090], 8
push 0
push 0
call dword [sym.imp.USER32.dll_GetWindow]
test edi, edi
je 0x40280d
mov edx, dword [edi]
mov eax, dword [edx + 0x44]
mov ecx, edi
call eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
push edi
call edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
add dword [ebp - 0x14], 4
mov esi, dword [ebp - 0x14]
jmp 0x402700
cmp ebx, esi
je 0x4027de
push ebx
mov ebx, dword [ebx]
lea edi, [ebp - 0x20]
call fcn.004049a0
mov edi, dword [ebp - 0x18]
jmp 0x402820
mov eax, 0x41b06c
cmp eax, 0x41b098
je 0x402845
call fcn.00404a70
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x40285f
push eax
call fcn.004062a0
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret