// File: /workspace/github_c_makefile_star2_O0/lengjingzju[P]json/jnum.c
// Function: fill_1_4_digits
static inline int32_t fill_1_4_digits(char *buffer, uint32_t digits, int32_t *ptz)
{
    char *s = buffer;

    if (digits < 100) {
        if (digits >= 10) {
            *ptz = tz_100_lut[digits];
            memcpy(s, &ch_100_lut[digits<<1], 2);
            s += 2;
        } else {
            *ptz = 0;
            *s++ = digits + '0';
        }
    } else {
        uint32_t q = FAST_DIV100(digits);
        uint32_t r = digits - q * 100;

        if (q >= 10) {
            *ptz = tz_100_lut[q];
            memcpy(s, &ch_100_lut[q<<1], 2);
            s += 2;
        } else {
            *ptz = 0;
            *s++ = q + '0';
        }

        if (!r) {
            *ptz += 2;
            memset(s, '0', 2);
            s += 2;
        } else {
            *ptz = tz_100_lut[r];
            memcpy(s, &ch_100_lut[r<<1], 2);
            s += 2;
        }
    }

    return (int32_t)(s - buffer);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl %esi, 0x1c(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpl $0x64, 0x1c(%rsp)
jae 0xeadb
cmpl $0xa, 0x1c(%rsp)
jb 0xeaaf
movl 0x1c(%rsp), %eax
movl %eax, %ecx
leaq 0x26c9(%rip), %rax      # 0x11140
movzbl (%rax,%rcx), %ecx
movq 0x10(%rsp), %rax
movl %ecx, (%rax)
movq 0x8(%rsp), %rax
movl 0x1c(%rsp), %ecx
shll %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x25d8(%rip), %rcx      # 0x11070
movw (%rcx,%rdx), %cx
movw %cx, (%rax)
movq 0x8(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0xead6
movq 0x10(%rsp), %rax
movl $0x0, (%rax)
movl 0x1c(%rsp), %eax
addl $0x30, %eax
movb %al, %cl
movq 0x8(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rsp)
movb %cl, (%rax)
jmp 0xebe4
imull $0x147b, 0x1c(%rsp), %eax # imm = 0x147B
shrl $0x13, %eax
movl %eax, 0x4(%rsp)
movl 0x1c(%rsp), %eax
imull $0x64, 0x4(%rsp), %ecx
subl %ecx, %eax
movl %eax, (%rsp)
cmpl $0xa, 0x4(%rsp)
jb 0xeb44
movl 0x4(%rsp), %eax
movl %eax, %ecx
leaq 0x2634(%rip), %rax      # 0x11140
movzbl (%rax,%rcx), %ecx
movq 0x10(%rsp), %rax
movl %ecx, (%rax)
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
shll %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x2543(%rip), %rcx      # 0x11070
movw (%rcx,%rdx), %cx
movw %cx, (%rax)
movq 0x8(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0xeb6b
movq 0x10(%rsp), %rax
movl $0x0, (%rax)
movl 0x4(%rsp), %eax
addl $0x30, %eax
movb %al, %cl
movq 0x8(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rsp)
movb %cl, (%rax)
cmpl $0x0, (%rsp)
jne 0xeba1
movq 0x10(%rsp), %rax
movl (%rax), %ecx
addl $0x2, %ecx
movl %ecx, (%rax)
movq 0x8(%rsp), %rdi
movl $0x30, %esi
movl $0x2, %edx
callq 0x10f0
movq 0x8(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0xebe2
movl (%rsp), %eax
movl %eax, %ecx
leaq 0x2593(%rip), %rax      # 0x11140
movzbl (%rax,%rcx), %ecx
movq 0x10(%rsp), %rax
movl %ecx, (%rax)
movq 0x8(%rsp), %rax
movl (%rsp), %ecx
shll %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x24a3(%rip), %rcx      # 0x11070
movw (%rcx,%rdx), %cx
movw %cx, (%rax)
movq 0x8(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x8(%rsp)
jmp 0xebe4
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
subq %rcx, %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)