Function at 0x100511e2
Capabilities:
Get common file path
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov dword [ebp - 8], 2
push ebx
mov dword [ebp - 0xc], 9
xor ebx, ebx
push esi
mov dword [ebp - 0x10], 0x83d87e3b
xor esi, esi
mov dword [ebp - 0xc], 0xfcc1031c
inc esi
push edi
mov dword [ebp - 0xc], 0xfffffff6
mov edi, ecx
mov dword [ebp - 0xc], ebx
jmp 0x10051228
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x14], 5
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x1005121a
mov eax, dword [ebp - 8]
add eax, dword [ebp - 8]
je 0x10051238
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 8]
cmp eax, 0x76f
mov eax, dword [ebp - 8]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0xc], ecx
mov ecx, ebx
cmp dword [ebp - 0xc], ebx
je 0x10051268
mov ecx, esi
mov eax, dword [ebp - 8]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
push 0x277f
setl dl
xor ecx, ecx
cmp edx, eax
push edi
setg cl
cmp ecx, 0xe5077045
push 0x4a8b
sbb eax, eax
add eax, 0x15b2a60a
neg eax
push 0x2953
sbb eax, eax
inc eax
add eax, dword [ebp - 0x14]
neg eax
push 0xc84
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 8]
push esi
push 0x5435
cmp eax, esi
setge cl
mov dword [ebp - 0xc], ecx
call fcn.1004a829
mov dword [ebp - 8], 0xb457102d
add esp, 0x1c
mov dword [ebp - 8], ebx
jmp 0x100512ee
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x34], 0x1b3c692b
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x100512e0
mov dword [ebp - 8], ebx
jmp 0x10051307
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x28], 0xfffffffa
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x100512f9
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10051321
push ebx
push 0x218c
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 8], 2
cmp dword [ebp - 8], ebx
jl 0x1005137d
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10051354
push ebx
push 0x13d0
push 0x25c2
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCharABCWidthsFloatA]
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x34], ebx
je 0x1005136e
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x34]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x34]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x34]
mov dword [ebp - 0x24], esi
dec dword [ebp - 8]
jns 0x1005132d
push edi
call fcn.10031eb1
mov dword [ebp - 0xc], 0x3fa75c1
mov edi, eax
pop ecx
mov dword [ebp - 8], ebx
jmp 0x100513a0
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x20], 0xc58a
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10051392
mov dword [ebp - 8], ebx
jmp 0x100513b9
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x18], 0x3cef3392
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100513ab
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jne 0x100513d0
mov eax, ebx
cmp dword [ebp - 0x1c], ebx
je 0x100513d2
mov eax, esi
cmp eax, dword [ebp - 0x1c]
je 0x100513da
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x1c], ebx
je 0x10051406
cmp dword [ebp - 0x20], ebx
je 0x10051406
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
je 0x100513f9
cmp dword [ebp - 0x1c], ebx
jne 0x100513f9
mov esi, ebx
lea eax, [esi + 0x3fc2]
test eax, eax
je 0x10051406
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], 0x6a08376f
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10051435
push 0x23b7
push 0x1054
push ebx
push 0x2f2
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret