Function at 0x405d78
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push esi
mov esi, 0x4d23ac
push edi
mov ecx, esi
call fcn.0040bf07
lea eax, [ebp - 0x148]
mov byte [0x4d23de], 0
push eax
mov dword [ebp - 0x148], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [ebp - 0x144]
mov ecx, esi
mov dword [0x4d23a0], eax
mov eax, dword [ebp - 0x140]
mov dword [0x4d23a4], eax
mov eax, dword [ebp - 0x13c]
mov dword [0x4d23a8], eax
lea eax, [ebp - 0x134]
push eax
call fcn.004084b7
xor eax, eax
or ecx, 0xffffffff
cmp dword [0x4d23b0], eax
ja 0x444f0c
mov eax, ecx
cmp eax, ecx
jne 0x444f4b
push ecx
mov esi, 0x4d23ac
push 0
mov ecx, esi
call fcn.004096d9
push 0x49dc2c
mov ecx, esi
call fcn.004079ed
mov eax, dword [0x4d23a0]
xor edx, edx
mov word [0x4d23d9], dx
mov dword [0x4d23bc], edx
mov dword [0x4d23c0], edx
mov dword [0x4d23c4], edx
mov dword [0x4d23c8], edx
mov dword [0x4d23cc], edx
mov dword [0x4d23d0], edx
mov dword [0x4d23d4], edx
mov byte [0x4d23d8], dl
push 1
pop ecx
sub eax, 5
je 0x4450ad
sub eax, ecx
je 0x444fae
sub eax, 4
jne 0x405ecc
mov byte [0x4d23bd], cl
mov byte [0x4d23bf], cl
mov byte [0x4d23cb], cl
mov byte [0x4d23c9], cl
mov byte [0x4d23c7], cl
mov byte [0x4d23c5], cl
mov byte [0x4d23c1], cl
mov byte [0x4d23cd], cl
mov byte [0x4d23cf], cl
mov byte [0x4d23d1], cl
cmp dword [0x4d23a4], edx
jne 0x405ecc
cmp byte [ebp - 0x2e], cl
jne 0x444f63
cmp dword [ebp - 0x13c], 0x55ec
jae 0x444f52
mov byte [0x4d23d0], cl
lea eax, [ebp - 4]
mov dword [ebp - 4], edx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
xor edx, edx
inc edx
cmp dword [ebp - 4], edx
jne 0x405f45
mov byte [0x4d23da], dl
push 9
xor eax, eax
lea edi, [ebp - 0x2c]
pop ecx
rep stosd dword es:[edi], eax
test dl, dl
je 0x4450f2
push 0x49dca8
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x405f4d
push str.GetNativeSystemInfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x405f4d
lea ecx, [ebp - 0x2c]
push ecx
call eax
test esi, esi
je 0x405f32
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ax, word [ebp - 0x2c]
pop edi
mov word [0x4d23dc], ax
mov eax, 0x4d23a0
pop esi
leave
ret
mov dl, byte [0x4d23da]
jmp 0x405eee
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
jmp 0x405f27
mov esi, dword [0x4d23ac]
xor edi, edi
push 0x20
xor edx, edx
movzx esi, word [esi + eax*2]
mov dword [ebp - 8], esi
pop esi
cmp word [ebp - 8], si
jne 0x444f27
inc edx
movzx esi, word [edi*2 + 0x49dc2e]
inc edi
test si, si
jne 0x444f20
test edx, edx
je 0x405def
inc eax
cmp eax, dword [0x4d23b0]
jb 0x444f0c
jmp 0x405ded
mov ecx, eax
jmp 0x405df7
mov byte [0x4d23d3], cl
mov byte [0x4d23d2], cl
jmp 0x405ecc
cmp dword [ebp - 0x13c], 0x44ff
jae 0x444f80
mov byte [0x4d23d5], cl
mov byte [0x4d23d4], cl
jmp 0x405ecc
cmp dword [ebp - 0x13c], 0x4f7c
jae 0x444f9d
mov byte [0x4d23d7], cl
mov byte [0x4d23d6], cl
jmp 0x405ecc
mov byte [0x4d23d9], cl
mov byte [0x4d23d8], cl
jmp 0x405ecc
mov eax, dword [0x4d23a4]
mov byte [0x4d23bd], cl
mov byte [0x4d23bf], cl
test eax, eax
jne 0x444fea
mov byte [0x4d23c1], cl
cmp byte [ebp - 0x2e], cl
jne 0x444fd9
mov byte [0x4d23c0], cl
jmp 0x405ecc
mov byte [0x4d23c3], cl
mov byte [0x4d23c2], cl
jmp 0x405ecc
cmp eax, ecx
jne 0x445021
mov byte [0x4d23c1], cl
mov byte [0x4d23c3], cl
mov byte [0x4d23c5], cl
cmp byte [ebp - 0x2e], cl
jne 0x445010
mov byte [0x4d23c4], cl
jmp 0x405ecc
mov byte [0x4d23c7], cl
mov byte [0x4d23c6], cl
jmp 0x405ecc
cmp eax, 2
jne 0x44505f
mov byte [0x4d23c7], cl
mov byte [0x4d23c5], cl
mov byte [0x4d23c1], cl
mov byte [0x4d23c9], cl
cmp byte [ebp - 0x2e], cl
jne 0x44504e
mov byte [0x4d23c8], cl
jmp 0x405ecc
mov byte [0x4d23cb], cl
mov byte [0x4d23ca], cl
jmp 0x405ecc
cmp eax, 3
jne 0x405ecc
mov byte [0x4d23cb], cl
mov byte [0x4d23c9], cl
mov byte [0x4d23c7], cl
mov byte [0x4d23c5], cl
mov byte [0x4d23c1], cl
mov byte [0x4d23cd], cl
cmp byte [ebp - 0x2e], cl
jne 0x44509c
mov byte [0x4d23cc], cl
jmp 0x405ecc
mov byte [0x4d23cf], cl
mov byte [0x4d23ce], cl
jmp 0x405ecc
mov eax, dword [0x4d23a4]
cmp eax, ecx
jne 0x4450d4
mov byte [0x4d23bd], cl
mov byte [0x4d23bc], cl
mov al, byte [ebp - 0x30]
shr al, 6
and al, cl
mov byte [0x4d23de], al
jmp 0x405ecc
cmp eax, 2
jne 0x4450c2
mov byte [0x4d23bd], cl
mov byte [0x4d23bf], cl
cmp byte [ebp - 0x2e], cl
je 0x4450bc
mov byte [0x4d23be], cl
jmp 0x4450c2
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
jmp 0x405f32