Function at 0x100226a
Capabilities:
Get file system object information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x57c
mov eax, dword [0x10052dc]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x550], edi
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x524], 5
call dword [sym.imp.GDI32.dll_AddFontResourceW]
mov ecx, eax
mov eax, dword [0x1005314]
test eax, eax
mov dword [ebp - 0x538], ecx
je 0x10022bd
mov dword [0x1005318], ecx
test ecx, ecx
je 0x1002a4c
mov ecx, dword [ebp - 0x538]
and dword [ebp - 0x548], 0
imul ecx, ecx, 0x5c
test eax, eax
mov dword [ebp - 0x540], ecx
push ecx
je 0x10022ec
call fcn.01003c58
mov dword [0x10059d4], eax
jmp 0x10022f1
call fcn.01003c58
mov esi, dword [sym.imp.GDI32.dll_GetFontResourceInfoW]
push 2
push eax
mov dword [ebp - 0x528], eax
lea eax, [ebp - 0x540]
push eax
push edi
call esi
test eax, eax
je 0x1002a37
push 3
lea eax, [ebp - 0x55c]
push eax
lea eax, [ebp - 0x558]
push eax
push edi
mov dword [ebp - 0x544], 1
mov dword [ebp - 0x558], 4
call esi
test eax, eax
je 0x1002350
cmp dword [ebp - 0x55c], 0
je 0x1002350
mov eax, dword [ebp - 0x528]
mov byte [eax + 0x18], 7
xor eax, eax
cmp dword [0x1005314], eax
je 0x1002366
mov ecx, dword [ebp - 0x538]
mov dword [ebp - 0x544], ecx
cmp dword [ebp - 0x544], eax
mov dword [ebp - 0x534], eax
jle 0x1002a24
cmp dword [0x1005314], 0
je 0x10023c6
mov esi, dword [ebp - 0x534]
imul esi, esi, 0x5c
add esi, dword [ebp - 0x528]
push 0x17
pop ecx
lea edi, [ebp - 0x260]
rep movsd dword es:[edi], dword [esi]
cmp word [ebp - 0x244], 0x40
jne 0x10023bd
cmp dword [ebp - 0x538], 2
jne 0x1002a0c
dec dword [0x1005318]
jmp 0x1002a0c
lea eax, [ebp - 0x260]
push eax
jmp 0x10023cc
push dword [ebp - 0x528]
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
xor edi, edi
push edi
mov dword [ebp - 0x53c], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
cmp eax, edi
mov dword [ebp - 0x52c], eax
je 0x10029f8
push dword [ebp - 0x53c]
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 - 0x52c]
mov dword [ebp - 0x554], eax
call esi
push edi
push edi
push edi
push 0x47495344
push dword [ebp - 0x52c]
mov dword [ebp - 0x51c], eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x518], eax
je 0x1002482
push eax
call fcn.01003c58
cmp eax, edi
mov dword [ebp - 0x530], eax
jne 0x1002451
mov dword [ebp - 0x518], edi
jmp 0x1002482
push dword [ebp - 0x518]
push dword [ebp - 0x530]
push edi
push 0x47495344
push dword [ebp - 0x52c]
call esi
cmp eax, 0xffffffff
jne 0x1002476
mov dword [ebp - 0x518], edi
push dword [ebp - 0x530]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x51c], 0xffffffff
jne 0x1002491
mov dword [ebp - 0x51c], edi
cmp dword [ebp - 0x518], 0xffffffff
jne 0x10024a0
mov dword [ebp - 0x518], edi
cmp dword [ebp - 0x51c], edi
jne 0x10024b0
cmp dword [ebp - 0x518], edi
je 0x10024e3
cmp dword [ebp - 0x51c], edi
mov dword [ebp - 0x524], 4
je 0x10024e3
push edi
push edi
push edi
push 0x44534d4d
push dword [ebp - 0x52c]
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x548], eax
jne 0x10024e3
mov dword [ebp - 0x548], edi
push edi
push edi
push edi
push 0x656d616e
push dword [ebp - 0x52c]
call esi
cmp dword [ebp - 0x524], 4
mov dword [ebp - 0x540], eax
je 0x100251f
cmp eax, edi
je 0x1002510
cmp eax, 0xffffffff
je 0x1002510
xor ecx, ecx
inc ecx
jmp 0x1002512
xor ecx, ecx
xor edx, edx
cmp ecx, edi
sete dl
mov dword [ebp - 0x524], edx
cmp dword [ebp - 0x524], edi
je 0x100256d
cmp dword [ebp - 0x524], 4
je 0x100256d
mov esi, dword [ebp - 0x528]
lea eax, [esi + 0x1c]
push eax
mov dword [ebx + 0x5c], 2
mov dword [ebx + 0x60], 0x1e
mov dword [ebx + 0x64], 1
call fcn.01002235
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 0x10029a5
push eax
call fcn.01003c58
push dword [ebp - 0x540]
mov dword [ebp - 0x530], eax
push eax
push edi
push 0x656d616e
push dword [ebp - 0x52c]
call esi
push 4
push dword [ebp - 0x530]
mov dword [ebx + 0x5c], 2
mov dword [ebx + 0x60], 0x1e
mov dword [ebx + 0x64], 1
call fcn.01001713
mov esi, eax
cmp esi, edi
je 0x1002645
cmp dword [0x1005314], edi
push esi
je 0x1002627
cmp dword [ebp - 0x534], edi
jne 0x10025d2
call fcn.01002235
jmp 0x10025df
push dword [ebx + 0x68]
push 0x11
call fcn.01003c10
add esp, 0xc
mov dword [ebx + 0x68], eax
mov eax, dword [ebp - 0x534]
inc eax
cmp eax, dword [ebp - 0x538]
jne 0x100260f
mov eax, dword [ebp - 0x524]
push dword [ebx + 0x68]
neg eax
sbb eax, eax
and eax, 0x10
add eax, 4
push eax
call fcn.01003c10
pop ecx
pop ecx
mov dword [ebx + 0x68], eax
push dword [ebx + 0x68]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
mov dword [ebx + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x10026b7
mov eax, dword [ebp - 0x524]
neg eax
sbb eax, eax
and eax, 0x10
add eax, 4
push eax
call fcn.01003c10
pop ecx
pop ecx
mov dword [ebx + 0x68], eax
push eax
jmp 0x1002612
cmp dword [0x1005314], edi
je 0x1002699
mov esi, dword [ebp - 0x534]
cmp esi, edi
lea eax, [ebp - 0x244]
push eax
jne 0x1002665
call fcn.01002235
jmp 0x1002672
push dword [ebx + 0x68]
push 0x11
call fcn.01003c10
add esp, 0xc
inc esi
cmp esi, dword [ebp - 0x538]
mov dword [ebx + 0x68], eax
jne 0x10026ab
push eax
mov eax, dword [ebp - 0x524]
neg eax
sbb eax, eax
and eax, 0x10
add eax, 4
push eax
call fcn.01003c10
pop ecx
pop ecx
jmp 0x10026a8
mov eax, dword [ebp - 0x528]
add eax, 0x1c
push eax
call fcn.01002235
mov dword [ebx + 0x68], eax
push dword [ebx + 0x68]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebx + 0x6c], eax
cmp dword [ebp - 0x524], 4
lea eax, [ebx + 0x70]
push 5
lea esi, [ebx + 0x5c]
pop ecx
mov edi, eax
mov dword [ebp - 0x520], 1
rep movsd dword es:[edi], dword [esi]
jne 0x10027e0
mov dword [eax], 1
lea eax, [ebp - 0x204]
push eax
xor edi, edi
push 0x16
mov word [ebp - 0x204], di
mov dword [ebx + 0x74], 0xc
mov dword [ebx + 0x78], edi
call fcn.01003c10
cmp dword [ebp - 0x518], edi
pop ecx
mov esi, eax
pop ecx
mov dword [ebx + 0x7c], esi
je 0x1002734
push esi
push 0x17
call fcn.01003c10
pop ecx
cmp esi, edi
pop ecx
mov dword [ebx + 0x7c], eax
mov edi, 0x10052d0
je 0x1002739
cmp esi, edi
je 0x1002739
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1002739
mov edi, 0x10052d0
mov esi, dword [ebx + 0x7c]
xor eax, eax
cmp dword [ebp - 0x51c], eax
push esi
setne al
add eax, 0x18
push eax
call fcn.01003c10
test esi, esi
pop ecx
pop ecx
mov dword [ebx + 0x7c], eax
je 0x1002765
cmp esi, edi
je 0x1002765
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebx + 0x7c]
push esi
push 0x1a
call fcn.01003c10
test esi, esi
pop ecx
pop ecx
mov dword [ebx + 0x7c], eax
je 0x1002784
cmp esi, edi
je 0x1002784
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x51c], 0
je 0x10027b9
mov esi, dword [ebx + 0x7c]
xor eax, eax
cmp dword [ebp - 0x548], eax
push esi
setne al
add eax, 0x1b
push eax
call fcn.01003c10
test esi, esi
pop ecx
pop ecx
mov dword [ebx + 0x7c], eax
je 0x10027b9
cmp esi, edi
je 0x10027b9
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [ebx + 0x7c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 5
lea esi, [ebx + 0x70]
lea edi, [ebx + 0x84]
pop ecx
mov dword [ebx + 0x80], eax
mov dword [ebp - 0x520], 2
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x520]
lea eax, [esi + esi*4]
lea edi, [ebx + eax*4]
xor eax, eax
inc eax
push eax
push dword [ebp - 0x530]
lea ecx, [esi + esi*4 + 0x19]
and dword [ebx + ecx*4], 0
mov dword [ebp - 0x51c], edi
mov dword [edi + 0x60], 0xc
mov dword [edi + 0x5c], eax
call fcn.01001713
test eax, eax
mov dword [ebp - 0x518], eax
je 0x100286e
push eax
push 5
call fcn.01003c10
pop ecx
pop ecx
mov esi, edi
push eax
mov dword [esi + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x518]
mov dword [esi + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x520]
inc eax
mov dword [ebp - 0x520], eax
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
push 5
lea esi, [eax + 0x48]
lea edi, [eax + 0x5c]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x520]
mov dword [ebp - 0x51c], eax
mov edi, eax
push dword [ebp - 0x550]
call fcn.01001533
add eax, 0x3ff
shr eax, 0xa
push eax
push 6
call fcn.01003c10
pop ecx
pop ecx
push eax
mov dword [edi + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 5
push dword [ebp - 0x530]
mov dword [edi + 0x6c], eax
call fcn.01001713
test eax, eax
mov dword [ebp - 0x518], eax
je 0x1002907
mov eax, dword [ebp - 0x520]
inc eax
push 5
mov dword [ebp - 0x520], eax
pop ecx
push dword [ebp - 0x518]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
lea esi, [eax + 0x48]
lea edi, [eax + 0x5c]
push 7
mov dword [ebp - 0x51c], eax
rep movsd dword es:[edi], dword [esi]
call fcn.01003c10
mov esi, dword [ebp - 0x51c]
pop ecx
pop ecx
push eax
mov dword [esi + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x518]
mov dword [esi + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebp - 0x520]
push 0
push dword [ebp - 0x530]
call fcn.01001713
test eax, eax
mov dword [ebp - 0x518], eax
je 0x1002985
mov eax, dword [ebp - 0x520]
inc eax
mov dword [ebp - 0x520], eax
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
push 5
pop ecx
push dword [ebp - 0x518]
lea edx, [eax + 0x5c]
lea esi, [eax + 0x48]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
push 8
mov dword [ebp - 0x51c], eax
mov dword [eax + 0x60], 0xa
mov dword [edx], 4
call fcn.01003c10
mov esi, dword [ebp - 0x51c]
pop ecx
pop ecx
push eax
mov dword [esi + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x518]
mov dword [esi + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebp - 0x520]
lea eax, [esi + esi*4 + 0x19]
mov dword [ebx + eax*4], 1
cmp dword [0x1005314], 0
je 0x10029a5
push dword [ebp - 0x530]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebp - 0x528]
push esi
call fcn.010013f5
test dword [0x1005314], eax
je 0x10029d8
push 2
lea eax, [ebp - 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
mov al, byte [ebp - 0x57c]
mov byte [esi + 0x17], al
push dword [ebp - 0x554]
push dword [ebp - 0x52c]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x52c]
call dword [sym.imp.GDI32.dll_DeleteDC]
xor edi, edi
cmp dword [ebp - 0x53c], edi
je 0x1002a0c
push dword [ebp - 0x53c]
call dword [sym.imp.GDI32.dll_DeleteObject]
inc dword [ebp - 0x534]
mov eax, dword [ebp - 0x534]
cmp eax, dword [ebp - 0x544]
jl 0x1002378
mov esi, dword [ebp - 0x528]
push 0x17
pop ecx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x550]
cmp dword [0x1005314], 0
jne 0x1002a4c
push dword [ebp - 0x528]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp word [edi], 0
mov esi, edi
je 0x1002a69
cmp word [esi], 0x7c
je 0x1002a69
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
cmp word [esi], 0
jne 0x1002a54
cmp word [esi], 0
je 0x1002a8e
and word [esi], 0
push dword [ebx + 0x68]
push 0x15
call fcn.01003c10
pop ecx
pop ecx
push eax
mov dword [ebx + 0x68], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebx + 0x6c], eax
jmp 0x1002a90
xor esi, esi
cmp dword [ebp - 0x524], 5
je 0x1002ac7
push 0x100
push 0x2b4
lea eax, [ebp - 0x514]
push eax
push 0
push edi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x1002ac7
mov eax, dword [ebp - 0x514]
mov ecx, dword [ebp - 0x54c]
mov dword [ecx], eax
jmp 0x1002ad0
mov eax, dword [ebp - 0x54c]
and dword [eax], 0
test esi, esi
je 0x1002ad9
mov word [esi], 0x7c
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x524]
pop edi
pop esi
pop ebx
call fcn.01003d12
leave
ret 0xc