// File: /workspace/github_c_makefile_star2_O0/justy989[P]ce/ce_json.c
// Function: value_print
static void _value_print(CeJsonValue_t* value, char* string, PrintState_t* print_state,
                         uint64_t current_indent, uint64_t indent){
     switch(value->type){
     default:
          break;
     case CE_JSON_TYPE_OBJECT:
          _obj_print(&value->obj, string, print_state, current_indent, indent);
          break;
     case CE_JSON_TYPE_ARRAY:
          _array_print(&value->array, string, print_state, current_indent, indent);
          break;
     case CE_JSON_TYPE_STRING:
          _print_state_update(print_state,
                              snprintf(string + print_state->printed, print_state->remaining,
                                       "\"%s\"", value->string));
          break;
     case CE_JSON_TYPE_NUMBER:
          _print_state_update(print_state,
                              snprintf(string + print_state->printed, print_state->remaining,
                                       "%.4f", value->number));
          break;
     case CE_JSON_TYPE_BOOL:
          if(value->boolean){
               _print_state_update(print_state,
                                   snprintf(string + print_state->printed, print_state->remaining, "true"));
          }else{
               _print_state_update(print_state,
                                   snprintf(string + print_state->printed, print_state->remaining, "false"));
          }
          break;
     case CE_JSON_TYPE_NULL:
          _print_state_update(print_state, snprintf(string + print_state->printed, print_state->remaining, "null"));
          break;
     }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x30(%rbp)
subl $0x5, %eax
ja 0x269e3
movq -0x30(%rbp), %rax
leaq 0x1dc72(%rip), %rcx     # 0x4464c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x26b5e
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
callq 0x25c70
jmp 0x26b5e
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
callq 0x26b70
jmp 0x26b5e
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0x1dc85(%rip), %rdx     # 0x446db
movb $0x0, %al
callq 0xd250
movq -0x38(%rbp), %rdi
movslq %eax, %rsi
callq 0x25e40
jmp 0x26b5e
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
leaq 0x1dc47(%rip), %rdx     # 0x446e0
movb $0x1, %al
callq 0xd250
movq -0x40(%rbp), %rdi
movslq %eax, %rsi
callq 0x25e40
jmp 0x26b5e
movq -0x8(%rbp), %rax
testb $0x1, 0x8(%rax)
je 0x26af2
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x1dc08(%rip), %rdx     # 0x446e5
movb $0x0, %al
callq 0xd250
movq -0x48(%rbp), %rdi
movslq %eax, %rsi
callq 0x25e40
jmp 0x26b27
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x1dbd6(%rip), %rdx     # 0x446ea
movb $0x0, %al
callq 0xd250
movq -0x50(%rbp), %rdi
movslq %eax, %rsi
callq 0x25e40
jmp 0x26b5e
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x1dba5(%rip), %rdx     # 0x446f0
movb $0x0, %al
callq 0xd250
movq -0x58(%rbp), %rdi
movslq %eax, %rsi
callq 0x25e40
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)