Function at 0x10023ad
Capabilities:
Get file system object information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38c
mov eax, dword [0x10062d8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x360], edi
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x320], 5
call dword [sym.imp.GDI32.dll_AddFontResourceW]
test eax, eax
mov dword [ebp - 0x33c], eax
jle 0x1002af5
and dword [ebp - 0x358], 0
mov esi, eax
imul eax, eax, 0x5c
push eax
mov dword [ebp - 0x354], eax
call fcn.01003cdf
test eax, eax
mov dword [ebp - 0x324], eax
jne 0x1002423
push 5
pop eax
jmp 0x1002b8b
xor ecx, ecx
inc ecx
cmp esi, ecx
jle 0x100243b
mov dword [0x1006314], ecx
mov dword [0x1006318], esi
mov dword [0x1006f34], eax
mov esi, dword [sym.imp.GDI32.dll_GetFontResourceInfoW]
push 2
push eax
lea eax, [ebp - 0x354]
push eax
push edi
call esi
test eax, eax
je 0x1002ae0
push 3
lea eax, [ebp - 0x368]
push eax
lea eax, [ebp - 0x36c]
push eax
push edi
mov dword [ebp - 0x36c], 4
call esi
test eax, eax
je 0x100248a
cmp dword [ebp - 0x368], 0
je 0x100248a
mov eax, dword [ebp - 0x324]
mov byte [eax + 0x18], 7
and dword [ebp - 0x32c], 0
cmp dword [ebp - 0x33c], 0
jle 0x1002acd
cmp dword [0x1006314], 0
je 0x10024f0
mov eax, dword [ebp - 0x32c]
mov esi, eax
imul esi, esi, 0x5c
add esi, dword [ebp - 0x324]
push 0x17
pop ecx
lea edi, [ebp - 0x60]
rep movsd dword es:[edi], dword [esi]
cmp word [ebp - 0x44], 0x40
jne 0x10024ea
inc eax
cmp eax, dword [ebp - 0x33c]
jne 0x1002ab5
dec dword [0x1006318]
push 4
lea eax, [ebx + 0x68]
push eax
call fcn.01001a96
jmp 0x1002ab5
lea eax, [ebp - 0x60]
push eax
jmp 0x10024f6
push dword [ebp - 0x324]
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
xor edi, edi
push edi
mov dword [ebp - 0x34c], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
cmp eax, edi
mov dword [ebp - 0x31c], eax
je 0x1002aa1
push dword [ebp - 0x34c]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [sym.imp.GDI32.dll_GetFontData]
push edi
push edi
push edi
push 0x20464643
push dword [ebp - 0x31c]
mov dword [ebp - 0x364], eax
call esi
push edi
push edi
push edi
push 0x47495344
push dword [ebp - 0x31c]
mov dword [ebp - 0x340], eax
call esi
push edi
push edi
push edi
push 0x46454447
push dword [ebp - 0x31c]
mov dword [ebp - 0x334], eax
call esi
push edi
push edi
push edi
push 0x42555347
push dword [ebp - 0x31c]
mov dword [ebp - 0x350], eax
call esi
push edi
push edi
push edi
push 0x534f5047
push dword [ebp - 0x31c]
mov dword [ebp - 0x348], eax
call esi
cmp dword [ebp - 0x334], 0xffffffff
mov dword [ebp - 0x344], eax
je 0x10025ec
push dword [ebp - 0x334]
call fcn.01003cdf
cmp eax, edi
mov dword [ebp - 0x338], eax
je 0x10025ec
push dword [ebp - 0x334]
push eax
push edi
push 0x47495344
push dword [ebp - 0x31c]
call esi
cmp eax, 0xffffffff
jne 0x10025de
mov dword [ebp - 0x334], edi
push dword [ebp - 0x338]
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x10025f2
mov dword [ebp - 0x334], edi
or eax, 0xffffffff
cmp dword [ebp - 0x340], eax
jne 0x1002603
mov dword [ebp - 0x340], edi
cmp dword [ebp - 0x350], eax
jne 0x1002611
mov dword [ebp - 0x350], edi
cmp dword [ebp - 0x348], eax
jne 0x100261f
mov dword [ebp - 0x348], edi
cmp dword [ebp - 0x344], eax
jne 0x100262d
mov dword [ebp - 0x344], edi
cmp dword [ebp - 0x340], edi
jne 0x100264d
cmp dword [ebp - 0x350], edi
jne 0x100264d
cmp dword [ebp - 0x348], edi
jne 0x100264d
cmp dword [ebp - 0x344], edi
je 0x1002680
cmp dword [ebp - 0x340], edi
mov dword [ebp - 0x320], 4
je 0x1002680
push edi
push edi
push edi
push 0x44534d4d
push dword [ebp - 0x31c]
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x358], eax
jne 0x1002680
mov dword [ebp - 0x358], edi
push edi
push edi
push edi
push 0x656d616e
push dword [ebp - 0x31c]
call esi
cmp dword [ebp - 0x320], 4
mov dword [ebp - 0x354], eax
je 0x10026bc
cmp eax, edi
je 0x10026ad
cmp eax, 0xffffffff
je 0x10026ad
xor ecx, ecx
inc ecx
jmp 0x10026af
xor ecx, ecx
xor edx, edx
cmp ecx, edi
sete dl
mov dword [ebp - 0x320], edx
cmp dword [ebp - 0x320], edi
je 0x100270a
cmp dword [ebp - 0x320], 4
je 0x100270a
mov esi, dword [ebp - 0x324]
lea eax, [esi + 0x1c]
push eax
mov dword [ebx + 0x5c], 2
mov dword [ebx + 0x60], 0x12
mov dword [ebx + 0x64], 1
call fcn.01002378
push eax
mov dword [ebx + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebx + 0x6c], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 4], edi
jmp 0x1002a56
push eax
call fcn.01003cdf
mov ecx, dword [ebp - 0x354]
push ecx
push eax
push edi
push 0x656d616e
push dword [ebp - 0x31c]
lea edx, [eax + ecx - 1]
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x328], edx
call esi
push 4
push dword [ebp - 0x328]
mov dword [ebp - 0x330], edi
push dword [ebp - 0x338]
mov dword [ebx + 0x5c], 2
mov dword [ebx + 0x60], 0x12
mov dword [ebx + 0x64], edi
call fcn.0100171c
cmp eax, edi
mov dword [ebp - 0x318], eax
je 0x10027e1
cmp dword [0x1006314], edi
push eax
je 0x10027ae
cmp dword [ebp - 0x32c], edi
lea esi, [ebx + 0x68]
jne 0x1002785
call fcn.01002378
jmp 0x1002791
push dword [esi]
push 0xe
call fcn.01003c97
add esp, 0xc
mov dword [esi], eax
mov eax, dword [ebp - 0x32c]
inc eax
cmp eax, dword [ebp - 0x33c]
jne 0x10027aa
push 4
push esi
call fcn.01001a96
push dword [esi]
jmp 0x10027ca
mov eax, dword [ebp - 0x320]
neg eax
sbb eax, eax
and eax, 0xd
add eax, 4
push eax
call fcn.01003c97
pop ecx
pop ecx
mov dword [ebx + 0x68], eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x318]
mov dword [ebx + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1002853
cmp dword [0x1006314], edi
je 0x1002837
cmp dword [ebp - 0x32c], edi
lea eax, [ebp - 0x44]
lea esi, [ebx + 0x68]
push eax
jne 0x10027ff
call fcn.01002378
jmp 0x100280b
push dword [esi]
push 0xe
call fcn.01003c97
add esp, 0xc
mov dword [esi], eax
mov eax, dword [ebp - 0x32c]
inc eax
cmp eax, dword [ebp - 0x33c]
jne 0x1002833
mov eax, dword [ebp - 0x320]
neg eax
sbb eax, eax
and eax, 0xd
add eax, 4
push eax
push esi
call fcn.01001a96
push dword [esi]
jmp 0x100284a
mov eax, dword [ebp - 0x324]
add eax, 0x1c
push eax
call fcn.01002378
mov dword [ebx + 0x68], eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebx + 0x6c], eax
xor eax, eax
inc eax
push eax
push dword [ebp - 0x328]
mov dword [ebx + 0x60], 0xa
push dword [ebp - 0x338]
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x64], edi
call fcn.0100171c
cmp eax, edi
mov dword [ebp - 0x318], eax
je 0x10028bc
push 5
pop ecx
push eax
lea esi, [ebx + 0x5c]
lea edi, [ebx + 0x70]
push 5
mov dword [ebp - 0x330], 1
rep movsd dword es:[edi], dword [esi]
call fcn.01003c97
pop ecx
pop ecx
push eax
mov dword [ebx + 0x7c], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x318]
mov dword [ebx + 0x80], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
push 5
push dword [ebp - 0x328]
push dword [ebp - 0x338]
call fcn.0100171c
cmp eax, edi
mov dword [ebp - 0x318], eax
je 0x100292b
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
imul eax, eax, 0x14
push 5
pop ecx
push dword [ebp - 0x318]
add eax, ebx
lea esi, [eax + 0x48]
lea edi, [eax + 0x5c]
push 7
mov dword [ebp - 0x328], eax
rep movsd dword es:[edi], dword [esi]
call fcn.01003c97
mov esi, dword [ebp - 0x328]
pop ecx
pop ecx
push eax
mov dword [esi + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x318]
mov dword [esi + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
cmp dword [ebp - 0x320], 4
je 0x1002948
cmp dword [ebp - 0x320], edi
je 0x1002948
cmp dword [ebp - 0x334], edi
je 0x1002a3c
push 0x10012b8
call fcn.01002378
inc dword [ebp - 0x330]
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x330]
imul eax, eax, 0x14
add eax, ebx
lea edx, [eax + 0x5c]
mov edi, edx
push 5
lea esi, [eax + 0x48]
pop ecx
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
inc ecx
mov dword [edx], ecx
mov edx, dword [ebp - 0x330]
add edx, 5
imul edx, edx, 0x14
xor esi, esi
cmp dword [ebp - 0x350], esi
mov dword [ebp - 0x328], eax
mov dword [eax + 0x60], 0xa
mov dword [edx + ebx], ecx
mov dword [eax + 0x68], 0x10012b8
jne 0x10029b8
cmp dword [ebp - 0x348], esi
jne 0x10029b8
cmp dword [ebp - 0x344], esi
je 0x10029c6
push 0x13
lea eax, [ebp - 0x318]
push eax
call fcn.01001a96
cmp dword [ebp - 0x334], esi
je 0x10029dc
push 0x14
lea eax, [ebp - 0x318]
push eax
call fcn.01001a96
xor eax, eax
cmp dword [ebp - 0x340], esi
setne al
add eax, 0x15
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.01001a96
push 0x17
lea eax, [ebp - 0x318]
push eax
call fcn.01001a96
cmp dword [ebp - 0x358], esi
je 0x1002a1b
push 0x19
lea eax, [ebp - 0x318]
push eax
call fcn.01001a96
mov eax, dword [ebp - 0x318]
cmp eax, esi
mov esi, dword [ebp - 0x328]
je 0x1002a2e
mov dword [esi + 0x68], eax
push dword [esi + 0x68]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [esi + 0x6c], eax
xor edi, edi
cmp dword [0x1006314], edi
je 0x1002a50
push dword [ebp - 0x338]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebp - 0x324]
push esi
call fcn.010013a5
test dword [0x1006314], eax
je 0x1002a83
push 2
lea eax, [ebp - 0x38c]
push eax
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
mov al, byte [ebp - 0x38c]
mov byte [esi + 0x17], al
push dword [ebp - 0x364]
push dword [ebp - 0x31c]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x31c]
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp dword [ebp - 0x34c], edi
je 0x1002ab5
push dword [ebp - 0x34c]
call dword [sym.imp.GDI32.dll_DeleteObject]
inc dword [ebp - 0x32c]
mov eax, dword [ebp - 0x32c]
cmp eax, dword [ebp - 0x33c]
jl 0x100249e
mov esi, dword [ebp - 0x324]
push 0x17
pop ecx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x360]
cmp dword [0x1006314], 0
jne 0x1002af5
push dword [ebp - 0x324]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp word [edi], 0
mov esi, edi
je 0x1002b12
cmp word [esi], 0x7c
je 0x1002b12
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
cmp word [esi], 0
jne 0x1002afd
cmp word [esi], 0
je 0x1002b3a
and word [esi], 0
push 0x12
lea edi, [ebx + 0x68]
push edi
call fcn.01001a96
push dword [edi]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, dword [ebp - 0x360]
mov dword [ebx + 0x6c], eax
jmp 0x1002b3c
xor esi, esi
cmp dword [ebp - 0x320], 5
je 0x1002b73
push 0x100
push 0x2b4
lea eax, [ebp - 0x314]
push eax
push 0
push edi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x1002b73
mov eax, dword [ebp - 0x314]
mov ecx, dword [ebp - 0x35c]
mov dword [ecx], eax
jmp 0x1002b7c
mov eax, dword [ebp - 0x35c]
and dword [eax], 0
test esi, esi
je 0x1002b85
mov word [esi], 0x7c
mov eax, dword [ebp - 0x320]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0100404e
leave
ret 0xc