Function at 0x4f9dd4
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x37
push 0
push 0
dec ecx
jne 0x4f9ddc
push ecx
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x4fa486
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [esi + 0x390]
mov eax, dword [esi + 0x388]
call fcn.004f93dc
mov ebx, eax
push 0
xor ecx, ecx
xor edx, edx
mov eax, ebx
call fcn.004f86d0
mov edi, eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4ed38c]
call fcn.004dad50
mov dword [ebp - 0x10], eax
lea edx, [ebp - 8]
mov eax, dword [esi + 0x394]
call fcn.0040a34c
lea edx, [ebp - 0xc]
mov eax, dword [esi + 0x394]
call fcn.0040a3d4
xor eax, eax
push ebp
push 0x4fa444
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, edi
call fcn.004ee400
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 0x10]
call fcn.004ed6cc
mov edx, dword [ebp - 0x174]
lea eax, [esi + 0x398]
call fcn.004049b4
mov edx, dword [esi + 0x398]
mov eax, dword [esi + 0x308]
call fcn.0046a030
mov eax, dword [ebp - 0x10]
call fcn.004ed6f4
cmp al, 0x46
jne 0x4f9f7f
lea edx, [ebp - 4]
mov eax, dword [esi + 0x398]
call fcn.0040a40c
push 0x4510
push 0x160
lea eax, [ebp - 0x170]
push eax
push 0
lea eax, [ebp - 0x178]
mov ecx, dword [ebp - 4]
mov edx, 0x4fa49c
call fcn.00404c7c
mov eax, dword [ebp - 0x178]
call fcn.00404e30
push eax
call sub.shell32.dll_SHGetFileInfoA
mov eax, dword [esi + 0x304]
mov eax, dword [eax + 0x168]
call fcn.0042dff0
mov edx, dword [ebp - 0x170]
call fcn.00432028
cmp byte [ebp - 0x60], 0
jne 0x4f9f3f
lea edx, [ebp - 0x17c]
mov eax, dword [ebp - 4]
call fcn.0040926c
lea eax, [ebp - 0x17c]
mov edx, 0x4fa4a8
call fcn.00404c38
mov edx, dword [ebp - 0x17c]
mov eax, dword [esi + 0x310]
call fcn.0046a030
jmp 0x4f9f63
lea eax, [ebp - 0x180]
lea edx, [ebp - 0x60]
mov ecx, 0x50
call fcn.00404be0
mov edx, dword [ebp - 0x180]
mov eax, dword [esi + 0x310]
call fcn.0046a030
mov eax, dword [esi + 0x304]
mov dl, 1
call fcn.00469f20
mov eax, dword [esi + 0x378]
xor edx, edx
call fcn.00469f20
jmp 0x4f9fb5
mov eax, dword [ebp - 0x10]
call fcn.004ed6f4
cmp al, 0x44
jne 0x4f9fb5
mov eax, dword [esi + 0x304]
xor edx, edx
call fcn.00469f20
mov eax, dword [esi + 0x378]
mov dl, 1
call fcn.00469f20
mov eax, dword [esi + 0x310]
mov edx, 0x4fa4b8
call fcn.0046a030
mov edx, dword [esi + 0x390]
mov eax, dword [esi + 0x320]
call fcn.0046a030
mov eax, dword [esi + 0x324]
mov edx, dword [ebp - 8]
call fcn.0046a030
mov eax, dword [ebp - 0x10]
call fcn.004ed6f4
cmp al, 0x46
sete dl
mov eax, dword [esi + 0x32c]
call fcn.00469f20
mov eax, dword [esi + 0x32c]
mov dl, byte [eax + 0x57]
mov eax, dword [esi + 0x328]
call fcn.00469f20
mov eax, dword [esi + 0x32c]
cmp byte [eax + 0x57], 0
je 0x4fa0e5
mov eax, dword [ebp - 0x10]
call fcn.004ed620
cmp eax, 0x400
jge 0x4fa058
mov eax, dword [ebp - 0x10]
call fcn.004ed620
lea edx, [ebp - 0x184]
call fcn.00409afc
lea eax, [ebp - 0x184]
mov edx, 0x4fa4cc
call fcn.00404c38
mov edx, dword [ebp - 0x184]
mov eax, dword [esi + 0x32c]
call fcn.0046a030
jmp 0x4fa0e5
mov eax, dword [ebp - 0x10]
call fcn.004ed620
mov dword [ebp - 0x190], eax
fild dword [ebp - 0x190]
fdiv dword [0x4fa4d4]
call fcn.004030c8
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], edx
fild qword [ebp - 0x198]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x18c]
call fcn.0040b75c
push dword [ebp - 0x18c]
push 0x4fa4e0
mov eax, dword [ebp - 0x10]
call fcn.004ed620
lea edx, [ebp - 0x19c]
call fcn.00409afc
push dword [ebp - 0x19c]
push 0x4fa4f0
lea eax, [ebp - 0x188]
mov edx, 4
call fcn.00404cf0
mov edx, dword [ebp - 0x188]
mov eax, dword [esi + 0x32c]
call fcn.0046a030
lea edx, [ebp - 0x1a0]
mov eax, dword [ebp - 0x10]
call fcn.004ed5f4
mov edx, dword [ebp - 0x1a0]
mov eax, dword [esi + 0x33c]
call fcn.0046a030
mov eax, dword [ebp - 0x10]
call fcn.004ed640
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x1a4]
mov eax, 0x4fa500
call fcn.0040cb28
mov edx, dword [ebp - 0x1a4]
mov eax, dword [esi + 0x340]
call fcn.0046a030
lea edx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x10]
call fcn.004ed794
mov edx, dword [ebp - 0x1a8]
mov eax, dword [esi + 0x348]
call fcn.0046a030
mov eax, dword [ebp - 0x10]
call fcn.004ed69c
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x1ac]
mov eax, 0x4fa500
call fcn.0040cb28
mov edx, dword [ebp - 0x1ac]
mov eax, dword [esi + 0x350]
call fcn.0046a030
mov eax, dword [ebp - 0x10]
call fcn.004ed7c0
mov byte [esi + 0x39c], al
mov dl, byte [esi + 0x39c]
mov eax, dword [esi + 0x35c]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [ebp - 0x10]
call fcn.004ed578
mov byte [esi + 0x39d], al
mov dl, byte [esi + 0x39d]
mov eax, dword [esi + 0x360]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, dword [ebp - 0x10]
call fcn.004ed6f4
cmp al, 0x46
jne 0x4fa37d
mov eax, dword [esi + 0x364]
mov dl, 1
call fcn.00469f20
mov eax, dword [esi + 0x368]
mov dl, 1
call fcn.00469f20
mov eax, dword [esi + 0x36c]
mov dl, 1
call fcn.00469f20
mov eax, dword [esi + 0x370]
mov dl, 1
call fcn.00469f20
mov eax, dword [esi + 0x374]
mov dl, 1
call fcn.00469f20
mov edx, 0x4fa514
mov eax, dword [ebp - 0x10]
call fcn.004e01f0
test al, al
je 0x4fa24b
mov eax, dword [esi + 0x36c]
mov edx, 0x4fa528
call fcn.0046a030
mov eax, dword [esi + 0x374]
mov edx, 0x4fa528
call fcn.0046a030
jmp 0x4fa29a
lea edx, [ebp - 0x1b0]
mov eax, dword [ebp - 0x10]
call fcn.004ed768
mov edx, dword [ebp - 0x1b0]
mov eax, dword [esi + 0x36c]
call fcn.0046a030
mov eax, dword [ebp - 0x10]
call fcn.004ed670
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x1b4]
mov eax, 0x4fa500
call fcn.0040cb28
mov edx, dword [ebp - 0x1b4]
mov eax, dword [esi + 0x374]
call fcn.0046a030
mov edx, 0x4fa514
mov eax, dword [ebp - 0x10]
call fcn.004e01f0
xor al, 1
mov byte [esi + 0x39e], al
mov dl, byte [esi + 0x39e]
mov eax, dword [esi + 0x364]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
lea edx, [ebp - 0x1b8]
mov eax, dword [ebp - 0x10]
call fcn.004ed768
cmp dword [ebp - 0x1b8], 0
je 0x4fa2fe
lea edx, [ebp - 0x1bc]
mov eax, dword [ebp - 0x10]
call fcn.004ed768
mov eax, dword [ebp - 0x1bc]
mov edx, dword [ebx + 0x28]
call fcn.00409474
test eax, eax
je 0x4fa2fe
xor edx, edx
jmp 0x4fa300
mov dl, 1
mov eax, dword [esi + 0x364]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [esi + 0x364]
mov edx, dword [eax]
call dword [edx + 0x50]
mov ebx, eax
xor bl, 1
mov eax, dword [esi + 0x364]
mov edx, dword [eax]
call dword [edx + 0x50]
mov edx, eax
mov eax, dword [esi + 0x368]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [esi + 0x364]
mov edx, dword [eax]
call dword [edx + 0x50]
mov edx, eax
mov eax, dword [esi + 0x36c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [esi + 0x364]
mov edx, dword [eax]
call dword [edx + 0x50]
mov edx, eax
mov eax, dword [esi + 0x370]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [esi + 0x364]
mov edx, dword [eax]
call dword [edx + 0x50]
mov edx, eax
mov eax, dword [esi + 0x374]
mov ecx, dword [eax]
call dword [ecx + 0x64]
jmp 0x4fa3c7
mov byte [esi + 0x39e], 0
mov eax, dword [esi + 0x364]
xor edx, edx
call fcn.00469f20
xor ebx, ebx
mov eax, dword [esi + 0x368]
xor edx, edx
call fcn.00469f20
mov eax, dword [esi + 0x36c]
xor edx, edx
call fcn.00469f20
mov eax, dword [esi + 0x370]
xor edx, edx
call fcn.00469f20
mov eax, dword [esi + 0x374]
xor edx, edx
call fcn.00469f20
cmp byte [esi + 0x39c], 0
jne 0x4fa3d4
test bl, bl
je 0x4fa3d8
xor edx, edx
jmp 0x4fa3da
mov dl, 1
mov eax, dword [esi + 0x308]
mov ecx, dword [eax]
call dword [ecx + 0x64]
cmp byte [esi + 0x39c], 0
jne 0x4fa3f2
test bl, bl
je 0x4fa3f6
xor edx, edx
jmp 0x4fa3f8
mov dl, 1
mov eax, dword [esi + 0x360]
mov ecx, dword [eax]
call dword [ecx + 0x64]
cmp byte [esi + 0x39c], 0
jne 0x4fa410
test bl, bl
je 0x4fa414
xor edx, edx
jmp 0x4fa416
mov dl, 1
mov eax, dword [esi + 0x364]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [esi + 0x37c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fa44b
mov eax, dword [ebp - 0x10]
call fcn.00403b10
ret