// File: /workspace/github_c_makefile_star2_O0/justy989[P]ce/ce_layout.c
// Function: resize_opposites_left
static void resize_opposites_left(CeLayout_t* root, CeLayout_t* layout, CeRect_t rect, ResizeRectResult_t* result){
    int64_t bottom_start = layout->view.rect.top;

    for(int64_t i = layout->view.rect.top - 1; i >= rect.top; i--){
         CePoint_t point = {result->adjacent_old_value, i};
         CeLayout_t* adjacent_layout = ce_layout_find_at(root, point);
         if(adjacent_layout && adjacent_layout->view.rect.right == result->adjacent_old_value){
              adjacent_layout->view.rect.right = result->adjacent_new_value;
              i = adjacent_layout->view.rect.top;
              if((adjacent_layout->view.rect.bottom + 1) > bottom_start) bottom_start = adjacent_layout->view.rect.bottom + 1;
         }else{
              break;
         }
    }

    for(int64_t i = bottom_start; i <= rect.bottom; i++){
         CePoint_t point = {result->adjacent_old_value, i};
         CeLayout_t* adjacent_layout = ce_layout_find_at(root, point);
         if(adjacent_layout && adjacent_layout->view.rect.right == result->adjacent_old_value){
              adjacent_layout->view.rect.right = result->adjacent_new_value;
              i = adjacent_layout->view.rect.bottom;
         }else{
              break;
         }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
subq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x68(%rbp), %rcx
movq -0x28(%rbp), %rax
cmpq 0x10(%rcx), %rax
jl 0x29381
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x29d60
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x2936c
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x2936c
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
addq $0x1, %rax
cmpq -0x20(%rbp), %rax
jle 0x2936a
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x2936e
jmp 0x29381
jmp 0x29370
movq -0x28(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x292d8
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x68(%rbp), %rcx
movq -0x48(%rbp), %rax
cmpq 0x18(%rcx), %rax
jg 0x29409
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x29d60
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0x293f7
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x293f7
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x293f9
jmp 0x29409
jmp 0x293fb
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x29389
addq $0x70, %rsp
popq %rbp
retq
nop