Function at 0x4124f0
Capabilities:
Get system information on windows

Disassembly:
sub esp, 0x138
push ebx
push ebp
push esi
push edi
mov esi, edx
mov ebx, ecx
lea eax, [esp + 0x48]
xor edi, edi
push eax
mov dword [esp + 0x18], ebx
mov dword [ebx], edi
mov dword [esi], edi
mov dword [esp + 0x4c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x412930
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x24]
push edx
mov dword [esi], ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0x58]
cmp eax, 2
jne 0x41264d
mov eax, dword [esp + 0x24]
and eax, 0xffff
cmp eax, 2
jg 0x4125ee
je 0x4125b2
sub eax, edi
je 0x41257c
dec eax
jne case.0x41261c.7
cmp word [esp + 0x44], 4
jne 0x412572
push str.MIPS_R4000_
jmp 0x41267e
push str.MIPS_
jmp 0x41267e
mov eax, dword [esp + 0x44]
and eax, 0xffff
sub eax, 3
je 0x4125a8
dec eax
je 0x41259e
dec eax
jne case.0x41261c.7
push 0x42cd70
jmp 0x41267e
push 0x42cd64
jmp 0x41267e
push 0x42cd58
jmp 0x41267e
mov eax, dword [esp + 0x44]
and eax, 0xffff
sub eax, 0x5248
je 0x4125e4
sub eax, 2
je 0x4125da
sub eax, 0x62
jne case.0x41261c.7
push str.Alpha_21164_
jmp 0x41267e
push str.Alpha_21066_
jmp 0x41267e
push str.Alpha_21064_
jmp 0x41267e
cmp eax, 3
je 0x412605
cmp eax, 0xffff
jne case.0x41261c.7
push str.Unknown_processor_
jmp 0x41267e
mov eax, dword [esp + 0x44]
and eax, 0xffff
dec eax
cmp eax, 0x13
ja case.0x41261c.7
xor ecx, ecx
mov cl, byte [eax + 0x412958]
jmp dword [ecx*4 + 0x41293c]
push str.PPC_601_
jmp 0x41267e
push 0x42cdd4
jmp 0x41267e
push 0x42cde0
jmp 0x41267e
push str.PPC_603_
jmp 0x41267e
push str.PPC_604_
jmp 0x41267e
push str.PPC_620_
jmp 0x41267e
cmp eax, 1
jne 0x412686
mov eax, dword [esp + 0x3c]
cmp eax, 0x182
jne 0x412664
push str.Intel_386_
jmp 0x41267e
cmp eax, 0x1e6
jne 0x412672
push str.Intel_486_
jmp 0x41267e
cmp eax, 0x24a
jne 0x4126a6
push str.Intel_Pentium_
call fcn.00412e80
add esp, 4
mov eax, dword [esp + 0x58]
cmp eax, 2
jne 0x412696
push str.Windows_NT
jmp 0x4126ab
cmp eax, edi
jne 0x4126a1
push str.Win32s
jmp 0x4126ab
cmp eax, 1
jne 0x4126b3
push str.Windows_9X
call fcn.00412e80
add esp, 4
mov al, byte [esp + 0x5c]
test al, al
mov eax, 0x4378a0
je 0x4126c5
mov eax, 0x42ce6c
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x5c]
push edx
push eax
mov eax, dword [esp + 0x58]
push eax
push ecx
push str.__d._d_s_s
call fcn.00412e80
mov eax, dword [esp + 0x6c]
add esp, 0x14
cmp eax, 2
jne 0x41274f
mov eax, dword [esp + 0x4c]
cmp eax, 4
jae 0x412701
mov dword [ebx], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x138
ret
jne 0x41277a
push 0x42ce7c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
cmp esi, edi
je 0x41272d
push 0x42ce88
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
jne 0x41273e
pop edi
pop esi
mov dword [ebx], 0x200
pop ebp
pop ebx
add esp, 0x138
ret
pop edi
pop esi
mov dword [ebx], 0x300
pop ebp
pop ebx
add esp, 0x138
ret
cmp eax, 1
jne 0x412930
mov edx, dword [esp + 0x54]
mov dword [esp + 0x20], edi
and edx, 0xffff
mov dword [esp + 0x18], edi
cmp edx, 0x549
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], edi
jbe 0x41278b
pop edi
pop esi
mov dword [ebx], 0x501
pop ebp
pop ebx
add esp, 0x138
ret
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.DDRAW.DLL
call esi
mov ebp, eax
cmp ebp, edi
jne 0x4127ab
mov dword [ebx], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x138
ret
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.DirectDrawCreate
push ebp
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
jne 0x4127db
mov eax, dword [esp + 0x14]
push ebp
mov dword [eax], 0
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x138
ret
lea ecx, [esp + 0x10]
push 0
push ecx
push 0
call eax
test eax, eax
je 0x4127f9
mov edx, dword [esp + 0x14]
mov dword [edx], 0
jmp 0x412917
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x1c]
push edx
push 0x427b48
mov dword [eax], 0x100
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
jne 0x412917
mov eax, dword [esp + 0x14]
mov dword [eax], 0x200
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x412836
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0x42cebc
mov dword [esp + 0x20], 0
call esi
mov esi, eax
test esi, esi
je 0x412917
push 0x42cec8
push esi
call edi
mov edi, eax
push esi
call ebx
test edi, edi
je 0x412917
mov esi, dword [esp + 0x14]
mov ecx, 0x1b
xor eax, eax
lea edi, [esp + 0xdc]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0xdc], 0x6c
mov dword [esp + 0xe0], 1
mov dword [esp + 0x144], 0x200
mov edx, dword [eax]
push 8
push edi
push eax
mov dword [esi], 0x300
call dword [edx + 0x50]
test eax, eax
je 0x4128b6
mov dword [esi], edi
jmp 0x412917
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edi
push edx
mov ecx, dword [eax]
lea edx, [esp + 0xe4]
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x4128d6
mov dword [esi], edi
jmp 0x412905
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x20]
push edx
push 0x427b68
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
jl 0x4128f3
mov dword [esi], 0x500
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x412901
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x412913
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x412925
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebp
mov dword [esp + 0x14], 0
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x138
ret