Function at 0x401b90
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x428418
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x436038]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x84], eax
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
call fcn.004158f0
mov edi, eax
mov ecx, edi
call fcn.00415b80
test al, al
jne 0x401c05
push esi
mov ecx, edi
call fcn.00415be0
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x401e42
push 0x430ca0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x401e42
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ax, word [ebp - 0x7c]
cmp ax, 9
je 0x401c4a
cmp ax, 6
jne 0x401e42
push 0x14
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
lea ecx, [ebp - 0x58]
push str.2345ImageThumb64.dll
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.004032a0
mov byte [ebp - 4], 1
xor eax, eax
mov esi, dword [ebp - 0x84]
mov ecx, esi
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
lea edx, [ecx + 2]
mov word [ebp - 0x40], ax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401cb0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x40]
call fcn.004032a0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00404e50
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x401d19
mov ecx, eax
call fcn.00403240
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x401d57
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x401d4d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402493
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x401da9
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x401d9f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402498
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x401dfa
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x401df0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40249d
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x44], 7
call fcn.004039a0
add esp, 4
test al, al
je 0x40202d
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004158b0
test al, al
jne 0x40202d
jmp 0x402405
push 0x12
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.2345ImageThumb.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.004032a0
mov byte [ebp - 4], 4
xor eax, eax
mov esi, dword [ebp - 0x84]
mov ecx, esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea edx, [ecx + 2]
mov word [ebp - 0x58], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401ea4
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.004032a0
mov byte [ebp - 4], 5
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00404e50
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x401f0d
mov ecx, eax
call fcn.00403240
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x401f4b
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x401f41
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024a2
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x401f9d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x401f93
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024a7
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x401fee
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x401fe4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024ac
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x2c], 7
call fcn.004039a0
add esp, 4
test al, al
je 0x40202d
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004158b0
test al, al
je 0x402405
push 0xd
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.FreeImage.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.004032a0
mov byte [ebp - 4], 7
xor eax, eax
mov esi, dword [ebp - 0x84]
mov ecx, esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea edx, [ecx + 2]
mov word [ebp - 0x58], ax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402090
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.004032a0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00404e50
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 9
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4020f9
mov ecx, eax
call fcn.00403240
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x402137
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40212d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024b1
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x402189
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40217f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024b6
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x4021da
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4021d0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024bb
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x2c], 7
call fcn.004039a0
add esp, 4
test al, al
je 0x402219
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004158b0
test al, al
je 0x402405
push 0x11
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.FreeImagePlus.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.004032a0
mov byte [ebp - 4], 0xa
xor eax, eax
mov esi, dword [ebp - 0x84]
mov ecx, esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea edx, [ecx + 2]
mov word [ebp - 0x58], ax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402280
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.004032a0
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00404e50
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4022e9
mov ecx, eax
call fcn.00403240
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x402327
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40231d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024c0
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x402379
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40236f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024c5
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x4023ca
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4023c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024ca
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x2c], 7
call fcn.004039a0
add esp, 4
test al, al
je 0x40241e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004158b0
test al, al
jne 0x40241e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00415c10
mov byte [ebp - 0x7d], 0
jmp 0x402422
mov byte [ebp - 0x7d], 1
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x40245f
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x402455
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4024cf
push edx
push ecx
call fcn.00416d7e
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov al, byte [ebp - 0x7d]
mov dword [ebp - 0x14], 7
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00416858
mov esp, ebp
pop ebp
ret 0xc
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
call fcn.0041a2ea
int3