Function at 0x4272f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4bb386
mov eax, dword fs:[0]
push eax
sub esp, 0x66c
mov eax, dword [0x4e44b4]
xor eax, esp
mov dword [esp + 0x664], eax
push ebx
push esi
mov eax, dword [0x4e44b4]
xor eax, esp
push eax
lea eax, [esp + 0x678]
mov dword fs:[0], eax
push str.47.89.0.4921.0
push 0x4cc9fc
push 0x208
push 0x104
xor ebx, ebx
push 0x4ed4b8
mov dword [esp + 0x20], ebx
call fcn.00496163
add esp, 0x14
push 0x206
lea eax, [esp + 0x46a]
push ebx
push eax
mov word [esp + 0x470], bx
call fcn.00499a30
add esp, 0xc
push 0x206
lea ecx, [esp + 0x262]
push ebx
push ecx
mov dword [esp + 0x1c], 0x104
mov word [esp + 0x268], bx
call fcn.00499a30
add esp, 0xc
push ebx
push 0x25
lea edx, [esp + 0x264]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x42740f
call fcn.004722e0
cmp eax, 2
jg 0x4273ed
push 2
push 0x22
push str.R:BuildWorkTempQQ1.87HummerPack4921AutoProject_setup3HummerSetupdata_reportinit_upload_install_result.cpp
lea ecx, [esp + 0x20]
call fcn.00473160
mov dword [esp + 0x680], ebx
add eax, 4
push str.SHGetSpecialFolderPath_CSIDL_SYSTEM_Fail
mov ebx, 1
push eax
mov dword [esp + 0x14], ebx
call fcn.004041d0
add esp, 8
test bl, 1
mov dword [esp + 0x680], 0xffffffff
je 0x427691
lea ecx, [esp + 0x14]
call fcn.00472c30
jmp 0x427691
lea eax, [esp + 0x25c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x427420
sub eax, edx
sar eax, 1
mov esi, 0x5c
cmp word [esp + eax*2 + 0x25a], si
je 0x427467
lea eax, [esp + 0x25c]
lea edx, [eax + 2]
jmp 0x427450
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x427450
sub eax, edx
sar eax, 1
mov word [esp + eax*2 + 0x25c], si
lea eax, [esp + 0x25c]
push eax
push str._smsi.dll
push 0x208
mov ecx, eax
push 0x104
push ecx
call fcn.00496163
add esp, 0x14
push ebx
push ebx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x470]
push eax
lea ecx, [esp + 0x26c]
push ecx
call sub.Msi.dll_MsiMessageBoxW
test eax, eax
je 0x42750c
call fcn.004722e0
cmp eax, 2
jg 0x4274ea
push 2
push 0x2c
push str.R:BuildWorkTempQQ1.87HummerPack4921AutoProject_setup3HummerSetupdata_reportinit_upload_install_result.cpp
lea ecx, [esp + 0x20]
call fcn.00473160
add eax, 4
push str.MsiGetFileVersion_Fail
mov dword [esp + 0x684], 1
mov ebx, 2
push eax
mov dword [esp + 0x14], ebx
call fcn.004041d0
add esp, 8
test bl, 2
mov dword [esp + 0x680], 0xffffffff
je 0x427691
lea ecx, [esp + 0x14]
call fcn.00472c30
jmp 0x427691
lea edx, [esp + 0x464]
push 0x2e
push edx
call fcn.00496fb4
add eax, 2
push 0x2e
push eax
call fcn.00496fb4
add eax, 2
push 0x2e
push eax
call fcn.00496fb4
lea ecx, [esp + 0x47c]
sub eax, ecx
sar eax, 1
add eax, eax
push eax
mov edx, ecx
push edx
push 0x4ed8c8
call fcn.0049c020
add esp, 0x24
push 0x11c
lea eax, [esp + 0x140]
push ebx
push eax
call fcn.00499a30
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea ecx, [esp + 0x13c]
push ecx
mov dword [esp + 0x140], 0x11c
call esi
cmp eax, ebx
jne 0x427609
lea edx, [esp + 0x13c]
push edx
mov dword [esp + 0x140], 0x114
call esi
test eax, eax
jne 0x427609
call fcn.004722e0
cmp eax, 2
jg 0x4275e4
push 2
push 0x45
push str.R:BuildWorkTempQQ1.87HummerPack4921AutoProject_setup3HummerSetupdata_reportinit_upload_install_result.cpp
lea ecx, [esp + 0xb4]
call fcn.00473160
mov ebx, 4
add eax, ebx
push str.GetVersionEx_Fail
mov dword [esp + 0x684], 2
push eax
mov dword [esp + 0x14], ebx
call fcn.004041d0
add esp, 8
test bl, 4
mov dword [esp + 0x680], 0xffffffff
je 0x427691
lea ecx, [esp + 0xa8]
call fcn.00472c30
jmp 0x427691
mov eax, dword [esp + 0x14c]
sub eax, ebx
je 0x42765c
sub eax, 1
je 0x427655
sub eax, 1
jne 0x427678
movzx eax, word [esp + 0x250]
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
push eax
push ecx
push edx
push str._d._d._d
push 0x208
push 0x104
push 0x4ed6c0
call fcn.00496163
add esp, 0x1c
jmp 0x427678
push str.Windows_98_or_95
jmp 0x427661
push str.Windows_3.1
push 0x208
push 0x104
push 0x4ed6c0
call fcn.00496163
add esp, 0x10
mov eax, 1
mov dword [0x4edae0], eax
mov dword [0x4edb40], 2
mov dword [0x4edb44], eax
mov ecx, dword [esp + 0x678]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x664]
xor ecx, esp
call fcn.00495cb8
mov esp, ebp
pop ebp
ret 4