Function at 0x40a360
Capabilities:
Get file system object information

Disassembly:
sub esp, 0x190
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x80
mov dword [esi + 0x440], 0x4aa684
call fcn.004985f0
add esp, 4
xor ebx, ebx
mov ebp, 0x1f
mov edi, 0x40
mov dword [esi + 0x444], eax
mov dword [esi + 0x448], ebx
mov dword [esi + 0x44c], ebp
mov dword [esi + 0x450], ebx
mov dword [esi + 0x454], edi
push 0x80
mov dword [esi + 0x45c], 0x4aa684
call fcn.004985f0
add esp, 4
lea ecx, [esi + 0x47c]
mov dword [esi + 0x460], eax
mov dword [esi + 0x464], ebx
mov dword [esi + 0x468], ebp
mov dword [esi + 0x46c], ebx
mov dword [esi + 0x470], edi
call fcn.0041e310
lea ecx, [esi + 0x4c8]
call fcn.004230e0
mov eax, dword [esp + 0x1a4]
mov dword [esi], 0x4aa720
mov dword [esi + 0x90], eax
mov ecx, esi
mov dword [0x4caf80], esi
call fcn.0040a7b0
mov edx, dword [esi + 0x90]
lea ecx, [esp + 0x18]
push ecx
push str.ACDBrowser
push edx
call dword [sym.imp.USER32.dll_GetClassInfoA]
test eax, eax
mov ebp, 4
jne 0x40a491
mov eax, dword [esi + 0x90]
mov ecx, dword [esp + 0x1ac]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], ebx
push edx
mov dword [esp + 0x20], 0x40a330
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], 0x10
mov dword [esp + 0x3c], 0x4eba
mov dword [esp + 0x40], str.ACDBrowser
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x40a79e
mov edi, dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
push 0x4001
lea eax, [esp + 0x44]
push 0x160
push eax
push ebx
push 0x4caf4c
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebx
call edi
push 0x4000
lea ecx, [esp + 0x44]
push 0x160
push ecx
push ebx
push 0x4caf4c
mov dword [esi + 0x5c], eax
call edi
mov dword [esi + 0x58], eax
mov dword [esi + 0x60], ebx
call fcn.0043c1c0
mov dword [esi + 0x4b0], eax
mov eax, dword [0x4cab5c]
cmp eax, ebx
je 0x40a4f4
cmp dword [0x4caaf4], ebp
jne 0x40a4f4
xor eax, eax
jmp 0x40a4f9
mov eax, dword [0x4cab54]
mov dword [esi + 0x2c0], eax
mov edx, dword [0x4cab04]
mov ebp, 1
mov eax, 0x80000000
cmp edx, ebp
mov ecx, eax
jne 0x40a520
mov eax, dword [0x4caafc]
mov ecx, dword [0x4cab00]
mov edx, dword [esi + 0x90]
mov edi, dword [esp + 0x1a8]
push ebx
push edx
push ebx
push edi
push ecx
push eax
mov eax, dword [str.ACDSee_32]
push 0x80000000
push 0x80000000
push 0xcf0000
push eax
push str.ACDBrowser
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, ebx
mov dword [esi + 4], eax
jne 0x40a585
mov ecx, dword [esi + 0x90]
push ebx
push 0x205
push 0x204
push edi
push ecx
call fcn.0043cea0
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x190
ret 0x10
mov edx, dword [esi + 0xa0]
mov eax, dword [0x4cab7c]
mov dword [edx + 0x6c], eax
mov cl, byte [0x4caba0]
xor eax, eax
cmp cl, bl
mov ecx, dword [esi + 0xa0]
sete al
mov dword [ecx + 0x6b4], eax
mov eax, dword [0x4cab48]
cmp eax, ebx
jne 0x40a5c0
mov edx, dword [esi + 4]
push ebx
push edx
call dword [sym.imp.USER32.dll_SetMenu]
mov ecx, esi
call fcn.0040abd0
mov ecx, esi
call fcn.0041b9c0
mov ecx, esi
call fcn.0041b580
mov eax, dword [0x4cab04]
mov ecx, dword [esi + 4]
cmp eax, 2
mov eax, dword [esp + 0x1b0]
push eax
push ecx
jne 0x40a601
mov edx, dword [str.SoftwareACD_SystemsACDSee32]
push str.BrowserWndPos
push edx
call fcn.0043c280
add esp, 0x10
jmp 0x40a607
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 4]
push ebp
push ebx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esi + 8]
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
mov edi, dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov dword [esi + 0x48c], ebp
mov dword [esi + 0x450], ebp
mov dword [esi + 0x46c], ebp
mov edx, dword [esi + 0x90]
push 0xcb
push edx
call edi
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x90]
push 0xd1
push eax
call edi
mov ecx, dword [esi + 0x90]
push 0xd4
push ecx
mov dword [esi + 0x3c], eax
call edi
mov edx, dword [esi + 0x90]
push 0xca
push edx
mov dword [esi + 0x40], eax
call edi
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x90]
push 0xd5
push eax
call edi
mov ecx, dword [esi + 0x90]
mov edi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0xc1
push ecx
mov dword [esi + 0x48], eax
call edi
mov edx, dword [esi + 0x90]
push 0xc3
push edx
mov dword [esi + 0x98], eax
call edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push ebx
push ebx
push ebx
push ebx
mov dword [esi + 0x94], eax
call edi
push ebx
push ebx
push ebx
push ebx
mov dword [esi + 0x6c], eax
call edi
push ebx
push ebp
push ebx
push ebx
mov dword [esi + 0x70], eax
call edi
push ebx
push ebx
push ebx
push ebx
mov dword [esi + 0x80], eax
call edi
push ebx
mov dword [esi + 0x84], eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
mov eax, dword [0x4caec8]
cmp eax, ebx
je 0x40a719
mov eax, dword [0x4caed0]
mov ecx, dword [0x4caed4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
jmp 0x40a729
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x3ff00000
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
call fcn.0044c9c0
add esp, 8
mov dword [esi + 0x64], eax
push edi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, esi
call fcn.00419590
cmp dword [0x4cab58], ebx
je 0x40a75c
mov ecx, esi
call fcn.00418850
cmp dword [0x4cae58], ebx
je 0x40a76b
mov ecx, esi
call fcn.0041bcd0
mov ecx, dword [str.DC210_32.dll]
push ecx
call fcn.00407d00
add esp, 4
xor edx, edx
cmp eax, ebx
mov dword [esi + 0x6f0], eax
mov eax, dword [esi + 0x4c]
sete dl
push edx
push 0x4f71
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov ecx, esi
call fcn.0041a750
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x190
ret 0x10