Function at 0x645450
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x672510
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebp
push esi
push edi
mov eax, dword [0x6f2bf0]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
movzx eax, byte [esi + 0x58]
mov ecx, dword [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, dword [esi + 4]
call fcn.0064abc0
mov ecx, dword [esi]
mov eax, ecx
cmp eax, 0x143
jg 0x645766
je 0x64575a
sub eax, 0x3b
cmp eax, 0xf8
ja case.0x6454b5.60
movzx edx, byte [eax + 0x645924]
jmp dword [edx*4 + 0x6458e0]
lea ecx, [esi + 0x10]
call fcn.0064d230
mov dword [esi], eax
jmp 0x64589a
mov ecx, esi
call fcn.006449d0
jmp 0x64589a
mov ecx, esi
call fcn.00644b90
jmp 0x64589a
mov ecx, esi
call fcn.00644d00
jmp 0x64589a
mov ecx, esi
call fcn.00644e40
jmp 0x64589a
mov ecx, esi
call fcn.00644690
jmp 0x64589a
mov ecx, esi
call fcn.00645230
jmp 0x64589a
mov ecx, esi
call fcn.006445b0
jmp 0x64589a
cmp ecx, 0x11e
jne 0x64552e
mov edi, 0x13
jmp 0x64553a
mov eax, dword [esi + 4]
mov edi, 0x31
mov byte [eax + 0x21], 1
lea ecx, [esi + 0x10]
call fcn.0064d230
mov ecx, esi
mov dword [esi], eax
call fcn.006414e0
test al, al
jne 0x64559e
mov ecx, dword [esi + 4]
mov ebp, dword [ecx + 0x64]
mov ecx, esi
call fcn.00644980
cmp edi, 0x13
jne 0x64557c
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xd4]
test eax, eax
jle 0x64557c
push 0
push 0
push 0
push eax
push 0x39
call fcn.00641470
mov edx, dword [esi + 4]
push 0
mov dword [edx], ebp
mov ecx, dword [esi + 4]
push 0
call fcn.0064a0c0
mov ecx, dword [esi + 4]
push eax
push 1
push edi
call fcn.00641470
jmp 0x64589a
cmp edi, 0x13
jne 0x6455be
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xd4]
test eax, eax
jle 0x6455be
push 0
push 0
push 0
push eax
push 0x39
call fcn.00641470
mov eax, dword [esi + 4]
push 0
push 0
push 0
push 0xff
mov dword [eax], 0xffffffff
mov ecx, dword [esi + 4]
push edi
call fcn.00641470
jmp 0x64589a
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xb0], 0
ja 0x6455f7
push str.break_has_to_be_in_a_loop_block
push esi
call fcn.006414b0
mov edx, dword [ecx + 0xb0]
mov eax, dword [ecx + 0xac]
cmp dword [eax + edx*4 - 4], 0
jle 0x64561c
mov edx, dword [eax + edx*4 - 4]
push 0
push 0
push 0
push edx
push 0x39
call fcn.00641470
mov ecx, dword [esi + 4]
push 0
push 0
push 0xfffffb2e
push 0
push 0x18
call fcn.00641470
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
dec ecx
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
push edx
lea ecx, [eax + 0x24]
call fcn.0063f330
lea ecx, [esi + 0x10]
call fcn.0064d230
mov dword [esi], eax
jmp 0x64589a
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xbc], 0
ja 0x64566f
push str.continue_has_to_be_in_a_loop_block
push esi
call fcn.006414b0
mov eax, dword [ecx + 0xbc]
mov edx, dword [ecx + 0xb8]
cmp dword [edx + eax*4 - 4], 0
jle 0x645694
mov eax, dword [edx + eax*4 - 4]
push 0
push 0
push 0
push eax
push 0x39
call fcn.00641470
mov ecx, dword [esi + 4]
push 0
push 0
push 0xfffffb2e
push 0
push 0x18
call fcn.00641470
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
dec ecx
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
push edx
lea ecx, [eax + 0x30]
call fcn.0063f330
lea ecx, [esi + 0x10]
call fcn.0064d230
mov dword [esi], eax
jmp 0x64589a
mov ecx, esi
call fcn.00642b40
jmp 0x64589a
mov ecx, esi
call fcn.00643a30
jmp 0x64589a
mov ecx, dword [esi + 4]
call fcn.00649620
lea ecx, [esi + 0x10]
mov edi, eax
call fcn.0064d230
mov ecx, esi
mov dword [esi], eax
call fcn.00641500
push 0x7d
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00641960
mov ecx, dword [esi + 4]
push edi
call fcn.0064a1a0
jmp 0x64589a
mov ecx, esi
call fcn.00641eb0
jmp 0x64589a
lea ecx, [esi + 0x10]
call fcn.0064d230
mov ecx, esi
mov dword [esi], eax
call fcn.00644980
mov ecx, dword [esi + 4]
push 0
push 0
push 0
call fcn.0064a0c0
mov ecx, dword [esi + 4]
push eax
push 0x3a
call fcn.00641470
jmp 0x64589a
mov ecx, esi
call fcn.00641c50
jmp 0x64589a
cmp eax, 0x144
je 0x645781
mov ecx, esi
call fcn.00644980
mov ecx, dword [esi + 4]
call fcn.0064a0c0
jmp 0x64589a
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.0064d230
push 0x102
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esi], eax
call fcn.00641960
push 0x3d
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00641960
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.00641ba0
mov eax, dword [esi]
cmp eax, 0x3b
jne 0x6458b7
mov ecx, edi
call fcn.0064d230
mov dword [esi], eax
mov ecx, dword [esi + 0xb4]
mov edx, dword [ecx + 0x80]
mov ecx, dword [edx + 0x38]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebp, 0x8000000
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
test ebp, eax
je 0x6457f7
inc dword [edx + 4]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
test ebp, eax
je 0x645816
inc dword [edx + 4]
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x40], 1
call fcn.0063c8e0
or edi, 0xffffffff
mov byte [esp + 0x38], 0
test dword [esp + 0x20], ebp
je 0x645850
mov eax, dword [esp + 0x24]
add dword [eax + 4], edi
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], 0
ja 0x645850
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], 0x1000001
mov dword [esp + 0x1c], 0
test ebp, eax
je 0x645878
add dword [ecx + 4], edi
jne 0x645878
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov dword [esp + 0x38], edi
test dword [esp + 0x18], ebp
je 0x64589a
mov eax, dword [esp + 0x1c]
add dword [eax + 4], edi
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 4], 0
ja 0x64589a
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov eax, dword [esi + 4]
mov byte [eax + 0xd8], 0
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x2c
ret
cmp dword [esi + 0x18], 0xa
je 0x6457cc
test eax, eax
je 0x6457cc
cmp eax, 0x7d
je 0x6457cc
push str.end_of_statement_expected____or_lf_
push esi
call fcn.006414b0
lea ecx, [ecx]
mov esp, 0xe8006454
push esi
add byte fs:[edi], al
push ebp
add bl, cl
push esp
add bh, dl
push esp
add al, ah
push ebp
add bh, ch
push esp
add bl, ah
push esp
add bl, bh
push esp
add byte fs:[ebx], dl
push ebp
add al, dl
push esi
add byte fs:[edi], bl
push ebp
add byte fs:[eax + 0x56], bl
add byte fs:[edi], bl
push edi
add byte fs:[ebx], ch
push edi
add ah, bl
push esi
add byte fs:[ebp + 0x57], ch
add byte fs:[eax], al
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [ecx], al
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
add dl, byte [eax]
adc byte [eax], dl
add edx, dword [eax]
add al, 5
push es
pop es
adc byte [eax], cl
adc byte [eax], dl
adc byte [ecx], cl
adc byte [edx], cl
or edx, dword [eax]
adc byte [eax], dl
adc byte [ebx + ecx], cl
or eax, 269487632
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [eax], dl
adc byte [edi], cl
int3