Function at 0x1002f620
Capabilities:
Check os version
Get system information on windows

Disassembly:
sub esp, 0x148
mov eax, dword [0x100530a0]
xor eax, esp
mov dword [esp + 0x144], eax
cmp dword [0x10053a58], 0
mov ecx, dword [esp + 0x14c]
push ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push ebp
mov ebp, dword [esp + 0x15c]
mov dword [esp + 8], ecx
jne 0x1002f970
push esi
push 0x118
lea eax, [esp + 0x3c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [0x100486b4]
add esp, 0xc
movq xmm0, qword [str.win32]
mov esi, dword [sym.imp.kernel32.dll_GetVersionExW]
mov dword [0x10053a0c], eax
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x38], 0x11c
movq qword [0x10053a04], xmm0
call esi
test eax, eax
jne 0x1002f6b2
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x114
push eax
call esi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x3c]
cmp eax, 2
jne 0x1002f7df
cmp edi, 4
jne 0x1002f6ec
movq xmm0, qword [str.winnt]
mov eax, dword [0x100486c0]
movq qword [0x10053a04], xmm0
mov dword [0x10053a0c], eax
jmp 0x1002f849
cmp edi, 6
jne 0x1002f786
test esi, esi
jne 0x1002f735
cmp byte [esp + 0x152], 1
jne 0x1002f722
movups xmm0, xmmword [str.winvista]
mov ax, word [0x10048288]
mov word [0x10053a14], ax
movups xmmword [0x10053a04], xmm0
jmp 0x1002f897
movups xmm0, xmmword [str.winlong]
movups xmmword [0x10053a04], xmm0
jmp 0x1002f897
cmp esi, 1
jne 0x1002f849
cmp byte [esp + 0x152], 1
jne 0x1002f769
movq xmm0, qword [str.win7]
mov ax, word [0x10048294]
movq qword [0x10053a04], xmm0
mov word [0x10053a0c], ax
jmp 0x1002f84d
movups xmm0, xmmword [str.win2008R2]
mov eax, dword [0x100486e4]
mov dword [0x10053a14], eax
movups xmmword [0x10053a04], xmm0
jmp 0x1002f84d
cmp edi, 5
jne 0x1002f845
test esi, esi
jne 0x1002f7a6
movups xmm0, xmmword [str.win2000]
movups xmmword [0x10053a04], xmm0
jmp 0x1002f897
cmp esi, 1
jne 0x1002f7ca
movq xmm0, qword [str.winxp]
mov eax, dword [0x10048700]
movq qword [0x10053a04], xmm0
mov dword [0x10053a0c], eax
jmp 0x1002f84d
cmp esi, 2
jne 0x1002f849
movups xmm0, xmmword [str.win2003]
movups xmmword [0x10053a04], xmm0
jmp 0x1002f84d
cmp eax, 1
jne 0x1002f845
cmp edi, 4
jne 0x1002f82b
cmp esi, 0xa
jne 0x1002f80a
movq xmm0, qword [str.win98]
mov eax, dword [0x1004871c]
movq qword [0x10053a04], xmm0
mov dword [0x10053a0c], eax
jmp 0x1002f84d
cmp esi, 0x5a
jne 0x1002f82b
movq xmm0, qword [str.winme]
mov eax, dword [0x10048728]
movq qword [0x10053a04], xmm0
mov dword [0x10053a0c], eax
jmp 0x1002f84d
movq xmm0, qword [str.win95]
mov eax, dword [0x10048734]
movq qword [0x10053a04], xmm0
mov dword [0x10053a0c], eax
test edi, edi
je 0x1002f897
test esi, esi
je 0x1002f897
mov ecx, str.win32
mov eax, 0x10053a04
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002f87d
test dx, dx
je 0x1002f879
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002f87d
add eax, 4
add ecx, 4
test dx, dx
jne 0x1002f857
xor eax, eax
jmp 0x1002f882
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1002f897
push esi
push edi
push str._d._d
push 0x10053a04
call ebx
add esp, 0x10
movzx eax, word [esp + 0x14c]
movups xmm0, xmmword [str.Unknown]
mov dword [0x10053a54], eax
xor eax, eax
push 0x1003e9b0
mov word [esp + 0x18], ax
movups xmmword [0x10053a2c], xmm0
call fcn.10003eb0
add esp, 4
mov esi, eax
pop edi
test esi, esi
je 0x1002f8e6
push 0x10048754
push esi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x1002f8e6
lea ecx, [esp + 0x10]
push ecx
call eax
jmp 0x1002f8f1
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
test esi, esi
je 0x1002f8fc
push esi
call dword [sym.imp.kernel32.dll_FreeLibrary]
movzx eax, word [esp + 0x10]
pop esi
test eax, eax
je 0x1002f946
cmp eax, 6
je 0x1002f936
cmp eax, 9
je 0x1002f922
push eax
push 0x1004878c
push 0x10053a2c
call ebx
add esp, 0xc
jmp 0x1002f962
mov eax, dword [0x1004877c]
movq xmm0, qword [str.amd64]
mov dword [0x10053a34], eax
jmp 0x1002f95a
movq xmm0, qword [str.ia64]
mov ax, word [0x10048770]
jmp 0x1002f954
movq xmm0, qword [str.i586]
mov ax, word [0x10048788]
mov word [0x10053a34], ax
movq qword [0x10053a2c], xmm0
mov ecx, dword [esp + 8]
mov dword [0x10053a58], 1
mov eax, dword [0x10053a54]
test eax, eax
je 0x1002f98c
push eax
push 0x10053a04
push str._s_sp_d
push ecx
call ebx
add esp, 0x10
jmp 0x1002f99c
push 0x10053a04
push 0x100406a0
push ecx
call ebx
add esp, 0xc
test ebp, ebp
je 0x1002f9b0
push 0x10053a2c
push 0x100406a0
push ebp
call ebx
add esp, 0xc
mov ecx, dword [esp + 0x14c]
mov eax, 1
pop ebp
pop ebx
xor ecx, esp
call fcn.1003b4ee
add esp, 0x148
ret