Function at 0x4219ca
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push ecx
mov esi, edx
mov ebx, ecx
push 4
push str.Path
mov ecx, esi
mov dword [ebp - 8], ebx
call fcn.004392e4
test eax, eax
jne 0x4219f5
mov eax, 0x80004005
jmp 0x421b54
mov edx, dword [eax + 4]
push edi
xor edi, edi
test edx, edx
je 0x421a04
mov eax, dword [eax + 0xc]
jmp 0x421a0b
mov eax, edi
mov edx, 0x4934ec
push eax
lea ecx, [ebp - 4]
call fcn.0044c18c
push 5
push str.Csidl
mov ecx, esi
call fcn.004392e4
mov esi, dword [ebp - 4]
test eax, eax
jne 0x421a3a
mov ecx, dword [ebp + 8]
lea eax, [ebp - 4]
push eax
call fcn.0043c5cb
jmp 0x421b49
mov eax, dword [eax + 4]
test eax, eax
jne 0x421a46
mov eax, 0x4934ec
push 0xa
push edi
push eax
call dword [sym.imp.msvcrt.dll_strtol]
mov ebx, dword [ebx + 0x14]
add esp, 0xc
mov edx, eax
mov dword [ebp - 4], edx
mov ecx, dword [ebx + 0x148]
cmp dword [ecx + 0x14], edi
je 0x421aca
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edi
push edx
push 0x104
call fcn.0043d810
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x421abf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea eax, [ebp + 8]
push edi
push dword [ebp - 4]
push str.SHGetSpecialFolderPath__d
push eax
call fcn.0044af44
add esp, 0x10
push dword [eax]
push str.WSUS
push 1
call dword [sym.imp.CBSHost.dll_DismWriteLog]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.0043d912
jmp 0x421b49
push 0xffffffffffffffff
mov ecx, ebx
call fcn.0043d8ad
jmp 0x421b40
cmp edx, 0x29
jg 0x421bc2
je 0x421ba3
mov eax, edx
sub eax, 0x14
je 0x421b99
sub eax, 0x10
je 0x421b5a
sub eax, 1
je 0x421bb8
sub eax, 1
jne 0x421bd3
push str.Program_Files_
mov eax, dword [ebx + 0x14c]
add eax, 0x870
lea ecx, [ebp - 4]
push eax
call fcn.0043c2b8
mov edx, eax
lea ecx, [ebp - 8]
call fcn.0043baed
mov ebx, dword [ebp + 8]
pop ecx
push eax
mov ecx, ebx
call fcn.0043c5cb
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.0043d912
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.0043d912
mov edx, esi
mov ecx, ebx
call fcn.0044c3a9
lea ecx, [esi - 0x10]
call fcn.0043d912
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 4
mov eax, dword [ebx + 0x14c]
lea ecx, [ebp - 8]
push str.Windows_
add eax, 0x870
push eax
call fcn.0043c2b8
mov edx, eax
lea ecx, [ebp - 4]
call fcn.0043baed
mov ebx, dword [ebp + 8]
pop ecx
push eax
mov ecx, ebx
call fcn.0043c5cb
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.0043d912
mov ecx, dword [ebp - 8]
jmp 0x421b38
push str.WindowsFonts_
jmp 0x421b00
mov eax, dword [ebx + 0x14c]
cmp dword [eax + 4], edi
je 0x421bb8
push str.WindowsSysWOW64_
jmp 0x421b06
push str.WindowsSystem32_
jmp 0x421b00
mov eax, edx
sub eax, 0x2a
je 0x421c2e
sub eax, 1
je 0x421c24
sub eax, 1
je 0x421c0f
mov eax, dword [ebp - 8]
push dword [eax + 0x18]
lea eax, [ebp + 8]
push edx
push str.WuaGetFolderPath
push eax
call fcn.0044af44
add esp, 0x10
push dword [eax]
push str.WSUS
push 1
call dword [sym.imp.CBSHost.dll_DismWriteLog]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.0043d912
mov edi, 0x80004002
jmp 0x421b49
mov eax, dword [ebx + 0x14c]
cmp dword [eax + 4], edi
je 0x421c24
push str.Program_Files__x86_Common_
jmp 0x421b06
push str.Program_FilesCommon_
jmp 0x421b00
mov eax, dword [ebx + 0x14c]
cmp dword [eax + 4], edi
je 0x421afb
push str.Program_Files__x86__
jmp 0x421b06