Function at 0x409b77
Capabilities:
Get file system object information

Disassembly:
mov eax, 0x6015fc
call fcn.00474a88
sub esp, 0x304
push ebx
push esi
push edi
mov edi, dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
push 0x4000
lea eax, [ebp - 0x1b0]
push 0x160
xor ebx, ebx
push eax
push ebx
mov esi, ecx
push ebx
call edi
mov dword [ebp - 0x20], eax
push 0x4001
lea eax, [ebp - 0x1b0]
push 0x160
push eax
push ebx
push ebx
call edi
push dword [ebp - 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x18], eax
push ebx
push 0x1003
push dword [esi + 0xad4]
call edi
push dword [ebp - 0x18]
push 1
push 0x1003
push dword [esi + 0xad4]
call edi
push ebx
push ebx
push 0x1009
push dword [esi + 0xad4]
call edi
push ebx
push ebx
push 0x101c
push dword [esi + 0xad4]
call edi
cmp eax, ebx
jne 0x409bfc
push 0xffffffffffffffff
push 0xe1
push ebx
push 0x69da68
lea ecx, [esi + 0xab8]
push ebx
call fcn.005dc9db
push 0xffffffffffffffff
push 0x64
push ebx
push 0x69dac8
push 1
lea ecx, [esi + 0xab8]
call fcn.005dc9db
push 0xffffffffffffffff
push 0x7d
push ebx
push 0x69da60
push 2
lea ecx, [esi + 0xab8]
call fcn.005dc9db
push 0xffffffffffffffff
push 0x73
push ebx
push 0x69dabc
push 3
lea ecx, [esi + 0xab8]
call fcn.005dc9db
push 0x10
push ebx
mov dword [ebp - 0x24], 1
call fcn.004087f2
pop ecx
pop ecx
push ebx
push eax
push ebx
push ebx
push 0x69da10
push ebx
push 3
lea ecx, [esi + 0xab8]
call fcn.005dca2e
push 1
push ebx
push ebx
push ebx
push ebx
push 4
push ebx
push eax
lea ecx, [esi + 0xab8]
call fcn.005dcab0
push ebx
push ebx
push 0xb
push dword [esi + 0xad4]
call edi
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x409f33
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x14], ebx
inc ecx
dec eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], eax
jbe 0x409f26
jmp 0x409ce3
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
mov cl, byte [eax]
mov dword [ebp - 0x1c], ebx
neg cl
sbb ecx, ecx
and ecx, 0xffffff90
add ecx, 0x80
mov dword [ebp - 0x10], ecx
xor ecx, ecx
cmp dword [ebp - 0x10], 0x10
setne cl
cmp ecx, dword [ebp - 0x14]
sete byte [ebp + 0xf]
inc eax
cmp byte [ebp + 0xf], bl
mov dword [ebp + 8], eax
je 0x409d9b
push dword [ebp - 0x10]
push eax
call fcn.004087f2
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
push ebx
push eax
inc dword [ebp - 0x24]
push ebx
push ebx
push dword [ebp + 8]
push ecx
push 3
lea ecx, [esi + 0xab8]
call fcn.005dca2e
xor ecx, ecx
cmp dword [ebp - 0x10], 0x10
mov dword [ebp - 0x1c], eax
sete cl
push ecx
push ebx
push ebx
push ebx
push ebx
push 4
push ebx
push eax
lea ecx, [esi + 0xab8]
call fcn.005dcab0
push 0x410
lea eax, [ebp - 0x310]
push 0x160
push eax
mov eax, dword [ebp - 0x10]
or al, 0x80
push eax
push dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
lea eax, [ebp - 0x200]
lea ecx, [esi + 0xab8]
push eax
push 2
push dword [ebp - 0x1c]
call fcn.005dcb29
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp + 8]
cmp byte [ebp + 0xf], bl
lea eax, [ecx + eax + 1]
mov dword [ebp + 8], eax
je 0x409f13
mov ecx, dword [0x7815b4]
mov dword [ebp + 0xc], ecx
push 4
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 4], ebx
push eax
call fcn.00473fd0
mov eax, dword [ebp + 8]
push 4
add eax, 4
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00473fd0
add esp, 0x18
push 1
push ebx
push ebx
push dword [ebp - 0x28]
call fcn.004757a0
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x44], edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
adc ecx, edx
mov dword [ebp - 0x2c], ecx
js 0x409e2f
jg 0x409e0e
cmp eax, 0x40000000
jb 0x409e2f
fild qword [ebp - 0x30]
push ecx
push ecx
fmul qword [0x637e98]
fstp qword [esp]
push str._10.2f_GB
lea eax, [ebp + 0xc]
push eax
call fcn.005dbdfb
add esp, 0x10
jmp 0x409e9f
cmp ecx, ebx
jl 0x409e51
jg 0x409e3c
cmp eax, 0x100000
jb 0x409e51
fild qword [ebp - 0x30]
push ecx
push ecx
fmul qword [0x637e90]
fstp qword [esp]
push str._10.2f_MB
jmp 0x409e21
mov edi, 0x400
push ebx
push edi
push ecx
push eax
call fcn.004756e0
or eax, edx
mov dword [ebp - 0x10], 1
jne 0x409e6d
mov dword [ebp - 0x10], ebx
push ebx
push edi
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.00475630
mov ecx, eax
mov eax, dword [ebp - 0x10]
mov edi, edx
cdq
add ecx, eax
lea eax, [ebp + 0xc]
adc edi, edx
push edi
push ecx
push str._10I64u_KB
push eax
call fcn.005dbdfb
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0x10
push dword [ebp + 0xc]
lea ecx, [esi + 0xab8]
push 1
push dword [ebp - 0x1c]
call fcn.005dcb29
mov eax, dword [ebp + 8]
push 8
add eax, 8
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00473fd0
add esp, 0xc
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x40]
push 0xffffffffffffffff
push eax
call fcn.005dc510
lea eax, [ebp - 0x3c]
push str._Y__m__d__H:_M
push eax
lea ecx, [ebp - 0x40]
call fcn.005dc59e
push dword [eax]
lea ecx, [esi + 0xab8]
mov byte [ebp - 4], 1
push 3
push dword [ebp - 0x1c]
call fcn.005dcb29
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], bl
call fcn.005e3750
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.005e3750
add dword [ebp + 8], 0x10
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x20]
jb 0x409ce0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x409ccf
push ebx
push 1
push 0xb
push dword [esi + 0xad4]
call edi
push 1
lea ecx, [esi + 0xab8]
call fcn.005e33aa
cmp dword [0x796ae8], ebx
jne 0x409fbc
push dword [esi + 0x1a0]
push 0x69da78
push esi
call fcn.00409fcd
mov eax, dword [esi + 0x9b4]
add esp, 0xc
cmp eax, ebx
jne 0x409f77
xor eax, eax
jmp 0x409f7a
mov eax, dword [eax + 0x1c]
lea ecx, [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push ecx
push 0x1f4
push 3
push ebx
push ebx
push 0x402
push eax
call edi
add esi, 0x9c4
cmp esi, ebx
jne 0x409fa3
xor esi, esi
jmp 0x409fa6
mov esi, dword [esi + 0x1c]
lea eax, [ebp + 8]
push eax
push 0x1f4
push 3
push ebx
push 2
push 0x401
push esi
call edi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8