Function at 0x408890
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4290f8
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.00415bf0
mov edi, eax
mov ecx, edi
call fcn.00415e80
test al, al
jne 0x408905
push esi
mov ecx, edi
call fcn.00415ee0
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x408b42
push 0x4311bc
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x408b42
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ax, word [ebp - 0x7c]
cmp ax, 9
je 0x40894a
cmp ax, 6
jne 0x408b42
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.00402090
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 0x4089b0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x40]
call fcn.00402090
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.00407ab0
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x408a19
mov ecx, eax
call fcn.00402030
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 0x408a57
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408a4d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409193
push edx
push ecx
call fcn.00416b99
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 0x408aa9
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408a9f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409198
push edx
push ecx
call fcn.00416b99
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 0x408afa
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408af0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40919d
push edx
push ecx
call fcn.00416b99
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.00406850
add esp, 4
test al, al
je 0x408d2d
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00415bb0
test al, al
jne 0x408d2d
jmp 0x409105
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.00402090
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 0x408ba4
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.00402090
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.00407ab0
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x408c0d
mov ecx, eax
call fcn.00402030
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 0x408c4b
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408c41
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091a2
push edx
push ecx
call fcn.00416b99
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 0x408c9d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408c93
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091a7
push edx
push ecx
call fcn.00416b99
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 0x408cee
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408ce4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091ac
push edx
push ecx
call fcn.00416b99
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.00406850
add esp, 4
test al, al
je 0x408d2d
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00415bb0
test al, al
je 0x409105
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.00402090
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 0x408d90
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.00402090
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.00407ab0
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 9
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x408df9
mov ecx, eax
call fcn.00402030
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 0x408e37
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408e2d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091b1
push edx
push ecx
call fcn.00416b99
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 0x408e89
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408e7f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091b6
push edx
push ecx
call fcn.00416b99
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 0x408eda
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408ed0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091bb
push edx
push ecx
call fcn.00416b99
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.00406850
add esp, 4
test al, al
je 0x408f19
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00415bb0
test al, al
je 0x409105
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.00402090
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 0x408f80
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.00402090
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.00407ab0
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x408fe9
mov ecx, eax
call fcn.00402030
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 0x409027
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40901d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091c0
push edx
push ecx
call fcn.00416b99
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 0x409079
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40906f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091c5
push edx
push ecx
call fcn.00416b99
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 0x4090ca
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4090c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091ca
push edx
push ecx
call fcn.00416b99
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.00406850
add esp, 4
test al, al
je 0x40911e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00415bb0
test al, al
jne 0x40911e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00415f10
mov byte [ebp - 0x7d], 0
jmp 0x409122
mov byte [ebp - 0x7d], 1
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x40915f
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409155
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4091cf
push edx
push ecx
call fcn.00416b99
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.00416b58
mov esp, ebp
pop ebp
ret 0xc
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
call fcn.0041a92a
int3