// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/zlib-1.3.0.1/trees.c
// Function: tr_init
void ZLIB_INTERNAL _tr_init(deflate_state *s) {
    tr_static_init();

    s->l_desc.dyn_tree = s->dyn_ltree;
    s->l_desc.stat_desc = &static_l_desc;

    s->d_desc.dyn_tree = s->dyn_dtree;
    s->d_desc.stat_desc = &static_d_desc;

    s->bl_desc.dyn_tree = s->bl_tree;
    s->bl_desc.stat_desc = &static_bl_desc;

    s->bi_buf = 0;
    s->bi_valid = 0;
#ifdef ZLIB_DEBUG
    s->compressed_len = 0L;
    s->bits_sent = 0L;
#endif

    /* Initialize the first block of the first file: */
    init_block(s);
}

// Assembly:
leaq 0xd4(%rdi), %rax
movq %rax, 0xb58(%rdi)
leaq 0xb0f23(%rip), %rax     # 0x14ff60
movq %rax, 0xb68(%rdi)
leaq 0x9c8(%rdi), %rax
movq %rax, 0xb70(%rdi)
leaq 0xb0f27(%rip), %rax     # 0x14ff80
movq %rax, 0xb80(%rdi)
leaq 0xabc(%rdi), %rax
movq %rax, 0xb88(%rdi)
leaq 0xb0f2b(%rip), %rax     # 0x14ffa0
movq %rax, 0xb98(%rdi)
movw $0x0, 0x1730(%rdi)
movl $0x0, 0x1734(%rdi)
movdqa 0x58f19(%rip), %xmm2    # 0xf7fb0
movdqa 0x58f21(%rip), %xmm3    # 0xf7fc0
movdqa 0x4e869(%rip), %xmm4    # 0xed910
movdqa 0x4e871(%rip), %xmm5    # 0xed920
movl $0x3c, %eax
movdqa 0x58f14(%rip), %xmm1    # 0xf7fd0
pshufd $0xa0, %xmm1, %xmm6     # xmm6 = xmm1[0,0,2,2]
movdqa 0x4e867(%rip), %xmm0    # 0xed930
pshufd $0xf5, %xmm1, %xmm7     # xmm7 = xmm1[1,1,3,3]
movdqa 0x58f0a(%rip), %xmm1    # 0xf7fe0
movdqa %xmm5, %xmm8
pxor %xmm0, %xmm8
pshufd $0xa0, %xmm8, %xmm9     # xmm9 = xmm8[0,0,2,2]
movdqa %xmm6, %xmm10
pcmpgtd %xmm9, %xmm10
pshufd $0xf5, %xmm8, %xmm8     # xmm8 = xmm8[1,1,3,3]
pcmpeqd %xmm7, %xmm8
pand %xmm10, %xmm8
pshuflw $0xe8, %xmm8, %xmm9     # xmm9 = xmm8[0,2,2,3,4,5,6,7]
packssdw %xmm9, %xmm9
movd %xmm9, %ecx
testb $0x1, %cl
je 0x9f11c
movw $0x0, -0x1c(%rdi,%rax,4)
packssdw %xmm8, %xmm8
packssdw %xmm8, %xmm8
movd %xmm8, %ecx
shrl $0x10, %ecx
testb $0x1, %cl
je 0x9f13a
movw $0x0, -0x18(%rdi,%rax,4)
movdqa %xmm4, %xmm8
pxor %xmm0, %xmm8
pshufd $0xa0, %xmm8, %xmm9     # xmm9 = xmm8[0,0,2,2]
movdqa %xmm6, %xmm10
pcmpgtd %xmm9, %xmm10
pshufd $0xf5, %xmm8, %xmm8     # xmm8 = xmm8[1,1,3,3]
pcmpeqd %xmm7, %xmm8
pand %xmm10, %xmm8
packssdw %xmm8, %xmm9
packssdw %xmm9, %xmm9
pextrw $0x2, %xmm9, %ecx
testb $0x1, %cl
je 0x9f180
movw $0x0, -0x14(%rdi,%rax,4)
pshufhw $0x84, %xmm8, %xmm8     # xmm8 = xmm8[0,1,2,3,4,5,4,6]
packssdw %xmm8, %xmm8
pextrw $0x3, %xmm8, %ecx
testb $0x1, %cl
je 0x9f19d
movw $0x0, -0x10(%rdi,%rax,4)
movdqa %xmm3, %xmm8
pxor %xmm0, %xmm8
pshufd $0xa0, %xmm8, %xmm9     # xmm9 = xmm8[0,0,2,2]
movdqa %xmm6, %xmm10
pcmpgtd %xmm9, %xmm10
pshufd $0xf5, %xmm8, %xmm8     # xmm8 = xmm8[1,1,3,3]
pcmpeqd %xmm7, %xmm8
pand %xmm10, %xmm8
pshuflw $0xe8, %xmm8, %xmm9     # xmm9 = xmm8[0,2,2,3,4,5,6,7]
packssdw %xmm9, %xmm9
pextrw $0x4, %xmm9, %ecx
testb $0x1, %cl
je 0x9f1e4
movw $0x0, -0xc(%rdi,%rax,4)
packssdw %xmm8, %xmm8
packssdw %xmm8, %xmm8
pextrw $0x5, %xmm8, %ecx
testb $0x1, %cl
je 0x9f200
movw $0x0, -0x8(%rdi,%rax,4)
movdqa %xmm2, %xmm8
pxor %xmm0, %xmm8
pshufd $0xa0, %xmm8, %xmm9     # xmm9 = xmm8[0,0,2,2]
movdqa %xmm6, %xmm10
pcmpgtd %xmm9, %xmm10
pshufd $0xf5, %xmm8, %xmm8     # xmm8 = xmm8[1,1,3,3]
pcmpeqd %xmm7, %xmm8
pand %xmm10, %xmm8
packssdw %xmm8, %xmm9
packssdw %xmm9, %xmm9
pextrw $0x6, %xmm9, %ecx
testb $0x1, %cl
je 0x9f246
movw $0x0, -0x4(%rdi,%rax,4)
pshufhw $0x84, %xmm8, %xmm8     # xmm8 = xmm8[0,1,2,3,4,5,4,6]
packssdw %xmm8, %xmm8
pextrw $0x7, %xmm8, %ecx
testb $0x1, %cl
je 0x9f262
movw $0x0, (%rdi,%rax,4)
paddq %xmm1, %xmm5
paddq %xmm1, %xmm4
paddq %xmm1, %xmm3
paddq %xmm1, %xmm2
addq $0x8, %rax
cmpq $0x15c, %rax            # imm = 0x15C
jne 0x9f0d6
movdqa 0x58d26(%rip), %xmm2    # 0xf7fb0
movdqa 0x58d2e(%rip), %xmm3    # 0xf7fc0
movdqa 0x4e676(%rip), %xmm4    # 0xed910
movdqa 0x4e67e(%rip), %xmm5    # 0xed920
xorl %eax, %eax
movdqa 0x58d44(%rip), %xmm6    # 0xf7ff0
pshufd $0xa0, %xmm6, %xmm7     # xmm7 = xmm6[0,0,2,2]
movdqa %xmm5, %xmm9
pxor %xmm0, %xmm9
pshufd $0xa0, %xmm9, %xmm8     # xmm8 = xmm9[0,0,2,2]
movdqa %xmm7, %xmm10
pcmpgtd %xmm8, %xmm10
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pshufd $0xf5, %xmm9, %xmm9     # xmm9 = xmm9[1,1,3,3]
pcmpeqd %xmm8, %xmm9
pand %xmm10, %xmm9
pshuflw $0xe8, %xmm9, %xmm10    # xmm10 = xmm9[0,2,2,3,4,5,6,7]
packssdw %xmm10, %xmm10
movd %xmm10, %ecx
testb $0x1, %cl
je 0x9f300
movw $0x0, 0x9c8(%rdi,%rax,4)
packssdw %xmm9, %xmm9
packssdw %xmm9, %xmm9
movd %xmm9, %ecx
shrl $0x10, %ecx
testb $0x1, %cl
je 0x9f321
movw $0x0, 0x9cc(%rdi,%rax,4)
movdqa %xmm4, %xmm9
pxor %xmm0, %xmm9
pshufd $0xa0, %xmm9, %xmm10    # xmm10 = xmm9[0,0,2,2]
movdqa %xmm7, %xmm11
pcmpgtd %xmm10, %xmm11
pshufd $0xf5, %xmm9, %xmm9     # xmm9 = xmm9[1,1,3,3]
pcmpeqd %xmm8, %xmm9
pand %xmm11, %xmm9
packssdw %xmm9, %xmm10
packssdw %xmm10, %xmm10
pextrw $0x2, %xmm10, %ecx
testb $0x1, %cl
je 0x9f36a
movw $0x0, 0x9d0(%rdi,%rax,4)
pshufhw $0x84, %xmm9, %xmm9     # xmm9 = xmm9[0,1,2,3,4,5,4,6]
packssdw %xmm9, %xmm9
pextrw $0x3, %xmm9, %ecx
testb $0x1, %cl
je 0x9f38a
movw $0x0, 0x9d4(%rdi,%rax,4)
movdqa %xmm3, %xmm9
pxor %xmm0, %xmm9
pshufd $0xa0, %xmm9, %xmm10    # xmm10 = xmm9[0,0,2,2]
movdqa %xmm7, %xmm11
pcmpgtd %xmm10, %xmm11
pshufd $0xf5, %xmm9, %xmm9     # xmm9 = xmm9[1,1,3,3]
pcmpeqd %xmm8, %xmm9
pand %xmm11, %xmm9
pshuflw $0xe8, %xmm9, %xmm10    # xmm10 = xmm9[0,2,2,3,4,5,6,7]
packssdw %xmm10, %xmm10
pextrw $0x4, %xmm10, %ecx
testb $0x1, %cl
je 0x9f3d4
movw $0x0, 0x9d8(%rdi,%rax,4)
packssdw %xmm9, %xmm9
packssdw %xmm9, %xmm9
pextrw $0x5, %xmm9, %ecx
testb $0x1, %cl
je 0x9f3f3
movw $0x0, 0x9dc(%rdi,%rax,4)
movdqa %xmm2, %xmm9
pxor %xmm0, %xmm9
pshufd $0xa0, %xmm9, %xmm10    # xmm10 = xmm9[0,0,2,2]
movdqa %xmm7, %xmm11
pcmpgtd %xmm10, %xmm11
pshufd $0xf5, %xmm9, %xmm9     # xmm9 = xmm9[1,1,3,3]
pcmpeqd %xmm9, %xmm8
pand %xmm11, %xmm8
packssdw %xmm8, %xmm9
packssdw %xmm9, %xmm9
pextrw $0x6, %xmm9, %ecx
testb $0x1, %cl
je 0x9f43c
movw $0x0, 0x9e0(%rdi,%rax,4)
pshufhw $0x84, %xmm8, %xmm8     # xmm8 = xmm8[0,1,2,3,4,5,4,6]
packssdw %xmm8, %xmm8
pextrw $0x7, %xmm8, %ecx
testb $0x1, %cl
je 0x9f45c
movw $0x0, 0x9e4(%rdi,%rax,4)
addq $0x8, %rax
paddq %xmm1, %xmm5
paddq %xmm1, %xmm4
paddq %xmm1, %xmm3
paddq %xmm1, %xmm2
cmpq $0x20, %rax
jne 0x9f2b1
movdqa 0x4e48e(%rip), %xmm1    # 0xed910
movdqa 0x4e496(%rip), %xmm2    # 0xed920
xorl %eax, %eax
movdqa 0x58b6c(%rip), %xmm3    # 0xf8000
pshufd $0xf5, %xmm3, %xmm4     # xmm4 = xmm3[1,1,3,3]
movdqa 0x4e4af(%rip), %xmm5    # 0xed950
movdqa %xmm2, %xmm6
pxor %xmm0, %xmm6
movdqa %xmm3, %xmm7
pcmpgtd %xmm6, %xmm7
pshufd $0xf5, %xmm6, %xmm6     # xmm6 = xmm6[1,1,3,3]
pcmpeqd %xmm4, %xmm6
pand %xmm7, %xmm6
movd %xmm6, %ecx
testb $0x1, %cl
je 0x9f4d1
movw $0x0, 0xabc(%rdi,%rax,4)
pextrw $0x4, %xmm6, %ecx
testb $0x1, %cl
je 0x9f4e5
movw $0x0, 0xac0(%rdi,%rax,4)
movdqa %xmm1, %xmm6
pxor %xmm0, %xmm6
movdqa %xmm3, %xmm7
pcmpgtd %xmm6, %xmm7
pshufd $0xf5, %xmm6, %xmm6     # xmm6 = xmm6[1,1,3,3]
pcmpeqd %xmm4, %xmm6
pand %xmm7, %xmm6
pextrw $0x0, %xmm6, %ecx
testb $0x1, %cl
je 0x9f516
movw $0x0, 0xac4(%rdi,%rax,4)
pextrw $0x4, %xmm6, %ecx
testb $0x1, %cl
je 0x9f52a
movw $0x0, 0xac8(%rdi,%rax,4)
addq $0x4, %rax
paddq %xmm5, %xmm2
paddq %xmm5, %xmm1
cmpq $0x14, %rax
jne 0x9f4a1
movw $0x1, 0x4d4(%rdi)
xorl %eax, %eax
movl %eax, 0x170c(%rdi)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x1718(%rdi)
movl %eax, 0x1728(%rdi)
retq