// File: Marm0t[P]dji-phantom3-parser/packet.cpp
// Function: GPSPacket::toString[abi:cxx11]()
string GPSPacket::toString()
{
    stringstream ss;
    ss << "GPS Packet details: " << endl;
    ss << "Longitude: " << dec << fixed << _lon << endl;
    ss << "Latitude : " << dec << fixed << _lat << endl;
    ss << "Altitude : " << dec << fixed << _alt << " meters" << endl;
    ss << endl;
    ss << "_bytes30_33_f: " << dec<<fixed<<_bytes30_33_f
       << " time? - " << datetimeFromBytePos(30) <<endl; 
    ss << "_bytes34_37_f: " << dec<<fixed<<_bytes34_37_f 
       << " time? - " << datetimeFromBytePos(34) <<endl; 
    ss << "_bytes38_41_f: " << dec<<fixed<<_bytes38_41_f
       << " time? - " << datetimeFromBytePos(38) <<endl; 
    ss << "_bytes42_45_f: " << dec<<fixed<<_bytes42_45_f
       << " time? - " << datetimeFromBytePos(42) <<endl; 
    ss << endl;
    ss << "_bytes46_49_f: " << dec<<fixed<<_bytes46_49_f
        << " time? - " << datetimeFromBytePos(46) <<endl; 
    ss << "_bytes50_53_f: " << dec<<fixed<<_bytes50_53_f
        << " time? - " << datetimeFromBytePos(50) <<endl; 
    ss << "_bytes54_57_f: " << dec<<fixed<<_bytes54_57_f
        << " time? - " << datetimeFromBytePos(54) <<endl; 
    ss << "_bytes58_61_f: " << dec<<fixed<<_bytes58_61_f
        << " time? - " << datetimeFromBytePos(58) <<endl; 

    // Debug purpose:
    ss << "Packet details:"<<  endl << Packet::toString();
    ss << endl;
    return ss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4e0, %rsp            # imm = 0x4E0
movq %rdi, -0x2e8(%rbp)
movq %rdi, %rax
movq %rax, -0x2e0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x2d8(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x2110
leaq -0x188(%rbp), %rdi
leaq 0x20f4(%rip), %rsi      # 0x724d
callq 0x21b0
movq %rax, -0x2d0(%rbp)
jmp 0x5167
movq -0x2d0(%rbp), %rdi
movq 0x5e4b(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x517c
leaq -0x188(%rbp), %rdi
leaq 0x20d8(%rip), %rsi      # 0x7262
callq 0x21b0
movq %rax, -0x2f0(%rbp)
jmp 0x5198
movq -0x2f0(%rbp), %rdi
leaq -0x2326(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x2f8(%rbp)
jmp 0x51b4
movq -0x2f8(%rbp), %rdi
leaq 0x11fe(%rip), %rsi      # 0x63c0
callq 0x2080
movq %rax, -0x300(%rbp)
jmp 0x51d0
movq -0x300(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movsd 0x48(%rax), %xmm0
callq 0x2370
movq %rax, -0x308(%rbp)
jmp 0x51f1
movq -0x308(%rbp), %rdi
movq 0x5dc1(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5206
leaq -0x188(%rbp), %rdi
leaq 0x205a(%rip), %rsi      # 0x726e
callq 0x21b0
movq %rax, -0x310(%rbp)
jmp 0x5222
movq -0x310(%rbp), %rdi
leaq -0x23b0(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x318(%rbp)
jmp 0x523e
movq -0x318(%rbp), %rdi
leaq 0x1174(%rip), %rsi      # 0x63c0
callq 0x2080
movq %rax, -0x320(%rbp)
jmp 0x525a
movq -0x320(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movsd 0x50(%rax), %xmm0
callq 0x2370
movq %rax, -0x328(%rbp)
jmp 0x527b
movq -0x328(%rbp), %rdi
movq 0x5d37(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5290
leaq -0x188(%rbp), %rdi
leaq 0x1fdc(%rip), %rsi      # 0x727a
callq 0x21b0
movq %rax, -0x330(%rbp)
jmp 0x52ac
movq -0x330(%rbp), %rdi
leaq -0x243a(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x338(%rbp)
jmp 0x52c8
movq -0x338(%rbp), %rdi
leaq 0x10ea(%rip), %rsi      # 0x63c0
callq 0x2080
movq %rax, -0x340(%rbp)
jmp 0x52e4
movq -0x340(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x58(%rax), %xmm0
callq 0x2130
movq %rax, -0x348(%rbp)
jmp 0x5305
movq -0x348(%rbp), %rdi
leaq 0x1f73(%rip), %rsi      # 0x7286
callq 0x21b0
movq %rax, -0x350(%rbp)
jmp 0x5321
movq -0x350(%rbp), %rdi
movq 0x5c91(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5336
leaq -0x188(%rbp), %rdi
movq 0x5c7c(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x534b
leaq -0x188(%rbp), %rdi
leaq 0x1f35(%rip), %rsi      # 0x728e
callq 0x21b0
movq %rax, -0x358(%rbp)
jmp 0x5367
movq -0x358(%rbp), %rdi
leaq -0x24f5(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x360(%rbp)
jmp 0x5383
movq -0x360(%rbp), %rdi
leaq 0x102f(%rip), %rsi      # 0x63c0
callq 0x2080
movq %rax, -0x368(%rbp)
jmp 0x539f
movq -0x368(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x60(%rax), %xmm0
callq 0x2130
movq %rax, -0x370(%rbp)
jmp 0x53c0
movq -0x370(%rbp), %rdi
leaq 0x1ed0(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x378(%rbp)
jmp 0x53dc
movq -0x2d8(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
movl $0x1e, %edx
callq 0x4870
jmp 0x53f6
movq -0x378(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x2190
movq %rax, -0x380(%rbp)
jmp 0x5412
movq -0x380(%rbp), %rdi
movq 0x5ba0(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5427
leaq -0x1c8(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x1e67(%rip), %rsi      # 0x72a8
callq 0x21b0
movq %rax, -0x388(%rbp)
jmp 0x544f
movq -0x388(%rbp), %rdi
leaq -0x25dd(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x390(%rbp)
jmp 0x546b
movq -0x390(%rbp), %rdi
leaq 0xf47(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x398(%rbp)
jmp 0x5487
movq -0x398(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x64(%rax), %xmm0
callq 0x2130
movq %rax, -0x3a0(%rbp)
jmp 0x54a8
movq -0x3a0(%rbp), %rdi
leaq 0x1de8(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x3a8(%rbp)
jmp 0x54c4
movq -0x2d8(%rbp), %rsi
leaq -0x1e8(%rbp), %rdi
movl $0x22, %edx
callq 0x4870
jmp 0x54de
movq -0x3a8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x2190
movq %rax, -0x3b0(%rbp)
jmp 0x54fa
movq -0x3b0(%rbp), %rdi
movq 0x5ab8(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x550f
leaq -0x1e8(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x1d8f(%rip), %rsi      # 0x72b8
callq 0x21b0
movq %rax, -0x3b8(%rbp)
jmp 0x5537
movq -0x3b8(%rbp), %rdi
leaq -0x26c5(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x3c0(%rbp)
jmp 0x5553
movq -0x3c0(%rbp), %rdi
leaq 0xe5f(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x3c8(%rbp)
jmp 0x556f
movq -0x3c8(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x68(%rax), %xmm0
callq 0x2130
movq %rax, -0x3d0(%rbp)
jmp 0x5590
movq -0x3d0(%rbp), %rdi
leaq 0x1d00(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x3d8(%rbp)
jmp 0x55ac
movq -0x2d8(%rbp), %rsi
leaq -0x208(%rbp), %rdi
movl $0x26, %edx
callq 0x4870
jmp 0x55c6
movq -0x3d8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x2190
movq %rax, -0x3e0(%rbp)
jmp 0x55e2
movq -0x3e0(%rbp), %rdi
movq 0x59d0(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x55f7
leaq -0x208(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x1cb7(%rip), %rsi      # 0x72c8
callq 0x21b0
movq %rax, -0x3e8(%rbp)
jmp 0x561f
movq -0x3e8(%rbp), %rdi
leaq -0x27ad(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x3f0(%rbp)
jmp 0x563b
movq -0x3f0(%rbp), %rdi
leaq 0xd77(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x3f8(%rbp)
jmp 0x5657
movq -0x3f8(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x6c(%rax), %xmm0
callq 0x2130
movq %rax, -0x400(%rbp)
jmp 0x5678
movq -0x400(%rbp), %rdi
leaq 0x1c18(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x408(%rbp)
jmp 0x5694
movq -0x2d8(%rbp), %rsi
leaq -0x228(%rbp), %rdi
movl $0x2a, %edx
callq 0x4870
jmp 0x56ae
movq -0x408(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x2190
movq %rax, -0x410(%rbp)
jmp 0x56ca
movq -0x410(%rbp), %rdi
movq 0x58e8(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x56df
leaq -0x228(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
movq 0x58c7(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5700
leaq -0x188(%rbp), %rdi
leaq 0x1bca(%rip), %rsi      # 0x72d8
callq 0x21b0
movq %rax, -0x418(%rbp)
jmp 0x571c
movq -0x418(%rbp), %rdi
leaq -0x28aa(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x420(%rbp)
jmp 0x5738
movq -0x420(%rbp), %rdi
leaq 0xc7a(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x428(%rbp)
jmp 0x5754
movq -0x428(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x70(%rax), %xmm0
callq 0x2130
movq %rax, -0x430(%rbp)
jmp 0x5775
movq -0x430(%rbp), %rdi
leaq 0x1b1b(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x438(%rbp)
jmp 0x5791
movq -0x2d8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
movl $0x2e, %edx
callq 0x4870
jmp 0x57ab
movq -0x438(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x2190
movq %rax, -0x440(%rbp)
jmp 0x57c7
movq -0x440(%rbp), %rdi
movq 0x57eb(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x57dc
leaq -0x248(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x1af2(%rip), %rsi      # 0x72e8
callq 0x21b0
movq %rax, -0x448(%rbp)
jmp 0x5804
movq -0x448(%rbp), %rdi
leaq -0x2992(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x450(%rbp)
jmp 0x5820
movq -0x450(%rbp), %rdi
leaq 0xb92(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x458(%rbp)
jmp 0x583c
movq -0x458(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x74(%rax), %xmm0
callq 0x2130
movq %rax, -0x460(%rbp)
jmp 0x585d
movq -0x460(%rbp), %rdi
leaq 0x1a33(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x468(%rbp)
jmp 0x5879
movq -0x2d8(%rbp), %rsi
leaq -0x268(%rbp), %rdi
movl $0x32, %edx
callq 0x4870
jmp 0x5893
movq -0x468(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x2190
movq %rax, -0x470(%rbp)
jmp 0x58af
movq -0x470(%rbp), %rdi
movq 0x5703(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x58c4
leaq -0x268(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x1a1a(%rip), %rsi      # 0x72f8
callq 0x21b0
movq %rax, -0x478(%rbp)
jmp 0x58ec
movq -0x478(%rbp), %rdi
leaq -0x2a7a(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x480(%rbp)
jmp 0x5908
movq -0x480(%rbp), %rdi
leaq 0xaaa(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x488(%rbp)
jmp 0x5924
movq -0x488(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x78(%rax), %xmm0
callq 0x2130
movq %rax, -0x490(%rbp)
jmp 0x5945
movq -0x490(%rbp), %rdi
leaq 0x194b(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x498(%rbp)
jmp 0x5961
movq -0x2d8(%rbp), %rsi
leaq -0x288(%rbp), %rdi
movl $0x36, %edx
callq 0x4870
jmp 0x597b
movq -0x498(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x2190
movq %rax, -0x4a0(%rbp)
jmp 0x5997
movq -0x4a0(%rbp), %rdi
movq 0x561b(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x59ac
leaq -0x288(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x1942(%rip), %rsi      # 0x7308
callq 0x21b0
movq %rax, -0x4a8(%rbp)
jmp 0x59d4
movq -0x4a8(%rbp), %rdi
leaq -0x2b62(%rip), %rsi     # 0x2e80
callq 0x2080
movq %rax, -0x4b0(%rbp)
jmp 0x59f0
movq -0x4b0(%rbp), %rdi
leaq 0x9c2(%rip), %rsi       # 0x63c0
callq 0x2080
movq %rax, -0x4b8(%rbp)
jmp 0x5a0c
movq -0x4b8(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movss 0x7c(%rax), %xmm0
callq 0x2130
movq %rax, -0x4c0(%rbp)
jmp 0x5a2d
movq -0x4c0(%rbp), %rdi
leaq 0x1863(%rip), %rsi      # 0x729e
callq 0x21b0
movq %rax, -0x4c8(%rbp)
jmp 0x5a49
movq -0x2d8(%rbp), %rsi
leaq -0x2a8(%rbp), %rdi
movl $0x3a, %edx
callq 0x4870
jmp 0x5a63
movq -0x4c8(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x2190
movq %rax, -0x4d0(%rbp)
jmp 0x5a7f
movq -0x4d0(%rbp), %rdi
movq 0x5533(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5a94
leaq -0x2a8(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
leaq 0x186a(%rip), %rsi      # 0x7318
callq 0x21b0
movq %rax, -0x4d8(%rbp)
jmp 0x5abc
movq -0x4d8(%rbp), %rdi
movq 0x54f6(%rip), %rsi      # 0xafc0
callq 0x21e0
movq %rax, -0x4e0(%rbp)
jmp 0x5ad8
movq -0x2d8(%rbp), %rsi
leaq -0x2c8(%rbp), %rdi
callq 0x49b0
jmp 0x5aed
movq -0x4e0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x2190
jmp 0x5b02
leaq -0x2c8(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
movq 0x54a4(%rip), %rsi      # 0xafc0
callq 0x21e0
jmp 0x5b23
movq -0x2e8(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x21a0
jmp 0x5b38
leaq -0x198(%rbp), %rdi
callq 0x2140
movq -0x2e0(%rbp), %rax
addq $0x4e0, %rsp            # imm = 0x4E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x20f0
jmp 0x5c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x20f0
leaq -0x198(%rbp), %rdi
callq 0x2140
movq -0x1a0(%rbp), %rdi
callq 0x2320
nopl (%rax)