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

Disassembly:
sub esp, 0xbc
mov eax, dword [0x101f3600]
xor eax, esp
mov dword [esp + 0xb8], eax
push ebx
push ebp
push esi
push edi
push 0x20
push str.Windows
call fcn.100a9c90
push 0x20
push str.Windows
mov dword [0x101fdb90], eax
call fcn.100a9c90
push 0x20
mov dword [0x101fdb94], eax
call fcn.100a7a50
push 0x90
mov esi, eax
lea eax, [esp + 0x50]
push 0
push eax
call fcn.10076270
add esp, 0x20
mov dword [esp + 0x34], 0x94
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x100af61c
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x40]
push str._lu._lu___lu_
push 0x20
push esi
call fcn.100a9560
add esp, 0x18
jmp 0x100af63f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_with_GetVersionEx__:__lu
push str.mongoc
push 2
call fcn.100b0660
push esi
call fcn.100a7a40
add esp, 0x14
xor esi, esi
lea eax, [esp + 0x10]
mov dword [0x101fdb98], esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [esp + 0x10]
cmp eax, 6
ja 0x100af67a
je 0x100af673
test eax, eax
je 0x100af66c
cmp eax, 5
jne 0x100af686
mov eax, 0x1013dbbc
jmp 0x100af699
mov eax, 0x1013dbc8
jmp 0x100af699
mov eax, str.IA64
jmp 0x100af699
cmp eax, 9
je 0x100af694
cmp eax, 0xffff
je 0x100af68d
mov eax, str.Other
jmp 0x100af699
mov eax, str.Unknown
jmp 0x100af699
mov eax, str.x86_64
push 0x20
push eax
call fcn.100a9c90
push 0x40
push str.mongoc
mov dword [0x101fdb9c], eax
call fcn.100a9c90
push 0x20
push str.1.26.1
mov dword [0x101fdba0], eax
call fcn.100a9c90
push 0x101ec508
mov dword [0x101fdba4], eax
call fcn.100a9ab0
push 0
push eax
call fcn.100a9a60
push 0x101fdb90
mov dword [0x101fdba8], eax
call fcn.100adbc0
push 0x101ec508
call fcn.100a9ab0
push 5
mov ebp, eax
call fcn.100a7a90
mov edi, eax
push 0x10129e58
movzx ecx, byte [edi + 4]
bts ecx, 1
movzx ecx, cl
bts ecx, 1
movzx ecx, cl
bts ecx, 6
movzx eax, cl
bts eax, 0
movzx eax, al
bts eax, 5
mov byte [edi + 4], al
movzx eax, byte [edi + 3]
bts eax, 5
mov byte [edi + 3], al
movzx eax, byte [edi + 2]
bts eax, 0
movzx eax, al
bts eax, 1
movzx eax, al
bts eax, 2
movzx eax, al
bts eax, 4
mov byte [edi + 2], al
movzx eax, byte [edi + 1]
bts eax, 2
mov byte [edi + 1], al
movzx eax, byte [edi]
bts eax, 1
movzx eax, al
bts eax, 2
mov byte [edi], al
call fcn.100a9ab0
add esp, 0x34
mov ebx, eax
xor esi, esi
nop dword [eax]
movzx ecx, byte [edi + esi]
push ecx
push str._02x
push ebx
call fcn.100a98f0
inc esi
add esp, 0xc
cmp esi, 5
jb 0x100af780
push edi
call fcn.100a7a40
push 0
push ebx
call fcn.100a9a60
mov esi, eax
push esi
push str.cfg_s
push ebp
call fcn.100a98f0
push esi
call fcn.100a7a40
push str.MSVC
push str._CC_s
push ebp
call fcn.100a98f0
push str.1939
push 0x1013dd14
push ebp
call fcn.100a98f0
push 0
push ebp
call fcn.100a9a60
push 0x101ec508
mov dword [0x101fdbac], eax
call fcn.100a9ab0
add esp, 0x40
mov esi, eax
push str.___nologo__DWIN32__D_WINDOWS__W3__utf_8__MP__
push str._CFLAGS_s
push esi
call fcn.100a98f0
push str.__machine:X86_
push str._LDFLAGS_s
push esi
call fcn.100a98f0
push 0
push esi
call fcn.100a9a60
add esp, 0x20
mov dword [0x101fdbb0], eax
mov byte [0x101fdbcc], 0
push 0x101fdbd0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100747a0
add esp, 0xbc
ret