Function at 0x40caab
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x639138
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x330
push esi
mov dword [ebp - 0x320], ecx
push 0x4000
push 0x160
lea eax, [ebp - 0x16c]
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov dword [ebp - 0x170], eax
push 0x4001
push 0x160
lea ecx, [ebp - 0x16c]
push ecx
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x170]
push edx
push 0
push 0x1003
mov eax, dword [ebp - 0x320]
mov ecx, dword [eax + 0xad4]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [ebp - 0x174]
push edx
push 1
push 0x1003
mov eax, dword [ebp - 0x320]
mov ecx, dword [eax + 0xad4]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.004113b0
push 0
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.004113e0
test eax, eax
je 0x40cb7e
jmp 0x40cb65
push 0xffffffffffffffff
push 0xe1
push 0
push 0x6d85fc
push 0
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611e76
push 0xffffffffffffffff
push 0x64
push 0
push 0x6d8604
push 1
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611e76
push 0xffffffffffffffff
push 0x7d
push 0
push 0x6d860c
push 2
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611e76
push 0xffffffffffffffff
push 0x73
push 0
push 0x6d8614
push 3
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611e76
mov dword [ebp - 0x178], 0
push 1
push 0x10
push 0
call fcn.0040af90
add esp, 8
push eax
push 0x6d8620
mov edx, dword [ebp - 0x178]
mov dword [ebp - 0x324], edx
mov eax, dword [ebp - 0x324]
push eax
mov ecx, dword [ebp - 0x178]
add ecx, 1
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00411380
push eax
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00411350
push 0
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00411440
cmp dword [ebp + 0xc], 0
je 0x40d0bf
mov dword [ebp - 0x17c], 0
jmp 0x40cc94
mov edx, dword [ebp - 0x17c]
add edx, 1
mov dword [ebp - 0x17c], edx
cmp dword [ebp - 0x17c], 2
jge 0x40d0bf
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x184]
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x184]
sub edx, dword [ebp - 0x180]
mov eax, dword [ebp + 0xc]
sub eax, 1
cmp edx, eax
jae 0x40d0ba
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x19c], 0
mov byte [ebp - 0x1a0], 0
mov ecx, dword [ebp - 0x184]
movsx edx, byte [ecx]
neg edx
sbb edx, edx
and edx, 0xffffff90
add edx, 0x80
mov dword [ebp - 0x18c], edx
xor eax, eax
cmp dword [ebp - 0x18c], 0x10
setne al
xor ecx, ecx
cmp eax, dword [ebp - 0x17c]
sete cl
mov byte [ebp - 0x1a0], cl
mov edx, dword [ebp - 0x184]
add edx, 1
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x1a0]
and ecx, 0xff
test ecx, ecx
je 0x40ce2f
mov edx, dword [ebp - 0x18c]
push edx
mov eax, dword [ebp - 0x198]
push eax
call fcn.0040af90
add esp, 8
push eax
mov ecx, dword [ebp - 0x198]
push ecx
mov edx, dword [ebp - 0x178]
mov dword [ebp - 0x328], edx
mov eax, dword [ebp - 0x328]
push eax
mov ecx, dword [ebp - 0x178]
add ecx, 1
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00411380
mov dword [ebp - 0x19c], eax
xor edx, edx
cmp dword [ebp - 0x18c], 0x10
sete dl
push edx
mov eax, dword [ebp - 0x19c]
push eax
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00411350
push 0x410
push 0x160
lea ecx, [ebp - 0x304]
push ecx
mov edx, dword [ebp - 0x18c]
or dl, 0x80
push edx
mov eax, dword [ebp - 0x198]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
lea ecx, [ebp - 0x1f4]
push ecx
push 2
mov edx, dword [ebp - 0x19c]
push edx
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611fc4
mov eax, dword [ebp - 0x198]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x184]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x1a0]
and eax, 0xff
test eax, eax
je 0x40d0a6
lea ecx, [ebp - 0x308]
call fcn.00403370
mov dword [ebp - 4], 0
push 4
mov ecx, dword [ebp - 0x184]
push ecx
lea edx, [ebp - 0x1a4]
push edx
call fcn.004ac230
add esp, 0xc
push 4
mov eax, dword [ebp - 0x184]
add eax, 4
push eax
lea ecx, [ebp - 0x188]
push ecx
call fcn.004ac230
add esp, 0xc
mov eax, dword [ebp - 0x1a4]
xor edx, edx
mov ecx, 0x20
call fcn.004ad750
mov ecx, dword [ebp - 0x188]
xor esi, esi
add eax, ecx
adc edx, esi
mov dword [ebp - 0x314], eax
mov dword [ebp - 0x310], edx
cmp dword [ebp - 0x310], 0
jl 0x40cf10
jg 0x40cee5
cmp dword [ebp - 0x314], 0x40000000
jb 0x40cf10
fild qword [ebp - 0x314]
fdiv qword [0x66eac0]
sub esp, 8
fstp qword [esp]
push str._10.2f_GB
lea edx, [ebp - 0x308]
push edx
call fcn.00610e57
add esp, 0x10
jmp 0x40cfdd
cmp dword [ebp - 0x310], 0
jl 0x40cf52
jg 0x40cf27
cmp dword [ebp - 0x314], 0x100000
jb 0x40cf52
fild qword [ebp - 0x314]
fdiv qword [0x66eab8]
sub esp, 8
fstp qword [esp]
push str._10.2f_MB
lea eax, [ebp - 0x308]
push eax
call fcn.00610e57
add esp, 0x10
jmp 0x40cfdd
push 0
push 0x400
mov ecx, dword [ebp - 0x310]
push ecx
mov edx, dword [ebp - 0x314]
push edx
call fcn.004ad7b0
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x330]
or eax, dword [ebp - 0x32c]
test eax, eax
je 0x40cf94
mov dword [ebp - 0x334], 1
jmp 0x40cf9e
mov dword [ebp - 0x334], 0
push 0
push 0x400
mov ecx, dword [ebp - 0x310]
push ecx
mov edx, dword [ebp - 0x314]
push edx
call fcn.004ad6a0
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x334]
cdq
add ecx, eax
adc esi, edx
push esi
push ecx
push str._10I64u_KB
lea edx, [ebp - 0x308]
push edx
call fcn.00610e57
add esp, 0x10
lea ecx, [ebp - 0x308]
call fcn.00403580
push eax
push 1
mov eax, dword [ebp - 0x19c]
push eax
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611fc4
push 8
mov ecx, dword [ebp - 0x184]
add ecx, 8
push ecx
lea edx, [ebp - 0x194]
push edx
call fcn.004ac230
add esp, 0xc
push 0xffffffffffffffff
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x30c]
call fcn.00611569
push str._Y__m__d__H:_M
lea ecx, [ebp - 0x31c]
push ecx
lea ecx, [ebp - 0x30c]
call fcn.006115f7
mov dword [ebp - 0x338], eax
mov edx, dword [ebp - 0x338]
mov dword [ebp - 0x33c], edx
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x33c]
call fcn.00403580
push eax
push 3
mov eax, dword [ebp - 0x19c]
push eax
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00611fc4
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x31c]
call fcn.00618d7e
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x308]
call fcn.00618d7e
mov ecx, dword [ebp - 0x184]
add ecx, 0x10
mov dword [ebp - 0x184], ecx
jmp 0x40ccb9
jmp 0x40cc85
push 1
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.00411440
push 1
mov ecx, dword [ebp - 0x320]
add ecx, 0xab8
call fcn.006184bf
cmp dword [0x76bb30], 0
jne 0x40d16d
mov edx, dword [ebp - 0x320]
mov eax, dword [edx + 0x1a0]
push eax
push 0x6d8658
mov ecx, dword [ebp - 0x320]
push ecx
call fcn.0040d17e
add esp, 0xc
lea edx, [ebp - 0x318]
push edx
push 0x1f4
push 3
push 0
push 0
push 0x402
mov eax, dword [ebp - 0x320]
mov ecx, dword [eax + 0x9b4]
call fcn.00403590
push eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
lea ecx, [ebp - 0x318]
push ecx
push 0x1f4
push 3
push 0
push 2
push 0x401
mov ecx, dword [ebp - 0x320]
add ecx, 0x9c4
call fcn.00403590
push eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 8