// File: /workspace/github_cpp_makefile_star2_O3/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 $0x71, %eax
jg 0x42f4
cmpl $0x62, %eax
je 0x4310
cmpl $0x67, %eax
je 0x432f
cmpl $0x6f, %eax
jne 0x432a
movb $0x72, 0x5(%rbx)
movl $0x67627977, 0x1(%rbx)  # imm = 0x67627977
jmp 0x433a
cmpl $0x72, %eax
je 0x431d
cmpl $0x77, %eax
je 0x433e
cmpl $0x79, %eax
jne 0x432a
movb $0x77, 0x5(%rbx)
movl $0x726f6267, 0x1(%rbx)  # imm = 0x726F6267
jmp 0x4349
movb $0x67, 0x5(%rbx)
movl $0x6f727977, 0x1(%rbx)  # imm = 0x6F727977
jmp 0x433a
movb $0x6f, 0x5(%rbx)
movl $0x62677977, 0x1(%rbx)  # imm = 0x62677977
jmp 0x433a
movb 0x1(%rbx), %al
jmp 0x434b
movb $0x62, 0x5(%rbx)
movl $0x726f7977, 0x1(%rbx)  # imm = 0x726F7977
movb $0x77, %al
jmp 0x434b
movb $0x79, 0x5(%rbx)
movl $0x6f726267, 0x1(%rbx)  # imm = 0x6F726267
movb $0x67, %al
movsbl %al, %edx
movq %rbx, %rdi
movl $0x1, %esi
callq 0x43fa
movsbl 0x3(%rbx), %edx
movq %rbx, %rdi
movl $0x4, %esi
callq 0x43fa
movsbl (%rbx), %edx
movq %rbx, %rdi
movl $0x5, %esi
callq 0x43fa
movsbl 0x4(%rbx), %edx
movq %rbx, %rdi
movl $0x6, %esi
callq 0x43fa
movsbl 0x5(%rbx), %edx
movq %rbx, %rdi
movl $0x7, %esi
callq 0x43fa
movsbl 0x2(%rbx), %edx
movq %rbx, %rdi
movl $0x9, %esi
popq %rbx
jmp 0x43fa