Function at 0x4508c0
Capabilities:
Get file system object information

Disassembly:
push 0xffffffffffffffff
push 0x4d4e36
mov eax, dword fs:[0]
push eax
mov eax, 0x49c8
call fcn.004c1c40
mov eax, dword [0x4ec0b4]
xor eax, esp
mov dword [esp + 0x49c4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ec0b4]
xor eax, esp
push eax
lea eax, [esp + 0x49dc]
mov dword fs:[0], eax
mov eax, dword [esp + 0x49ec]
inc dword [0x534c04]
mov ebp, ecx
mov dword [esp + 0x60], eax
xor ebx, ebx
mov dword [esp + 0x49e4], ebx
mov ecx, dword [ebp]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0xffffffffffffffff
push 0x100c
push ecx
call edi
push 1
mov ecx, 0x535cb0
mov dword [esp + 0x28], eax
call fcn.0047f420
push 0x1c4
call fcn.00475cc0
push eax
mov ecx, 0x535cb0
call fcn.0047f490
mov edx, dword [ebp]
push ebx
push ebx
push 0xb
push edx
call edi
mov ecx, ebp
call fcn.0044f600
push 0x4011
push 0x2b4
lea eax, [esp + 0x1538]
push eax
push ebx
push str.file
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ecx, dword [ebp]
push eax
push 1
push 0x1003
push ecx
call edi
mov ecx, 0x5404e0
call fcn.00407b80
lea edx, [esp + 0xcc]
push edx
mov ecx, 0x542618
call fcn.004153f0
cmp byte [esp + 0x150], bl
je 0x4509df
cmp dword [esp + 0x21c], ebx
je 0x4509df
mov eax, dword [esp + 0x1e0]
cmp eax, 3
je 0x4509d1
cmp eax, 2
jne 0x4509e6
mov eax, 4
mov dword [esp + 0x1e0], eax
jmp 0x4509e6
mov eax, dword [esp + 0x1e0]
sub eax, 1
mov dword [esp + 0xac], 4
mov ecx, 0x73
je 0x450a11
sub eax, 2
je 0x450a0a
sub eax, 1
jne 0x450a16
lea ecx, [eax + 0x76]
jmp 0x450a16
mov ecx, 0x75
jmp 0x450a16
mov ecx, 0x74
push ecx
call fcn.00475cc0
mov ecx, dword [ebp]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xac]
push eax
push 5
push 0x1060
push ecx
call edi
push 0x800
lea edx, [esp + 0x29dc]
push edx
mov ecx, 0x542618
call fcn.004153a0
lea eax, [esp + 0x29d8]
push eax
mov ecx, ebp
call fcn.0044c360
lea eax, [esp + 0x29d8]
lea edx, [eax + 2]
jmp 0x450a70
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x450a70
sub eax, edx
sar eax, 1
mov esi, eax
je 0x450a84
inc esi
lea ecx, [esp + 0x29d8]
push ecx
mov ecx, 0x5404d0
call fcn.00486240
push 1
push str.AllowUppercase
push str.FileList
mov dword [esp + 0x24], ebx
call fcn.0046cee0
push ebx
push str.FlatView
test eax, eax
push str.FileList
setne byte [esp + 0x23]
call fcn.0046cee0
push ebx
push str.ShowSeconds
test eax, eax
push str.FileList
setne byte [esp + 0x28]
call fcn.0046cee0
test eax, eax
setne dl
xor eax, eax
push 0x1f4
lea ecx, [esp + 0xa0]
mov byte [esp + 0x24], dl
mov word [esp + 0x39dc], ax
call fcn.004a0090
mov byte [esp + 0x49e4], 1
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x230]
push edx
mov ecx, 0x542618
call fcn.004150c0
test al, al
je 0x451113
lea eax, [esp + esi*2 + 0x22c]
mov dword [esp + 0x64], eax
test byte [esp + 0x18], 0x1f
jne 0x450b42
lea ecx, [esp + 0x9c]
call fcn.0049f7f0
mov eax, dword [esp + 0x123c]
mov ebx, dword [esp + 0x64]
shr eax, 4
and al, 1
cmp byte [esp + 0x1c], 0
mov byte [esp + 0x16], al
je 0x450b70
lea ecx, [esp + 0x22c]
push ecx
call fcn.00460c50
mov ebx, eax
mov al, byte [esp + 0x16]
test al, al
je 0x450c0d
cmp byte [esp + 0x1c], 0
jne 0x450c0d
test byte [esp + 0x1248], 0x20
je 0x450cc6
lea ecx, [esp + 0x39d8]
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450bc6
test dx, dx
je 0x450bc2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450bc6
add eax, 4
add ecx, 4
test dx, dx
jne 0x450ba0
xor eax, eax
jmp 0x450bcb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4510f2
lea edx, [esp + 0x39d8]
mov eax, ebx
sub edx, ebx
mov edi, edi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x450be0
push 1
push 0
lea edx, [esp + 0x234]
push edx
mov ecx, 0x560120
call fcn.0044bf30
test al, al
jne 0x4510f2
mov ecx, dword [esp + 0x18]
xor edx, edx
mov word [esp + 0x2834], dx
mov edx, dword [esp + 0x1248]
mov dword [esp + 0x68], 7
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x70], 0
test dl, 1
je 0x450c6f
lea eax, [esp + 0x2834]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x450c50
mov ecx, dword [0x4dbd04]
mov dword [eax], ecx
mov cx, word [0x4dbd08]
mov word [eax + 4], cx
and edx, 6
mov eax, edx
je 0x450ddc
sub eax, 2
je 0x450daa
sub eax, 2
je 0x450d6d
sub eax, 2
jne 0x450ddc
lea eax, [esp + 0x2834]
add eax, 0xfffffffe
nop
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x450ca0
mov edx, dword [0x4dbcf8]
mov ecx, dword [0x4dbcfc]
mov dword [eax], edx
mov dx, word [0x4dbd00]
jmp 0x450dd5
push 1
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x234]
push ecx
mov ecx, 0x560120
call fcn.0044bf30
test al, al
je 0x450c0d
cmp dword [esp + 0x1240], 0
jne 0x450cff
cmp dword [esp + 0x1244], 0
je 0x4510f2
mov edx, dword [esp + 0x28]
push edx
mov ecx, 0x560120
call fcn.0044bfa0
mov ecx, dword [esp + 0x1240]
mov dword [eax + 0x1c], ecx
mov edx, dword [esp + 0x1244]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x20], edx
push 0x64
lea eax, [esp + 0x284c]
push eax
push ecx
lea edx, [esp + 0x124c]
push edx
mov ecx, ebp
call fcn.0044e0b0
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x2c]
push ecx
lea eax, [esp + 0x284c]
push edx
mov dword [esp + 0x48], eax
mov eax, dword [ebp]
push 0x1074
push eax
mov dword [esp + 0x44], 4
call edi
jmp 0x4510f2
lea eax, [esp + 0x2834]
add eax, 0xfffffffe
jmp 0x450d80
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x450d80
mov ecx, dword [0x4dbcec]
mov edx, dword [0x4dbcf0]
mov dword [eax], ecx
mov cx, word [0x4dbcf4]
mov dword [eax + 4], edx
mov word [eax + 8], cx
jmp 0x450ddc
lea eax, [esp + 0x2834]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x450db4
mov edx, dword [0x4dbce0]
mov ecx, dword [0x4dbce4]
mov dword [eax], edx
mov dx, word [0x4dbce8]
mov dword [eax + 4], ecx
mov word [eax + 8], dx
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1270], eax
lea eax, [esp + 0x22c]
push eax
mov ecx, 0x560120
call fcn.0044bc10
lea ecx, [esp + 0x22c]
push ecx
mov ecx, ebp
mov dword [esp + 0x8c], eax
call fcn.0044c360
cmp byte [esp + 0x17], 0
jne 0x450e21
push ebx
call fcn.00453930
mov eax, ebx
mov dword [esp + 0x7c], ebx
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x450e30
sub eax, edx
sar eax, 1
mov edi, eax
lea eax, [esp + 0x2834]
mov ecx, eax
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x450e50
lea edi, [ebx + edi*2]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x450e65
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x68]
push edx
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x104d
push eax
call edi
mov bl, byte [esp + 0x16]
mov esi, eax
test bl, bl
jne 0x450f8e
mov eax, dword [esp + 0x122c]
mov ecx, dword [esp + 0x1230]
cmp eax, 0x7fffffff
jne 0x450ee9
cmp ecx, 0x7fffffff
jne 0x450ee9
xor eax, eax
jmp 0x450ed0
movzx ecx, word [eax + 0x4dbcdc]
mov word [esp + eax + 0x2848], cx
add eax, 2
test cx, cx
jne 0x450ed0
jmp 0x450efa
push 0x32
lea edx, [esp + 0x284c]
push edx
push ecx
push eax
call fcn.0047ff20
mov edx, dword [ebp]
lea ecx, [esp + 0x2c]
push ecx
push esi
push 0x1074
lea eax, [esp + 0x2854]
push edx
mov dword [esp + 0x44], 1
mov dword [esp + 0x50], eax
call edi
mov eax, dword [esp + 0x1234]
mov ecx, dword [esp + 0x1238]
cmp eax, 0x7fffffff
jne 0x450f59
cmp ecx, 0x7fffffff
jne 0x450f59
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [eax + 0x4dbcdc]
mov word [esp + eax + 0x2848], cx
add eax, 2
test cx, cx
jne 0x450f40
jmp 0x450f6a
push 0x32
lea edx, [esp + 0x284c]
push edx
push ecx
push eax
call fcn.0047ff20
mov edx, dword [ebp]
lea ecx, [esp + 0x2c]
push ecx
push esi
push 0x1074
lea eax, [esp + 0x2854]
push edx
mov dword [esp + 0x44], 2
mov dword [esp + 0x50], eax
call edi
cmp dword [esp + 0x1240], 0
jne 0x450fc9
cmp dword [esp + 0x1244], 0
jne 0x450fc9
xor eax, eax
jmp 0x450fb0
movzx ecx, word [eax + 0x4d89fc]
mov word [esp + eax + 0x2910], cx
add eax, 2
test cx, cx
jne 0x450fb0
jmp 0x450fe7
mov ecx, dword [esp + 0x20]
push 0x64
lea eax, [esp + 0x2914]
push eax
push ecx
lea edx, [esp + 0x124c]
push edx
mov ecx, ebp
call fcn.0044e0b0
mov edx, dword [ebp]
lea ecx, [esp + 0x2c]
push ecx
push esi
push 0x1074
lea eax, [esp + 0x291c]
push edx
mov dword [esp + 0x44], 4
mov dword [esp + 0x50], eax
call edi
test dword [esp + 0x1248], 0x3c0
mov eax, dword [esp + 0x124c]
setne cl
test eax, eax
je 0x45109f
test bl, bl
jne 0x45109f
test cl, cl
jne 0x45109f
cmp eax, 3
jne 0x45104e
push 0x41
lea eax, [esp + 0x284c]
push eax
push 0
push 0x20
lea ecx, [esp + 0x1260]
push ecx
call fcn.0047fa40
jmp 0x45107b
cmp eax, 1
mov eax, str._04X
je 0x45105d
mov eax, str._08X
mov edx, dword [esp + 0x1250]
push edx
push eax
lea eax, [esp + 0x2850]
push eax
mov edx, 0x41
call fcn.00407810
add esp, 0xc
mov eax, dword [ebp]
lea edx, [esp + 0x2c]
push edx
push esi
push 0x1074
lea ecx, [esp + 0x2854]
push eax
mov dword [esp + 0x44], 5
mov dword [esp + 0x50], ecx
call edi
cmp byte [esp + 0x1c], 0
je 0x4510e4
push 0x800
lea ecx, [esp + 0x17e8]
push ecx
lea edx, [esp + 0x234]
push edx
call fcn.00460ef0
mov edx, dword [ebp]
lea ecx, [esp + 0x2c]
push ecx
push esi
push 0x1074
lea eax, [esp + 0x17f0]
push edx
mov dword [esp + 0x44], 6
mov dword [esp + 0x50], eax
call edi
mov eax, dword [esp + 0x18]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x230]
push edx
mov ecx, 0x542618
call fcn.004150c0
test al, al
jne 0x450b2f
xor ebx, ebx
push 0x4411
push 0x2b4
lea eax, [esp + 0x1284]
push eax
push 0x10
push 0x4dbcbc
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov esi, eax
mov dword [esp + 0x68], 5
cmp esi, ebx
je 0x451148
mov dword [esp + 0x68], 7
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1280]
push 0x1050
lea eax, [esp + 0x17e8]
push ebx
push eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x88], 0x4d8bb4
call fcn.004c2670
add esp, 0xc
xor eax, eax
jmp 0x451190
movzx ecx, word [eax + 0x4d8bb4]
mov word [esp + eax + 0x17e4], cx
add eax, 2
cmp cx, bx
jne 0x451190
lea ecx, [esp + 0x17e4]
push ecx
mov ecx, 0x560120
mov dword [esp + 0x27f8], 0x10
call fcn.0044bc10
lea edx, [esp + 0x68]
push edx
push ebx
mov dword [esp + 0x90], eax
mov eax, dword [ebp]
push 0x104d
push eax
call edi
cmp esi, ebx
mov esi, 3
je 0x451205
lea edx, [esp + 0x2c]
push edx
push eax
mov eax, dword [ebp]
push 0x1074
lea ecx, [esp + 0x149c]
push eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], ecx
call edi
mov ecx, 0x560120
call fcn.0044bf00
mov ecx, ebp
call fcn.0044fc60
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x45125c
cmp word [eax], bx
je 0x45125c
push eax
mov ecx, ebp
call fcn.0044f990
test al, al
jne 0x451275
mov ecx, dword [ebp]
push ebx
push ebx
push 0x1004
push ecx
call edi
cmp eax, ebx
mov ecx, dword [esp + 0x24]
jle 0x45124b
cmp ecx, eax
jl 0x45124b
lea ecx, [eax - 1]
mov eax, dword [ebp]
lea edx, [esp + 0x2c]
push edx
push ecx
push 0x102b
push eax
jmp 0x45126b
mov edx, dword [ebp]
lea ecx, [esp + 0x2c]
push ecx
push ebx
push 0x102b
push edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], esi
call edi
mov eax, dword [ebp]
push ebx
push 1
push 0xb
push eax
call edi
mov ecx, dword [ebp]
push ebx
push ebx
push 0x102a
push ecx
call edi
push ebx
mov ecx, 0x535cb0
call fcn.0047f490
mov ecx, ebp
call fcn.0044e3e0
mov ecx, ebp
call fcn.0044c8d0
mov ecx, 0x546044
call fcn.004838f0
push ebx
mov ecx, 0x535cb0
call fcn.0047f420
mov byte [esp + 0x49e4], 0
lea ecx, [esp + 0x9c]
call fcn.0049f830
mov dword [esp + 0x49e4], 0xffffffff
cmp dword [0x534c04], ebx
jle 0x4512e8
dec dword [0x534c04]
mov ecx, dword [esp + 0x49dc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x49c4]
xor ecx, esp
call fcn.004c1c22
add esp, 0x49d4
ret 4