Function at 0x40e310
Capabilities:
Get common file path

Disassembly:
sub esp, 0xa8
mov eax, dword [0x4e3e9c]
xor eax, esp
mov dword [esp + 0xa4], eax
push esi
push edi
mov esi, ecx
call fcn.004085c0
push 0x9c
lea eax, [esp + 0x14]
push 0
push eax
call fcn.0048f440
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x14], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x20]
sub eax, 1
push 0x4e5a80
push 0x200
je 0x40e36f
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
jmp 0x40e375
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edx, dword [esi + 0xb8]
mov dword [edx + 0xb74], 0x6a
mov eax, dword [esi + 0xb8]
mov dword [eax + 0xb78], 0x6b
mov ecx, dword [esi + 0xb8]
mov dword [ecx + 0xb7c], 0x6c
mov edx, dword [esi + 0xb8]
push 1
lea eax, [esp + 0xc]
push eax
mov dword [edx + 0xb80], 0x6d
mov ecx, dword [esi + 0xb8]
push 0x4e5a80
call fcn.00421dc0
test eax, eax
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
jne 0x40e3f5
cmp dword [esi + 0xe0], 0
jne 0x40e468
push 0x30
push str.Driver_Error
push str.An_error_occured_when_opening_the_driver._CPU_Z_will_launch_but_not_all_information_will_be_available.
push 0
call edi
jmp 0x40e468
push 0x7d0
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0xb8]
call fcn.00421b80
test eax, eax
je 0x40e468
mov ecx, dword [esi + 0xb8]
lea edx, [ecx + 0xb70]
push edx
call fcn.00421ff0
mov ecx, dword [esi + 0xb8]
cmp dword [ecx + 0xb70], 0x131
je 0x40e463
push 0x30
push str.Driver_Error
push str.A_previous_version_of_the_device_driver_is_already_running._This_program_requires_version_1.29_and_above.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esi + 0xb8]
call fcn.00421c10
mov ecx, dword [esi + 0xb8]
push 1
call fcn.00421b10
jmp 0x40e568
call fcn.00421c10
mov ecx, esi
call fcn.004087a0
cmp dword [esi + 0xe0], 0
je case.default.0x40e48e
mov eax, dword [esi + 0xe4]
add eax, 0xffffffff
cmp eax, 3
ja case.default.0x40e48e
jmp dword [eax*4 + 0x40e5a4]
push 0x4ad858
push 0x4e5c80
push 0x4e5d84
call fcn.0048ef4c
add esp, 0xc
cmp dword [0x4e5d84], 0
je case.default.0x40e48e
mov ecx, esi
call fcn.00408d20
mov eax, dword [0x4e5d84]
push eax
call fcn.0048ee0c
add esp, 4
jmp case.default.0x40e48e
push 0x4ad858
push 0x4e5c80
push 0x4e5d84
call fcn.0048ef4c
add esp, 0xc
cmp dword [0x4e5d84], 0
je case.default.0x40e48e
mov ecx, esi
call fcn.0040ab40
mov ecx, dword [0x4e5d84]
push ecx
call fcn.0048ee0c
add esp, 4
jmp case.default.0x40e48e
mov ecx, esi
call fcn.00409330
jmp case.default.0x40e48e
mov ecx, dword [esi + 0xb8]
push 0x7d0
lea edx, [esp + 0xc]
push edx
call fcn.00421b80
test eax, eax
je case.default.0x40e48e
mov ecx, dword [esi + 0xbc]
push 0
call fcn.0043c070
mov ecx, dword [esi + 0xac]
push ecx
mov ecx, eax
call fcn.00439d10
mov ecx, dword [esi + 0xb8]
call fcn.00421c10
push 0x30
push str.CPU_Z
push str.Core_mask_set__please_restart_Windows_to_validate.
push 0
call edi
call fcn.004085c0
mov eax, dword [0x4e5d8c]
test eax, eax
pop edi
pop esi
je 0x40e58f
cmp dword [0x4e5d94], 0
je 0x40e58f
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x41f
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.0048e5ae
add esp, 0xa8
ret