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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x198
push esi
push edi
push 0x118
xorps xmm0, xmm0
mov dword [ebp - 0x50], 0
lea eax, [ebp - 0x18c]
movaps xmmword [ebp - 0x70], xmm0
push 0
push eax
movaps xmmword [ebp - 0x60], xmm0
call fcn.00417a00
add esp, 0xc
mov dword [ebp - 0x190], 0x11c
lea eax, [ebp - 0x190]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x404b2a
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
sub esp, 0x18
mov ecx, esp
push 0x440490
call fcn.004147b0
lea ecx, [ebp - 0x1c]
call fcn.00402fb0
mov esi, eax
add esp, 0x18
cmp dword [esi + 0x14], 0x10
jb 0x404b4e
mov esi, dword [esi]
sub esp, 0x18
mov ecx, esp
push 0x43fdd0
call fcn.004147b0
lea ecx, [ebp - 0x34]
call fcn.00402fb0
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x404b70
mov eax, dword [eax]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x20]
mov esi, eax
cmp edx, 0x10
jb 0x404bb5
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404bab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404fb0
push edx
push ecx
call fcn.00415fcc
add esp, 8
mov edx, dword [ebp - 8]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp edx, 0x10
jb 0x404bfb
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404bf1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404fb0
push edx
push ecx
call fcn.00415fcc
add esp, 8
mov dword [ebp - 0xc], 0
lea eax, [ebp - 0x70]
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
push eax
test esi, esi
je 0x404c19
call esi
jmp 0x404c1f
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x18c]
cmp eax, 0xa
jne 0x404c4f
cmp dword [ebp - 0x188], 0
jne 0x404fa2
xor eax, eax
cmp byte [ebp - 0x76], 1
setne al
inc eax
mov dword [0x43f930], eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 6
jne 0x404f24
mov eax, dword [ebp - 0x188]
cmp eax, 3
jne 0x404c7d
xor eax, eax
cmp byte [ebp - 0x76], 1
setne al
add eax, 3
mov dword [0x43f930], eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 2
jne 0x404ee5
sub esp, 0x18
cmp byte [ebp - 0x76], 1
jne 0x404d4a
mov esi, esp
mov dword [0x43f930], 1
sub esp, 0x18
mov ecx, esp
push 0x4400a0
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4402c8
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
lea ecx, [ebp - 0x1c]
mov edx, 0x80000002
call fcn.004030c0
add esp, 0x30
cmp dword [eax + 0x14], 0x10
jb 0x404ce8
mov eax, dword [eax]
push eax
call fcn.0041b94e
mov edx, dword [ebp - 8]
add esp, 4
cmp eax, 0x55f0
setge al
mov byte [ebp - 1], al
cmp edx, 0x10
jb 0x404d33
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404d26
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404fb5
push edx
push ecx
call fcn.00415fcc
mov al, byte [ebp - 1]
add esp, 8
test al, al
je 0x404ed4
mov dword [0x43f930], 0x12
jmp 0x404ed4
mov edi, esp
mov dword [0x43f930], 4
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4403a0
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4402c8
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
mov edx, 0x80000002
mov ecx, edi
call fcn.004030c0
add esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43fc50
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
call fcn.00402b70
mov ecx, dword [0x43f930]
test eax, eax
mov edx, 0x10
cmovg ecx, edx
add esp, 0x18
mov edi, esp
mov dword [0x43f930], ecx
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4403a0
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4402c8
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
mov edx, 0x80000002
mov ecx, edi
call fcn.004030c0
add esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43fad0
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
call fcn.00402b70
mov ecx, dword [0x43f930]
test eax, eax
mov edx, 0x11
cmovg ecx, edx
add esp, 0x18
mov edi, esp
mov dword [0x43f930], ecx
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4403a0
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x4402c8
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
mov edx, 0x80000002
mov ecx, edi
call fcn.004030c0
add esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43faa0
call fcn.004147b0
mov ecx, esi
call fcn.00402fb0
add esp, 0x18
call fcn.00402b70
mov ecx, dword [0x43f930]
add esp, 0x30
test eax, eax
mov edx, 2
cmovg ecx, edx
mov dword [0x43f930], ecx
mov eax, dword [ebp - 0x18c]
cmp eax, 6
jne 0x404f24
mov eax, dword [ebp - 0x188]
test eax, eax
jne 0x404f01
cmp byte [ebp - 0x76], 1
setne al
add eax, 7
mov dword [0x43f930], eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 1
jne 0x404fa2
xor eax, eax
cmp byte [ebp - 0x76], 1
setne al
add eax, 9
mov dword [0x43f930], eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 5
jne 0x404fa2
mov ecx, dword [ebp - 0x188]
cmp ecx, 2
jne 0x404f71
cmp byte [ebp - 0x76], 1
jne 0x404f59
cmp word [ebp - 0x70], 9
jne 0x404f59
mov dword [0x43f930], 0xc
mov eax, dword [0x43f930]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov dword [0x43f930], 0xd
mov eax, dword [0x43f930]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp ecx, 1
jne 0x404f8e
mov dword [0x43f930], 0xe
mov eax, dword [0x43f930]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [0x43f930]
test ecx, ecx
mov edx, 0xf
cmove eax, edx
mov dword [0x43f930], eax
mov eax, dword [0x43f930]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0041bb2d
call fcn.0041bb2d
int3