Function at 0x401859
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
jmp 0x40189d
test dword [0x40421e], 1
je 0x4018df
push 0xd
call sub.user32.dll_GetSysColor
push eax
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404adc], eax
push 0xd
call sub.user32.dll_GetSysColor
push eax
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x404af4], eax
push 0xe
call sub.user32.dll_GetSysColor
mov dword [0x404aec], eax
jmp 0x401913
push 4
call sub.user32.dll_GetSysColor
push eax
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404adc], eax
push 4
call sub.user32.dll_GetSysColor
push eax
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x404af4], eax
push 7
call sub.user32.dll_GetSysColor
mov dword [0x404aec], eax
push dword [0x404adc]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
mov dword [0x404ae4], eax
push dword [0x404af4]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
mov dword [0x404ae8], eax
cmp dword [0x404216], 0x171
je 0x401e7d
cmp dword [0x404216], 0x172
je 0x401e7d
cmp dword [0x404216], 0x176
je 0x401e7d
push dword [0x404236]
push dword [0x404232]
push dword [0x40422e]
push dword [0x40422a]
push 0x40423e
call sub.user32.dll_SetRect
push 0xffffff
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404af0], eax
push 0x40423e
call sub.gdi32.dll_CreateRectRgnIndirect
mov dword [0x404afc], eax
push dword [0x404af0]
push dword [0x404afc]
push dword [0x404226]
call sub.gdi32.dll_FillRgn
push dword [0x404afc]
call sub.gdi32.dll_DeleteObject
push dword [0x404af0]
call sub.gdi32.dll_DeleteObject
test dword [0x40421e], 0x40
je 0x401a7f
test dword [0x40421e], 4
je 0x4019fd
jmp 0x401a7f
push 0xd2bdb6
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404af0], eax
push 0x6a240a
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x404ae0], eax
push dword [0x404af0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
mov dword [0x404b04], eax
push dword [0x404ae0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push dword [0x404236]
push dword [0x404232]
push dword [0x40422e]
push dword [0x40422a]
push dword [0x404226]
call sub.gdi32.dll_Rectangle
push dword [0x404af0]
call sub.gdi32.dll_DeleteObject
push dword [0x404ae0]
call sub.gdi32.dll_DeleteObject
test dword [0x40421e], 1
je 0x401bbe
test dword [0x40421e], 4
je 0x401aa0
jmp 0x401bbe
push 0xd2bdb6
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404af0], eax
push 0x6a240a
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x404ae0], eax
push dword [0x404af0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push dword [0x404ae0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push dword [0x404236]
push dword [0x404232]
push dword [0x40422e]
push dword [0x40422a]
push dword [0x404226]
call sub.gdi32.dll_Rectangle
push dword [0x404af0]
call sub.gdi32.dll_DeleteObject
push dword [0x404ae0]
call sub.gdi32.dll_DeleteObject
test dword [0x40421e], 8
je 0x401bbe
push 0xd2bdb6
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404af0], eax
push 0x6a240a
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x404ae0], eax
push dword [0x404af0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push dword [0x404ae0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
mov eax, dword [0x40422e]
mov ecx, dword [0x404d2c]
add eax, ecx
push eax
mov eax, dword [0x40422a]
mov ecx, dword [0x404d2c]
add eax, ecx
push eax
mov eax, dword [0x40422e]
inc eax
push eax
mov eax, dword [0x40422a]
inc eax
push eax
push dword [0x404226]
call sub.gdi32.dll_Rectangle
push dword [0x404af0]
call sub.gdi32.dll_DeleteObject
push dword [0x404ae0]
call sub.gdi32.dll_DeleteObject
jmp 0x401bbe
push 3
push dword [0x404226]
call sub.gdi32.dll_SetBkMode
push dword [0x404226]
call sub.gdi32.dll_GetTextColor
mov dword [0x404b00], eax
test dword [0x40421e], 4
je 0x401bf9
push 0xa6a6a6
push dword [0x404226]
call sub.gdi32.dll_SetTextColor
jmp 0x401c0a
push dword [0x404aec]
push dword [0x404226]
call sub.gdi32.dll_SetTextColor
cmp dword [0x404216], 0x170
jne 0x401c1d
mov edi, 0x4047a3
jmp 0x401c75
cmp dword [0x404216], 0x174
jne 0x401c30
mov edi, 0x404838
jmp 0x401c75
cmp dword [0x404216], 0x175
jne 0x401c43
mov edi, 0x404845
jmp 0x401c75
cmp dword [0x404216], 0x177
jne 0x401c56
mov edi, 0x404998
jmp 0x401c75
mov eax, dword [0x404216]
and eax, 0xff
mov edx, 0x400
imul edx
mov edi, dword [0x404796]
add edi, eax
add edi, 0x208
push edi
mov ebx, dword [0x40422e]
mov dword [0x404242], ebx
mov ebx, dword [0x404236]
mov dword [0x40424a], ebx
mov eax, dword [0x40422a]
cmp dword [0x404d2c], 0x10
jne 0x401ca3
mov ecx, 0x14
jmp 0x401ca8
mov ecx, 0x28
add eax, ecx
mov dword [0x40423e], eax
mov dword [section..data], 0x24
mov ebx, dword [0x404232]
mov dword [0x404246], ebx
push edi
call sub.kernel32.dll_lstrlenA
pop edi
push dword [section..data]
push 0x40423e
push eax
push edi
push dword [0x404226]
call sub.user32.dll_DrawTextA
push dword [0x404b00]
push dword [0x404226]
call sub.gdi32.dll_SetTextColor
cmp dword [0x404216], 0x170
jne 0x401d13
push 2
push dword [0x404d5b]
call sub.user32.dll_LoadIconA
jmp 0x401e4a
cmp dword [0x404216], 0x174
jne 0x401d31
push 0xb
push dword [0x404d5b]
call sub.user32.dll_LoadIconA
jmp 0x401e4a
cmp dword [0x404216], 0x175
jne 0x401d4f
push 0xb
push dword [0x404d5b]
call sub.user32.dll_LoadIconA
jmp 0x401e4a
cmp dword [0x404216], 0x177
jne 0x401d6d
push 0xc
push dword [0x404d5b]
call sub.user32.dll_LoadIconA
jmp 0x401e4a
mov eax, dword [0x404216]
and eax, 0xff
mov edx, 0x400
imul edx
mov edi, dword [0x404796]
add edi, eax
mov dword [ebp - 4], edi
cmp byte [edi], 0x2e
jne 0x401dbb
push 0x404b10
push 0x404c10
call sub.kernel32.dll_lstrcpyA
mov edi, dword [ebp - 4]
add edi, 2
push edi
push 0x404c10
call sub.kernel32.dll_lstrcatA
push 0x404c10
push dword [ebp - 4]
call sub.kernel32.dll_lstrcpyA
mov edi, dword [ebp - 4]
add edi, 0x2f8
cmp byte [edi], 0x3f
je 0x401dec
push 0x10
push dword [0x404d2c]
push dword [0x404d2c]
push 1
push edi
push 0
call sub.user32.dll_LoadImageA
or eax, eax
jne 0x401e23
mov ebx, 0xffffffff
jmp 0x401e23
mov edi, dword [ebp - 4]
add edi, 0x2f4
mov eax, dword [edi]
push 1
push 0x404b0c
push 0x404b08
push eax
push dword [ebp - 4]
call sub.shell32.dll_ExtractIconExA
mov ebx, eax
cmp dword [0x404d2c], 0x10
jne 0x401e1e
mov eax, dword [0x404b0c]
jmp 0x401e23
mov eax, dword [0x404b08]
cmp ebx, 0xffffffff
je 0x401e2c
or ebx, ebx
jne 0x401e4a
push 0x101
push 0x160
push 0x404282
push 0
push dword [ebp - 4]
call sub.shell32.dll_SHGetFileInfoA
mov eax, dword [0x404282]
push 3
push 0
push 0
mov ecx, dword [0x404d2c]
push ecx
push ecx
push eax
mov ebx, dword [0x40422e]
add ebx, 2
push ebx
mov ebx, dword [0x40422a]
add ebx, 2
push ebx
push dword [0x404226]
call sub.user32.dll_DrawIconEx
jmp 0x401f52
push dword [0x404236]
push dword [0x404232]
push dword [0x40422e]
push dword [0x40422a]
push 0x40423e
call sub.user32.dll_SetRect
push 0xffffff
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x404af0], eax
push 0x40423e
call sub.gdi32.dll_CreateRectRgnIndirect
mov dword [0x404afc], eax
push dword [0x404af0]
push dword [0x404afc]
push dword [0x404226]
call sub.gdi32.dll_FillRgn
push dword [0x404afc]
call sub.gdi32.dll_DeleteObject
push dword [0x404af0]
call sub.gdi32.dll_DeleteObject
push 0x6a240a
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x404ae0], eax
push dword [0x404ae0]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push 0
mov eax, dword [0x40422e]
add eax, 2
push eax
mov eax, dword [0x40422a]
add eax, 0
push eax
push dword [0x404226]
call sub.gdi32.dll_MoveToEx
mov eax, dword [0x40422e]
add eax, 2
push eax
push dword [0x404232]
push dword [0x404226]
call sub.gdi32.dll_LineTo
push dword [0x404ae0]
call sub.gdi32.dll_DeleteObject
push dword [0x404ae4]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push dword [0x404ae8]
push dword [0x404226]
call sub.gdi32.dll_SelectObject
push dword [0x404adc]
call sub.gdi32.dll_DeleteObject
push dword [0x404af4]
call sub.gdi32.dll_DeleteObject
leave
ret