// File: /workspace/github_c_makefile_star2_O3/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 0xb18b7(%rip), %rax     # 0x14ff60
movq %rax, 0xb68(%rdi)
leaq 0x9c8(%rdi), %rax
movq %rax, 0xb70(%rdi)
leaq 0xb18bb(%rip), %rax     # 0x14ff80
movq %rax, 0xb80(%rdi)
leaq 0xabc(%rdi), %rax
movq %rax, 0xb88(%rdi)
leaq 0xb18bf(%rip), %rax     # 0x14ffa0
movq %rax, 0xb98(%rdi)
movw $0x0, 0x1730(%rdi)
movl $0x0, 0x1734(%rdi)
movdqa 0x5981d(%rip), %xmm2    # 0xf7f20
movdqa 0x59825(%rip), %xmm3    # 0xf7f30
movdqa 0x4e9cd(%rip), %xmm4    # 0xed0e0
movdqa 0x4e9d5(%rip), %xmm5    # 0xed0f0
movl $0x3c, %eax
movdqa 0x59818(%rip), %xmm1    # 0xf7f40
pshufd $0xa0, %xmm1, %xmm6     # xmm6 = xmm1[0,0,2,2]
movdqa 0x4e9cb(%rip), %xmm0    # 0xed100
pshufd $0xf5, %xmm1, %xmm7     # xmm7 = xmm1[1,1,3,3]
movdqa 0x5980e(%rip), %xmm1    # 0xf7f50
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 0x9e788
movw $0x0, -0x1c(%rdi,%rax,4)
packssdw %xmm8, %xmm8
packssdw %xmm8, %xmm8
movd %xmm8, %ecx
shrl $0x10, %ecx
testb $0x1, %cl
je 0x9e7a6
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 0x9e7ec
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 0x9e809
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 0x9e850
movw $0x0, -0xc(%rdi,%rax,4)
packssdw %xmm8, %xmm8
packssdw %xmm8, %xmm8
pextrw $0x5, %xmm8, %ecx
testb $0x1, %cl
je 0x9e86c
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 0x9e8b2
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 0x9e8ce
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 0x9e742
movdqa 0x5962a(%rip), %xmm2    # 0xf7f20
movdqa 0x59632(%rip), %xmm3    # 0xf7f30
movdqa 0x4e7da(%rip), %xmm4    # 0xed0e0
movdqa 0x4e7e2(%rip), %xmm5    # 0xed0f0
xorl %eax, %eax
movdqa 0x59648(%rip), %xmm6    # 0xf7f60
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 0x9e96c
movw $0x0, 0x9c8(%rdi,%rax,4)
packssdw %xmm9, %xmm9
packssdw %xmm9, %xmm9
movd %xmm9, %ecx
shrl $0x10, %ecx
testb $0x1, %cl
je 0x9e98d
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 0x9e9d6
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 0x9e9f6
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 0x9ea40
movw $0x0, 0x9d8(%rdi,%rax,4)
packssdw %xmm9, %xmm9
packssdw %xmm9, %xmm9
pextrw $0x5, %xmm9, %ecx
testb $0x1, %cl
je 0x9ea5f
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 0x9eaa8
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 0x9eac8
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 0x9e91d
movdqa 0x4e5f2(%rip), %xmm1    # 0xed0e0
movdqa 0x4e5fa(%rip), %xmm2    # 0xed0f0
xorl %eax, %eax
movdqa 0x59470(%rip), %xmm3    # 0xf7f70
pshufd $0xf5, %xmm3, %xmm4     # xmm4 = xmm3[1,1,3,3]
movdqa 0x4e613(%rip), %xmm5    # 0xed120
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 0x9eb3d
movw $0x0, 0xabc(%rdi,%rax,4)
pextrw $0x4, %xmm6, %ecx
testb $0x1, %cl
je 0x9eb51
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 0x9eb82
movw $0x0, 0xac4(%rdi,%rax,4)
pextrw $0x4, %xmm6, %ecx
testb $0x1, %cl
je 0x9eb96
movw $0x0, 0xac8(%rdi,%rax,4)
addq $0x4, %rax
paddq %xmm5, %xmm2
paddq %xmm5, %xmm1
cmpq $0x14, %rax
jne 0x9eb0d
movw $0x1, 0x4d4(%rdi)
xorl %eax, %eax
movl %eax, 0x170c(%rdi)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x1718(%rdi)
movl %eax, 0x1728(%rdi)
retq