Function at 0x40ab70
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x618d1f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a4
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
push eax
push 0xa1
mov ecx, dword [ebp - 0x10]
call fcn.005f3454
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x5c
call fcn.00402bf0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x10]
add ecx, 0x60
call fcn.00402bf0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10]
add ecx, 0x68
call fcn.00402bf0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x10]
add ecx, 0x6c
call fcn.00402bf0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x10]
add ecx, 0x74
call fcn.00402bf0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x10]
add ecx, 0x80
call fcn.00402bf0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x10]
add ecx, 0x84
call fcn.00402bf0
mov byte [ebp - 4], 7
push 0xa
mov ecx, dword [ebp - 0x10]
add ecx, 0x98
call fcn.00412340
mov byte [ebp - 4], 8
push 0xa
mov ecx, dword [ebp - 0x10]
add ecx, 0xb4
call fcn.00412340
mov byte [ebp - 4], 9
push 0xa
mov ecx, dword [ebp - 0x10]
add ecx, 0xd0
call fcn.00412340
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x10]
add ecx, 0xec
call fcn.004389b0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x10]
add ecx, 0x1a4
call fcn.004a2b30
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x10]
add ecx, 0x300
call fcn.00402bf0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x10]
add ecx, 0xb14
call fcn.00402bf0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x10]
add ecx, 0xb20
call fcn.00402bf0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x10]
add ecx, 0xb28
call fcn.0060e40a
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x10]
add ecx, 0xba4
call fcn.0040a1b0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x10]
add ecx, 0xbe0
call fcn.00402df0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x10]
add ecx, 0xc1c
call fcn.00402df0
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x10]
add ecx, 0xc58
call fcn.0040a1b0
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x10]
add ecx, 0xc94
call fcn.0040a1b0
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x10]
add ecx, 0xcd0
call fcn.005f1401
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x10]
add ecx, 0xcd8
call fcn.005f1401
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x10]
add ecx, 0xcf8
call fcn.00499fb0
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x10]
add ecx, 0xd88
call fcn.00499fb0
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x10]
add ecx, 0xe18
call fcn.00499fb0
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x10]
add ecx, 0xea8
call fcn.00499fb0
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x10]
mov dword [ecx], method.CDialog.virtual_0
push 0x110
push 0x160
lea edx, [ebp - 0x170]
push edx
push 0x80
push 0x64e338
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
xor eax, eax
mov al, byte [0x87f944]
and eax, 1
test eax, eax
jne 0x40adf0
mov cl, byte [0x87f944]
or cl, 1
mov byte [0x87f944], cl
push 0x4000
push 0x160
lea edx, [ebp - 0x170]
push edx
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov dword [0x87f96c], eax
xor eax, eax
mov al, byte [0x87f944]
and eax, 2
test eax, eax
jne 0x40ae1e
mov cl, byte [0x87f944]
or cl, 2
mov byte [0x87f944], cl
mov edx, dword [0x87f96c]
push edx
call fcn.005f1493
mov dword [0x87f948], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x87f948]
mov dword [eax + 0xb04], ecx
xor edx, edx
mov dl, byte [0x87f944]
and edx, 4
test edx, edx
jne 0x40ae68
mov al, byte [0x87f944]
or al, 4
mov byte [0x87f944], al
push 0x4001
push 0x160
lea ecx, [ebp - 0x170]
push ecx
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov dword [0x87f974], eax
xor edx, edx
mov dl, byte [0x87f944]
and edx, 8
test edx, edx
jne 0x40ae94
mov al, byte [0x87f944]
or al, 8
mov byte [0x87f944], al
mov ecx, dword [0x87f974]
push ecx
call fcn.005f1493
mov dword [0x87f93c], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [0x87f93c]
mov dword [edx + 0xb08], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
mov dword [ecx + 0xb10], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0xb0c], ecx
push 1
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0xb0c]
add ecx, 0x24
call fcn.00403930
xor ecx, ecx
mov cl, byte [eax]
neg ecx
sbb ecx, ecx
neg ecx
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x64], cl
push 2
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xb0c]
add ecx, 0x24
call fcn.00403930
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x60
call fcn.00405bf0
push 0x800
push 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x304
push ecx
call fcn.0047fea0
add esp, 0xc
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0xb0c]
add ecx, 0x24
call fcn.00403700
mov esi, eax
sub esi, 2
mov ecx, dword [ebp - 0x10]
add ecx, 0x60
call fcn.00402c20
sub esi, eax
sub esi, 1
push esi
mov ecx, dword [ebp - 0x10]
add ecx, 0x60
call fcn.00402c20
add eax, 3
push eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xb0c]
add ecx, 0x24
call fcn.00403930
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x304
push ecx
call fcn.0047ff00
add esp, 0xc
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x65], 0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x70], 0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x88], 0
mov dword [ecx + 0x8c], 0
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x90], 0
mov dword [edx + 0x94], 0
mov dword [0x87f988], 0
mov dword [0x87f98c], 0
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x66], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc