Function at 0x401160
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4165be
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x41e358]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov esi, ecx
push eax
mov edi, esi
mov dword [ebp - 0x158], esi
mov dword [ebp - 4], 0
call fcn.00401860
test al, al
jne 0x4011e3
mov eax, dword [esi + 8]
push 0x40
push 0x41a168
push 0x41a268
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004087e8
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp + 0xc], 0
je 0x4011ff
cmp dword [esi + 4], 0
je 0x4011c5
push 0x40
push 0x41a168
push 0x41a27c
push 0
jmp 0x4011bf
call fcn.00406320
mov dword [ebp - 0x160], eax
cmp eax, 0x1050000
jle 0x401229
cmp dword [esi + 4], 0
je 0x4011c5
mov ecx, dword [esi + 8]
push 0x40
push 0x41a168
push 0x41a290
push ecx
jmp 0x4011bf
mov eax, 0x41a180
lea ecx, [ebp - 0x68]
call fcn.00402800
lea edx, [ebp - 0x68]
lea ecx, [esi + 0xc]
mov ebx, 1
push edx
mov byte [ebp - 4], bl
mov dword [ebp - 0x15c], ecx
call fcn.00406620
add esp, 4
mov byte [ebp - 4], 0
cmp dword [ebp - 0x54], 8
jb 0x401269
mov eax, dword [ebp - 0x68]
push eax
call fcn.0040896d
add esp, 4
lea ecx, [ebp - 0xd8]
call fcn.00406540
mov eax, 0x41a2c0
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 2
call fcn.00402800
lea edi, [ebp - 0xd8]
mov byte [ebp - 4], 3
call fcn.00402c50
mov edi, eax
call fcn.00406e50
lea ecx, [ebp - 0x150]
push ecx
mov byte [ebp - 0x151], al
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ax, word [ebp - 0x150]
cmp ax, 6
je 0x4012cb
mov byte [ebp - 0x152], 0
cmp ax, 9
jne 0x4012d2
mov byte [ebp - 0x152], 1
lea ebx, [ebp - 0x4c]
call fcn.00406f70
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 4
call fcn.00406e90
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 5
call fcn.004070d0
mov bl, 6
mov byte [ebp - 4], bl
cmp edi, 0xffffffff
je 0x40133e
mov edx, dword [ebp - 0xc8]
sub edx, edi
push edx
lea ecx, [edi + 1]
lea esi, [ebp - 0x30]
lea edx, [ebp - 0xd8]
call fcn.004028c0
mov edi, eax
lea esi, [ebp - 0x110]
mov byte [ebp - 4], 7
call fcn.004028f0
lea esi, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402860
mov esi, dword [ebp - 0x158]
push 0
lea eax, [ebp - 0x110]
push eax
or eax, 0xffffffff
lea ecx, [ebp - 0xd8]
call fcn.00402a90
mov eax, 0x41a2c8
lea ecx, [ebp - 0x30]
call fcn.00402800
cmp byte [ebp - 0x151], 1
mov byte [ebp - 4], 8
mov eax, str.true
je 0x401379
mov eax, str.false
lea ecx, [ebp - 0xbc]
call fcn.00402800
mov eax, 0x41a180
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 9
call fcn.00402800
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x15c]
lea edx, [ebp - 0xbc]
push edx
lea eax, [ebp - 0x84]
push eax
push ecx
lea edx, [ebp - 0xd8]
push edx
lea edx, [ebp - 0xf4]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xa
call fcn.00401c50
cmp dword [ebp - 0x54], 8
jb 0x4013d9
mov eax, dword [ebp - 0x68]
push eax
call fcn.0040896d
add esp, 4
xor ecx, ecx
cmp dword [ebp - 0xa8], 8
mov edi, 7
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x58], 0
mov word [ebp - 0x68], cx
jb 0x401406
mov edx, dword [ebp - 0xbc]
push edx
call fcn.0040896d
add esp, 4
xor eax, eax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x1c], 8
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xac], 0
mov word [ebp - 0xbc], ax
jb 0x401434
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0040896d
add esp, 4
cmp byte [ebp - 0x151], 0
jne 0x4014d7
cmp byte [ebp - 0x152], 0
jne 0x4014d7
lea edx, [ebp - 0x84]
push edx
mov edx, 0x41a2e8
call fcn.00402890
cmp eax, 0xffffffff
je 0x4014d7
lea eax, [ebp - 0x4c]
push eax
mov edx, 0x41a2f0
call fcn.00402890
cmp eax, 0xffffffff
jne 0x40148a
lea ecx, [ebp - 0x4c]
push ecx
mov edx, 0x41a2f8
call fcn.00402890
cmp eax, 0xffffffff
je 0x4014d7
xor ebx, ebx
cmp dword [esi + 4], ebx
je 0x4014ac
mov edx, dword [esi + 8]
push 0x41
push 0x41a168
push 0x41a300
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
jne 0x4014d9
lea ebx, [ebp - 0x30]
call fcn.004025f0
mov eax, ebx
push eax
push esi
mov byte [ebp - 4], 0xb
call fcn.00402460
mov esi, ebx
mov byte [ebp - 4], 6
call fcn.00402860
mov esi, dword [ebp - 0x158]
mov edi, 7
xor ebx, ebx
lea eax, [ebp - 0x12c]
call fcn.004022d0
xor ecx, ecx
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x90], ebx
mov word [ebp - 0xa0], cx
mov byte [ebp - 4], 0xd
mov ecx, dword [esi + 8]
cmp dword [ebp - 0x11c], ebx
je 0x40172d
cmp dword [esi + 4], ebx
setne dl
movzx eax, dl
push eax
push ecx
call fcn.00406150
add esp, 8
test al, al
jne 0x401572
lea esi, [ebp - 0xa0]
call fcn.00402860
lea esi, [ebp - 0x12c]
call fcn.00402860
lea esi, [ebp - 0xf4]
call fcn.00402860
lea esi, [ebp - 0x84]
call fcn.00402860
lea esi, [ebp - 0x4c]
call fcn.00402860
lea esi, [ebp - 0x110]
call fcn.00402860
lea esi, [ebp - 0xd8]
call fcn.00402860
jmp 0x4011c5
mov edx, dword [ebp - 0x160]
dec edx
cmp edx, 0x104ffff
ja 0x4015d9
cmp dword [esi + 4], ebx
je 0x4015a1
mov eax, dword [esi + 8]
push 0x41
push 0x41a34c
push 0x41a358
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
jne 0x401523
lea ecx, [ebp - 0x30]
call fcn.00403ad0
mov edi, eax
lea esi, [ebp - 0xa0]
mov byte [ebp - 4], 0xe
call fcn.004028f0
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0xd
call fcn.00402860
mov ecx, dword [ebp - 0x158]
push ecx
call fcn.00401970
mov edi, 7
xor ebx, ebx
mov eax, 0x41a378
lea ecx, [ebp - 0x68]
call fcn.00402800
cmp byte [ebp - 0x151], 1
mov byte [ebp - 4], 0xf
mov eax, str.true
je 0x4015fd
mov eax, str.false
lea ecx, [ebp - 0x30]
call fcn.00402800
mov eax, 0x41a180
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x10
call fcn.00402800
lea edx, [ebp - 0x68]
push edx
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x84]
push ecx
push edx
lea eax, [ebp - 0xd8]
push eax
lea edx, [ebp - 0xf4]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x11
call fcn.00401c50
lea esi, [ebp - 0xbc]
call fcn.00402860
lea esi, [ebp - 0x30]
call fcn.00402860
lea esi, [ebp - 0x68]
mov byte [ebp - 4], 0xd
call fcn.00402860
mov esi, dword [ebp - 0x158]
lea ecx, [ebp - 0x12c]
push ecx
lea ecx, [ebp - 0xa0]
mov edx, esi
call fcn.00402120
test al, al
je 0x401740
cmp dword [esi + 4], ebx
je 0x401693
call fcn.00401fd0
call fcn.00401ae0
mov eax, 0x41a380
lea ecx, [ebp - 0xbc]
call fcn.00402800
cmp byte [ebp - 0x151], 1
mov byte [ebp - 4], 0x12
mov eax, str.true
je 0x4016bf
mov eax, str.false
lea ecx, [ebp - 0x30]
call fcn.00402800
mov eax, 0x41a180
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0x13
call fcn.00402800
lea edx, [ebp - 0xbc]
push edx
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x84]
push ecx
push edx
lea eax, [ebp - 0xd8]
push eax
lea edx, [ebp - 0xf4]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x14
call fcn.00401c50
lea esi, [ebp - 0x148]
call fcn.00402860
lea esi, [ebp - 0x30]
call fcn.00402860
lea esi, [ebp - 0xbc]
call fcn.00402860
jmp 0x401740
push 0x40
push 0x41a168
push 0x41a388
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 8
cmp dword [ebp - 0x8c], esi
jb 0x40175c
mov edx, dword [ebp - 0xa0]
push edx
call fcn.0040896d
add esp, 4
xor eax, eax
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x90], ebx
mov word [ebp - 0xa0], ax
cmp dword [ebp - 0x118], esi
jb 0x401788
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.0040896d
add esp, 4
xor edx, edx
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x11c], ebx
mov word [ebp - 0x12c], dx
cmp dword [ebp - 0xe0], esi
jb 0x4017b4
mov eax, dword [ebp - 0xf4]
push eax
call fcn.0040896d
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xe4], ebx
mov word [ebp - 0xf4], cx
cmp dword [ebp - 0x70], esi
jb 0x4017dd
mov edx, dword [ebp - 0x84]
push edx
call fcn.0040896d
add esp, 4
xor eax, eax
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x74], ebx
mov word [ebp - 0x84], ax
cmp dword [ebp - 0x38], esi
jb 0x4017fd
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0040896d
add esp, 4
xor edx, edx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], dx
cmp dword [ebp - 0xfc], esi
jb 0x401820
mov eax, dword [ebp - 0x110]
push eax
call fcn.0040896d
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0x100], ebx
mov word [ebp - 0x110], cx
cmp dword [ebp - 0xc4], esi
jb 0x4011c5
mov edx, dword [ebp - 0xd8]
push edx
call fcn.0040896d
add esp, 4
jmp 0x4011c5