# Puzzle 3
#
# NOTE: CA and CB are labels we added by hand to support this homework.
# The compiler created only the .L3, .L4, and function1 labels.
#
# C structures used: TODO
#
# Possible order of labels (#1): TODO
# Possible order of labels (#2): TODO
# Possible order of labels (#3): TODO
#
# Registers and sizes for function1's parameters: TODO

function1:
    testq %rdi, %rdi
    sete %al
    testq %rsi, %rsi
    sete %dl
    orb %dl, %al
    je .L3              # Next: TODO
CA:
    ret
.L4:
    movb %al, (%rdi)
    addq $1, %rdi
    addq $1, %rsi
.L3:
    movzbl (%rsi), %eax
    testb %al, %al
    jne .L4             # Next: TODO
CB:
    movb $0, (%rdi)
    ret