// File: chuckwolber[P]Cube/test/../Cube.cpp
// Function: Cube::initializeLayers()
void Cube::initializeLayers() {
    switch (fInitColor) {
        case CubieColor::BLUE:
            uInitColor = CubieColor::WHITE;
            lInitColor = CubieColor::RED;
            rInitColor = CubieColor::ORANGE;
            bInitColor = CubieColor::GREEN;
            dInitColor = CubieColor::YELLOW;
            break;
        case CubieColor::GREEN:
            uInitColor = CubieColor::WHITE;
            lInitColor = CubieColor::ORANGE;
            rInitColor = CubieColor::RED;
            bInitColor = CubieColor::BLUE;
            dInitColor = CubieColor::YELLOW;
            break;
        case CubieColor::ORANGE:
            uInitColor = CubieColor::WHITE;
            lInitColor = CubieColor::BLUE;
            rInitColor = CubieColor::GREEN;
            bInitColor = CubieColor::RED;
            dInitColor = CubieColor::YELLOW;
            break;
        case CubieColor::RED:
            uInitColor = CubieColor::WHITE;
            lInitColor = CubieColor::GREEN;
            rInitColor = CubieColor::BLUE;
            bInitColor = CubieColor::ORANGE;
            dInitColor = CubieColor::YELLOW;
            break;
        case CubieColor::WHITE:
            uInitColor = CubieColor::GREEN;
            lInitColor = CubieColor::RED;
            rInitColor = CubieColor::ORANGE;
            bInitColor = CubieColor::YELLOW;
            dInitColor = CubieColor::BLUE;
            break;
        case CubieColor::YELLOW:
            uInitColor = CubieColor::GREEN;
            lInitColor = CubieColor::ORANGE;
            rInitColor = CubieColor::RED;
            bInitColor = CubieColor::WHITE;
            dInitColor = CubieColor::BLUE;
            break;
        default:
            break;
    }

    initializeLayer(Layer::U, uInitColor);
    initializeLayer(Layer::L, lInitColor);
    initializeLayer(Layer::F, fInitColor);
    initializeLayer(Layer::R, rInitColor);
    initializeLayer(Layer::B, bInitColor);
    initializeLayer(Layer::D, dInitColor);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movsbl (%rax), %eax
addl $-0x62, %eax
movl %eax, %ecx
movq %rcx, -0x10(%rbp)
subl $0x17, %eax
ja 0x8dbc
movq -0x10(%rbp), %rax
leaq 0x7520(%rip), %rcx      # 0x10234
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rax
movb $0x77, 0x1(%rax)
movb $0x72, 0x3(%rax)
movb $0x6f, 0x4(%rax)
movb $0x67, 0x5(%rax)
movb $0x79, 0x2(%rax)
jmp 0x8dbe
movq -0x18(%rbp), %rax
movb $0x77, 0x1(%rax)
movb $0x6f, 0x3(%rax)
movb $0x72, 0x4(%rax)
movb $0x62, 0x5(%rax)
movb $0x79, 0x2(%rax)
jmp 0x8dbe
movq -0x18(%rbp), %rax
movb $0x77, 0x1(%rax)
movb $0x62, 0x3(%rax)
movb $0x67, 0x4(%rax)
movb $0x72, 0x5(%rax)
movb $0x79, 0x2(%rax)
jmp 0x8dbe
movq -0x18(%rbp), %rax
movb $0x77, 0x1(%rax)
movb $0x67, 0x3(%rax)
movb $0x62, 0x4(%rax)
movb $0x6f, 0x5(%rax)
movb $0x79, 0x2(%rax)
jmp 0x8dbe
movq -0x18(%rbp), %rax
movb $0x67, 0x1(%rax)
movb $0x72, 0x3(%rax)
movb $0x6f, 0x4(%rax)
movb $0x79, 0x5(%rax)
movb $0x62, 0x2(%rax)
jmp 0x8dbe
movq -0x18(%rbp), %rax
movb $0x67, 0x1(%rax)
movb $0x6f, 0x3(%rax)
movb $0x72, 0x4(%rax)
movb $0x77, 0x5(%rax)
movb $0x62, 0x2(%rax)
jmp 0x8dbe
jmp 0x8dbe
movq -0x18(%rbp), %rax
movl $0x1, %esi
movq %rax, %rdi
movsbl 0x1(%rax), %edx
callq 0x8ed0
movq -0x18(%rbp), %rax
movl $0x4, %esi
movq %rax, %rdi
movsbl 0x3(%rax), %edx
callq 0x8ed0
movq -0x18(%rbp), %rax
movl $0x5, %esi
movq %rax, %rdi
movsbl (%rax), %edx
callq 0x8ed0
movq -0x18(%rbp), %rax
movl $0x6, %esi
movq %rax, %rdi
movsbl 0x4(%rax), %edx
callq 0x8ed0
movq -0x18(%rbp), %rax
movl $0x7, %esi
movq %rax, %rdi
movsbl 0x5(%rax), %edx
callq 0x8ed0
movq -0x18(%rbp), %rax
movl $0x9, %esi
movq %rax, %rdi
movsbl 0x2(%rax), %edx
callq 0x8ed0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)