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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x24c091b
push eax
mov dword fs:[0], esp
sub esp, 0x420
push ebx
push ebp
push esi
mov ebp, ecx
xor esi, esi
cmp ebp, esi
push edi
mov ebx, edx
je 0x24416d7
cmp ebx, esi
je 0x24416d7
mov edi, dword [esp + 0x444]
cmp edi, esi
je 0x24416d7
mov eax, dword [esp + 0x440]
cmp eax, 0x64
ja case.0x244145c.6
xor ecx, ecx
mov cl, byte [eax + 0x2441768]
jmp dword [ecx*4 + 0x244174c]
push edi
call fcn.024adc6c
lea esi, [edi + eax*2]
add esp, 4
cmp esi, edi
jbe 0x2441489
mov ax, word [esi]
cmp ax, 0x5c
je 0x2441489
cmp ax, 0x2e
je 0x2441489
sub esi, 2
cmp esi, edi
ja 0x2441473
cmp word [esi], 0x2e
je 0x2441494
mov esi, 0x24e26a0
call dword [sym.imp.kernel32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x244152e
push 0x24da3b8
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
test eax, eax
je 0x24416d7
push 0x24db4c0
push eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov edx, eax
test edx, edx
je 0x24416d7
xor eax, eax
mov dword [esp + 0x17c], 0
mov ecx, 0xac
lea edi, [esp + 0x180]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x448]
test ecx, ecx
setne al
lea ecx, [esp + 0x17c]
or eax, 0x4010
push eax
push 0x2b4
push ecx
push 0x80
push esi
call edx
test eax, eax
je 0x24416d7
mov edx, dword [esp + 0x180]
mov dword [ebp], eax
mov dword [ebx], edx
mov eax, 1
jmp 0x24416d9
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
lea edx, [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x438], edi
call fcn.0247fbd0
test eax, eax
jne 0x244156c
mov eax, dword [esp + 0x14]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x24416d7
push eax
call fcn.024ad03a
add esp, 4
jmp 0x24416d7
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
xor eax, eax
mov ecx, 0x57
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x448]
xor esi, esi
cmp edi, esi
setne al
lea ecx, [esp + 0x1c]
or eax, 0x4010
push eax
push 0x160
push ecx
push 0x80
push edx
call dword [sym.imp.shell32.dll_SHGetFileInfo]
cmp eax, esi
jne 0x24415cd
mov eax, dword [esp + 0x14]
cmp eax, esi
mov dword [esp + 0x10], esi
je 0x24416d7
push eax
call fcn.024ad03a
add esp, 4
jmp 0x24416d7
mov dword [ebp], eax
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov eax, dword [esp + 0x14]
cmp eax, esi
mov dword [esp + 0x10], esi
je case.0x244145c.6
push eax
call fcn.024ad03a
add esp, 4
mov eax, 1
jmp 0x24416d9
xor eax, eax
mov dword [esp + 0x1c], esi
mov ecx, 0x57
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x448]
xor ecx, ecx
cmp eax, esi
setne cl
lea edx, [esp + 0x1c]
or ecx, 0x4010
push ecx
push 0x160
push edx
push 0x10
push 0x24e25d0
call dword [sym.imp.shell32.dll_SHGetFileInfo]
cmp eax, esi
je 0x24416d7
mov dword [ebp], eax
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov eax, 1
jmp 0x24416d9
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], esi
call dword [sym.imp.shell32.dll_SHGetMalloc]
test eax, eax
jne 0x24416d7
lea edx, [esp + 0x10]
push edx
push 0x11
push esi
mov dword [esp + 0x1c], esi
call dword [sym.imp.shell32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x24416cd
mov dword [esp + 0x1c], esi
mov ecx, 0x57
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x448]
xor edx, edx
cmp ecx, esi
mov ecx, dword [esp + 0x10]
setne dl
lea eax, [esp + 0x1c]
or edx, 0x4008
push edx
push 0x160
push eax
push esi
push ecx
call dword [sym.imp.shell32.dll_SHGetFileInfo]
mov ecx, dword [esp + 0x10]
mov esi, eax
test esi, esi
jne 0x24416f4
test ecx, ecx
je 0x24416cd
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x42c
ret 0xc
test ecx, ecx
je 0x2441703
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x20]
mov dword [ebp], esi
mov dword [ebx], edx
mov eax, 1
jmp 0x24416d9
mov dword [ebp], esi
mov dword [ebx], esi
mov eax, 1
jmp 0x24416d9
mov dword [ebp], esi
mov dword [ebx], 1
mov eax, 1
jmp 0x24416d9
mov dword [ebp], esi
mov dword [ebx], 2
mov eax, 1
jmp 0x24416d9