// File: jweinst1[P]Pages/src/story/MakeStory.cpp
// Function: MakeStory::one()
void MakeStory::one(void)
{
        StoryEvent event;
        StoryMap smap;

        StoryObject obj1("ball");
        obj1.pushDeterminer("the");
        obj1.pushDeterminer("a");

        obj1.pushDescriptor("red");
        obj1.pushDescriptor("blue");
        obj1.pushDescriptor("pink");
        obj1.pushDescriptor("orange");
        obj1.pushDescriptor("fluffy");
        obj1.pushDescriptor("purple");
        obj1.pushDescriptor("round");
        obj1.pushDescriptor("dull");
        obj1.pushDescriptor("gloomy");
        obj1.pushDescriptor("dim");

        obj1.pushAction("bounces toward");
        //obj1.pushAction("bounces");
        obj1.pushAction("rolls toward");

        smap.putObject("ball", obj1);

        StoryAction act1("bounces toward");
        act1.pushAdverb("quickly");
        act1.pushAdverb("slowly");
        act1.pushAdverb("cautiously");
        act1.pushObject("school");
        act1.pushObject("park");
        smap.putAction("bounces toward", act1);

        StoryAction act2("rolls toward");
        act2.pushAdverb("quickly");
        act2.pushAdverb("swiftly");
        act2.pushAdverb("nervously");
        act2.pushObject("school");
        act2.pushObject("park");
        smap.putAction("rolls toward", act2);

        StoryObject obj2("school");
        obj2.pushDeterminer("a");

        obj2.pushDescriptor("large");
        obj2.pushDescriptor("huge");
        obj2.pushDescriptor("prestigious");

        smap.putObject("school", obj2);

        StoryObject obj3("park");
        obj3.pushDeterminer("a");

        obj3.pushDescriptor("small");
        obj3.pushDescriptor("lush");
        obj3.pushDescriptor("precious");
        obj3.pushDescriptor("greenish");
        obj3.pushDescriptor("quaint");

        smap.putObject("park", obj3);

        event << obj1;
        const StoryAction& newAction = smap.getAction(obj1.getAction());
        event << newAction << StoryPart::Space;
        const StoryObject& newObject = smap.getObject(newAction.getObject());
        event << newObject;
        event << StoryPart::Period << StoryPart::Newline;
        std::cout << event.getString();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2c0, %rsp            # imm = 0x2C0
leaq -0x18(%rbp), %rdi
callq 0x6370
leaq -0x78(%rbp), %rdi
callq 0x1b00
jmp 0x13bf
leaq 0x6c64(%rip), %rsi      # 0x802a
leaq -0xf0(%rbp), %rdi
callq 0x6b60
jmp 0x13d4
leaq 0x6c54(%rip), %rsi      # 0x802f
leaq -0xf0(%rbp), %rdi
callq 0x1b30
jmp 0x13e9
leaq 0x6c43(%rip), %rsi      # 0x8033
leaq -0xf0(%rbp), %rdi
callq 0x1b30
jmp 0x13fe
leaq 0x6c30(%rip), %rsi      # 0x8035
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x1413
leaq 0x6c1f(%rip), %rsi      # 0x8039
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x1428
leaq 0x6c0f(%rip), %rsi      # 0x803e
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x143d
leaq 0x6bff(%rip), %rsi      # 0x8043
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x1452
leaq 0x6bf1(%rip), %rsi      # 0x804a
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x1467
leaq 0x6be3(%rip), %rsi      # 0x8051
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x147c
leaq 0x6bd5(%rip), %rsi      # 0x8058
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x1491
leaq 0x6bc6(%rip), %rsi      # 0x805e
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x14a6
leaq 0x6bb6(%rip), %rsi      # 0x8063
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x14bb
leaq 0x6ba8(%rip), %rsi      # 0x806a
leaq -0xf0(%rbp), %rdi
callq 0x1b60
jmp 0x14d0
leaq 0x6b97(%rip), %rsi      # 0x806e
leaq -0xf0(%rbp), %rdi
callq 0x1bd0
jmp 0x14e5
leaq 0x6b91(%rip), %rsi      # 0x807d
leaq -0xf0(%rbp), %rdi
callq 0x1bd0
jmp 0x14fa
leaq 0x6b29(%rip), %rsi      # 0x802a
leaq -0xf8(%rbp), %rdi
callq 0x6d90
jmp 0x150f
leaq -0x78(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0xf0(%rbp), %rdx
callq 0x1c00
jmp 0x1528
leaq -0xf8(%rbp), %rdi
callq 0x6fc0
leaq 0x6b33(%rip), %rsi      # 0x806e
leaq -0x140(%rbp), %rdi
callq 0x61e0
jmp 0x1549
leaq 0x6b3a(%rip), %rsi      # 0x808a
leaq -0x140(%rbp), %rdi
callq 0x1c40
jmp 0x155e
leaq 0x6b2d(%rip), %rsi      # 0x8092
leaq -0x140(%rbp), %rdi
callq 0x1c40
jmp 0x1573
leaq 0x6b1f(%rip), %rsi      # 0x8099
leaq -0x140(%rbp), %rdi
callq 0x1c40
jmp 0x1588
leaq 0x6b15(%rip), %rsi      # 0x80a4
leaq -0x140(%rbp), %rdi
callq 0x1c70
jmp 0x159d
leaq 0x6b07(%rip), %rsi      # 0x80ab
leaq -0x140(%rbp), %rdi
callq 0x1c70
jmp 0x15b2
leaq 0x6ab5(%rip), %rsi      # 0x806e
leaq -0x148(%rbp), %rdi
callq 0x6d90
jmp 0x15c7
leaq -0x78(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x140(%rbp), %rdx
callq 0x1ca0
jmp 0x15e0
leaq -0x148(%rbp), %rdi
callq 0x6fc0
leaq 0x6a8a(%rip), %rsi      # 0x807d
leaq -0x190(%rbp), %rdi
callq 0x61e0
jmp 0x1601
leaq 0x6a82(%rip), %rsi      # 0x808a
leaq -0x190(%rbp), %rdi
callq 0x1c40
jmp 0x1616
leaq 0x6a93(%rip), %rsi      # 0x80b0
leaq -0x190(%rbp), %rdi
callq 0x1c40
jmp 0x162b
leaq 0x6a86(%rip), %rsi      # 0x80b8
leaq -0x190(%rbp), %rdi
callq 0x1c40
jmp 0x1640
leaq 0x6a5d(%rip), %rsi      # 0x80a4
leaq -0x190(%rbp), %rdi
callq 0x1c70
jmp 0x1655
leaq 0x6a4f(%rip), %rsi      # 0x80ab
leaq -0x190(%rbp), %rdi
callq 0x1c70
jmp 0x166a
leaq 0x6a0c(%rip), %rsi      # 0x807d
leaq -0x198(%rbp), %rdi
callq 0x6d90
jmp 0x167f
leaq -0x78(%rbp), %rdi
leaq -0x198(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x1ca0
jmp 0x1698
leaq -0x198(%rbp), %rdi
callq 0x6fc0
leaq 0x69f9(%rip), %rsi      # 0x80a4
leaq -0x200(%rbp), %rdi
callq 0x6b60
jmp 0x16b9
leaq 0x6973(%rip), %rsi      # 0x8033
leaq -0x200(%rbp), %rdi
callq 0x1b30
jmp 0x16ce
leaq 0x69ed(%rip), %rsi      # 0x80c2
leaq -0x200(%rbp), %rdi
callq 0x1b60
jmp 0x16e3
leaq 0x69de(%rip), %rsi      # 0x80c8
leaq -0x200(%rbp), %rdi
callq 0x1b60
jmp 0x16f8
leaq 0x69ce(%rip), %rsi      # 0x80cd
leaq -0x200(%rbp), %rdi
callq 0x1b60
jmp 0x170d
leaq 0x6990(%rip), %rsi      # 0x80a4
leaq -0x208(%rbp), %rdi
callq 0x6d90
jmp 0x1722
leaq -0x78(%rbp), %rdi
leaq -0x208(%rbp), %rsi
leaq -0x200(%rbp), %rdx
callq 0x1c00
jmp 0x173b
leaq -0x208(%rbp), %rdi
callq 0x6fc0
leaq 0x695d(%rip), %rsi      # 0x80ab
leaq -0x270(%rbp), %rdi
callq 0x6b60
jmp 0x175c
leaq 0x68d0(%rip), %rsi      # 0x8033
leaq -0x270(%rbp), %rdi
callq 0x1b30
jmp 0x1771
leaq 0x6961(%rip), %rsi      # 0x80d9
leaq -0x270(%rbp), %rdi
callq 0x1b60
jmp 0x1786
leaq 0x6952(%rip), %rsi      # 0x80df
leaq -0x270(%rbp), %rdi
callq 0x1b60
jmp 0x179b
leaq 0x6942(%rip), %rsi      # 0x80e4
leaq -0x270(%rbp), %rdi
callq 0x1b60
jmp 0x17b0
leaq 0x6936(%rip), %rsi      # 0x80ed
leaq -0x270(%rbp), %rdi
callq 0x1b60
jmp 0x17c5
leaq 0x692a(%rip), %rsi      # 0x80f6
leaq -0x270(%rbp), %rdi
callq 0x1b60
jmp 0x17da
leaq 0x68ca(%rip), %rsi      # 0x80ab
leaq -0x278(%rbp), %rdi
callq 0x6d90
jmp 0x17ef
leaq -0x78(%rbp), %rdi
leaq -0x278(%rbp), %rsi
leaq -0x270(%rbp), %rdx
callq 0x1c00
jmp 0x1808
leaq -0x278(%rbp), %rdi
callq 0x6fc0
leaq -0x18(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x67f0
jmp 0x1826
leaq -0xf0(%rbp), %rdi
callq 0x1d10
movq %rax, -0x290(%rbp)
jmp 0x183b
movq -0x290(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x1ce0
movq %rax, -0x298(%rbp)
jmp 0x1854
movq -0x298(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x280(%rbp), %rsi
leaq -0x18(%rbp), %rdi
callq 0x6870
movq %rax, -0x2a0(%rbp)
jmp 0x187b
movq -0x2a0(%rbp), %rdi
xorl %esi, %esi
callq 0x65b0
jmp 0x188b
movq -0x280(%rbp), %rdi
callq 0x1d60
movq %rax, -0x2a8(%rbp)
jmp 0x18a0
movq -0x2a8(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x1d30
movq %rax, -0x2b0(%rbp)
jmp 0x18b9
movq -0x2b0(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x288(%rbp), %rsi
leaq -0x18(%rbp), %rdi
callq 0x67f0
jmp 0x18d9
leaq -0x18(%rbp), %rdi
movl $0x2, %esi
callq 0x65b0
movq %rax, -0x2b8(%rbp)
jmp 0x18f0
movq -0x2b8(%rbp), %rdi
movl $0x3, %esi
callq 0x65b0
jmp 0x1903
leaq -0x18(%rbp), %rdi
callq 0x1d80
movq %rax, -0x2c0(%rbp)
jmp 0x1915
movq -0x2c0(%rbp), %rsi
movq 0xb6b5(%rip), %rdi      # 0xcfd8
callq 0x10d0
jmp 0x192a
leaq -0x270(%rbp), %rdi
callq 0x1da0
leaq -0x200(%rbp), %rdi
callq 0x1da0
leaq -0x190(%rbp), %rdi
callq 0x1df0
leaq -0x140(%rbp), %rdi
callq 0x1df0
leaq -0xf0(%rbp), %rdi
callq 0x1da0
leaq -0x78(%rbp), %rdi
callq 0x1e30
leaq -0x18(%rbp), %rdi
callq 0x63d0
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1ae1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1ad8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1acc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x6fc0
jmp 0x1acc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1ac0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x6fc0
jmp 0x1ac0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1ab4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x6fc0
jmp 0x1ab4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1aa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x6fc0
jmp 0x1aa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x1a9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x6fc0
leaq -0x270(%rbp), %rdi
callq 0x1da0
leaq -0x200(%rbp), %rdi
callq 0x1da0
leaq -0x190(%rbp), %rdi
callq 0x1df0
leaq -0x140(%rbp), %rdi
callq 0x1df0
leaq -0xf0(%rbp), %rdi
callq 0x1da0
leaq -0x78(%rbp), %rdi
callq 0x1e30
leaq -0x18(%rbp), %rdi
callq 0x63d0
movq -0x80(%rbp), %rdi
callq 0x1190
nopw %cs:(%rax,%rax)
nopl (%rax)