// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
movq %rdi, %rbx
movzbl (%rdi), %eax
cmpl $0x62, %eax
je 0x445f
cmpl $0x67, %eax
je 0x4452
cmpl $0x6f, %eax
je 0x4424
cmpl $0x72, %eax
je 0x4440
cmpl $0x77, %eax
je 0x4431
cmpl $0x79, %eax
jne 0x444d
movb $0x77, 0x5(%rbx)
movl $0x726f6267, 0x1(%rbx)  # imm = 0x726F6267
jmp 0x443c
movb $0x72, 0x5(%rbx)
movl $0x67627977, 0x1(%rbx)  # imm = 0x67627977
jmp 0x446a
movb $0x79, 0x5(%rbx)
movl $0x6f726267, 0x1(%rbx)  # imm = 0x6F726267
movb $0x67, %al
jmp 0x446c
movb $0x6f, 0x5(%rbx)
movl $0x62677977, 0x1(%rbx)  # imm = 0x62677977
jmp 0x446a
movb 0x1(%rbx), %al
jmp 0x446c
movb $0x62, 0x5(%rbx)
movl $0x726f7977, 0x1(%rbx)  # imm = 0x726F7977
jmp 0x446a
movb $0x67, 0x5(%rbx)
movl $0x6f727977, 0x1(%rbx)  # imm = 0x6F727977
movb $0x77, %al
movsbl %al, %edx
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x4510
movsbl 0x3(%rbx), %edx
pushq $0x4
popq %rsi
movq %rbx, %rdi
callq 0x4510
movsbl (%rbx), %edx
pushq $0x5
popq %rsi
movq %rbx, %rdi
callq 0x4510
movsbl 0x4(%rbx), %edx
pushq $0x6
popq %rsi
movq %rbx, %rdi
callq 0x4510
movsbl 0x5(%rbx), %edx
pushq $0x7
popq %rsi
movq %rbx, %rdi
callq 0x4510
movsbl 0x2(%rbx), %edx
pushq $0x9
popq %rsi
movq %rbx, %rdi
popq %rbx
jmp 0x4510
nop