// File: /workspace/github_c_makefile_star2_O0/justy989[P]ce/ce_clangd.c
// Function: clangd_request_goto
static bool _clangd_request_goto(CeClangD_t* clangd, CeBuffer_t* buffer, CePoint_t point,
                                 const char* method){
     char file_uri[MAX_PATH_LEN + 1];
     if(!_calculate_filename_uri(buffer->name, file_uri, MAX_PATH_LEN)){
          return false;
     }

     CeJsonObj_t obj = {};
     ce_json_obj_set_string(&obj, "jsonrpc", "2.0");
     ce_json_obj_set_number(&obj, "id", clangd->current_request_id);
     ce_json_obj_set_string(&obj, "method", method);

     CeJsonObj_t param_obj = {};

     CeJsonObj_t pos_obj = {};
     ce_json_obj_set_number(&pos_obj, "line", point.y);
     ce_json_obj_set_number(&pos_obj, "character", point.x);
     ce_json_obj_set_obj(&param_obj, "position", &pos_obj);

     CeJsonObj_t text_document_obj = {};
     ce_json_obj_set_string(&text_document_obj, "uri", file_uri);
     ce_json_obj_set_obj(&param_obj, "textDocument", &text_document_obj);

     ce_json_obj_set_obj(&obj, "params", &param_obj);

     bool result = _send_json_obj(&obj, &clangd->proc);
     ce_json_obj_free(&text_document_obj);
     ce_json_obj_free(&pos_obj);
     ce_json_obj_free(&param_obj);
     ce_json_obj_free(&obj);
     return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x490, %rsp            # imm = 0x490
movq %rdx, -0x18(%rbp)
movq %rcx, -0x10(%rbp)
movq %rdi, -0x20(%rbp)
movq %rsi, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq -0x440(%rbp), %rsi
movl $0x400, %edx            # imm = 0x400
callq 0x1a990
testb $0x1, %al
jne 0x1aee5
movb $0x0, -0x1(%rbp)
jmp 0x1b070
leaq -0x450(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0xd290
leaq -0x450(%rbp), %rdi
leaq 0x290c5(%rip), %rsi     # 0x43fcb
leaq 0x290c6(%rip), %rdx     # 0x43fd3
callq 0x25860
movq -0x20(%rbp), %rax
cvtsi2sdq 0x30(%rax), %xmm0
leaq -0x450(%rbp), %rdi
leaq 0x2a0ec(%rip), %rsi     # 0x45016
callq 0x25920
movq -0x30(%rbp), %rdx
leaq -0x450(%rbp), %rdi
leaq 0x28d30(%rip), %rsi     # 0x43c71
callq 0x25860
leaq -0x460(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0xd290
leaq -0x470(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0xd290
cvtsi2sdq -0x10(%rbp), %xmm0
leaq -0x470(%rbp), %rdi
leaq 0x27cee(%rip), %rsi     # 0x42c6e
callq 0x25920
cvtsi2sdq -0x18(%rbp), %xmm0
leaq -0x470(%rbp), %rdi
leaq 0x28c0a(%rip), %rsi     # 0x43ba3
callq 0x25920
leaq -0x460(%rbp), %rdi
leaq 0x291a0(%rip), %rsi     # 0x4414c
leaq -0x470(%rbp), %rdx
callq 0x25560
leaq -0x480(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0xd290
leaq -0x440(%rbp), %rdx
leaq -0x480(%rbp), %rdi
leaq 0x28bd4(%rip), %rsi     # 0x43bb4
callq 0x25860
leaq -0x460(%rbp), %rdi
leaq 0x2906a(%rip), %rsi     # 0x4405d
leaq -0x480(%rbp), %rdx
callq 0x25560
leaq -0x450(%rbp), %rdi
leaq 0x28ba0(%rip), %rsi     # 0x43bad
leaq -0x460(%rbp), %rdx
callq 0x25560
movq -0x20(%rbp), %rsi
addq $0x8, %rsi
leaq -0x450(%rbp), %rdi
callq 0x1a680
andb $0x1, %al
movb %al, -0x481(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x25b50
leaq -0x470(%rbp), %rdi
callq 0x25b50
leaq -0x460(%rbp), %rdi
callq 0x25b50
leaq -0x450(%rbp), %rdi
callq 0x25b50
movb -0x481(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x490, %rsp            # imm = 0x490
popq %rbp
retq
nop