Function at 0x624030
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x66c730
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebp
push esi
push edi
mov eax, dword [0x6ee104]
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.006297c0
mov ecx, dword [esi]
mov eax, ecx
cmp eax, 0x143
jg 0x624346
je 0x62433a
sub eax, 0x3b
cmp eax, 0xf8
ja case.0x624095.60
movzx edx, byte [eax + 0x624504]
jmp dword [edx*4 + 0x6244c0]
lea ecx, [esi + 0x10]
call fcn.0062be30
mov dword [esi], eax
jmp 0x62447a
mov ecx, esi
call fcn.006235b0
jmp 0x62447a
mov ecx, esi
call fcn.00623770
jmp 0x62447a
mov ecx, esi
call fcn.006238e0
jmp 0x62447a
mov ecx, esi
call fcn.00623a20
jmp 0x62447a
mov ecx, esi
call fcn.00623270
jmp 0x62447a
mov ecx, esi
call fcn.00623e10
jmp 0x62447a
mov ecx, esi
call fcn.00623190
jmp 0x62447a
cmp ecx, 0x11e
jne 0x62410e
mov edi, 0x13
jmp 0x62411a
mov eax, dword [esi + 4]
mov edi, 0x31
mov byte [eax + 0x21], 1
lea ecx, [esi + 0x10]
call fcn.0062be30
mov ecx, esi
mov dword [esi], eax
call fcn.006200e0
test al, al
jne 0x62417e
mov ecx, dword [esi + 4]
mov ebp, dword [ecx + 0x64]
mov ecx, esi
call fcn.00623560
cmp edi, 0x13
jne 0x62415c
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xd4]
test eax, eax
jle 0x62415c
push 0
push 0
push 0
push eax
push 0x39
call fcn.00620070
mov edx, dword [esi + 4]
push 0
mov dword [edx], ebp
mov ecx, dword [esi + 4]
push 0
call fcn.00628cc0
mov ecx, dword [esi + 4]
push eax
push 1
push edi
call fcn.00620070
jmp 0x62447a
cmp edi, 0x13
jne 0x62419e
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xd4]
test eax, eax
jle 0x62419e
push 0
push 0
push 0
push eax
push 0x39
call fcn.00620070
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.00620070
jmp 0x62447a
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xb0], 0
ja 0x6241d7
push str.break_has_to_be_in_a_loop_block
push esi
call fcn.006200b0
mov edx, dword [ecx + 0xb0]
mov eax, dword [ecx + 0xac]
cmp dword [eax + edx*4 - 4], 0
jle 0x6241fc
mov edx, dword [eax + edx*4 - 4]
push 0
push 0
push 0
push edx
push 0x39
call fcn.00620070
mov ecx, dword [esi + 4]
push 0
push 0
push 0xfffffb2e
push 0
push 0x18
call fcn.00620070
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.0061df30
lea ecx, [esi + 0x10]
call fcn.0062be30
mov dword [esi], eax
jmp 0x62447a
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xbc], 0
ja 0x62424f
push str.continue_has_to_be_in_a_loop_block
push esi
call fcn.006200b0
mov eax, dword [ecx + 0xbc]
mov edx, dword [ecx + 0xb8]
cmp dword [edx + eax*4 - 4], 0
jle 0x624274
mov eax, dword [edx + eax*4 - 4]
push 0
push 0
push 0
push eax
push 0x39
call fcn.00620070
mov ecx, dword [esi + 4]
push 0
push 0
push 0xfffffb2e
push 0
push 0x18
call fcn.00620070
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.0061df30
lea ecx, [esi + 0x10]
call fcn.0062be30
mov dword [esi], eax
jmp 0x62447a
mov ecx, esi
call fcn.00621720
jmp 0x62447a
mov ecx, esi
call fcn.00622610
jmp 0x62447a
mov ecx, dword [esi + 4]
call fcn.00628220
lea ecx, [esi + 0x10]
mov edi, eax
call fcn.0062be30
mov ecx, esi
mov dword [esi], eax
call fcn.00620100
push 0x7d
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00620540
mov ecx, dword [esi + 4]
push edi
call fcn.00628da0
jmp 0x62447a
mov ecx, esi
call fcn.00620a90
jmp 0x62447a
lea ecx, [esi + 0x10]
call fcn.0062be30
mov ecx, esi
mov dword [esi], eax
call fcn.00623560
mov ecx, dword [esi + 4]
push 0
push 0
push 0
call fcn.00628cc0
mov ecx, dword [esi + 4]
push eax
push 0x3a
call fcn.00620070
jmp 0x62447a
mov ecx, esi
call fcn.00620830
jmp 0x62447a
cmp eax, 0x144
je 0x624361
mov ecx, esi
call fcn.00623560
mov ecx, dword [esi + 4]
call fcn.00628cc0
jmp 0x62447a
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.0062be30
push 0x102
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esi], eax
call fcn.00620540
push 0x3d
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00620540
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.00620780
mov eax, dword [esi]
cmp eax, 0x3b
jne 0x624497
mov ecx, edi
call fcn.0062be30
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 0x6243d7
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 0x6243f6
inc dword [edx + 4]
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x40], 1
call fcn.0061b570
or edi, 0xffffffff
mov byte [esp + 0x38], 0
test dword [esp + 0x20], ebp
je 0x624430
mov eax, dword [esp + 0x24]
add dword [eax + 4], edi
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], 0
ja 0x624430
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 0x624458
add dword [ecx + 4], edi
jne 0x624458
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov dword [esp + 0x38], edi
test dword [esp + 0x18], ebp
je 0x62447a
mov eax, dword [esp + 0x1c]
add dword [eax + 4], edi
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 4], 0
ja 0x62447a
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 0x6243ac
test eax, eax
je 0x6243ac
cmp eax, 0x7d
je 0x6243ac
push str.end_of_statement_expected____or_lf_
push esi
call fcn.006200b0
lea ecx, [ecx]
pushfd
inc eax
bound eax, qword [eax]
enter 0x6242, 0
out 64, eax
bound eax, qword [eax]
stosd dword es:[edi], eax
inc eax
bound eax, qword [eax]
mov bh, 0x40
bound eax, qword [eax]
rol byte [ecx + 0x62], 0
iretd