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

Disassembly:
sub esp, 0xbc
mov eax, dword [0x522298]
xor eax, esp
mov dword [esp + 0xb8], eax
push ebx
push ebp
push esi
push edi
push 0x20
push str.Windows
call fcn.004499e0
push 0x20
push str.Windows
mov dword [0x647d54], eax
call fcn.004499e0
push 0x20
mov dword [0x647d58], eax
call fcn.00449bb0
push 0x90
mov esi, eax
lea eax, [esp + 0x50]
push 0
push eax
call fcn.004b63b0
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 0x45401c
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x40]
push str._lu._lu___lu_
push 0x20
push esi
call fcn.00449250
add esp, 0x18
jmp 0x45403f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_with_GetVersionEx__:__lu
push str.mongoc
push 2
call fcn.00454e20
push esi
call fcn.00449ba0
add esp, 0x14
xor esi, esi
lea eax, [esp + 0x10]
mov dword [0x647d5c], esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [esp + 0x10]
cmp eax, 6
ja 0x45407a
je 0x454073
test eax, eax
je 0x45406c
cmp eax, 5
jne 0x454086
mov eax, 0x4ef238
jmp 0x454099
mov eax, 0x4ef244
jmp 0x454099
mov eax, str.IA64
jmp 0x454099
cmp eax, 9
je 0x454094
cmp eax, 0xffff
je 0x45408d
mov eax, str.Other
jmp 0x454099
mov eax, str.Unknown
jmp 0x454099
mov eax, str.x86_64
push 0x20
push eax
call fcn.004499e0
push 0x40
push str.mongoc
mov dword [0x647d60], eax
call fcn.004499e0
push 0x20
push str.1.24.3
mov dword [0x647d64], eax
call fcn.004499e0
push 0x50fe0c
mov dword [0x647d68], eax
call fcn.00449800
push 0
push eax
call fcn.004497b0
push 0x50fe0c
mov dword [0x647d6c], eax
call fcn.00449800
push 5
mov ebp, eax
call fcn.00449bf0
mov edi, eax
push 0x4ef22c
movzx ecx, byte [edi + 4]
bts ecx, 1
movzx ecx, cl
bts ecx, 1
movzx ecx, cl
bts ecx, 6
movzx ecx, cl
bts ecx, 0
movzx eax, cl
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
mov byte [edi], al
call fcn.00449800
add esp, 0x30
mov ebx, eax
xor esi, esi
nop dword [eax + eax]
movzx ecx, byte [esi + edi]
push ecx
push str._02x
push ebx
call fcn.00449640
inc esi
add esp, 0xc
cmp esi, 5
jb 0x454170
push edi
call fcn.00449ba0
push 0
push ebx
call fcn.004497b0
mov esi, eax
push esi
push str.cfg_s
push ebp
call fcn.00449640
push esi
call fcn.00449ba0
push str.MSVC
push str._CC_s
push ebp
call fcn.00449640
push str.1937
push 0x4ef2a8
push ebp
call fcn.00449640
push 0
push ebp
call fcn.004497b0
push 0x50fe0c
mov dword [0x647d70], eax
call fcn.00449800
add esp, 0x40
mov esi, eax
push str.___nologo__DWIN32__D_WINDOWS__W3__utf_8__MP__
push str._CFLAGS_s
push esi
call fcn.00449640
push str.__machine:X86_
push str._LDFLAGS_s
push esi
call fcn.00449640
push 0
push esi
call fcn.004497b0
add esp, 0x20
mov dword [0x647d74], eax
mov byte [0x647d78], 0
push 0x647d7c
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.004b3f14
add esp, 0xbc
ret