Function at 0x453450
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a3b40
mov eax, dword fs:[0]
push eax
sub esp, 0x4e0
mov eax, dword [0x4c9614]
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 ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x40]
xor esi, esi
cmp eax, esi
sete cl
mov dword [ebp - 0x4e4], edx
test cl, cl
jne 0x4534e3
cmp edx, esi
je 0x4534e3
push ecx
mov ecx, esp
mov dword [ebp - 0x4e0], esp
mov dword [ecx], eax
cmp eax, esi
je 0x4534b0
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
lea edi, [ebp - 0x4dc]
call fcn.0041a0a0
add esp, 4
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x4dc]
cmp eax, esi
sete cl
test cl, cl
je 0x453503
mov dword [ebp - 4], 0xffffffff
cmp eax, esi
je 0x4534e3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor al, al
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.0047e6eb
mov esp, ebp
pop ebp
ret 0xc
push 0x4cdbc0
push 0x5c
call fcn.00480bb6
add esp, 8
mov dword [ebp - 0x4e0], eax
mov byte [ebp - 4], 1
cmp eax, esi
je 0x453528
push eax
call fcn.004517e0
mov esi, eax
mov byte [ebp - 4], 0
mov dword [ebp - 0x4e0], esi
test esi, esi
jne 0x453547
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4dc]
test eax, eax
jmp 0x4534d9
push 0x2b0
lea eax, [ebp - 0x4d4]
push 0
push eax
mov dword [ebp - 0x4d8], 0
call fcn.004845b0
mov edi, dword [ebp - 0x4e4]
add esp, 0xc
push 0x309
push 0x2b4
lea ecx, [ebp - 0x4d8]
push ecx
push 0
push edi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
xor edx, edx
push 0x208
push edx
lea eax, [ebp - 0x21e]
push eax
mov word [ebp - 0x220], dx
call fcn.004845b0
add esp, 0xc
cmp byte [ebp + 0x10], 0
je 0x4535bd
lea ecx, [ebp - 0x220]
push ecx
push edi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
jne 0x4535d9
push SysReAllocString
lea edx, [ebp - 0x4cc]
push edx
mov ecx, 0x104
lea edx, [ebp - 0x220]
call fcn.004516d0
call fcn.00407680
cmp byte [eax + 0xc], 0
je 0x4535f8
mov eax, dword [eax]
cmp eax, 0x64
je 0x4535f8
push 0x64
push eax
push 0xa
call dword [sym.imp.KERNEL32.dll_MulDiv]
jmp 0x4535fd
mov eax, 0xa
imul eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x4dc]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [ebp - 0x4dc]
mov dword [ebp - 0x4e8], esp
test eax, eax
je 0x453625
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.00451910
mov ecx, dword [ebp - 0x4e4]
push ecx
lea edi, [ebx + 0x2c]
call dword [sym.imp.SHELL32.dll_ILClone]
mov dword [ebp - 0x4e8], eax
mov dword [esi + 0x58], edi
mov eax, dword [esi + 0x54]
test eax, eax
je 0x453652
push eax
call dword [sym.imp.SHELL32.dll_ILFree]
mov edx, dword [ebp - 0x4e8]
mov dword [esi + 0x54], edx
mov eax, dword [esi + 0x30]
test eax, eax
je 0x45366f
mov ecx, dword [ebp - 0x4d8]
mov dword [eax + 0xc], ecx
mov byte [eax + 0x14], 1
cmp dword [ebx + 0x3c], 0
je 0x45368d
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x453686
push 0x80004003
call fcn.0047e430
call fcn.004068a0
jmp 0x45368f
xor eax, eax
push eax
lea edx, [ebp - 0x220]
push edx
push esi
call fcn.00451c30
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x4536bc
push eax
mov eax, dword [ebp - 0x4e4]
push eax
call dword [sym.imp.SHELL32.dll_ILIsEqual]
test eax, eax
setne al
jmp 0x4536be
xor al, al
cmp al, 1
lea edx, [ebp - 0x4e0]
sete cl
push edx
lea edi, [ebx + 0x50]
mov byte [esi + 0x50], cl
call fcn.00453e80
mov ebx, dword [ebx + 0x38]
test ebx, ebx
jne 0x4536e6
push 0x80004003
call fcn.0047e430
mov ecx, dword [ebp - 0x4dc]
mov eax, dword [ebx]
mov edx, dword [eax + 0xf4]
push ecx
push ebx
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4dc]
test eax, eax
je 0x453711
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov al, 1
jmp 0x4534e5