Function at 0x10026a80
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10096608
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x100c006c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x64], ecx
call fcn.10003080
mov edi, eax
test edi, edi
je 0x10027312
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x100ae124
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0
call fcn.100046b0
test al, al
jne 0x10026afb
push 0
push 0x100ae124
lea ecx, [ebp - 0x1c]
call fcn.100050e0
mov dword [ebp - 4], 1
call fcn.10003080
mov edi, eax
test edi, edi
je 0x1002731c
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0x100ae124
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.100046b0
test al, al
jne 0x10026b4c
push 0
push 0x100ae124
lea ecx, [ebp - 0x14]
call fcn.100050e0
mov byte [ebp - 4], 3
call fcn.10003080
mov edi, eax
test edi, edi
je 0x10027326
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0x100ae124
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call fcn.100046b0
test al, al
jne 0x10026b9a
push 0
push 0x100ae124
lea ecx, [ebp - 0x18]
call fcn.100050e0
mov byte [ebp - 4], 5
call fcn.10003080
mov edi, eax
test edi, edi
je 0x10027330
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x24], eax
push 0x100ae124
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 6
call fcn.100046b0
test al, al
jne 0x10026be8
push 0
push 0x100ae124
lea ecx, [ebp - 0x24]
call fcn.100050e0
mov byte [ebp - 4], 7
call fcn.10003080
mov edi, eax
test edi, edi
je 0x1002733a
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x20], eax
push 0x100ae124
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.100046b0
test al, al
jne 0x10026c36
push 0
push 0x100ae124
lea ecx, [ebp - 0x20]
call fcn.100050e0
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 9
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea eax, [ebp - 0x4c]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push SHDefExtractIconW
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, dword [ebp - 0x4c]
xor ecx, ecx
test eax, eax
lea eax, [ebp - 0x50]
push eax
push 0x20019
push ecx
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
cmovne esi, ecx
push SHDefExtractIconW
mov dword [ebp - 0x60], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, dword [ebp - 0x50]
xor edx, edx
test eax, eax
cmovne ecx, edx
or ebx, 0xffffffff
mov dword [ebp - 0x68], ecx
test esi, esi
je 0x10026fce
mov edx, esi
lea ecx, [ebp - 0x54]
call fcn.10040e90
mov byte [ebp - 4], 0xa
mov ecx, dword [eax]
mov esi, dword [ebp - 0x1c]
lea edx, [ecx - 0x10]
lea edi, [esi - 0x10]
mov dword [ebp - 0x58], edi
cmp edx, edi
je 0x10026d12
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x10026d03
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x10026d03
mov ecx, edx
call fcn.1000c040
mov dword [ebp - 0x5c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x10026cfb
mov edi, dword [edi]
push dword [ebp - 0x58]
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x5c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], esi
jmp 0x10026d12
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.100050e0
mov esi, dword [ebp - 0x1c]
mov byte [ebp - 4], 9
mov eax, ebx
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x10026d3f
mov ebx, dword [ecx]
push ecx
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x1009c3c4]
mov ecx, ebx
call edi
or ebx, 0xffffffff
push ecx
mov edi, esp
lea ecx, [esi - 0x10]
mov dword [ebp - 0x54], edi
call fcn.1000c040
add eax, 0x10
lea ecx, [ebp - 0x3c]
mov dword [edi], eax
call fcn.10037260
add esp, 4
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xb
call fcn.10037410
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
cmp esi, 0x10
mov edx, dword [ebp - 0x2c]
push 0xa
cmovae ecx, edi
push str.windows_10
push ecx
call fcn.10029970
add esp, 0xc
cmp eax, 0xffffffff
jne 0x10026dc2
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x3c]
cmp esi, 0x10
push 0x13
cmovae ecx, edi
push str.windows_server_2016
push ecx
call fcn.10029970
add esp, 0xc
cmp eax, 0xffffffff
jne 0x10026dc2
mov edx, dword [ebp - 0x60]
lea ecx, [ebp - 0x58]
call fcn.100410e0
mov byte [ebp - 4], 0xd
jmp 0x10026dd1
mov edx, dword [ebp - 0x60]
lea ecx, [ebp - 0x58]
call fcn.10041330
mov byte [ebp - 4], 0xc
mov edx, dword [eax]
mov esi, dword [ebp - 0x14]
lea ecx, [edx - 0x10]
lea edi, [esi - 0x10]
mov dword [ebp - 0x54], edi
cmp ecx, edi
je 0x10026e35
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x10026e26
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x10026e26
call fcn.1000c040
mov dword [ebp - 0x5c], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x10026e1e
mov edi, dword [edi]
push dword [ebp - 0x54]
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x5c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
jmp 0x10026e35
push dword [edx - 0xc]
lea ecx, [ebp - 0x14]
push edx
call fcn.100050e0
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 0xb
mov eax, ebx
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x10026e62
mov ebx, dword [ecx]
push ecx
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x1009c3c4]
mov ecx, ebx
call edi
or ebx, 0xffffffff
mov edx, dword [ebp - 0x60]
lea ecx, [ebp - 0x58]
call fcn.100415b0
mov byte [ebp - 4], 0xe
mov edx, dword [eax]
mov edi, dword [ebp - 0x18]
lea eax, [edx - 0x10]
lea ecx, [edi - 0x10]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x5c], ecx
cmp eax, ecx
je 0x10026edf
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x10026ed0
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x10026ed0
mov ecx, dword [ebp - 0x54]
call fcn.1000c040
mov dword [ebp - 0x54], eax
mov ecx, ebx
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x10026ec8
mov edx, dword [ebp - 0x5c]
push edx
mov ebx, dword [edx]
mov ecx, dword [ebx]
mov edi, dword [ecx + 4]
mov ecx, edi
call dword [0x1009c3c4]
mov ecx, ebx
call edi
mov eax, dword [ebp - 0x54]
or ebx, 0xffffffff
lea edi, [eax + 0x10]
mov dword [ebp - 0x18], edi
jmp 0x10026edf
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.100050e0
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 0xb
mov eax, ebx
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x10026f10
mov eax, dword [ecx]
mov dword [ebp - 0x54], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
or ebx, 0xffffffff
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x10026f48
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10026f3e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10027344
push edx
push ecx
call fcn.1005772c
add esp, 8
mov ecx, dword [ebp - 0x68]
test ecx, ecx
je 0x100270cc
mov edx, ecx
lea ecx, [ebp - 0x60]
call fcn.10041800
mov byte [ebp - 4], 0xf
mov edx, dword [eax]
lea ecx, [edx - 0x10]
mov dword [ebp - 0x54], ecx
lea eax, [edx - 0x10]
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
mov dword [ebp - 0x58], ecx
cmp eax, ecx
je 0x10026fe5
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x5c], eax
jl 0x10026fd9
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x10026fd9
mov ecx, dword [ebp - 0x54]
call fcn.1000c040
mov dword [ebp - 0x4c], eax
mov ecx, ebx
mov eax, dword [ebp - 0x5c]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10026fc3
mov edx, dword [ebp - 0x58]
push edx
mov eax, dword [edx]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax]
mov ebx, dword [ecx + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
or ebx, 0xffffffff
mov eax, dword [ebp - 0x4c]
add eax, 0x10
mov dword [ebp - 0x24], eax
jmp 0x10026fe5
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
jmp 0x10026f4b
push dword [edx - 0xc]
lea ecx, [ebp - 0x24]
push edx
call fcn.100050e0
mov byte [ebp - 4], 9
mov eax, ebx
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x10027016
mov eax, dword [ecx]
mov dword [ebp - 0x54], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
or ebx, 0xffffffff
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x4c]
call fcn.10041a50
mov byte [ebp - 4], 0x10
mov edx, dword [eax]
lea ecx, [edx - 0x10]
mov dword [ebp - 0x54], ecx
lea eax, [edx - 0x10]
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov dword [ebp - 0x58], ecx
cmp eax, ecx
je 0x1002709e
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x5c], eax
jl 0x10027092
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x10027092
mov ecx, dword [ebp - 0x54]
call fcn.1000c040
mov dword [ebp - 0x50], eax
mov ecx, ebx
mov eax, dword [ebp - 0x5c]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10027087
mov edx, dword [ebp - 0x58]
push edx
mov eax, dword [edx]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax]
mov ebx, dword [ecx + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
or ebx, 0xffffffff
mov eax, dword [ebp - 0x50]
add eax, 0x10
mov dword [ebp - 0x20], eax
jmp 0x1002709e
push dword [edx - 0xc]
lea ecx, [ebp - 0x20]
push edx
call fcn.100050e0
mov byte [ebp - 4], 9
mov eax, ebx
mov ecx, dword [ebp - 0x4c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x100270cc
mov eax, dword [ecx]
mov dword [ebp - 0x54], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
cmp dword [esi - 0xc], 0
je 0x100271ff
push ecx
mov ebx, esp
lea ecx, [esi - 0x10]
mov dword [ebp - 0x54], ebx
call fcn.1000c040
add eax, 0x10
lea ecx, [ebp - 0x3c]
mov dword [ebx], eax
call fcn.10037260
add esp, 4
mov ebx, eax
mov ecx, dword [ebp - 0x64]
mov edx, str.source.os_version:
mov byte [ebp - 4], 0x11
call fcn.10023ba0
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x10027112
mov ebx, dword [ebx]
push ecx
mov edx, ebx
mov ecx, eax
call fcn.10024710
mov byte [ebp - 4], 9
add esp, 4
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x10027157
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002714d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10027349
push edx
push ecx
call fcn.1005772c
add esp, 8
cmp dword [edi - 0xc], 0
je 0x100271f4
push ecx
mov ebx, esp
lea ecx, [edi - 0x10]
mov dword [ebp - 0x54], ebx
call fcn.1000c040
add eax, 0x10
lea ecx, [ebp - 0x3c]
mov dword [ebx], eax
call fcn.10037260
add esp, 4
mov ebx, eax
mov ecx, dword [ebp - 0x64]
mov edx, 0x100adf34
mov byte [ebp - 4], 0x12
call fcn.10023ba0
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x1002719d
mov ebx, dword [ebx]
push ecx
mov edx, ebx
mov ecx, eax
call fcn.10024710
mov byte [ebp - 4], 9
add esp, 4
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x100271e2
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100271d8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002734e
push edx
push ecx
call fcn.1005772c
add esp, 8
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
push dword [ebp - 0x64]
call fcn.10029930
add esp, 4
mov ecx, dword [ebp - 0x64]
mov edx, str.source.platform:Win
call fcn.10023ba0
push eax
call fcn.10029930
mov byte [ebp - 4], 7
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x20]
add esp, 4
add ecx, 0xfffffff0
mov eax, ebx
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x10027249
mov eax, dword [ecx]
mov dword [ebp - 0x54], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
or ebx, 0xffffffff
mov byte [ebp - 4], 5
mov eax, ebx
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x1002727a
mov eax, dword [ecx]
mov dword [ebp - 0x54], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x1009c3c4]
mov ecx, dword [ebp - 0x54]
call ebx
or ebx, 0xffffffff
mov byte [ebp - 4], 3
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100272a4
mov ebx, dword [edi]
push edi
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x1009c3c4]
mov ecx, ebx
call edi
or ebx, 0xffffffff
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100272cb
mov edi, dword [esi]
push esi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x100272f6
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x1009c3c4]
mov ecx, edi
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005771b
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.10002e30
push 0x80004005
call fcn.10002e30
push 0x80004005
call fcn.10002e30
push 0x80004005
call fcn.10002e30
push 0x80004005
call fcn.10002e30
call fcn.10073127
call fcn.10073127
call fcn.10073127
int3