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

Disassembly:
sub esp, 0x1e8
mov eax, dword [0x596804]
xor eax, esp
mov dword [esp + 0x1e4], eax
xor eax, eax
push edi
mov edi, dword [esp + 0x1f0]
push 0x11c
push eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x34]
push eax
call fcn.0046c6ab
add esp, 0xc
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], 0x11c
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
test eax, eax
jne 0x41cfb2
mov eax, 1
pop edi
mov ecx, dword [esp + 0x1e4]
xor ecx, esp
call fcn.0046c68f
add esp, 0x1e8
ret
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push 0x52779a
push 0x52777e
call ebp
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x41cfdc
lea edx, [esp + 0x10]
push edx
call eax
jmp 0x41cfe7
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
cmp dword [esp + 0x44], 2
jne 0x41d3ad
cmp dword [esp + 0x38], 4
jbe 0x41d3ad
cmp dword [esp + 0x200], 0
push esi
mov esi, dword [esp + 0x200]
je 0x41d01b
push 0x527766
push esi
push edi
call fcn.00416bfb
cmp dword [esp + 0x3c], 6
jne 0x41d029
cmp dword [esp + 0x40], 3
je 0x41d03b
push 0
push 3
push 6
call fcn.0041ce5b
add esp, 0xc
test al, al
je 0x41d059
cmp byte [esp + 0x152], 1
jne 0x41d04f
push 0x52774e
jmp 0x41d323
push 0x52771e
jmp 0x41d323
mov eax, dword [esp + 0x3c]
cmp eax, 6
jne 0x41d19f
mov eax, dword [esp + 0x40]
cmp eax, 2
jne 0x41d08d
cmp byte [esp + 0x152], 1
jne 0x41d083
push 0x52770a
jmp 0x41d323
push 0x5276e2
jmp 0x41d323
cmp eax, 1
jne 0x41d0af
cmp byte [esp + 0x152], al
jne 0x41d0a5
push 0x5276ce
jmp 0x41d323
push 0x52769e
jmp 0x41d323
test eax, eax
jne 0x41d32a
cmp byte [esp + 0x152], 1
jne 0x41d0c8
push 0x52767e
jmp 0x41d0cd
push 0x527652
push esi
push edi
call fcn.0041ae7b
push 0x527642
push 0x52777e
call ebp
push eax
call ebx
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0
push 6
call eax
mov eax, dword [esp + 0x10]
dec eax
cmp eax, 0x18
ja case.0x41d0fc.5
jmp dword [eax*4 + 0x41d3c7]
push 0x52761e
jmp 0x41d171
push 0x5275f2
jmp 0x41d171
push 0x5275ca
jmp 0x41d171
push 0x5275a2
jmp 0x41d171
push 0x52757e
jmp 0x41d171
push 0x52755e
jmp 0x41d171
push 0x52752e
jmp 0x41d171
push 0x527506
jmp 0x41d171
push 0x5274b6
jmp 0x41d171
push 0x527466
jmp 0x41d171
push 0x527406
jmp 0x41d171
push 0x5273da
jmp 0x41d171
push 0x52738e
jmp 0x41d171
push 0x52736a
jmp 0x41d171
push 0x52731e
jmp 0x41d171
push 0x5272f6
push esi
push edi
call fcn.0041ae7b
mov eax, dword [esp + 0x14]
cmp ax, 9
jne 0x41d18c
push 0x5272e2
jmp 0x41d323
test ax, ax
jne 0x41d32a
push 0x5272ce
jmp 0x41d323
cmp eax, 5
jne 0x41d32a
mov eax, dword [esp + 0x40]
cmp eax, 2
jne 0x41d2bb
push 0x59
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
test eax, eax
je 0x41d1c8
push 0x52729e
jmp 0x41d1fc
mov edx, 0x2000
cmp word [esp + 0x150], dx
jne 0x41d1de
push 0x527266
jmp 0x41d1fc
cmp byte [esp + 0x152], 1
jne 0x41d1f7
cmp word [esp + 0x14], 9
jne 0x41d1f7
push 0x52721e
jmp 0x41d1fc
push 0x5271f2
push esi
push edi
call fcn.0041ae7b
cmp byte [esp + 0x152], 1
je 0x41d32a
mov eax, dword [esp + 0x14]
cmp ax, 6
jne 0x41d242
mov al, byte [esp + 0x150]
test al, al
jns 0x41d230
push 0x527196
jmp 0x41d323
test al, 2
je 0x41d32a
push 0x527136
jmp 0x41d323
cmp ax, 9
jne 0x41d275
mov al, byte [esp + 0x150]
test al, al
jns 0x41d25d
push 0x527102
jmp 0x41d323
test al, 2
je 0x41d26b
push 0x5270d2
jmp 0x41d323
push 0x5270a6
jmp 0x41d323
mov eax, dword [esp + 0x150]
test eax, 0x4000
je 0x41d28d
push 0x527072
jmp 0x41d323
test al, al
jns 0x41d29b
push 0x52704a
jmp 0x41d323
test al, 2
je 0x41d2a6
push 0x527022
jmp 0x41d323
test eax, 0x400
je 0x41d2b4
push 0x527006
jmp 0x41d323
push 0x526fe2
jmp 0x41d323
cmp eax, 1
jne 0x41d2e0
push 0x526fca
push esi
push edi
call fcn.0041ae7b
test dword [esp + 0x150], 0x200
je 0x41d2fa
push 0x526fae
jmp 0x41d323
test eax, eax
jne 0x41d32a
push 0x526f92
push esi
push edi
call fcn.0041ae7b
cmp byte [esp + 0x152], 1
jne 0x41d301
push 0x526f76
jmp 0x41d323
mov al, byte [esp + 0x150]
test al, al
jns 0x41d313
push 0x526f4e
jmp 0x41d323
test al, 2
je 0x41d31e
push 0x526f2a
jmp 0x41d323
push 0x526f1a
push esi
push edi
call fcn.0041ae7b
cmp dword [esp + 0x204], 0
je 0x41d38f
lea eax, [esp + 0x4c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d33b
sub eax, edx
sar eax, 1
je 0x41d364
push 0x5265b2
push esi
push edi
call fcn.0041ae7b
lea eax, [esp + 0x4c]
push eax
push esi
push edi
call fcn.0041ae7b
mov ecx, dword [esp + 0x44]
push ecx
push 0x526f02
lea edx, [esp + 0x15c]
push 0x50
push edx
call fcn.0041cd8b
add esp, 0x10
lea eax, [esp + 0x154]
push eax
push esi
push edi
call fcn.0041ae7b
pop esi
pop ebp
pop ebx
mov eax, 1
pop edi
mov ecx, dword [esp + 0x1e4]
xor ecx, esp
call fcn.0046c68f
add esp, 0x1e8
ret
mov ecx, dword [esp + 0x1f0]
pop ebp
pop ebx
pop edi
xor ecx, esp
xor eax, eax
call fcn.0046c68f
add esp, 0x1e8
ret