Function at 0x403e60
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
mov eax, dword [0x43100c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x118
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x15c]
movaps xmmword [ebp - 0x40], xmm0
push 0
push eax
movaps xmmword [ebp - 0x30], xmm0
call fcn.00415ec0
add esp, 0xc
mov dword [ebp - 0x160], 0x11c
lea eax, [ebp - 0x160]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x403ede
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00414c3c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
sub esp, 0x18
mov ecx, esp
push 0x4323cc
call fcn.00413990
lea ecx, [ebp - 0x17c]
call fcn.00402910
mov esi, eax
add esp, 0x18
cmp dword [esi + 0x14], 0x10
jb 0x403f05
mov esi, dword [esi]
sub esp, 0x18
mov ecx, esp
push 0x431d6c
call fcn.00413990
lea ecx, [ebp - 0x194]
call fcn.00402910
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x403f2a
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 - 0x180]
mov esi, eax
cmp edx, 0x10
jb 0x403f75
mov ecx, dword [ebp - 0x194]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403f6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404559
push edx
push ecx
call fcn.004152ae
add esp, 8
mov edx, dword [ebp - 0x168]
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x180], 0xf
mov byte [ebp - 0x194], 0
cmp edx, 0x10
jb 0x403fca
mov ecx, dword [ebp - 0x17c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403fc0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404559
push edx
push ecx
call fcn.004152ae
add esp, 8
mov dword [ebp - 0x16c], 0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x168], 0xf
mov byte [ebp - 0x17c], 0
push eax
test esi, esi
je 0x403ff1
call esi
jmp 0x403ff7
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x15c]
cmp eax, 0xa
jne 0x40401e
cmp dword [ebp - 0x158], 0
jne 0x404541
xor eax, eax
cmp byte [ebp - 0x46], 1
setne al
inc eax
jmp 0x40453c
cmp eax, 6
jne 0x4044e7
mov eax, dword [ebp - 0x158]
cmp eax, 3
jne 0x404043
xor eax, eax
cmp byte [ebp - 0x46], 1
setne al
add eax, 3
jmp 0x40453c
cmp eax, 2
jne 0x4044c4
sub esp, 0x18
cmp byte [ebp - 0x46], 1
jne 0x40411f
mov esi, esp
mov dword [0x431930], 1
sub esp, 0x18
mov ecx, esp
push 0x43200c
call fcn.00413990
mov ecx, esi
call fcn.00402910
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43221c
call fcn.00413990
mov ecx, esi
call fcn.00402910
add esp, 0x18
lea ecx, [ebp - 0x17c]
mov edx, 0x80000002
call fcn.00402a20
add esp, 0x30
cmp dword [eax + 0x14], 0x10
jb 0x4040b1
mov eax, dword [eax]
push eax
call fcn.0041851d
mov edx, dword [ebp - 0x168]
add esp, 4
cmp eax, 0x55f0
setge al
mov byte [ebp - 0x161], al
cmp edx, 0x10
jb 0x404108
mov ecx, dword [ebp - 0x17c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4040f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40455e
push edx
push ecx
call fcn.004152ae
mov al, byte [ebp - 0x161]
add esp, 8
test al, al
je 0x4044b3
mov dword [0x431930], 0x12
jmp 0x4044b3
mov ecx, esp
mov dword [0x431930], 4
push str.OfCmTH
call fcn.00413990
lea ecx, [ebp - 0x194]
call fcn.00402910
mov esi, esp
mov edi, eax
sub esp, 0x18
mov ecx, esp
push 0x4322dc
call fcn.00413990
mov ecx, esi
call fcn.00402910
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43221c
call fcn.00413990
mov ecx, esi
call fcn.00402910
add esp, 0x18
lea ecx, [ebp - 0x17c]
mov edx, 0x80000002
call fcn.00402a20
add esp, 0x30
mov edx, edi
cmp dword [edi + 0x14], 0x10
jb 0x404192
mov edx, dword [edi]
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x40419c
mov ecx, dword [eax]
push dword [edi + 0x10]
push edx
mov edx, dword [eax + 0x10]
push ecx
call fcn.00414230
mov edx, dword [ebp - 0x168]
add esp, 0xc
mov esi, eax
cmp edx, 0x10
jb 0x4041e8
mov ecx, dword [ebp - 0x17c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4041de
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404563
push edx
push ecx
call fcn.004152ae
add esp, 8
mov edx, dword [ebp - 0x180]
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0xf
mov byte [ebp - 0x17c], 0
cmp edx, 0x10
jb 0x40423d
mov ecx, dword [ebp - 0x194]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404233
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404563
push edx
push ecx
call fcn.004152ae
add esp, 8
mov eax, dword [0x431930]
mov ecx, 0x10
cmp esi, 0xf4240
cmovb eax, ecx
sub esp, 0x18
mov ecx, esp
mov dword [0x431930], eax
push str.OfCnR8
call fcn.00413990
lea ecx, [ebp - 0x194]
call fcn.00402910
mov esi, esp
mov edi, eax
sub esp, 0x18
mov ecx, esp
push 0x4322dc
call fcn.00413990
mov ecx, esi
call fcn.00402910
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43221c
call fcn.00413990
mov ecx, esi
call fcn.00402910
add esp, 0x18
lea ecx, [ebp - 0x17c]
mov edx, 0x80000002
call fcn.00402a20
add esp, 0x30
mov edx, edi
cmp dword [edi + 0x14], 0x10
jb 0x4042c1
mov edx, dword [edi]
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x4042cb
mov ecx, dword [eax]
push dword [edi + 0x10]
push edx
mov edx, dword [eax + 0x10]
push ecx
call fcn.00414230
mov edx, dword [ebp - 0x168]
add esp, 0xc
mov esi, eax
cmp edx, 0x10
jb 0x404317
mov ecx, dword [ebp - 0x17c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40430d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404568
push edx
push ecx
call fcn.004152ae
add esp, 8
mov edx, dword [ebp - 0x180]
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0xf
mov byte [ebp - 0x17c], 0
cmp edx, 0x10
jb 0x40436c
mov ecx, dword [ebp - 0x194]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404362
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404568
push edx
push ecx
call fcn.004152ae
add esp, 8
mov eax, dword [0x431930]
mov ecx, 0x11
cmp esi, 0xf4240
cmovb eax, ecx
sub esp, 0x18
mov ecx, esp
mov dword [0x431930], eax
push str.OfCmS8
call fcn.00413990
lea ecx, [ebp - 0x194]
call fcn.00402910
mov esi, esp
mov edi, eax
sub esp, 0x18
mov ecx, esp
push 0x4322dc
call fcn.00413990
mov ecx, esi
call fcn.00402910
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x43221c
call fcn.00413990
mov ecx, esi
call fcn.00402910
add esp, 0x18
lea ecx, [ebp - 0x17c]
mov edx, 0x80000002
call fcn.00402a20
add esp, 0x30
mov edx, edi
cmp dword [edi + 0x14], 0x10
jb 0x4043f0
mov edx, dword [edi]
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x4043fa
mov ecx, dword [eax]
push dword [edi + 0x10]
push edx
mov edx, dword [eax + 0x10]
push ecx
call fcn.00414230
mov edx, dword [ebp - 0x168]
add esp, 0xc
mov esi, eax
cmp edx, 0x10
jb 0x404446
mov ecx, dword [ebp - 0x17c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40443c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40456d
push edx
push ecx
call fcn.004152ae
add esp, 8
mov edx, dword [ebp - 0x180]
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0xf
mov byte [ebp - 0x17c], 0
cmp edx, 0x10
jb 0x40449b
mov ecx, dword [ebp - 0x194]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404491
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40456d
push edx
push ecx
call fcn.004152ae
add esp, 8
mov eax, dword [0x431930]
cmp esi, 0xf4240
mov ecx, 2
cmovb eax, ecx
mov dword [0x431930], eax
mov eax, dword [ebp - 0x15c]
cmp eax, 6
jne 0x4044e7
mov eax, dword [ebp - 0x158]
test eax, eax
jne 0x4044d4
cmp byte [ebp - 0x46], 1
setne al
add eax, 7
jmp 0x40453c
cmp eax, 1
jne 0x404541
xor eax, eax
cmp byte [ebp - 0x46], 1
setne al
add eax, 9
jmp 0x40453c
cmp eax, 5
jne 0x404541
mov ecx, dword [ebp - 0x158]
cmp ecx, 2
jne 0x40451c
cmp byte [ebp - 0x46], 1
jne 0x404510
cmp word [ebp - 0x40], 9
jne 0x404510
mov dword [0x431930], 0xc
jmp 0x404541
mov dword [0x431930], 0xd
jmp 0x404541
cmp ecx, 1
jne 0x40452d
mov dword [0x431930], 0xe
jmp 0x404541
mov eax, dword [0x431930]
test ecx, ecx
mov edx, 0xf
cmove eax, edx
mov dword [0x431930], eax
mov ecx, dword [ebp - 4]
mov eax, dword [0x431930]
xor ecx, ebp
pop edi
pop esi
call fcn.00414c3c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004186fc
call fcn.004186fc
call fcn.004186fc
call fcn.004186fc
call fcn.004186fc
int3