// File: /workspace/github_cpp_makefile_star2_O3/yasz24[P]eau2/tests/testSerialize.cpp
// Function: testStringArraySerialization()
void testStringArraySerialization() {
    Sys* tester = new Sys();
    Deserializable* ds = new Deserializable();
    StringArray* is = new StringArray();
    is->pushBack(new String("taco"));
    is->pushBack(new String("dorito"));
    is->pushBack(new String("nacho"));
    is->pushBack(new String("enchilada"));
    char* string_is_serialized = is->serialize();
    StringArray* is_two = dynamic_cast<StringArray*>(ds->deserialize(string_is_serialized));
    tester->t_true(strcmp(string_is_serialized, is_two->serialize()) == 0);
    delete is;
    tester->OK("Passed String Array Serialization Tests");
    delete tester;
    delete [] ds;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl $0x1, %edi
callq 0x7200
movq %rax, -0x30(%rbp)
movl $0x1, %edi
callq 0x7200
movq %rax, %r15
movl $0x28, %edi
callq 0x7200
movq %rax, %r14
xorl %eax, %eax
movq %rax, 0x8(%r14)
leaq 0x23e1e(%rip), %rcx     # 0x2b820
movq %rcx, (%r14)
movq %rax, 0x18(%r14)
movq $0x20, 0x20(%r14)
movl $0x100, %edi            # imm = 0x100
callq 0x7030
movq %rax, %r12
movq %rax, 0x10(%r14)
movl $0x20, %edi
callq 0x7200
movq %rax, %r13
movq $0x0, 0x8(%rax)
leaq 0x23a72(%rip), %rbx     # 0x2b4b0
movq %rbx, (%rax)
movq $0x4, 0x10(%rax)
movl $0x5, %edi
callq 0x7030
movq %rax, 0x18(%r13)
movl $0x6f636174, (%rax)     # imm = 0x6F636174
movb $0x0, 0x4(%rax)
movq %r13, (%r12)
movq $0x1, 0x18(%r14)
movl $0x20, %edi
callq 0x7200
movq %rax, %r13
movq $0x0, 0x8(%rax)
movq %rbx, (%rax)
movq $0x6, 0x10(%rax)
movl $0x7, %edi
callq 0x7030
movq %rax, 0x18(%r13)
movw $0x6f74, 0x4(%rax)      # imm = 0x6F74
movl $0x69726f64, (%rax)     # imm = 0x69726F64
movb $0x0, 0x6(%rax)
movq %r13, 0x8(%r12)
movq $0x2, 0x18(%r14)
movl $0x20, %edi
callq 0x7200
movq %rax, %r13
movq $0x0, 0x8(%rax)
movq %rbx, (%rax)
movq $0x5, 0x10(%rax)
movl $0x6, %edi
callq 0x7030
movq %rax, 0x18(%r13)
movl $0x6863616e, (%rax)     # imm = 0x6863616E
movw $0x6f, 0x4(%rax)
movq %r13, 0x10(%r12)
movq $0x3, 0x18(%r14)
movl $0x20, %edi
callq 0x7200
movq %rax, %r13
movq $0x0, 0x8(%rax)
movq %rbx, (%rax)
movq $0x9, 0x10(%rax)
movl $0xa, %edi
callq 0x7030
movq %rax, 0x18(%r13)
movabsq $0x64616c6968636e65, %rcx # imm = 0x64616C6968636E65
movq %rcx, (%rax)
movw $0x61, 0x8(%rax)
movq %r13, 0x18(%r12)
movq $0x4, 0x18(%r14)
movq %r14, %rdi
callq 0x12550
movq %rax, %r12
movq %r15, %rdi
movq %rax, %rsi
callq 0x1c7b4
leaq 0x237a6(%rip), %rsi     # 0x2b310
leaq 0x237b7(%rip), %rdx     # 0x2b328
movq %rax, %rdi
xorl %ecx, %ecx
callq 0x7230
movq (%rax), %rcx
movq %rax, %rdi
callq *0x38(%rcx)
movq %r12, %rdi
movq %rax, %rsi
callq 0x7290
testl %eax, %eax
jne 0x7bcd
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
leaq 0x18551(%rip), %rsi     # 0x200f4
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x12738
movq %rbx, %rdi
callq 0x71d0
movq %r15, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7270
leaq 0x18af0(%rip), %rsi     # 0x206c4
movq -0x30(%rbp), %rdi
callq 0x12738
movl $0x1, %edi
callq 0x7260
jmp 0x7bed
jmp 0x7bed
jmp 0x7bed
movq %rax, %rbx
movq %r13, %r14
jmp 0x7bf8
movq %rax, %rbx
movq %r14, %rdi
callq 0x71d0
movq %rbx, %rdi
callq 0x7350