Function at 0x4043db
Capabilities:
Get system information on windows

Disassembly:
push 0x1d8
mov eax, 0x5784c9
call fcn.0054d329
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1a0], eax
push 0x2c
mov word [eax], dx
xor eax, eax
mov word [ecx], ax
lea eax, [ebp - 0x90]
push 0xff
push eax
mov dword [ebp - 0x1bc], ecx
call fcn.0054ee80
add esp, 0xc
lea edi, [ebp - 0x1e4]
xor eax, eax
push 9
pop ecx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1e4]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movzx ecx, word [ebp - 0x1c4]
lea edi, [ebp - 0x24]
movzx esi, word [ebp - 0x1c2]
xor eax, eax
stosd dword es:[edi], eax
mov dword [ebp - 0x19c], ecx
lea ecx, [ebp - 0x198]
shr esi, 8
mov dword [ebp - 0x1a8], esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
xor eax, eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1c0], eax
call fcn.004041f0
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
cpuid
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
mov eax, 1
cpuid
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1c0], ebx
mov eax, 2
xor ebx, ebx
xor ecx, ecx
xor edx, edx
cpuid
and eax, 0xffffff00
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edx
push 0xc
pop edi
push edi
lea eax, [ebp - 0x24]
xor ebx, ebx
push str.GenuineIntel
push eax
mov byte [ebp - 0x18], bl
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x4044ea
mov edi, ebx
mov dword [ebp - 0x1a4], ebx
jmp 0x4045c9
push edi
lea eax, [ebp - 0x24]
push str.AuthenticAMD
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x404508
xor edi, edi
inc edi
jmp 0x4045c3
push edi
lea eax, [ebp - 0x24]
push str.CyrixInstead
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x404525
push 2
jmp 0x4045c2
push edi
lea eax, [ebp - 0x24]
push str.CentaurHauls
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x404542
push 3
jmp 0x4045c2
push edi
lea eax, [ebp - 0x24]
push str.ConnectixCPU
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x40455c
push 4
jmp 0x4045c2
push edi
lea eax, [ebp - 0x24]
push str.UMC_UMC_UMC
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x404576
push 5
jmp 0x4045c2
push edi
lea eax, [ebp - 0x24]
push str.NexGenDriven
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x404590
push 6
jmp 0x4045c2
push edi
lea eax, [ebp - 0x24]
push str.RiseRiseRise
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x4045aa
push 7
jmp 0x4045c2
push edi
lea eax, [ebp - 0x24]
push str.GenuineTMx86
push eax
call fcn.005606f0
add esp, 0xc
test eax, eax
jne 0x40462d
push 8
pop edi
mov dword [ebp - 0x1a4], edi
mov edx, dword [ebp - 0x1b8]
cmp edx, 1
jl 0x40463c
mov ecx, dword [ebp - 0x1b4]
mov eax, ecx
shr eax, 8
mov esi, ecx
and eax, 0xf
shr esi, 4
mov dword [ebp - 0x19c], eax
and esi, 0xf
mov eax, ecx
mov dword [ebp - 0x1a8], esi
shr ecx, 0x10
shr eax, 0x14
and ecx, 0xf
cmp dword [ebp - 0x19c], 0xf
movzx eax, al
jne 0x404618
or eax, 0x80000000
mov dword [ebp - 0x19c], eax
cmp esi, 0xf
jne 0x404642
mov esi, ecx
or esi, 0x80000000
mov dword [ebp - 0x1a8], esi
jmp 0x404642
mov edx, dword [ebp - 0x1b8]
or edi, 0xffffffff
mov dword [ebp - 0x1a4], edi
mov dword [ebp - 0x1c0], ebx
test edi, edi
jne 0x40485c
cmp edx, 2
jl 0x40485c
push 4
pop esi
lea eax, [ebp - 0x34]
mov dword [ebp - 0x1b0], esi
push 0x20
mov dword [ebp - 0x1b8], eax
mov edx, 0x200
pop ecx
cmp byte [eax + 3], bl
jl 0x404838
push 4
mov esi, eax
pop edi
movzx eax, byte [esi]
cmp eax, 0x67
ja 0x40475d
je 0x404751
cmp eax, 0x41
ja 0x40470a
je 0x4046fb
sub eax, 6
je 0x4046e9
dec eax
sub eax, 1
je 0x4046dd
dec eax
sub eax, 1
je 0x4046cb
dec eax
sub eax, 1
je 0x4046bf
sub eax, 0x34
jne 0x404822
mov dword [ebp - 0x84], ebx
jmp 0x4047e9
mov dword [ebp - 0x88], 0x10
jmp 0x4046d5
mov dword [ebp - 0x88], 8
mov dword [ebp - 0x74], ecx
jmp 0x404822
mov dword [ebp - 0x8c], 0x10
jmp 0x4046f3
mov dword [ebp - 0x8c], 8
mov dword [ebp - 0x78], ecx
jmp 0x404822
mov dword [ebp - 0x84], 0x80
jmp 0x4047e9
sub eax, 0x42
je 0x4047fa
sub eax, 1
je 0x404749
sub eax, 1
je 0x4047ee
sub eax, 1
je 0x4047df
sub eax, 0x21
jne 0x404822
mov dword [ebp - 0x88], 8
mov dword [ebp - 0x74], 0x40
jmp 0x404822
mov dword [ebp - 0x70], ecx
jmp 0x40481c
mov dword [ebp - 0x88], 0x10
jmp 0x40473d
cmp eax, 0x7a
ja 0x4047c5
je 0x4047b9
sub eax, 0x68
je 0x4047b1
sub eax, 8
je 0x4047a8
sub eax, 1
je 0x40479f
sub eax, 1
je 0x404797
sub eax, 7
jne 0x404822
mov dword [ebp - 0x84], 0x80
mov dword [ebp - 0x70], 0x40
jmp 0x404822
mov dword [ebp - 0x68], ecx
jmp 0x404822
mov dword [ebp - 0x68], 0x10
jmp 0x404822
mov dword [ebp - 0x68], 0xc
jmp 0x404822
mov dword [ebp - 0x88], ecx
jmp 0x40473d
mov dword [ebp - 0x84], 0x100
jmp 0x40478b
sub eax, 0x7b
je 0x404815
sub eax, 1
je 0x404806
sub eax, 6
je 0x4047fa
dec eax
sub eax, 1
je 0x4047ee
sub eax, 1
jne 0x404822
mov dword [ebp - 0x84], 0x800
mov dword [ebp - 0x70], ecx
jmp 0x404822
mov dword [ebp - 0x84], 0x400
jmp 0x4047e9
mov dword [ebp - 0x84], 0x100
jmp 0x4047e9
mov dword [ebp - 0x84], 0x400
jmp 0x40478b
mov dword [ebp - 0x70], 0x40
mov dword [ebp - 0x84], edx
inc esi
sub edi, 1
jne 0x40467b
mov eax, dword [ebp - 0x1b8]
mov esi, dword [ebp - 0x1b0]
add eax, 4
sub esi, 1
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b0], esi
jne 0x40466d
mov edi, dword [ebp - 0x1a4]
mov esi, dword [ebp - 0x1a8]
mov dword [ebp - 4], ebx
test edi, edi
jns 0x404876
push str.Unknown
lea eax, [ebp - 0x24]
push 0xd
push eax
call fcn.00560689
add esp, 0xc
push edi
call fcn.0040711a
pop ecx
mov byte [ebp - 0x1a9], al
mov byte [ebp - 4], 3
mov eax, SysReAllocStringLen
cpuid
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0x80000004
jb 0x404963
push 0x30
lea eax, [ebp - 0x64]
push 0
push eax
call fcn.0054ee80
add esp, 0xc
mov eax, reloc.OLEAUT32.dll_SysReAllocString
cpuid
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
mov eax, VariantInit
cpuid
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], edx
mov eax, reloc.OLEAUT32.dll_SysReAllocStringLen
cpuid
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
lea eax, [ebp - 0x190]
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x194], eax
lea ecx, [ebp - 0x194]
push 3
lea eax, [ebp - 0x64]
push eax
call fcn.0040705c
push dword [ebp - 0x194]
lea ecx, [ebp - 0x198]
call fcn.004072d9
lea eax, [ebp - 0x190]
cmp dword [ebp - 0x194], eax
je 0x404939
push dword [ebp - 0x194]
call fcn.00560aa1
pop ecx
lea ecx, [ebp - 0x198]
call fcn.00407375
lea ecx, [ebp - 0x198]
call fcn.0040732c
jmp 0x404963
xor eax, eax
mov dword [ebp - 4], eax
mov ecx, eax
mov edx, dword [ebp - 0x19c]
cmp dword [eax + 0x588f00], edi
jne 0x404997
cmp dword [eax + 0x588f04], edx
jne 0x404997
mov edx, dword [eax + 0x588f08]
cmp edx, 0xffffffff
je 0x404a6a
cmp edx, esi
je 0x404a6a
add eax, 0x14
inc ecx
cmp eax, 0x71c
jb 0x40496a
mov ebx, dword [ebp + 0xc]
test edi, edi
jne 0x404a8a
cmp dword [ebp - 0x19c], 6
jne 0x404a8a
cmp esi, 5
jne 0x404a22
mov eax, dword [ebp - 0x84]
cmp eax, 0x200
jge 0x4049eb
push str.Intel_Celeron
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
mov eax, dword [ebp - 0x84]
add esp, 0xc
cmp eax, 0x200
jne 0x404a07
push str.Intel_Pentium_II
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
mov eax, dword [ebp - 0x84]
add esp, 0xc
cmp eax, 0x200
jle 0x404a8a
push str.Intel_Pentium_II_Xeon
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
add esp, 0xc
cmp esi, 7
mov esi, str.Intel_Pentium_III
jne 0x404a8f
cmp dword [ebp - 0x84], 0x200
jg 0x404a54
push esi
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
add esp, 0xc
cmp dword [ebp - 0x84], 0x200
jle 0x404a8f
push str.Intel_Pentium_III_Xeon
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
add esp, 0xc
jmp 0x404a8f
mov ebx, dword [ebp + 0xc]
imul eax, ecx, 0x14
push dword [eax + 0x588f0c]
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
add esp, 0xc
jmp 0x4049a5
mov esi, str.Intel_Pentium_III
mov edx, dword [ebp - 0x1a0]
xor ecx, ecx
cmp word [edx], cx
jne 0x404b01
lea eax, [ebp - 0x190]
mov dword [ebp - 0x194], eax
lea ecx, [ebp - 0x194]
push 3
lea eax, [ebp - 0x24]
push eax
call fcn.0040705c
push dword [ebp - 0x1a8]
push dword [ebp - 0x19c]
push dword [ebp - 0x194]
push str._s_Family__X__Model__X
push ebx
push dword [ebp - 0x1a0]
call fcn.0040411b
lea eax, [ebp - 0x190]
add esp, 0x18
cmp dword [ebp - 0x194], eax
je 0x404af9
push dword [ebp - 0x194]
call fcn.00560aa1
pop ecx
mov edx, dword [ebp - 0x1a0]
xor ecx, ecx
test edi, edi
jne 0x404b96
movzx eax, byte [ebp - 0x1c0]
dec eax
cmp eax, 0xe
ja case.0x404b16.5
jmp dword [eax*4 + 0x404e0f]
mov esi, str.Intel_Celeron_II
jmp case.0x404b16.2
cmp dword [ebp - 0x1b4], 0x6b1
mov esi, str.Intel_Celeron
mov eax, str.Intel_Pentium_III_Xeon
cmovne esi, eax
jmp 0x404b87
mov esi, str.Intel_Pentium_III_mobile
jmp case.0x404b16.2
mov esi, str.Intel_Celeron_mobile
jmp case.0x404b16.2
mov esi, str.Intel_Pentium_4
jmp case.0x404b16.2
mov esi, str.Intel_Celeron
jmp case.0x404b16.2
mov esi, str.Intel_Pentium_4_Xeon_MP
mov eax, str.Intel_Pentium_4_Xeon
cmp dword [ebp - 0x1b4], 0xf13
cmovae esi, eax
jmp 0x404b87
mov esi, str.Intel_Pentium_4_Xeon_MP
jmp case.0x404b16.2
mov esi, str.Intel_Pentium_4_Xeon
mov eax, str.Intel_Mobile_Pentium_4
jmp 0x404b63
mov esi, ecx
test esi, esi
je 0x404b96
push esi
push ebx
push edx
call fcn.00552893
add esp, 0xc
mov esi, dword [ebp - 0x198]
push esi
call fcn.00552a19
pop ecx
test eax, eax
je 0x404dca
push 0x58a13c
lea ecx, [ebp - 0x198]
call fcn.00404e97
mov edi, eax
mov dword [ebp - 0x19c], edi
test edi, edi
jns 0x404be7
push 0x58a144
lea ecx, [ebp - 0x198]
call fcn.00404e97
mov edi, eax
mov dword [ebp - 0x19c], eax
test edi, edi
js 0x404cf1
mov ebx, edi
mov dword [ebp - 0x1a8], ebx
test edi, edi
je 0x404c33
push 0x20
pop eax
cmp word [esi + edi*2 - 2], ax
lea ebx, [edi - 1]
cmovne ebx, edi
mov dword [ebp - 0x1a8], ebx
test ebx, ebx
jle 0x404c33
lea edi, [esi - 2]
lea edi, [edi + ebx*2]
movzx eax, word [edi]
push eax
call fcn.0055fd40
pop ecx
test eax, eax
jne 0x404c27
dec ebx
sub edi, 2
test ebx, ebx
jg 0x404c11
mov edi, dword [ebp - 0x19c]
mov dword [ebp - 0x1a8], ebx
sub edi, ebx
lea ebx, [esi + ebx*2]
mov dword [ebp - 0x1b0], edi
add edi, edi
push edi
push ebx
push dword [ebp - 0x1bc]
call fcn.0054e900
mov ecx, dword [ebp - 0x1bc]
push 0x20
pop eax
mov word [edi + ecx], ax
mov eax, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x1b0]
movzx eax, word [esi + eax*2]
push eax
call fcn.0055fff0
mov ecx, dword [ebp - 0x1bc]
push 0x58a14c
mov word [ecx + edi*2 + 2], ax
add edi, 2
mov eax, dword [ebp + 0x14]
sub eax, edi
push eax
lea eax, [ecx + edi*2]
push eax
call fcn.00552893
mov ecx, dword [ebp - 0x1a8]
add esp, 0x1c
push 0x40
pop edx
test ecx, ecx
jle 0x404cab
cmp word [ebx - 2], dx
jne 0x404cab
dec ecx
jmp 0x404cc3
cmp ecx, 1
jle 0x404cc3
push 0x20
pop eax
cmp word [ebx - 2], ax
jne 0x404cc3
lea eax, [ecx - 2]
cmp word [esi + eax*2], dx
cmove ecx, eax
mov eax, dword [ebp - 0x19c]
sub eax, ecx
add eax, 3
push eax
push ecx
lea ecx, [ebp - 0x198]
call fcn.00404e4b
lea ecx, [ebp - 0x198]
call fcn.0040732c
lea ecx, [ebp - 0x198]
call fcn.00407375
push 0x58a154
lea ecx, [ebp - 0x198]
call fcn.00404e97
mov edi, eax
test edi, edi
js 0x404d51
lea ebx, [edi + 3]
jle 0x404d17
push 0x20
pop eax
cmp word [esi + edi*2 - 2], ax
jne 0x404d17
dec edi
push esi
call fcn.00552a19
pop ecx
cmp ebx, eax
jl 0x404d2b
push 0x20
pop eax
cmp word [esi + ebx*2], ax
jne 0x404d2c
inc ebx
sub ebx, edi
lea ecx, [ebp - 0x198]
push ebx
push edi
call fcn.00404e4b
lea ecx, [ebp - 0x198]
call fcn.0040732c
lea ecx, [ebp - 0x198]
call fcn.00407375
push 0x58a15c
lea ecx, [ebp - 0x198]
call fcn.00404e97
test eax, eax
js 0x404d73
push 3
push eax
lea ecx, [ebp - 0x198]
call fcn.00404e4b
push str._TM_
lea ecx, [ebp - 0x198]
call fcn.00404e97
test eax, eax
js 0x404d95
push 4
push eax
lea ecx, [ebp - 0x198]
call fcn.00404e4b
push str.Processor
lea ecx, [ebp - 0x198]
call fcn.00404e97
test eax, eax
js 0x404db7
push 0xa
push eax
lea ecx, [ebp - 0x198]
call fcn.00404e4b
mov ebx, dword [ebp + 0xc]
push esi
push ebx
push dword [ebp - 0x1a0]
call fcn.00552893
add esp, 0xc
mov edi, dword [ebp - 0x1d0]
cmp edi, 2
jb 0x404e00
cmp byte [ebp - 0x1a9], 0
je 0x404e00
push str.__Hyper_Threaded_
push ebx
push dword [ebp - 0x1a0]
call fcn.00560020
mov edi, dword [ebp - 0x1d0]
add esp, 0xc
shr edi, 1
mov dword [ebp - 0x1d0], edi
push esi
call fcn.00560aa1
pop ecx
mov eax, edi
call fcn.0054d27b
ret