CSES - Datatähti 2025 alku - Results
Submission details
Task:Niitty
Sender:maweiyin24562
Submission time:2024-10-31 13:37:56 +0200
Language:Assembly
Status:COMPILE ERROR

Compiler report

input/code.asm:2: error: parser: instruction expected
input/code.asm:4: error: parser: instruction expected
input/code.asm:6: error: parser: instruction expected
input/code.asm:8: error: parser: instruction expected
input/code.asm:9: error: parser: instruction expected
input/code.asm:12: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:13: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:14: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:15: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:16: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:18: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:28: error: comma, colon, decorator or end of line expected after operand
input/code.asm:29: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:30: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:32: warning: `PTR' is not a NASM keyword [-w+ptr]
input/code.asm:43: error: comma, colon, decorator or end...

Code

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