// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_cday.c
// Function: bcore_cday_ymd_s_check_plausibility
void bcore_cday_ymd_s_check_plausibility( const bcore_cday_ymd_s* o )
{
    ASSERT( ( o->y >= 1900 ) && ( o->y <= 2100 ) );
    ASSERT( o->m >= 1 && o->m <= 12 );
    ASSERT( o->d >= 1 && o->d <= 31 );

    if( o->y == 1900 ) ASSERT( o->m >= 3 );
    if( o->y == 2100 ) ASSERT( o->m <  3 );

    switch( o->m )
    {
        case  1: ASSERT( o->d <= 31 ); break;
        case  2: ASSERT( o->d <= 29 ); break;
        case  3: ASSERT( o->d <= 31 ); break;
        case  4: ASSERT( o->d <= 30 ); break;
        case  5: ASSERT( o->d <= 31 ); break;
        case  6: ASSERT( o->d <= 30 ); break;
        case  7: ASSERT( o->d <= 31 ); break;
        case  8: ASSERT( o->d <= 31 ); break;
        case  9: ASSERT( o->d <= 30 ); break;
        case 10: ASSERT( o->d <= 31 ); break;
        case 11: ASSERT( o->d <= 30 ); break;
        case 12: ASSERT( o->d <= 31 ); break;
        default: break;
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl $0xfffff894, %eax       # imm = 0xFFFFF894
addl 0x8(%rdi), %eax
cmpl $0xc9, %eax
jb 0xbceec
leaq 0x7077d(%rip), %rdi     # 0x12d647
leaq 0x85ee7(%rip), %rsi     # 0x142db8
leaq 0x85f05(%rip), %rdx     # 0x142ddd
leaq 0x85f22(%rip), %rcx     # 0x142e01
movl $0x18, %r8d
xorl %eax, %eax
callq 0xbe4ef
movl 0xc(%rbx), %eax
decl %eax
cmpl $0xc, %eax
jb 0xbcf1f
leaq 0x7074a(%rip), %rdi     # 0x12d647
leaq 0x85f0a(%rip), %rsi     # 0x142e0e
leaq 0x85ed2(%rip), %rdx     # 0x142ddd
leaq 0x85eef(%rip), %rcx     # 0x142e01
movl $0x19, %r8d
xorl %eax, %eax
callq 0xbe4ef
movl 0x10(%rbx), %eax
decl %eax
cmpl $0x1f, %eax
jb 0xbcf52
leaq 0x70717(%rip), %rdi     # 0x12d647
leaq 0x85eef(%rip), %rsi     # 0x142e26
leaq 0x85e9f(%rip), %rdx     # 0x142ddd
leaq 0x85ebc(%rip), %rcx     # 0x142e01
movl $0x1a, %r8d
xorl %eax, %eax
callq 0xbe4ef
movl 0x8(%rbx), %ecx
movl 0xc(%rbx), %eax
cmpl $0x76c, %ecx            # imm = 0x76C
jne 0xbcf94
cmpl $0x2, %eax
jg 0xbcfd3
leaq 0x706db(%rip), %rdi     # 0x12d647
leaq 0x85ecb(%rip), %rsi     # 0x142e3e
leaq 0x85e63(%rip), %rdx     # 0x142ddd
leaq 0x85e80(%rip), %rcx     # 0x142e01
movl $0x1c, %r8d
xorl %eax, %eax
callq 0xbe4ef
movl 0x8(%rbx), %ecx
movl 0xc(%rbx), %eax
cmpl $0x834, %ecx            # imm = 0x834
setne %cl
cmpl $0x3, %eax
setl %dl
orb %cl, %dl
jne 0xbcfd3
leaq 0x70699(%rip), %rdi     # 0x12d647
leaq 0x85e93(%rip), %rsi     # 0x142e48
leaq 0x85e21(%rip), %rdx     # 0x142ddd
leaq 0x85e3e(%rip), %rcx     # 0x142e01
movl $0x1d, %r8d
xorl %eax, %eax
callq 0xbe4ef
movl 0xc(%rbx), %eax
decl %eax
cmpl $0xb, %eax
ja 0xbd1fa
leaq 0x85d2b(%rip), %rcx     # 0x142d10
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x70648(%rip), %rdi     # 0x12d647
leaq 0x85e2d(%rip), %rsi     # 0x142e33
leaq 0x85dd0(%rip), %rdx     # 0x142ddd
leaq 0x85ded(%rip), %rcx     # 0x142e01
movl $0x21, %r8d
jmp 0xbd21e
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x70617(%rip), %rdi     # 0x12d647
leaq 0x85dfc(%rip), %rsi     # 0x142e33
leaq 0x85d9f(%rip), %rdx     # 0x142ddd
leaq 0x85dbc(%rip), %rcx     # 0x142e01
movl $0x2c, %r8d
jmp 0xbd21e
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x705e6(%rip), %rdi     # 0x12d647
leaq 0x85dcb(%rip), %rsi     # 0x142e33
leaq 0x85d6e(%rip), %rdx     # 0x142ddd
leaq 0x85d8b(%rip), %rcx     # 0x142e01
movl $0x25, %r8d
jmp 0xbd21e
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x705b5(%rip), %rdi     # 0x12d647
leaq 0x85d9a(%rip), %rsi     # 0x142e33
leaq 0x85d3d(%rip), %rdx     # 0x142ddd
leaq 0x85d5a(%rip), %rcx     # 0x142e01
movl $0x2a, %r8d
jmp 0xbd21e
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x70584(%rip), %rdi     # 0x12d647
leaq 0x85d69(%rip), %rsi     # 0x142e33
leaq 0x85d0c(%rip), %rdx     # 0x142ddd
leaq 0x85d29(%rip), %rcx     # 0x142e01
movl $0x23, %r8d
jmp 0xbd21e
cmpl $0x1f, 0x10(%rbx)
jl 0xbd1fa
leaq 0x70553(%rip), %rdi     # 0x12d647
leaq 0x85d61(%rip), %rsi     # 0x142e5c
leaq 0x85cdb(%rip), %rdx     # 0x142ddd
leaq 0x85cf8(%rip), %rcx     # 0x142e01
movl $0x24, %r8d
jmp 0xbd21e
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x70522(%rip), %rdi     # 0x12d647
leaq 0x85d07(%rip), %rsi     # 0x142e33
leaq 0x85caa(%rip), %rdx     # 0x142ddd
leaq 0x85cc7(%rip), %rcx     # 0x142e01
movl $0x28, %r8d
jmp 0xbd21e
cmpl $0x1e, 0x10(%rbx)
jl 0xbd1fa
leaq 0x704f1(%rip), %rdi     # 0x12d647
leaq 0x85cf4(%rip), %rsi     # 0x142e51
leaq 0x85c79(%rip), %rdx     # 0x142ddd
leaq 0x85c96(%rip), %rcx     # 0x142e01
movl $0x22, %r8d
jmp 0xbd21e
cmpl $0x1f, 0x10(%rbx)
jl 0xbd1fa
leaq 0x704c4(%rip), %rdi     # 0x12d647
leaq 0x85cd2(%rip), %rsi     # 0x142e5c
leaq 0x85c4c(%rip), %rdx     # 0x142ddd
leaq 0x85c69(%rip), %rcx     # 0x142e01
movl $0x26, %r8d
jmp 0xbd21e
cmpl $0x20, 0x10(%rbx)
jl 0xbd1fa
leaq 0x7049a(%rip), %rdi     # 0x12d647
leaq 0x85c7f(%rip), %rsi     # 0x142e33
leaq 0x85c22(%rip), %rdx     # 0x142ddd
leaq 0x85c3f(%rip), %rcx     # 0x142e01
movl $0x27, %r8d
jmp 0xbd21e
cmpl $0x1f, 0x10(%rbx)
jl 0xbd1fa
leaq 0x70470(%rip), %rdi     # 0x12d647
leaq 0x85c7e(%rip), %rsi     # 0x142e5c
leaq 0x85bf8(%rip), %rdx     # 0x142ddd
leaq 0x85c15(%rip), %rcx     # 0x142e01
movl $0x2b, %r8d
jmp 0xbd21e
cmpl $0x1f, 0x10(%rbx)
jge 0xbd1fc
popq %rbx
retq
leaq 0x70444(%rip), %rdi     # 0x12d647
leaq 0x85c52(%rip), %rsi     # 0x142e5c
leaq 0x85bcc(%rip), %rdx     # 0x142ddd
leaq 0x85be9(%rip), %rcx     # 0x142e01
movl $0x29, %r8d
xorl %eax, %eax
popq %rbx
jmp 0xbe4ef