Function at 0x63dd18
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x63e2fa
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x10], 0
je 0x63e2d6
push 0
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x63db34]
call fcn.00408af0
add esp, 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd8]
cmp word [eax + 0x4e], 0
jle 0x63def1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a4]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a4]
mov edx, dword [eax]
call dword [edx + 0x30]
pop edx
call fcn.005fa514
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x1a4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 8]
push 0xff00ff
mov edx, 0x5f19f4
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.005f1908
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a4]
call fcn.00466d2c
call fcn.00461430
push eax
call sub.gdi32.dll_SaveDC
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x63deea
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov eax, 0x63e314
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e338
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e360
call fcn.0063dbb0
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd8]
cmp word [eax + 0x4e], 1
jne 0x63de71
push ebp
mov eax, 0x63e384
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e3a4
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e3c4
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e3e4
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e404
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e424
call fcn.0063dbb0
pop ecx
push ebp
mov eax, 0x63e444
call fcn.0063dbb0
pop ecx
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x14]
call fcn.00466d2c
call fcn.00461430
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x30]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a4]
call fcn.00466d2c
call fcn.00461430
push eax
call sub.gdi32.dll_BitBlt
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x63df0c
mov eax, dword [ebp - 0x14]
call fcn.00405098
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a4]
call fcn.00466d2c
call fcn.00461430
push eax
call sub.gdi32.dll_RestoreDC
ret
push 0xff00ff
mov edx, 0x5f19f4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a4]
mov ecx, dword [ebp - 0x10]
call fcn.005f1908
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xdc]
call fcn.00408928
dec eax
test eax, eax
jl 0x63dfc0
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
mov edx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xdc]
cmp dword [edx + eax*8], 0
je 0x63dfb4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd8]
cmp word [eax + 0x4e], 0
jle 0x63df89
mov eax, dword [ebp - 4]
call fcn.00408928
mov edx, eax
dec edx
xor eax, eax
mov edi, edx
test edi, edi
jl 0x63df86
inc edi
xor ebx, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + ebx*4]
cmp edx, dword [ebp - 0xc]
jne 0x63df82
mov eax, 1
jmp 0x63df86
inc ebx
dec edi
jne 0x63df70
dec eax
je 0x63dfb4
push 0xff00ff
mov eax, dword [ebp - 0xc]
mov edx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xdc]
mov eax, dword [edx + eax*8]
mov edx, 0x5f19f4
mov ecx, dword [ebp - 0x10]
call fcn.005f1908
inc dword [ebp - 0xc]
dec dword [ebp - 0x1c]
jne 0x63df2e
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xe4]
call fcn.00408928
dec eax
test eax, eax
jl 0x63e263
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 0
imul eax, dword [ebp - 0xc], 0x43
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xe4]
lea esi, [edx + eax*4]
mov edx, dword [esi + 0xa0]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + 0xa0], eax
mov edx, dword [esi + 0xcc]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + 0xcc], eax
mov edx, dword [esi + 0x104]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + 0x104], eax
mov edx, dword [esi + 0x100]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + 0x100], eax
mov ebx, 1
mov edi, dword [esi + ebx*4 + 0xb4]
cmp edi, 0xffffffff
je 0x63e064
mov edx, edi
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + ebx*4 + 0xb4], eax
mov edi, dword [esi + ebx*4 + 0xe0]
cmp edi, 0xffffffff
je 0x63e081
mov edx, edi
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + ebx*4 + 0xe0], eax
inc ebx
cmp ebx, 6
jne 0x63e047
lea eax, [ebp - 0x20]
mov edx, dword [esi + 0xac]
mov ecx, 0
call fcn.0040757c
mov eax, dword [ebp - 0x20]
mov edx, 0x63e458
call fcn.0063804c
mov ecx, 5
cdq
idiv ecx
mov edi, eax
dec edi
test edi, edi
jl 0x63e0ff
inc edi
xor ebx, ebx
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xb0]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xb0]
mov dword [ecx + edx*4], eax
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xb0]
mov edx, dword [edx + eax*4 + 4]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xb0]
mov dword [ecx + edx*4 + 4], eax
inc ebx
dec edi
jne 0x63e0b9
mov eax, dword [esi + 0xdc]
call fcn.00408928
mov edi, eax
dec edi
test edi, edi
jl 0x63e15a
inc edi
xor ebx, ebx
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xdc]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xdc]
mov dword [ecx + edx*4], eax
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xdc]
mov edx, dword [edx + eax*4 + 4]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xdc]
mov dword [ecx + edx*4 + 4], eax
inc ebx
dec edi
jne 0x63e114
xor ebx, ebx
mov edi, ebx
add edi, edi
add edi, edi
add edi, edi
sub edi, ebx
cmp dword [esi + edi*8 + 0xc], 0xffffffff
je 0x63e187
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0xc]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0xc], eax
cmp dword [esi + edi*8 + 0x38], 0xffffffff
je 0x63e1a8
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x38]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0x38], eax
cmp dword [esi + edi*8 + 0x10], 0xffffffff
je 0x63e1c9
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x10]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0x10], eax
cmp dword [esi + edi*8 + 0x14], 0xffffffff
je 0x63e1ea
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x14]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0x14], eax
cmp dword [esi + edi*8 + 0x18], 0xffffffff
je 0x63e20b
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x18]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0x18], eax
cmp dword [esi + edi*8 + 0x1c], 0xffffffff
je 0x63e22c
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0x1c], eax
cmp dword [esi + edi*8 + 0x20], 0xffffffff
je 0x63e24d
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x20]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov dword [esi + edi*8 + 0x20], eax
inc ebx
cmp ebx, 2
jne 0x63e15c
inc dword [ebp - 0xc]
dec dword [ebp - 0x1c]
jne 0x63dfe2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd8]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xd8]
mov dword [edx + 0x20], eax
xor ebx, ebx
mov eax, ebx
cmp al, 0x1f
ja 0x63e295
and eax, 0x7f
bt dword [0x668784], eax
jae 0x63e2b8
mov esi, ebx
and esi, 0x7f
mov eax, dword [ebp - 8]
mov edx, dword [eax + esi*4 + 0x1d4]
mov eax, dword [ebp - 0x10]
call fcn.005f1f60
mov edx, dword [ebp - 8]
mov dword [edx + esi*4 + 0x1d4], eax
inc ebx
cmp bl, 0x1c
jne 0x63e285
push 0
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x63db34]
call fcn.00408af0
add esp, 4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x63e301
lea eax, [ebp - 0x20]
call fcn.00406b28
lea eax, [ebp - 4]
mov edx, dword [0x63db34]
call fcn.00408afc
ret