Function at 0x523d48
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x1e67
push 0
push 0
dec ecx
jne 0x523d51
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
call fcn.00405474
lea eax, [ebp - 0xc]
call fcn.00405474
xor eax, eax
push ebp
push 0x52434b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00521d84
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x524244
lea edi, [ebp - 0xf01c]
lea ebx, [ebp - 0xf01c]
mov esi, 4
mov word [edi], si
mov eax, dword [ebp - 8]
call fcn.004050bc
push eax
call sub.kernel32.dll_lstrlenW
add eax, eax
add esi, 2
add eax, esi
mov esi, eax
mov word [edi + 2], si
mov eax, dword [ebp - 0xc]
call fcn.004050bc
push eax
call sub.kernel32.dll_lstrlenW
add eax, eax
add esi, 2
add eax, esi
mov esi, eax
mov eax, dword [ebp - 8]
call fcn.004050bc
push eax
movzx eax, word [edi]
lea eax, [ebp + eax - 0xf01c]
push eax
call sub.kernel32.dll_lstrcpyW
mov eax, dword [ebp - 0xc]
call fcn.004050bc
push eax
movzx eax, word [edi + 2]
lea eax, [ebp + eax - 0xf01c]
push eax
call sub.kernel32.dll_lstrcpyW
mov dword [ebp - 0xf02c], 0x20120123
mov dword [ebp - 0xf028], 0x3002
mov dword [ebp - 0xf024], esi
xor eax, eax
mov dword [ebp - 0xf020], eax
lea edx, [ebp - 0xf02c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x448]
mov ecx, 0x7530
call fcn.004f7850
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x524244
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.004bb078
call fcn.004932f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.004bb078
call fcn.004932d0
lea edx, [ebp - 0xf02c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x448]
mov ecx, 0x7530
call fcn.004f7548
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x524231
cmp dword [ebp - 0xf028], 0x3002
je 0x523ebf
mov dword [ebp - 0x10], 0x4e23
jmp 0x524231
mov eax, dword [ebp - 0xf020]
test eax, eax
je 0x523ed1
mov dword [ebp - 0x10], eax
jmp 0x524231
cmp dword [ebp - 0xf024], 0
je 0x524231
lea eax, [ebp - 0x14]
movzx edx, word [ebx + 0x24]
lea edx, [ebp + edx - 0xf01c]
call fcn.00404fc4
lea eax, [ebp - 0x18]
movzx edx, word [ebx + 0x26]
lea edx, [ebp + edx - 0xf01c]
call fcn.00404fc4
lea eax, [ebp - 0x1c]
movzx edx, word [ebx + 0x28]
lea edx, [ebp + edx - 0xf01c]
call fcn.00404fc4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov edx, dword [ebp - 0x14]
call fcn.004a68a4
push 0x4410
push 0x2b4
lea eax, [ebp - 0xf2e0]
push eax
mov eax, dword [ebx]
push eax
mov eax, dword [ebp - 0x18]
call fcn.004050bc
push eax
call sub.shell32.dll_SHGetFileInfoW_1
test eax, eax
je 0x523f5c
mov eax, dword [ebp - 0xf2e0]
push eax
call sub.user32.dll_DestroyIcon
jmp 0x523f64
xor eax, eax
mov dword [ebp - 0xf2dc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.004bb078
call fcn.004baa84
mov esi, eax
mov edx, dword [ebp - 0x18]
mov eax, esi
call fcn.004ba91c
lea ecx, [ebp - 0xf2e8]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
call fcn.004f30ec
mov edx, dword [ebp - 0xf2e8]
lea eax, [ebp - 0xf2e4]
call fcn.00405040
mov edx, dword [ebp - 0xf2e4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xf2ec]
lea edx, [ebp - 0xf0cc]
mov ecx, 0x50
call fcn.00405024
mov edx, dword [ebp - 0xf2ec]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0xf2f4]
lea eax, [ebx + 0x1c]
call fcn.004f2f14
mov edx, dword [ebp - 0xf2f4]
lea eax, [ebp - 0xf2f0]
call fcn.00405040
mov edx, dword [ebp - 0xf2f0]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0xf2fc]
lea eax, [ebx + 0xc]
call fcn.004f2f14
mov edx, dword [ebp - 0xf2fc]
lea eax, [ebp - 0xf2f8]
call fcn.00405040
mov edx, dword [ebp - 0xf2f8]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0xf304]
mov eax, dword [ebx]
call fcn.004f2fbc
mov edx, dword [ebp - 0xf304]
lea eax, [ebp - 0xf300]
call fcn.00405040
mov edx, dword [ebp - 0xf300]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 4]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf30c]
mov eax, 8
call fcn.00409920
lea eax, [ebp - 0xf30c]
push eax
mov eax, dword [ebx + 8]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf310]
mov eax, 8
call fcn.00409920
mov edx, dword [ebp - 0xf310]
pop eax
call fcn.00404a00
mov edx, dword [ebp - 0xf30c]
lea eax, [ebp - 0xf308]
call fcn.00405040
mov edx, dword [ebp - 0xf308]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf318]
mov eax, 8
call fcn.00409920
mov edx, dword [ebp - 0xf318]
lea eax, [ebp - 0xf314]
call fcn.00405040
mov edx, dword [ebp - 0xf314]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x20]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf320]
mov eax, 8
call fcn.00409920
lea eax, [ebp - 0xf320]
push eax
mov eax, dword [ebx + 0x1c]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf324]
mov eax, 8
call fcn.00409920
mov edx, dword [ebp - 0xf324]
pop eax
call fcn.00404a00
mov edx, dword [ebp - 0xf320]
lea eax, [ebp - 0xf31c]
call fcn.00405040
mov edx, dword [ebp - 0xf31c]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x20]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf32c]
mov eax, 8
call fcn.00409920
lea eax, [ebp - 0xf32c]
push eax
mov eax, dword [ebx + 0x1c]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf330]
mov eax, 8
call fcn.00409920
mov edx, dword [ebp - 0xf330]
pop eax
call fcn.00404a00
mov edx, dword [ebp - 0xf32c]
lea eax, [ebp - 0xf328]
call fcn.00405040
mov edx, dword [ebp - 0xf328]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x18]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf338]
mov eax, 8
call fcn.00409920
lea eax, [ebp - 0xf338]
push eax
mov eax, dword [ebx + 0x14]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf33c]
mov eax, 8
call fcn.00409920
mov edx, dword [ebp - 0xf33c]
pop eax
call fcn.00404a00
mov edx, dword [ebp - 0xf338]
lea eax, [ebp - 0xf334]
call fcn.00405040
mov edx, dword [ebp - 0xf334]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov ecx, dword [ebp - 0xf2dc]
xor edx, edx
mov eax, esi
call fcn.00492dcc
jmp 0x523e81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.004bb078
call fcn.004934cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x524355
lea eax, [ebp - 0xf33c]
mov edx, 2
call fcn.00404754
lea eax, [ebp - 0xf334]
call fcn.00404e5c
lea eax, [ebp - 0xf330]
mov edx, 2
call fcn.00404754
lea eax, [ebp - 0xf328]
call fcn.00404e5c
lea eax, [ebp - 0xf324]
mov edx, 2
call fcn.00404754
lea eax, [ebp - 0xf31c]
call fcn.00404e5c
lea eax, [ebp - 0xf318]
call fcn.00404730
lea eax, [ebp - 0xf314]
call fcn.00404e5c
lea eax, [ebp - 0xf310]
mov edx, 2
call fcn.00404754
lea eax, [ebp - 0xf308]
call fcn.00404e5c
lea eax, [ebp - 0xf304]
call fcn.00404730
lea eax, [ebp - 0xf300]
call fcn.00404e5c
lea eax, [ebp - 0xf2fc]
call fcn.00404730
lea eax, [ebp - 0xf2f8]
call fcn.00404e5c
lea eax, [ebp - 0xf2f4]
call fcn.00404730
lea eax, [ebp - 0xf2f0]
mov edx, 2
call fcn.00404e74
lea eax, [ebp - 0xf2e8]
call fcn.00404730
lea eax, [ebp - 0xf2e4]
call fcn.00404e5c
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00404e74
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404e74
ret