Function at 0x4b8260
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fb53a
mov eax, dword fs:[0]
push eax
sub esp, 0x308
mov eax, dword [0x6b000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2c8], edi
mov ecx, dword [edi + 0xe7c]
test ecx, ecx
je 0x4b8a4d
mov eax, dword [ecx]
lea edx, [ebp - 0x314]
push edx
mov eax, dword [eax + 0x208]
call eax
mov ecx, dword [edi + 0xe7c]
lea edx, [ebp - 0x314]
push edx
mov esi, dword [eax + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x2d8], esi
mov eax, dword [eax + 0x214]
call eax
mov ecx, dword [edi + 0xe7c]
or edx, 0xffffffff
mov dword [ebp - 0x2e0], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0x2dc], eax
test ecx, ecx
je 0x4b836c
mov eax, dword [ecx + 0x5f0]
add ecx, 0x5f0
mov dword [ebp - 0x2e0], 0
xor esi, esi
mov eax, dword [eax + 0xc]
call eax
test eax, eax
jle 0x4b835e
mov ecx, dword [edi + 0xe7c]
add ecx, 0x5f0
push esi
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
mov ecx, eax
test ecx, ecx
je 0x4b833e
mov eax, dword [ecx]
mov eax, dword [eax + 0x12c]
call eax
test al, al
je 0x4b833e
inc dword [ebp - 0x2e0]
mov ecx, dword [edi + 0xe7c]
inc esi
add ecx, 0x5f0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
cmp esi, eax
jl 0x4b8311
mov edx, dword [ebp - 0x2e0]
jmp 0x4b8360
xor edx, edx
mov esi, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x4b8384
movd xmm1, esi
movd xmm0, eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
jmp 0x4b8387
xorps xmm1, xmm1
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ebp - 0x2ec], eax
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4b8a68
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 4], 1
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4b8a72
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x2d0], esi
mov byte [ebp - 4], 3
xor eax, eax
mov dword [ebp - 0x2f0], eax
xor ecx, ecx
mov dword [ebp - 0x2f4], eax
mov eax, dword [ebp - 0x2ec]
add eax, 0xffffffec
mov dword [edi + 0xbac], 0
test eax, eax
mov dword [ebp - 0x2ec], 0
cmovle eax, ecx
mov dword [ebp - 0x2dc], eax
nop dword [eax]
cmp dword [edi + 0xbac], 1
je 0x4b89f2
cmp eax, dword [ebp - 0x2e0]
jg 0x4b89f2
cmp dword [0x6b8fa8], 1
je 0x4b89f2
mov eax, dword [ebp - 0x2c8]
xor edi, edi
mov ecx, dword [eax + 0xe7c]
test ecx, ecx
je 0x4b89c9
mov eax, dword [ecx + 0x5f0]
add ecx, 0x5f0
mov dword [ebp - 0x2cc], edi
mov eax, dword [eax + 0xc]
call eax
test eax, eax
jle 0x4b89c9
mov edx, edi
nop dword [eax]
mov eax, dword [ebp - 0x2c8]
push edx
mov ecx, dword [eax + 0xe7c]
mov eax, dword [ecx + 0x5f0]
add ecx, 0x5f0
mov eax, dword [eax]
call eax
mov dword [ebp - 0x2d8], eax
test eax, eax
je 0x4b84c0
mov edx, dword [eax]
mov ecx, eax
mov edx, dword [edx + 0x12c]
call edx
test al, al
je 0x4b84c0
inc edi
cmp edi, dword [ebp - 0x2dc]
je 0x4b84f2
mov eax, dword [ebp - 0x2c8]
inc dword [ebp - 0x2cc]
mov ecx, dword [eax + 0xe7c]
mov eax, dword [ecx + 0x5f0]
add ecx, 0x5f0
mov eax, dword [eax + 0xc]
call eax
mov edx, dword [ebp - 0x2cc]
cmp edx, eax
jl 0x4b8480
jmp 0x4b89c9
mov ecx, dword [ebp - 0x2d8]
mov al, byte [ecx + 0x628]
test al, al
je 0x4b850a
cmp al, 4
jne 0x4b89c9
cmp dword [0x6b0c54], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x124]
jne 0x4b8533
call eax
mov dword [ebp - 0x2f0], eax
test eax, eax
je 0x4b89c9
mov edx, dword [ebp - 0x2f4]
jmp 0x4b854b
call eax
mov edx, eax
mov dword [ebp - 0x2f4], edx
test edx, edx
je 0x4b89c9
mov eax, dword [ebp - 0x2f0]
cmp dword [0x6b0c54], 1
jne 0x4b85f2
lea ecx, [eax + 0x128]
push ecx
lea ecx, [ebp - 0x2fc]
call fcn.0040c2f0
mov byte [ebp - 4], 4
lea edi, [esi - 0x10]
mov edx, dword [eax]
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x4b85ce
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4b85b9
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x4b85b9
call fcn.0040c950
mov dword [ebp - 0x2cc], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4b85ae
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2cc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2d0], esi
jmp 0x4b85ce
push dword [edx - 0xc]
lea ecx, [ebp - 0x2d0]
push edx
call fcn.0040c9d0
mov esi, dword [ebp - 0x2d0]
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x2fc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4b8653
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4b8653
mov edx, dword [edx + 0xc]
lea edi, [esi - 0x10]
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x4b8653
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4b863e
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x4b863e
call fcn.0040c950
mov dword [ebp - 0x2cc], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4b8633
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2cc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2d0], esi
jmp 0x4b8653
push dword [edx - 0xc]
lea ecx, [ebp - 0x2d0]
push edx
call fcn.0040c9d0
mov esi, dword [ebp - 0x2d0]
push 0x18
call fcn.00560437
mov ecx, dword [ebp - 0x2c8]
add esp, 4
cmp dword [0x6b0c54], 1
mov edi, eax
lea eax, [ebp - 0x2d4]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x2e8]
movups xmmword [edi], xmm0
push eax
movq qword [edi + 0x10], xmm0
mov byte [edi + 4], 1
push edi
jne 0x4b86a2
mov eax, dword [ebp - 0x2f0]
push eax
call fcn.004b9080
mov ecx, eax
mov dword [ebp - 0x2cc], ecx
jmp 0x4b86b6
mov eax, dword [ebp - 0x2f4]
push eax
call fcn.004b8a80
mov ecx, eax
mov dword [ebp - 0x2cc], eax
test ecx, ecx
je 0x4b89be
mov eax, dword [ebp - 0x2c8]
cmp dword [eax + 0xbac], 0
jne 0x4b89be
cmp ecx, 1
je 0x4b86df
cmp ecx, 2
jne 0x4b897f
mov eax, dword [ebp - 0x2d8]
cmp byte [eax + 0x628], 4
jne 0x4b86fa
mov byte [eax + 0x628], 3
jmp 0x4b89be
push ecx
push 0x2e
lea ecx, [ebp - 0x2d0]
call fcn.004a3420
cmp eax, 0xffffffff
jne 0x4b87cb
lea eax, [ebp - 0x2d0]
mov edx, 0x6531e0
push eax
lea ecx, [ebp - 0x304]
call fcn.00435920
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [esi - 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x300], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x4b87a9
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4b8794
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4b878e
mov ecx, edx
call fcn.0040c950
mov dword [ebp - 0x2e4], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4b8783
mov esi, dword [ebp - 0x300]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2e4]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2d0], esi
jmp 0x4b87a9
mov eax, dword [ebp - 0x2e4]
push dword [eax - 0xc]
lea ecx, [ebp - 0x2d0]
push eax
call fcn.0040c9d0
mov esi, dword [ebp - 0x2d0]
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x304]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4b87cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x2b4
lea eax, [ebp - 0x2c4]
push 0
push eax
call fcn.00588800
add esp, 0xc
lea eax, [ebp - 0x2c4]
push 0x4011
push 0x2b4
push eax
push 0x80
push esi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea eax, [ebp - 0x308]
push eax
push 0x625880
push 2
call dword [sym.imp.SHELL32.dll_SHGetImageList]
test eax, eax
js 0x4b88c9
mov eax, dword [ebp - 0x308]
lea edx, [ebp - 0x2f8]
push edx
push 1
push dword [ebp - 0x2c0]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
test eax, eax
js 0x4b88c9
cmp dword [ebp - 0x2cc], 1
jne 0x4b8865
mov ecx, dword [ebp - 0x2c8]
push 1
push 0
push 0
push dword [ebp - 0x2f8]
call fcn.004b8060
mov dword [ebp - 0x2d4], eax
jmp 0x4b88c0
push 0x650a3c
mov edx, str.UnSupportPreview
lea ecx, [ebp - 0x30c]
call fcn.004db870
add esp, 4
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x2c8]
push 1
push dword [eax]
push 0
push dword [ebp - 0x2f8]
call fcn.004b8060
mov dword [ebp - 0x2d4], eax
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x30c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4b88c0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x2d4]
mov dword [edi + 0xc], eax
cmp dword [edi + 0xc], 0
jne 0x4b8971
push 0
push 0x40
push 0x40
push 1
push 0xe1
call dword [sym.imp.ycomuiu.dll_public:_static_struct_HINSTANCE______cdecl_DuiLib::CPaintManagerUI::GetInstance_void_]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
cmp dword [ebp - 0x2cc], 1
mov dword [ebp - 0x2e4], eax
jne 0x4b8916
mov ecx, dword [ebp - 0x2c8]
push 0
push 0
push 1
push eax
call fcn.004b8060
mov dword [ebp - 0x2d4], eax
jmp 0x4b8971
push 0x650a3c
mov edx, str.UnSupportPreview
lea ecx, [ebp - 0x310]
call fcn.004db870
add esp, 4
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x2c8]
push 0
push dword [eax]
push 1
push dword [ebp - 0x2e4]
call fcn.004b8060
mov dword [ebp - 0x2d4], eax
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x310]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4b8971
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [edi + 0x10], 0x8c
mov dword [edi + 0x14], 0x64
lea eax, [ebp - 0x2d4]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x2e8]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x2d8]
mov dword [edi], eax
mov eax, dword [ebp - 0x2c8]
cmp dword [eax + 4], 0
je 0x4b89be
cmp dword [eax + 0xbac], 0
jne 0x4b89be
push 0
push edi
push 0x412
mov ecx, eax
call dword [sym.imp.ycomuiu.dll_public:_long_int___thiscall_DuiLib::CWindowWnd::SendMessageW_unsigned_int__unsigned_int__long_int_]
push 0x18
push edi
call fcn.005603ff
add esp, 8
mov ecx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2dc]
inc ecx
mov edi, dword [ebp - 0x2c8]
inc eax
mov dword [ebp - 0x2ec], ecx
mov dword [ebp - 0x2dc], eax
cmp ecx, 0x37
jl 0x4b8420
mov eax, dword [edi + 0xb98]
test eax, eax
je 0x4b8a0d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0xb98], 0
mov byte [ebp - 4], 1
or edi, 0xffffffff
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4b8a2b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2e8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x4b8a4d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055f9be
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040b250
push 0x80004005
call fcn.0040b250
int3