Function at 0x408bf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x2b4
mov eax, dword [0x4e86e0]
xor eax, esp
mov dword [esp + 0x2b0], eax
push ebx
push esi
push edi
push str.AttachConsole
mov esi, ecx
push 0x4b17e0
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40a3d1
push 0xffffffffffffffff
call eax
test eax, eax
je 0x40a3d1
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
test eax, eax
mov dword [0x4ea5c8], eax
je 0x40a3d1
mov eax, dword [esi + 0xb0]
mov dword [eax + 4], 0x407f70
call fcn.00438330
mov ecx, dword [eax + 4]
push 0x4b1878
call ecx
call fcn.00438330
mov edx, dword [eax + 4]
push str.__________________________n
call edx
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esi + 0xf4]
push ecx
push str.__CPU_Z_version__s_n
call edx
call fcn.00438330
mov eax, dword [eax + 4]
push str.__________________________n_n
call eax
add esp, 0x14
push 0xffffffffffffffff
call fcn.00438330
mov ecx, eax
call fcn.004370e0
test eax, eax
je 0x40a3d1
push 0x7d0
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esi + 0xb8]
call fcn.00421de0
mov ecx, dword [esi + 0xbc]
push 0
call fcn.0043c940
mov esi, eax
test esi, esi
je 0x409c49
call fcn.00438330
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0xbc]
mov edx, dword [ecx + 8]
mov eax, dword [eax + 4]
push edx
push str.Number_of_processors_t_d_n
call eax
add esp, 8
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a250
push eax
mov ecx, esi
call fcn.004396d0
mov ecx, dword [edi]
push eax
push str.Number_of_cores_t_t_d__max__d__per_processor_n
call ecx
add esp, 0xc
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a280
push eax
mov ecx, esi
call fcn.004396e0
mov edx, dword [edi]
push eax
push str.Number_of_threads_t_d__max__d__per_processor_n
call edx
add esp, 0xc
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.00439f70
push eax
mov eax, dword [edi]
push str.Name_t_t_t_s_n
call eax
add esp, 8
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.00439fb0
mov ecx, dword [edi]
push eax
push str.Code_Name_t_t_s_n
call ecx
add esp, 8
mov ecx, esi
call fcn.00439ff0
push eax
push 0x4b0fc4
lea edx, [esp + 0xc0]
push 0x200
push edx
call fcn.00437120
add esp, 0x10
cmp byte [esp + 0xb8], 0
jne 0x408e14
mov ecx, esi
call fcn.0043a520
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
mov ecx, esi
je 0x408df4
call fcn.0043a520
push eax
mov ecx, esi
call fcn.00439f70
push eax
push str._s__dMHz
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
jmp 0x408e14
call fcn.00439f70
push eax
push 0x4b0fc4
lea ecx, [esp + 0xc0]
push 0x200
push ecx
call fcn.00437120
add esp, 0x10
mov ecx, esi
call fcn.00439f40
test eax, eax
je 0x408e39
push str.__Engineering_Sample_
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
add esp, 0xc
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xb8]
push ecx
push str.Specification_t_t_s_n
call edx
add esp, 8
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.00439950
push eax
mov eax, dword [edi]
push str.Package_t_t_t_s_n
call eax
add esp, 8
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a1c0
push eax
mov ecx, esi
call fcn.0043a190
push eax
mov ecx, esi
call fcn.0043a160
mov ecx, dword [edi]
push eax
push str.Family_Model_Stepping_t_X._X._X_n
call ecx
add esp, 0x10
mov ecx, esi
call fcn.0043a1f0
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x408ed3
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a220
push eax
mov ecx, esi
call fcn.0043a1f0
mov edx, dword [edi]
push eax
push str.Extended_Family_Model_t_X._X_n
call edx
add esp, 0xc
mov ecx, esi
call fcn.0043a130
test eax, eax
jle 0x408efa
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a130
push eax
mov eax, dword [edi]
push str.Brand_ID_t_t_t_d_n
call eax
add esp, 8
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a0b0
mov ecx, dword [edi]
push eax
push str.Core_Stepping_t_t_s_n
call ecx
add esp, 8
mov ecx, esi
call fcn.0043a0f0
fstp dword [esp + 0x1c]
fldz
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x408fab
fcom qword [0x4b1270]
fnstsw ax
test ah, 5
jp 0x408f6f
fmul qword [0x4b1268]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
call fcn.004918a0
push eax
push str._d_nm
lea edx, [esp + 0xc0]
push 0x200
push edx
call fcn.00437120
add esp, 0x10
jmp 0x408f8f
sub esp, 8
fstp qword [esp]
push str._1.2f_um
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xb8]
push ecx
push 0x4b2038
call edx
add esp, 8
jmp 0x408fad
fstp st(0)
push 0
mov ecx, esi
call fcn.0043a3d0
fmul qword [0x4b2030]
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.004395c0
push 0
fstp dword [esp + 0x1c]
mov ecx, esi
call fcn.0043a3f0
fstp dword [esp + 0x14]
fldz
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 5
jp 0x409126
call fcn.00438330
fld dword [esp + 0x20]
mov eax, dword [eax + 4]
sub esp, 8
fstp qword [esp]
push str.Core_Speed_t_t_.1f_MHz_n
call eax
fld dword [esp + 0x2c]
add esp, 4
fstp qword [esp]
push 0x4b1228
lea ecx, [esp + 0xc4]
push 0x200
push ecx
call fcn.00437120
fldz
fld dword [esp + 0x28]
add esp, 0x14
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4090b9
fxch st(1)
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 5
jp 0x4090bb
fmul qword [0x4b1220]
call fcn.004918a0
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
sub ecx, edx
je 0x409093
call fcn.00438330
fld dword [esp + 0x18]
mov eax, dword [eax + 4]
sub esp, 0x10
fstp qword [esp + 8]
fld dword [esp + 0x24]
fstp qword [esp]
push str.Multiplier_x_Bus_speed_t_.2f_x__.1f_MHz_n
call eax
add esp, 0x14
jmp 0x4090bd
call fcn.00438330
fld dword [esp + 0x18]
mov ecx, dword [eax + 4]
sub esp, 0x10
fstp qword [esp + 8]
fld dword [esp + 0x24]
fstp qword [esp]
push str.Multiplier_x_Bus_speed_t_.1f_x__.1f_MHz_n
call ecx
add esp, 0x14
jmp 0x4090bd
fstp st(1)
fstp st(0)
mov ecx, esi
call fcn.0043a4b0
fstp dword [esp + 0x18]
fldz
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 5
jp 0x409126
mov ecx, esi
call fcn.00439f10
and eax, 0xffffff00
cmp eax, 0x2002000
je 0x40910a
cmp eax, 0x2004000
je 0x40910a
call fcn.00438330
fld dword [esp + 0x18]
mov edx, dword [eax + 4]
sub esp, 8
fstp qword [esp]
push str.Rated_Bus_speed_t_t_.1f_MHz_n
call edx
jmp 0x409123
call fcn.00438330
fld dword [esp + 0x18]
mov eax, dword [eax + 4]
sub esp, 8
fstp qword [esp]
push str.HT_Link_speed_t_t_.1f_MHz_n
call eax
add esp, 0xc
mov ecx, esi
call fcn.0043a520
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x409156
call fcn.00438330
mov ecx, esi
lea edi, [eax + 4]
call fcn.0043a520
mov ecx, dword [edi]
push eax
push str.Stock_frequency_t_t_d_MHz_n
call ecx
add esp, 8
push 1
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, 0x4b12e8
jne 0x40916d
mov eax, 0x4b12e5
push eax
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437120
add esp, 0xc
push 2
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, 0x4b12e0
jne 0x40919a
mov eax, 0x4b12e5
push eax
lea eax, [esp + 0xbc]
push 0x200
push eax
call fcn.00437060
add esp, 0xc
push 3
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__3DNow_
jne 0x4091c7
mov eax, 0x4b12e5
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
add esp, 0xc
push 4
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, 0x4b12e0
jne 0x4091f4
mov eax, 0x4b12e5
push eax
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
add esp, 0xc
push 5
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE
jne 0x409221
mov eax, 0x4b12e5
push eax
lea eax, [esp + 0xbc]
push 0x200
push eax
call fcn.00437060
add esp, 0xc
push 6
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE2
jne 0x40924e
mov eax, 0x4b12e5
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
add esp, 0xc
push 7
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE3
jne 0x40927b
mov eax, 0x4b12e5
push eax
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
add esp, 0xc
push 8
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSSE3
jne 0x4092a8
mov eax, 0x4b12e5
push eax
lea eax, [esp + 0xbc]
push 0x200
push eax
call fcn.00437060
add esp, 0xc
push 9
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE4.1
jne 0x4092d5
mov eax, 0x4b12e5
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
add esp, 0xc
push 0xc
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE4.2
jne 0x409302
mov eax, 0x4b12e5
push eax
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
add esp, 0xc
push 0xd
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE4A
jne 0x40932f
mov eax, 0x4b12e5
push eax
lea eax, [esp + 0xbc]
push 0x200
push eax
call fcn.00437060
add esp, 0xc
push 0xe
mov ecx, esi
call fcn.0043a2b0
test eax, eax
mov eax, str.__SSE5
jne 0x40935c
mov eax, 0x4b12e5
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
add esp, 0xc
mov ecx, esi
call fcn.00439f10
test eax, 0x1000000
push 0x10
mov ecx, esi
je 0x4093a7
call fcn.0043a2b0
test eax, eax
mov eax, str.__EM64T
jne 0x409397
mov eax, 0x4b12e5
push eax
push 0x200
lea edx, [esp + 0xc0]
push edx
jmp 0x4093c8
call fcn.0043a2b0
test eax, eax
mov eax, 0x4b1278
jne 0x4093ba
mov eax, 0x4b12e5
push eax
push 0x200
lea eax, [esp + 0xc0]
push eax
call fcn.00437060
add esp, 0xc
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xb8]
push ecx
push str.Instruction_sets_t_s_n
call edx
add esp, 8
push 1
push 1
mov ecx, esi
call fcn.004398d0
push 2
push 1
mov ecx, esi
mov edi, eax
call fcn.004398d0
push 4
mov ebx, eax
push 1
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.004398d0
push 1
push 2
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004398d0
push 2
push 2
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.004398d0
push 3
push 2
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.004398d0
push 3
push 3
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.004398d0
test edi, edi
mov dword [esp + 0x2c], eax
jle 0x409570
push 1
push 1
mov ecx, esi
call fcn.00439880
mov ebx, eax
test ebx, ebx
je 0x40956c
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40956c
cmp edi, 1
mov eax, dword [ebx + 0xc]
push eax
jle 0x4094aa
push edi
push str._d_x__d_KBytes
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
jmp 0x4094c4
push str._d_KBytes
lea ecx, [esp + 0xc0]
push 0x200
push ecx
call fcn.00437120
add esp, 0x10
mov eax, dword [ebx + 0x18]
cmp eax, 0xffffffff
je 0x409520
cmp eax, 1
je 0x40950b
cmp eax, 0xff
je 0x4094f6
mov edx, dword [ebx + 0x14]
push edx
push eax
push str.___d_way_set_associative___d_byte_line_size
lea eax, [esp + 0x44]
push 0x80
push eax
call fcn.00437120
add esp, 0x14
jmp 0x40953b
mov ecx, dword [ebx + 0x14]
push ecx
push str.__Fully_associative___d_byte_line_size
push 0x80
lea edx, [esp + 0x44]
push edx
jmp 0x409533
mov eax, dword [ebx + 0x14]
push eax
push str.__Direct_mapped___d_byte_line_size
push 0x80
lea ecx, [esp + 0x44]
push ecx
jmp 0x409533
mov edx, dword [ebx + 0x14]
push edx
push str.___d_byte_line_size
push 0x80
lea eax, [esp + 0x44]
push eax
call fcn.00437120
add esp, 0x10
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xc4]
push ecx
push str.L1_Data_cache_t_t_s_n
call edx
add esp, 0x14
mov ebx, dword [esp + 0x18]
test ebx, ebx
jle 0x40968e
push 2
push 1
mov ecx, esi
call fcn.00439880
mov edi, eax
test edi, edi
je 0x40974c
mov eax, dword [edi + 0xc]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40974c
cmp ebx, 1
mov eax, dword [edi + 0xc]
push eax
jle 0x4095c7
push ebx
push str._d_x__d_KBytes
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
jmp 0x4095e1
push str._d_KBytes
lea ecx, [esp + 0xc0]
push 0x200
push ecx
call fcn.00437120
add esp, 0x10
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x40963d
cmp eax, 1
je 0x409628
cmp eax, 0xff
je 0x409613
mov edx, dword [edi + 0x14]
push edx
push eax
push str.___d_way_set_associative___d_byte_line_size
lea eax, [esp + 0x44]
push 0x80
push eax
call fcn.00437120
add esp, 0x14
jmp 0x409658
mov ecx, dword [edi + 0x14]
push ecx
push str.__Fully_associative___d_byte_line_size
push 0x80
lea edx, [esp + 0x44]
push edx
jmp 0x409650
mov eax, dword [edi + 0x14]
push eax
push str.__Direct_mapped___d_byte_line_size
push 0x80
lea ecx, [esp + 0x44]
push ecx
jmp 0x409650
mov edx, dword [edi + 0x14]
push edx
push str.___d_byte_line_size
push 0x80
lea eax, [esp + 0x44]
push eax
call fcn.00437120
add esp, 0x10
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xc4]
push ecx
push str.L1_Instruction_cache_t_s_n
call edx
add esp, 0x14
jmp 0x40974c
cmp dword [esp + 0x28], 0
jle 0x40974c
push 4
push 1
mov ecx, esi
call fcn.00439880
mov edi, eax
test edi, edi
je 0x40974c
mov ebx, dword [edi + 0xc]
push ebx
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40974c
mov eax, dword [esp + 0x28]
cmp eax, 1
push ebx
jle 0x4096e9
push eax
push str._d_x__d_Kuops
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
jmp 0x409703
push str._d_Kuops
lea ecx, [esp + 0xc0]
push 0x200
push ecx
call fcn.00437120
add esp, 0x10
mov edx, dword [edi + 0x18]
push edx
push str.___d_way_set_associative
lea eax, [esp + 0x40]
push 0x80
push eax
call fcn.00437120
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0xcc]
push 0x200
push edx
call fcn.00437060
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xd4]
push ecx
push str.Trace_cache_t_t_s_n
call edx
add esp, 0x24
cmp dword [esp + 0x1c], 0
jle 0x409869
push 2
push 2
mov ecx, esi
call fcn.00439880
mov edi, eax
test edi, edi
je 0x409869
mov ebx, dword [edi + 0xc]
push ebx
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x409869
mov eax, dword [esp + 0x1c]
cmp eax, 1
push ebx
jle 0x4097a7
push eax
push str._d_x__d_KBytes
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
jmp 0x4097c1
push str._d_KBytes
lea ecx, [esp + 0xc0]
push 0x200
push ecx
call fcn.00437120
add esp, 0x10
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x40981d
cmp eax, 1
je 0x409808
cmp eax, 0xff
je 0x4097f3
mov edx, dword [edi + 0x14]
push edx
push eax
push str.___d_way_set_associative___d_byte_line_size
lea eax, [esp + 0x44]
push 0x80
push eax
call fcn.00437120
add esp, 0x14
jmp 0x409838
mov ecx, dword [edi + 0x14]
push ecx
push str.__Fully_associative___d_byte_line_size
push 0x80
lea edx, [esp + 0x44]
push edx
jmp 0x409830
mov eax, dword [edi + 0x14]
push eax
push str.__Direct_mapped___d_byte_line_size
push 0x80
lea ecx, [esp + 0x44]
push ecx
jmp 0x409830
mov edx, dword [edi + 0x14]
push edx
push str.___d_byte_line_size
push 0x80
lea eax, [esp + 0x44]
push eax
call fcn.00437120
add esp, 0x10
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0xbc]
push 0x200
push edx
call fcn.00437060
call fcn.00438330
mov edx, dword [eax + 4]
lea ecx, [esp + 0xc4]
push ecx
push str.L2_Instruction_cache_t_s_n
call edx
add esp, 0x14
cmp dword [esp + 0x14], 0
jle 0x409988
push 1
push 2
mov ecx, esi
call fcn.00439880
mov edi, eax
test edi, edi
je 0x409988
mov ebx, dword [edi + 0xc]
push ebx
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x409988
cmp dword [esp + 0x14], 1
push ebx
jle 0x4098c6
mov eax, dword [esp + 0x18]
push eax
push str._d_x__d_KBytes
lea ecx, [esp + 0xc4]
push 0x200
push ecx
call fcn.00437120
add esp, 0x14
jmp 0x4098e0
push str._d_KBytes
lea edx, [esp + 0xc0]
push 0x200
push edx
call fcn.00437120
add esp, 0x10
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x40993c
cmp eax, 1
je 0x409927
cmp eax, 0xff
je 0x409912
mov ecx, dword [edi + 0x14]
push ecx
push eax
push str.___d_way_set_associative___d_byte_line_size
lea edx, [esp + 0x44]
push 0x80
push edx
call fcn.00437120
add esp, 0x14
jmp 0x409957
mov eax, dword [edi + 0x14]
push eax
push str.__Fully_associative___d_byte_line_size
push 0x80
lea ecx, [esp + 0x44]
push ecx
jmp 0x40994f
mov edx, dword [edi + 0x14]
push edx
push str.__Direct_mapped___d_byte_line_size
push 0x80
lea eax, [esp + 0x44]
push eax
jmp 0x40994f
mov ecx, dword [edi + 0x14]
push ecx
push str.___d_byte_line_size
push 0x80
lea edx, [esp + 0x44]
push edx
call fcn.00437120
add esp, 0x10
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
call fcn.00438330
mov eax, dword [eax + 4]
lea edx, [esp + 0xc4]
push edx
push str.L2_Data_cache_t_t_s_n
call eax
add esp, 0x14
cmp dword [esp + 0x20], 0
jle 0x409aa7
push 3
push 2
mov ecx, esi
call fcn.00439880
mov edi, eax
test edi, edi
je 0x409aa7
mov ebx, dword [edi + 0xc]
push ebx
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x409aa7
cmp dword [esp + 0x20], 1
push ebx
jle 0x4099e5
mov ecx, dword [esp + 0x24]
push ecx
push str._d_x__d_KBytes
lea edx, [esp + 0xc4]
push 0x200
push edx
call fcn.00437120
add esp, 0x14
jmp 0x4099ff
push str._d_KBytes
lea eax, [esp + 0xc0]
push 0x200
push eax
call fcn.00437120
add esp, 0x10
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x409a5b
cmp eax, 1
je 0x409a46
cmp eax, 0xff
je 0x409a31
mov ecx, dword [edi + 0x14]
push ecx
push eax
push str.___d_way_set_associative___d_byte_line_size
lea edx, [esp + 0x44]
push 0x80
push edx
call fcn.00437120
add esp, 0x14
jmp 0x409a76
mov eax, dword [edi + 0x14]
push eax
push str.__Fully_associative___d_byte_line_size
push 0x80
lea ecx, [esp + 0x44]
push ecx
jmp 0x409a6e
mov edx, dword [edi + 0x14]
push edx
push str.__Direct_mapped___d_byte_line_size
push 0x80
lea eax, [esp + 0x44]
push eax
jmp 0x409a6e
mov ecx, dword [edi + 0x14]
push ecx
push str.___d_byte_line_size
push 0x80
lea edx, [esp + 0x44]
push edx
call fcn.00437120
add esp, 0x10
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
call fcn.00438330
mov eax, dword [eax + 4]
lea edx, [esp + 0xc4]
push edx
push str.L2_cache_t_t_s_n
call eax
add esp, 0x14
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jle 0x409c49
push 3
push 3
mov ecx, esi
call fcn.00439880
mov edi, eax
test edi, edi
je 0x409c49
mov esi, dword [edi + 0xc]
push esi
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x409c49
cmp ebx, 1
jle 0x409b47
cmp esi, 0x400
jl 0x409b29
mov ecx, esi
and ecx, 0x800003ff
jns 0x409afb
dec ecx
or ecx, 0xfffffc00
inc ecx
jne 0x409b29
mov eax, esi
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
push ebx
push str._d_x__d_MBytes
lea edx, [esp + 0xc4]
push 0x200
push edx
call fcn.00437120
add esp, 0x14
jmp 0x409ba1
push esi
push ebx
push str._d_x__d_KBytes
lea eax, [esp + 0xc4]
push 0x200
push eax
call fcn.00437120
add esp, 0x14
jmp 0x409ba1
cmp esi, 0x400
jl 0x409b86
mov ecx, esi
and ecx, 0x800003ff
jns 0x409b61
dec ecx
or ecx, 0xfffffc00
inc ecx
jne 0x409b86
mov eax, esi
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
push str._d_MBytes
push 0x200
lea edx, [esp + 0xc4]
push edx
jmp 0x409b99
push esi
push str._d_KBytes
push 0x200
lea eax, [esp + 0xc4]
push eax
call fcn.00437120
add esp, 0x10
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x409bfd
cmp eax, 1
je 0x409be8
cmp eax, 0xff
je 0x409bd3
mov ecx, dword [edi + 0x14]
push ecx
push eax
push str.___d_way_set_associative___d_byte_line_size
lea edx, [esp + 0x44]
push 0x80
push edx
call fcn.00437120
add esp, 0x14
jmp 0x409c18
mov eax, dword [edi + 0x14]
push eax
push str.__Fully_associative___d_byte_line_size
push 0x80
lea ecx, [esp + 0x44]
push ecx
jmp 0x409c10
mov edx, dword [edi + 0x14]
push edx
push str.__Direct_mapped___d_byte_line_size
push 0x80
lea eax, [esp + 0x44]
push eax
jmp 0x409c10
mov ecx, dword [edi + 0x14]
push ecx
push str.___d_byte_line_size
push 0x80
lea edx, [esp + 0x44]
push edx
call fcn.00437120
add esp, 0x10
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xbc]
push 0x200
push ecx
call fcn.00437060
call fcn.00438330
mov eax, dword [eax + 4]
lea edx, [esp + 0xc4]
push edx
push str.L3_cache_t_t_s_n
call eax
add esp, 0x14
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc4], 0
je 0x40a1a6
mov eax, dword [eax + 0xc4]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edi, dword [eax + 0x14]
mov ebx, dword [eax + 0x18]
mov esi, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
je 0x409ca1
call fcn.00438330
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea edx, [ecx + 0x88]
push edx
lea edx, [ecx + 0x48]
push edx
add ecx, 8
push ecx
push str.Northbridge_t_t_s__s_rev.__s_n
call eax
add esp, 0x10
test esi, esi
je 0x409cc6
call fcn.00438330
mov eax, dword [eax + 4]
lea ecx, [esi + 0x88]
push ecx
lea edx, [esi + 0x48]
push edx
add esi, 8
push esi
push str.Southbridge_t_t_s__s_rev.__s_n
call eax
add esp, 0x10
call fcn.00438330
cmp dword [eax + 0x34], 0
je 0x409e77
push 0xc
call fcn.00482367
add esp, 4
test eax, eax
je 0x409cee
mov ecx, eax
call fcn.00403e00
mov ebx, eax
jmp 0x409cf0
xor ebx, ebx
call fcn.00438330
mov eax, dword [eax + 0x34]
push ebx
push 0
push 3
mov ecx, eax
call fcn.0043f430
test eax, eax
je 0x409e65
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0
call fcn.00403e40
test eax, eax
je 0x409e65
lea esp, [esp]
push eax
call fcn.00403e20
mov eax, dword [eax + 0x18]
add esp, 4
test eax, eax
je 0x409d82
mov edi, dword [eax + 4]
test edi, edi
je 0x409d82
mov esi, dword [edi + 4]
test esi, esi
je 0x409d82
mov edi, edi
push 2
mov ecx, esi
call fcn.0043d770
test eax, eax
jne 0x409d94
push 0x10
mov ecx, esi
call fcn.0043d770
test eax, eax
jne 0x409e21
test edi, edi
je 0x409d82
mov eax, dword [edi + 8]
test eax, eax
je 0x409d82
mov esi, dword [eax + 4]
test esi, esi
mov edi, eax
jne 0x409d50
lea ecx, [esp + 0x2c]
call fcn.00403e60
test eax, eax
jne 0x409d30
jmp 0x409e61
push esi
call fcn.00403e20
mov esi, eax
add esp, 4
cmp dword [esi + 0x54], 0
je 0x409e61
call fcn.00438330
mov ecx, dword [eax + 4]
push str.Graphic_Interface_tAGP_n
call ecx
movzx edi, byte [esi + 0x58]
call fcn.00438330
mov eax, dword [eax + 4]
mov edx, edi
and edx, 0xf
push edx
shr edi, 4
push edi
push str.AGP_Revision_t_t_d._d_n
call eax
call fcn.00438330
mov ecx, dword [esi + 0x48]
mov edx, dword [eax + 4]
push ecx
push str.AGP_Transfer_Rate_t_dx_n
call edx
add esp, 0x18
cmp dword [esi + 0x34], 0
mov edi, str.enabled
jne 0x409dfb
mov edi, str.not_enabled
cmp dword [esi + 0x30], 0
mov esi, str.supported
jne 0x409e0b
mov esi, str.not_supported
call fcn.00438330
mov eax, dword [eax + 4]
push edi
push esi
push str.AGP_Side_Band_Addressing_t_s___s_n
call eax
add esp, 0xc
jmp 0x409e61
push esi
call fcn.00403e20
mov esi, eax
call fcn.00438330
mov ecx, dword [eax + 4]
push str.Graphic_Interface_tPCI_Express_n
call ecx
call fcn.00438330
mov edx, dword [esi + 0x1c]
mov eax, dword [eax + 4]
push edx
push str.PCI_E_Link_Width_tx_d_n
call eax
call fcn.00438330
mov ecx, dword [esi + 0x18]
mov edx, dword [eax + 4]
push ecx
push str.PCI_E_Max_Link_Width_tx_d_n
call edx
add esp, 0x18
mov edi, dword [esp + 0x18]
test ebx, ebx
je 0x409e73
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x409ea1
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x409ea1
call fcn.00438330
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + 4]
push ecx
push str.On_Board_Cache_t_t_d_KBytes_n
call edx
add esp, 8
test edi, edi
je 0x40a1a6
mov byte [esp + 0xb8], 0
mov eax, dword [edi + 4]
add eax, 0xfffffffe
cmp eax, 7
ja case.default.0x409ec0
jmp dword [eax*4 + 0x40a3e8]
push 0x4b1cf0
push 0x200
lea eax, [esp + 0xc0]
push eax
jmp 0x409f4b
push 0x4b1cec
jmp 0x409f3e
push str.SDRAM
push 0x200
lea edx, [esp + 0xc0]
push edx
jmp 0x409f4b
push str.RDRAM
push 0x200
lea eax, [esp + 0xc0]
push eax
jmp 0x409f4b
push 0x4b1cd8
jmp 0x409f3e
push str.DDR2
push 0x200
lea edx, [esp + 0xc0]
push edx
jmp 0x409f4b
push str.DDR3
push 0x200
lea eax, [esp + 0xc0]
push eax
jmp 0x409f4b
push str.FB_DDR2
push 0x200
lea ecx, [esp + 0xc0]
push ecx
call fcn.00437120
add esp, 0xc
call fcn.00438330
mov eax, dword [eax + 4]
lea edx, [esp + 0xb8]
push edx
push str.Memory_Type_t_t_s_n
call eax
call fcn.00438330
mov ecx, dword [edi + 8]
mov edx, dword [eax + 4]
push ecx
push str.Memory_Size_t_t_d_MBytes_n
call edx
fldz
fcomp dword [edi + 0x40]
add esp, 0x10
fnstsw ax
test ah, 5
jp 0x409fab
call fcn.00438330
fld dword [edi + 0x40]
mov edx, dword [eax + 4]
lea ecx, [edi + 0x78]
push ecx
sub esp, 8
fstp qword [esp]
push str.Memory_Frequency_t_.1f_MHz___s__n
call edx
add esp, 0x10
mov esi, dword [edi + 0x4c]
push esi
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a010
test esi, esi
jne 0x409fdb
push str.none
lea eax, [esp + 0xbc]
push 0x200
push eax
call fcn.00437120
add esp, 0xc
jmp 0x409ff6
push esi
push str._d_way
lea ecx, [esp + 0xc0]
push 0x200
push ecx
call fcn.00437120
add esp, 0x10
call fcn.00438330
mov eax, dword [eax + 4]
lea edx, [esp + 0xb8]
push edx
push str.DRAM_Interleave_t_s_n
call eax
add esp, 8
fldz
fcomp dword [edi + 0x18]
fnstsw ax
test ah, 5
jp 0x40a037
call fcn.00438330
fld dword [edi + 0x18]
mov ecx, dword [eax + 4]
sub esp, 8
fstp qword [esp]
push str.CAS_Latency__tCL__t_.1f_clocks_n
call ecx
add esp, 0xc
mov edx, dword [edi + 0x1c]
push edx
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a05d
call fcn.00438330
mov ecx, dword [edi + 0x1c]
mov edx, dword [eax + 4]
push ecx
push str.RAS_to_CAS__tRCD__t_d_clocks_n
call edx
add esp, 8
mov eax, dword [edi + 0x20]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a083
call fcn.00438330
mov ecx, dword [edi + 0x20]
mov edx, dword [eax + 4]
push ecx
push str.RAS_Precharge__tRP__t_d_clocks_n
call edx
add esp, 8
mov eax, dword [edi + 0x24]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a0a9
call fcn.00438330
mov ecx, dword [edi + 0x24]
mov edx, dword [eax + 4]
push ecx
push str.Cycle_Time__tRAS__t_d_clocks_n
call edx
add esp, 8
mov eax, dword [edi + 0x28]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a0cf
call fcn.00438330
mov ecx, dword [edi + 0x28]
mov edx, dword [eax + 4]
push ecx
push str.Bank_Cycle_Time__tRC__t_d_clocks_n
call edx
add esp, 8
mov eax, dword [edi + 0x38]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a0f5
call fcn.00438330
mov ecx, dword [edi + 0x38]
mov edx, dword [eax + 4]
push ecx
push str.DRAM_Idle_Timer_t_d_clocks_n
call edx
add esp, 8
mov eax, dword [edi + 0x3c]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a11b
call fcn.00438330
mov ecx, dword [edi + 0x3c]
mov edx, dword [eax + 4]
push ecx
push str.Command_Rate__CR__t_t_dT_n
call edx
add esp, 8
mov eax, dword [edi + 0x34]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a141
call fcn.00438330
mov ecx, dword [edi + 0x34]
mov edx, dword [eax + 4]
push ecx
push str.Total_CAS__tRDRAM__t_d_n
call edx
add esp, 8
mov eax, dword [edi + 0x30]
push eax
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a167
call fcn.00438330
mov ecx, dword [edi + 0x30]
mov edx, dword [eax + 4]
push ecx
push str.Row_To_Column__tRCD__t_d_n
call edx
add esp, 8
cmp dword [esp + 0x14], 0
je 0x40a1a6
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0xa4]
push esi
call fcn.00407dd0
add esp, 4
test eax, eax
je 0x40a1a6
test esi, esi
mov esi, str.enabled
jne 0x40a193
mov esi, str.disabled
call fcn.00438330
mov ecx, dword [eax + 4]
push esi
push str.Performance_Mode_t_s_n
call ecx
add esp, 8
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0xd0]
test ecx, ecx
je 0x40a2fc
push 1
call fcn.00480040
test eax, eax
je 0x40a228
push eax
call fcn.00403e20
mov esi, eax
mov eax, dword [esi + 8]
add esp, 4
cmp byte [eax], 0
je 0x40a1ec
call fcn.00438330
mov ecx, dword [esi + 8]
mov edx, dword [eax + 4]
push ecx
push str.System_Manufacturer_t_s_n
call edx
add esp, 8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
je 0x40a20a
call fcn.00438330
mov ecx, dword [esi + 0xc]
mov edx, dword [eax + 4]
push ecx
push str.System_Name_t_t_s_n
call edx
add esp, 8
mov eax, dword [esi + 0x14]
cmp byte [eax], 0
je 0x40a228
call fcn.00438330
mov ecx, dword [esi + 0x14]
mov edx, dword [eax + 4]
push ecx
push str.System_S_N_t_t_s_n
call edx
add esp, 8
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0xd0]
push 2
call fcn.00480040
test eax, eax
je 0x40a284
push eax
call fcn.00403e20
mov esi, eax
mov eax, dword [esi + 8]
add esp, 4
cmp byte [eax], 0
je 0x40a266
call fcn.00438330
mov ecx, dword [esi + 8]
mov edx, dword [eax + 4]
push ecx
push str.Mainboard_Vendor_t_s_n
call edx
add esp, 8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
je 0x40a284
call fcn.00438330
mov ecx, dword [esi + 0xc]
mov edx, dword [eax + 4]
push ecx
push str.Mainboard_Model_t_t_s_n
call edx
add esp, 8
mov ecx, dword [edi + 0xd0]
push 0
call fcn.00480040
test eax, eax
je 0x40a2fe
push eax
call fcn.00403e20
mov esi, eax
mov eax, dword [esi + 8]
add esp, 4
cmp byte [eax], 0
je 0x40a2be
call fcn.00438330
mov ecx, dword [esi + 8]
mov edx, dword [eax + 4]
push ecx
push str.BIOS_Vendor_t_t_s_n
call edx
add esp, 8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
je 0x40a2dc
call fcn.00438330
mov ecx, dword [esi + 0xc]
mov edx, dword [eax + 4]
push ecx
push str.BIOS_Version_t_t_s_n
call edx
add esp, 8
mov eax, dword [esi + 0x10]
cmp byte [eax], 0
je 0x40a2fe
call fcn.00438330
mov ecx, dword [esi + 0x10]
mov edx, dword [eax + 4]
push ecx
push str.BIOS_Date_t_t_s_n
call edx
add esp, 8
jmp 0x40a2fe
mov edi, edx
mov eax, dword [edi + 0xcc]
test eax, eax
je 0x40a36c
xor edi, edi
cmp dword [eax + 4], edi
jle 0x40a36c
mov dword [esp + 0x14], edi
mov esi, dword [eax + 8]
add esi, dword [esp + 0x14]
cmp byte [esi + 0x60], 0
lea ebx, [esi + 0x60]
jne 0x40a328
mov ebx, str.unknown_brand
add edi, 1
call fcn.00438330
mov ecx, dword [esi + 0x180]
mov edx, dword [esi + 0x1cc]
push ebx
push ecx
push edx
mov edx, dword [eax + 4]
lea ecx, [esi + 0x38]
push ecx
add esi, 0x18
push esi
push edi
push str.Module__d_t_t_s___s___d_MHz____d_MBytes___s_n
call edx
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0xcc]
add dword [esp + 0x30], 0x224
add esp, 0x1c
cmp edi, dword [eax + 4]
jl 0x40a313
mov ebx, dword [esp + 0x24]
cmp dword [ebx + 0xb4], 0
je 0x40a3ba
mov eax, dword [ebx + 0xb4]
mov esi, dword [eax + 0x20]
mov edi, dword [eax + 0x1c]
call fcn.00438330
mov ecx, dword [eax + 4]
push esi
push edi
push str.Windows_Version_t_t_s__s_n
call ecx
mov eax, dword [ebx + 0xb4]
lea esi, [eax + 0x40]
add esp, 0xc
cmp byte [esi], 0
je 0x40a3ba
call fcn.00438330
mov edx, dword [eax + 4]
push esi
push str.DirectX_Version_t_t_s_n
call edx
add esp, 8
mov ecx, dword [ebx + 0xb8]
call fcn.00421eb0
call fcn.00438330
mov ecx, eax
call fcn.00436c70
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00490dce
mov esp, ebp
pop ebp
ret