Function at 0x4f34d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
sub esp, 0xc24
push ecx
lea edi, [esp + 4]
mov eax, 0xcccccccc
mov ecx, 0x309
rep stosd dword es:[edi], eax
pop ecx
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
cmp eax, 0
jge 0x4f3511
mov eax, 0
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 8]
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
cmp eax, 0
je 0x4f3532
mov eax, 0
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
mov byte [ebp - 0xc21], 0
mov dword [ebp - 0x18], 0
call fcn.0056d3b0
cmp al, 0
je 0x4f3599
lea edi, [ebp - 0x818]
mov eax, 0
mov ecx, 0x200
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x818]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
cmp eax, 0
setne dl
mov byte [ebp - 0xc21], dl
lea eax, [ebp - 0x818]
push eax
call fcn.0058d600
pop ecx
push eax
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0x18]
call fcn.0058a000
jmp 0x4f3643
lea edi, [ebp - 0xc18]
mov eax, 0
mov ecx, 0x100
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xc18]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
cmp eax, 0
setne dl
mov byte [ebp - 0xc21], dl
mov dword [ebp - 0xc1c], 0
lea edx, [ebp - 0xc18]
lea eax, [ebp - 0xc18]
push eax
call fcn.0040d340
pop ecx
push eax
lea eax, [ebp - 0xc18]
push eax
lea ecx, [ebp - 0xc1c]
call fcn.00589f70
cmp dword [ebp - 0xc1c], 0
je 0x4f360f
mov ebx, dword [ebp - 0xc1c]
mov edx, dword [0x63df30]
mov dword [ebx + 0x10], edx
lea eax, [ebp - 0xc1c]
push eax
lea ecx, [ebp - 0x18]
call fcn.0058a7b0
cmp dword [ebp - 0xc1c], 0
je 0x4f3632
mov ecx, dword [ebp - 0xc1c]
call fcn.00589d70
call fcn.00546dd0
cmp dword [ebp - 0x18], 0
je 0x4f3643
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x10], eax
push dword [ebp - 0x10]
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov esi, dword [edx]
call dword [esi + 0x14]
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov esi, dword [edx]
call dword [esi + 8]
cmp byte [ebp - 0xc21], 0
je 0x4f3716
mov byte [ebp - 0xc2d], 0
push 0x14
call fcn.00494950
pop ecx
mov ebx, eax
cmp ebx, 0
je 0x4f36ab
lea eax, [ebp - 0xc20]
push eax
lea ecx, [ebp - 0x18]
call fcn.0058a3a0
mov byte [ebp - 0xc2d], 1
lea eax, [ebp - 0xc20]
push 0
push 0
push 0
push eax
mov ecx, ebx
call fcn.004ea0d0
mov ebx, eax
mov dword [ebp - 0xc28], ebx
cmp byte [ebp - 0xc2d], 0
je 0x4f36ce
cmp dword [ebp - 0xc20], 0
je 0x4f36ce
mov ecx, dword [ebp - 0xc20]
call fcn.00589d70
call fcn.0042dc30
push eax
call sym.X86RunHoudini.exe_CreateInstance
pop ecx
mov dword [ebp - 0xc2c], eax
cmp dword [ebp - 0xc2c], 0
je 0x4f36f8
mov eax, dword [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc28]
mov dword [eax + 0x18], ecx
mov ebx, dword [ebp - 0xc2c]
cmp dword [ebp - 0x18], 0
je 0x4f370c
mov ecx, dword [ebp - 0x18]
call fcn.00589d70
mov eax, ebx
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
mov ebx, 0
cmp dword [ebp - 0x18], 0
je 0x4f3729
mov ecx, dword [ebp - 0x18]
call fcn.00589d70
mov eax, ebx
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret