Function at 0x4d4870
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x69553a
mov eax, dword fs:[0]
push eax
sub esp, 0x398
mov eax, dword [0x729140]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x384], edx
mov ebx, ecx
mov dword [ebp - 0xc0], ebx
cmp dword [ebx + 0x10], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x380], eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x38c], eax
je 0x4d5184
call fcn.004ddfc0
test al, al
je 0x4d5184
mov edx, ebx
lea ecx, [ebp - 0x84]
call fcn.004de460
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.004b59b0
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 3
call fcn.004b1f60
mov edi, eax
lea esi, [edi + 0x18]
push esi
mov dword [ebp - 0x388], esi
call fcn.00631f04
add esp, 4
test eax, eax
je 0x4d4931
push eax
call fcn.0063180e
add esp, 4
lea eax, [edi + 4]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
cmp ecx, eax
je 0x4d49e8
mov byte [ebp - 4], 5
mov edi, dword [ebp - 0x1c]
push dword [edi + 4]
call fcn.004b5a40
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1c]
mov dword [eax + 4], edi
mov eax, dword [ebp - 0x1c]
mov dword [eax], edi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edi
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x384]
mov edi, dword [ebp - 0x1c]
push edi
mov eax, dword [eax]
push dword [eax + 4]
call fcn.004b6ce0
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
mov edx, dword [edi + 4]
cmp byte [edx + 0xd], 0
jne 0x4d49e0
mov ecx, dword [edx]
cmp byte [ecx + 0xd], 0
jne 0x4d49bc
nop dword [eax + eax]
mov eax, dword [ecx]
mov edx, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4d49b0
mov dword [edi], edx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
jne 0x4d49db
nop dword [eax]
mov ecx, eax
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
je 0x4d49d0
mov dword [edx + 8], ecx
jmp 0x4d49e8
mov dword [edi], edi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], eax
push esi
mov byte [ebp - 4], 6
call fcn.00631f29
add esp, 4
test eax, eax
je 0x4d4a02
push eax
call fcn.0063180e
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
push 2
xor eax, eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
push 0x6dacf4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
call fcn.00405b20
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004b5060
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 8
call fcn.00405ac0
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x1c]
je 0x4d4b3f
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x388], eax
lea ecx, [ebp - 0x6c]
lea eax, [ebp - 0x84]
push eax
call fcn.00414330
lea ecx, [esi + 0x28]
mov byte [ebp - 4], 0xd
call fcn.00406530
lea ecx, [esi + 0x28]
mov edx, dword [eax]
mov dword [ebp - 0x388], edx
call fcn.004028e0
mov ebx, dword [eax]
mov byte [ebp - 4], 0xe
cmp ebx, edx
je 0x4d4aed
mov esi, edx
nop
mov ecx, ebx
call fcn.004060c0
lea ecx, [ebp - 0x6c]
mov edi, eax
call fcn.004060c0
cmp edi, eax
jne 0x4d4ae3
lea ecx, [ebp - 0x6c]
call fcn.00405860
mov ecx, ebx
mov edi, eax
call fcn.00405860
mov edx, edi
mov ecx, eax
call fcn.004d6390
test al, al
jne 0x4d4aea
add ebx, 0x18
cmp ebx, esi
jne 0x4d4ab0
mov esi, dword [ebp - 0x20]
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00405ac0
lea ecx, [esi + 0x28]
mov byte [ebp - 4], 3
call fcn.00406530
cmp ebx, dword [eax]
je 0x4d4b39
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x380]
cmp ecx, eax
je 0x4d4b2f
cmp dword [eax + 0x14], 8
jb 0x4d4b21
mov eax, dword [eax]
mov edx, dword [ebp - 0x38c]
push dword [edx]
push eax
call fcn.00405b20
mov edi, 2
jmp 0x4d512c
mov ebx, dword [ebp - 0xc0]
cmp dword [ebp - 0x384], 4
jne 0x4d4c53
mov edx, ebx
lea ecx, [ebp - 0xa4]
call fcn.004de590
mov byte [ebp - 4], 0x1c
xor eax, eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
lea edx, [ebp - 0x38]
mov byte [ebp - 4], 0x1d
mov ecx, ebx
call fcn.004d7420
push str..jpg
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x6c]
call fcn.00405e30
add esp, 4
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x1e
push eax
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x3a4]
call fcn.004e05c0
add esp, 4
push eax
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x1f
call fcn.0040cdf0
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0x20
call fcn.00405ac0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x1e
call fcn.004ddfc0
test al, al
je 0x4d4c28
mov ecx, dword [ebp - 0x380]
lea eax, [ebp - 0x6c]
push eax
call fcn.00414300
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x24
call fcn.00405ac0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x28
call fcn.00405ac0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x2c
call fcn.00405ac0
mov edi, 2
jmp 0x4d5128
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x37
call fcn.00405ac0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x3b
call fcn.00405ac0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x3f
call fcn.00405ac0
mov byte [ebp - 4], 3
mov byte [ebp - 4], 0x43
xor eax, eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 7
mov word [ebp - 0x50], ax
xorps xmm0, xmm0
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x8c]
movlpd qword [ebp - 0x8c], xmm0
call fcn.00436430
mov byte [ebp - 4], 0x45
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x4d4ccd
mov eax, dword [ecx]
lea edx, [ebp - 0x3a4]
push edx
call dword [eax + 0x5c]
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x46
call fcn.0040cdf0
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0x47
call fcn.00405ac0
mov byte [ebp - 4], 0x45
push str.Thumbnail
lea ecx, [ebp - 0xa4]
call fcn.00405880
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x4b
push eax
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x3a4]
call fcn.004e05c0
add esp, 4
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x4c
call fcn.0040cdf0
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0x4d
call fcn.00405ac0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x51
call fcn.00405ac0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x45
call fcn.004ddec0
test al, al
jne 0x4d4d3c
lea ecx, [ebp - 0x50]
call fcn.004de250
lea ecx, [ebp - 0x84]
call fcn.00405860
mov edx, 0x6d7d5c
mov ecx, eax
call fcn.004d6390
test al, al
jne 0x4d5022
lea ecx, [ebp - 0x84]
call fcn.00405860
mov edx, str..ico
mov ecx, eax
call fcn.004d6390
test al, al
jne 0x4d5022
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xbc]
call fcn.00414330
mov edx, 0x6d581c
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0xbc]
call fcn.004d6530
mov edx, 0x6d581c
lea ecx, [ebp - 0xbc]
call fcn.004d65b0
cmp dword [ebp - 0x74], 0
jne 0x4d4dc8
push 5
push 0x6dab84
lea ecx, [ebp - 0xbc]
call fcn.00405b20
push 4
push str..png
lea ecx, [ebp - 0xbc]
call fcn.00406160
lea eax, [ebp - 0xbc]
push eax
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x3a4]
call fcn.004e05c0
add esp, 4
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x71
call fcn.0040cdf0
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0x72
call fcn.00405ac0
mov byte [ebp - 4], 0x70
call fcn.004b1f60
mov esi, eax
lea edi, [esi + 0x18]
push edi
mov dword [ebp - 0x384], edi
call fcn.00631f04
add esp, 4
test eax, eax
je 0x4d4e38
push eax
call fcn.0063180e
add esp, 4
mov byte [ebp - 4], 0x76
cmp dword [ebp - 0x74], 0
je 0x4d4eca
cmp dword [esi + 0xa8], 0
je 0x4d4eca
lea eax, [ebp - 0x84]
mov dword [ebp - 0xc0], 0
push eax
lea eax, [ebp - 0xc0]
push eax
lea ecx, [esi + 0xa4]
call fcn.0042f840
mov eax, dword [esi + 0xa4]
mov esi, dword [ebp - 0xc0]
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x4d4e9e
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x84]
call fcn.0042aab0
shr eax, 0x1f
test al, al
mov eax, dword [ebp - 0x20]
je 0x4d4ea0
mov esi, eax
cmp esi, eax
je 0x4d4ec4
add esi, 0x28
lea eax, [ebp - 0x50]
cmp eax, esi
je 0x4d4ec4
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x4d4eb8
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x50]
push eax
call fcn.00405b20
mov byte [ebp - 4], 0x78
jmp 0x4d4ece
mov byte [ebp - 4], 0x77
push edi
call fcn.00631f29
add esp, 4
test eax, eax
je 0x4d4ee4
push eax
call fcn.0063180e
add esp, 4
mov byte [ebp - 4], 0x70
cmp dword [ebp - 0x40], 0
je 0x4d4efe
lea ecx, [ebp - 0x50]
call fcn.004ddec0
test al, al
jne 0x4d4ffa
mov ecx, ebx
call fcn.004d4410
test eax, eax
je 0x4d4f1a
lea edx, [ebp - 0x50]
mov ecx, eax
call fcn.004d4640
test eax, eax
jmp 0x4d4fe1
cmp dword [ebp - 0x74], 0
lea ecx, [ebp - 0x6c]
jne 0x4d4f6f
push ebx
call fcn.00414330
xor esi, esi
cmp dword [ebp - 0x5c], esi
jbe 0x4d4f61
cmp dword [ebp - 0x58], 8
lea ecx, [ebp - 0x37c]
push 0x4110
push 0x2b4
push ecx
lea eax, [ebp - 0x6c]
cmovae eax, dword [ebp - 0x6c]
push 0x80
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
cmovne esi, dword [ebp - 0x37c]
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x89
call fcn.00405ac0
jmp 0x4d4fbf
lea eax, [ebp - 0x84]
push eax
call fcn.00414330
xor esi, esi
cmp dword [ebp - 0x5c], esi
jbe 0x4d4fb3
cmp dword [ebp - 0x58], 8
lea ecx, [ebp - 0x37c]
push 0x4110
push 0x2b4
push ecx
lea eax, [ebp - 0x6c]
cmovae eax, dword [ebp - 0x6c]
push 0x80
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
cmovne esi, dword [ebp - 0x37c]
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x8d
call fcn.00405ac0
mov byte [ebp - 4], 0x70
mov dword [ebp - 0xc0], esi
test esi, esi
je 0x4d4ffa
push ecx
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0xc0]
call fcn.005d7990
add esp, 4
test al, al
je 0x4d4ffa
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.004b1f60
mov ecx, eax
call fcn.004b4400
mov ecx, dword [ebp - 0x380]
lea eax, [ebp - 0x50]
push eax
call fcn.00414300
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x91
call fcn.00405ac0
mov edi, 1
jmp 0x4d50e9
mov edx, ebx
lea ecx, [ebp - 0xa4]
call fcn.004de590
push str..png
lea edx, [ebp - 0xa4]
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x38]
call fcn.00405e30
add esp, 4
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x56
push eax
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x3a4]
call fcn.004e05c0
add esp, 4
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x57
call fcn.0040cdf0
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0x58
call fcn.00405ac0
sub esp, 0xc
mov byte [ebp - 4], 0x56
mov ecx, ebx
call fcn.005d6d10
add esp, 0xc
mov dword [ebp - 0x384], eax
test eax, eax
je 0x4d50c9
push ecx
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x384]
call fcn.005d7990
mov ecx, dword [ebp - 0x380]
lea eax, [ebp - 0x38]
add esp, 4
cmp ecx, eax
je 0x4d50c9
cmp dword [ebp - 0x24], 8
push dword [ebp - 0x28]
cmovae eax, dword [ebp - 0x38]
push eax
call fcn.00405b20
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x5c
call fcn.00405ac0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x60
call fcn.00405ac0
mov edi, 2
mov byte [ebp - 4], 0x45
mov byte [ebp - 4], 0x95
mov esi, dword [ebp - 0x88]
test esi, esi
je 0x4d511c
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4d511c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x4d511c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x96
call fcn.00405ac0
mov byte [ebp - 4], 3
mov byte [ebp - 4], 0x9c
lea ecx, [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
push dword [esi + 4]
call fcn.004b5a40
mov eax, dword [ebp - 0x1c]
push 0x34
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x1c]
mov dword [eax], esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], esi
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x9b
push dword [ebp - 0x1c]
call fcn.00634ee5
add esp, 8
lea ecx, [ebp - 0x84]
mov dword [ebp - 4], 0x9d
call fcn.00405ac0
mov dword [ebp - 4], 0xffffffff
mov eax, edi
jmp 0x4d5186
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00634bf3
mov esp, ebp
pop ebp
ret