Function at 0x406ba1
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff6e4
push ebx
push esi
push edi
mov ebx, dword [0x424460]
shl ebx, 4
lea ebx, [ebx + ebx*4]
add ebx, dword [0x424450]
mov eax, dword [0x424458]
mov edx, dword [0x424460]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 4], ecx
push 0x42e788
lea eax, [ebp - 0x110]
push eax
call fcn.0041ab34
add esp, 8
push ebx
lea edx, [ebp - 0x110]
push edx
call fcn.0041aaa4
add esp, 8
push 0x42537f
mov ecx, dword [0x424460]
shl ecx, 4
lea ecx, [ecx + ecx*4]
add ecx, dword [0x424454]
push ecx
call fcn.0041abf8
add esp, 8
test eax, eax
jne 0x406c2e
push 0x104
lea eax, [ebp - 0x214]
push eax
call sub.KERNEL32.DLL_GetWindowsDirectoryA
jmp 0x406ced
push 0x425388
mov edx, dword [0x424460]
shl edx, 4
lea edx, [edx + edx*4]
add edx, dword [0x424454]
push edx
call fcn.0041abf8
add esp, 8
test eax, eax
jne 0x406c68
push 0x104
lea ecx, [ebp - 0x214]
push ecx
call sub.KERNEL32.DLL_GetSystemDirectoryA
jmp 0x406ced
push 0x42e88c
lea eax, [ebp - 0x214]
push eax
call fcn.0041ab34
add esp, 8
push 0x42e88c
call fcn.0041ab64
pop ecx
movsx edx, byte [eax + 0x42e88b]
cmp edx, 0x5c
je 0x406cbe
push 0x42e88c
call fcn.0041ab64
pop ecx
movsx ecx, byte [eax + 0x42e88b]
cmp ecx, 0x3a
je 0x406cbe
push 0x425391
lea eax, [ebp - 0x214]
push eax
call fcn.0041aaa4
add esp, 8
mov edx, dword [0x424460]
shl edx, 4
lea edx, [edx + edx*4]
add edx, dword [0x424454]
push edx
lea ecx, [ebp - 0x214]
push ecx
call fcn.0041aaa4
add esp, 8
lea eax, [ebp - 0x214]
push eax
call fcn.00403525
pop ecx
lea edx, [ebp - 0x214]
push edx
lea ecx, [ebp - 0x318]
push ecx
call fcn.0041ab34
add esp, 8
lea eax, [ebp - 0x214]
push eax
call fcn.0041ab64
pop ecx
movsx edx, byte [ebp + eax - 0x215]
cmp edx, 0x5c
je 0x406d4b
lea ecx, [ebp - 0x214]
push ecx
call fcn.0041ab64
pop ecx
movsx eax, byte [ebp + eax - 0x215]
cmp eax, 0x3a
je 0x406d4b
push 0x425393
lea edx, [ebp - 0x214]
push edx
call fcn.0041aaa4
add esp, 8
lea ecx, [ebp - 0x518]
push ecx
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push ebx
call fcn.0041d4fc
add esp, 0x14
lea edx, [ebp - 0x418]
push edx
lea ecx, [ebp - 0x214]
push ecx
call fcn.0041aaa4
add esp, 8
lea eax, [ebp - 0x518]
push eax
lea edx, [ebp - 0x214]
push edx
call fcn.0041aaa4
add esp, 8
push ebx
push 0x65
push dword [0x42e9ec]
call fcn.0040ebca
add esp, 0xc
lea ecx, [ebp - 0x818]
push ecx
lea eax, [ebp - 0x718]
push eax
lea edx, [ebp - 0x618]
push edx
lea ecx, [ebp - 7]
push ecx
lea eax, [ebp - 0x110]
push eax
call fcn.0041d4fc
add esp, 0x14
lea edx, [ebp - 0x818]
push edx
lea ecx, [ebp - 0x718]
push ecx
push 0x425395
lea eax, [ebp - 0x91c]
push eax
call fcn.0041e5ec
add esp, 0x10
xor esi, esi
push 0x42539a
lea eax, [ebp - 0x818]
push eax
call fcn.0042039c
pop ecx
push eax
call fcn.0041ad48
add esp, 8
test eax, eax
jne 0x406e13
mov esi, 1
xor ebx, ebx
jmp 0x406e3a
mov eax, dword [0x42442c]
push dword [eax + ebx*4]
lea edx, [ebp - 0x91c]
push edx
call fcn.0041abf8
add esp, 8
test eax, eax
jne 0x406e39
mov esi, 1
jmp 0x406e42
inc ebx
cmp ebx, dword [0x424428]
jl 0x406e17
test esi, esi
je 0x406f99
lea eax, [ebp - 0x214]
push eax
lea edx, [ebp - 0x110]
push edx
call fcn.0041abf8
add esp, 8
test eax, eax
jne 0x406eae
mov ecx, dword [ebp - 4]
add dword [0x42e9d4], ecx
mov eax, dword [0x42e9d4]
mov dword [0x42e9d8], eax
imul eax, dword [0x42e9d4], 0x64
xor edx, edx
div dword [0x42e9d0]
mov dword [0x42458c], eax
push 0
push 0
mov ecx, dword [0x4245d4]
push dword [ecx + 0x30]
call sub.USER32.dll_InvalidateRect
mov eax, dword [0x4245d4]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
pop ecx
jmp 0x407071
push 0x8000
lea ecx, [ebp - 0x110]
push ecx
call fcn.0041d50c
add esp, 8
mov esi, eax
cmp esi, 0xffffffff
jne 0x406ee5
lea eax, [ebp - 0x110]
push eax
push dword [0x42e9ec]
call fcn.0040202a
add esp, 8
xor eax, eax
jmp 0x407073
push 0x80
push 0x8301
lea edx, [ebp - 0x214]
push edx
call fcn.0041d50c
add esp, 0xc
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x406f2b
push esi
call fcn.0041d4ec
pop ecx
lea eax, [ebp - 0x214]
push eax
mov edx, dword [0x4245d4]
push dword [edx + 0x44]
call fcn.0040202a
add esp, 8
xor eax, eax
jmp 0x407073
push 0
push ebx
call fcn.0041d4e4
add esp, 8
push dword [ebp - 4]
push esi
push ebx
call fcn.00405fe5
add esp, 0xc
mov edi, eax
lea eax, [ebp - 0xc]
push eax
push esi
call fcn.0041de98
add esp, 8
lea edx, [ebp - 0xc]
push edx
push ebx
call fcn.0041e2f4
add esp, 8
test edi, edi
je 0x406f86
cmp dword [0x42407c], 0
je 0x406f86
lea ecx, [ebp - 0x214]
push ecx
push 0x42539e
push dword [0x42407c]
call fcn.0041da84
add esp, 0xc
push esi
call fcn.0041d4ec
pop ecx
push ebx
call fcn.0041d4ec
pop ecx
jmp 0x407071
xor eax, eax
mov dword [0x42e9dc], eax
mov edx, dword [0x424458]
mov ecx, dword [0x424460]
mov eax, dword [edx + ecx*4]
add eax, dword [0x42e9d4]
mov dword [0x42e9d8], eax
push 0x4253a2
lea edx, [ebp - 0x91c]
push edx
call fcn.0041abf8
add esp, 8
test eax, eax
jne 0x40700a
call fcn.00406370
mov dword [0x424b18], 1
push 0
push 0
push 0
lea ecx, [ebp - 0x110]
push ecx
lea eax, [ebp - 0x318]
push eax
call fcn.0040622f
mov edi, eax
xor eax, eax
mov dword [0x424b18], eax
call fcn.00406a83
jmp 0x407025
push 0
push 0
push 0
lea edx, [ebp - 0x110]
push edx
lea ecx, [ebp - 0x318]
push ecx
call fcn.0040622f
mov edi, eax
mov eax, dword [0x424458]
mov edx, dword [0x424460]
mov ecx, dword [eax + edx*4]
sub ecx, dword [0x42e9dc]
add dword [0x42e9d4], ecx
imul eax, dword [0x42e9d4], 0x64
xor edx, edx
div dword [0x42e9d0]
mov dword [0x42458c], eax
push 0
push 0
mov ecx, dword [0x4245d4]
push dword [ecx + 0x30]
call sub.USER32.dll_InvalidateRect
mov eax, dword [0x4245d4]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret