Function at 0x467340
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x568
mov eax, dword [0x6ce488]
xor eax, esp
mov dword [esp + 0x564], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov dword [esp + 0xc], eax
mov ecx, str.icon
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x467396
test dx, dx
je 0x467392
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x467396
add eax, 4
add ecx, 4
test dx, dx
jne 0x467370
xor eax, eax
jmp 0x46739b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x467502
mov eax, dword [esi + 0x658]
test eax, eax
je 0x4673ce
cmp byte [esi + 0x65c], 0
je 0x4673ce
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov dword [esi + 0x658], 0
mov byte [esi + 0x65c], 0
push 0x208
lea eax, [esp + 0x364]
push 0
push eax
call fcn.005feb40
add esp, 0xc
lea eax, [esp + 0x360]
push eax
push 0
push 0
push 0
push edi
call fcn.0060af93
add esp, 0x14
lea eax, [esp + 0x2dc]
mov dword [esp + 0x2d8], eax
lea ecx, [esp + 0x2d8]
xor eax, eax
mov word [esp + 0x2dc], ax
lea eax, [esp + 0x360]
push 0xffffffffffffffff
push eax
call fcn.004209c0
push dword [esp + 0x2d8]
call fcn.00613ffc
mov eax, dword [esp + 0x2dc]
add esp, 4
mov ecx, str..ICO
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46746b
test dx, dx
je 0x467467
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46746b
add eax, 4
add ecx, 4
test dx, dx
jne 0x467445
xor eax, eax
jmp 0x467470
sbb eax, eax
or eax, 1
test eax, eax
jne 0x467491
push 0x2010
push eax
push eax
push 1
push edi
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [esi + 0x658], eax
test eax, eax
je 0x4674de
jmp 0x4674d7
push 0x2b4
lea eax, [esp + 0x24]
push 0
push eax
call fcn.005feb40
add esp, 0xc
xor eax, eax
cmp byte [esi + 0x670], al
sete al
add eax, 0x100
push eax
push 0x2b4
lea eax, [esp + 0x28]
push eax
push 0
push edi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4674de
mov dword [esi + 0x658], eax
mov byte [esi + 0x65c], 1
mov eax, dword [esp + 0x2d8]
lea ecx, [esp + 0x2dc]
cmp eax, ecx
je 0x467634
push eax
call fcn.006140b6
add esp, 4
jmp 0x467634
mov eax, dword [esp + 0xc]
mov ecx, str.small
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x467536
test dx, dx
je 0x467532
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x467536
add eax, 4
add ecx, 4
test dx, dx
jne 0x467510
xor eax, eax
jmp 0x46753b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x467584
mov ecx, 0x6a4c78
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46756c
test dx, dx
je 0x467568
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46756c
add eax, 4
add ecx, 4
test dx, dx
jne 0x467546
xor eax, eax
jmp 0x467571
sbb eax, eax
or eax, 1
test eax, eax
jne 0x467634
mov byte [esi + 0x670], al
jmp 0x467634
mov eax, dword [esp + 0xc]
mov ecx, str.inset
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4675b6
test dx, dx
je 0x4675b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4675b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x467590
xor eax, eax
jmp 0x4675bb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x467634
mov dword [esp + 8], eax
lea eax, [esp + 8]
push 0xa
push eax
push edi
call fcn.00614416
add esp, 0xc
mov dword [esp + 0x10], eax
lea eax, [esp + 8]
push 0xa
push eax
mov eax, dword [esp + 0x10]
add eax, 2
push eax
call fcn.00614416
add esp, 0xc
mov dword [esp + 0x14], eax
lea eax, [esp + 8]
push 0xa
push eax
mov eax, dword [esp + 0x10]
add eax, 2
push eax
call fcn.00614416
add esp, 0xc
mov dword [esp + 0x18], eax
lea eax, [esp + 8]
push 0xa
push eax
mov eax, dword [esp + 0x10]
add eax, 2
push eax
call fcn.00614416
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [esi + 0x660], xmm0
mov ecx, esi
call fcn.0042d4d0
push edi
push dword [esp + 0x10]
mov ecx, esi
call fcn.0042d870
mov ecx, dword [esp + 0x56c]
pop edi
pop esi
xor ecx, esp
call fcn.005c358e
mov esp, ebp
pop ebp
ret 8