Function at 0x417123
Capabilities:
Get common file path
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x20f0
call fcn.004b57d0
mov eax, dword [0x4f1410]
xor eax, dword [ebp + 4]
mov dword [ebp - 0x44], eax
push esi
mov dword [ebp - 0x20ec], ecx
push 1
mov ecx, 0x4f4718
call fcn.004440b5
push 0
call dword [sym.imp.user32.dll_GetDC]
mov dword [ebp - 0x34], eax
mov ecx, 0x4f4718
call fcn.004184b2
mov dword [ebp - 0x20e8], 0x94
lea eax, [ebp - 0x20e8]
push eax
call dword [sym.imp.kernel32.dll_GetVersionExA]
cmp dword [ebp - 0x20e4], 4
jae 0x417195
push str.Windows_NT_3.X_detected
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
cmp dword [ebp - 0x20d8], 0
jne 0x4171b0
push str.Win32s_detected
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
cmp dword [ebp - 0x20d8], 1
jne 0x4171cb
push str.Win95_or_Win_98_detected
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
cmp dword [ebp - 0x20d8], 2
jne 0x4171e6
push str.Windows_NT_detected
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
push dword [ebp - 0x20d8]
lea eax, [ebp - 0x20d4]
push eax
push dword [ebp - 0x20dc]
push dword [ebp - 0x20e0]
push dword [ebp - 0x20e4]
push str.__Version__d._d._d__s__Platform_ID:_d___n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0x1c
push 8
push dword [ebp - 0x34]
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
mov dword [ebp - 0x204c], eax
push 0xa
push dword [ebp - 0x34]
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
mov dword [ebp - 0x30], eax
push dword [ebp - 0x30]
push dword [ebp - 0x204c]
push str.Screen_resolution____d__d__n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0x10
push 0xc
push dword [ebp - 0x34]
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
mov esi, eax
push 0xe
push dword [ebp - 0x34]
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
imul esi, eax
mov dword [ebp - 0x28], esi
push dword [ebp - 0x28]
push str.Screen__d_bits_per_pexel
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push 0x26
push dword [ebp - 0x34]
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
and eax, 0x100
test eax, eax
je 0x4172af
push str._utilizes_palettes__n
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
jmp 0x4172c1
push str._does_not_use_palettes__n
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
push 0x1ffe
lea eax, [ebp - 0x2048]
push eax
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x2048]
push eax
push 0x4d1014
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push 0x1ffe
lea eax, [ebp - 0x2048]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x2048]
push eax
push 0x4d1014
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
lea eax, [ebp - 0x2048]
push eax
push 0x400
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x2048]
push eax
push 0x4d1014
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
lea eax, [ebp - 0x2048]
push eax
push str.Information_about_the_current_computer_system_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push dword [ebp - 0x10]
push str.__NumberOfProcessors:_0x_x_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20f0], eax
cmp dword [ebp - 0x20f0], 0x182
je 0x4173ae
cmp dword [ebp - 0x20f0], 0x1e6
je 0x4173c6
cmp dword [ebp - 0x20f0], 0x24a
je 0x4173de
jmp 0x4173f6
push dword [ebp - 0xc]
push str.__ProcessorType:_PROCESSOR_INTEL_386_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
jmp 0x41740c
push dword [ebp - 0xc]
push str.__ProcessorType:_PROCESSOR_INTEL_486_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
jmp 0x41740c
push dword [ebp - 0xc]
push str.__ProcessorType:_PROCESSOR_INTEL_PENTIUM_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
jmp 0x41740c
push dword [ebp - 0xc]
push str.__ProcessorType:_NOT_DETECTED_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
movzx eax, word [ebp - 2]
push eax
push str.__ProcessorRevision:_0x_x_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
movzx eax, word [ebp - 4]
push eax
push str.__ProcessorLevel:_0x_x_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push dword [ebp - 0x20]
push str.__PageSize:__x_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push dword [ebp - 8]
push str.__AllocationGranularity:_0x_x_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push str.Mouse_info_n
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
push 0x13
call dword [sym.imp.user32.dll_GetSystemMetrics]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x41749f
push str.__No_mouse_installed._n
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
jmp 0x41751e
push 0x17
call dword [sym.imp.user32.dll_GetSystemMetrics]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x4174c4
push str.__Buttons_not_swapped._n
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
jmp 0x4174d6
push str.__Buttons_swapped._n
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
push 0
lea eax, [ebp - 0x40]
push eax
push 0
push 3
call dword [sym.imp.user32.dll_SystemParametersInfoA]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x41751e
push dword [ebp - 0x38]
push str.__Speed:__d._n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0xc
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push str.__Threshold__x_y_:__d__d_n
push dword [0x4f4fa4]
call fcn.004b5763
add esp, 0x10
push 0x4d0e48
push dword [0x4f4fa4]
call fcn.004b5763
pop ecx
pop ecx
mov ecx, 0x4f4718
call fcn.004184df
push 0
mov ecx, 0x4f4718
call fcn.004440b5
push dword [ebp - 0x34]
push 0
call dword [sym.imp.user32.dll_ReleaseDC]
mov ecx, dword [ebp - 0x44]
xor ecx, dword [ebp + 4]
call fcn.004b3f19
pop esi
leave
ret