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

Disassembly:
push 0xffffffffffffffff
push 0x65a33f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
mov ebp, dword [esp + 0x90]
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x10], ebx
push ebx
mov esi, 7
push 0x660424
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
call fcn.00404f80
mov dword [esp + 0x90], ebx
push ebx
push 0x660424
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
call fcn.00404f80
mov byte [esp + 0x90], 1
push 0x10
push str._ALMANAC_HEADER_
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov word [esp + 0x24], bx
call fcn.00404f80
mov edx, dword [esp + 0x9c]
push ebx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x3c]
push ecx
push 1
push 3
push edx
push ebp
lea ecx, [esp + 0x34]
mov byte [esp + 0xac], 2
call fcn.00459e20
mov edi, 8
cmp dword [esp + 0x30], edi
jb 0x4010f3
mov eax, dword [esp + 0x1c]
push eax
call fcn.0062414c
add esp, 4
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], bx
cmp dword [esp + 0x4c], edi
jb 0x401113
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0062414c
add esp, 4
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebx
mov word [esp + 0x38], bx
cmp dword [esp + 0x68], edi
jb 0x401133
mov edx, dword [esp + 0x54]
push edx
call fcn.0062414c
add esp, 4
mov dword [ebp + method.Sexy::ButtonListener.virtual_24], vtable.Sexy::ScrollListener.0
mov dword [ebp], 0x6607f8
mov dword [ebp + 0x88], 0x660930
mov dword [ebp + method.Sexy::ButtonListener.virtual_24], 0x66094c
mov dword [ebp + 0x7ec], ebx
mov dword [ebp + 0x7f0], ebx
mov dword [ebp + 0x7f4], ebx
mov dword [ebp + 0x7f8], ebx
mov dword [ebp + 0x7fc], ebx
mov dword [ebp + 0x800], ebx
mov dword [ebp + 0x804], ebx
mov dword [ebp + 0x808], ebx
mov dword [ebp + 0x80c], ebx
mov dword [ebp + 0x810], ebx
mov dword [ebp + 0x814], ebx
mov dword [ebp + 0x818], ebx
mov dword [ebp + 0x81c], ebx
mov dword [ebp + 0x820], ebx
mov dword [ebp + 0x824], ebx
mov dword [ebp + 0x828], ebx
mov dword [ebp + 0x84c], esi
mov dword [ebp + 0x848], ebx
mov word [ebp + 0x838], bx
mov dword [ebp + 0x868], esi
mov dword [ebp + 0x864], ebx
mov word [ebp + 0x854], bx
mov dword [ebp + 0x884], esi
mov dword [ebp + 0x880], ebx
mov word [ebp + 0x870], bx
mov dword [ebp + 0x8a0], esi
mov dword [ebp + 0x89c], ebx
mov word [ebp + 0x88c], bx
mov dword [ebp + 0x8bc], esi
mov dword [ebp + 0x8b8], ebx
mov word [ebp + 0x8a8], bx
mov dword [ebp + 0x8d8], esi
mov dword [ebp + 0x8d4], ebx
mov word [ebp + 0x8c4], bx
mov byte [esp + 0x90], 0xc
mov eax, dword [0x6ba058]
push 0x11
push str.DelayLoad_Almanac
lea ecx, [esp + 0x58]
mov dword [ebp + 0x170], eax
mov dword [ebp + 0x188], ebx
mov dword [ebp + 0x19c], ebx
mov dword [ebp + 0x1a0], ebx
mov dword [ebp + 0x1a8], ebx
mov dword [ebp + 0x1a4], ebx
mov byte [ebp + 0x15c], bl
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
call fcn.00405590
mov byte [esp + 0x90], 0xd
mov ecx, dword [0x6ba058]
mov ecx, dword [ecx + 0x634]
lea eax, [esp + 0x50]
call fcn.00517390
mov byte [esp + 0x90], 0xc
cmp dword [esp + 0x68], 0x10
jb 0x4012ba
mov edx, dword [esp + 0x54]
push edx
call fcn.0062414c
add esp, 4
push 0x258
push 0x320
xor eax, eax
lea edi, [ebp + 0x1ac]
mov ecx, 0x190
push ebx
rep stosd dword es:[edi], eax
push ebx
mov ecx, ebp
call fcn.0045a760
push 0x148
call fcn.00624227
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebx
mov byte [esp + 0x90], 0xe
je 0x401350
push 0xe
push str._CLOSE_BUTTON_
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
call fcn.00404f80
mov byte [esp + 0x90], 0xf
mov eax, dword [0x6b791c]
push eax
push 0x1a
push 0xa
push 0xffffffffffffffff
push 0x1a
push 0x59
push 0x237
push 0x2fd
lea ecx, [esp + 0x70]
push ecx
push ebx
push edi
mov dword [esp + 0x3c], 1
call fcn.0044aff0
jmp 0x401352
xor eax, eax
mov dword [esp + 0x90], 0xc
test byte [esp + 0x10], 1
mov dword [ebp + 0x174], eax
je 0x401383
and dword [esp + 0x10], 0xfffffffe
cmp dword [esp + 0x68], 8
jb 0x401383
mov edx, dword [esp + 0x54]
push edx
call fcn.0062414c
add esp, 4
mov eax, dword [ebp + 0x174]
mov ecx, dword [0x6b7780]
mov dword [eax + 0xac], ecx
mov edx, dword [ebp + 0x174]
mov eax, dword [0x6b76bc]
mov dword [edx + 0xb0], eax
mov ecx, dword [ebp + 0x174]
mov edx, 0x2a
mov dword [ecx + 0xb4], ebx
push 0x5a
mov ecx, edx
lea eax, [esp + 0x1c]
call fcn.0056a390
mov edx, dword [eax]
mov ecx, dword [ebp + 0x174]
mov dword [ecx + 0x24], edx
mov edx, dword [eax + 4]
add ecx, 0x24
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edx, 0x2a
push 0x5a
mov ecx, edx
lea eax, [esp + 0x1c]
call fcn.0056a390
mov ecx, dword [ebp + 0x174]
mov edx, dword [eax]
mov dword [ecx + 0x34], edx
mov edx, dword [eax + 4]
add ecx, 0x34
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0x174]
mov dword [ecx + 0xc], ebp
mov edx, dword [ebp + 0x174]
mov dword [edx + 0x124], 0xfffffff8
mov eax, dword [ebp + 0x174]
push 0x148
mov dword [eax + 0x128], 1
call fcn.00624227
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebx
mov byte [esp + 0x90], 0x11
je 0x4014b2
push 0xf
push str._ALMANAC_INDEX_
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
call fcn.00404f80
mov byte [esp + 0x90], 0x12
mov ecx, dword [0x6b791c]
or dword [esp + 0x10], 2
push ecx
push 0xa
push 0x1a
push 1
push 0x1a
push 0xa4
push 0x237
push 0x20
lea edx, [esp + 0x70]
push edx
push 3
push edi
call fcn.0044aff0
jmp 0x4014b4
xor eax, eax
mov dword [esp + 0x90], 0xc
test byte [esp + 0x10], 2
mov dword [ebp + 0x178], eax
je 0x4014e5
and dword [esp + 0x10], 0xfffffffd
cmp dword [esp + 0x68], 8
jb 0x4014e5
mov eax, dword [esp + 0x54]
push eax
call fcn.0062414c
add esp, 4
mov ecx, dword [ebp + 0x178]
mov edx, dword [0x6b7514]
mov dword [ecx + 0xac], edx
mov eax, dword [ebp + 0x178]
mov ecx, dword [0x6b750c]
mov dword [eax + 0xb0], ecx
mov edx, dword [ebp + 0x178]
mov dword [edx + 0xb4], ebx
mov edx, 0x2a
push 0x5a
mov ecx, edx
lea eax, [esp + 0x1c]
call fcn.0056a390
mov edx, dword [eax]
mov ecx, dword [ebp + 0x178]
mov dword [ecx + 0x24], edx
mov edx, dword [eax + 4]
add ecx, 0x24
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edx, 0x2a
push 0x5a
mov ecx, edx
lea eax, [esp + 0x1c]
call fcn.0056a390
mov ecx, dword [ebp + 0x178]
mov edx, dword [eax]
mov dword [ecx + 0x34], edx
mov edx, dword [eax + 4]
add ecx, 0x34
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0x178]
mov dword [ecx + 0xc], ebp
mov edx, dword [ebp + 0x178]
mov dword [edx + 0x124], 8
mov eax, dword [ebp + 0x178]
push 0x148
mov dword [eax + 0x128], 1
call fcn.00624227
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebx
mov byte [esp + 0x90], 0x14
je 0x401617
push 0xd
push str._VIEW_PLANTS_
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
call fcn.00404f80
mov byte [esp + 0x90], 0x15
mov ecx, dword [0x6b7b18]
or dword [esp + 0x10], 4
push ecx
push 0xa
push 0xa
push ebx
push 0x2a
push 0x9c
push 0x159
push 0xd0
lea edx, [esp + 0x70]
push edx
push 1
push edi
call fcn.0044aff0
jmp 0x401619
xor eax, eax
mov dword [esp + 0x90], 0xc
test byte [esp + 0x10], 4
mov dword [ebp + 0x17c], eax
je 0x40164a
and dword [esp + 0x10], 0xfffffffb
cmp dword [esp + 0x68], 8
jb 0x40164a
mov eax, dword [esp + 0x54]
push eax
call fcn.0062414c
add esp, 4
mov ecx, dword [ebp + 0x17c]
mov edx, dword [0x6b7af0]
mov dword [ecx + 0xac], edx
mov eax, dword [ebp + 0x17c]
mov dword [eax + 0xb0], ebx
mov ecx, dword [ebp + 0x17c]
mov dword [ecx + 0xb4], ebx
mov edx, dword [ebp + 0x17c]
mov eax, dword [0x6b7820]
mov dword [edx + 0xb8], eax
mov ecx, dword [ebp + 0x17c]
mov edx, dword [0x6b7904]
mov dword [ecx + 0xbc], edx
mov eax, dword [ebp + 0x17c]
mov ecx, dword [0x7329bc]
mov dword [eax + 0x24], ecx
mov edx, dword [0x7329c0]
mov dword [eax + 0x28], edx
mov ecx, dword [0x7329c4]
mov dword [eax + 0x2c], ecx
mov edx, dword [0x7329c8]
add eax, 0x24
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x17c]
mov ecx, dword [0x7329bc]
mov dword [eax + 0x34], ecx
mov edx, dword [0x7329c0]
add eax, 0x34
mov dword [eax + 4], edx
mov ecx, dword [0x7329c4]
mov dword [eax + 8], ecx
mov edx, dword [0x7329c8]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x17c]
mov dword [eax + 0xc], ebp
mov ecx, dword [ebp + 0x17c]
push 0x148
mov dword [ecx + 0x128], 0xffffffff
call fcn.00624227
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebx
mov byte [esp + 0x90], 0x17
je 0x401797
push 0xe
push str._VIEW_ZOMBIES_
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
call fcn.00404f80
mov byte [esp + 0x90], 0x18
mov edx, dword [0x6b7b18]
mov eax, dword [0x6b7370]
mov ecx, dword [eax + 0x24]
push edx
mov edx, dword [0x6b73b8]
mov eax, dword [edx + 0x24]
or dword [esp + 0x14], 8
push ecx
push eax
push ebx
push 0x30
push 0xd2
push 0x159
push 0x252
lea ecx, [esp + 0x8c]
push ecx
push 2
push edi
call fcn.0044aff0
jmp 0x401799
xor eax, eax
mov dword [esp + 0x90], 0xc
test byte [esp + 0x10], 8
mov dword [ebp + 0x180], eax
je 0x4017c8
cmp dword [esp + 0x84], 8
jb 0x4017c8
mov edx, dword [esp + 0x70]
push edx
call fcn.0062414c
add esp, 4
mov eax, dword [ebp + 0x180]
mov byte [eax + 0x120], 1
mov ecx, dword [ebp + 0x180]
push 0xf8
mov dword [ecx + 0xc], ebp
call fcn.00624227
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, ebx
mov byte [esp + 0x90], 0x1a
je 0x40181e
lea eax, [ebp + 0x16c]
push eax
push esi
call fcn.0053f4a0
mov dword [esi], 0x664f48
mov dword [esi + 0x88], 0x6650b8
mov ecx, esi
jmp 0x401820
xor ecx, ecx
push 0x64
mov byte [esp + 0x94], 0xc
push 6
mov dword [ebp + 0x184], ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x144]
push 0xa
push 0xa
call eax
mov ecx, dword [ebp + 0x184]
mov edx, dword [ecx]
mov eax, dword [edx + 0x118]
push ebx
call eax
fld qword [0x688560]
mov ecx, dword [ebp + 0x184]
mov edx, dword [ecx]
mov eax, dword [edx + 0x11c]
sub esp, 8
fstp qword [esp]
call eax
mov ecx, dword [ebp + 0x184]
fld qword [0x688628]
mov edx, dword [ecx]
mov eax, dword [edx + 0x120]
sub esp, 8
fstp qword [esp]
call eax
mov ecx, dword [ebp + 0x184]
fldz
mov edx, dword [ecx]
mov eax, dword [edx + 0x124]
sub esp, 8
fstp qword [esp]
call eax
mov ecx, dword [ebp + 0x184]
mov edx, dword [ecx]
mov eax, dword [edx + 0x168]
push ebx
call eax
mov edi, dword [ebp + 0x184]
mov eax, dword [edi + 0x8c]
cmp eax, ebx
je 0x4018e4
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x10]
mov ecx, edi
call eax
mov ecx, dword [edi + 0x8c]
cmp ecx, ebx
je 0x4018de
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [edi + 0x8c], ebx
mov eax, dword [edi + 0x90]
cmp eax, ebx
je 0x401910
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x10]
mov ecx, edi
call eax
mov ecx, dword [edi + 0x90]
cmp ecx, ebx
je 0x40190a
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [edi + 0x90], ebx
mov ecx, dword [ebp + 0x184]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
push ebx
call eax
fldz
mov ecx, dword [ebp + 0x184]
mov edx, dword [ecx]
mov eax, dword [edx + 0x124]
sub esp, 8
fstp qword [esp]
call eax
fldz
xor eax, eax
mov ecx, ebp
fstp dword [ebp + 0x82c]
call fcn.00402fc0
mov eax, dword [ebp + 0x170]
mov ecx, dword [eax + 0x768]
cmp ecx, ebx
je 0x40195f
cmp byte [ecx + 0x164], bl
jne 0x40197d
mov esi, dword [eax + 0x83c]
cmp dword [esi + 8], 6
je 0x40197d
call fcn.0045e200
or eax, 0xffffffff
or edx, eax
lea ecx, [eax + 7]
call fcn.0045e400
push ebx
push 0x660424
lea ecx, [ebp + 0x834]
call fcn.00404f80
push ebx
push 0x660424
lea ecx, [ebp + 0x850]
call fcn.00404f80
push ebx
push 0x660424
lea ecx, [ebp + 0x86c]
call fcn.00404f80
push ebx
push 0x660424
lea ecx, [ebp + 0x888]
call fcn.00404f80
push ebx
push 0x660424
lea ecx, [ebp + 0x8a4]
call fcn.00404f80
push ebx
push 0x660424
lea ecx, [ebp + 0x8c0]
call fcn.00404f80
fld qword [0x6885b8]
mov ecx, dword [esp + 0x88]
fstp qword [ebp + 0x8e8]
pop edi
mov byte [ebp + 0x8e4], bl
pop esi
mov eax, ebp
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x84
ret 8