// File: /workspace/github_c_makefile_star2_O0/justy989[P]ce/ce_commands.c
// Function: build_string_from_command_args
static char* build_string_from_command_args(CeCommand_t* command){
     char buffer[256];
     int64_t buffer_consumed = 0;

     char* result = NULL;
     for(int64_t i = 0; i < command->arg_count; i++){
          int rc = 0;

          switch(command->args[i].type){
          default:
              return result;
          case CE_COMMAND_ARG_INTEGER:
               rc = snprintf(buffer + buffer_consumed, 256 - buffer_consumed, "%" PRId64 " ", command->args[i].integer);
               break;
          case CE_COMMAND_ARG_DECIMAL:
               rc = snprintf(buffer + buffer_consumed, 256 - buffer_consumed, "%f ", command->args[i].decimal);
               break;
          case CE_COMMAND_ARG_STRING:
               rc = snprintf(buffer + buffer_consumed, 256 - buffer_consumed, "%s ", command->args[i].string);
               break;
          }

          if(rc < 0){
               ce_log("snprintf() failed: %s\n", strerror(errno));
               return result;
          }

          buffer_consumed += rc;
     }

     result = strdup(buffer);

     // strip off extra space at the end
     size_t len = strlen(result);
     if(len >= 1) result[len - 1] = 0;

     return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x10(%rbp)
movq $0x0, -0x118(%rbp)
movq $0x0, -0x120(%rbp)
movq $0x0, -0x128(%rbp)
movq -0x128(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jge 0x20ced
movl $0x0, -0x12c(%rbp)
movq -0x10(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x128(%rbp), %rcx
shlq $0x4, %rcx
movl (%rax,%rcx), %eax
movl %eax, -0x13c(%rbp)
testl %eax, %eax
je 0x20ba5
jmp 0x20b77
movl -0x13c(%rbp), %eax
subl $0x1, %eax
je 0x20bf5
jmp 0x20b84
movl -0x13c(%rbp), %eax
subl $0x2, %eax
je 0x20c43
jmp 0x20b95
movq -0x120(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x20d3e
leaq -0x110(%rbp), %rdi
addq -0x118(%rbp), %rdi
movl $0x100, %esi            # imm = 0x100
subq -0x118(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x128(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x22ff0(%rip), %rdx     # 0x43bd3
movb $0x0, %al
callq 0xd250
movl %eax, -0x12c(%rbp)
jmp 0x20c8e
leaq -0x110(%rbp), %rdi
addq -0x118(%rbp), %rdi
movl $0x100, %esi            # imm = 0x100
subq -0x118(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x128(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
leaq 0x23912(%rip), %rdx     # 0x44546
movb $0x1, %al
callq 0xd250
movl %eax, -0x12c(%rbp)
jmp 0x20c8e
leaq -0x110(%rbp), %rdi
addq -0x118(%rbp), %rdi
movl $0x100, %esi            # imm = 0x100
subq -0x118(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x200(%rax), %rax
movq -0x128(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x23959(%rip), %rdx     # 0x445da
movb $0x0, %al
callq 0xd250
movl %eax, -0x12c(%rbp)
cmpl $0x0, -0x12c(%rbp)
jge 0x20cc1
callq 0xd0a0
movl (%rax), %edi
callq 0xd630
movq %rax, %rsi
leaq 0x2389d(%rip), %rdi     # 0x4454a
movb $0x0, %al
callq 0xd8f0
movq -0x120(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x20d3e
movslq -0x12c(%rbp), %rax
addq -0x118(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x128(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x128(%rbp)
jmp 0x20b30
leaq -0x110(%rbp), %rdi
callq 0xd620
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rdi
callq 0xd200
movq %rax, -0x138(%rbp)
cmpq $0x1, -0x138(%rbp)
jb 0x20d33
movq -0x120(%rbp), %rax
movq -0x138(%rbp), %rcx
subq $0x1, %rcx
movb $0x0, (%rax,%rcx)
movq -0x120(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopl (%rax,%rax)