Function at 0x406e70
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46fa16
mov eax, dword fs:[0]
push eax
sub esp, 0x45c
mov eax, dword [0x496534]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x448], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x440], eax
mov eax, dword [ebp + 0x14]
push 0x208
mov dword [ebp - 0x444], eax
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0044f210
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0044f210
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
add esp, 0x18
xor ebx, ebx
mov dword [ebp - 0x434], 0
cmp dword [ebp + 0xc], 1
mov ecx, 0x31
mov eax, 0xb
cmove eax, ecx
push eax
call esi
cmp dword [ebp + 0xc], 1
mov ecx, 0x32
mov dword [ebp - 0x43c], eax
mov eax, 0xc
cmove eax, ecx
push eax
call esi
mov dword [ebp - 0x438], eax
test edi, edi
je 0x406f37
cmp dword [edi + 4], ebx
je 0x406f37
mov ecx, edi
call fcn.0043c412
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
mov dword [ebp - 0x468], eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x464], eax
test eax, eax
je 0x406f7e
push 0xc
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push dword [ebp - 0x464]
mov esi, eax
push dword [ebp - 0x468]
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp esi, 0x18
jl 0x406f7e
push 8
push 8
push 0x21
jmp 0x406f87
push 8
push 8
push 0xff
push dword [ebp - 0x438]
mov ecx, edi
push dword [ebp - 0x43c]
call fcn.0043c347
mov eax, dword [ebp - 0x448]
test eax, eax
jne 0x406fd9
push 0x104
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x485f18
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push 0x485f30
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x406fe7
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [ebp - 0x440]
xor esi, esi
cmp dword [eax], 0x7fffffff
je 0x407068
mov ecx, dword [sym.imp.SHELL32.dll_ExtractIconExW]
nop dword [eax]
cmp dword [ebp + 0xc], 1
lea edx, [ebp - 0x434]
push 1
jne 0x407013
push edx
push 0
jmp 0x407016
push 0
push edx
push dword [eax]
lea eax, [ebp - 0x218]
push eax
call ecx
test eax, eax
mov eax, dword [ebp - 0x434]
je 0x40703e
test eax, eax
je 0x407049
push eax
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
inc ebx
jmp 0x407049
test eax, eax
je 0x407049
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov eax, dword [ebp - 0x440]
inc esi
cmp dword [eax + esi*4], 0x7fffffff
mov ecx, dword [sym.imp.SHELL32.dll_ExtractIconExW]
lea eax, [eax + esi*4]
jne 0x407000
mov eax, dword [ebp - 0x440]
xor esi, esi
cmp dword [eax], 0x7fffffff
je 0x407215
nop word [eax + eax]
cmp dword [ebp - 0x444], 0
je 0x4071e2
mov dword [ebp - 0x44c], 0
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
lea ecx, [ebp - 0x460]
mov dword [ebp - 4], 0
call fcn.0043d46e
mov eax, dword [ebp - 0x438]
mov byte [ebp - 4], 1
mov dword [ebp - 0x424], eax
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x430], 0
push dword [eax + 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [ebp - 0x460]
call fcn.0043d609
push dword [ebp - 0x438]
mov eax, dword [ebp - 0x444]
push dword [ebp - 0x43c]
push dword [eax + 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [ebp - 0x450]
call fcn.0043d64a
push dword [ebp - 0x44c]
push dword [ebp - 0x45c]
call fcn.0043da68
push 5
mov dword [ebp - 0x448], eax
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x460]
call fcn.0043e580
push 0
push 0
push 0
push dword [ebp - 0x45c]
push esi
push dword [edi + 4]
call dword [sym.imp.COMCTL32.dll_ImageList_Draw]
push 1
push 0
push 0
push dword [ebp - 0x45c]
push 6
push dword [edi + 4]
call dword [sym.imp.COMCTL32.dll_ImageList_Draw]
mov eax, dword [ebp - 0x448]
test eax, eax
je 0x407191
mov eax, dword [eax + 4]
push eax
push dword [ebp - 0x45c]
call fcn.0043da68
lea ecx, [ebp - 0x460]
call fcn.0043d704
push 0
push dword [ebp - 0x44c]
push dword [edi + 4]
call dword [sym.imp.COMCTL32.dll_ImageList_Add]
lea ecx, [ebp - 0x460]
call fcn.0043d4d6
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x450]
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
call fcn.004094f0
jmp 0x407200
push 0
push esi
push dword [edi + 4]
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
push eax
push 0xffffffffffffffff
push dword [edi + 4]
mov dword [ebp - 0x434], eax
call dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
mov eax, dword [ebp - 0x440]
inc esi
inc ebx
cmp dword [eax + esi*4], 0x7fffffff
jne 0x407080
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044ae75
mov esp, ebp
pop ebp
ret