Function at 0x401860
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 4], eax
test eax, eax
je 0x401afc
push esi
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov esi, dword [ebp - 0x68]
lea eax, [ebp - 0x4c]
push 0x1c
push eax
push esi
push dword [ebp - 4]
xorps xmm0, xmm0
mov dword [ebp - 0xc], esi
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x34], 0
movq qword [ebp - 0x3c], xmm0
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x401af2
push ebx
mov ebx, dword [ebp + 0x24]
push edi
mov edi, dword [ebp + 0x18]
nop
cmp dword [ebp - 0x3c], 0x1000
jne 0x401a9f
mov eax, dword [ebp - 0x38]
cmp eax, 2
je 0x4018e8
cmp eax, 4
je 0x4018e8
cmp eax, 0x20
je 0x4018e8
cmp eax, 0x40
jne 0x401a9f
push dword [ebp - 0x40]
call fcn.00401cfb
push dword [ebp - 0x40]
mov esi, eax
push 0
push esi
mov dword [ebp - 8], esi
call fcn.00402d50
add esp, 0x10
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x40]
push esi
push dword [ebp - 0x4c]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x401ae3
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
mov eax, dword [ebp - 0x40]
cmovb ecx, edi
cmp ecx, ebx
cmovb ecx, ebx
xor ebx, ebx
mov dword [ebp - 0x18], ecx
sub eax, ecx
je 0x401a90
nop dword [eax]
mov edx, dword [ebp + 8]
lea edi, [ebx + esi]
mov esi, dword [ebp + 0xc]
mov ecx, edi
sub esi, 4
jb 0x401961
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x401966
add ecx, 4
add edx, 4
sub esi, 4
jae 0x401950
cmp esi, 0xfffffffc
je 0x401993
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4019ab
cmp esi, 0xfffffffd
je 0x401993
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4019ab
cmp esi, 0xfffffffe
je 0x401993
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4019ab
cmp esi, 0xffffffff
je 0x401993
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4019ab
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x10]
add eax, ebx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00401090
mov esi, dword [ebp + 0x18]
mov ecx, edi
mov edx, dword [ebp + 0x14]
sub esi, 4
jb 0x4019c9
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4019ce
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4019b8
cmp esi, 0xfffffffc
je 0x4019fb
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x401a13
cmp esi, 0xfffffffd
je 0x4019fb
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x401a13
cmp esi, 0xfffffffe
je 0x4019fb
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x401a13
cmp esi, 0xffffffff
je 0x4019fb
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x401a13
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x1c]
add eax, ebx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00401090
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x20]
sub edx, 4
jb 0x401a31
nop
mov ecx, dword [edi]
cmp ecx, dword [eax]
jne 0x401a36
add edi, 4
add eax, 4
sub edx, 4
jae 0x401a20
cmp edx, 0xfffffffc
je 0x401a63
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x401a7b
cmp edx, 0xfffffffd
je 0x401a63
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x401a7b
cmp edx, 0xfffffffe
je 0x401a63
mov cl, byte [edi + 2]
cmp cl, byte [eax + 2]
jne 0x401a7b
cmp edx, 0xffffffff
je 0x401a63
mov cl, byte [edi + 3]
cmp cl, byte [eax + 3]
jne 0x401a7b
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x28]
add eax, ebx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00401090
mov eax, dword [ebp - 0x40]
inc ebx
sub eax, dword [ebp - 0x18]
mov esi, dword [ebp - 8]
cmp ebx, eax
jb 0x401940
mov edi, dword [ebp + 0x18]
push esi
call fcn.00401d04
mov ebx, dword [ebp + 0x24]
add esp, 4
mov esi, dword [ebp - 0xc]
add esi, dword [ebp - 0x40]
lea eax, [ebp - 0x4c]
push 0x1c
push eax
push esi
push dword [ebp - 4]
xorps xmm0, xmm0
mov dword [ebp - 0xc], esi
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x34], 0
movq qword [ebp - 0x3c], xmm0
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x4018c0
pop edi
pop ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x401af0
push esi
call fcn.00401d04
add esp, 4
pop edi
pop ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
mov esp, ebp
pop ebp
ret