Function at 0x641220
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x689450
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebp
push esi
push edi
mov eax, dword [0x70c004]
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.00646990
mov ecx, dword [esi]
mov eax, ecx
cmp eax, 0x143
jg 0x641536
je 0x64152a
sub eax, 0x3b
cmp eax, 0xf8
ja case.0x641285.60
movzx edx, byte [eax + 0x6416f4]
jmp dword [edx*4 + 0x6416b0]
lea ecx, [esi + 0x10]
call fcn.00649000
mov dword [esi], eax
jmp 0x64166a
mov ecx, esi
call fcn.006407a0
jmp 0x64166a
mov ecx, esi
call fcn.00640960
jmp 0x64166a
mov ecx, esi
call fcn.00640ad0
jmp 0x64166a
mov ecx, esi
call fcn.00640c10
jmp 0x64166a
mov ecx, esi
call fcn.00640460
jmp 0x64166a
mov ecx, esi
call fcn.00641000
jmp 0x64166a
mov ecx, esi
call fcn.00640380
jmp 0x64166a
cmp ecx, 0x11e
jne 0x6412fe
mov edi, 0x13
jmp 0x64130a
mov eax, dword [esi + 4]
mov edi, 0x31
mov byte [eax + 0x21], 1
lea ecx, [esi + 0x10]
call fcn.00649000
mov ecx, esi
mov dword [esi], eax
call fcn.0063d240
test al, al
jne 0x64136e
mov ecx, dword [esi + 4]
mov ebp, dword [ecx + 0x64]
mov ecx, esi
call fcn.00640750
cmp edi, 0x13
jne 0x64134c
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xd4]
test eax, eax
jle 0x64134c
push 0
push 0
push 0
push eax
push 0x39
call fcn.0063d1d0
mov edx, dword [esi + 4]
push 0
mov dword [edx], ebp
mov ecx, dword [esi + 4]
push 0
call fcn.00645e90
mov ecx, dword [esi + 4]
push eax
push 1
push edi
call fcn.0063d1d0
jmp 0x64166a
cmp edi, 0x13
jne 0x64138e
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xd4]
test eax, eax
jle 0x64138e
push 0
push 0
push 0
push eax
push 0x39
call fcn.0063d1d0
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.0063d1d0
jmp 0x64166a
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xb0], 0
ja 0x6413c7
push str.break_has_to_be_in_a_loop_block
push esi
call fcn.0063d210
mov edx, dword [ecx + 0xb0]
mov eax, dword [ecx + 0xac]
cmp dword [eax + edx*4 - 4], 0
jle 0x6413ec
mov edx, dword [eax + edx*4 - 4]
push 0
push 0
push 0
push edx
push 0x39
call fcn.0063d1d0
mov ecx, dword [esi + 4]
push 0
push 0
push 0xfffffb2e
push 0
push 0x18
call fcn.0063d1d0
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.00645b20
lea ecx, [esi + 0x10]
call fcn.00649000
mov dword [esi], eax
jmp 0x64166a
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xbc], 0
ja 0x64143f
push str.continue_has_to_be_in_a_loop_block
push esi
call fcn.0063d210
mov eax, dword [ecx + 0xbc]
mov edx, dword [ecx + 0xb8]
cmp dword [edx + eax*4 - 4], 0
jle 0x641464
mov eax, dword [edx + eax*4 - 4]
push 0
push 0
push 0
push eax
push 0x39
call fcn.0063d1d0
mov ecx, dword [esi + 4]
push 0
push 0
push 0xfffffb2e
push 0
push 0x18
call fcn.0063d1d0
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.00645b20
lea ecx, [esi + 0x10]
call fcn.00649000
mov dword [esi], eax
jmp 0x64166a
mov ecx, esi
call fcn.0063e910
jmp 0x64166a
mov ecx, esi
call fcn.0063f800
jmp 0x64166a
mov ecx, dword [esi + 4]
call fcn.00645400
lea ecx, [esi + 0x10]
mov edi, eax
call fcn.00649000
mov ecx, esi
mov dword [esi], eax
call fcn.0063d260
push 0x7d
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0063d6c0
mov ecx, dword [esi + 4]
push edi
call fcn.00645f70
jmp 0x64166a
mov ecx, esi
call fcn.0063dc10
jmp 0x64166a
lea ecx, [esi + 0x10]
call fcn.00649000
mov ecx, esi
mov dword [esi], eax
call fcn.00640750
mov ecx, dword [esi + 4]
push 0
push 0
push 0
call fcn.00645e90
mov ecx, dword [esi + 4]
push eax
push 0x3a
call fcn.0063d1d0
jmp 0x64166a
mov ecx, esi
call fcn.0063d9b0
jmp 0x64166a
cmp eax, 0x144
je 0x641551
mov ecx, esi
call fcn.00640750
mov ecx, dword [esi + 4]
call fcn.00645e90
jmp 0x64166a
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.00649000
push 0x102
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esi], eax
call fcn.0063d6c0
push 0x3d
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.0063d6c0
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.0063d900
mov eax, dword [esi]
cmp eax, 0x3b
jne 0x641687
mov ecx, edi
call fcn.00649000
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 0x6415c7
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 0x6415e6
inc dword [edx + 4]
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x40], 1
call fcn.006386a0
or edi, 0xffffffff
mov byte [esp + 0x38], 0
test dword [esp + 0x20], ebp
je 0x641620
mov eax, dword [esp + 0x24]
add dword [eax + 4], edi
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], 0
ja 0x641620
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 0x641648
add dword [ecx + 4], edi
jne 0x641648
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov dword [esp + 0x38], edi
test dword [esp + 0x18], ebp
je 0x64166a
mov eax, dword [esp + 0x1c]
add dword [eax + 4], edi
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 4], 0
ja 0x64166a
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 0x64159c
test eax, eax
je 0x64159c
cmp eax, 0x7d
je 0x64159c
push str.end_of_statement_expected____or_lf_
push esi
call fcn.0063d210
lea ecx, [ecx]
mov word [edx], ss
add byte fs:[eax - 687840236], bh
adc ah, byte [eax + eax - 0x65]
adc ah, byte [eax + eax - 0x59]
adc ah, byte [eax + eax - 0x50]
adc esp, dword [eax + eax - 0x41]
adc ah, byte [eax + eax - 0x4d]
adc ah, byte [eax + eax - 0x35]
adc ah, byte [eax + eax - 0x1d]
adc ah, byte [eax + eax - 0x60]
adc al, 0x64
add bh, ch
adc ah, byte [eax + eax + 0x28]
adc al, 0x64
add bh, ch
adc al, 0x64
add bl, bh
adc al, 0x64
add byte [esp + edx + 0x153d0064], 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