// File: /workspace/github_c_makefile_star2_O0/madler[P]pigz/pigz.c
// Function: append_len
local void append_len(struct job *job, size_t len) {
    struct space *lens;

    assert(len < 539000896UL);
    if (job->lens == NULL)
        job->lens = get_space(&lens_pool);
    lens = job->lens;
    if (lens->size < lens->len + 3)
        grow_space(lens);
    if (len < 64)
        lens->buf[lens->len++] = (unsigned char)(len + 128);
    else if (len < 32832U) {
        len -= 64;
        lens->buf[lens->len++] = (unsigned char)(len >> 8);
        lens->buf[lens->len++] = (unsigned char)len;
    }
    else if (len < 2129984UL) {
        len -= 32832U;
        lens->buf[lens->len++] = (unsigned char)((len >> 16) + 192);
        lens->buf[lens->len++] = (unsigned char)(len >> 8);
        lens->buf[lens->len++] = (unsigned char)len;
    }
    else {
        len -= 2129984UL;
        lens->buf[lens->len++] = (unsigned char)((len >> 24) + 224);
        lens->buf[lens->len++] = (unsigned char)(len >> 16);
        lens->buf[lens->len++] = (unsigned char)(len >> 8);
        lens->buf[lens->len++] = (unsigned char)len;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x20208040, -0x10(%rbp) # imm = 0x20208040
jae 0xeffc
jmp 0xf01b
leaq 0xe8ba(%rip), %rdi      # 0x1d8bd
leaq 0xd240(%rip), %rsi      # 0x1c24a
movl $0x7fa, %edx            # imm = 0x7FA
leaq 0xe8b9(%rip), %rcx      # 0x1d8cf
callq 0x3220
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0xf03d
leaq 0x349cb(%rip), %rdi     # 0x439f8
callq 0xee00
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
addq $0x3, %rcx
cmpq %rcx, %rax
jae 0xf06b
movq -0x18(%rbp), %rdi
callq 0x112c0
cmpq $0x40, -0x10(%rbp)
jae 0xf0a1
movq -0x10(%rbp), %rax
addq $0x80, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
jmp 0xf257
cmpq $0x8040, -0x10(%rbp)    # imm = 0x8040
jae 0xf108
movq -0x10(%rbp), %rax
subq $0x40, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shrq $0x8, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
jmp 0xf255
cmpq $0x208040, -0x10(%rbp)  # imm = 0x208040
jae 0xf1a3
movq -0x10(%rbp), %rax
subq $0x8040, %rax           # imm = 0x8040
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shrq $0x10, %rax
addq $0xc0, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x8, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
jmp 0xf253
movq -0x10(%rbp), %rax
subq $0x208040, %rax         # imm = 0x208040
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
shrq $0x18, %rax
addq $0xe0, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x10, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
shrq $0x8, %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movb %dl, (%rax,%rcx)
jmp 0xf255
jmp 0xf257
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)