Function at 0x45a070
Capabilities:
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x498276
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x38]
lea eax, [esp + 0x10]
push esi
push edi
push 0
push eax
mov ebx, ecx
lea eax, [esp + 0x24]
push eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov ecx, ebp
call fcn.00459d60
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x45a0de
cmp dword [esp + 0x1c], eax
jne 0x45a0de
push ebp
push str.Invalid_Gui_name.
mov ecx, ebx
call fcn.0042e360
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10
mov edi, dword [esp + 0x20]
mov ecx, edi
mov dword [esp + 0x24], edi
call fcn.004594a0
mov ebp, eax
test ebp, ebp
jne 0x45a115
push edi
push str.Parameter_1_invalid.
mov ecx, ebx
call fcn.0042e360
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10
mov eax, dword [0x4afbb0]
mov ebx, 1
mov dword [esp + 0x28], eax
mov eax, dword [0x4afbac]
mov dword [esp + 0x2c], eax
lea eax, [ebp - 1]
mov dword [0x4afbb0], 0
mov dword [0x4afbac], 0
cmp eax, 0x12
ja case.0x45a153.2
movzx eax, byte [eax + 0x45a900]
jmp dword [eax*4 + 0x45a8ec]
test esi, esi
je 0x45a898
mov ecx, esi
call fcn.0045be40
mov ebx, eax
jmp 0x45a898
test esi, esi
jne 0x45a203
cmp dword [0x4b08f8], esi
jne 0x45a19a
push 0x41a0
call fcn.00485a15
add esp, 4
mov dword [0x4b08f8], eax
test eax, eax
je 0x45a3bf
push 0xc4
call fcn.00487f0a
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], 0
test eax, eax
je 0x45a1c2
mov ecx, eax
call fcn.00459b90
mov esi, eax
jmp 0x45a1c4
xor esi, esi
mov dword [esp + 0x38], 0xffffffff
test esi, esi
je 0x45a3bf
mov edi, dword [esp + 0x18]
lea eax, [edi + 1]
push eax
call fcn.00485a15
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x45a3b6
mov ecx, dword [esp + 0x1c]
push edi
push ecx
push eax
call fcn.0048e4b0
mov eax, dword [esi]
add esp, 0xc
mov byte [edi + eax], 0
mov eax, dword [0x4ac1d8]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x45a219
call fcn.0045c080
mov eax, dword [0x4ac1d8]
inc dword [esi + 0x20]
mov dword [eax + 0x48], esi
jmp 0x45a898
push str.LastFoundExist
push edi
call fcn.004855c8
add esp, 8
test eax, eax
jne case.0x45a153.2
test esi, esi
je 0x45a24d
mov eax, dword [0x4ac1d8]
mov ecx, dword [esi + 4]
mov dword [eax + 0xa4], ecx
jmp 0x45a898
mov eax, dword [0x4ac1d8]
xor ecx, ecx
mov dword [eax + 0xa4], ecx
jmp 0x45a898
push 0x3a
push dword [esp + 0x44]
call fcn.00486ac4
add esp, 8
test eax, eax
je 0x45a27e
test esi, esi
je 0x45a28a
mov ecx, esi
call fcn.0045be40
jmp 0x45a28a
xor edi, edi
jmp 0x45a28e
test esi, esi
jne 0x45a39b
mov edi, dword [esp + 0x18]
cmp ebp, 6
jl 0x45a2a5
cmp ebp, 0xa
jle 0x45a898
cmp ebp, 0x12
je 0x45a898
mov eax, dword [0x4af2c0]
cmp dword [0x4af0a4], eax
jne 0x45a2e7
lea esi, [eax + eax]
test eax, eax
jne 0x45a2be
mov esi, 8
lea eax, [esi*4]
push eax
push dword [0x4af0a0]
call fcn.0048719d
add esp, 8
test eax, eax
je case.0x45a4fe.11
mov dword [0x4af0a0], eax
mov dword [0x4af2c0], esi
cmp dword [0x4b08f8], 0
jne 0x45a30a
push 0x41a0
call fcn.00485a15
add esp, 4
mov dword [0x4b08f8], eax
test eax, eax
je 0x45a3bf
push 0xc4
call fcn.00487f0a
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], 1
test eax, eax
je 0x45a332
mov ecx, eax
call fcn.00459b90
mov esi, eax
jmp 0x45a334
xor esi, esi
mov dword [esp + 0x38], 0xffffffff
test esi, esi
je 0x45a3bf
push 0x4e20
call fcn.00485a15
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esi + 0x18], eax
test eax, eax
je 0x45a3b6
lea ecx, [edi + 1]
push ecx
call fcn.00485a15
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x45a3aa
mov ecx, dword [esp + 0x1c]
push edi
push ecx
push eax
call fcn.0048e4b0
mov eax, dword [esi]
add esp, 0xc
mov ecx, dword [0x4af0a4]
mov byte [edi + eax], 0
mov eax, dword [0x4af0a0]
mov dword [esi + 0x14], 0x3e8
mov dword [eax + ecx*4], esi
inc ecx
mov dword [0x4af0a4], ecx
mov edi, dword [esp + 0x44]
cmp ebp, 1
jne 0x45a3d9
mov eax, dword [esp + 0x20]
jmp 0x45a3e5
push dword [esp + 0x40]
call fcn.004858b4
add esp, 4
push esi
call fcn.00478ef0
add esp, 4
mov ecx, dword [esp + 0x14]
push 0x49e065
push str.Out_of_memory.
call fcn.0042e360
mov ebx, eax
jmp 0x45a898
xor eax, eax
cmp ebp, 0x13
cmove eax, edi
mov dword [esp + 0x24], eax
mov byte [esp + 0x40], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], 0
test eax, eax
je 0x45a41d
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x48]
push ecx
push eax
mov ecx, esi
call fcn.0045fb50
test eax, eax
je case.0x45a4fe.11
cmp dword [esi + 4], 0
jne 0x45a44f
mov ecx, esi
call fcn.0045c0f0
test eax, eax
jne 0x45a44f
mov ecx, esi
call fcn.0045be40
mov ecx, dword [esp + 0x14]
push 0x49e065
push str.Could_not_create_window.
call fcn.0042e360
mov ebx, eax
jmp 0x45a898
mov edx, dword [0x4ac1d8]
cmp ebp, 0x13
jne 0x45a472
mov ecx, dword [edx + 0x48]
test ecx, ecx
je 0x45a46c
call fcn.0045c080
mov edx, dword [0x4ac1d8]
inc dword [esi + 0x20]
mov dword [edx + 0x48], esi
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x45a488
push dword [esi + 4]
call fcn.00475150
mov edx, dword [0x4ac1d8]
cmp dword [esp + 0x24], 0
je 0x45a4f2
cmp byte [esp + 0x40], 0
je 0x45a49f
mov eax, dword [esi + 4]
mov dword [edx + 0xa4], eax
mov edi, dword [esp + 0x20]
test edi, edi
je 0x45a4cd
mov ecx, dword [edx + 0x4c]
test ecx, ecx
je 0x45a4b9
call fcn.0045c080
mov edx, dword [0x4ac1d8]
cmp edi, 1
jne 0x45a4c6
inc dword [esi + 0x20]
mov dword [edx + 0x4c], esi
jmp 0x45a4cd
mov dword [edx + 0x4c], 0
cmp ebp, 0x13
jne 0x45a898
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
je 0x45a898
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetWindowTextA]
jmp 0x45a898
lea eax, [ebp - 2]
cmp eax, 0x10
ja case.0x45a4fe.11
jmp dword [eax*4 + 0x45a914]
mov ecx, edi
call fcn.00459910
mov byte [esp + 0x40], al
test al, al
jne 0x45a52a
mov ecx, dword [esp + 0x14]
push edi
push str.Parameter_2_invalid.
call fcn.0042e360
mov ebx, eax
jmp 0x45a898
push dword [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x4c]
push dword [esp + 0x48]
call fcn.0045c5f0
mov ebx, eax
jmp 0x45a898
cmp byte [edi], 0
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
je 0x45a56d
mov ecx, edi
call fcn.0040ee90
cmp byte [esi + 0xc0], 0
je 0x45a56a
push 0x60
push dword [0x4b094c]
push eax
call ebp
mov dword [esi + 0x78], eax
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0
je 0x45a898
call fcn.0040ee90
cmp byte [esi + 0xc0], 0
je 0x45a593
push 0x60
push dword [0x4b094c]
push eax
call ebp
mov dword [esi + 0x7c], eax
jmp 0x45a898
cmp byte [edi], 0
je 0x45a5dc
mov ecx, dword [esp + 0x14]
push edi
call fcn.004691f0
mov ebp, eax
test ebp, ebp
je 0x45a5c6
cmp ebp, dword [0x4b100c]
je 0x45a5c6
push 2
mov ecx, ebp
call fcn.0046a060
mov eax, dword [ebp + 0x20]
jmp 0x45a5e0
mov ecx, dword [esp + 0x14]
push edi
push str.Menu_does_not_exist.
call fcn.0042e360
mov ebx, eax
jmp 0x45a898
xor ebp, ebp
xor eax, eax
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetMenu]
mov ecx, esi
test ebp, ebp
je 0x45a5fb
push ebp
call fcn.00467e20
jmp 0x45a898
call fcn.00467f00
jmp 0x45a898
push dword [esp + 0x48]
mov ecx, esi
push edi
call fcn.00462c50
mov ebx, eax
jmp 0x45a898
push str.NoHide
push edi
call fcn.004855c8
add esp, 8
mov ecx, esi
test eax, eax
setne al
movzx eax, al
push eax
call fcn.00463790
mov ebx, eax
jmp 0x45a898
mov ecx, esi
call fcn.00463700
mov ebx, eax
jmp 0x45a898
push 6
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x45a898
push 3
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x45a898
push 9
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x45a898
push dword [esp + 0x48]
mov ecx, esi
push edi
call fcn.004644b0
mov ebx, eax
jmp 0x45a898
cmp byte [edi], 0
je 0x45a898
push edi
mov ecx, esi
call fcn.004642b0
cmp eax, dword [esi + 0x10]
jae 0x45a898
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x18]
lea eax, [eax + ecx*4]
cmp ebp, 0xe
jne 0x45a6c8
cmp byte [eax + 4], 0xa
jne 0x45a898
mov dword [esi + 0x48], eax
jmp 0x45a898
cmp byte [eax + 4], 0xb
jne 0x45a898
mov dword [esi + 0x4c], eax
jmp 0x45a898
mov ebp, dword [esp + 0x48]
cmp byte [ebp], 0
jne 0x45a6f4
cmp byte [edi], 0
jne 0x45a74c
mov ecx, 0xff
mov dword [esp + 0x48], ecx
jmp 0x45a714
mov ecx, ebp
call fcn.0040ee90
mov ecx, eax
dec ecx
mov dword [esp + 0x48], ecx
js 0x45a818
cmp ecx, 0xfe
jg 0x45a818
mov dl, byte [esi + 0xb9]
movzx eax, dl
cmp eax, ecx
je 0x45a743
push edx
mov ecx, esi
call fcn.00466d40
test eax, eax
je 0x45a735
push eax
mov ecx, esi
call fcn.00467160
mov eax, dword [esp + 0x48]
mov byte [esi + 0xb9], al
mov byte [esi + 0x44], 0
cmp byte [edi], 0
je 0x45a898
cmp byte [ebp], 0
jne 0x45a773
cmp byte [esi + 0xb9], 0xff
jne 0x45a773
mov al, byte [esi + 0xb8]
test al, al
je 0x45a76b
movzx eax, al
dec eax
jmp 0x45a76d
xor eax, eax
mov byte [esi + 0xb9], al
push str.Exact
push dword [esp + 0x50]
call fcn.004855c8
add esp, 8
test eax, eax
sete al
mov byte [esp + 0x48], al
test al, al
jne 0x45a7c1
push 0
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.00472940
add esp, 0xc
test eax, eax
je 0x45a7c1
mov ecx, edi
call fcn.0040ee90
dec eax
js 0x45a514
cmp eax, 0xff
jle 0x45a7e4
jmp 0x45a514
movzx eax, byte [esi + 0xb9]
mov ecx, esi
push eax
call fcn.00466d40
test eax, eax
je 0x45a802
push dword [esp + 0x48]
push edi
push eax
call fcn.00466d90
cmp eax, 0xffffffff
je 0x45a802
movzx ecx, byte [esi + 0xba]
cmp ecx, eax
je 0x45a898
mov byte [esi + 0xba], al
mov byte [esi + 0x44], 0
jmp 0x45a898
mov ecx, dword [esp + 0x14]
push edi
push str.Tab_name_doesnt_exist_yet.
call fcn.0042e360
mov ebx, eax
jmp 0x45a898
mov ecx, dword [esp + 0x14]
push ebp
push str.Parameter_3_invalid.
call fcn.0042e360
mov ebx, eax
jmp 0x45a898
cmp byte [edi], 0
je 0x45a841
lea eax, [esi + 0x60]
mov ecx, edi
push eax
lea edx, [esi + 0x58]
call fcn.00473b30
add esp, 4
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0
je 0x45a859
lea eax, [esi + 0x64]
push eax
lea edx, [esi + 0x5c]
call fcn.00473b30
add esp, 4
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x45a898
push 1
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x45a898
push 0x4a09fc
push edi
call fcn.004855c8
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
push ecx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_FlashWindow]
jmp 0x45a898
xor ebx, ebx
mov esi, dword [esp + 0x28]
test esi, esi
je 0x45a8d3
mov eax, dword [0x4afbb0]
test eax, eax
je 0x45a8c4
push eax
call fcn.004858b4
add esp, 4
cmp dword [0x4afbac], 0x400000
jbe 0x45a8c4
dec dword [0x4afba8]
mov eax, dword [esp + 0x2c]
mov dword [0x4afbb0], esi
mov dword [0x4afbac], eax
mov ecx, dword [esp + 0x30]
mov eax, ebx
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret 0x10