// File: aalto-speech[P]ftk/src/Bigrams.cc
// Function: Bigrams::write_transitions(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, double>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, double>>>>>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, int)
void
Bigrams::write_transitions(const transitions_t &transitions,
                           const string &filename,
                           bool count_style,
                           int num_decimals)
{
    SimpleFileOutput transfile(filename);

    for (auto srcit = transitions.cbegin(); srcit != transitions.cend(); ++srcit)
        for (auto tgtit = srcit->second.cbegin(); tgtit != srcit->second.cend(); ++tgtit)
            if (count_style)
                transfile << srcit->first << " " << tgtit->first << "\t" << tgtit->second << "\n";
            else
                transfile << srcit->first << " " << tgtit->first << "\t" << tgtit->second << "\n";

    transfile.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movl %ecx, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x41a0
movq -0x168(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x7960
jmp 0x5e093
leaq -0x40(%rbp), %rdi
callq 0x4828
movq -0x8(%rbp), %rdi
callq 0x60750
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
callq 0x607b0
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x60780
testb $0x1, %al
jne 0x5e0cc
jmp 0x5e5bc
leaq -0x58(%rbp), %rdi
callq 0x607e0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x1b260
movq %rax, -0x68(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x607e0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x1b2c0
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1b290
testb $0x1, %al
jne 0x5e114
jmp 0x5e5ac
testb $0x1, -0x11(%rbp)
je 0x5e374
leaq -0x58(%rbp), %rdi
callq 0x607e0
movq %rax, %rsi
leaq -0x20(%rbp), %rdi
callq 0x7c00
movq %rax, -0x170(%rbp)
jmp 0x5e13c
leaq -0x91(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x46f0
movq -0x178(%rbp), %rdx
leaq 0x820b(%rip), %rsi      # 0x66368
leaq -0x90(%rbp), %rdi
callq 0x4550
jmp 0x5e16b
movq -0x170(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x7c00
movq %rax, -0x180(%rbp)
jmp 0x5e187
leaq -0x68(%rbp), %rdi
callq 0x1b2f0
movq -0x180(%rbp), %rdi
movq %rax, %rsi
callq 0x7c00
movq %rax, -0x188(%rbp)
jmp 0x5e1a8
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x46f0
movq -0x190(%rbp), %rdx
leaq 0x832d(%rip), %rsi      # 0x664f6
leaq -0xb8(%rbp), %rdi
callq 0x4550
jmp 0x5e1d7
movq -0x188(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x7c00
movq %rax, -0x198(%rbp)
jmp 0x5e1f3
leaq -0x68(%rbp), %rdi
callq 0x1b2f0
movq -0x198(%rbp), %rdi
movsd 0x20(%rax), %xmm0
callq 0x7d30
movq %rax, -0x1a0(%rbp)
jmp 0x5e216
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x46f0
movq -0x1a8(%rbp), %rdx
leaq 0x811b(%rip), %rsi      # 0x66352
leaq -0xe0(%rbp), %rdi
callq 0x4550
jmp 0x5e245
movq -0x1a0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x7c00
jmp 0x5e25a
leaq -0xe0(%rbp), %rdi
callq 0x4828
leaq -0xe1(%rbp), %rdi
callq 0x4420
leaq -0xb8(%rbp), %rdi
callq 0x4828
leaq -0xb9(%rbp), %rdi
callq 0x4420
leaq -0x90(%rbp), %rdi
callq 0x4828
leaq -0x91(%rbp), %rdi
callq 0x4420
jmp 0x5e59c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x4828
jmp 0x5e5e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e5d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e363
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e34b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e33f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x4828
leaq -0xe1(%rbp), %rdi
callq 0x4420
leaq -0xb8(%rbp), %rdi
callq 0x4828
leaq -0xb9(%rbp), %rdi
callq 0x4420
leaq -0x90(%rbp), %rdi
callq 0x4828
leaq -0x91(%rbp), %rdi
callq 0x4420
jmp 0x5e5d9
leaq -0x58(%rbp), %rdi
callq 0x607e0
movq %rax, %rsi
leaq -0x20(%rbp), %rdi
callq 0x7c00
movq %rax, -0x1b0(%rbp)
jmp 0x5e392
leaq -0x109(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x46f0
movq -0x1b8(%rbp), %rdx
leaq 0x7fb5(%rip), %rsi      # 0x66368
leaq -0x108(%rbp), %rdi
callq 0x4550
jmp 0x5e3c1
movq -0x1b0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x7c00
movq %rax, -0x1c0(%rbp)
jmp 0x5e3dd
leaq -0x68(%rbp), %rdi
callq 0x1b2f0
movq -0x1c0(%rbp), %rdi
movq %rax, %rsi
callq 0x7c00
movq %rax, -0x1c8(%rbp)
jmp 0x5e3fe
leaq -0x131(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x46f0
movq -0x1d0(%rbp), %rdx
leaq 0x80d7(%rip), %rsi      # 0x664f6
leaq -0x130(%rbp), %rdi
callq 0x4550
jmp 0x5e42d
movq -0x1c8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x7c00
movq %rax, -0x1d8(%rbp)
jmp 0x5e449
leaq -0x68(%rbp), %rdi
callq 0x1b2f0
movq -0x1d8(%rbp), %rdi
movsd 0x20(%rax), %xmm0
callq 0x7d30
movq %rax, -0x1e0(%rbp)
jmp 0x5e46c
leaq -0x159(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x46f0
movq -0x1e8(%rbp), %rdx
leaq 0x7ec5(%rip), %rsi      # 0x66352
leaq -0x158(%rbp), %rdi
callq 0x4550
jmp 0x5e49b
movq -0x1e0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x7c00
jmp 0x5e4b0
leaq -0x158(%rbp), %rdi
callq 0x4828
leaq -0x159(%rbp), %rdi
callq 0x4420
leaq -0x130(%rbp), %rdi
callq 0x4828
leaq -0x131(%rbp), %rdi
callq 0x4420
leaq -0x108(%rbp), %rdi
callq 0x4828
leaq -0x109(%rbp), %rdi
callq 0x4420
jmp 0x5e59c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e58e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e582
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e576
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e56a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5e55e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x4828
leaq -0x159(%rbp), %rdi
callq 0x4420
leaq -0x130(%rbp), %rdi
callq 0x4828
leaq -0x131(%rbp), %rdi
callq 0x4420
leaq -0x108(%rbp), %rdi
callq 0x4828
leaq -0x109(%rbp), %rdi
callq 0x4420
jmp 0x5e5d9
jmp 0x5e59e
leaq -0x68(%rbp), %rdi
callq 0x1b320
jmp 0x5e0e5
jmp 0x5e5ae
leaq -0x58(%rbp), %rdi
callq 0x60810
jmp 0x5e0a9
leaq -0x20(%rbp), %rdi
callq 0x7ba0
jmp 0x5e5c7
leaq -0x20(%rbp), %rdi
callq 0x7b70
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
leaq -0x20(%rbp), %rdi
callq 0x7b70
movq -0x48(%rbp), %rdi
callq 0x46e0
nopl (%rax,%rax)