Function at 0x41e510
Capabilities:
Get file system object information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xbc8
mov eax, dword [0x493008]
xor eax, esp
mov dword [esp + 0xbc4], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0xbd8]
push edi
mov edi, ecx
mov ebx, dword [esi + 4]
mov ecx, ebx
mov eax, dword [esi + 8]
sub ecx, 0xa1
je 0x41ec1c
sub ecx, 0x9f5f
je 0x41eae1
sub ecx, 1
je 0x41e624
cmp eax, 0xfffffdee
jne case.0x41e63b.176
push 0x200
lea eax, [esp + 0x854]
push 0
push eax
call fcn.00425950
add esp, 0xc
test byte [esi + 0xb4], 1
je 0x41e59f
push 0
push 0x50
push 0x5634ac
lea eax, [esi + 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCompactPathExW]
xor eax, eax
jmp 0x41ede9
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [esp + 0x850]
push 0x100
push eax
push ebx
push dword [0x560844]
call edi
test eax, eax
jne 0x41e5d5
push 0x100
lea eax, [esp + 0x854]
push eax
push ebx
push dword [0x560a58]
call edi
add esi, 0x10
lea edi, [esp + 0x850]
mov ecx, 0x50
sub edi, esi
lea eax, [ecx + 0xb0]
test eax, eax
je 0x41e61a
movzx eax, word [esi + edi]
mov edx, eax
test ax, ax
je 0x41e613
mov word [esi], dx
add esi, 2
sub ecx, 1
jne 0x41e5e6
sub esi, 2
xor eax, eax
mov word [esi], ax
jmp 0x41ede9
test ecx, ecx
jne 0x41e61a
sub esi, 2
xor eax, eax
mov word [esi], ax
jmp 0x41ede9
add eax, 0xb1
cmp eax, 0xaf
ja case.0x41e63b.176
movzx eax, byte [eax + 0x41ee24]
jmp dword [eax*4 + 0x41ee04]
mov dword [0x55e7a8], 0xa001
xor eax, eax
jmp 0x41ede9
push ecx
mov edx, esi
call fcn.00413b60
add esp, 4
xor eax, eax
jmp 0x41ede9
mov ecx, dword [0x561c6c]
mov edx, esi
call fcn.00413bd0
xor eax, eax
jmp 0x41ede9
mov eax, dword [esi + 0xc]
mov ebx, dword [0x561c6c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x104b
push ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 4
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je case.0x41e63b.176
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 4]
mov edi, dword [eax]
lea eax, [esp + 0x10]
push eax
push 0
push 0x4809ec
push esi
push 1
push ebx
call dword [sym.imp.USER32.dll_GetParent]
push eax
push dword [esi + 4]
mov eax, dword [edi + 0x28]
call eax
test eax, eax
js case.0x41e63b.176
push 8
call fcn.00422d1a
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
push eax
push 7
push esi
mov dword [esi], vtable.CDropSource.0
mov dword [esi + 4], 1
push dword [esp + 0x1c]
call dword [sym.imp.ole32.dll_DoDragDrop]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
call eax
mov eax, dword [esi]
push esi
mov eax, dword [eax + 8]
cmp eax, fcn.00414d80
jne 0x41e731
call fcn.00414d80
xor eax, eax
jmp 0x41ede9
call eax
xor eax, eax
jmp 0x41ede9
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
and edx, 2
and ecx, 2
mov eax, edx
or ecx, 1
or eax, 1
cmp eax, ecx
je case.0x41e63b.176
test edx, edx
je 0x41e95f
mov ecx, dword [0x561c6c]
lea eax, [esp + 0x2b8]
push eax
or edx, 0xffffffff
mov dword [esp + 0x2bc], 1
mov dword [esp + 0x6d0], 0
call fcn.00413ce0
mov esi, dword [0x561c6c]
add esp, 4
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x1032
push esi
call edi
test eax, eax
je 0x41e7f7
push 2
push 0xffffffffffffffff
push 0x100c
push esi
call edi
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x104b
push esi
mov dword [esp + 0x2c], 4
mov dword [esp + 0x34], 0
call edi
test eax, eax
je 0x41e7f7
push 0x250
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x44]
push 1
push dword [eax]
push dword [eax + 4]
call dword [sym.imp.SHELL32.dll_SHGetDataFromIDListW]
cmp dword [esp + 0x78], 0xffffffff
jb 0x41e81d
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x2c0]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x41e81d
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x40
lea eax, [esp + 0xb54]
xor ecx, ecx
add ecx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x7c]
adc eax, 0
push eax
push ecx
call dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
lea eax, [esp + 0x2a8]
push eax
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
push 0x40
lea eax, [esp + 0xad4]
push eax
push 0
lea eax, [esp + 0x2b4]
push eax
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
push 0x40
lea eax, [esp + 0xa54]
push eax
push 0
lea eax, [esp + 0x2b4]
push eax
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
test byte [esp + 0x58], 0x20
mov eax, 0x48e6f0
mov edi, 0x48e6f4
cmove eax, edi
push eax
lea eax, [esp + 0x6d4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
test byte [esp + 0x58], 1
mov eax, 0x48e6f8
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
cmove eax, edi
push eax
lea eax, [esp + 0x6d4]
push eax
call esi
test byte [esp + 0x58], 2
mov eax, 0x48e6fc
cmove eax, edi
push eax
lea eax, [esp + 0x6d4]
push eax
call esi
test byte [esp + 0x58], 4
mov eax, 0x48e700
cmove eax, edi
push eax
lea eax, [esp + 0x6d4]
push eax
call esi
lea eax, [esp + 0x6d0]
push eax
lea eax, [esp + 0xa54]
push eax
lea eax, [esp + 0xad8]
push eax
lea eax, [esp + 0xb5c]
push eax
lea eax, [esp + 0x7e0]
push 0x48e704
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [esp + 0x7d0]
xor edx, edx
push eax
call fcn.004158e0
add esp, 4
xor eax, eax
jmp 0x41ede9
push 0
push 0
push 0x1004
push dword [0x561c6c]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
lea eax, [esp + 0x754]
push 0x48e724
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [esp + 0x750]
call fcn.004166e0
push 0x48d9fc
push 0x56493c
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x41e9b8
cmp dword [0x56343c], eax
mov eax, 0x2711
je 0x41e9bd
mov eax, 0x2712
lea ecx, [esp + 0x750]
push ecx
push eax
lea eax, [esp + 0x7d8]
push 0x40
push eax
call fcn.00415060
add esp, 0x10
lea eax, [esp + 0x7d0]
xor edx, edx
push eax
call fcn.004158e0
add esp, 4
xor eax, eax
jmp 0x41ede9
cmp dword [0x5633f0], 0
je case.0x41e63b.176
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x1032
push dword [0x561c6c]
call esi
test eax, eax
je case.0x41e63b.176
mov ecx, 0x12
call fcn.00418360
test eax, eax
je 0x41ea41
push 0
push 0x19c52
push 0x111
push edi
call esi
xor eax, eax
jmp 0x41ede9
mov ecx, 0x10
call fcn.00418360
push 0
test eax, eax
je 0x41ea65
push 0x19c42
push 0x111
push edi
call esi
xor eax, eax
jmp 0x41ede9
push 0x19c41
push 0x111
push edi
call esi
xor eax, eax
jmp 0x41ede9
mov ecx, 0x12
call fcn.00418360
test eax, eax
je 0x41eaa1
push 0
push 0x19c52
push 0x111
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x41ede9
mov ecx, 0x10
call fcn.00418360
push 0
test eax, eax
je 0x41eac9
push 0x19c42
push 0x111
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x41ede9
push 0x19c41
push 0x111
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x41ede9
cmp eax, 0xfffffcd9
je 0x41eb3d
cmp eax, 0xfffffcde
jne case.0x41e63b.176
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x40d
push dword [0x561b84]
mov dword [esp + 0x2c], 0x20
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [esp + 0x3c]
mov esi, dword [sym.imp.ole32.dll_CoTaskMemFree]
push dword [edi]
call esi
mov eax, dword [edi + 4]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
call eax
push edi
call esi
xor eax, eax
jmp 0x41ede9
push 0x2b4
lea eax, [esp + 0x2bc]
push 0
push eax
call fcn.00425950
mov edi, dword [esi + 0x2c]
add esp, 0xc
test edi, edi
je case.0x41e63b.176
test byte [esi + 0xc], 1
mov ebx, dword [sym.imp.SHLWAPI.dll_StrRetToBufW]
je 0x41eba8
mov eax, dword [esi + 0x18]
lea edx, [esp + 0x850]
mov ebp, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
push edx
push 0
push ebp
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x2c]
call eax
test eax, eax
jne 0x41eba8
push dword [esp + 0x10]
lea eax, [esp + 0x854]
push dword [esp + 0x18]
push ebp
push eax
call ebx
test byte [esi + 0xc], 6
je 0x41ec0e
mov eax, dword [edi + 4]
lea edx, [esp + 0x850]
mov ebp, dword [edi]
push edx
push 0x8000
mov ecx, dword [eax]
push ebp
push eax
mov eax, dword [ecx + 0x2c]
call eax
test eax, eax
jne 0x41ebe2
push 0x100
lea eax, [esp + 0x5c]
push eax
push ebp
lea eax, [esp + 0x85c]
push eax
call ebx
push 0x4001
push 0x2b4
lea eax, [esp + 0x2c0]
push eax
push 0
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [esp + 0x2bc]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
or dword [esi + 0xc], 0x10000000
xor eax, eax
jmp 0x41ede9
cmp eax, 0xfffffd3d
ja 0x41ecb7
je 0x41ecad
cmp eax, 0xfffffd30
jne case.0x41e63b.176
mov edi, dword [esi + 0xc]
cmp edi, 0xf
jae case.0x41e63b.176
push 0x200
lea eax, [esp + 0x854]
push 0
push eax
call fcn.00425950
add esp, 0xc
lea ecx, [edi + edi*4]
mov ecx, dword [ecx*4 + 0x55e7b4]
lea edx, [esp + 0x850]
push 0x100
call fcn.00414fe0
mov edx, dword [esi + 0x24]
lea eax, [esp + 0x854]
mov ecx, dword [esi + 0x28]
add esp, 4
push 0x100
push eax
call fcn.0040d830
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
movups xmm0, xmmword [eax*4 + 0x55e7b0]
movups xmmword [esi + 0x10], xmm0
mov eax, dword [eax*4 + 0x55e7c0]
mov dword [esi + 0x20], eax
mov eax, 1
jmp 0x41ede9
cmp eax, 0xfffffd40
ja 0x41ed73
je 0x41ed35
cmp eax, 0xfffffd3e
je 0x41ecad
cmp eax, 0xfffffd3f
jne case.0x41e63b.176
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x418
push dword [0x561b48]
call edi
mov esi, eax
test esi, esi
jle 0x41ed06
nop
push 0
push 0
push 0x416
push dword [0x561b48]
call edi
sub esi, 1
jne 0x41ecf0
sub esp, 8
push str.1_2_3_4_5_0_8
call fcn.00415a70
add esp, 0xc
test eax, eax
jne case.0x41e63b.176
push 0x55e7b0
push 6
push 0x444
push dword [0x561b48]
call edi
xor eax, eax
jmp 0x41ede9
sub esp, 8
call fcn.00416d00
add esp, 8
push 0x48d9fc
push 0x56493c
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x41ed61
cmp dword [0x56343c], eax
mov eax, 0xe
je 0x41ed66
mov eax, 0xd
push eax
call fcn.00415c10
add esp, 4
xor eax, eax
jmp 0x41ede9
cmp eax, 0xfffffff4
jne case.0x41e63b.176
mov eax, dword [esi + 0xc]
xor ecx, ecx
sub eax, 1
je 0x41ede2
sub eax, 0x10000
jne 0x41ede7
cmp byte [0x56149d], cl
je 0x41eda1
call fcn.004019e0
test al, al
je 0x41eda1
mov ecx, 1
jmp 0x41eda3
xor ecx, ecx
call fcn.004183d0
cmp byte [0x56149d], 0
mov dword [esi + 0x48], eax
je 0x41edd1
call fcn.004019e0
test al, al
je 0x41edd1
mov ecx, 1
call fcn.0040d9b0
mov dword [esi + 0x3c], eax
mov ecx, 0x800000
jmp 0x41ede7
xor ecx, ecx
call fcn.0040d9b0
mov dword [esi + 0x3c], eax
mov ecx, 0x800000
jmp 0x41ede7
mov ecx, 0x20
mov eax, ecx
mov ecx, dword [esp + 0xbd4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00422d0c
add esp, 0xbc8
ret