// File: /workspace/github_c_makefile_star2_O0/bloomsource[P]dns_update/aes.c
// Function: aes_crypt_ecb
int aes_crypt_ecb( aes_context *ctx,
                    int mode,
                    const unsigned char input[16],
                    unsigned char output[16] )
{
    int i;
    unsigned long *RK, X0, X1, X2, X3, Y0, Y1, Y2, Y3;


    RK = ctx->rk;

    GET_ULONG_LE( X0, input,  0 ); X0 ^= *RK++;
    GET_ULONG_LE( X1, input,  4 ); X1 ^= *RK++;
    GET_ULONG_LE( X2, input,  8 ); X2 ^= *RK++;
    GET_ULONG_LE( X3, input, 12 ); X3 ^= *RK++;

    if( mode == AES_DECRYPT )
    {
        for( i = (ctx->nr >> 1) - 1; i > 0; i-- )
        {
            AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );
            AES_RROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );
        }

        AES_RROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );

        X0 = *RK++ ^ \
                ( (unsigned long) RSb[ ( Y0       ) & 0xFF ]       ) ^
                ( (unsigned long) RSb[ ( Y3 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) RSb[ ( Y2 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) RSb[ ( Y1 >> 24 ) & 0xFF ] << 24 );

        X1 = *RK++ ^ \
                ( (unsigned long) RSb[ ( Y1       ) & 0xFF ]       ) ^
                ( (unsigned long) RSb[ ( Y0 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) RSb[ ( Y3 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) RSb[ ( Y2 >> 24 ) & 0xFF ] << 24 );

        X2 = *RK++ ^ \
                ( (unsigned long) RSb[ ( Y2       ) & 0xFF ]       ) ^
                ( (unsigned long) RSb[ ( Y1 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) RSb[ ( Y0 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) RSb[ ( Y3 >> 24 ) & 0xFF ] << 24 );

        X3 = *RK++ ^ \
                ( (unsigned long) RSb[ ( Y3       ) & 0xFF ]       ) ^
                ( (unsigned long) RSb[ ( Y2 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) RSb[ ( Y1 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) RSb[ ( Y0 >> 24 ) & 0xFF ] << 24 );
    }
    else /* AES_ENCRYPT */
    {
        for( i = (ctx->nr >> 1) - 1; i > 0; i-- )
        {
            AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );
            AES_FROUND( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );
        }

        AES_FROUND( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );

        X0 = *RK++ ^ \
                ( (unsigned long) FSb[ ( Y0       ) & 0xFF ]       ) ^
                ( (unsigned long) FSb[ ( Y1 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) FSb[ ( Y2 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) FSb[ ( Y3 >> 24 ) & 0xFF ] << 24 );

        X1 = *RK++ ^ \
                ( (unsigned long) FSb[ ( Y1       ) & 0xFF ]       ) ^
                ( (unsigned long) FSb[ ( Y2 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) FSb[ ( Y3 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) FSb[ ( Y0 >> 24 ) & 0xFF ] << 24 );

        X2 = *RK++ ^ \
                ( (unsigned long) FSb[ ( Y2       ) & 0xFF ]       ) ^
                ( (unsigned long) FSb[ ( Y3 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) FSb[ ( Y0 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) FSb[ ( Y1 >> 24 ) & 0xFF ] << 24 );

        X3 = *RK++ ^ \
                ( (unsigned long) FSb[ ( Y3       ) & 0xFF ]       ) ^
                ( (unsigned long) FSb[ ( Y0 >>  8 ) & 0xFF ] <<  8 ) ^
                ( (unsigned long) FSb[ ( Y1 >> 16 ) & 0xFF ] << 16 ) ^
                ( (unsigned long) FSb[ ( Y2 >> 24 ) & 0xFF ] << 24 );
    }

    PUT_ULONG_LE( X0, output,  0 );
    PUT_ULONG_LE( X1, output,  4 );
    PUT_ULONG_LE( X2, output,  8 );
    PUT_ULONG_LE( X3, output, 12 );

    return( 0 );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
movq -0x18(%rbp), %rcx
movzbl 0x1(%rcx), %ecx
shlq $0x8, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0x2(%rcx), %ecx
shlq $0x10, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0x3(%rcx), %ecx
shlq $0x18, %rcx
orq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
xorq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
movzbl 0x5(%rcx), %ecx
shlq $0x8, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0x6(%rcx), %ecx
shlq $0x10, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0x7(%rcx), %ecx
shlq $0x18, %rcx
orq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
xorq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
movzbl 0x9(%rcx), %ecx
shlq $0x8, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0xa(%rcx), %ecx
shlq $0x10, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0xb(%rcx), %ecx
shlq $0x18, %rcx
orq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
xorq -0x48(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movzbl 0xc(%rax), %eax
movq -0x18(%rbp), %rcx
movzbl 0xd(%rcx), %ecx
shlq $0x8, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0xe(%rcx), %ecx
shlq $0x10, %rcx
orq %rcx, %rax
movq -0x18(%rbp), %rcx
movzbl 0xf(%rcx), %ecx
shlq $0x18, %rcx
orq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
xorq -0x50(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0xb69f
movq -0x8(%rbp), %rax
movl (%rax), %eax
sarl %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
jle 0xb26a
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x38(%rbp), %rdx
andq $0xff, %rdx
leaq 0x28e0(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x30c6(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x38ac(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x4092(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x40(%rbp), %rdx
andq $0xff, %rdx
leaq 0x2866(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x304c(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x3832(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x4018(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x48(%rbp), %rdx
andq $0xff, %rdx
leaq 0x27ec(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2fd2(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x37b8(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3f9e(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x50(%rbp), %rdx
andq $0xff, %rdx
leaq 0x2772(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2f58(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x373e(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3f24(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x58(%rbp), %rdx
andq $0xff, %rdx
leaq 0x26f8(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x70(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2ede(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x68(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x36c4(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x60(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3eaa(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x60(%rbp), %rdx
andq $0xff, %rdx
leaq 0x267e(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x58(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2e64(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x70(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x364a(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x68(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3e30(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x68(%rbp), %rdx
andq $0xff, %rdx
leaq 0x2604(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x60(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2dea(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x58(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x35d0(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x70(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3db6(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x70(%rbp), %rdx
andq $0xff, %rdx
leaq 0x258a(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x68(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2d70(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x60(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x3556(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x58(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3d3c(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x50(%rbp)
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xae82
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x38(%rbp), %rdx
andq $0xff, %rdx
leaq 0x2502(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2ce8(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x34ce(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3cb4(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x40(%rbp), %rdx
andq $0xff, %rdx
leaq 0x2488(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2c6e(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x3454(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3c3a(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x48(%rbp), %rdx
andq $0xff, %rdx
leaq 0x240e(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2bf4(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x33da(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3bc0(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x50(%rbp), %rdx
andq $0xff, %rdx
leaq 0x2394(%rip), %rcx      # 0xd790
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x2b7a(%rip), %rcx      # 0xdf90
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x3360(%rip), %rcx      # 0xe790
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x3b46(%rip), %rcx      # 0xef90
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x58(%rbp), %rdx
andq $0xff, %rdx
leaq 0x431a(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x70(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x42fd(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x68(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x42dc(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x60(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x42bb(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x60(%rbp), %rdx
andq $0xff, %rdx
leaq 0x4288(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x58(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x426b(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x70(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x424a(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x68(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x4229(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x68(%rbp), %rdx
andq $0xff, %rdx
leaq 0x41f6(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x60(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x41d9(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x58(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x41b8(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x70(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x4197(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x70(%rbp), %rdx
andq $0xff, %rdx
leaq 0x4164(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x68(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x4147(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x60(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4126(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x58(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x4105(%rip), %rcx      # 0xf790
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x50(%rbp)
jmp 0xbec5
movq -0x8(%rbp), %rax
movl (%rax), %eax
sarl %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
jle 0xba95
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x38(%rbp), %rdx
andq $0xff, %rdx
leaq 0x41b5(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x499b(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x5181(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x5967(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x40(%rbp), %rdx
andq $0xff, %rdx
leaq 0x413b(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x4921(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x5107(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x58ed(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x48(%rbp), %rdx
andq $0xff, %rdx
leaq 0x40c1(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x48a7(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x508d(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x5873(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x50(%rbp), %rdx
andq $0xff, %rdx
leaq 0x4047(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x482d(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x5013(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x57f9(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x58(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3fcd(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x60(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x47b3(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x68(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4f99(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x70(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x577f(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x60(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3f53(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x68(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x4739(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x70(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4f1f(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x58(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x5705(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x68(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3ed9(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x70(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x46bf(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x58(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4ea5(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x60(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x568b(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x70(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3e5f(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x58(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x4645(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x60(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4e2b(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x68(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x5611(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x50(%rbp)
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xb6ad
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x38(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3dd7(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x45bd(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4da3(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x5589(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x40(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3d5d(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x4543(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4d29(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x550f(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x48(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3ce3(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x50(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x44c9(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4caf(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x5495(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x50(%rbp), %rdx
andq $0xff, %rdx
leaq 0x3c69(%rip), %rcx      # 0xf890
xorq (%rcx,%rdx,8), %rax
movq -0x38(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x444f(%rip), %rcx      # 0x10090
xorq (%rcx,%rdx,8), %rax
movq -0x40(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x4c35(%rip), %rcx      # 0x10890
xorq (%rcx,%rdx,8), %rax
movq -0x48(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x541b(%rip), %rcx      # 0x11090
xorq (%rcx,%rdx,8), %rax
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x58(%rbp), %rdx
andq $0xff, %rdx
leaq 0x19ef(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x60(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x19d2(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x68(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x19b1(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x70(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x1990(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x60(%rbp), %rdx
andq $0xff, %rdx
leaq 0x195d(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x68(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x1940(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x70(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x191f(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x58(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x18fe(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x68(%rbp), %rdx
andq $0xff, %rdx
leaq 0x18cb(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x70(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x18ae(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x58(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x188d(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x60(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x186c(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x30(%rbp)
movq (%rax), %rax
movq -0x70(%rbp), %rdx
andq $0xff, %rdx
leaq 0x1839(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
xorq %rcx, %rax
movq -0x58(%rbp), %rdx
shrq $0x8, %rdx
andq $0xff, %rdx
leaq 0x181c(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x8, %rcx
xorq %rcx, %rax
movq -0x60(%rbp), %rdx
shrq $0x10, %rdx
andq $0xff, %rdx
leaq 0x17fb(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x10, %rcx
xorq %rcx, %rax
movq -0x68(%rbp), %rdx
shrq $0x18, %rdx
andq $0xff, %rdx
leaq 0x17da(%rip), %rcx      # 0xd690
movzbl (%rcx,%rdx), %ecx
shlq $0x18, %rcx
xorq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, (%rax)
movq -0x38(%rbp), %rax
shrq $0x8, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x1(%rax)
movq -0x38(%rbp), %rax
shrq $0x10, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x38(%rbp), %rax
shrq $0x18, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x3(%rax)
movq -0x40(%rbp), %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x4(%rax)
movq -0x40(%rbp), %rax
shrq $0x8, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x5(%rax)
movq -0x40(%rbp), %rax
shrq $0x10, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x6(%rax)
movq -0x40(%rbp), %rax
shrq $0x18, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x7(%rax)
movq -0x48(%rbp), %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x8(%rax)
movq -0x48(%rbp), %rax
shrq $0x8, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x9(%rax)
movq -0x48(%rbp), %rax
shrq $0x10, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0xa(%rax)
movq -0x48(%rbp), %rax
shrq $0x18, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0xb(%rax)
movq -0x50(%rbp), %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0xc(%rax)
movq -0x50(%rbp), %rax
shrq $0x8, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0xd(%rax)
movq -0x50(%rbp), %rax
shrq $0x10, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0xe(%rax)
movq -0x50(%rbp), %rax
shrq $0x18, %rax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0xf(%rax)
xorl %eax, %eax
popq %rbp
retq
nopl (%rax,%rax)