// File: /workspace/github_cpp_makefile_star2_O3/suhasjains[P]AMR-Solver/src/ghost.cpp
// Function: amrsolver::prolongate_for_multilevel_ghost_exchange_at(myOctree::Octree*, myOctree::Octree*, int, int, int, int, int, int, int, int, int, int)
void prolongate_for_multilevel_ghost_exchange_at(Octree* node, Octree* par_neigh, int l, int i, int j, int k, int iv, int jv, int kv, int loc_x, int loc_y, int loc_z) {

	Block* b =node->get_block_data(); 

	if(loc_x==1) {
    		if(loc_y==1) {
                  	if(loc_z==1) {
                       		prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,b->iNx/2,b->iNy/2,b->iNz/2);
      	           	}
         		else if(loc_z==0) {
                         	prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,b->iNx/2,b->iNy/2,0);
                 	}
          	}
                else if(loc_y==0) {
                	if(loc_z==1) {
                       		prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,b->iNx/2,0,b->iNz/2);
                   	}
                 	else if(loc_z==0) {
                        	prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,b->iNx/2,0,0);
                    	}
      		}
        }
	if(loc_x==0) {
            	if(loc_y==1) {
               		if(loc_z==1) {
                    		prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,0,b->iNy/2,b->iNz/2);
                   	}
          		else if(loc_z==0) {
                        	prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,0,b->iNy/2,0);
                  	}
            	}
    		else if(loc_y==0) {
         		if(loc_z==1) {
          			prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,0,0,b->iNz/2);
            		}
           		else if(loc_z==0) {
                  		prolongate_multilevel_ghost_exchange_for_child(node, par_neigh,l,i,j,k,iv, jv, kv,0,0,0);
           		}
    		}
        }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r9d, -0x38(%rbp)
movl %r8d, -0x34(%rbp)
movl %ecx, -0x30(%rbp)
movl %edx, -0x2c(%rbp)
movq %rsi, %r13
movq %rdi, %rbx
movl 0x38(%rbp), %r14d
movl 0x30(%rbp), %r15d
movl 0x28(%rbp), %r12d
callq 0x418c
testl %r12d, %r12d
je 0x8c73
cmpl $0x1, %r12d
jne 0x8d82
testl %r15d, %r15d
je 0x8ce4
cmpl $0x1, %r15d
jne 0x8d82
testl %r14d, %r14d
je 0x8d8b
cmpl $0x1, %r14d
jne 0x8d82
leaq 0xca47(%rip), %rax      # 0x15668
movl (%rax), %ecx
movl %ecx, %eax
shrl $0x1f, %eax
addl %ecx, %eax
sarl %eax
leaq 0xca39(%rip), %rcx      # 0x1566c
movl (%rcx), %ecx
movl %ecx, %r10d
shrl $0x1f, %r10d
addl %ecx, %r10d
sarl %r10d
leaq 0xca27(%rip), %rcx      # 0x15670
movl (%rcx), %ecx
movl %ecx, %r11d
shrl $0x1f, %r11d
addl %ecx, %r11d
sarl %r11d
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %r11
jmp 0x8dfe
testl %r15d, %r15d
je 0x8d40
cmpl $0x1, %r15d
jne 0x8d82
testl %r14d, %r14d
je 0x8dd1
cmpl $0x1, %r14d
jne 0x8d82
leaq 0xc9cc(%rip), %rax      # 0x1566c
movl (%rax), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
leaq 0xc9ba(%rip), %rax      # 0x15670
movl (%rax), %eax
movl %eax, %r11d
shrl $0x1f, %r11d
addl %eax, %r11d
sarl %r11d
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %r11
pushq %r10
pushq $0x0
jmp 0x8e4d
testl %r14d, %r14d
je 0x8e02
cmpl $0x1, %r14d
jne 0x8d82
leaq 0xc96a(%rip), %rax      # 0x15668
movl (%rax), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
leaq 0xc95c(%rip), %rax      # 0x15670
movl (%rax), %eax
movl %eax, %r11d
shrl $0x1f, %r11d
addl %eax, %r11d
sarl %r11d
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %r11
pushq $0x0
jmp 0x8e30
testl %r14d, %r14d
je 0x8e34
cmpl $0x1, %r14d
jne 0x8d82
leaq 0xc91a(%rip), %rax      # 0x15670
movl (%rax), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
xorl %eax, %eax
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %r10
jmp 0x8e4b
addq $0x18, %rsp
jmp 0x8e62
leaq 0xc8d6(%rip), %rax      # 0x15668
movl (%rax), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
leaq 0xc8c4(%rip), %rax      # 0x1566c
movl (%rax), %eax
movl %eax, %r11d
shrl $0x1f, %r11d
addl %eax, %r11d
sarl %r11d
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq $0x0
pushq %r11
jmp 0x8e30
leaq 0xc894(%rip), %rax      # 0x1566c
movl (%rax), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
xorl %eax, %eax
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %rax
pushq %r10
jmp 0x8e4c
leaq 0xc85f(%rip), %rax      # 0x15668
movl (%rax), %eax
movl %eax, %r10d
shrl $0x1f, %r10d
addl %eax, %r10d
sarl %r10d
xorl %eax, %eax
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %rax
pushq %rax
pushq %r10
jmp 0x8e4d
xorl %eax, %eax
movq %rbx, %rdi
movq %r13, %rsi
movl -0x2c(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl -0x38(%rbp), %r9d
pushq %rax
pushq %rax
pushq %rax
movl 0x20(%rbp), %eax
pushq %rax
movl 0x18(%rbp), %eax
pushq %rax
movl 0x10(%rbp), %eax
pushq %rax
callq 0x872c
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq