Function at 0x405f20
Capabilities:
Check os version
Create thread
Get system information on windows
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
mov eax, dword [0x421014]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x144]
mov dword [ebp - 0x144], 0x11c
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x406543
cmp dword [ebp - 0x140], 5
push ebx
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
jne 0x40646b
cmp dword [ebp - 0x13c], 1
jne 0x406540
push 0x34
push 0x419f48
push 0x419fb0
push 0
call ebx
cmp eax, 7
je 0x4064ab
cmp eax, 6
jne 0x406443
push 0x34
push str.Solarum__32_bit_
push 0x41a6d8
push 0
call ebx
cmp eax, 7
je 0x4064ab
call fcn.00401bf0
push 0xdac
call esi
push 0
push 0
push 0
push 0x404700
push 0
push 0
call edi
push 0
push 0
push 0
push 0x402590
push 0
push 0
call edi
push 0x2710
mov ebx, eax
call esi
push 0
push 0
push 0
push 0x4026f0
push 0
push 0
call edi
push 0x88b8
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push 0
push 0
push 0x4049c0
push 0
push 0
call edi
push 0
push 0
push 0
push 0x402700
push 0
push 0
call edi
push 0x2710
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x4028c0
push 0
push 0
call eax
push 0x88b8
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TerminateThread]
call ebx
push 0
push edi
call ebx
push 0
push esi
call ebx
mov ebx, dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push 0
push 0
call ebx
push 0
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0x404c80
push 0
push 0
call esi
push 0
push 0
push 0
push 0x402a00
push 0
push 0
call esi
push 0
push 0
push 0
push 0x402b70
push 0
push 0
mov edi, eax
call esi
push 0x4e20
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
call ebx
mov eax, dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0
push edi
call eax
push 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_TerminateThread]
call esi
push 0
push 0
push 0
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x404f50
push 0
push 0
call edi
push 0
push 0
push 0
push 0x402c50
push 0
push 0
call edi
push 0x4e20
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push edi
call esi
push 0
push 0
push 0
call ebx
mov eax, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x402ec0
push 0
push 0
call eax
push 0x2710
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_TerminateThread]
call esi
push 0
push edi
call esi
push 0
push 0
push 0
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x4051d0
push 0
push 0
call esi
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0x402fe0
push 0
push 0
call esi
push 0x2328
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0x402c10
push 0
push 0
call esi
push 0x61a8
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push edi
mov edi, dword [sym.imp.KERNEL32.dll_TerminateThread]
call edi
push 0
push esi
call edi
push 0
push 0
push 0
call ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x405450
push 0
push 0
call ebx
push 0
push 0
push 0
push 0x4055c0
push 0
push 0
call ebx
push 0
push 0
push 0
push 0x405730
push 0
push 0
call ebx
push 0
push 0
push 0
push 0x4031e0
push 0
push 0
call ebx
push 0x1388
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0x401080
push 0
push 0
call ebx
push 0x1388
mov dword [ebp - 0x148], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0x4011e0
push 0
push 0
call ebx
push 0x1388
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push esi
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x403330
push 0
push 0
call esi
push 0x1388
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0x403480
push 0
push 0
call esi
push 0x88b8
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0
push dword [ebp - 0x148]
call eax
push 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TerminateThread]
call ebx
push 0
push edi
call ebx
push 0
push esi
call ebx
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x4058b0
push 0
push 0
call edi
push 0
push 0
push 0
push 0x405a00
push 0
push 0
call edi
push 0
push 0
push 0
push 0x405b40
push 0
push 0
call edi
push 0
push 0
push 0
push 0x403630
push 0
push 0
call edi
push 0x2710
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0x403a20
push 0
push 0
call edi
push 0
push 0
push 0
push 0x4038a0
push 0
push 0
mov esi, eax
call edi
push 0x2710
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_TerminateThread]
call esi
push 0x3a98
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push ebx
call esi
push 0
push edi
call esi
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x405c80
push 0
push 0
call edi
push 0
push 0
push 0
push 0x403b90
push 0
push 0
call edi
push 0
push 0
push 0
push 0x403cc0
push 0
push 0
call edi
push 0
push 0
push 0
push 0x403e40
push 0
push 0
call edi
push 0
push 0
push 0
push 0x403fc0
push 0
push 0
call edi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xafc8
call esi
push 0
push 0
push 0
push 0x405e00
push 0
push 0
call edi
push 0x3e8
call esi
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [ebp - 0x2a], 1
jne 0x40646b
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
cmp word [ebp - 0x28], 9
jne 0x40646b
push 0
push 0
push 0
push 0x405e00
push 0
push 0
call edi
cmp dword [ebp - 0x140], 6
jb 0x406540
push 0x34
push 0x419f48
push 0x419fb0
push 0
call ebx
cmp eax, 7
je 0x4064ab
cmp eax, 6
jne 0x406540
push 0x34
push str.Solarum__32_bit_
push 0x41a6d8
push 0
call ebx
cmp eax, 7
jne 0x4064c0
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e47
mov esp, ebp
pop ebp
ret 0x10
call fcn.00402100
push 0xbb8
call esi
push 0
push 0
push 0
push 0x405eb0
push 0
push 0
call edi
push 0
push 0
push 0
push 0x405ee0
push 0
push 0
call edi
push 0x1388
call esi
push 0
push 0
push 0
push 0x404430
push 0
push 0
call edi
push 0
push 0
push 0
push 0x404130
push 0
push 0
call edi
push 0
push 0
push 0
push 0x4042e0
push 0
push 0
call edi
push 0x3a98
call esi
push 0
push 0
push 0
push 0x405e00
push 0
push 0
call edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e47
mov esp, ebp
pop ebp
ret 0x10