n:
.zero 4
C:
.zero 4
pre:
.zero 27980748
idx:
.zero 108
check(int, int, int, int):
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], edi
mov DWORD PTR [rbp-8], esi
mov DWORD PTR [rbp-12], edx
mov DWORD PTR [rbp-16], ecx
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+4
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+4
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+4
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+4
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+8
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+8
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+8
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+8
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+12
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+12
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+12
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+12
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+16
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+16
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+16
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+16
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+20
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+20
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+20
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+20
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+24
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+24
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+24
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+24
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+28
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+28
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+28
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+28
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+32
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+32
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+32
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+32
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+36
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+36
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+36
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+36
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+40
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+40
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+40
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+40
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+44
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+44
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+44
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+44
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+48
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+48
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+48
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+48
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+52
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+52
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+52
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+52
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+56
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+56
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+56
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+56
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+60
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+60
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+60
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+60
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+64
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+64
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+64
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+64
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+68
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+68
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+68
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+68
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+72
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+72
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+72
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+72
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+76
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+76
mov eax, DWORD PTR [rax]
sub ecx, eax
mov esi, ecx
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+76
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+76
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+80
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+80
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+80
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+80
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+84
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+84
mov eax, DWORD PTR [rax]
sub ecx, eax
mov esi, ecx
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+84
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+84
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+88
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+88
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+88
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+88
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+92
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+92
mov eax, DWORD PTR [rax]
sub ecx, eax
mov esi, ecx
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+92
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+92
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+96
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+96
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+96
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+96
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+100
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+100
mov eax, DWORD PTR [rax]
sub ecx, eax
mov esi, ecx
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+100
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+100
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+104
mov ecx, DWORD PTR [rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-16]
movsx rdx, eax
movsx rsi, esi
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rsi, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+104
mov eax, DWORD PTR [rax]
mov esi, ecx
sub esi, eax
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+104
mov eax, DWORD PTR [rax]
sub esi, eax
mov eax, DWORD PTR [rbp-4]
lea ecx, [rax-1]
mov eax, DWORD PTR [rbp-8]
sub eax, 1
movsx rdx, eax
movsx rcx, ecx
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
sal rax, 2
imul rdx, rcx, 54972
add rax, rdx
add rax, OFFSET FLAT:pre+104
mov eax, DWORD PTR [rax]
add eax, esi
test eax, eax
je .L2
mov eax, 1
jmp .L3
.L2:
mov eax, 0
.L3:
pop rbp
ret
ans:
.zero 4
.LC0:
.string "%d"
.LC1:
.string "%d\n"
main:
push rbp
mov rbp, rsp
sub rsp, 48
mov esi, OFFSET FLAT:n
mov edi, OFFSET FLAT:.LC0
mov eax, 0
call __isoc99_scanf
mov DWORD PTR [rbp-4], 1
jmp .L6
.L14:
mov DWORD PTR [rbp-8], 1
jmp .L7
.L13:
lea rax, [rbp-45]
mov rsi, rax
mov edi, OFFSET FLAT:std::cin
call std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, char&)
movzx eax, BYTE PTR [rbp-45]
movsx eax, al
sub eax, 65
mov DWORD PTR [rbp-44], eax
mov eax, DWORD PTR [rbp-44]
cdqe
mov eax, DWORD PTR idx[0+rax*4]
test eax, eax
jne .L8
mov eax, DWORD PTR C[rip]
add eax, 1
mov DWORD PTR C[rip], eax
mov edx, DWORD PTR C[rip]
mov eax, DWORD PTR [rbp-44]
cdqe
mov DWORD PTR idx[0+rax*4], edx
.L8:
mov DWORD PTR [rbp-12], 1
jmp .L9
.L12:
mov eax, DWORD PTR [rbp-44]
cdqe
mov eax, DWORD PTR idx[0+rax*4]
cmp DWORD PTR [rbp-12], eax
jne .L10
mov eax, DWORD PTR [rbp-4]
lea edx, [rax-1]
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
movsx rax, edx
mov edx, DWORD PTR [rbp-8]
movsx rdx, edx
imul rsi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rsi
add rax, rcx
mov ecx, DWORD PTR pre[0+rax*4]
mov eax, DWORD PTR [rbp-8]
lea edx, [rax-1]
mov eax, DWORD PTR [rbp-12]
movsx rsi, eax
mov eax, DWORD PTR [rbp-4]
cdqe
movsx rdx, edx
imul rdi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rdi
add rax, rsi
mov eax, DWORD PTR pre[0+rax*4]
lea edi, [rcx+rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-8]
lea edx, [rax-1]
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
movsx rax, esi
movsx rdx, edx
imul rsi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rsi
add rax, rcx
mov eax, DWORD PTR pre[0+rax*4]
sub edi, eax
mov edx, edi
lea ecx, [rdx+1]
mov eax, DWORD PTR [rbp-12]
movsx rsi, eax
mov eax, DWORD PTR [rbp-4]
cdqe
mov edx, DWORD PTR [rbp-8]
movsx rdx, edx
imul rdi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rdi
add rax, rsi
mov DWORD PTR pre[0+rax*4], ecx
jmp .L11
.L10:
mov eax, DWORD PTR [rbp-4]
lea edx, [rax-1]
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
movsx rax, edx
mov edx, DWORD PTR [rbp-8]
movsx rdx, edx
imul rsi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rsi
add rax, rcx
mov ecx, DWORD PTR pre[0+rax*4]
mov eax, DWORD PTR [rbp-8]
lea edx, [rax-1]
mov eax, DWORD PTR [rbp-12]
movsx rsi, eax
mov eax, DWORD PTR [rbp-4]
cdqe
movsx rdx, edx
imul rdi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rdi
add rax, rsi
mov eax, DWORD PTR pre[0+rax*4]
lea edi, [rcx+rax]
mov eax, DWORD PTR [rbp-4]
lea esi, [rax-1]
mov eax, DWORD PTR [rbp-8]
lea edx, [rax-1]
mov eax, DWORD PTR [rbp-12]
movsx rcx, eax
movsx rax, esi
movsx rdx, edx
imul rsi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rsi
add rax, rcx
mov eax, DWORD PTR pre[0+rax*4]
sub edi, eax
mov ecx, edi
mov eax, DWORD PTR [rbp-12]
movsx rsi, eax
mov eax, DWORD PTR [rbp-4]
cdqe
mov edx, DWORD PTR [rbp-8]
movsx rdx, edx
imul rdi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rdi
add rax, rsi
mov DWORD PTR pre[0+rax*4], ecx
.L11:
add DWORD PTR [rbp-12], 1
.L9:
mov eax, DWORD PTR C[rip]
cmp DWORD PTR [rbp-12], eax
jle .L12
add DWORD PTR [rbp-8], 1
.L7:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-8], eax
jle .L13
add DWORD PTR [rbp-4], 1
.L6:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-4], eax
jle .L14
mov DWORD PTR [rbp-16], 1
jmp .L15
.L20:
mov DWORD PTR [rbp-20], 1
jmp .L16
.L19:
mov eax, DWORD PTR C[rip]
add eax, 1
mov DWORD PTR [rbp-24], eax
jmp .L17
.L18:
mov eax, DWORD PTR [rbp-16]
imul eax, DWORD PTR [rbp-20]
mov ecx, eax
mov eax, DWORD PTR [rbp-24]
movsx rsi, eax
mov eax, DWORD PTR [rbp-16]
cdqe
mov edx, DWORD PTR [rbp-20]
movsx rdx, edx
imul rdi, rax, 13743
mov rax, rdx
add rax, rax
add rax, rdx
lea rdx, [0+rax*8]
add rax, rdx
add rax, rdi
add rax, rsi
mov DWORD PTR pre[0+rax*4], ecx
add DWORD PTR [rbp-24], 1
.L17:
cmp DWORD PTR [rbp-24], 26
jle .L18
add DWORD PTR [rbp-20], 1
.L16:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-20], eax
jle .L19
add DWORD PTR [rbp-16], 1
.L15:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-16], eax
jle .L20
mov DWORD PTR [rbp-28], 1
jmp .L21
.L33:
mov eax, DWORD PTR [rbp-28]
mov DWORD PTR [rbp-32], eax
jmp .L22
.L32:
mov ecx, DWORD PTR n[rip]
mov edx, DWORD PTR [rbp-32]
mov eax, DWORD PTR [rbp-28]
mov esi, 1
mov edi, eax
call check(int, int, int, int)
xor eax, 1
test al, al
jne .L35
mov DWORD PTR [rbp-36], 1
mov DWORD PTR [rbp-40], 1
jmp .L25
.L29:
add DWORD PTR [rbp-36], 1
.L26:
mov eax, DWORD PTR [rbp-36]
lea esi, [rax+1]
mov ecx, DWORD PTR [rbp-40]
mov edx, DWORD PTR [rbp-32]
mov eax, DWORD PTR [rbp-28]
mov edi, eax
call check(int, int, int, int)
test al, al
je .L27
mov eax, DWORD PTR [rbp-36]
cmp eax, DWORD PTR [rbp-40]
jge .L27
mov eax, 1
jmp .L28
.L27:
mov eax, 0
.L28:
test al, al
jne .L29
mov ecx, DWORD PTR [rbp-40]
mov edx, DWORD PTR [rbp-32]
mov esi, DWORD PTR [rbp-36]
mov eax, DWORD PTR [rbp-28]
mov edi, eax
call check(int, int, int, int)
test al, al
je .L30
mov edx, DWORD PTR ans[rip]
mov eax, DWORD PTR [rbp-36]
add eax, edx
mov DWORD PTR ans[rip], eax
.L30:
add DWORD PTR [rbp-40], 1
.L25:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-40], eax
jle .L26
jmp .L24
.L35:
nop
.L24:
add DWORD PTR [rbp-32], 1
.L22:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-32], eax
jle .L32
add DWORD PTR [rbp-28], 1
.L21:
mov eax, DWORD PTR n[rip]
cmp DWORD PTR [rbp-28], eax
jle .L33
mov eax, DWORD PTR ans[rip]
mov esi, eax
mov edi, OFFSET FLAT:.LC1
mov eax, 0
call printf
mov eax, 0
leave
ret