Function at 0x40ca80
Capabilities:
Get file system object information

Disassembly:
mov eax, 0x12fc
call fcn.0047e4b0
push ebx
mov ebx, dword [esp + 0x130c]
push ebp
push esi
push edi
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x5ac]
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebp, 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x10], 0
and ecx, 3
mov dword [esp + 0x14], ebp
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x5ac]
push ecx
call fcn.004732a0
add esp, 4
test eax, eax
je 0x40caf8
lea edi, [esp + 0x5ac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + ecx + 0x5ab], al
lea edx, [esp + 0x6c]
lea eax, [esp + 0x5ac]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x40ccaf
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [esp + 0x1310]
mov al, byte [esp + 0x6c]
xor edx, edx
test al, 0x10
mov dword [ebp + 0x980], edx
mov dword [ebp + 0x97c], edx
mov dword [ebp + 0x978], edx
je 0x40cc42
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1ac]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], 1
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1ac]
push ecx
call fcn.004732a0
add esp, 4
test eax, eax
jne 0x40cbb3
mov edi, 0x49f898
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1ac]
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1ac]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5ac]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x40ca00
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x5b0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49f894
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x5b8]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00445c30
mov eax, dword [ebp + 0x6cc]
add esp, 0x10
test eax, eax
je 0x40cd06
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x12fc
ret
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x1ac]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x40], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x40]
push 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x94]
mov dword [ebp + 0x978], 1
push ecx
call fcn.0047e500
mov ecx, dword [esp + 0x8c]
xor esi, esi
add eax, ecx
mov ecx, 0xb
adc edx, esi
add eax, 0x7ff
adc edx, esi
call fcn.0047e4e0
mov dword [ebp + 0x980], eax
jmp 0x40cd06
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1ac]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1ac]
push ecx
call fcn.004732a0
add esp, 4
test eax, eax
je 0x40cced
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x1310]
mov dword [esp + 0x14], 0
mov dword [ebp + 0x980], 0xffffffff
mov edx, dword [ebp + 0x978]
mov edi, dword [ebp + 0x984]
mov eax, dword [ebp + 0x97c]
mov esi, dword [ebp + 0x988]
mov ecx, dword [ebp + 0x980]
add edi, edx
mov edx, dword [ebp + 0x98c]
mov dword [ebp + 0x984], edi
mov edi, dword [esp + 0x131c]
add esi, eax
add edx, ecx
mov dword [ebp + 0x988], esi
test edi, edi
mov dword [ebp + 0x98c], edx
jne 0x40cd6a
push 3
lea edx, [esp + 0xf10]
push edi
lea eax, [esp + 0x1b4]
push edx
push eax
call fcn.0040c590
add esp, 0x10
jmp 0x40cd8e
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xf0c]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x19c]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x1ac]
push edx
push 0xffffffffffffffff
push 0x100d
push eax
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], ecx
call ebx
mov edi, eax
cmp edi, 0xffffffff
je 0x40ce5e
mov eax, 1
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x19c]
push edx
push 0
lea ecx, [esp + 0x5b4]
push 0x1005
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], pe_nt_image_headers32
mov dword [esp + 0x3c], ecx
call ebx
lea esi, [esp + 0xf0c]
lea eax, [esp + 0x5ac]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40ce32
test cl, cl
je 0x40ce2e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40ce32
add eax, 2
add esi, 2
test cl, cl
jne 0x40ce0e
xor eax, eax
jmp 0x40ce37
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40ceda
mov ecx, dword [ebp + 0x19c]
lea eax, [esp + 0x44]
push eax
push edi
push 0x100d
push ecx
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x40cdc7
mov esi, dword [esp + 0x1314]
mov edx, dword [ebp + 0x19c]
xor edi, edi
push edi
push edi
push 0x1004
push edx
call ebx
dec eax
cmp esi, eax
jle 0x40ce8f
mov eax, dword [ebp + 0x19c]
push edi
push edi
push 0x1004
push eax
call ebx
mov esi, eax
dec esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], 0xf
test edi, edi
mov dword [esp + 0x1c], esi
je 0x40cef9
push 0x4000
lea ecx, [esp + 0xdb0]
push 0x160
push ecx
lea edx, [esp + 0x1b8]
push 0
push edx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov eax, dword [esp + 0xdb0]
mov dword [esp + 0x34], eax
jmp 0x40cf01
push edi
push ebp
call fcn.0040c940
mov esi, dword [esp + 0x131c]
add esp, 8
cmp esi, edi
jle 0x40ce65
dec esi
jmp 0x40ce65
mov dword [esp + 0x34], 0xffffffff
mov edx, dword [ebp + 0x980]
lea ecx, [esp + 0x1ac]
lea eax, [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x19c]
push eax
push 0
push 0x1007
push ecx
mov dword [esp + 0x48], edx
call ebx
mov ecx, dword [ebp + 0x19c]
lea eax, [esp + 0x18]
push eax
push 0
mov esi, 1
lea edx, [esp + 0xf14]
push 0x1006
push ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], edx
call ebx
test edi, edi
je 0x40d068
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40cfd9
mov edx, dword [ebp + 0x97c]
mov eax, dword [ebp + 0x978]
push edx
push eax
push 0x52
call fcn.0046b4e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x5ac]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x5ac]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49f184
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40cfe1
mov byte [esp + 0x5ac], 0
mov eax, dword [ebp + 0x980]
lea ecx, [esp + 0x5c]
shl eax, 1
push eax
push ecx
call fcn.0046e220
lea edi, [esp + 0x64]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x5ac]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x19c]
and ecx, 3
lea eax, [esp + 0x5ac]
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 1
push ecx
push 0
push 0x1006
push edx
mov dword [esp + 0x30], 2
mov dword [esp + 0x3c], eax
call ebx
mov edi, dword [esp + 0x14]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12fc
ret
push 0x49f1d0
push 0xc4
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], 2
call fcn.0046b4e0
add esp, 4
push eax
push 0x49f1cc
lea eax, [esp + 0x5b8]
push str._s_s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp + 0x19c]
add esp, 0x14
lea edx, [esp + 0x18]
lea ecx, [esp + 0x5ac]
push edx
push 0
push 0x1006
push eax
mov dword [esp + 0x3c], ecx
call ebx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12fc
ret