// File: /workspace/github_cpp_makefile_star2_O3/Infinidat[P]slimfastq/./power_ranger.hpp
// Function: PowerRanger::put(RCoder*, unsigned char)
void put(RCoder *rc, UCHAR sym) {
        UINT32 sumf  = 0;
        UINT32 i = 0;

        rarely_if(iend <= sym)
            for (;iend <= sym; iend++)
                  syms[iend] = iend;

        for (; syms[i] != sym; sumf += freq[i++]);

        rc->Encode(sumf+i, freq[i]+1, total + NSYM);

        update_freq(i);
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rax
movq %rdi, %rbx
movzwl 0x204(%rdi), %ecx
cmpw %dx, %cx
jbe 0x38f4
cmpb %dl, 0x207(%rbx)
jne 0x386d
xorl %esi, %esi
xorl %r14d, %r14d
xorl %edi, %edi
jmp 0x388e
xorl %ecx, %ecx
xorl %r14d, %r14d
xorl %esi, %esi
incl %r14d
movzwl 0x4(%rbx,%rcx,2), %ecx
addl %ecx, %esi
movq %r14, %rcx
movq %r14, %rdi
cmpb %dl, 0x207(%rbx,%r14)
jne 0x3874
addl %r14d, %esi
movzwl 0x4(%rbx,%rdi,2), %edx
incl %edx
movl $0x100, %ecx            # imm = 0x100
addl (%rbx), %ecx
movq %rax, %rdi
callq 0x41ca
movslq %r14d, %rax
movzwl 0x4(%rbx,%rax,2), %ecx
cmpl $0x7fd2, %ecx           # imm = 0x7FD2
ja 0x3edb
movl (%rbx), %edx
addl $0xe, %ecx
movw %cx, 0x4(%rbx,%rax,2)
addl $0xe, %edx
movl %edx, (%rbx)
testl %eax, %eax
je 0x38ec
movb 0x206(%rbx), %dl
incb %dl
movb %dl, 0x206(%rbx)
testb $0xf, %dl
jne 0x38ec
cmpw 0x2(%rbx,%rax,2), %cx
ja 0x3f2c
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movzwl %dx, %esi
incl %esi
movzbl %dl, %r8d
subq %rcx, %r8
leaq 0x10(%r8), %rdi
andq $-0x10, %rdi
movq %r8, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq (%rcx,%rbx), %r8
addq $0x216, %r8             # imm = 0x216
xorl %r9d, %r9d
movdqa 0x7708(%rip), %xmm3     # 0xb030
movdqa 0x7710(%rip), %xmm4     # 0xb040
movdqa 0x7718(%rip), %xmm5     # 0xb050
movdqa 0x7720(%rip), %xmm6     # 0xb060
movdqa 0x7728(%rip), %xmm7     # 0xb070
movdqa 0x772f(%rip), %xmm8     # 0xb080
movdqa 0x7736(%rip), %xmm9     # 0xb090
pcmpeqd %xmm10, %xmm10
movq %r9, %xmm11
pshufd $0x44, %xmm11, %xmm11   # xmm11 = xmm11[0,1,0,1]
movdqa %xmm11, %xmm13
por %xmm8, %xmm13
movdqa %xmm0, %xmm12
pxor %xmm9, %xmm12
pxor %xmm9, %xmm13
movdqa %xmm13, %xmm15
pcmpgtd %xmm12, %xmm15
pshufd $0xa0, %xmm15, %xmm14   # xmm14 = xmm15[0,0,2,2]
pshuflw $0xe8, %xmm14, %xmm1    # xmm1 = xmm14[0,2,2,3,4,5,6,7]
pcmpeqd %xmm12, %xmm13
pshufd $0xf5, %xmm13, %xmm13   # xmm13 = xmm13[1,1,3,3]
pshuflw $0xe8, %xmm13, %xmm2    # xmm2 = xmm13[0,2,2,3,4,5,6,7]
pand %xmm1, %xmm2
pshufd $0xf5, %xmm15, %xmm15   # xmm15 = xmm15[1,1,3,3]
pshuflw $0xe8, %xmm15, %xmm1    # xmm1 = xmm15[0,2,2,3,4,5,6,7]
por %xmm2, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
movd %xmm1, %r10d
testb $0x1, %r10b
je 0x39db
leaq (%rcx,%r9), %r10
movb %r10b, -0xf(%r8,%r9)
pand %xmm14, %xmm13
por %xmm15, %xmm13
packssdw %xmm13, %xmm13
pxor %xmm10, %xmm13
packssdw %xmm13, %xmm13
packsswb %xmm13, %xmm13
movd %xmm13, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3a14
leal (%rcx,%r9), %r10d
incb %r10b
movb %r10b, -0xe(%r8,%r9)
movdqa %xmm11, %xmm1
por %xmm7, %xmm1
pxor %xmm9, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm12, %xmm2
pshufd $0xa0, %xmm2, %xmm13    # xmm13 = xmm2[0,0,2,2]
pcmpeqd %xmm12, %xmm1
pshufd $0xf5, %xmm1, %xmm14    # xmm14 = xmm1[1,1,3,3]
movdqa %xmm14, %xmm1
pand %xmm13, %xmm1
pshufd $0xf5, %xmm2, %xmm15    # xmm15 = xmm2[1,1,3,3]
por %xmm15, %xmm1
packssdw %xmm1, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
movd %xmm1, %r10d
shrl $0x10, %r10d
testb $0x1, %r10b
je 0x3a7e
leal (%rcx,%r9), %r10d
addb $0x2, %r10b
movb %r10b, -0xd(%r8,%r9)
pshufhw $0x84, %xmm13, %xmm1    # xmm1 = xmm13[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm14, %xmm2    # xmm2 = xmm14[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm2
pshufhw $0x84, %xmm15, %xmm1    # xmm1 = xmm15[0,1,2,3,4,5,4,6]
por %xmm2, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
movd %xmm1, %r10d
shrl $0x18, %r10d
testb $0x1, %r10b
je 0x3ac1
leal (%rcx,%r9), %r10d
addb $0x3, %r10b
movb %r10b, -0xc(%r8,%r9)
movdqa %xmm11, %xmm1
por %xmm6, %xmm1
pxor %xmm9, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm12, %xmm2
pshufd $0xa0, %xmm2, %xmm14    # xmm14 = xmm2[0,0,2,2]
pshuflw $0xe8, %xmm14, %xmm15   # xmm15 = xmm14[0,2,2,3,4,5,6,7]
pcmpeqd %xmm12, %xmm1
pshufd $0xf5, %xmm1, %xmm13    # xmm13 = xmm1[1,1,3,3]
pshuflw $0xe8, %xmm13, %xmm1    # xmm1 = xmm13[0,2,2,3,4,5,6,7]
pand %xmm15, %xmm1
pshufd $0xf5, %xmm2, %xmm15    # xmm15 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm15, %xmm2    # xmm2 = xmm15[0,2,2,3,4,5,6,7]
por %xmm1, %xmm2
pxor %xmm10, %xmm2
packssdw %xmm2, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x2, %xmm1, %r10d
testb $0x1, %r10b
je 0x3b30
leal (%rcx,%r9), %r10d
addb $0x4, %r10b
movb %r10b, -0xb(%r8,%r9)
pand %xmm14, %xmm13
por %xmm15, %xmm13
packssdw %xmm13, %xmm13
pxor %xmm10, %xmm13
packssdw %xmm13, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x2, %xmm1, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3b6a
leal (%rcx,%r9), %r10d
addb $0x5, %r10b
movb %r10b, -0xa(%r8,%r9)
movdqa %xmm11, %xmm1
por %xmm5, %xmm1
pxor %xmm9, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm12, %xmm2
pshufd $0xa0, %xmm2, %xmm13    # xmm13 = xmm2[0,0,2,2]
pcmpeqd %xmm12, %xmm1
pshufd $0xf5, %xmm1, %xmm14    # xmm14 = xmm1[1,1,3,3]
movdqa %xmm14, %xmm1
pand %xmm13, %xmm1
pshufd $0xf5, %xmm2, %xmm15    # xmm15 = xmm2[1,1,3,3]
por %xmm15, %xmm1
packssdw %xmm1, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x3, %xmm1, %r10d
testb $0x1, %r10b
je 0x3bd1
leal (%rcx,%r9), %r10d
addb $0x6, %r10b
movb %r10b, -0x9(%r8,%r9)
pshufhw $0x84, %xmm13, %xmm1    # xmm1 = xmm13[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm14, %xmm2    # xmm2 = xmm14[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm2
pshufhw $0x84, %xmm15, %xmm1    # xmm1 = xmm15[0,1,2,3,4,5,4,6]
por %xmm2, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x3, %xmm1, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3c15
leal (%rcx,%r9), %r10d
addb $0x7, %r10b
movb %r10b, -0x8(%r8,%r9)
movdqa %xmm11, %xmm1
por %xmm4, %xmm1
pxor %xmm9, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm12, %xmm2
pshufd $0xa0, %xmm2, %xmm14    # xmm14 = xmm2[0,0,2,2]
pshuflw $0xe8, %xmm14, %xmm15   # xmm15 = xmm14[0,2,2,3,4,5,6,7]
pcmpeqd %xmm12, %xmm1
pshufd $0xf5, %xmm1, %xmm13    # xmm13 = xmm1[1,1,3,3]
pshuflw $0xe8, %xmm13, %xmm1    # xmm1 = xmm13[0,2,2,3,4,5,6,7]
pand %xmm15, %xmm1
pshufd $0xf5, %xmm2, %xmm15    # xmm15 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm15, %xmm2    # xmm2 = xmm15[0,2,2,3,4,5,6,7]
por %xmm1, %xmm2
pxor %xmm10, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm1
pextrw $0x4, %xmm1, %r10d
testb $0x1, %r10b
je 0x3c84
leal (%rcx,%r9), %r10d
addb $0x8, %r10b
movb %r10b, -0x7(%r8,%r9)
pand %xmm14, %xmm13
por %xmm15, %xmm13
packssdw %xmm13, %xmm13
pxor %xmm10, %xmm13
packssdw %xmm13, %xmm13
packsswb %xmm13, %xmm1
pextrw $0x4, %xmm1, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3cbf
leal (%rcx,%r9), %r10d
addb $0x9, %r10b
movb %r10b, -0x6(%r8,%r9)
movdqa %xmm11, %xmm1
por %xmm3, %xmm1
pxor %xmm9, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm12, %xmm2
pshufd $0xa0, %xmm2, %xmm13    # xmm13 = xmm2[0,0,2,2]
pcmpeqd %xmm12, %xmm1
pshufd $0xf5, %xmm1, %xmm14    # xmm14 = xmm1[1,1,3,3]
movdqa %xmm14, %xmm1
pand %xmm13, %xmm1
pshufd $0xf5, %xmm2, %xmm15    # xmm15 = xmm2[1,1,3,3]
por %xmm15, %xmm1
packssdw %xmm1, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x5, %xmm1, %r10d
testb $0x1, %r10b
je 0x3d26
leal (%rcx,%r9), %r10d
addb $0xa, %r10b
movb %r10b, -0x5(%r8,%r9)
pshufhw $0x84, %xmm13, %xmm1    # xmm1 = xmm13[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm14, %xmm2    # xmm2 = xmm14[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm2
pshufhw $0x84, %xmm15, %xmm1    # xmm1 = xmm15[0,1,2,3,4,5,4,6]
por %xmm2, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x5, %xmm1, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3d6a
leal (%rcx,%r9), %r10d
addb $0xb, %r10b
movb %r10b, -0x4(%r8,%r9)
movdqa %xmm11, %xmm1
por 0x72a9(%rip), %xmm1     # 0xb020
pxor %xmm9, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm12, %xmm2
pshufd $0xa0, %xmm2, %xmm14    # xmm14 = xmm2[0,0,2,2]
pshuflw $0xe8, %xmm14, %xmm15   # xmm15 = xmm14[0,2,2,3,4,5,6,7]
pcmpeqd %xmm12, %xmm1
pshufd $0xf5, %xmm1, %xmm13    # xmm13 = xmm1[1,1,3,3]
pshuflw $0xe8, %xmm13, %xmm1    # xmm1 = xmm13[0,2,2,3,4,5,6,7]
pand %xmm15, %xmm1
pshufd $0xf5, %xmm2, %xmm15    # xmm15 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm15, %xmm2    # xmm2 = xmm15[0,2,2,3,4,5,6,7]
por %xmm1, %xmm2
pxor %xmm10, %xmm2
packssdw %xmm2, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x6, %xmm1, %r10d
testb $0x1, %r10b
je 0x3ddd
leal (%rcx,%r9), %r10d
addb $0xc, %r10b
movb %r10b, -0x3(%r8,%r9)
pand %xmm14, %xmm13
por %xmm15, %xmm13
packssdw %xmm13, %xmm13
pxor %xmm10, %xmm13
packssdw %xmm13, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x6, %xmm1, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3e17
leal (%rcx,%r9), %r10d
addb $0xd, %r10b
movb %r10b, -0x2(%r8,%r9)
por 0x71f0(%rip), %xmm11    # 0xb010
pxor %xmm9, %xmm11
movdqa %xmm11, %xmm1
pcmpgtd %xmm12, %xmm1
pshufd $0xa0, %xmm1, %xmm13    # xmm13 = xmm1[0,0,2,2]
pcmpeqd %xmm12, %xmm11
pshufd $0xf5, %xmm11, %xmm11   # xmm11 = xmm11[1,1,3,3]
movdqa %xmm11, %xmm2
pand %xmm13, %xmm2
pshufd $0xf5, %xmm1, %xmm12    # xmm12 = xmm1[1,1,3,3]
por %xmm12, %xmm2
packssdw %xmm2, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x7, %xmm1, %r10d
testb $0x1, %r10b
je 0x3e7f
leal (%rcx,%r9), %r10d
addb $0xe, %r10b
movb %r10b, -0x1(%r8,%r9)
pshufhw $0x84, %xmm13, %xmm1    # xmm1 = xmm13[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm11, %xmm2    # xmm2 = xmm11[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm2
pshufhw $0x84, %xmm12, %xmm1    # xmm1 = xmm12[0,1,2,3,4,5,4,6]
por %xmm2, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x7, %xmm1, %r10d
shrl $0x8, %r10d
testb $0x1, %r10b
je 0x3ec2
leal (%rcx,%r9), %r10d
addb $0xf, %r10b
movb %r10b, (%r8,%r9)
addq $0x10, %r9
cmpq %r9, %rdi
jne 0x395f
movw %si, 0x204(%rbx)
jmp 0x385c
testl %r14d, %r14d
jne 0x3ef0
movl %ecx, %edx
addl $0x100, %edx            # imm = 0x100
cmpl (%rbx), %edx
ja 0x38ec
cmpw $0x0, 0x204(%rbx)
je 0x3f25
xorl %ecx, %ecx
xorl %edx, %edx
movzwl 0x4(%rbx,%rcx,2), %esi
shrl %esi
movw %si, 0x4(%rbx,%rcx,2)
addl %esi, %edx
incq %rcx
movzwl 0x204(%rbx), %esi
cmpq %rsi, %rcx
jb 0x3efe
movzwl 0x4(%rbx,%rax,2), %ecx
jmp 0x38bd
xorl %edx, %edx
jmp 0x38bd
movb 0x207(%rbx,%rax), %cl
movb 0x206(%rbx,%rax), %dl
movb %dl, 0x207(%rbx,%rax)
movb %cl, 0x206(%rbx,%rax)
movzwl 0x4(%rbx,%rax,2), %ecx
movzwl 0x2(%rbx,%rax,2), %edx
movw %dx, 0x4(%rbx,%rax,2)
movw %cx, 0x2(%rbx,%rax,2)
jmp 0x38ec