// File: DoubleString[P]RtConverter/src/Rtklib/binex.cpp
// Function: bamboo::decode_bnx_00(bamboo::raw_t*, unsigned char*, int)
static int decode_bnx_00(raw_t *raw, unsigned char *buff, int len)
{
    const static double gpst0[]={1980,1,6,0,0,0};
    char *msg;
    unsigned char *p=buff;
    unsigned int min,qsec,src,fid;
    int n=6;
    
    min =U4(p); p+=4;
    qsec=U1(p); p+=1;
    src =U1(p); p+=1;
    n+=getbnxi(p,&fid);
    raw->time=timeadd(epoch2time(gpst0),min*60.0+qsec*0.25);
    
    if (raw->outtype) {
        msg=raw->msgtype+strlen(raw->msgtype);
        sprintf(msg," fid=%02X time=%s src=%d",fid,time_str(raw->time,0),src);
    }
    switch (fid) {
        case 0x00: return decode_bnx_00_00(raw,buff+n,len-n);
        case 0x01: return decode_bnx_00_01(raw,buff+n,len-n);
        case 0x02: return decode_bnx_00_02(raw,buff+n,len-n);
        case 0x03: return decode_bnx_00_03(raw,buff+n,len-n);
        case 0x04: return decode_bnx_00_04(raw,buff+n,len-n);
        case 0x05: return decode_bnx_00_05(raw,buff+n,len-n);
        case 0x06: return decode_bnx_00_06(raw,buff+n,len-n);
        case 0x07: return decode_bnx_00_07(raw,buff+n,len-n);
        case 0x08: return decode_bnx_00_08(raw,buff+n,len-n);
        case 0x09: return decode_bnx_00_09(raw,buff+n,len-n);
        case 0x0A: return decode_bnx_00_0a(raw,buff+n,len-n);
        case 0x0B: return decode_bnx_00_0b(raw,buff+n,len-n);
        case 0x0C: return decode_bnx_00_0c(raw,buff+n,len-n);
        case 0x0D: return decode_bnx_00_0d(raw,buff+n,len-n);
        case 0x0E: return decode_bnx_00_0e(raw,buff+n,len-n);
        case 0x0F: return decode_bnx_00_0f(raw,buff+n,len-n);
        case 0x10: return decode_bnx_00_10(raw,buff+n,len-n);
        case 0x11: return decode_bnx_00_11(raw,buff+n,len-n);
        case 0x12: return decode_bnx_00_12(raw,buff+n,len-n);
        case 0x13: return decode_bnx_00_13(raw,buff+n,len-n);
        case 0x14: return decode_bnx_00_14(raw,buff+n,len-n);
        case 0x15: return decode_bnx_00_15(raw,buff+n,len-n);
        case 0x16: return decode_bnx_00_16(raw,buff+n,len-n);
        case 0x17: return decode_bnx_00_17(raw,buff+n,len-n);
        case 0x18: return decode_bnx_00_18(raw,buff+n,len-n);
        case 0x19: return decode_bnx_00_19(raw,buff+n,len-n);
        case 0x1A: return decode_bnx_00_1a(raw,buff+n,len-n);
        case 0x1B: return decode_bnx_00_1b(raw,buff+n,len-n);
        case 0x1C: return decode_bnx_00_1c(raw,buff+n,len-n);
        case 0x1D: return decode_bnx_00_1d(raw,buff+n,len-n);
        case 0x1E: return decode_bnx_00_1e(raw,buff+n,len-n);
        case 0x1F: return decode_bnx_00_1f(raw,buff+n,len-n);
        case 0x20: return decode_bnx_00_20(raw,buff+n,len-n);
        case 0x21: return decode_bnx_00_21(raw,buff+n,len-n);
        case 0x22: return decode_bnx_00_22(raw,buff+n,len-n);
        case 0x7F: return decode_bnx_00_7f(raw,buff+n,len-n);
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movl $0x6, -0x44(%rbp)
movq -0x30(%rbp), %rdi
callq 0x5be80
movl %eax, -0x34(%rbp)
movq -0x30(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x38(%rbp)
movq -0x30(%rbp), %rax
incq %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x30(%rbp), %rax
incq %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x5ad00
movl %eax, %ecx
movl -0x44(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x44(%rbp)
leaq 0x62d4b(%rip), %rdi     # 0xbe0e0
callq 0x8e180
movq %rax, -0x68(%rbp)
movsd %xmm0, -0x60(%rbp)
movl -0x34(%rbp), %eax
cvtsi2sd %rax, %xmm1
movl -0x38(%rbp), %eax
cvtsi2sd %rax, %xmm0
movsd 0x61b8d(%rip), %xmm2    # 0xbcf48
mulsd %xmm2, %xmm0
movsd 0x61a51(%rip), %xmm2    # 0xbce18
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq -0x68(%rbp), %rdi
movsd -0x60(%rbp), %xmm0
callq 0x8e860
movq %rax, -0x58(%rbp)
movsd %xmm0, -0x50(%rbp)
movq -0x10(%rbp), %rax
movq -0x58(%rbp), %rcx
movq %rcx, (%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x81a8c(%rax)
je 0x5b48f
movq -0x10(%rbp), %rax
addq $0x70e70, %rax          # imm = 0x70E70
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rdi
addq $0x70e70, %rdi          # imm = 0x70E70
callq 0x92e0
movq %rax, %rcx
movq -0x90(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x7c(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x78(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x78(%rbp), %rdi
movsd -0x70(%rbp), %xmm0
xorl %esi, %esi
callq 0x8f6d0
movq -0x88(%rbp), %rdi
movl -0x7c(%rbp), %edx
movq %rax, %rcx
movl -0x3c(%rbp), %r8d
leaq 0x62dca(%rip), %rsi     # 0xbe252
movb $0x0, %al
callq 0x9150
movl -0x40(%rbp), %eax
movq %rax, -0x98(%rbp)
subq $0x7f, %rax
ja 0x5b976
movq -0x98(%rbp), %rax
leaq 0x6291f(%rip), %rcx     # 0xbddd0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5bee0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5bf10
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5bf40
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5bf70
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5bfa0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5bfd0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c000
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c030
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c060
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c090
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c0c0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c0f0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c120
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c150
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c180
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c1b0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c1e0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c210
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c240
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c270
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c2a0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c2d0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c300
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c330
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c360
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c390
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c3c0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c3f0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c420
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c450
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c480
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c4b0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c4e0
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c510
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c540
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x44(%rbp), %rax
addq %rax, %rsi
movl -0x1c(%rbp), %edx
subl -0x44(%rbp), %edx
callq 0x5c570
movl %eax, -0x4(%rbp)
jmp 0x5b97d
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax)