Function at 0x1018a340
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x854
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0x774], eax
add eax, 0x218
push ebx
push esi
push edi
mov dword [ebp - 0x778], eax
mov dword [eax], 0
call fcn.101750e0
test eax, eax
je 0x1018abd6
mov dword [ebp - 0x788], 0
mov dword [ebp - 0x784], 0
mov dword [ebp - 0x780], 0xffffffff
call fcn.10009c50
neg eax
lea ecx, [ebp - 0x788]
sbb esi, esi
and esi, 0x100
add esi, 0x20019
call fcn.10008220
push esi
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Icons
lea eax, [ebp - 0x788]
push reloc.OLEAUT32.dll_SysReAllocString
push eax
mov ecx, eax
call fcn.1000a260
push 0x410
lea eax, [ebp - 0x61c]
push 0
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [ebp - 0x784]
add esp, 0xc
or eax, 0xffffffff
mov dword [ebp - 0x770], 0x208
test ecx, ecx
je 0x1018a423
lea eax, [ebp - 0x770]
push eax
lea eax, [ebp - 0x61c]
push eax
push 0x10211b44
push ecx
lea ecx, [ebp - 0x788]
call fcn.1000a410
test eax, eax
je 0x1018a45e
mov ecx, dword [ebp - 0x788]
test ecx, ecx
je 0x1018a456
lea eax, [ebp - 0x770]
mov dword [ebp - 0x770], 0x208
push eax
lea eax, [ebp - 0x61c]
push eax
push 0x10211b44
push ecx
lea ecx, [ebp - 0x788]
call fcn.1000a410
test eax, eax
jne 0x1018abcb
lea eax, [ebp - 0x61c]
push eax
lea ecx, [ebp - 0x754]
call fcn.10002490
lea eax, [ebp - 0x754]
push eax
call fcn.10092220
push dword [ebp - 0x754]
lea eax, [ebp - 0x758]
push eax
call fcn.10008d60
add esp, 0xc
lea ecx, [ebp - 0x754]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x758]
or ebx, 0xffffffff
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a4bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x10202940
lea ecx, [ebp - 0x760]
call fcn.10002490
push 0x20
lea eax, [ebp - 0x760]
push eax
push dword [ebp - 0x754]
lea eax, [ebp - 0x758]
push eax
call fcn.100082e0
add esp, 0x10
lea ecx, [ebp - 0x754]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x758]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a514
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call sub.msvcrt.dll_memset
mov edi, dword [ebp - 0x754]
lea eax, [ebp - 0x20c]
add esp, 0xc
push edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x1018a554
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0xe
call fcn.10003680
add esp, 4
test eax, eax
je 0x1018a56d
lea ecx, [ebp - 0x20c]
push ecx
call eax
jmp 0x1018a57a
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x754], eax
test esi, esi
je 0x1018a58b
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x754]
cmp eax, 0xffffffff
je 0x1018a6f5
test al, 0x10
jne 0x1018a6f5
mov ecx, dword [ebp - 0x774]
mov dword [ebp - 0x768], 0
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
call dword [eax]
push eax
lea eax, [ebp - 0x768]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.100dda60
add esp, 0xc
cmp dword [ebp - 0x768], 0
je 0x1018ab99
mov eax, dword [ebp - 0x760]
add eax, 0xfffffff0
push eax
call fcn.10002a60
add esp, 4
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x760]
mov dword [ebp - 0x754], esi
cmp word [eax], 0x2d
jne 0x1018a638
mov eax, dword [eax - 0xc]
lea ecx, [ebp - 0x760]
dec eax
push eax
lea eax, [ebp - 0x758]
push eax
call fcn.1000a000
push eax
lea ecx, [ebp - 0x754]
call fcn.10002790
lea ecx, [ebp - 0x758]
call fcn.10007e10
mov esi, dword [ebp - 0x754]
push str.0123456789
push esi
call sub.msvcrt.dll_wcsspn
add esp, 8
lea ecx, [ebp - 0x754]
push eax
lea eax, [ebp - 0x758]
push eax
call fcn.10009ca0
lea eax, [ebp - 0x754]
push eax
lea eax, [ebp - 0x758]
push eax
call fcn.10033f10
mov edx, dword [ebp - 0x758]
add esp, 8
mov byte [ebp - 0x759], al
add edx, 0xfffffff0
mov ecx, ebx
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x1018a698
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0x759]
test al, al
je 0x1018a6de
push dword [ebp - 0x760]
call sub.msvcrt.dll__wtoi
add esp, 4
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [0x10257d10]
call dword [sym.imp.SHELL32.dll_ExtractIconW]
test eax, eax
je 0x1018a6de
cmp eax, 1
je 0x1018a6de
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
lea ecx, [ebp - 0x754]
call fcn.10007e10
jmp 0x1018ab99
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x1018a6f5
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20119
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x79c], 0
push 0x10211b44
mov dword [ebp - 0x798], 0
mov dword [ebp - 0x794], 0
call fcn.10002490
push ecx
mov ecx, esp
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Icons
call fcn.10002490
push reloc.OLEAUT32.dll_SysReAllocString
lea eax, [ebp - 0x79c]
push eax
lea eax, [ebp - 0x758]
push eax
call fcn.100da240
mov edx, dword [ebp - 0x758]
add esp, 0x1c
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a76c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x10202940
lea ecx, [ebp - 0x754]
call fcn.10002490
push 0x9c59
lea ecx, [ebp - 0x76c]
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x768]
mov esi, dword [eax]
call fcn.10002490
push eax
lea eax, [ebp - 0x758]
push 0x9c4a
push eax
call fcn.100053d0
push esi
lea ecx, [ebp - 0x20c]
push ecx
push dword [eax]
lea eax, [ebp - 0x754]
push str._s_s_s
push eax
call fcn.10002cb0
mov edx, dword [ebp - 0x758]
add esp, 0x20
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a7eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x768]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a808
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x76c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a825
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x774]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1018a839
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp 0x1018a83e
mov eax, 0x10202940
push eax
lea ecx, [ebp - 0x750]
call fcn.10183f20
push 0x10202940
lea ecx, [ebp - 0x76c]
mov dword [ebp - 0x628], 0x1c
call fcn.10002490
mov eax, dword [ebp - 0x76c]
push 1
push 0
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
mov dword [ebp - 0x790], eax
call fcn.10002a60
add esp, 4
lea ecx, [ebp - 0x764]
add eax, 0x10
mov dword [esi], eax
push 0x27d4
call fcn.10002490
push 0x2807
lea ecx, [ebp - 0x78c]
mov eax, dword [eax]
mov dword [ebp - 0x76c], eax
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x768]
mov ebx, dword [eax]
call fcn.10002490
push eax
lea eax, [ebp - 0x758]
push 0x9c49
push eax
call fcn.100053d0
add esp, 0xc
mov esi, dword [eax]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 0
push 0xffffffffffffffff
push 4
lea eax, [ebp - 0x79c]
push eax
push 0
push 0
push dword [ebp - 0x76c]
push ebx
push dword [ebp - 0x754]
push esi
mov esi, dword [ebp - 0x774]
mov ecx, esi
call fcn.100cd930
mov edx, dword [ebp - 0x758]
or ebx, 0xffffffff
mov dword [esi + 0x218], eax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a958
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x768]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a975
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x78c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a992
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x764]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018a9af
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, esi
call fcn.10194850
push 2
push 0x10202940
lea ecx, [ebp - 0x854]
call fcn.10184120
lea eax, [ebp - 0x854]
push eax
lea ecx, [ebp - 0x820]
call fcn.10188e80
mov eax, dword [esi + 0x218]
lea ecx, [ebp - 0x7e8]
push 0x10202940
mov dword [ebp - 0x7ec], eax
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x7e4]
call fcn.10002490
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x7dc]
mov dword [ebp - 0x7e0], eax
lea eax, [ebp - 0x820]
push eax
call fcn.10188e80
lea ecx, [ebp - 0x820]
mov dword [ebp - 0x7a8], 2
mov dword [ebp - 0x7a0], 0
call fcn.100e54a0
mov edx, dword [ebp - 0x778]
lea ecx, [esi + 0xd8]
mov esi, dword [ecx]
mov dword [ebp - 0x758], ecx
mov dword [ebp - 0x764], esi
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1018aa8b
mov ecx, dword [edx]
cmp dword [eax + 0x10], ecx
jae 0x1018aa7b
mov eax, dword [eax + 8]
jmp 0x1018aa7f
mov esi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x1018aa71
mov ecx, dword [ebp - 0x758]
cmp esi, dword [ebp - 0x764]
je 0x1018aa9a
mov eax, dword [edx]
cmp eax, dword [esi + 0x10]
jae 0x1018aad6
lea eax, [ebp - 0x759]
mov dword [ebp - 0x764], edx
push eax
lea eax, [ebp - 0x764]
push eax
push 0x1021bd7c
call fcn.10188890
mov ecx, dword [ebp - 0x758]
push eax
add eax, 0x10
push eax
push esi
lea eax, [ebp - 0x764]
push eax
call fcn.10188b50
mov esi, dword [ebp - 0x764]
mov eax, dword [ebp - 0x7ec]
lea ecx, [esi + 0x18]
mov dword [esi + 0x14], eax
lea eax, [ebp - 0x7e8]
push eax
call fcn.10002790
lea eax, [ebp - 0x7e4]
push eax
lea ecx, [esi + 0x1c]
call fcn.10002790
lea eax, [ebp - 0x7e0]
push eax
lea ecx, [esi + 0x20]
call fcn.10002790
lea eax, [ebp - 0x7dc]
push eax
lea ecx, [esi + 0x24]
call fcn.10188f80
mov eax, dword [ebp - 0x7a8]
lea ecx, [ebp - 0x7ec]
mov dword [esi + 0x58], eax
mov eax, dword [ebp - 0x7a4]
mov dword [esi + 0x5c], eax
mov eax, dword [ebp - 0x7a0]
mov dword [esi + 0x60], eax
call fcn.10188f20
lea ecx, [ebp - 0x854]
call fcn.100e54a0
mov edx, dword [ebp - 0x790]
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018ab66
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x750]
call fcn.101841c0
mov edx, dword [ebp - 0x754]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018ab8e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x79c]
call fcn.1002a3c0
mov edx, dword [ebp - 0x760]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1018abb6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x1018abcb
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x788]
call fcn.10008220
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret