Index: trunk/code/behaviors/hunter_prey/james/hunter_prey.map
===================================================================
--- trunk/code/behaviors/hunter_prey/james/hunter_prey.map	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/hunter_prey.map	(revision 1847)
@@ -0,0 +1,1166 @@
+Archive member included because of file (symbol)
+
+../../../../code/lib/bin/libwireless.a(wireless.o)
+                              hunter_prey.o (wl_set_channel)
+../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                              hunter_prey.o (wl_basic_do_default)
+../../../../code/lib/bin/libwireless.a(xbee.o)
+                              ../../../../code/lib/bin/libwireless.a(wireless.o) (xbee_get_packet)
+../../../../code/lib/bin/libdragonfly.a(bom.o)
+                              hunter_prey.o (bom_get_max)
+../../../../code/lib/bin/libdragonfly.a(dio.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (digital_output)
+../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                              hunter_prey.o (dragonfly_init)
+../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                              hunter_prey.o (get_robotid)
+../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (encoders_init)
+../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (lcd_init)
+../../../../code/lib/bin/libdragonfly.a(lights.o)
+                              hunter_prey.o (orb1_set_color)
+../../../../code/lib/bin/libdragonfly.a(motor.o)
+                              hunter_prey.o (motors_init)
+../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                              hunter_prey.o (range_read_distance)
+../../../../code/lib/bin/libdragonfly.a(serial.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (usb_init)
+../../../../code/lib/bin/libdragonfly.a(spi.o)
+                              ../../../../code/lib/bin/libdragonfly.a(encoders.o) (spi_init)
+../../../../code/lib/bin/libdragonfly.a(time.o)
+                              hunter_prey.o (delay_ms)
+../../../../code/lib/bin/libdragonfly.a(analog.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (analog_init)
+../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (buzzer_init)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__divmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+                              /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o (exit)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+                              hunter_prey.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__ashldi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__divdi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__moddi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__mulsi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__clz_tab)
+/usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                              ../../../../code/lib/bin/libdragonfly.a(serial.o) (memcpy_P)
+
+Allocating common symbols
+Common symbol       size              file
+
+pwm_buffer          0x27              ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_values          0x6               ../../../../code/lib/bin/libdragonfly.a(lights.o)
+data_ready          0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+data_length         0x2               hunter_prey.o
+packet_data         0x2               hunter_prey.o
+right_data          0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_buf       0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_array     0x5c              ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_idx       0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_dx            0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+current_packet      0x8               hunter_prey.o
+timecount           0x4               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_buf_index   0x1               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_array    0x5c              ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_dx             0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+send_buffer         0x2               hunter_prey.o
+right_data_idx      0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_buf      0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+arrival_buf         0x80              ../../../../code/lib/bin/libwireless.a(xbee.o)
+left_data           0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+an_val              0x21              ../../../../code/lib/bin/libdragonfly.a(analog.o)
+wl_basic_group_handler
+                    0xa               hunter_prey.o
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x0000000000000000 0x0000000000020000 xr
+data             0x0000000000800060 0x000000000000ffa0 rw !x
+eeprom           0x0000000000810000 0x0000000000010000 rw !x
+fuse             0x0000000000820000 0x0000000000000400 rw !x
+lock             0x0000000000830000 0x0000000000000400 rw !x
+signature        0x0000000000840000 0x0000000000000400 rw !x
+*default*        0x0000000000000000 0xffffffffffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+LOAD hunter_prey.o
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libm.a
+LOAD ../../../../code/lib/bin/libwireless.a
+LOAD ../../../../code/lib/bin/libdragonfly.a
+LOAD /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a
+LOAD /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text           0x0000000000000000     0x63c4
+ *(.vectors)
+ .vectors       0x0000000000000000       0x8c /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x0000000000000000                __vectors
+                0x0000000000000000                __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data  0x000000000000008c      0x1e0 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+ .progmem.data  0x000000000000026c       0x90 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                0x00000000000002fc                . = ALIGN (0x2)
+                0x00000000000002fc                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x00000000000002fc        0x0 linker stubs
+ *(.trampolines*)
+                0x00000000000002fc                __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x00000000000002fc                __ctors_start = .
+ *(.ctors)
+                0x00000000000002fc                __ctors_end = .
+                0x00000000000002fc                __dtors_start = .
+ *(.dtors)
+                0x00000000000002fc                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x00000000000002fc        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x00000000000002fc                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x00000000000002fc        0xc /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x0000000000000308       0x1a /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x0000000000000308                __do_copy_data
+ .init4         0x0000000000000322       0x10 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+                0x0000000000000322                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x0000000000000332        0x8 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ *(.init9)
+ *(.text)
+ .text          0x000000000000033a        0x4 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x000000000000033a                __vector_22
+                0x000000000000033a                __vector_28
+                0x000000000000033a                __vector_1
+                0x000000000000033a                __vector_32
+                0x000000000000033a                __vector_34
+                0x000000000000033a                __vector_24
+                0x000000000000033a                __vector_12
+                0x000000000000033a                __bad_interrupt
+                0x000000000000033a                __vector_6
+                0x000000000000033a                __vector_31
+                0x000000000000033a                __vector_3
+                0x000000000000033a                __vector_23
+                0x000000000000033a                __vector_25
+                0x000000000000033a                __vector_11
+                0x000000000000033a                __vector_13
+                0x000000000000033a                __vector_19
+                0x000000000000033a                __vector_7
+                0x000000000000033a                __vector_27
+                0x000000000000033a                __vector_5
+                0x000000000000033a                __vector_33
+                0x000000000000033a                __vector_4
+                0x000000000000033a                __vector_9
+                0x000000000000033a                __vector_2
+                0x000000000000033a                __vector_29
+                0x000000000000033a                __vector_8
+                0x000000000000033a                __vector_14
+                0x000000000000033a                __vector_10
+                0x000000000000033a                __vector_18
+                0x000000000000033a                __vector_20
+ .text          0x000000000000033e      0x3d8 hunter_prey.o
+                0x000000000000033e                main
+ .text          0x0000000000000716      0x2e0 ../../../../code/lib/bin/libwireless.a(wireless.o)
+                0x0000000000000724                wl_register_packet_group
+                0x000000000000074a                wl_unregister_packet_group
+                0x0000000000000786                wl_do
+                0x0000000000000900                wl_send_pan_packet
+                0x000000000000091e                wl_send_global_packet
+                0x000000000000093e                wl_send_robot_to_robot_packet
+                0x0000000000000958                wl_send_robot_to_robot_global_packet
+                0x0000000000000974                wl_get_xbee_id
+                0x000000000000097a                wl_get_channel
+                0x0000000000000980                wl_set_channel
+                0x0000000000000986                wl_get_pan
+                0x000000000000098c                wl_set_pan
+                0x0000000000000992                wl_terminate
+                0x00000000000009c2                wl_init
+ .text          0x00000000000009f6      0x102 ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                0x00000000000009f6                wl_basic_packet_receive_handler
+                0x0000000000000a1a                wl_basic_do_default
+                0x0000000000000a52                wl_basic_send_global_packet
+                0x0000000000000a6a                wl_basic_send_robot_packet
+                0x0000000000000a8e                wl_basic_register_handler
+                0x0000000000000ac4                wl_basic_init
+                0x0000000000000aee                wl_basic_init_default
+ .text          0x0000000000000af8      0x794 ../../../../code/lib/bin/libwireless.a(xbee.o)
+                0x0000000000000af8                __vector_30
+                0x0000000000000b62                xbee_get_packet
+                0x0000000000000dc6                xbee_get_pan_id
+                0x0000000000000dd0                xbee_get_channel
+                0x0000000000000dda                xbee_get_address
+                0x0000000000000efc                xbee_set_channel
+                0x0000000000000f40                xbee_set_pan_id
+                0x0000000000000f74                xbee_reset
+                0x0000000000000fa4                xbee_terminate
+                0x0000000000000fb2                xbee_send_packet
+                0x0000000000001102                xbee_lib_init
+ .text          0x000000000000128c      0xbac ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                0x000000000000128c                bom_get
+                0x000000000000129c                bom_get_max
+                0x00000000000012d4                bom_get_max10
+                0x0000000000001766                bom_off
+                0x0000000000001790                bom_on
+                0x00000000000017ba                bom_set_leds
+                0x0000000000001816                bom_init
+                0x00000000000018b2                bom_refresh
+                0x00000000000019ce                get_max_bom
+                0x0000000000001a0e                bom_print_usb
+                0x0000000000001b3e                bom_get_norm_vector
+                0x0000000000001ce2                bom_get_vector
+ .text          0x0000000000001e38      0x590 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                0x0000000000001e38                digital_input
+                0x0000000000001f7a                digital_pull_up
+                0x0000000000002064                digital_output
+                0x000000000000229c                button1_read
+                0x00000000000022c2                button1_click
+                0x0000000000002308                button2_read
+                0x0000000000002332                button2_click
+                0x0000000000002378                button2_wait
+                0x00000000000023a0                button1_wait
+ .text          0x00000000000023c8       0xec ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                0x00000000000023c8                flash_red
+                0x0000000000002428                dragonfly_init
+ .text          0x00000000000024b4       0xb6 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                0x00000000000024b4                eeprom_put_byte
+                0x00000000000024c8                eeprom_get_byte
+                0x00000000000024de                get_robotid
+                0x000000000000251a                get_bom_type
+ .text          0x000000000000256a      0x562 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                0x000000000000256a                encoder_read
+                0x000000000000258e                encoder_get_x
+                0x00000000000025b2                encoder_get_dx
+                0x00000000000025d6                encoder_rst_dx
+                0x00000000000025f2                encoder_get_tc
+                0x00000000000025fc                encoder_rst_tc
+                0x000000000000260e                encoder_wait
+                0x0000000000002628                encoder_recv
+                0x00000000000028e0                left_data_at
+                0x00000000000028fe                right_data_at
+                0x000000000000291c                get_dx
+                0x00000000000029e4                encoder_get_v
+                0x0000000000002a3a                encoders_init
+                0x0000000000002aae                encoder_recv_complete
+ .text          0x0000000000002acc      0x1a8 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                0x0000000000002acc                lcd_clear_screen
+                0x0000000000002af6                lcd_putc
+                0x0000000000002b26                lcd_puts
+                0x0000000000002b40                lcd_gotoxy
+                0x0000000000002b58                lcd_puti
+                0x0000000000002c02                lcd_putbyte
+                0x0000000000002c0a                lcd_init
+ .text          0x0000000000002c74      0x82e ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x0000000000002c74                __vector_16
+                0x0000000000002d4e                __vector_15
+                0x0000000000003106                orb_n_set
+                0x0000000000003142                orb1_set
+                0x0000000000003172                orb2_set
+                0x00000000000031a2                orb_set
+                0x00000000000031de                orbs_set
+                0x0000000000003222                orb_n_set_color
+                0x000000000000327e                orb1_set_color
+                0x00000000000032cc                orb2_set_color
+                0x000000000000331a                orb_set_color
+                0x0000000000003368                orbs_set_color
+                0x0000000000003422                orb_enable_timer
+                0x000000000000342e                orb_disable_timer
+                0x0000000000003436                orb_set_mode
+                0x0000000000003460                orb_init_binary
+                0x000000000000347e                orb_init_pwm
+                0x000000000000349c                orb_init
+ .text          0x00000000000034a2       0x96 ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                0x00000000000034a2                motors_init
+                0x00000000000034c6                motor_l_set
+                0x00000000000034f6                motor_r_set
+                0x0000000000003526                motor1_set
+                0x000000000000352c                motor2_set
+                0x0000000000003532                motors_off
+ .text          0x0000000000003538      0x38c ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                0x0000000000003538                linearize_distance
+                0x000000000000355c                get_range_index
+                0x00000000000035a6                butter_filter
+                0x0000000000003752                butter_init
+                0x0000000000003776                range_read_distance
+                0x000000000000379e                range_read_filtered_distance
+                0x000000000000382e                butter_task
+                0x000000000000388a                range_init
+                0x00000000000038a0                range_init_filter
+ .text          0x00000000000038c4      0x252 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                0x00000000000038c4                usb_init
+                0x00000000000038e0                xbee_init
+                0x000000000000390a                usb_putc
+                0x0000000000003916                xbee_putc
+                0x000000000000392a                usb_puts
+                0x0000000000003942                usb_getc
+                0x000000000000394c                xbee_getc
+                0x000000000000395c                usb_getc_nb
+                0x0000000000003974                xbee_getc_nb
+                0x0000000000003992                usb_puti
+                0x0000000000003a30                hex_digit
+                0x0000000000003a44                usb_puth16
+                0x0000000000003aa2                usb_puth8
+                0x0000000000003acc                usb_puts_P
+ .text          0x0000000000003b16       0xbc ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                0x0000000000003b16                spi_init
+                0x0000000000003b3e                spi_transfer
+                0x0000000000003b4a                __vector_17
+ .text          0x0000000000003bd2      0x108 ../../../../code/lib/bin/libdragonfly.a(time.o)
+                0x0000000000003bd2                delay_ms
+                0x0000000000003be8                rtc_init
+                0x0000000000003c28                rtc_get
+                0x0000000000003c34                rtc_reset
+                0x0000000000003c3e                __vector_26
+ .text          0x0000000000003cda      0x32e ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                0x0000000000003cda                analog_init
+                0x0000000000003d4c                analog8
+                0x0000000000003d70                analog10
+                0x0000000000003d92                analog_start_loop
+                0x0000000000003db0                analog_stop_loop
+                0x0000000000003dbe                analog_loop_status
+                0x0000000000003dca                analog_get8
+                0x0000000000003e12                analog_get10
+                0x0000000000003e76                wheel
+                0x0000000000003e7e                set_adc_mux
+                0x0000000000003ea0                __vector_21
+ .text          0x0000000000004008       0x6a ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                0x0000000000004008                buzzer_init
+                0x000000000000400a                buzzer_set_val
+                0x0000000000004014                buzzer_set_freq
+                0x0000000000004048                buzzer_off
+                0x0000000000004052                buzzer_chirp
+ .text          0x0000000000004072        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+ .text          0x0000000000004072        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+ .text          0x0000000000004072        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .text          0x0000000000004072        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .text          0x0000000000004072       0xfe /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                0x0000000000004072                __ashldi3
+ .text          0x0000000000004170     0x1050 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                0x0000000000004170                __divdi3
+ .text          0x00000000000051c0     0x107a /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                0x00000000000051c0                __moddi3
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+ .text          0x000000000000623a        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                0x000000000000623a                . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc   0x000000000000623a       0x26 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+                0x000000000000623a                __divmodhi4
+                0x000000000000623a                _div
+ .text.libgcc   0x0000000000006260       0x36 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+                0x0000000000006260                __divmodsi4
+ .text.libgcc   0x0000000000006296        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .text.libgcc   0x0000000000006296        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .text.libgcc   0x0000000000006296       0x3e /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+                0x0000000000006296                __mulsi3
+ .text.libgcc   0x00000000000062d4       0x28 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+                0x00000000000062d4                __udivmodhi4
+ .text.libgcc   0x00000000000062fc       0x44 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+                0x00000000000062fc                __udivmodsi4
+ .text.libgcc   0x0000000000006340       0x38 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+                0x0000000000006340                __prologue_saves__
+ .text.libgcc   0x0000000000006378       0x36 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+                0x0000000000006378                __epilogue_restores__
+ .text.avr-libc
+                0x00000000000063ae       0x12 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                0x00000000000063ae                memcpy_P
+                0x00000000000063c0                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x00000000000063c0        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+                0x00000000000063c0                exit
+                0x00000000000063c0                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x00000000000063c0        0x4 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ *(.fini0)
+                0x00000000000063c4                _etext = .
+
+.data           0x0000000000800100      0x1b2 load address 0x00000000000063c4
+                0x0000000000800100                PROVIDE (__data_start, .)
+ *(.data)
+ .data          0x0000000000800100        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ .data          0x0000000000800100        0x0 hunter_prey.o
+ .data          0x0000000000800100        0x0 ../../../../code/lib/bin/libwireless.a(wireless.o)
+ .data          0x0000000000800100        0x0 ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+ .data          0x0000000000800100       0x30 ../../../../code/lib/bin/libwireless.a(xbee.o)
+ .data          0x0000000000800130       0x56 ../../../../code/lib/bin/libdragonfly.a(bom.o)
+ .data          0x0000000000800186        0x0 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+ .data          0x0000000000800186        0x0 ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+ .data          0x0000000000800186        0x0 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+ .data          0x0000000000800186        0x0 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+ .data          0x0000000000800186        0x6 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+ .data          0x000000000080018c        0xd ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x000000000080018c                orb_mask
+                0x0000000000800192                enable_orb_pwm
+                0x0000000000800193                pwm_read_buffer
+                0x0000000000800195                pwm_write_buffer
+                0x0000000000800197                pwm_free_buffer
+ .data          0x0000000000800199        0x0 ../../../../code/lib/bin/libdragonfly.a(motor.o)
+ .data          0x0000000000800199        0x0 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+ .data          0x0000000000800199       0x17 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+ .data          0x00000000008001b0        0x0 ../../../../code/lib/bin/libdragonfly.a(spi.o)
+ .data          0x00000000008001b0        0x2 ../../../../code/lib/bin/libdragonfly.a(time.o)
+ .data          0x00000000008001b2        0x0 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+ .data          0x00000000008001b2        0x0 ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+ .data          0x00000000008001b2        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+ .data          0x00000000008001b2      0x100 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                0x00000000008001b2                __clz_tab
+ .data          0x00000000008002b2        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+                0x00000000008002b2                . = ALIGN (0x2)
+                0x00000000008002b2                _edata = .
+                0x00000000008002b2                PROVIDE (__data_end, .)
+
+.bss            0x00000000008002b2      0x338
+                0x00000000008002b2                PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss           0x00000000008002b2        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ .bss           0x00000000008002b2        0x0 hunter_prey.o
+ .bss           0x00000000008002b2       0xa2 ../../../../code/lib/bin/libwireless.a(wireless.o)
+ .bss           0x0000000000800354        0x0 ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+ .bss           0x0000000000800354       0x78 ../../../../code/lib/bin/libwireless.a(xbee.o)
+                0x0000000000800354                buffer_last
+                0x0000000000800356                buffer_first
+ .bss           0x00000000008003cc       0x2b ../../../../code/lib/bin/libdragonfly.a(bom.o)
+ .bss           0x00000000008003f7        0x0 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+ .bss           0x00000000008003f7        0x0 ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+ .bss           0x00000000008003f7        0x0 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+ .bss           0x00000000008003f7        0x0 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+ .bss           0x00000000008003f7        0x0 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+ .bss           0x00000000008003f7        0x3 ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x00000000008003f7                pwm_page_flip
+                0x00000000008003f8                current_pwm_channel
+                0x00000000008003f9                orb_lock
+ .bss           0x00000000008003fa        0x0 ../../../../code/lib/bin/libdragonfly.a(motor.o)
+ .bss           0x00000000008003fa       0x2a ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+ .bss           0x0000000000800424        0x0 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+ .bss           0x0000000000800424        0x5 ../../../../code/lib/bin/libdragonfly.a(spi.o)
+ .bss           0x0000000000800429        0x6 ../../../../code/lib/bin/libdragonfly.a(time.o)
+ .bss           0x000000000080042f        0x6 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                0x000000000080042f                adc_loop_status
+                0x0000000000800431                adc_sig_stop_loop
+                0x0000000000800433                adc_current_port
+ .bss           0x0000000000800435        0x0 ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+ .bss           0x0000000000800435        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON         0x0000000000800435       0x18 hunter_prey.o
+                0x0000000000800435                data_length
+                0x0000000000800437                packet_data
+                0x0000000000800439                current_packet
+                0x0000000000800441                send_buffer
+                0x0000000000800443                wl_basic_group_handler
+ COMMON         0x000000000080044d       0x80 ../../../../code/lib/bin/libwireless.a(xbee.o)
+                0x000000000080044d                arrival_buf
+ COMMON         0x00000000008004cd       0xcf ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                0x00000000008004cd                data_ready
+                0x00000000008004cf                right_data
+                0x00000000008004d1                left_data_buf
+                0x00000000008004d3                left_data_array
+                0x000000000080052f                left_data_idx
+                0x0000000000800531                right_dx
+                0x0000000000800533                timecount
+                0x0000000000800537                encoder_buf_index
+                0x0000000000800538                right_data_array
+                0x0000000000800594                left_dx
+                0x0000000000800596                right_data_idx
+                0x0000000000800598                right_data_buf
+                0x000000000080059a                left_data
+ COMMON         0x000000000080059c       0x2d ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x000000000080059c                pwm_buffer
+                0x00000000008005c3                orb_values
+ COMMON         0x00000000008005c9       0x21 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                0x00000000008005c9                an_val
+                0x00000000008005ea                PROVIDE (__bss_end, .)
+                0x00000000000063c4                __data_load_start = LOADADDR (.data)
+                0x0000000000006576                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x00000000008005ea        0x0
+                0x00000000008005ea                PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                0x00000000008005ea                PROVIDE (__noinit_end, .)
+                0x00000000008005ea                _end = .
+                0x00000000008005ea                PROVIDE (__heap_start, .)
+
+.eeprom         0x0000000000810000        0x0
+ *(.eeprom*)
+                0x0000000000810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab           0x0000000000000000     0x77f4
+ *(.stab)
+ .stab          0x0000000000000000      0x750 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ .stab          0x0000000000000750      0xffc ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                       0x1008 (size before relaxing)
+ .stab          0x000000000000174c      0x8d0 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                        0xa80 (size before relaxing)
+ .stab          0x000000000000201c      0x4e0 ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                        0x798 (size before relaxing)
+ .stab          0x00000000000024fc      0x444 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                        0x600 (size before relaxing)
+ .stab          0x0000000000002940      0xce4 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                        0xea0 (size before relaxing)
+ .stab          0x0000000000003624      0x768 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                        0x9cc (size before relaxing)
+ .stab          0x0000000000003d8c     0x11e8 ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                       0x14d0 (size before relaxing)
+ .stab          0x0000000000004f74      0x48c ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                        0x648 (size before relaxing)
+ .stab          0x0000000000005400      0x768 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                        0x9d8 (size before relaxing)
+ .stab          0x0000000000005b68      0x960 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                        0xbd0 (size before relaxing)
+ .stab          0x00000000000064c8      0x330 ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                        0x51c (size before relaxing)
+ .stab          0x00000000000067f8      0x3f0 ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                        0x5b8 (size before relaxing)
+ .stab          0x0000000000006be8      0x840 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                        0xac8 (size before relaxing)
+ .stab          0x0000000000007428      0x348 ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                        0x504 (size before relaxing)
+ .stab          0x0000000000007770       0x84 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                                         0x90 (size before relaxing)
+
+.stabstr        0x0000000000000000     0x220c
+ *(.stabstr)
+ .stabstr       0x0000000000000000     0x220c /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(hunter_prey.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol                                            File
+__ashldi3                                         /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__bad_interrupt                                   /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__bss_end                                         /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+__bss_start                                       /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+__clz_tab                                         /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__data_end                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__data_load_start                                 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__data_start                                      /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__divdi3                                          /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__divmodhi4                                       /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__divmodsi4                                       /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__do_clear_bss                                    /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  hunter_prey.o
+__do_copy_data                                    /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  hunter_prey.o
+__epilogue_restores__                             /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__heap_end                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__init                                            /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__moddi3                                          /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__mulsi3                                          /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__prologue_saves__                                /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__stack                                           /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__udivmodhi4                                      /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+__udivmodsi4                                      /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+__vector_1                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_10                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_11                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_12                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_13                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_14                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_15                                       ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_16                                       ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_17                                       ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_18                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_19                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_2                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_20                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_21                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_22                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_23                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_24                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_25                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_26                                       ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_27                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_28                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_29                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_3                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_30                                       ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_31                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_32                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_33                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_34                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_4                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_5                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_6                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_7                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_8                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_9                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_default                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vectors                                         /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+_div                                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+_exit                                             /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+adc_current_port                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+adc_loop_status                                   ../../../../code/lib/bin/libdragonfly.a(analog.o)
+adc_sig_stop_loop                                 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+an_val                                            ../../../../code/lib/bin/libdragonfly.a(analog.o)
+analog10                                          ../../../../code/lib/bin/libdragonfly.a(analog.o)
+analog8                                           ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+analog_get10                                      ../../../../code/lib/bin/libdragonfly.a(analog.o)
+analog_get8                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+analog_init                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+analog_loop_status                                ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+analog_start_loop                                 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+analog_stop_loop                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+arrival_buf                                       ../../../../code/lib/bin/libwireless.a(xbee.o)
+bom_get                                           ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_get_max                                       ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  hunter_prey.o
+bom_get_max10                                     ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_get_norm_vector                               ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_get_vector                                    ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_init                                          ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+bom_off                                           ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  hunter_prey.o
+bom_on                                            ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  hunter_prey.o
+bom_print_usb                                     ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_refresh                                       ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  hunter_prey.o
+bom_set_leds                                      ../../../../code/lib/bin/libdragonfly.a(bom.o)
+buffer_first                                      ../../../../code/lib/bin/libwireless.a(xbee.o)
+buffer_last                                       ../../../../code/lib/bin/libwireless.a(xbee.o)
+butter_filter                                     ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+butter_init                                       ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+butter_task                                       ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+button1_click                                     ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button1_read                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button1_wait                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button2_click                                     ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button2_read                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  hunter_prey.o
+button2_wait                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+buzzer_chirp                                      ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+buzzer_init                                       ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+buzzer_off                                        ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+buzzer_set_freq                                   ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+buzzer_set_val                                    ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+current_packet                                    ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  hunter_prey.o
+current_pwm_channel                               ../../../../code/lib/bin/libdragonfly.a(lights.o)
+data_length                                       hunter_prey.o
+data_ready                                        ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+delay_ms                                          ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  hunter_prey.o
+digital_input                                     ../../../../code/lib/bin/libdragonfly.a(dio.o)
+digital_output                                    ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+digital_pull_up                                   ../../../../code/lib/bin/libdragonfly.a(dio.o)
+dragonfly_init                                    ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  hunter_prey.o
+eeprom_get_byte                                   ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+eeprom_put_byte                                   ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+enable_orb_pwm                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+encoder_buf_index                                 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_dx                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_tc                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_v                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_x                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_read                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_recv                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_recv_complete                             ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_rst_dx                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_rst_tc                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_wait                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoders_init                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+exit                                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+flash_red                                         ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+get_bom_type                                      ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+get_dx                                            ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+get_max_bom                                       ../../../../code/lib/bin/libdragonfly.a(bom.o)
+get_range_index                                   ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+get_robotid                                       ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  hunter_prey.o
+hex_digit                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+hunter_prey_tagged                                hunter_prey.o
+lcd_clear_screen                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_gotoxy                                        ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_init                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+lcd_putbyte                                       ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_putc                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_puti                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_puts                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+left_data                                         ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_array                                   ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_at                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_buf                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_idx                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_dx                                           ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+linearize_distance                                ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+main                                              hunter_prey.o
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+memcpy_P                                          /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+motor1_set                                        ../../../../code/lib/bin/libdragonfly.a(motor.o)
+motor2_set                                        ../../../../code/lib/bin/libdragonfly.a(motor.o)
+motor_l_set                                       ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  hunter_prey.o
+motor_r_set                                       ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  hunter_prey.o
+motors_init                                       ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  hunter_prey.o
+motors_off                                        ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  hunter_prey.o
+orb1_set                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb1_set_color                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  hunter_prey.o
+orb2_set                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb2_set_color                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  hunter_prey.o
+orb_disable_timer                                 ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_enable_timer                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_init                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  hunter_prey.o
+orb_init_binary                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_init_pwm                                      ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_lock                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_mask                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_n_set                                         ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_n_set_color                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_set                                           ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_set_color                                     ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  hunter_prey.o
+orb_set_mode                                      ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_values                                        ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orbs_set                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orbs_set_color                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+packet_data                                       hunter_prey.o
+pwm_buffer                                        ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_free_buffer                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_page_flip                                     ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_read_buffer                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_write_buffer                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+range_init                                        ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+range_init_filter                                 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+range_read_distance                               ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  hunter_prey.o
+range_read_filtered_distance                      ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+right_data                                        ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_array                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_at                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_buf                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_idx                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_dx                                          ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+rtc_get                                           ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  hunter_prey.o
+rtc_init                                          ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  hunter_prey.o
+rtc_reset                                         ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  hunter_prey.o
+send_buffer                                       hunter_prey.o
+set_adc_mux                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+spi_init                                          ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+spi_transfer                                      ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+timecount                                         ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+usb_getc                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_getc_nb                                       ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_init                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+usb_putc                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+usb_puth16                                        ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_puth8                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_puti                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+usb_puts                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+usb_puts_P                                        ../../../../code/lib/bin/libdragonfly.a(serial.o)
+wheel                                             ../../../../code/lib/bin/libdragonfly.a(analog.o)
+wl_basic_do_default                               ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  hunter_prey.o
+wl_basic_group_handler                            ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  hunter_prey.o
+wl_basic_init                                     ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_basic_init_default                             ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  hunter_prey.o
+wl_basic_packet_receive_handler                   ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_basic_register_handler                         ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_basic_send_global_packet                       ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  hunter_prey.o
+wl_basic_send_robot_packet                        ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_do                                             ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_get_channel                                    ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_get_pan                                        ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_get_xbee_id                                    ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_init                                           ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_register_packet_group                          ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_send_global_packet                             ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_send_pan_packet                                ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_send_robot_to_robot_global_packet              ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_send_robot_to_robot_packet                     ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_set_channel                                    ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  hunter_prey.o
+wl_set_pan                                        ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_terminate                                      ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_unregister_packet_group                        ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_address                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_channel                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_packet                                   ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_pan_id                                   ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_getc                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+xbee_getc_nb                                      ../../../../code/lib/bin/libdragonfly.a(serial.o)
+xbee_init                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  hunter_prey.o
+xbee_lib_init                                     ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_putc                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+xbee_reset                                        ../../../../code/lib/bin/libwireless.a(xbee.o)
+xbee_send_packet                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_set_channel                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_set_pan_id                                   ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_terminate                                    ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
Index: trunk/code/behaviors/hunter_prey/james/main.map
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.map	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.map	(revision 1847)
@@ -0,0 +1,1175 @@
+Archive member included because of file (symbol)
+
+../../../../code/lib/bin/libwireless.a(wireless.o)
+                              main.o (wl_set_channel)
+../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                              main.o (wl_basic_do_default)
+../../../../code/lib/bin/libwireless.a(xbee.o)
+                              ../../../../code/lib/bin/libwireless.a(wireless.o) (xbee_get_packet)
+../../../../code/lib/bin/libdragonfly.a(analog.o)
+                              main.o (wheel)
+../../../../code/lib/bin/libdragonfly.a(bom.o)
+                              main.o (bom_get_max)
+../../../../code/lib/bin/libdragonfly.a(dio.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (digital_output)
+../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                              main.o (dragonfly_init)
+../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                              main.o (get_robotid)
+../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (encoders_init)
+../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (lcd_init)
+../../../../code/lib/bin/libdragonfly.a(lights.o)
+                              main.o (orb1_set_color)
+../../../../code/lib/bin/libdragonfly.a(motor.o)
+                              main.o (motors_init)
+../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                              main.o (range_read_distance)
+../../../../code/lib/bin/libdragonfly.a(serial.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (usb_init)
+../../../../code/lib/bin/libdragonfly.a(spi.o)
+                              ../../../../code/lib/bin/libdragonfly.a(encoders.o) (spi_init)
+../../../../code/lib/bin/libdragonfly.a(time.o)
+                              main.o (delay_ms)
+../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                              ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o) (buzzer_init)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__divmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__divmodsi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+                              /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o (exit)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+                              hunter_prey.o (__do_clear_bss)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__ashldi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__divdi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                              ../../../../code/lib/bin/libdragonfly.a(bom.o) (__moddi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__mulsi3)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o) (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o) (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__prologue_saves__)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o) (__clz_tab)
+/usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                              ../../../../code/lib/bin/libdragonfly.a(serial.o) (memcpy_P)
+
+Allocating common symbols
+Common symbol       size              file
+
+pwm_buffer          0x27              ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_values          0x6               ../../../../code/lib/bin/libdragonfly.a(lights.o)
+data_ready          0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+data_length         0x2               main.o
+packet_data         0x2               main.o
+right_data          0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_buf       0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_array     0x5c              ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_idx       0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_dx            0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+current_packet      0x8               main.o
+timecount           0x4               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_buf_index   0x1               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_array    0x5c              ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_dx             0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+send_buffer         0x2               main.o
+right_data_idx      0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_buf      0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+arrival_buf         0x80              ../../../../code/lib/bin/libwireless.a(xbee.o)
+left_data           0x2               ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+an_val              0x21              ../../../../code/lib/bin/libdragonfly.a(analog.o)
+wl_basic_group_handler
+                    0xa               main.o
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x0000000000000000 0x0000000000020000 xr
+data             0x0000000000800060 0x000000000000ffa0 rw !x
+eeprom           0x0000000000810000 0x0000000000010000 rw !x
+fuse             0x0000000000820000 0x0000000000000400 rw !x
+lock             0x0000000000830000 0x0000000000000400 rw !x
+signature        0x0000000000840000 0x0000000000000400 rw !x
+*default*        0x0000000000000000 0xffffffffffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+LOAD hunter_prey.o
+LOAD main.o
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libm.a
+LOAD ../../../../code/lib/bin/libwireless.a
+LOAD ../../../../code/lib/bin/libdragonfly.a
+LOAD /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a
+LOAD /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text           0x0000000000000000     0x646e
+ *(.vectors)
+ .vectors       0x0000000000000000       0x8c /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x0000000000000000                __vectors
+                0x0000000000000000                __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ .progmem.data  0x000000000000008c      0x1e0 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+ .progmem.data  0x000000000000026c       0x90 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                0x00000000000002fc                . = ALIGN (0x2)
+                0x00000000000002fc                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x00000000000002fc        0x0 linker stubs
+ *(.trampolines*)
+                0x00000000000002fc                __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x00000000000002fc                __ctors_start = .
+ *(.ctors)
+                0x00000000000002fc                __ctors_end = .
+                0x00000000000002fc                __dtors_start = .
+ *(.dtors)
+                0x00000000000002fc                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x00000000000002fc        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x00000000000002fc                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x00000000000002fc        0xc /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x0000000000000308       0x1a /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x0000000000000308                __do_copy_data
+ .init4         0x0000000000000322       0x10 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+                0x0000000000000322                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x0000000000000332        0x8 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ *(.init9)
+ *(.text)
+ .text          0x000000000000033a        0x4 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                0x000000000000033a                __vector_22
+                0x000000000000033a                __vector_28
+                0x000000000000033a                __vector_1
+                0x000000000000033a                __vector_32
+                0x000000000000033a                __vector_34
+                0x000000000000033a                __vector_24
+                0x000000000000033a                __vector_12
+                0x000000000000033a                __bad_interrupt
+                0x000000000000033a                __vector_6
+                0x000000000000033a                __vector_31
+                0x000000000000033a                __vector_3
+                0x000000000000033a                __vector_23
+                0x000000000000033a                __vector_25
+                0x000000000000033a                __vector_11
+                0x000000000000033a                __vector_13
+                0x000000000000033a                __vector_19
+                0x000000000000033a                __vector_7
+                0x000000000000033a                __vector_27
+                0x000000000000033a                __vector_5
+                0x000000000000033a                __vector_33
+                0x000000000000033a                __vector_4
+                0x000000000000033a                __vector_9
+                0x000000000000033a                __vector_2
+                0x000000000000033a                __vector_29
+                0x000000000000033a                __vector_8
+                0x000000000000033a                __vector_14
+                0x000000000000033a                __vector_10
+                0x000000000000033a                __vector_18
+                0x000000000000033a                __vector_20
+ .text          0x000000000000033e       0x6e hunter_prey.o
+                0x000000000000033e                hunter_prey_tagged
+ .text          0x00000000000003ac      0x414 main.o
+                0x00000000000003ac                main
+ .text          0x00000000000007c0      0x2e0 ../../../../code/lib/bin/libwireless.a(wireless.o)
+                0x00000000000007ce                wl_register_packet_group
+                0x00000000000007f4                wl_unregister_packet_group
+                0x0000000000000830                wl_do
+                0x00000000000009aa                wl_send_pan_packet
+                0x00000000000009c8                wl_send_global_packet
+                0x00000000000009e8                wl_send_robot_to_robot_packet
+                0x0000000000000a02                wl_send_robot_to_robot_global_packet
+                0x0000000000000a1e                wl_get_xbee_id
+                0x0000000000000a24                wl_get_channel
+                0x0000000000000a2a                wl_set_channel
+                0x0000000000000a30                wl_get_pan
+                0x0000000000000a36                wl_set_pan
+                0x0000000000000a3c                wl_terminate
+                0x0000000000000a6c                wl_init
+ .text          0x0000000000000aa0      0x102 ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                0x0000000000000aa0                wl_basic_packet_receive_handler
+                0x0000000000000ac4                wl_basic_do_default
+                0x0000000000000afc                wl_basic_send_global_packet
+                0x0000000000000b14                wl_basic_send_robot_packet
+                0x0000000000000b38                wl_basic_register_handler
+                0x0000000000000b6e                wl_basic_init
+                0x0000000000000b98                wl_basic_init_default
+ .text          0x0000000000000ba2      0x794 ../../../../code/lib/bin/libwireless.a(xbee.o)
+                0x0000000000000ba2                __vector_30
+                0x0000000000000c0c                xbee_get_packet
+                0x0000000000000e70                xbee_get_pan_id
+                0x0000000000000e7a                xbee_get_channel
+                0x0000000000000e84                xbee_get_address
+                0x0000000000000fa6                xbee_set_channel
+                0x0000000000000fea                xbee_set_pan_id
+                0x000000000000101e                xbee_reset
+                0x000000000000104e                xbee_terminate
+                0x000000000000105c                xbee_send_packet
+                0x00000000000011ac                xbee_lib_init
+ .text          0x0000000000001336      0x32e ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                0x0000000000001336                analog_init
+                0x00000000000013a8                analog8
+                0x00000000000013cc                analog10
+                0x00000000000013ee                analog_start_loop
+                0x000000000000140c                analog_stop_loop
+                0x000000000000141a                analog_loop_status
+                0x0000000000001426                analog_get8
+                0x000000000000146e                analog_get10
+                0x00000000000014d2                wheel
+                0x00000000000014da                set_adc_mux
+                0x00000000000014fc                __vector_21
+ .text          0x0000000000001664      0xbac ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                0x0000000000001664                bom_get
+                0x0000000000001674                bom_get_max
+                0x00000000000016ac                bom_get_max10
+                0x0000000000001b3e                bom_off
+                0x0000000000001b68                bom_on
+                0x0000000000001b92                bom_set_leds
+                0x0000000000001bee                bom_init
+                0x0000000000001c8a                bom_refresh
+                0x0000000000001da6                get_max_bom
+                0x0000000000001de6                bom_print_usb
+                0x0000000000001f16                bom_get_norm_vector
+                0x00000000000020ba                bom_get_vector
+ .text          0x0000000000002210      0x590 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                0x0000000000002210                digital_input
+                0x0000000000002352                digital_pull_up
+                0x000000000000243c                digital_output
+                0x0000000000002674                button1_read
+                0x000000000000269a                button1_click
+                0x00000000000026e0                button2_read
+                0x000000000000270a                button2_click
+                0x0000000000002750                button2_wait
+                0x0000000000002778                button1_wait
+ .text          0x00000000000027a0       0xec ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                0x00000000000027a0                flash_red
+                0x0000000000002800                dragonfly_init
+ .text          0x000000000000288c       0xb6 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                0x000000000000288c                eeprom_put_byte
+                0x00000000000028a0                eeprom_get_byte
+                0x00000000000028b6                get_robotid
+                0x00000000000028f2                get_bom_type
+ .text          0x0000000000002942      0x562 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                0x0000000000002942                encoder_read
+                0x0000000000002966                encoder_get_x
+                0x000000000000298a                encoder_get_dx
+                0x00000000000029ae                encoder_rst_dx
+                0x00000000000029ca                encoder_get_tc
+                0x00000000000029d4                encoder_rst_tc
+                0x00000000000029e6                encoder_wait
+                0x0000000000002a00                encoder_recv
+                0x0000000000002cb8                left_data_at
+                0x0000000000002cd6                right_data_at
+                0x0000000000002cf4                get_dx
+                0x0000000000002dbc                encoder_get_v
+                0x0000000000002e12                encoders_init
+                0x0000000000002e86                encoder_recv_complete
+ .text          0x0000000000002ea4      0x1a8 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                0x0000000000002ea4                lcd_clear_screen
+                0x0000000000002ece                lcd_putc
+                0x0000000000002efe                lcd_puts
+                0x0000000000002f18                lcd_gotoxy
+                0x0000000000002f30                lcd_puti
+                0x0000000000002fda                lcd_putbyte
+                0x0000000000002fe2                lcd_init
+ .text          0x000000000000304c      0x82e ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x000000000000304c                __vector_16
+                0x0000000000003126                __vector_15
+                0x00000000000034de                orb_n_set
+                0x000000000000351a                orb1_set
+                0x000000000000354a                orb2_set
+                0x000000000000357a                orb_set
+                0x00000000000035b6                orbs_set
+                0x00000000000035fa                orb_n_set_color
+                0x0000000000003656                orb1_set_color
+                0x00000000000036a4                orb2_set_color
+                0x00000000000036f2                orb_set_color
+                0x0000000000003740                orbs_set_color
+                0x00000000000037fa                orb_enable_timer
+                0x0000000000003806                orb_disable_timer
+                0x000000000000380e                orb_set_mode
+                0x0000000000003838                orb_init_binary
+                0x0000000000003856                orb_init_pwm
+                0x0000000000003874                orb_init
+ .text          0x000000000000387a       0x96 ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                0x000000000000387a                motors_init
+                0x000000000000389e                motor_l_set
+                0x00000000000038ce                motor_r_set
+                0x00000000000038fe                motor1_set
+                0x0000000000003904                motor2_set
+                0x000000000000390a                motors_off
+ .text          0x0000000000003910      0x38c ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                0x0000000000003910                linearize_distance
+                0x0000000000003934                get_range_index
+                0x000000000000397e                butter_filter
+                0x0000000000003b2a                butter_init
+                0x0000000000003b4e                range_read_distance
+                0x0000000000003b76                range_read_filtered_distance
+                0x0000000000003c06                butter_task
+                0x0000000000003c62                range_init
+                0x0000000000003c78                range_init_filter
+ .text          0x0000000000003c9c      0x252 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                0x0000000000003c9c                usb_init
+                0x0000000000003cb8                xbee_init
+                0x0000000000003ce2                usb_putc
+                0x0000000000003cee                xbee_putc
+                0x0000000000003d02                usb_puts
+                0x0000000000003d1a                usb_getc
+                0x0000000000003d24                xbee_getc
+                0x0000000000003d34                usb_getc_nb
+                0x0000000000003d4c                xbee_getc_nb
+                0x0000000000003d6a                usb_puti
+                0x0000000000003e08                hex_digit
+                0x0000000000003e1c                usb_puth16
+                0x0000000000003e7a                usb_puth8
+                0x0000000000003ea4                usb_puts_P
+ .text          0x0000000000003eee       0xbc ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                0x0000000000003eee                spi_init
+                0x0000000000003f16                spi_transfer
+                0x0000000000003f22                __vector_17
+ .text          0x0000000000003faa      0x108 ../../../../code/lib/bin/libdragonfly.a(time.o)
+                0x0000000000003faa                delay_ms
+                0x0000000000003fc0                rtc_init
+                0x0000000000004000                rtc_get
+                0x000000000000400c                rtc_reset
+                0x0000000000004016                __vector_26
+ .text          0x00000000000040b2       0x6a ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                0x00000000000040b2                buzzer_init
+                0x00000000000040b4                buzzer_set_val
+                0x00000000000040be                buzzer_set_freq
+                0x00000000000040f2                buzzer_off
+                0x00000000000040fc                buzzer_chirp
+ .text          0x000000000000411c        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+ .text          0x000000000000411c        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+ .text          0x000000000000411c        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .text          0x000000000000411c        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .text          0x000000000000411c       0xfe /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                0x000000000000411c                __ashldi3
+ .text          0x000000000000421a     0x1050 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                0x000000000000421a                __divdi3
+ .text          0x000000000000526a     0x107a /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                0x000000000000526a                __moddi3
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+ .text          0x00000000000062e4        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                0x00000000000062e4                . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc   0x00000000000062e4       0x26 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+                0x00000000000062e4                __divmodhi4
+                0x00000000000062e4                _div
+ .text.libgcc   0x000000000000630a       0x36 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+                0x000000000000630a                __divmodsi4
+ .text.libgcc   0x0000000000006340        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .text.libgcc   0x0000000000006340        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .text.libgcc   0x0000000000006340       0x3e /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+                0x0000000000006340                __mulsi3
+ .text.libgcc   0x000000000000637e       0x28 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+                0x000000000000637e                __udivmodhi4
+ .text.libgcc   0x00000000000063a6       0x44 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+                0x00000000000063a6                __udivmodsi4
+ .text.libgcc   0x00000000000063ea       0x38 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+                0x00000000000063ea                __prologue_saves__
+ .text.libgcc   0x0000000000006422       0x36 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+                0x0000000000006422                __epilogue_restores__
+ .text.avr-libc
+                0x0000000000006458       0x12 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                0x0000000000006458                memcpy_P
+                0x000000000000646a                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x000000000000646a        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+                0x000000000000646a                exit
+                0x000000000000646a                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x000000000000646a        0x4 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ *(.fini0)
+                0x000000000000646e                _etext = .
+
+.data           0x0000000000800100      0x1c4 load address 0x000000000000646e
+                0x0000000000800100                PROVIDE (__data_start, .)
+ *(.data)
+ .data          0x0000000000800100        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ .data          0x0000000000800100       0x12 hunter_prey.o
+ .data          0x0000000000800112        0x0 main.o
+ .data          0x0000000000800112        0x0 ../../../../code/lib/bin/libwireless.a(wireless.o)
+ .data          0x0000000000800112        0x0 ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+ .data          0x0000000000800112       0x30 ../../../../code/lib/bin/libwireless.a(xbee.o)
+ .data          0x0000000000800142        0x0 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+ .data          0x0000000000800142       0x56 ../../../../code/lib/bin/libdragonfly.a(bom.o)
+ .data          0x0000000000800198        0x0 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+ .data          0x0000000000800198        0x0 ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+ .data          0x0000000000800198        0x0 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+ .data          0x0000000000800198        0x0 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+ .data          0x0000000000800198        0x6 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+ .data          0x000000000080019e        0xd ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x000000000080019e                orb_mask
+                0x00000000008001a4                enable_orb_pwm
+                0x00000000008001a5                pwm_read_buffer
+                0x00000000008001a7                pwm_write_buffer
+                0x00000000008001a9                pwm_free_buffer
+ .data          0x00000000008001ab        0x0 ../../../../code/lib/bin/libdragonfly.a(motor.o)
+ .data          0x00000000008001ab        0x0 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+ .data          0x00000000008001ab       0x17 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+ .data          0x00000000008001c2        0x0 ../../../../code/lib/bin/libdragonfly.a(spi.o)
+ .data          0x00000000008001c2        0x2 ../../../../code/lib/bin/libdragonfly.a(time.o)
+ .data          0x00000000008001c4        0x0 ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+ .data          0x00000000008001c4        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+ .data          0x00000000008001c4      0x100 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                0x00000000008001c4                __clz_tab
+ .data          0x00000000008002c4        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+                0x00000000008002c4                . = ALIGN (0x2)
+                0x00000000008002c4                _edata = .
+                0x00000000008002c4                PROVIDE (__data_end, .)
+
+.bss            0x00000000008002c4      0x33a
+                0x00000000008002c4                PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss           0x00000000008002c4        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ .bss           0x00000000008002c4        0x2 hunter_prey.o
+ .bss           0x00000000008002c6        0x0 main.o
+ .bss           0x00000000008002c6       0xa2 ../../../../code/lib/bin/libwireless.a(wireless.o)
+ .bss           0x0000000000800368        0x0 ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+ .bss           0x0000000000800368       0x78 ../../../../code/lib/bin/libwireless.a(xbee.o)
+                0x0000000000800368                buffer_last
+                0x000000000080036a                buffer_first
+ .bss           0x00000000008003e0        0x6 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                0x00000000008003e0                adc_loop_status
+                0x00000000008003e2                adc_sig_stop_loop
+                0x00000000008003e4                adc_current_port
+ .bss           0x00000000008003e6       0x2b ../../../../code/lib/bin/libdragonfly.a(bom.o)
+ .bss           0x0000000000800411        0x0 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+ .bss           0x0000000000800411        0x0 ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+ .bss           0x0000000000800411        0x0 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+ .bss           0x0000000000800411        0x0 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+ .bss           0x0000000000800411        0x0 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+ .bss           0x0000000000800411        0x3 ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x0000000000800411                pwm_page_flip
+                0x0000000000800412                current_pwm_channel
+                0x0000000000800413                orb_lock
+ .bss           0x0000000000800414        0x0 ../../../../code/lib/bin/libdragonfly.a(motor.o)
+ .bss           0x0000000000800414       0x2a ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+ .bss           0x000000000080043e        0x0 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+ .bss           0x000000000080043e        0x5 ../../../../code/lib/bin/libdragonfly.a(spi.o)
+ .bss           0x0000000000800443        0x6 ../../../../code/lib/bin/libdragonfly.a(time.o)
+ .bss           0x0000000000800449        0x0 ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+ .bss           0x0000000000800449        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON         0x0000000000800449       0x18 main.o
+                0x0000000000800449                data_length
+                0x000000000080044b                packet_data
+                0x000000000080044d                current_packet
+                0x0000000000800455                send_buffer
+                0x0000000000800457                wl_basic_group_handler
+ COMMON         0x0000000000800461       0x80 ../../../../code/lib/bin/libwireless.a(xbee.o)
+                0x0000000000800461                arrival_buf
+ COMMON         0x00000000008004e1       0x21 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                0x00000000008004e1                an_val
+ COMMON         0x0000000000800502       0xcf ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                0x0000000000800502                data_ready
+                0x0000000000800504                right_data
+                0x0000000000800506                left_data_buf
+                0x0000000000800508                left_data_array
+                0x0000000000800564                left_data_idx
+                0x0000000000800566                right_dx
+                0x0000000000800568                timecount
+                0x000000000080056c                encoder_buf_index
+                0x000000000080056d                right_data_array
+                0x00000000008005c9                left_dx
+                0x00000000008005cb                right_data_idx
+                0x00000000008005cd                right_data_buf
+                0x00000000008005cf                left_data
+ COMMON         0x00000000008005d1       0x2d ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                0x00000000008005d1                pwm_buffer
+                0x00000000008005f8                orb_values
+                0x00000000008005fe                PROVIDE (__bss_end, .)
+                0x000000000000646e                __data_load_start = LOADADDR (.data)
+                0x0000000000006632                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x00000000008005fe        0x0
+                0x00000000008005fe                PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                0x00000000008005fe                PROVIDE (__noinit_end, .)
+                0x00000000008005fe                _end = .
+                0x00000000008005fe                PROVIDE (__heap_start, .)
+
+.eeprom         0x0000000000810000        0x0
+ *(.eeprom*)
+                0x0000000000810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab           0x0000000000000000     0x77f4
+ *(.stab)
+ .stab          0x0000000000000000      0x750 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+ .stab          0x0000000000000750      0xabc ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                        0xac8 (size before relaxing)
+ .stab          0x000000000000120c      0xd8c ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                       0x1008 (size before relaxing)
+ .stab          0x0000000000001f98      0x8c4 ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                        0xa80 (size before relaxing)
+ .stab          0x000000000000285c      0x4e0 ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                        0x798 (size before relaxing)
+ .stab          0x0000000000002d3c      0x444 ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                        0x600 (size before relaxing)
+ .stab          0x0000000000003180      0xce4 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                        0xea0 (size before relaxing)
+ .stab          0x0000000000003e64      0x768 ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                        0x9cc (size before relaxing)
+ .stab          0x00000000000045cc     0x11e8 ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                       0x14d0 (size before relaxing)
+ .stab          0x00000000000057b4      0x48c ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                        0x648 (size before relaxing)
+ .stab          0x0000000000005c40      0x768 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                        0x9d8 (size before relaxing)
+ .stab          0x00000000000063a8      0x960 ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                        0xbd0 (size before relaxing)
+ .stab          0x0000000000006d08      0x330 ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                        0x51c (size before relaxing)
+ .stab          0x0000000000007038      0x3f0 ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                        0x5b8 (size before relaxing)
+ .stab          0x0000000000007428      0x348 ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                        0x504 (size before relaxing)
+ .stab          0x0000000000007770       0x84 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                                         0x90 (size before relaxing)
+
+.stabstr        0x0000000000000000     0x220d
+ *(.stabstr)
+ .stabstr       0x0000000000000000     0x220d /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(main.elf elf32-avr)
+LOAD linker stubs
+
+Cross Reference Table
+
+Symbol                                            File
+__ashldi3                                         /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__bad_interrupt                                   /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__bss_end                                         /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+__bss_start                                       /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+__clz_tab                                         /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__data_end                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__data_load_start                                 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__data_start                                      /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__divdi3                                          /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__divmodhi4                                       /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__divmodsi4                                       /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__do_clear_bss                                    /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clear_bss.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  main.o
+                                                  hunter_prey.o
+__do_copy_data                                    /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_clz.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_ashldi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  main.o
+                                                  hunter_prey.o
+__epilogue_restores__                             /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_epilogue.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__heap_end                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__init                                            /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__moddi3                                          /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+__mulsi3                                          /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_mulsi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__prologue_saves__                                /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_prologue.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+__stack                                           /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__udivmodhi4                                      /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodhi4.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+__udivmodsi4                                      /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_udivmodsi4.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_moddi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divdi3.o)
+                                                  /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodsi4.o)
+__vector_1                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_10                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_11                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_12                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_13                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_14                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_15                                       ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_16                                       ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_17                                       ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_18                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_19                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_2                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_20                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_21                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_22                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_23                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_24                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_25                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_26                                       ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_27                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_28                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_29                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_3                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_30                                       ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_31                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_32                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_33                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_34                                       /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_4                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_5                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_6                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_7                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_8                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_9                                        /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vector_default                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+__vectors                                         /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+_div                                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_divmodhi4.o)
+_exit                                             /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+adc_current_port                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+adc_loop_status                                   ../../../../code/lib/bin/libdragonfly.a(analog.o)
+adc_sig_stop_loop                                 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+an_val                                            ../../../../code/lib/bin/libdragonfly.a(analog.o)
+analog10                                          ../../../../code/lib/bin/libdragonfly.a(analog.o)
+analog8                                           ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+analog_get10                                      ../../../../code/lib/bin/libdragonfly.a(analog.o)
+analog_get8                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+analog_init                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+analog_loop_status                                ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+analog_start_loop                                 ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+analog_stop_loop                                  ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+arrival_buf                                       ../../../../code/lib/bin/libwireless.a(xbee.o)
+bom_get                                           ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_get_max                                       ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  main.o
+bom_get_max10                                     ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_get_norm_vector                               ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_get_vector                                    ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_init                                          ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+bom_off                                           ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  main.o
+bom_on                                            ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  main.o
+bom_print_usb                                     ../../../../code/lib/bin/libdragonfly.a(bom.o)
+bom_refresh                                       ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  main.o
+bom_set_leds                                      ../../../../code/lib/bin/libdragonfly.a(bom.o)
+buffer_first                                      ../../../../code/lib/bin/libwireless.a(xbee.o)
+buffer_last                                       ../../../../code/lib/bin/libwireless.a(xbee.o)
+butter_filter                                     ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+butter_init                                       ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+butter_task                                       ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+button1_click                                     ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button1_read                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button1_wait                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button2_click                                     ../../../../code/lib/bin/libdragonfly.a(dio.o)
+button2_read                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  main.o
+button2_wait                                      ../../../../code/lib/bin/libdragonfly.a(dio.o)
+buzzer_chirp                                      ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+buzzer_init                                       ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+buzzer_off                                        ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+buzzer_set_freq                                   ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+buzzer_set_val                                    ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+current_packet                                    ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  main.o
+current_pwm_channel                               ../../../../code/lib/bin/libdragonfly.a(lights.o)
+data_length                                       main.o
+data_ready                                        ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+delay_ms                                          ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(buzzer.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  main.o
+digital_input                                     ../../../../code/lib/bin/libdragonfly.a(dio.o)
+digital_output                                    ../../../../code/lib/bin/libdragonfly.a(dio.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+digital_pull_up                                   ../../../../code/lib/bin/libdragonfly.a(dio.o)
+dragonfly_init                                    ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  main.o
+eeprom_get_byte                                   ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+eeprom_put_byte                                   ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+enable_orb_pwm                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+encoder_buf_index                                 ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_dx                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_tc                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_v                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_get_x                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_read                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_recv                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_recv_complete                             ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_rst_dx                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_rst_tc                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoder_wait                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+encoders_init                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+exit                                              /usr/lib/gcc/avr/4.3.4/avr51/libgcc.a(_exit.o)
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+flash_red                                         ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+get_bom_type                                      ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+get_dx                                            ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+get_max_bom                                       ../../../../code/lib/bin/libdragonfly.a(bom.o)
+get_range_index                                   ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+get_robotid                                       ../../../../code/lib/bin/libdragonfly.a(eeprom.o)
+                                                  main.o
+hex_digit                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+hunter_prey_tagged                                hunter_prey.o
+                                                  main.o
+lcd_clear_screen                                  ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_gotoxy                                        ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_init                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+lcd_putbyte                                       ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_putc                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_puti                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+lcd_puts                                          ../../../../code/lib/bin/libdragonfly.a(lcd.o)
+left_data                                         ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_array                                   ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_at                                      ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_buf                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_data_idx                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+left_dx                                           ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+linearize_distance                                ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+main                                              main.o
+                                                  /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/crtm128.o
+memcpy_P                                          /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr51/libc.a(memcpy_P.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(serial.o)
+motor1_set                                        ../../../../code/lib/bin/libdragonfly.a(motor.o)
+motor2_set                                        ../../../../code/lib/bin/libdragonfly.a(motor.o)
+motor_l_set                                       ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  main.o
+motor_r_set                                       ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  main.o
+motors_init                                       ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  main.o
+motors_off                                        ../../../../code/lib/bin/libdragonfly.a(motor.o)
+                                                  main.o
+orb1_set                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb1_set_color                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  main.o
+orb2_set                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb2_set_color                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  main.o
+orb_disable_timer                                 ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_enable_timer                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_init                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  main.o
+orb_init_binary                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_init_pwm                                      ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_lock                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_mask                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_n_set                                         ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_n_set_color                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_set                                           ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_set_color                                     ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_set_mode                                      ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orb_values                                        ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orbs_set                                          ../../../../code/lib/bin/libdragonfly.a(lights.o)
+orbs_set_color                                    ../../../../code/lib/bin/libdragonfly.a(lights.o)
+packet_data                                       main.o
+pwm_buffer                                        ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_free_buffer                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_page_flip                                     ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_read_buffer                                   ../../../../code/lib/bin/libdragonfly.a(lights.o)
+pwm_write_buffer                                  ../../../../code/lib/bin/libdragonfly.a(lights.o)
+range_init                                        ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+range_init_filter                                 ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+range_read_distance                               ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  main.o
+range_read_filtered_distance                      ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+right_data                                        ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_array                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_at                                     ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_buf                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_data_idx                                    ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+right_dx                                          ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+rtc_get                                           ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  main.o
+rtc_init                                          ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(rangefinder.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  main.o
+rtc_reset                                         ../../../../code/lib/bin/libdragonfly.a(time.o)
+                                                  main.o
+send_buffer                                       main.o
+set_adc_mux                                       ../../../../code/lib/bin/libdragonfly.a(analog.o)
+spi_init                                          ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+spi_transfer                                      ../../../../code/lib/bin/libdragonfly.a(spi.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+timecount                                         ../../../../code/lib/bin/libdragonfly.a(encoders.o)
+usb_getc                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_getc_nb                                       ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_init                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+usb_putc                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+usb_puth16                                        ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_puth8                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+usb_puti                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+usb_puts                                          ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(bom.o)
+                                                  hunter_prey.o
+usb_puts_P                                        ../../../../code/lib/bin/libdragonfly.a(serial.o)
+wheel                                             ../../../../code/lib/bin/libdragonfly.a(analog.o)
+                                                  main.o
+wl_basic_do_default                               ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  main.o
+wl_basic_group_handler                            ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  main.o
+wl_basic_init                                     ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_basic_init_default                             ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  main.o
+wl_basic_packet_receive_handler                   ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_basic_register_handler                         ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_basic_send_global_packet                       ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+                                                  main.o
+wl_basic_send_robot_packet                        ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_do                                             ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_get_channel                                    ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_get_pan                                        ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_get_xbee_id                                    ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_init                                           ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_register_packet_group                          ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_send_global_packet                             ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_send_pan_packet                                ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_send_robot_to_robot_global_packet              ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wl_basic.o)
+wl_send_robot_to_robot_packet                     ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_set_channel                                    ../../../../code/lib/bin/libwireless.a(wireless.o)
+                                                  main.o
+wl_set_pan                                        ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_terminate                                      ../../../../code/lib/bin/libwireless.a(wireless.o)
+wl_unregister_packet_group                        ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_address                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_channel                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_packet                                   ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_get_pan_id                                   ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_getc                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+xbee_getc_nb                                      ../../../../code/lib/bin/libdragonfly.a(serial.o)
+xbee_init                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libdragonfly.a(dragonfly_lib.o)
+                                                  main.o
+xbee_lib_init                                     ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_putc                                         ../../../../code/lib/bin/libdragonfly.a(serial.o)
+                                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+xbee_reset                                        ../../../../code/lib/bin/libwireless.a(xbee.o)
+xbee_send_packet                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_set_channel                                  ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_set_pan_id                                   ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
+xbee_terminate                                    ../../../../code/lib/bin/libwireless.a(xbee.o)
+                                                  ../../../../code/lib/bin/libwireless.a(wireless.o)
Index: trunk/code/behaviors/hunter_prey/james/main.lss
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.lss	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.lss	(revision 1847)
@@ -0,0 +1,15354 @@
+
+main.elf:     file format elf32-avr
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .data         000001c4  00800100  0000646e  00006502  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  1 .text         0000646e  00000000  00000000  00000094  2**1
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .bss          0000033a  008002c4  008002c4  000066c6  2**0
+                  ALLOC
+  3 .stab         000077f4  00000000  00000000  000066c8  2**2
+                  CONTENTS, READONLY, DEBUGGING
+  4 .stabstr      0000220d  00000000  00000000  0000debc  2**0
+                  CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+       0:	0c 94 7e 01 	jmp	0x2fc	; 0x2fc <__ctors_end>
+       4:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+       8:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+       c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      10:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      14:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      18:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      1c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      20:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      24:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      28:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      2c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      30:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      34:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      38:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      3c:	0c 94 93 18 	jmp	0x3126	; 0x3126 <__vector_15>
+      40:	0c 94 26 18 	jmp	0x304c	; 0x304c <__vector_16>
+      44:	0c 94 91 1f 	jmp	0x3f22	; 0x3f22 <__vector_17>
+      48:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      4c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      50:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      54:	0c 94 7e 0a 	jmp	0x14fc	; 0x14fc <__vector_21>
+      58:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      5c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      60:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      64:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      68:	0c 94 0b 20 	jmp	0x4016	; 0x4016 <__vector_26>
+      6c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      70:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      74:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      78:	0c 94 d1 05 	jmp	0xba2	; 0xba2 <__vector_30>
+      7c:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      80:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      84:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+      88:	0c 94 9d 01 	jmp	0x33a	; 0x33a <__bad_interrupt>
+
+0000008c <FontLookup>:
+      8c:	00 00 00 00 00 00 00 5f 00 00 00 07 00 07 00 14     ......._........
+      9c:	7f 14 7f 14 24 2a 7f 2a 12 23 13 08 64 62 36 49     ....$*.*.#..db6I
+      ac:	55 22 50 00 05 03 00 00 00 1c 22 41 00 00 41 22     U"P......."A..A"
+      bc:	1c 00 14 08 3e 08 14 08 08 3e 08 08 00 00 50 30     ....>....>....P0
+      cc:	00 10 10 10 10 10 00 60 60 00 00 20 10 08 04 02     .......``.. ....
+      dc:	3e 51 49 45 3e 00 42 7f 40 00 42 61 51 49 46 21     >QIE>.B.@.BaQIF!
+      ec:	41 45 4b 31 18 14 12 7f 10 27 45 45 45 39 3c 4a     AEK1.....'EEE9<J
+      fc:	49 49 30 01 71 09 05 03 36 49 49 49 36 06 49 49     II0.q...6III6.II
+     10c:	29 1e 00 36 36 00 00 00 56 36 00 00 08 14 22 41     )..66...V6...."A
+     11c:	00 14 14 14 14 14 00 41 22 14 08 02 01 51 09 06     .......A"....Q..
+     12c:	32 49 59 51 3e 7e 11 11 11 7e 7f 49 49 49 36 3e     2IYQ>~...~.III6>
+     13c:	41 41 41 22 7f 41 41 22 1c 7f 49 49 49 41 7f 09     AAA".AA"..IIIA..
+     14c:	09 09 01 3e 41 49 49 7a 7f 08 08 08 7f 00 41 7f     ...>AIIz......A.
+     15c:	41 00 20 40 41 3f 01 7f 08 14 22 41 7f 40 40 40     A. @A?...."A.@@@
+     16c:	40 7f 02 0c 02 7f 7f 04 08 10 7f 3e 41 41 41 3e     @..........>AAA>
+     17c:	7f 09 09 09 06 3e 41 51 21 5e 7f 09 19 29 46 46     .....>AQ!^...)FF
+     18c:	49 49 49 31 01 01 7f 01 01 3f 40 40 40 3f 1f 20     III1.....?@@@?. 
+     19c:	40 20 1f 3f 40 38 40 3f 63 14 08 14 63 07 08 70     @ .?@8@?c...c..p
+     1ac:	08 07 61 51 49 45 43 00 7f 41 41 00 02 04 08 10     ..aQIEC..AA.....
+     1bc:	20 00 41 41 7f 00 04 02 01 02 04 40 40 40 40 40      .AA.......@@@@@
+     1cc:	00 01 02 04 00 20 54 54 54 78 7f 48 44 44 38 38     ..... TTTx.HDD88
+     1dc:	44 44 44 20 38 44 44 48 7f 38 54 54 54 18 08 7e     DDD 8DDH.8TTT..~
+     1ec:	09 01 02 0c 52 52 52 3e 7f 08 04 04 78 00 44 7d     ....RRR>....x.D}
+     1fc:	40 00 20 40 44 3d 00 7f 10 28 44 00 00 41 7f 40     @. @D=...(D..A.@
+     20c:	00 7c 04 18 04 78 7c 08 04 04 78 38 44 44 44 38     .|...x|...x8DDD8
+     21c:	7c 14 14 14 08 08 14 14 18 7c 7c 08 04 04 08 48     |........||....H
+     22c:	54 54 54 20 04 3f 44 40 20 3c 40 40 20 7c 1c 20     TTT .?D@ <@@ |. 
+     23c:	40 20 1c 3c 40 30 40 3c 44 28 10 28 44 0c 50 50     @ .<@0@<D(.(D.PP
+     24c:	50 3c 44 64 54 4c 44 00 08 36 41 41 00 00 7f 00     P<DdTLD..6AA....
+     25c:	00 41 41 36 08 00 02 01 01 02 01 55 2a 55 2a 55     .AA6.......U*U*U
+
+0000026c <IR_dist_conversion>:
+     26c:	47 01 3b 01 2f 01 23 01 19 01 0f 01 06 01 fd 00     G.;./.#.........
+     27c:	f5 00 ee 00 e7 00 e0 00 da 00 d4 00 ce 00 c8 00     ................
+     28c:	c3 00 be 00 b9 00 b5 00 b1 00 ad 00 a8 00 a5 00     ................
+     29c:	a1 00 9e 00 9b 00 97 00 94 00 91 00 8f 00 8c 00     ................
+     2ac:	89 00 86 00 84 00 82 00 7f 00 7d 00 7b 00 79 00     ..........}.{.y.
+     2bc:	77 00 75 00 73 00 72 00 6f 00 6e 00 6c 00 6a 00     w.u.s.r.o.n.l.j.
+     2cc:	69 00 68 00 66 00 64 00 63 00 62 00 61 00 5f 00     i.h.f.d.c.b.a._.
+     2dc:	5e 00 5d 00 5b 00 5a 00 59 00 58 00 57 00 56 00     ^.].[.Z.Y.X.W.V.
+     2ec:	54 00 53 00 53 00 52 00 51 00 50 00 4f 00 4e 00     T.S.S.R.Q.P.O.N.
+
+000002fc <__ctors_end>:
+     2fc:	11 24       	eor	r1, r1
+     2fe:	1f be       	out	0x3f, r1	; 63
+     300:	cf ef       	ldi	r28, 0xFF	; 255
+     302:	d0 e1       	ldi	r29, 0x10	; 16
+     304:	de bf       	out	0x3e, r29	; 62
+     306:	cd bf       	out	0x3d, r28	; 61
+
+00000308 <__do_copy_data>:
+     308:	12 e0       	ldi	r17, 0x02	; 2
+     30a:	a0 e0       	ldi	r26, 0x00	; 0
+     30c:	b1 e0       	ldi	r27, 0x01	; 1
+     30e:	ee e6       	ldi	r30, 0x6E	; 110
+     310:	f4 e6       	ldi	r31, 0x64	; 100
+     312:	00 e0       	ldi	r16, 0x00	; 0
+     314:	0b bf       	out	0x3b, r16	; 59
+     316:	02 c0       	rjmp	.+4      	; 0x31c <__do_copy_data+0x14>
+     318:	07 90       	elpm	r0, Z+
+     31a:	0d 92       	st	X+, r0
+     31c:	a4 3c       	cpi	r26, 0xC4	; 196
+     31e:	b1 07       	cpc	r27, r17
+     320:	d9 f7       	brne	.-10     	; 0x318 <__do_copy_data+0x10>
+
+00000322 <__do_clear_bss>:
+     322:	15 e0       	ldi	r17, 0x05	; 5
+     324:	a4 ec       	ldi	r26, 0xC4	; 196
+     326:	b2 e0       	ldi	r27, 0x02	; 2
+     328:	01 c0       	rjmp	.+2      	; 0x32c <.do_clear_bss_start>
+
+0000032a <.do_clear_bss_loop>:
+     32a:	1d 92       	st	X+, r1
+
+0000032c <.do_clear_bss_start>:
+     32c:	ae 3f       	cpi	r26, 0xFE	; 254
+     32e:	b1 07       	cpc	r27, r17
+     330:	e1 f7       	brne	.-8      	; 0x32a <.do_clear_bss_loop>
+     332:	0e 94 d6 01 	call	0x3ac	; 0x3ac <main>
+     336:	0c 94 35 32 	jmp	0x646a	; 0x646a <_exit>
+
+0000033a <__bad_interrupt>:
+     33a:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>
+
+0000033e <hunter_prey_tagged>:
+     33e:	02 97       	sbiw	r24, 0x02	; 2
+     340:	05 97       	sbiw	r24, 0x05	; 5
+     342:	48 f5       	brcc	.+82     	; 0x396 <hunter_prey_tagged+0x58>
+     344:	16 16       	cp	r1, r22
+     346:	17 06       	cpc	r1, r23
+     348:	7c f5       	brge	.+94     	; 0x3a8 <hunter_prey_tagged+0x6a>
+     34a:	66 39       	cpi	r22, 0x96	; 150
+     34c:	71 05       	cpc	r23, r1
+     34e:	34 f5       	brge	.+76     	; 0x39c <hunter_prey_tagged+0x5e>
+     350:	80 91 c4 02 	lds	r24, 0x02C4
+     354:	90 91 c5 02 	lds	r25, 0x02C5
+     358:	00 97       	sbiw	r24, 0x00	; 0
+     35a:	59 f4       	brne	.+22     	; 0x372 <hunter_prey_tagged+0x34>
+     35c:	83 e0       	ldi	r24, 0x03	; 3
+     35e:	90 e0       	ldi	r25, 0x00	; 0
+     360:	90 93 c5 02 	sts	0x02C5, r25
+     364:	80 93 c4 02 	sts	0x02C4, r24
+     368:	80 e0       	ldi	r24, 0x00	; 0
+     36a:	91 e0       	ldi	r25, 0x01	; 1
+     36c:	0e 94 81 1e 	call	0x3d02	; 0x3d02 <usb_puts>
+     370:	19 c0       	rjmp	.+50     	; 0x3a4 <hunter_prey_tagged+0x66>
+     372:	01 97       	sbiw	r24, 0x01	; 1
+     374:	90 93 c5 02 	sts	0x02C5, r25
+     378:	80 93 c4 02 	sts	0x02C4, r24
+     37c:	18 16       	cp	r1, r24
+     37e:	19 06       	cpc	r1, r25
+     380:	9c f0       	brlt	.+38     	; 0x3a8 <hunter_prey_tagged+0x6a>
+     382:	10 92 c5 02 	sts	0x02C5, r1
+     386:	10 92 c4 02 	sts	0x02C4, r1
+     38a:	8c e0       	ldi	r24, 0x0C	; 12
+     38c:	91 e0       	ldi	r25, 0x01	; 1
+     38e:	0e 94 81 1e 	call	0x3d02	; 0x3d02 <usb_puts>
+     392:	81 e0       	ldi	r24, 0x01	; 1
+     394:	08 95       	ret
+     396:	16 16       	cp	r1, r22
+     398:	17 06       	cpc	r1, r23
+     39a:	34 f4       	brge	.+12     	; 0x3a8 <hunter_prey_tagged+0x6a>
+     39c:	10 92 c5 02 	sts	0x02C5, r1
+     3a0:	10 92 c4 02 	sts	0x02C4, r1
+     3a4:	80 e0       	ldi	r24, 0x00	; 0
+     3a6:	08 95       	ret
+     3a8:	80 e0       	ldi	r24, 0x00	; 0
+     3aa:	08 95       	ret
+
+000003ac <main>:
+     3ac:	4f 92       	push	r4
+     3ae:	5f 92       	push	r5
+     3b0:	6f 92       	push	r6
+     3b2:	7f 92       	push	r7
+     3b4:	8f 92       	push	r8
+     3b6:	9f 92       	push	r9
+     3b8:	af 92       	push	r10
+     3ba:	bf 92       	push	r11
+     3bc:	cf 92       	push	r12
+     3be:	df 92       	push	r13
+     3c0:	ef 92       	push	r14
+     3c2:	ff 92       	push	r15
+     3c4:	0f 93       	push	r16
+     3c6:	1f 93       	push	r17
+     3c8:	cf 93       	push	r28
+     3ca:	df 93       	push	r29
+     3cc:	8f ef       	ldi	r24, 0xFF	; 255
+     3ce:	97 e0       	ldi	r25, 0x07	; 7
+     3d0:	0e 94 00 14 	call	0x2800	; 0x2800 <dragonfly_init>
+     3d4:	0e 94 5c 1e 	call	0x3cb8	; 0x3cb8 <xbee_init>
+     3d8:	0e 94 cc 05 	call	0xb98	; 0xb98 <wl_basic_init_default>
+     3dc:	8f e0       	ldi	r24, 0x0F	; 15
+     3de:	90 e0       	ldi	r25, 0x00	; 0
+     3e0:	0e 94 15 05 	call	0xa2a	; 0xa2a <wl_set_channel>
+     3e4:	0e 94 3a 1c 	call	0x3874	; 0x3874 <orb_init>
+     3e8:	81 e0       	ldi	r24, 0x01	; 1
+     3ea:	90 e0       	ldi	r25, 0x00	; 0
+     3ec:	60 e0       	ldi	r22, 0x00	; 0
+     3ee:	70 e0       	ldi	r23, 0x00	; 0
+     3f0:	0e 94 e0 1f 	call	0x3fc0	; 0x3fc0 <rtc_init>
+     3f4:	0e 94 3d 1c 	call	0x387a	; 0x387a <motors_init>
+     3f8:	0e 94 5b 14 	call	0x28b6	; 0x28b6 <get_robotid>
+     3fc:	58 2e       	mov	r5, r24
+     3fe:	0e 94 69 0a 	call	0x14d2	; 0x14d2 <wheel>
+     402:	84 36       	cpi	r24, 0x64	; 100
+     404:	91 05       	cpc	r25, r1
+     406:	1c f4       	brge	.+6      	; 0x40e <main+0x62>
+     408:	c3 e0       	ldi	r28, 0x03	; 3
+     40a:	d0 e0       	ldi	r29, 0x00	; 0
+     40c:	02 c0       	rjmp	.+4      	; 0x412 <main+0x66>
+     40e:	c0 e0       	ldi	r28, 0x00	; 0
+     410:	d0 e0       	ldi	r29, 0x00	; 0
+     412:	24 e5       	ldi	r18, 0x54	; 84
+     414:	42 2e       	mov	r4, r18
+     416:	c2 30       	cpi	r28, 0x02	; 2
+     418:	d1 05       	cpc	r29, r1
+     41a:	09 f4       	brne	.+2      	; 0x41e <main+0x72>
+     41c:	e1 c0       	rjmp	.+450    	; 0x5e0 <main+0x234>
+     41e:	c3 30       	cpi	r28, 0x03	; 3
+     420:	d1 05       	cpc	r29, r1
+     422:	34 f4       	brge	.+12     	; 0x430 <main+0x84>
+     424:	20 97       	sbiw	r28, 0x00	; 0
+     426:	61 f0       	breq	.+24     	; 0x440 <main+0x94>
+     428:	c1 30       	cpi	r28, 0x01	; 1
+     42a:	d1 05       	cpc	r29, r1
+     42c:	a1 f7       	brne	.-24     	; 0x416 <main+0x6a>
+     42e:	2b c0       	rjmp	.+86     	; 0x486 <main+0xda>
+     430:	c3 30       	cpi	r28, 0x03	; 3
+     432:	d1 05       	cpc	r29, r1
+     434:	09 f4       	brne	.+2      	; 0x438 <main+0x8c>
+     436:	eb c0       	rjmp	.+470    	; 0x60e <main+0x262>
+     438:	c4 30       	cpi	r28, 0x04	; 4
+     43a:	d1 05       	cpc	r29, r1
+     43c:	61 f7       	brne	.-40     	; 0x416 <main+0x6a>
+     43e:	90 c1       	rjmp	.+800    	; 0x760 <main+0x3b4>
+     440:	88 ee       	ldi	r24, 0xE8	; 232
+     442:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     446:	0e 94 b4 0d 	call	0x1b68	; 0x1b68 <bom_on>
+     44a:	80 e0       	ldi	r24, 0x00	; 0
+     44c:	90 e0       	ldi	r25, 0x00	; 0
+     44e:	68 ec       	ldi	r22, 0xC8	; 200
+     450:	70 e0       	ldi	r23, 0x00	; 0
+     452:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     456:	80 e0       	ldi	r24, 0x00	; 0
+     458:	90 e0       	ldi	r25, 0x00	; 0
+     45a:	68 ec       	ldi	r22, 0xC8	; 200
+     45c:	70 e0       	ldi	r23, 0x00	; 0
+     45e:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     462:	80 ed       	ldi	r24, 0xD0	; 208
+     464:	97 e0       	ldi	r25, 0x07	; 7
+     466:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+     46a:	89 e4       	ldi	r24, 0x49	; 73
+     46c:	94 e0       	ldi	r25, 0x04	; 4
+     46e:	0e 94 62 05 	call	0xac4	; 0xac4 <wl_basic_do_default>
+     472:	89 2b       	or	r24, r25
+     474:	d1 f7       	brne	.-12     	; 0x46a <main+0xbe>
+     476:	8c e1       	ldi	r24, 0x1C	; 28
+     478:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     47c:	0e 94 06 20 	call	0x400c	; 0x400c <rtc_reset>
+     480:	c1 e0       	ldi	r28, 0x01	; 1
+     482:	d0 e0       	ldi	r29, 0x00	; 0
+     484:	c8 cf       	rjmp	.-112    	; 0x416 <main+0x6a>
+     486:	8c e1       	ldi	r24, 0x1C	; 28
+     488:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     48c:	8c e1       	ldi	r24, 0x1C	; 28
+     48e:	0e 94 52 1b 	call	0x36a4	; 0x36a4 <orb2_set_color>
+     492:	66 24       	eor	r6, r6
+     494:	77 24       	eor	r7, r7
+     496:	cc 24       	eor	r12, r12
+     498:	dd 24       	eor	r13, r13
+     49a:	91 e0       	ldi	r25, 0x01	; 1
+     49c:	a9 2e       	mov	r10, r25
+     49e:	b1 2c       	mov	r11, r1
+     4a0:	02 c0       	rjmp	.+4      	; 0x4a6 <main+0xfa>
+     4a2:	aa 24       	eor	r10, r10
+     4a4:	bb 24       	eor	r11, r11
+     4a6:	85 e0       	ldi	r24, 0x05	; 5
+     4a8:	90 e0       	ldi	r25, 0x00	; 0
+     4aa:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+     4ae:	7c 01       	movw	r14, r24
+     4b0:	89 e4       	ldi	r24, 0x49	; 73
+     4b2:	94 e0       	ldi	r25, 0x04	; 4
+     4b4:	0e 94 62 05 	call	0xac4	; 0xac4 <wl_basic_do_default>
+     4b8:	fc 01       	movw	r30, r24
+     4ba:	90 93 4c 04 	sts	0x044C, r25
+     4be:	80 93 4b 04 	sts	0x044B, r24
+     4c2:	00 97       	sbiw	r24, 0x00	; 0
+     4c4:	29 f1       	breq	.+74     	; 0x510 <main+0x164>
+     4c6:	80 91 49 04 	lds	r24, 0x0449
+     4ca:	90 91 4a 04 	lds	r25, 0x044A
+     4ce:	02 97       	sbiw	r24, 0x02	; 2
+     4d0:	f9 f4       	brne	.+62     	; 0x510 <main+0x164>
+     4d2:	80 81       	ld	r24, Z
+     4d4:	84 35       	cpi	r24, 0x54	; 84
+     4d6:	e1 f4       	brne	.+56     	; 0x510 <main+0x164>
+     4d8:	81 e4       	ldi	r24, 0x41	; 65
+     4da:	80 93 55 04 	sts	0x0455, r24
+     4de:	81 81       	ldd	r24, Z+1	; 0x01
+     4e0:	80 93 56 04 	sts	0x0456, r24
+     4e4:	8a e2       	ldi	r24, 0x2A	; 42
+     4e6:	65 e5       	ldi	r22, 0x55	; 85
+     4e8:	74 e0       	ldi	r23, 0x04	; 4
+     4ea:	42 e0       	ldi	r20, 0x02	; 2
+     4ec:	50 e0       	ldi	r21, 0x00	; 0
+     4ee:	0e 94 7e 05 	call	0xafc	; 0xafc <wl_basic_send_global_packet>
+     4f2:	80 e0       	ldi	r24, 0x00	; 0
+     4f4:	90 e0       	ldi	r25, 0x00	; 0
+     4f6:	60 e0       	ldi	r22, 0x00	; 0
+     4f8:	70 e0       	ldi	r23, 0x00	; 0
+     4fa:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     4fe:	80 e0       	ldi	r24, 0x00	; 0
+     500:	90 e0       	ldi	r25, 0x00	; 0
+     502:	60 e0       	ldi	r22, 0x00	; 0
+     504:	70 e0       	ldi	r23, 0x00	; 0
+     506:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     50a:	c2 e0       	ldi	r28, 0x02	; 2
+     50c:	d0 e0       	ldi	r29, 0x00	; 0
+     50e:	83 cf       	rjmp	.-250    	; 0x416 <main+0x6a>
+     510:	86 e0       	ldi	r24, 0x06	; 6
+     512:	90 e0       	ldi	r25, 0x00	; 0
+     514:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+     518:	ec 01       	movw	r28, r24
+     51a:	84 e0       	ldi	r24, 0x04	; 4
+     51c:	90 e0       	ldi	r25, 0x00	; 0
+     51e:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+     522:	8c 01       	movw	r16, r24
+     524:	0e 94 00 20 	call	0x4000	; 0x4000 <rtc_get>
+     528:	2d ec       	ldi	r18, 0xCD	; 205
+     52a:	3f ef       	ldi	r19, 0xFF	; 255
+     52c:	e2 0e       	add	r14, r18
+     52e:	f3 1e       	adc	r15, r19
+     530:	35 e9       	ldi	r19, 0x95	; 149
+     532:	e3 16       	cp	r14, r19
+     534:	f1 04       	cpc	r15, r1
+     536:	d0 f4       	brcc	.+52     	; 0x56c <main+0x1c0>
+     538:	21 e0       	ldi	r18, 0x01	; 1
+     53a:	c2 16       	cp	r12, r18
+     53c:	d1 04       	cpc	r13, r1
+     53e:	b1 f0       	breq	.+44     	; 0x56c <main+0x1c0>
+     540:	80 ee       	ldi	r24, 0xE0	; 224
+     542:	0e 94 52 1b 	call	0x36a4	; 0x36a4 <orb2_set_color>
+     546:	0e 94 00 20 	call	0x4000	; 0x4000 <rtc_get>
+     54a:	3c 01       	movw	r6, r24
+     54c:	81 e0       	ldi	r24, 0x01	; 1
+     54e:	90 e0       	ldi	r25, 0x00	; 0
+     550:	6f ef       	ldi	r22, 0xFF	; 255
+     552:	70 e0       	ldi	r23, 0x00	; 0
+     554:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     558:	80 e0       	ldi	r24, 0x00	; 0
+     55a:	90 e0       	ldi	r25, 0x00	; 0
+     55c:	60 e0       	ldi	r22, 0x00	; 0
+     55e:	70 e0       	ldi	r23, 0x00	; 0
+     560:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     564:	81 e0       	ldi	r24, 0x01	; 1
+     566:	c8 2e       	mov	r12, r24
+     568:	d1 2c       	mov	r13, r1
+     56a:	9d cf       	rjmp	.-198    	; 0x4a6 <main+0xfa>
+     56c:	21 97       	sbiw	r28, 0x01	; 1
+     56e:	cb 52       	subi	r28, 0x2B	; 43
+     570:	d1 40       	sbci	r29, 0x01	; 1
+     572:	58 f4       	brcc	.+22     	; 0x58a <main+0x1de>
+     574:	21 e0       	ldi	r18, 0x01	; 1
+     576:	c2 16       	cp	r12, r18
+     578:	d1 04       	cpc	r13, r1
+     57a:	39 f0       	breq	.+14     	; 0x58a <main+0x1de>
+     57c:	80 e0       	ldi	r24, 0x00	; 0
+     57e:	90 e0       	ldi	r25, 0x00	; 0
+     580:	60 e0       	ldi	r22, 0x00	; 0
+     582:	70 e0       	ldi	r23, 0x00	; 0
+     584:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     588:	8e cf       	rjmp	.-228    	; 0x4a6 <main+0xfa>
+     58a:	01 50       	subi	r16, 0x01	; 1
+     58c:	10 40       	sbci	r17, 0x00	; 0
+     58e:	0b 52       	subi	r16, 0x2B	; 43
+     590:	11 40       	sbci	r17, 0x01	; 1
+     592:	58 f4       	brcc	.+22     	; 0x5aa <main+0x1fe>
+     594:	21 e0       	ldi	r18, 0x01	; 1
+     596:	c2 16       	cp	r12, r18
+     598:	d1 04       	cpc	r13, r1
+     59a:	39 f0       	breq	.+14     	; 0x5aa <main+0x1fe>
+     59c:	80 e0       	ldi	r24, 0x00	; 0
+     59e:	90 e0       	ldi	r25, 0x00	; 0
+     5a0:	60 e0       	ldi	r22, 0x00	; 0
+     5a2:	70 e0       	ldi	r23, 0x00	; 0
+     5a4:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     5a8:	7e cf       	rjmp	.-260    	; 0x4a6 <main+0xfa>
+     5aa:	86 19       	sub	r24, r6
+     5ac:	97 09       	sbc	r25, r7
+     5ae:	03 97       	sbiw	r24, 0x03	; 3
+     5b0:	2c f4       	brge	.+10     	; 0x5bc <main+0x210>
+     5b2:	31 e0       	ldi	r19, 0x01	; 1
+     5b4:	a3 16       	cp	r10, r19
+     5b6:	b1 04       	cpc	r11, r1
+     5b8:	09 f0       	breq	.+2      	; 0x5bc <main+0x210>
+     5ba:	73 cf       	rjmp	.-282    	; 0x4a2 <main+0xf6>
+     5bc:	83 e0       	ldi	r24, 0x03	; 3
+     5be:	0e 94 52 1b 	call	0x36a4	; 0x36a4 <orb2_set_color>
+     5c2:	81 e0       	ldi	r24, 0x01	; 1
+     5c4:	90 e0       	ldi	r25, 0x00	; 0
+     5c6:	6f ef       	ldi	r22, 0xFF	; 255
+     5c8:	70 e0       	ldi	r23, 0x00	; 0
+     5ca:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     5ce:	81 e0       	ldi	r24, 0x01	; 1
+     5d0:	90 e0       	ldi	r25, 0x00	; 0
+     5d2:	6f ef       	ldi	r22, 0xFF	; 255
+     5d4:	70 e0       	ldi	r23, 0x00	; 0
+     5d6:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     5da:	cc 24       	eor	r12, r12
+     5dc:	dd 24       	eor	r13, r13
+     5de:	61 cf       	rjmp	.-318    	; 0x4a2 <main+0xf6>
+     5e0:	83 e0       	ldi	r24, 0x03	; 3
+     5e2:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     5e6:	83 e0       	ldi	r24, 0x03	; 3
+     5e8:	0e 94 52 1b 	call	0x36a4	; 0x36a4 <orb2_set_color>
+     5ec:	0e 94 85 1c 	call	0x390a	; 0x390a <motors_off>
+     5f0:	0e 94 06 20 	call	0x400c	; 0x400c <rtc_reset>
+     5f4:	0e 94 9f 0d 	call	0x1b3e	; 0x1b3e <bom_off>
+     5f8:	88 eb       	ldi	r24, 0xB8	; 184
+     5fa:	9b e0       	ldi	r25, 0x0B	; 11
+     5fc:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+     600:	89 e4       	ldi	r24, 0x49	; 73
+     602:	94 e0       	ldi	r25, 0x04	; 4
+     604:	0e 94 62 05 	call	0xac4	; 0xac4 <wl_basic_do_default>
+     608:	89 2b       	or	r24, r25
+     60a:	d1 f7       	brne	.-12     	; 0x600 <main+0x254>
+     60c:	d3 c0       	rjmp	.+422    	; 0x7b4 <main+0x408>
+     60e:	80 ee       	ldi	r24, 0xE0	; 224
+     610:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     614:	80 ee       	ldi	r24, 0xE0	; 224
+     616:	0e 94 52 1b 	call	0x36a4	; 0x36a4 <orb2_set_color>
+     61a:	84 e0       	ldi	r24, 0x04	; 4
+     61c:	88 16       	cp	r8, r24
+     61e:	91 04       	cpc	r9, r1
+     620:	61 f4       	brne	.+24     	; 0x63a <main+0x28e>
+     622:	81 e0       	ldi	r24, 0x01	; 1
+     624:	90 e0       	ldi	r25, 0x00	; 0
+     626:	6f ef       	ldi	r22, 0xFF	; 255
+     628:	70 e0       	ldi	r23, 0x00	; 0
+     62a:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     62e:	81 e0       	ldi	r24, 0x01	; 1
+     630:	90 e0       	ldi	r25, 0x00	; 0
+     632:	6f ef       	ldi	r22, 0xFF	; 255
+     634:	70 e0       	ldi	r23, 0x00	; 0
+     636:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     63a:	c4 01       	movw	r24, r8
+     63c:	01 97       	sbiw	r24, 0x01	; 1
+     63e:	03 97       	sbiw	r24, 0x03	; 3
+     640:	60 f4       	brcc	.+24     	; 0x65a <main+0x2ae>
+     642:	81 e0       	ldi	r24, 0x01	; 1
+     644:	90 e0       	ldi	r25, 0x00	; 0
+     646:	6f ef       	ldi	r22, 0xFF	; 255
+     648:	70 e0       	ldi	r23, 0x00	; 0
+     64a:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     64e:	81 e0       	ldi	r24, 0x01	; 1
+     650:	90 e0       	ldi	r25, 0x00	; 0
+     652:	6e eb       	ldi	r22, 0xBE	; 190
+     654:	70 e0       	ldi	r23, 0x00	; 0
+     656:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     65a:	c4 01       	movw	r24, r8
+     65c:	05 97       	sbiw	r24, 0x05	; 5
+     65e:	03 97       	sbiw	r24, 0x03	; 3
+     660:	60 f4       	brcc	.+24     	; 0x67a <main+0x2ce>
+     662:	81 e0       	ldi	r24, 0x01	; 1
+     664:	90 e0       	ldi	r25, 0x00	; 0
+     666:	6e eb       	ldi	r22, 0xBE	; 190
+     668:	70 e0       	ldi	r23, 0x00	; 0
+     66a:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     66e:	81 e0       	ldi	r24, 0x01	; 1
+     670:	90 e0       	ldi	r25, 0x00	; 0
+     672:	6f ef       	ldi	r22, 0xFF	; 255
+     674:	70 e0       	ldi	r23, 0x00	; 0
+     676:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     67a:	c4 01       	movw	r24, r8
+     67c:	08 97       	sbiw	r24, 0x08	; 8
+     67e:	04 97       	sbiw	r24, 0x04	; 4
+     680:	10 f0       	brcs	.+4      	; 0x686 <main+0x2da>
+     682:	97 fe       	sbrs	r9, 7
+     684:	0f c0       	rjmp	.+30     	; 0x6a4 <main+0x2f8>
+     686:	80 e0       	ldi	r24, 0x00	; 0
+     688:	90 e0       	ldi	r25, 0x00	; 0
+     68a:	6a ea       	ldi	r22, 0xAA	; 170
+     68c:	70 e0       	ldi	r23, 0x00	; 0
+     68e:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     692:	81 e0       	ldi	r24, 0x01	; 1
+     694:	90 e0       	ldi	r25, 0x00	; 0
+     696:	6f ef       	ldi	r22, 0xFF	; 255
+     698:	70 e0       	ldi	r23, 0x00	; 0
+     69a:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     69e:	80 ee       	ldi	r24, 0xE0	; 224
+     6a0:	0e 94 52 1b 	call	0x36a4	; 0x36a4 <orb2_set_color>
+     6a4:	c4 01       	movw	r24, r8
+     6a6:	0c 97       	sbiw	r24, 0x0c	; 12
+     6a8:	04 97       	sbiw	r24, 0x04	; 4
+     6aa:	10 f0       	brcs	.+4      	; 0x6b0 <main+0x304>
+     6ac:	89 28       	or	r8, r9
+     6ae:	61 f4       	brne	.+24     	; 0x6c8 <main+0x31c>
+     6b0:	81 e0       	ldi	r24, 0x01	; 1
+     6b2:	90 e0       	ldi	r25, 0x00	; 0
+     6b4:	6f ef       	ldi	r22, 0xFF	; 255
+     6b6:	70 e0       	ldi	r23, 0x00	; 0
+     6b8:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+     6bc:	80 e0       	ldi	r24, 0x00	; 0
+     6be:	90 e0       	ldi	r25, 0x00	; 0
+     6c0:	6a ea       	ldi	r22, 0xAA	; 170
+     6c2:	70 e0       	ldi	r23, 0x00	; 0
+     6c4:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+     6c8:	89 e4       	ldi	r24, 0x49	; 73
+     6ca:	94 e0       	ldi	r25, 0x04	; 4
+     6cc:	0e 94 62 05 	call	0xac4	; 0xac4 <wl_basic_do_default>
+     6d0:	fc 01       	movw	r30, r24
+     6d2:	90 93 4c 04 	sts	0x044C, r25
+     6d6:	80 93 4b 04 	sts	0x044B, r24
+     6da:	00 97       	sbiw	r24, 0x00	; 0
+     6dc:	41 f0       	breq	.+16     	; 0x6ee <main+0x342>
+     6de:	80 81       	ld	r24, Z
+     6e0:	81 34       	cpi	r24, 0x41	; 65
+     6e2:	29 f4       	brne	.+10     	; 0x6ee <main+0x342>
+     6e4:	81 81       	ldd	r24, Z+1	; 0x01
+     6e6:	85 15       	cp	r24, r5
+     6e8:	11 f0       	breq	.+4      	; 0x6ee <main+0x342>
+     6ea:	c2 e0       	ldi	r28, 0x02	; 2
+     6ec:	d0 e0       	ldi	r29, 0x00	; 0
+     6ee:	8f ef       	ldi	r24, 0xFF	; 255
+     6f0:	9f ef       	ldi	r25, 0xFF	; 255
+     6f2:	0e 94 45 0e 	call	0x1c8a	; 0x1c8a <bom_refresh>
+     6f6:	85 e0       	ldi	r24, 0x05	; 5
+     6f8:	90 e0       	ldi	r25, 0x00	; 0
+     6fa:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+     6fe:	8c 01       	movw	r16, r24
+     700:	2f ef       	ldi	r18, 0xFF	; 255
+     702:	8f 3f       	cpi	r24, 0xFF	; 255
+     704:	92 07       	cpc	r25, r18
+     706:	b9 f3       	breq	.-18     	; 0x6f6 <main+0x34a>
+     708:	8a e0       	ldi	r24, 0x0A	; 10
+     70a:	90 e0       	ldi	r25, 0x00	; 0
+     70c:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+     710:	0e 94 3a 0b 	call	0x1674	; 0x1674 <bom_get_max>
+     714:	4c 01       	movw	r8, r24
+     716:	b8 01       	movw	r22, r16
+     718:	0e 94 9f 01 	call	0x33e	; 0x33e <hunter_prey_tagged>
+     71c:	f8 2e       	mov	r15, r24
+     71e:	0e 94 00 20 	call	0x4000	; 0x4000 <rtc_get>
+     722:	8c 01       	movw	r16, r24
+     724:	0e 94 70 13 	call	0x26e0	; 0x26e0 <button2_read>
+     728:	01 97       	sbiw	r24, 0x01	; 1
+     72a:	39 f0       	breq	.+14     	; 0x73a <main+0x38e>
+     72c:	ff 20       	and	r15, r15
+     72e:	09 f4       	brne	.+2      	; 0x732 <main+0x386>
+     730:	72 ce       	rjmp	.-796    	; 0x416 <main+0x6a>
+     732:	01 31       	cpi	r16, 0x11	; 17
+     734:	11 05       	cpc	r17, r1
+     736:	0c f4       	brge	.+2      	; 0x73a <main+0x38e>
+     738:	6e ce       	rjmp	.-804    	; 0x416 <main+0x6a>
+     73a:	40 92 55 04 	sts	0x0455, r4
+     73e:	50 92 56 04 	sts	0x0456, r5
+     742:	8a e2       	ldi	r24, 0x2A	; 42
+     744:	65 e5       	ldi	r22, 0x55	; 85
+     746:	74 e0       	ldi	r23, 0x04	; 4
+     748:	42 e0       	ldi	r20, 0x02	; 2
+     74a:	50 e0       	ldi	r21, 0x00	; 0
+     74c:	0e 94 7e 05 	call	0xafc	; 0xafc <wl_basic_send_global_packet>
+     750:	0e 94 06 20 	call	0x400c	; 0x400c <rtc_reset>
+     754:	81 e4       	ldi	r24, 0x41	; 65
+     756:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     75a:	c4 e0       	ldi	r28, 0x04	; 4
+     75c:	d0 e0       	ldi	r29, 0x00	; 0
+     75e:	5b ce       	rjmp	.-842    	; 0x416 <main+0x6a>
+     760:	0e 94 00 20 	call	0x4000	; 0x4000 <rtc_get>
+     764:	8c 01       	movw	r16, r24
+     766:	89 e4       	ldi	r24, 0x49	; 73
+     768:	94 e0       	ldi	r25, 0x04	; 4
+     76a:	0e 94 62 05 	call	0xac4	; 0xac4 <wl_basic_do_default>
+     76e:	fc 01       	movw	r30, r24
+     770:	90 93 4c 04 	sts	0x044C, r25
+     774:	80 93 4b 04 	sts	0x044B, r24
+     778:	00 97       	sbiw	r24, 0x00	; 0
+     77a:	51 f0       	breq	.+20     	; 0x790 <main+0x3e4>
+     77c:	80 81       	ld	r24, Z
+     77e:	81 34       	cpi	r24, 0x41	; 65
+     780:	39 f4       	brne	.+14     	; 0x790 <main+0x3e4>
+     782:	81 81       	ldd	r24, Z+1	; 0x01
+     784:	85 15       	cp	r24, r5
+     786:	21 f4       	brne	.+8      	; 0x790 <main+0x3e4>
+     788:	0e 94 06 20 	call	0x400c	; 0x400c <rtc_reset>
+     78c:	c0 e0       	ldi	r28, 0x00	; 0
+     78e:	d0 e0       	ldi	r29, 0x00	; 0
+     790:	e0 91 4b 04 	lds	r30, 0x044B
+     794:	f0 91 4c 04 	lds	r31, 0x044C
+     798:	30 97       	sbiw	r30, 0x00	; 0
+     79a:	41 f0       	breq	.+16     	; 0x7ac <main+0x400>
+     79c:	80 81       	ld	r24, Z
+     79e:	81 34       	cpi	r24, 0x41	; 65
+     7a0:	29 f4       	brne	.+10     	; 0x7ac <main+0x400>
+     7a2:	81 81       	ldd	r24, Z+1	; 0x01
+     7a4:	85 15       	cp	r24, r5
+     7a6:	11 f0       	breq	.+4      	; 0x7ac <main+0x400>
+     7a8:	c2 e0       	ldi	r28, 0x02	; 2
+     7aa:	d0 e0       	ldi	r29, 0x00	; 0
+     7ac:	01 31       	cpi	r16, 0x11	; 17
+     7ae:	11 05       	cpc	r17, r1
+     7b0:	0c f4       	brge	.+2      	; 0x7b4 <main+0x408>
+     7b2:	31 ce       	rjmp	.-926    	; 0x416 <main+0x6a>
+     7b4:	80 ee       	ldi	r24, 0xE0	; 224
+     7b6:	0e 94 2b 1b 	call	0x3656	; 0x3656 <orb1_set_color>
+     7ba:	c3 e0       	ldi	r28, 0x03	; 3
+     7bc:	d0 e0       	ldi	r29, 0x00	; 0
+     7be:	2b ce       	rjmp	.-938    	; 0x416 <main+0x6a>
+
+000007c0 <timer_handler>:
+     7c0:	81 e0       	ldi	r24, 0x01	; 1
+     7c2:	90 e0       	ldi	r25, 0x00	; 0
+     7c4:	90 93 c7 02 	sts	0x02C7, r25
+     7c8:	80 93 c6 02 	sts	0x02C6, r24
+     7cc:	08 95       	ret
+
+000007ce <wl_register_packet_group>:
+     7ce:	dc 01       	movw	r26, r24
+     7d0:	8d 91       	ld	r24, X+
+     7d2:	9c 91       	ld	r25, X
+     7d4:	11 97       	sbiw	r26, 0x01	; 1
+     7d6:	80 31       	cpi	r24, 0x10	; 16
+     7d8:	91 05       	cpc	r25, r1
+     7da:	58 f4       	brcc	.+22     	; 0x7f2 <wl_register_packet_group+0x24>
+     7dc:	fc 01       	movw	r30, r24
+     7de:	ee 0f       	add	r30, r30
+     7e0:	ff 1f       	adc	r31, r31
+     7e2:	e8 5b       	subi	r30, 0xB8	; 184
+     7e4:	fc 4f       	sbci	r31, 0xFC	; 252
+     7e6:	80 81       	ld	r24, Z
+     7e8:	91 81       	ldd	r25, Z+1	; 0x01
+     7ea:	89 2b       	or	r24, r25
+     7ec:	11 f4       	brne	.+4      	; 0x7f2 <wl_register_packet_group+0x24>
+     7ee:	b1 83       	std	Z+1, r27	; 0x01
+     7f0:	a0 83       	st	Z, r26
+     7f2:	08 95       	ret
+
+000007f4 <wl_unregister_packet_group>:
+     7f4:	cf 93       	push	r28
+     7f6:	df 93       	push	r29
+     7f8:	fc 01       	movw	r30, r24
+     7fa:	c0 81       	ld	r28, Z
+     7fc:	d1 81       	ldd	r29, Z+1	; 0x01
+     7fe:	fe 01       	movw	r30, r28
+     800:	ee 0f       	add	r30, r30
+     802:	ff 1f       	adc	r31, r31
+     804:	e8 5b       	subi	r30, 0xB8	; 184
+     806:	fc 4f       	sbci	r31, 0xFC	; 252
+     808:	01 90       	ld	r0, Z+
+     80a:	f0 81       	ld	r31, Z
+     80c:	e0 2d       	mov	r30, r0
+     80e:	30 97       	sbiw	r30, 0x00	; 0
+     810:	31 f0       	breq	.+12     	; 0x81e <wl_unregister_packet_group+0x2a>
+     812:	00 84       	ldd	r0, Z+8	; 0x08
+     814:	f1 85       	ldd	r31, Z+9	; 0x09
+     816:	e0 2d       	mov	r30, r0
+     818:	30 97       	sbiw	r30, 0x00	; 0
+     81a:	09 f0       	breq	.+2      	; 0x81e <wl_unregister_packet_group+0x2a>
+     81c:	09 95       	icall
+     81e:	cc 0f       	add	r28, r28
+     820:	dd 1f       	adc	r29, r29
+     822:	c8 5b       	subi	r28, 0xB8	; 184
+     824:	dc 4f       	sbci	r29, 0xFC	; 252
+     826:	19 82       	std	Y+1, r1	; 0x01
+     828:	18 82       	st	Y, r1
+     82a:	df 91       	pop	r29
+     82c:	cf 91       	pop	r28
+     82e:	08 95       	ret
+
+00000830 <wl_do>:
+     830:	cf 93       	push	r28
+     832:	df 93       	push	r29
+     834:	80 91 c6 02 	lds	r24, 0x02C6
+     838:	90 91 c7 02 	lds	r25, 0x02C7
+     83c:	89 2b       	or	r24, r25
+     83e:	a9 f0       	breq	.+42     	; 0x86a <wl_do+0x3a>
+     840:	c8 e4       	ldi	r28, 0x48	; 72
+     842:	d3 e0       	ldi	r29, 0x03	; 3
+     844:	e8 81       	ld	r30, Y
+     846:	f9 81       	ldd	r31, Y+1	; 0x01
+     848:	30 97       	sbiw	r30, 0x00	; 0
+     84a:	31 f0       	breq	.+12     	; 0x858 <wl_do+0x28>
+     84c:	02 80       	ldd	r0, Z+2	; 0x02
+     84e:	f3 81       	ldd	r31, Z+3	; 0x03
+     850:	e0 2d       	mov	r30, r0
+     852:	30 97       	sbiw	r30, 0x00	; 0
+     854:	09 f0       	breq	.+2      	; 0x858 <wl_do+0x28>
+     856:	09 95       	icall
+     858:	22 96       	adiw	r28, 0x02	; 2
+     85a:	83 e0       	ldi	r24, 0x03	; 3
+     85c:	c8 36       	cpi	r28, 0x68	; 104
+     85e:	d8 07       	cpc	r29, r24
+     860:	89 f7       	brne	.-30     	; 0x844 <wl_do+0x14>
+     862:	10 92 c7 02 	sts	0x02C7, r1
+     866:	10 92 c6 02 	sts	0x02C6, r1
+     86a:	88 ec       	ldi	r24, 0xC8	; 200
+     86c:	92 e0       	ldi	r25, 0x02	; 2
+     86e:	0e 94 06 06 	call	0xc0c	; 0xc0c <xbee_get_packet>
+     872:	9c 01       	movw	r18, r24
+     874:	97 fd       	sbrc	r25, 7
+     876:	4e c0       	rjmp	.+156    	; 0x914 <wl_do+0xe4>
+     878:	80 91 c8 02 	lds	r24, 0x02C8
+     87c:	89 38       	cpi	r24, 0x89	; 137
+     87e:	29 f5       	brne	.+74     	; 0x8ca <wl_do+0x9a>
+     880:	23 30       	cpi	r18, 0x03	; 3
+     882:	31 05       	cpc	r19, r1
+     884:	09 f0       	breq	.+2      	; 0x888 <wl_do+0x58>
+     886:	46 c0       	rjmp	.+140    	; 0x914 <wl_do+0xe4>
+     888:	80 91 c9 02 	lds	r24, 0x02C9
+     88c:	20 91 ca 02 	lds	r18, 0x02CA
+     890:	e8 2f       	mov	r30, r24
+     892:	e2 95       	swap	r30
+     894:	ef 70       	andi	r30, 0x0F	; 15
+     896:	f0 e0       	ldi	r31, 0x00	; 0
+     898:	ee 0f       	add	r30, r30
+     89a:	ff 1f       	adc	r31, r31
+     89c:	e8 5b       	subi	r30, 0xB8	; 184
+     89e:	fc 4f       	sbci	r31, 0xFC	; 252
+     8a0:	01 90       	ld	r0, Z+
+     8a2:	f0 81       	ld	r31, Z
+     8a4:	e0 2d       	mov	r30, r0
+     8a6:	30 97       	sbiw	r30, 0x00	; 0
+     8a8:	a9 f1       	breq	.+106    	; 0x914 <wl_do+0xe4>
+     8aa:	04 80       	ldd	r0, Z+4	; 0x04
+     8ac:	f5 81       	ldd	r31, Z+5	; 0x05
+     8ae:	e0 2d       	mov	r30, r0
+     8b0:	30 97       	sbiw	r30, 0x00	; 0
+     8b2:	81 f1       	breq	.+96     	; 0x914 <wl_do+0xe4>
+     8b4:	90 e0       	ldi	r25, 0x00	; 0
+     8b6:	8f 70       	andi	r24, 0x0F	; 15
+     8b8:	90 70       	andi	r25, 0x00	; 0
+     8ba:	60 e0       	ldi	r22, 0x00	; 0
+     8bc:	70 e0       	ldi	r23, 0x00	; 0
+     8be:	22 23       	and	r18, r18
+     8c0:	11 f4       	brne	.+4      	; 0x8c6 <wl_do+0x96>
+     8c2:	61 e0       	ldi	r22, 0x01	; 1
+     8c4:	70 e0       	ldi	r23, 0x00	; 0
+     8c6:	09 95       	icall
+     8c8:	25 c0       	rjmp	.+74     	; 0x914 <wl_do+0xe4>
+     8ca:	81 38       	cpi	r24, 0x81	; 129
+     8cc:	19 f5       	brne	.+70     	; 0x914 <wl_do+0xe4>
+     8ce:	27 30       	cpi	r18, 0x07	; 7
+     8d0:	31 05       	cpc	r19, r1
+     8d2:	04 f1       	brlt	.+64     	; 0x914 <wl_do+0xe4>
+     8d4:	90 91 c9 02 	lds	r25, 0x02C9
+     8d8:	40 91 ca 02 	lds	r20, 0x02CA
+     8dc:	80 91 ce 02 	lds	r24, 0x02CE
+     8e0:	e0 91 cd 02 	lds	r30, 0x02CD
+     8e4:	f0 e0       	ldi	r31, 0x00	; 0
+     8e6:	ee 0f       	add	r30, r30
+     8e8:	ff 1f       	adc	r31, r31
+     8ea:	e8 5b       	subi	r30, 0xB8	; 184
+     8ec:	fc 4f       	sbci	r31, 0xFC	; 252
+     8ee:	01 90       	ld	r0, Z+
+     8f0:	f0 81       	ld	r31, Z
+     8f2:	e0 2d       	mov	r30, r0
+     8f4:	30 97       	sbiw	r30, 0x00	; 0
+     8f6:	71 f0       	breq	.+28     	; 0x914 <wl_do+0xe4>
+     8f8:	06 80       	ldd	r0, Z+6	; 0x06
+     8fa:	f7 81       	ldd	r31, Z+7	; 0x07
+     8fc:	e0 2d       	mov	r30, r0
+     8fe:	30 97       	sbiw	r30, 0x00	; 0
+     900:	49 f0       	breq	.+18     	; 0x914 <wl_do+0xe4>
+     902:	79 2f       	mov	r23, r25
+     904:	60 e0       	ldi	r22, 0x00	; 0
+     906:	64 0f       	add	r22, r20
+     908:	71 1d       	adc	r23, r1
+     90a:	27 50       	subi	r18, 0x07	; 7
+     90c:	30 40       	sbci	r19, 0x00	; 0
+     90e:	4f ec       	ldi	r20, 0xCF	; 207
+     910:	52 e0       	ldi	r21, 0x02	; 2
+     912:	09 95       	icall
+     914:	df 91       	pop	r29
+     916:	cf 91       	pop	r28
+     918:	08 95       	ret
+
+0000091a <wl_send_packet>:
+     91a:	af 92       	push	r10
+     91c:	bf 92       	push	r11
+     91e:	cf 92       	push	r12
+     920:	ef 92       	push	r14
+     922:	0f 93       	push	r16
+     924:	1f 93       	push	r17
+     926:	df 93       	push	r29
+     928:	cf 93       	push	r28
+     92a:	cd b7       	in	r28, 0x3d	; 61
+     92c:	de b7       	in	r29, 0x3e	; 62
+     92e:	c0 58       	subi	r28, 0x80	; 128
+     930:	d0 40       	sbci	r29, 0x00	; 0
+     932:	0f b6       	in	r0, 0x3f	; 63
+     934:	f8 94       	cli
+     936:	de bf       	out	0x3e, r29	; 62
+     938:	0f be       	out	0x3f, r0	; 63
+     93a:	cd bf       	out	0x3d, r28	; 61
+     93c:	98 2f       	mov	r25, r24
+     93e:	58 01       	movw	r10, r16
+     940:	0c 2d       	mov	r16, r12
+     942:	cc 20       	and	r12, r12
+     944:	31 f0       	breq	.+12     	; 0x952 <wl_send_packet+0x38>
+     946:	8c 2d       	mov	r24, r12
+     948:	8f 70       	andi	r24, 0x0F	; 15
+     94a:	09 2f       	mov	r16, r25
+     94c:	02 95       	swap	r16
+     94e:	00 7f       	andi	r16, 0xF0	; 240
+     950:	08 2b       	or	r16, r24
+     952:	99 83       	std	Y+1, r25	; 0x01
+     954:	6a 83       	std	Y+2, r22	; 0x02
+     956:	be 01       	movw	r22, r28
+     958:	6d 5f       	subi	r22, 0xFD	; 253
+     95a:	7f 4f       	sbci	r23, 0xFF	; 255
+     95c:	a0 e0       	ldi	r26, 0x00	; 0
+     95e:	b0 e0       	ldi	r27, 0x00	; 0
+     960:	08 c0       	rjmp	.+16     	; 0x972 <wl_send_packet+0x58>
+     962:	fa 01       	movw	r30, r20
+     964:	ea 0f       	add	r30, r26
+     966:	fb 1f       	adc	r31, r27
+     968:	80 81       	ld	r24, Z
+     96a:	fb 01       	movw	r30, r22
+     96c:	81 93       	st	Z+, r24
+     96e:	bf 01       	movw	r22, r30
+     970:	11 96       	adiw	r26, 0x01	; 1
+     972:	a2 17       	cp	r26, r18
+     974:	b3 07       	cpc	r27, r19
+     976:	ac f3       	brlt	.-22     	; 0x962 <wl_send_packet+0x48>
+     978:	2e 5f       	subi	r18, 0xFE	; 254
+     97a:	3f 4f       	sbci	r19, 0xFF	; 255
+     97c:	ce 01       	movw	r24, r28
+     97e:	01 96       	adiw	r24, 0x01	; 1
+     980:	b9 01       	movw	r22, r18
+     982:	a5 01       	movw	r20, r10
+     984:	2e 2d       	mov	r18, r14
+     986:	0e 94 2e 08 	call	0x105c	; 0x105c <xbee_send_packet>
+     98a:	c0 58       	subi	r28, 0x80	; 128
+     98c:	df 4f       	sbci	r29, 0xFF	; 255
+     98e:	0f b6       	in	r0, 0x3f	; 63
+     990:	f8 94       	cli
+     992:	de bf       	out	0x3e, r29	; 62
+     994:	0f be       	out	0x3f, r0	; 63
+     996:	cd bf       	out	0x3d, r28	; 61
+     998:	cf 91       	pop	r28
+     99a:	df 91       	pop	r29
+     99c:	1f 91       	pop	r17
+     99e:	0f 91       	pop	r16
+     9a0:	ef 90       	pop	r14
+     9a2:	cf 90       	pop	r12
+     9a4:	bf 90       	pop	r11
+     9a6:	af 90       	pop	r10
+     9a8:	08 95       	ret
+
+000009aa <wl_send_pan_packet>:
+     9aa:	cf 92       	push	r12
+     9ac:	ef 92       	push	r14
+     9ae:	0f 93       	push	r16
+     9b0:	1f 93       	push	r17
+     9b2:	c0 2e       	mov	r12, r16
+     9b4:	0f ef       	ldi	r16, 0xFF	; 255
+     9b6:	1f ef       	ldi	r17, 0xFF	; 255
+     9b8:	ee 24       	eor	r14, r14
+     9ba:	0e 94 8d 04 	call	0x91a	; 0x91a <wl_send_packet>
+     9be:	1f 91       	pop	r17
+     9c0:	0f 91       	pop	r16
+     9c2:	ef 90       	pop	r14
+     9c4:	cf 90       	pop	r12
+     9c6:	08 95       	ret
+
+000009c8 <wl_send_global_packet>:
+     9c8:	cf 92       	push	r12
+     9ca:	ef 92       	push	r14
+     9cc:	0f 93       	push	r16
+     9ce:	1f 93       	push	r17
+     9d0:	c0 2e       	mov	r12, r16
+     9d2:	0f ef       	ldi	r16, 0xFF	; 255
+     9d4:	1f ef       	ldi	r17, 0xFF	; 255
+     9d6:	74 e0       	ldi	r23, 0x04	; 4
+     9d8:	e7 2e       	mov	r14, r23
+     9da:	0e 94 8d 04 	call	0x91a	; 0x91a <wl_send_packet>
+     9de:	1f 91       	pop	r17
+     9e0:	0f 91       	pop	r16
+     9e2:	ef 90       	pop	r14
+     9e4:	cf 90       	pop	r12
+     9e6:	08 95       	ret
+
+000009e8 <wl_send_robot_to_robot_packet>:
+     9e8:	cf 92       	push	r12
+     9ea:	ef 92       	push	r14
+     9ec:	0f 93       	push	r16
+     9ee:	1f 93       	push	r17
+     9f0:	ce 2c       	mov	r12, r14
+     9f2:	ee 24       	eor	r14, r14
+     9f4:	0e 94 8d 04 	call	0x91a	; 0x91a <wl_send_packet>
+     9f8:	1f 91       	pop	r17
+     9fa:	0f 91       	pop	r16
+     9fc:	ef 90       	pop	r14
+     9fe:	cf 90       	pop	r12
+     a00:	08 95       	ret
+
+00000a02 <wl_send_robot_to_robot_global_packet>:
+     a02:	cf 92       	push	r12
+     a04:	ef 92       	push	r14
+     a06:	0f 93       	push	r16
+     a08:	1f 93       	push	r17
+     a0a:	ce 2c       	mov	r12, r14
+     a0c:	e4 e0       	ldi	r30, 0x04	; 4
+     a0e:	ee 2e       	mov	r14, r30
+     a10:	0e 94 8d 04 	call	0x91a	; 0x91a <wl_send_packet>
+     a14:	1f 91       	pop	r17
+     a16:	0f 91       	pop	r16
+     a18:	ef 90       	pop	r14
+     a1a:	cf 90       	pop	r12
+     a1c:	08 95       	ret
+
+00000a1e <wl_get_xbee_id>:
+     a1e:	0e 94 42 07 	call	0xe84	; 0xe84 <xbee_get_address>
+     a22:	08 95       	ret
+
+00000a24 <wl_get_channel>:
+     a24:	0e 94 3d 07 	call	0xe7a	; 0xe7a <xbee_get_channel>
+     a28:	08 95       	ret
+
+00000a2a <wl_set_channel>:
+     a2a:	0e 94 d3 07 	call	0xfa6	; 0xfa6 <xbee_set_channel>
+     a2e:	08 95       	ret
+
+00000a30 <wl_get_pan>:
+     a30:	0e 94 38 07 	call	0xe70	; 0xe70 <xbee_get_pan_id>
+     a34:	08 95       	ret
+
+00000a36 <wl_set_pan>:
+     a36:	0e 94 f5 07 	call	0xfea	; 0xfea <xbee_set_pan_id>
+     a3a:	08 95       	ret
+
+00000a3c <wl_terminate>:
+     a3c:	cf 93       	push	r28
+     a3e:	df 93       	push	r29
+     a40:	c8 e4       	ldi	r28, 0x48	; 72
+     a42:	d3 e0       	ldi	r29, 0x03	; 3
+     a44:	e8 81       	ld	r30, Y
+     a46:	f9 81       	ldd	r31, Y+1	; 0x01
+     a48:	30 97       	sbiw	r30, 0x00	; 0
+     a4a:	31 f0       	breq	.+12     	; 0xa58 <wl_terminate+0x1c>
+     a4c:	00 84       	ldd	r0, Z+8	; 0x08
+     a4e:	f1 85       	ldd	r31, Z+9	; 0x09
+     a50:	e0 2d       	mov	r30, r0
+     a52:	30 97       	sbiw	r30, 0x00	; 0
+     a54:	09 f0       	breq	.+2      	; 0xa58 <wl_terminate+0x1c>
+     a56:	09 95       	icall
+     a58:	22 96       	adiw	r28, 0x02	; 2
+     a5a:	83 e0       	ldi	r24, 0x03	; 3
+     a5c:	c8 36       	cpi	r28, 0x68	; 104
+     a5e:	d8 07       	cpc	r29, r24
+     a60:	89 f7       	brne	.-30     	; 0xa44 <wl_terminate+0x8>
+     a62:	0e 94 27 08 	call	0x104e	; 0x104e <xbee_terminate>
+     a66:	df 91       	pop	r29
+     a68:	cf 91       	pop	r28
+     a6a:	08 95       	ret
+
+00000a6c <wl_init>:
+     a6c:	e8 e4       	ldi	r30, 0x48	; 72
+     a6e:	f3 e0       	ldi	r31, 0x03	; 3
+     a70:	11 92       	st	Z+, r1
+     a72:	11 92       	st	Z+, r1
+     a74:	23 e0       	ldi	r18, 0x03	; 3
+     a76:	e8 36       	cpi	r30, 0x68	; 104
+     a78:	f2 07       	cpc	r31, r18
+     a7a:	d1 f7       	brne	.-12     	; 0xa70 <wl_init+0x4>
+     a7c:	0e 94 d6 08 	call	0x11ac	; 0x11ac <xbee_lib_init>
+     a80:	8f 5f       	subi	r24, 0xFF	; 255
+     a82:	9f 4f       	sbci	r25, 0xFF	; 255
+     a84:	19 f4       	brne	.+6      	; 0xa8c <wl_init+0x20>
+     a86:	2f ef       	ldi	r18, 0xFF	; 255
+     a88:	3f ef       	ldi	r19, 0xFF	; 255
+     a8a:	08 c0       	rjmp	.+16     	; 0xa9c <wl_init+0x30>
+     a8c:	88 e0       	ldi	r24, 0x08	; 8
+     a8e:	90 e0       	ldi	r25, 0x00	; 0
+     a90:	60 ee       	ldi	r22, 0xE0	; 224
+     a92:	73 e0       	ldi	r23, 0x03	; 3
+     a94:	0e 94 e0 1f 	call	0x3fc0	; 0x3fc0 <rtc_init>
+     a98:	20 e0       	ldi	r18, 0x00	; 0
+     a9a:	30 e0       	ldi	r19, 0x00	; 0
+     a9c:	c9 01       	movw	r24, r18
+     a9e:	08 95       	ret
+
+00000aa0 <wl_basic_packet_receive_handler>:
+     aa0:	91 e0       	ldi	r25, 0x01	; 1
+     aa2:	90 93 4d 04 	sts	0x044D, r25
+     aa6:	80 93 4e 04 	sts	0x044E, r24
+     aaa:	70 93 50 04 	sts	0x0450, r23
+     aae:	60 93 4f 04 	sts	0x044F, r22
+     ab2:	50 93 52 04 	sts	0x0452, r21
+     ab6:	40 93 51 04 	sts	0x0451, r20
+     aba:	30 93 54 04 	sts	0x0454, r19
+     abe:	20 93 53 04 	sts	0x0453, r18
+     ac2:	08 95       	ret
+
+00000ac4 <wl_basic_do_default>:
+     ac4:	cf 93       	push	r28
+     ac6:	df 93       	push	r29
+     ac8:	ec 01       	movw	r28, r24
+     aca:	0e 94 18 04 	call	0x830	; 0x830 <wl_do>
+     ace:	80 91 4d 04 	lds	r24, 0x044D
+     ad2:	81 30       	cpi	r24, 0x01	; 1
+     ad4:	19 f0       	breq	.+6      	; 0xadc <wl_basic_do_default+0x18>
+     ad6:	20 e0       	ldi	r18, 0x00	; 0
+     ad8:	30 e0       	ldi	r19, 0x00	; 0
+     ada:	0c c0       	rjmp	.+24     	; 0xaf4 <wl_basic_do_default+0x30>
+     adc:	10 92 4d 04 	sts	0x044D, r1
+     ae0:	80 91 53 04 	lds	r24, 0x0453
+     ae4:	90 91 54 04 	lds	r25, 0x0454
+     ae8:	99 83       	std	Y+1, r25	; 0x01
+     aea:	88 83       	st	Y, r24
+     aec:	20 91 51 04 	lds	r18, 0x0451
+     af0:	30 91 52 04 	lds	r19, 0x0452
+     af4:	c9 01       	movw	r24, r18
+     af6:	df 91       	pop	r29
+     af8:	cf 91       	pop	r28
+     afa:	08 95       	ret
+
+00000afc <wl_basic_send_global_packet>:
+     afc:	0f 93       	push	r16
+     afe:	98 2f       	mov	r25, r24
+     b00:	fb 01       	movw	r30, r22
+     b02:	9a 01       	movw	r18, r20
+     b04:	88 e0       	ldi	r24, 0x08	; 8
+     b06:	69 2f       	mov	r22, r25
+     b08:	af 01       	movw	r20, r30
+     b0a:	00 e0       	ldi	r16, 0x00	; 0
+     b0c:	0e 94 e4 04 	call	0x9c8	; 0x9c8 <wl_send_global_packet>
+     b10:	0f 91       	pop	r16
+     b12:	08 95       	ret
+
+00000b14 <wl_basic_send_robot_packet>:
+     b14:	ef 92       	push	r14
+     b16:	0f 93       	push	r16
+     b18:	1f 93       	push	r17
+     b1a:	98 2f       	mov	r25, r24
+     b1c:	fb 01       	movw	r30, r22
+     b1e:	da 01       	movw	r26, r20
+     b20:	89 01       	movw	r16, r18
+     b22:	88 e0       	ldi	r24, 0x08	; 8
+     b24:	69 2f       	mov	r22, r25
+     b26:	af 01       	movw	r20, r30
+     b28:	9d 01       	movw	r18, r26
+     b2a:	ee 24       	eor	r14, r14
+     b2c:	0e 94 01 05 	call	0xa02	; 0xa02 <wl_send_robot_to_robot_global_packet>
+     b30:	1f 91       	pop	r17
+     b32:	0f 91       	pop	r16
+     b34:	ef 90       	pop	r14
+     b36:	08 95       	ret
+
+00000b38 <wl_basic_register_handler>:
+     b38:	28 e0       	ldi	r18, 0x08	; 8
+     b3a:	30 e0       	ldi	r19, 0x00	; 0
+     b3c:	30 93 58 04 	sts	0x0458, r19
+     b40:	20 93 57 04 	sts	0x0457, r18
+     b44:	10 92 5a 04 	sts	0x045A, r1
+     b48:	10 92 59 04 	sts	0x0459, r1
+     b4c:	10 92 5c 04 	sts	0x045C, r1
+     b50:	10 92 5b 04 	sts	0x045B, r1
+     b54:	90 93 5e 04 	sts	0x045E, r25
+     b58:	80 93 5d 04 	sts	0x045D, r24
+     b5c:	10 92 60 04 	sts	0x0460, r1
+     b60:	10 92 5f 04 	sts	0x045F, r1
+     b64:	87 e5       	ldi	r24, 0x57	; 87
+     b66:	94 e0       	ldi	r25, 0x04	; 4
+     b68:	0e 94 e7 03 	call	0x7ce	; 0x7ce <wl_register_packet_group>
+     b6c:	08 95       	ret
+
+00000b6e <wl_basic_init>:
+     b6e:	ef 92       	push	r14
+     b70:	ff 92       	push	r15
+     b72:	0f 93       	push	r16
+     b74:	1f 93       	push	r17
+     b76:	8c 01       	movw	r16, r24
+     b78:	0e 94 36 05 	call	0xa6c	; 0xa6c <wl_init>
+     b7c:	f8 2e       	mov	r15, r24
+     b7e:	e9 2e       	mov	r14, r25
+     b80:	c8 01       	movw	r24, r16
+     b82:	0e 94 9c 05 	call	0xb38	; 0xb38 <wl_basic_register_handler>
+     b86:	10 92 4d 04 	sts	0x044D, r1
+     b8a:	8f 2d       	mov	r24, r15
+     b8c:	9e 2d       	mov	r25, r14
+     b8e:	1f 91       	pop	r17
+     b90:	0f 91       	pop	r16
+     b92:	ff 90       	pop	r15
+     b94:	ef 90       	pop	r14
+     b96:	08 95       	ret
+
+00000b98 <wl_basic_init_default>:
+     b98:	80 e5       	ldi	r24, 0x50	; 80
+     b9a:	95 e0       	ldi	r25, 0x05	; 5
+     b9c:	0e 94 b7 05 	call	0xb6e	; 0xb6e <wl_basic_init>
+     ba0:	08 95       	ret
+
+00000ba2 <__vector_30>:
+     ba2:	1f 92       	push	r1
+     ba4:	0f 92       	push	r0
+     ba6:	0f b6       	in	r0, 0x3f	; 63
+     ba8:	0f 92       	push	r0
+     baa:	0b b6       	in	r0, 0x3b	; 59
+     bac:	0f 92       	push	r0
+     bae:	11 24       	eor	r1, r1
+     bb0:	2f 93       	push	r18
+     bb2:	3f 93       	push	r19
+     bb4:	8f 93       	push	r24
+     bb6:	9f 93       	push	r25
+     bb8:	ef 93       	push	r30
+     bba:	ff 93       	push	r31
+     bbc:	80 91 9c 00 	lds	r24, 0x009C
+     bc0:	e0 91 68 03 	lds	r30, 0x0368
+     bc4:	f0 91 69 03 	lds	r31, 0x0369
+     bc8:	ef 59       	subi	r30, 0x9F	; 159
+     bca:	fb 4f       	sbci	r31, 0xFB	; 251
+     bcc:	80 83       	st	Z, r24
+     bce:	80 91 68 03 	lds	r24, 0x0368
+     bd2:	90 91 69 03 	lds	r25, 0x0369
+     bd6:	01 96       	adiw	r24, 0x01	; 1
+     bd8:	80 38       	cpi	r24, 0x80	; 128
+     bda:	91 05       	cpc	r25, r1
+     bdc:	11 f4       	brne	.+4      	; 0xbe2 <__vector_30+0x40>
+     bde:	80 e0       	ldi	r24, 0x00	; 0
+     be0:	90 e0       	ldi	r25, 0x00	; 0
+     be2:	20 91 6a 03 	lds	r18, 0x036A
+     be6:	30 91 6b 03 	lds	r19, 0x036B
+     bea:	90 93 69 03 	sts	0x0369, r25
+     bee:	80 93 68 03 	sts	0x0368, r24
+     bf2:	ff 91       	pop	r31
+     bf4:	ef 91       	pop	r30
+     bf6:	9f 91       	pop	r25
+     bf8:	8f 91       	pop	r24
+     bfa:	3f 91       	pop	r19
+     bfc:	2f 91       	pop	r18
+     bfe:	0f 90       	pop	r0
+     c00:	0b be       	out	0x3b, r0	; 59
+     c02:	0f 90       	pop	r0
+     c04:	0f be       	out	0x3f, r0	; 63
+     c06:	0f 90       	pop	r0
+     c08:	1f 90       	pop	r1
+     c0a:	18 95       	reti
+
+00000c0c <xbee_get_packet>:
+     c0c:	0f 93       	push	r16
+     c0e:	1f 93       	push	r17
+     c10:	cf 93       	push	r28
+     c12:	df 93       	push	r29
+     c14:	8c 01       	movw	r16, r24
+     c16:	80 91 72 03 	lds	r24, 0x0372
+     c1a:	90 91 73 03 	lds	r25, 0x0373
+     c1e:	89 2b       	or	r24, r25
+     c20:	d1 f5       	brne	.+116    	; 0xc96 <xbee_get_packet+0x8a>
+     c22:	80 91 6a 03 	lds	r24, 0x036A
+     c26:	90 91 6b 03 	lds	r25, 0x036B
+     c2a:	80 38       	cpi	r24, 0x80	; 128
+     c2c:	91 05       	cpc	r25, r1
+     c2e:	21 f4       	brne	.+8      	; 0xc38 <xbee_get_packet+0x2c>
+     c30:	10 92 6b 03 	sts	0x036B, r1
+     c34:	10 92 6a 03 	sts	0x036A, r1
+     c38:	20 91 6a 03 	lds	r18, 0x036A
+     c3c:	30 91 6b 03 	lds	r19, 0x036B
+     c40:	80 91 68 03 	lds	r24, 0x0368
+     c44:	90 91 69 03 	lds	r25, 0x0369
+     c48:	28 17       	cp	r18, r24
+     c4a:	39 07       	cpc	r19, r25
+     c4c:	09 f4       	brne	.+2      	; 0xc50 <xbee_get_packet+0x44>
+     c4e:	05 c1       	rjmp	.+522    	; 0xe5a <xbee_get_packet+0x24e>
+     c50:	80 91 6a 03 	lds	r24, 0x036A
+     c54:	90 91 6b 03 	lds	r25, 0x036B
+     c58:	fc 01       	movw	r30, r24
+     c5a:	ef 59       	subi	r30, 0x9F	; 159
+     c5c:	fb 4f       	sbci	r31, 0xFB	; 251
+     c5e:	20 81       	ld	r18, Z
+     c60:	01 96       	adiw	r24, 0x01	; 1
+     c62:	90 93 6b 03 	sts	0x036B, r25
+     c66:	80 93 6a 03 	sts	0x036A, r24
+     c6a:	2e 37       	cpi	r18, 0x7E	; 126
+     c6c:	d1 f6       	brne	.-76     	; 0xc22 <xbee_get_packet+0x16>
+     c6e:	80 91 6a 03 	lds	r24, 0x036A
+     c72:	90 91 6b 03 	lds	r25, 0x036B
+     c76:	80 38       	cpi	r24, 0x80	; 128
+     c78:	91 05       	cpc	r25, r1
+     c7a:	21 f4       	brne	.+8      	; 0xc84 <xbee_get_packet+0x78>
+     c7c:	10 92 6b 03 	sts	0x036B, r1
+     c80:	10 92 6a 03 	sts	0x036A, r1
+     c84:	8e e7       	ldi	r24, 0x7E	; 126
+     c86:	80 93 74 03 	sts	0x0374, r24
+     c8a:	81 e0       	ldi	r24, 0x01	; 1
+     c8c:	90 e0       	ldi	r25, 0x00	; 0
+     c8e:	90 93 73 03 	sts	0x0373, r25
+     c92:	80 93 72 03 	sts	0x0372, r24
+     c96:	60 91 72 03 	lds	r22, 0x0372
+     c9a:	70 91 73 03 	lds	r23, 0x0373
+     c9e:	63 30       	cpi	r22, 0x03	; 3
+     ca0:	71 05       	cpc	r23, r1
+     ca2:	1c f4       	brge	.+6      	; 0xcaa <xbee_get_packet+0x9e>
+     ca4:	4f ef       	ldi	r20, 0xFF	; 255
+     ca6:	5f ef       	ldi	r21, 0xFF	; 255
+     ca8:	08 c0       	rjmp	.+16     	; 0xcba <xbee_get_packet+0xae>
+     caa:	90 91 75 03 	lds	r25, 0x0375
+     cae:	80 e0       	ldi	r24, 0x00	; 0
+     cb0:	20 91 76 03 	lds	r18, 0x0376
+     cb4:	ac 01       	movw	r20, r24
+     cb6:	42 0f       	add	r20, r18
+     cb8:	51 1d       	adc	r21, r1
+     cba:	eb 01       	movw	r28, r22
+     cbc:	cc 58       	subi	r28, 0x8C	; 140
+     cbe:	dc 4f       	sbci	r29, 0xFC	; 252
+     cc0:	3f c0       	rjmp	.+126    	; 0xd40 <xbee_get_packet+0x134>
+     cc2:	63 30       	cpi	r22, 0x03	; 3
+     cc4:	71 05       	cpc	r23, r1
+     cc6:	81 f4       	brne	.+32     	; 0xce8 <xbee_get_packet+0xdc>
+     cc8:	b0 91 75 03 	lds	r27, 0x0375
+     ccc:	a0 e0       	ldi	r26, 0x00	; 0
+     cce:	80 91 76 03 	lds	r24, 0x0376
+     cd2:	ad 01       	movw	r20, r26
+     cd4:	48 0f       	add	r20, r24
+     cd6:	51 1d       	adc	r21, r1
+     cd8:	49 37       	cpi	r20, 0x79	; 121
+     cda:	51 05       	cpc	r21, r1
+     cdc:	2c f0       	brlt	.+10     	; 0xce8 <xbee_get_packet+0xdc>
+     cde:	10 92 73 03 	sts	0x0373, r1
+     ce2:	10 92 72 03 	sts	0x0372, r1
+     ce6:	b9 c0       	rjmp	.+370    	; 0xe5a <xbee_get_packet+0x24e>
+     ce8:	20 91 6a 03 	lds	r18, 0x036A
+     cec:	30 91 6b 03 	lds	r19, 0x036B
+     cf0:	80 91 68 03 	lds	r24, 0x0368
+     cf4:	90 91 69 03 	lds	r25, 0x0369
+     cf8:	28 17       	cp	r18, r24
+     cfa:	39 07       	cpc	r19, r25
+     cfc:	29 f4       	brne	.+10     	; 0xd08 <xbee_get_packet+0xfc>
+     cfe:	70 93 73 03 	sts	0x0373, r23
+     d02:	60 93 72 03 	sts	0x0372, r22
+     d06:	a9 c0       	rjmp	.+338    	; 0xe5a <xbee_get_packet+0x24e>
+     d08:	80 91 6a 03 	lds	r24, 0x036A
+     d0c:	90 91 6b 03 	lds	r25, 0x036B
+     d10:	fc 01       	movw	r30, r24
+     d12:	ef 59       	subi	r30, 0x9F	; 159
+     d14:	fb 4f       	sbci	r31, 0xFB	; 251
+     d16:	20 81       	ld	r18, Z
+     d18:	28 83       	st	Y, r18
+     d1a:	6f 5f       	subi	r22, 0xFF	; 255
+     d1c:	7f 4f       	sbci	r23, 0xFF	; 255
+     d1e:	01 96       	adiw	r24, 0x01	; 1
+     d20:	90 93 6b 03 	sts	0x036B, r25
+     d24:	80 93 6a 03 	sts	0x036A, r24
+     d28:	80 91 6a 03 	lds	r24, 0x036A
+     d2c:	90 91 6b 03 	lds	r25, 0x036B
+     d30:	80 38       	cpi	r24, 0x80	; 128
+     d32:	91 05       	cpc	r25, r1
+     d34:	21 f4       	brne	.+8      	; 0xd3e <xbee_get_packet+0x132>
+     d36:	10 92 6b 03 	sts	0x036B, r1
+     d3a:	10 92 6a 03 	sts	0x036A, r1
+     d3e:	21 96       	adiw	r28, 0x01	; 1
+     d40:	8f ef       	ldi	r24, 0xFF	; 255
+     d42:	4f 3f       	cpi	r20, 0xFF	; 255
+     d44:	58 07       	cpc	r21, r24
+     d46:	09 f4       	brne	.+2      	; 0xd4a <xbee_get_packet+0x13e>
+     d48:	bc cf       	rjmp	.-136    	; 0xcc2 <xbee_get_packet+0xb6>
+     d4a:	ca 01       	movw	r24, r20
+     d4c:	03 96       	adiw	r24, 0x03	; 3
+     d4e:	86 17       	cp	r24, r22
+     d50:	97 07       	cpc	r25, r23
+     d52:	0c f0       	brlt	.+2      	; 0xd56 <xbee_get_packet+0x14a>
+     d54:	b6 cf       	rjmp	.-148    	; 0xcc2 <xbee_get_packet+0xb6>
+     d56:	10 92 73 03 	sts	0x0373, r1
+     d5a:	10 92 72 03 	sts	0x0372, r1
+     d5e:	ba 01       	movw	r22, r20
+     d60:	6c 5f       	subi	r22, 0xFC	; 252
+     d62:	7f 4f       	sbci	r23, 0xFF	; 255
+     d64:	23 e0       	ldi	r18, 0x03	; 3
+     d66:	30 e0       	ldi	r19, 0x00	; 0
+     d68:	90 e0       	ldi	r25, 0x00	; 0
+     d6a:	07 c0       	rjmp	.+14     	; 0xd7a <xbee_get_packet+0x16e>
+     d6c:	f9 01       	movw	r30, r18
+     d6e:	ec 58       	subi	r30, 0x8C	; 140
+     d70:	fc 4f       	sbci	r31, 0xFC	; 252
+     d72:	80 81       	ld	r24, Z
+     d74:	98 0f       	add	r25, r24
+     d76:	2f 5f       	subi	r18, 0xFF	; 255
+     d78:	3f 4f       	sbci	r19, 0xFF	; 255
+     d7a:	26 17       	cp	r18, r22
+     d7c:	37 07       	cpc	r19, r23
+     d7e:	b4 f3       	brlt	.-20     	; 0xd6c <xbee_get_packet+0x160>
+     d80:	9f 3f       	cpi	r25, 0xFF	; 255
+     d82:	09 f0       	breq	.+2      	; 0xd86 <xbee_get_packet+0x17a>
+     d84:	6a c0       	rjmp	.+212    	; 0xe5a <xbee_get_packet+0x24e>
+     d86:	14 16       	cp	r1, r20
+     d88:	15 06       	cpc	r1, r21
+     d8a:	0c f0       	brlt	.+2      	; 0xd8e <xbee_get_packet+0x182>
+     d8c:	51 c0       	rjmp	.+162    	; 0xe30 <xbee_get_packet+0x224>
+     d8e:	80 91 77 03 	lds	r24, 0x0377
+     d92:	88 38       	cpi	r24, 0x88	; 136
+     d94:	21 f0       	breq	.+8      	; 0xd9e <xbee_get_packet+0x192>
+     d96:	8a 38       	cpi	r24, 0x8A	; 138
+     d98:	09 f0       	breq	.+2      	; 0xd9c <xbee_get_packet+0x190>
+     d9a:	4a c0       	rjmp	.+148    	; 0xe30 <xbee_get_packet+0x224>
+     d9c:	61 c0       	rjmp	.+194    	; 0xe60 <xbee_get_packet+0x254>
+     d9e:	80 91 79 03 	lds	r24, 0x0379
+     da2:	90 91 7a 03 	lds	r25, 0x037A
+     da6:	89 34       	cpi	r24, 0x49	; 73
+     da8:	61 f4       	brne	.+24     	; 0xdc2 <xbee_get_packet+0x1b6>
+     daa:	94 34       	cpi	r25, 0x44	; 68
+     dac:	09 f0       	breq	.+2      	; 0xdb0 <xbee_get_packet+0x1a4>
+     dae:	58 c0       	rjmp	.+176    	; 0xe60 <xbee_get_packet+0x254>
+     db0:	80 91 40 01 	lds	r24, 0x0140
+     db4:	90 91 41 01 	lds	r25, 0x0141
+     db8:	90 93 3f 01 	sts	0x013F, r25
+     dbc:	80 93 3e 01 	sts	0x013E, r24
+     dc0:	4f c0       	rjmp	.+158    	; 0xe60 <xbee_get_packet+0x254>
+     dc2:	83 34       	cpi	r24, 0x43	; 67
+     dc4:	61 f4       	brne	.+24     	; 0xdde <xbee_get_packet+0x1d2>
+     dc6:	98 34       	cpi	r25, 0x48	; 72
+     dc8:	09 f0       	breq	.+2      	; 0xdcc <xbee_get_packet+0x1c0>
+     dca:	4a c0       	rjmp	.+148    	; 0xe60 <xbee_get_packet+0x254>
+     dcc:	80 91 70 03 	lds	r24, 0x0370
+     dd0:	90 91 71 03 	lds	r25, 0x0371
+     dd4:	90 93 6f 03 	sts	0x036F, r25
+     dd8:	80 93 6e 03 	sts	0x036E, r24
+     ddc:	41 c0       	rjmp	.+130    	; 0xe60 <xbee_get_packet+0x254>
+     dde:	8d 34       	cpi	r24, 0x4D	; 77
+     de0:	09 f0       	breq	.+2      	; 0xde4 <xbee_get_packet+0x1d8>
+     de2:	3e c0       	rjmp	.+124    	; 0xe60 <xbee_get_packet+0x254>
+     de4:	99 35       	cpi	r25, 0x59	; 89
+     de6:	e1 f5       	brne	.+120    	; 0xe60 <xbee_get_packet+0x254>
+     de8:	ba 01       	movw	r22, r20
+     dea:	65 50       	subi	r22, 0x05	; 5
+     dec:	70 40       	sbci	r23, 0x00	; 0
+     dee:	c1 f1       	breq	.+112    	; 0xe60 <xbee_get_packet+0x254>
+     df0:	10 92 6d 03 	sts	0x036D, r1
+     df4:	10 92 6c 03 	sts	0x036C, r1
+     df8:	ec e7       	ldi	r30, 0x7C	; 124
+     dfa:	f3 e0       	ldi	r31, 0x03	; 3
+     dfc:	40 e0       	ldi	r20, 0x00	; 0
+     dfe:	50 e0       	ldi	r21, 0x00	; 0
+     e00:	0f c0       	rjmp	.+30     	; 0xe20 <xbee_get_packet+0x214>
+     e02:	80 91 6c 03 	lds	r24, 0x036C
+     e06:	90 91 6d 03 	lds	r25, 0x036D
+     e0a:	21 91       	ld	r18, Z+
+     e0c:	98 2f       	mov	r25, r24
+     e0e:	88 27       	eor	r24, r24
+     e10:	82 0f       	add	r24, r18
+     e12:	91 1d       	adc	r25, r1
+     e14:	90 93 6d 03 	sts	0x036D, r25
+     e18:	80 93 6c 03 	sts	0x036C, r24
+     e1c:	4f 5f       	subi	r20, 0xFF	; 255
+     e1e:	5f 4f       	sbci	r21, 0xFF	; 255
+     e20:	46 17       	cp	r20, r22
+     e22:	57 07       	cpc	r21, r23
+     e24:	74 f3       	brlt	.-36     	; 0xe02 <xbee_get_packet+0x1f6>
+     e26:	80 91 6c 03 	lds	r24, 0x036C
+     e2a:	90 91 6d 03 	lds	r25, 0x036D
+     e2e:	18 c0       	rjmp	.+48     	; 0xe60 <xbee_get_packet+0x254>
+     e30:	01 15       	cp	r16, r1
+     e32:	11 05       	cpc	r17, r1
+     e34:	91 f0       	breq	.+36     	; 0xe5a <xbee_get_packet+0x24e>
+     e36:	d8 01       	movw	r26, r16
+     e38:	23 e0       	ldi	r18, 0x03	; 3
+     e3a:	30 e0       	ldi	r19, 0x00	; 0
+     e3c:	ba 01       	movw	r22, r20
+     e3e:	6e 5f       	subi	r22, 0xFE	; 254
+     e40:	7f 4f       	sbci	r23, 0xFF	; 255
+     e42:	07 c0       	rjmp	.+14     	; 0xe52 <xbee_get_packet+0x246>
+     e44:	f9 01       	movw	r30, r18
+     e46:	ec 58       	subi	r30, 0x8C	; 140
+     e48:	fc 4f       	sbci	r31, 0xFC	; 252
+     e4a:	80 81       	ld	r24, Z
+     e4c:	8d 93       	st	X+, r24
+     e4e:	2f 5f       	subi	r18, 0xFF	; 255
+     e50:	3f 4f       	sbci	r19, 0xFF	; 255
+     e52:	62 17       	cp	r22, r18
+     e54:	73 07       	cpc	r23, r19
+     e56:	b4 f7       	brge	.-20     	; 0xe44 <xbee_get_packet+0x238>
+     e58:	05 c0       	rjmp	.+10     	; 0xe64 <xbee_get_packet+0x258>
+     e5a:	4f ef       	ldi	r20, 0xFF	; 255
+     e5c:	5f ef       	ldi	r21, 0xFF	; 255
+     e5e:	02 c0       	rjmp	.+4      	; 0xe64 <xbee_get_packet+0x258>
+     e60:	43 e0       	ldi	r20, 0x03	; 3
+     e62:	50 e0       	ldi	r21, 0x00	; 0
+     e64:	ca 01       	movw	r24, r20
+     e66:	df 91       	pop	r29
+     e68:	cf 91       	pop	r28
+     e6a:	1f 91       	pop	r17
+     e6c:	0f 91       	pop	r16
+     e6e:	08 95       	ret
+
+00000e70 <xbee_get_pan_id>:
+     e70:	80 91 3e 01 	lds	r24, 0x013E
+     e74:	90 91 3f 01 	lds	r25, 0x013F
+     e78:	08 95       	ret
+
+00000e7a <xbee_get_channel>:
+     e7a:	80 91 6e 03 	lds	r24, 0x036E
+     e7e:	90 91 6f 03 	lds	r25, 0x036F
+     e82:	08 95       	ret
+
+00000e84 <xbee_get_address>:
+     e84:	20 91 6c 03 	lds	r18, 0x036C
+     e88:	30 91 6d 03 	lds	r19, 0x036D
+     e8c:	c9 01       	movw	r24, r18
+     e8e:	08 95       	ret
+
+00000e90 <xbee_send_modify_at_command>:
+     e90:	cf 92       	push	r12
+     e92:	df 92       	push	r13
+     e94:	ef 92       	push	r14
+     e96:	ff 92       	push	r15
+     e98:	0f 93       	push	r16
+     e9a:	1f 93       	push	r17
+     e9c:	df 93       	push	r29
+     e9e:	cf 93       	push	r28
+     ea0:	cd b7       	in	r28, 0x3d	; 61
+     ea2:	de b7       	in	r29, 0x3e	; 62
+     ea4:	64 97       	sbiw	r28, 0x14	; 20
+     ea6:	0f b6       	in	r0, 0x3f	; 63
+     ea8:	f8 94       	cli
+     eaa:	de bf       	out	0x3e, r29	; 62
+     eac:	0f be       	out	0x3f, r0	; 63
+     eae:	cd bf       	out	0x3d, r28	; 61
+     eb0:	fc 01       	movw	r30, r24
+     eb2:	88 e0       	ldi	r24, 0x08	; 8
+     eb4:	8d 83       	std	Y+5, r24	; 0x05
+     eb6:	81 e0       	ldi	r24, 0x01	; 1
+     eb8:	8e 83       	std	Y+6, r24	; 0x06
+     eba:	80 81       	ld	r24, Z
+     ebc:	8f 83       	std	Y+7, r24	; 0x07
+     ebe:	81 81       	ldd	r24, Z+1	; 0x01
+     ec0:	88 87       	std	Y+8, r24	; 0x08
+     ec2:	61 15       	cp	r22, r1
+     ec4:	71 05       	cpc	r23, r1
+     ec6:	19 f4       	brne	.+6      	; 0xece <xbee_send_modify_at_command+0x3e>
+     ec8:	a0 e0       	ldi	r26, 0x00	; 0
+     eca:	b0 e0       	ldi	r27, 0x00	; 0
+     ecc:	1f c0       	rjmp	.+62     	; 0xf0c <xbee_send_modify_at_command+0x7c>
+     ece:	db 01       	movw	r26, r22
+     ed0:	0d 90       	ld	r0, X+
+     ed2:	00 20       	and	r0, r0
+     ed4:	e9 f7       	brne	.-6      	; 0xed0 <xbee_send_modify_at_command+0x40>
+     ed6:	11 97       	sbiw	r26, 0x01	; 1
+     ed8:	a6 1b       	sub	r26, r22
+     eda:	b7 0b       	sbc	r27, r23
+     edc:	a9 30       	cpi	r26, 0x09	; 9
+     ede:	b1 05       	cpc	r27, r1
+     ee0:	1c f0       	brlt	.+6      	; 0xee8 <xbee_send_modify_at_command+0x58>
+     ee2:	2f ef       	ldi	r18, 0xFF	; 255
+     ee4:	3f ef       	ldi	r19, 0xFF	; 255
+     ee6:	4f c0       	rjmp	.+158    	; 0xf86 <xbee_send_modify_at_command+0xf6>
+     ee8:	ae 01       	movw	r20, r28
+     eea:	47 5f       	subi	r20, 0xF7	; 247
+     eec:	5f 4f       	sbci	r21, 0xFF	; 255
+     eee:	20 e0       	ldi	r18, 0x00	; 0
+     ef0:	30 e0       	ldi	r19, 0x00	; 0
+     ef2:	09 c0       	rjmp	.+18     	; 0xf06 <xbee_send_modify_at_command+0x76>
+     ef4:	fb 01       	movw	r30, r22
+     ef6:	e2 0f       	add	r30, r18
+     ef8:	f3 1f       	adc	r31, r19
+     efa:	80 81       	ld	r24, Z
+     efc:	fa 01       	movw	r30, r20
+     efe:	81 93       	st	Z+, r24
+     f00:	af 01       	movw	r20, r30
+     f02:	2f 5f       	subi	r18, 0xFF	; 255
+     f04:	3f 4f       	sbci	r19, 0xFF	; 255
+     f06:	2a 17       	cp	r18, r26
+     f08:	3b 07       	cpc	r19, r27
+     f0a:	a4 f3       	brlt	.-24     	; 0xef4 <xbee_send_modify_at_command+0x64>
+     f0c:	54 e0       	ldi	r21, 0x04	; 4
+     f0e:	e5 2e       	mov	r14, r21
+     f10:	f1 2c       	mov	r15, r1
+     f12:	ea 0e       	add	r14, r26
+     f14:	fb 1e       	adc	r15, r27
+     f16:	8e e7       	ldi	r24, 0x7E	; 126
+     f18:	8a 83       	std	Y+2, r24	; 0x02
+     f1a:	fb 82       	std	Y+3, r15	; 0x03
+     f1c:	ec 82       	std	Y+4, r14	; 0x04
+     f1e:	20 e0       	ldi	r18, 0x00	; 0
+     f20:	30 e0       	ldi	r19, 0x00	; 0
+     f22:	90 e0       	ldi	r25, 0x00	; 0
+     f24:	ae 01       	movw	r20, r28
+     f26:	4b 5f       	subi	r20, 0xFB	; 251
+     f28:	5f 4f       	sbci	r21, 0xFF	; 255
+     f2a:	07 c0       	rjmp	.+14     	; 0xf3a <xbee_send_modify_at_command+0xaa>
+     f2c:	fa 01       	movw	r30, r20
+     f2e:	e2 0f       	add	r30, r18
+     f30:	f3 1f       	adc	r31, r19
+     f32:	80 81       	ld	r24, Z
+     f34:	98 0f       	add	r25, r24
+     f36:	2f 5f       	subi	r18, 0xFF	; 255
+     f38:	3f 4f       	sbci	r19, 0xFF	; 255
+     f3a:	2e 15       	cp	r18, r14
+     f3c:	3f 05       	cpc	r19, r15
+     f3e:	b4 f3       	brlt	.-20     	; 0xf2c <xbee_send_modify_at_command+0x9c>
+     f40:	90 95       	com	r25
+     f42:	99 83       	std	Y+1, r25	; 0x01
+     f44:	8e e7       	ldi	r24, 0x7E	; 126
+     f46:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+     f4a:	8b 81       	ldd	r24, Y+3	; 0x03
+     f4c:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+     f50:	8c 81       	ldd	r24, Y+4	; 0x04
+     f52:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+     f56:	00 e0       	ldi	r16, 0x00	; 0
+     f58:	10 e0       	ldi	r17, 0x00	; 0
+     f5a:	45 e0       	ldi	r20, 0x05	; 5
+     f5c:	c4 2e       	mov	r12, r20
+     f5e:	d1 2c       	mov	r13, r1
+     f60:	cc 0e       	add	r12, r28
+     f62:	dd 1e       	adc	r13, r29
+     f64:	08 c0       	rjmp	.+16     	; 0xf76 <xbee_send_modify_at_command+0xe6>
+     f66:	f6 01       	movw	r30, r12
+     f68:	e0 0f       	add	r30, r16
+     f6a:	f1 1f       	adc	r31, r17
+     f6c:	80 81       	ld	r24, Z
+     f6e:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+     f72:	0f 5f       	subi	r16, 0xFF	; 255
+     f74:	1f 4f       	sbci	r17, 0xFF	; 255
+     f76:	0e 15       	cp	r16, r14
+     f78:	1f 05       	cpc	r17, r15
+     f7a:	ac f3       	brlt	.-22     	; 0xf66 <xbee_send_modify_at_command+0xd6>
+     f7c:	89 81       	ldd	r24, Y+1	; 0x01
+     f7e:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+     f82:	20 e0       	ldi	r18, 0x00	; 0
+     f84:	30 e0       	ldi	r19, 0x00	; 0
+     f86:	c9 01       	movw	r24, r18
+     f88:	64 96       	adiw	r28, 0x14	; 20
+     f8a:	0f b6       	in	r0, 0x3f	; 63
+     f8c:	f8 94       	cli
+     f8e:	de bf       	out	0x3e, r29	; 62
+     f90:	0f be       	out	0x3f, r0	; 63
+     f92:	cd bf       	out	0x3d, r28	; 61
+     f94:	cf 91       	pop	r28
+     f96:	df 91       	pop	r29
+     f98:	1f 91       	pop	r17
+     f9a:	0f 91       	pop	r16
+     f9c:	ff 90       	pop	r15
+     f9e:	ef 90       	pop	r14
+     fa0:	df 90       	pop	r13
+     fa2:	cf 90       	pop	r12
+     fa4:	08 95       	ret
+
+00000fa6 <xbee_set_channel>:
+     fa6:	df 93       	push	r29
+     fa8:	cf 93       	push	r28
+     faa:	00 d0       	rcall	.+0      	; 0xfac <xbee_set_channel+0x6>
+     fac:	0f 92       	push	r0
+     fae:	cd b7       	in	r28, 0x3d	; 61
+     fb0:	de b7       	in	r29, 0x3e	; 62
+     fb2:	9c 01       	movw	r18, r24
+     fb4:	0b 97       	sbiw	r24, 0x0b	; 11
+     fb6:	40 97       	sbiw	r24, 0x10	; 16
+     fb8:	18 f0       	brcs	.+6      	; 0xfc0 <xbee_set_channel+0x1a>
+     fba:	2f ef       	ldi	r18, 0xFF	; 255
+     fbc:	3f ef       	ldi	r19, 0xFF	; 255
+     fbe:	0e c0       	rjmp	.+28     	; 0xfdc <xbee_set_channel+0x36>
+     fc0:	29 83       	std	Y+1, r18	; 0x01
+     fc2:	1a 82       	std	Y+2, r1	; 0x02
+     fc4:	30 93 71 03 	sts	0x0371, r19
+     fc8:	20 93 70 03 	sts	0x0370, r18
+     fcc:	82 e1       	ldi	r24, 0x12	; 18
+     fce:	91 e0       	ldi	r25, 0x01	; 1
+     fd0:	be 01       	movw	r22, r28
+     fd2:	6f 5f       	subi	r22, 0xFF	; 255
+     fd4:	7f 4f       	sbci	r23, 0xFF	; 255
+     fd6:	0e 94 48 07 	call	0xe90	; 0xe90 <xbee_send_modify_at_command>
+     fda:	9c 01       	movw	r18, r24
+     fdc:	c9 01       	movw	r24, r18
+     fde:	0f 90       	pop	r0
+     fe0:	0f 90       	pop	r0
+     fe2:	0f 90       	pop	r0
+     fe4:	cf 91       	pop	r28
+     fe6:	df 91       	pop	r29
+     fe8:	08 95       	ret
+
+00000fea <xbee_set_pan_id>:
+     fea:	df 93       	push	r29
+     fec:	cf 93       	push	r28
+     fee:	00 d0       	rcall	.+0      	; 0xff0 <xbee_set_pan_id+0x6>
+     ff0:	0f 92       	push	r0
+     ff2:	cd b7       	in	r28, 0x3d	; 61
+     ff4:	de b7       	in	r29, 0x3e	; 62
+     ff6:	99 83       	std	Y+1, r25	; 0x01
+     ff8:	8a 83       	std	Y+2, r24	; 0x02
+     ffa:	1b 82       	std	Y+3, r1	; 0x03
+     ffc:	80 93 40 01 	sts	0x0140, r24
+    1000:	90 93 41 01 	sts	0x0141, r25
+    1004:	85 e1       	ldi	r24, 0x15	; 21
+    1006:	91 e0       	ldi	r25, 0x01	; 1
+    1008:	be 01       	movw	r22, r28
+    100a:	6f 5f       	subi	r22, 0xFF	; 255
+    100c:	7f 4f       	sbci	r23, 0xFF	; 255
+    100e:	0e 94 48 07 	call	0xe90	; 0xe90 <xbee_send_modify_at_command>
+    1012:	0f 90       	pop	r0
+    1014:	0f 90       	pop	r0
+    1016:	0f 90       	pop	r0
+    1018:	cf 91       	pop	r28
+    101a:	df 91       	pop	r29
+    101c:	08 95       	ret
+
+0000101e <xbee_reset>:
+    101e:	88 e1       	ldi	r24, 0x18	; 24
+    1020:	91 e0       	ldi	r25, 0x01	; 1
+    1022:	6b e1       	ldi	r22, 0x1B	; 27
+    1024:	71 e0       	ldi	r23, 0x01	; 1
+    1026:	0e 94 48 07 	call	0xe90	; 0xe90 <xbee_send_modify_at_command>
+    102a:	8d e1       	ldi	r24, 0x1D	; 29
+    102c:	91 e0       	ldi	r25, 0x01	; 1
+    102e:	60 e0       	ldi	r22, 0x00	; 0
+    1030:	70 e0       	ldi	r23, 0x00	; 0
+    1032:	0e 94 48 07 	call	0xe90	; 0xe90 <xbee_send_modify_at_command>
+    1036:	8c ed       	ldi	r24, 0xDC	; 220
+    1038:	95 e0       	ldi	r25, 0x05	; 5
+    103a:	20 e9       	ldi	r18, 0x90	; 144
+    103c:	31 e0       	ldi	r19, 0x01	; 1
+    103e:	f9 01       	movw	r30, r18
+    1040:	31 97       	sbiw	r30, 0x01	; 1
+    1042:	f1 f7       	brne	.-4      	; 0x1040 <xbee_reset+0x22>
+    1044:	01 97       	sbiw	r24, 0x01	; 1
+    1046:	d9 f7       	brne	.-10     	; 0x103e <xbee_reset+0x20>
+    1048:	80 e0       	ldi	r24, 0x00	; 0
+    104a:	90 e0       	ldi	r25, 0x00	; 0
+    104c:	08 95       	ret
+
+0000104e <xbee_terminate>:
+    104e:	80 e2       	ldi	r24, 0x20	; 32
+    1050:	91 e0       	ldi	r25, 0x01	; 1
+    1052:	63 e2       	ldi	r22, 0x23	; 35
+    1054:	71 e0       	ldi	r23, 0x01	; 1
+    1056:	0e 94 48 07 	call	0xe90	; 0xe90 <xbee_send_modify_at_command>
+    105a:	08 95       	ret
+
+0000105c <xbee_send_packet>:
+    105c:	af 92       	push	r10
+    105e:	bf 92       	push	r11
+    1060:	cf 92       	push	r12
+    1062:	df 92       	push	r13
+    1064:	ef 92       	push	r14
+    1066:	ff 92       	push	r15
+    1068:	0f 93       	push	r16
+    106a:	1f 93       	push	r17
+    106c:	df 93       	push	r29
+    106e:	cf 93       	push	r28
+    1070:	cd b7       	in	r28, 0x3d	; 61
+    1072:	de b7       	in	r29, 0x3e	; 62
+    1074:	29 97       	sbiw	r28, 0x09	; 9
+    1076:	0f b6       	in	r0, 0x3f	; 63
+    1078:	f8 94       	cli
+    107a:	de bf       	out	0x3e, r29	; 62
+    107c:	0f be       	out	0x3f, r0	; 63
+    107e:	cd bf       	out	0x3d, r28	; 61
+    1080:	5c 01       	movw	r10, r24
+    1082:	7b 01       	movw	r14, r22
+    1084:	65 36       	cpi	r22, 0x65	; 101
+    1086:	71 05       	cpc	r23, r1
+    1088:	1c f0       	brlt	.+6      	; 0x1090 <xbee_send_packet+0x34>
+    108a:	2f ef       	ldi	r18, 0xFF	; 255
+    108c:	3f ef       	ldi	r19, 0xFF	; 255
+    108e:	56 c0       	rjmp	.+172    	; 0x113c <__stack+0x3d>
+    1090:	81 e0       	ldi	r24, 0x01	; 1
+    1092:	8d 83       	std	Y+5, r24	; 0x05
+    1094:	0e 83       	std	Y+6, r16	; 0x06
+    1096:	5f 83       	std	Y+7, r21	; 0x07
+    1098:	48 87       	std	Y+8, r20	; 0x08
+    109a:	29 87       	std	Y+9, r18	; 0x09
+    109c:	8e e7       	ldi	r24, 0x7E	; 126
+    109e:	8a 83       	std	Y+2, r24	; 0x02
+    10a0:	e5 e0       	ldi	r30, 0x05	; 5
+    10a2:	f0 e0       	ldi	r31, 0x00	; 0
+    10a4:	ee 0e       	add	r14, r30
+    10a6:	ff 1e       	adc	r15, r31
+    10a8:	fb 82       	std	Y+3, r15	; 0x03
+    10aa:	8b ef       	ldi	r24, 0xFB	; 251
+    10ac:	9f ef       	ldi	r25, 0xFF	; 255
+    10ae:	e8 0e       	add	r14, r24
+    10b0:	f9 1e       	adc	r15, r25
+    10b2:	8e 2d       	mov	r24, r14
+    10b4:	8b 5f       	subi	r24, 0xFB	; 251
+    10b6:	8c 83       	std	Y+4, r24	; 0x04
+    10b8:	0f 5f       	subi	r16, 0xFF	; 255
+    10ba:	05 0f       	add	r16, r21
+    10bc:	04 0f       	add	r16, r20
+    10be:	02 0f       	add	r16, r18
+    10c0:	09 83       	std	Y+1, r16	; 0x01
+    10c2:	20 e0       	ldi	r18, 0x00	; 0
+    10c4:	30 e0       	ldi	r19, 0x00	; 0
+    10c6:	08 c0       	rjmp	.+16     	; 0x10d8 <xbee_send_packet+0x7c>
+    10c8:	f5 01       	movw	r30, r10
+    10ca:	e2 0f       	add	r30, r18
+    10cc:	f3 1f       	adc	r31, r19
+    10ce:	80 81       	ld	r24, Z
+    10d0:	98 0f       	add	r25, r24
+    10d2:	99 83       	std	Y+1, r25	; 0x01
+    10d4:	2f 5f       	subi	r18, 0xFF	; 255
+    10d6:	3f 4f       	sbci	r19, 0xFF	; 255
+    10d8:	99 81       	ldd	r25, Y+1	; 0x01
+    10da:	2e 15       	cp	r18, r14
+    10dc:	3f 05       	cpc	r19, r15
+    10de:	a4 f3       	brlt	.-24     	; 0x10c8 <xbee_send_packet+0x6c>
+    10e0:	90 95       	com	r25
+    10e2:	99 83       	std	Y+1, r25	; 0x01
+    10e4:	8e e7       	ldi	r24, 0x7E	; 126
+    10e6:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    10ea:	8b 81       	ldd	r24, Y+3	; 0x03
+    10ec:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    10f0:	8c 81       	ldd	r24, Y+4	; 0x04
+    10f2:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    10f6:	8e 01       	movw	r16, r28
+    10f8:	0b 5f       	subi	r16, 0xFB	; 251
+    10fa:	1f 4f       	sbci	r17, 0xFF	; 255
+    10fc:	6a e0       	ldi	r22, 0x0A	; 10
+    10fe:	c6 2e       	mov	r12, r22
+    1100:	d1 2c       	mov	r13, r1
+    1102:	cc 0e       	add	r12, r28
+    1104:	dd 1e       	adc	r13, r29
+    1106:	f8 01       	movw	r30, r16
+    1108:	81 91       	ld	r24, Z+
+    110a:	8f 01       	movw	r16, r30
+    110c:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    1110:	0c 15       	cp	r16, r12
+    1112:	1d 05       	cpc	r17, r13
+    1114:	c1 f7       	brne	.-16     	; 0x1106 <__stack+0x7>
+    1116:	00 e0       	ldi	r16, 0x00	; 0
+    1118:	10 e0       	ldi	r17, 0x00	; 0
+    111a:	08 c0       	rjmp	.+16     	; 0x112c <__stack+0x2d>
+    111c:	f5 01       	movw	r30, r10
+    111e:	e0 0f       	add	r30, r16
+    1120:	f1 1f       	adc	r31, r17
+    1122:	80 81       	ld	r24, Z
+    1124:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    1128:	0f 5f       	subi	r16, 0xFF	; 255
+    112a:	1f 4f       	sbci	r17, 0xFF	; 255
+    112c:	0e 15       	cp	r16, r14
+    112e:	1f 05       	cpc	r17, r15
+    1130:	ac f3       	brlt	.-22     	; 0x111c <__stack+0x1d>
+    1132:	89 81       	ldd	r24, Y+1	; 0x01
+    1134:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    1138:	20 e0       	ldi	r18, 0x00	; 0
+    113a:	30 e0       	ldi	r19, 0x00	; 0
+    113c:	c9 01       	movw	r24, r18
+    113e:	29 96       	adiw	r28, 0x09	; 9
+    1140:	0f b6       	in	r0, 0x3f	; 63
+    1142:	f8 94       	cli
+    1144:	de bf       	out	0x3e, r29	; 62
+    1146:	0f be       	out	0x3f, r0	; 63
+    1148:	cd bf       	out	0x3d, r28	; 61
+    114a:	cf 91       	pop	r28
+    114c:	df 91       	pop	r29
+    114e:	1f 91       	pop	r17
+    1150:	0f 91       	pop	r16
+    1152:	ff 90       	pop	r15
+    1154:	ef 90       	pop	r14
+    1156:	df 90       	pop	r13
+    1158:	cf 90       	pop	r12
+    115a:	bf 90       	pop	r11
+    115c:	af 90       	pop	r10
+    115e:	08 95       	ret
+
+00001160 <xbee_send_string>:
+    1160:	ef 92       	push	r14
+    1162:	ff 92       	push	r15
+    1164:	0f 93       	push	r16
+    1166:	1f 93       	push	r17
+    1168:	cf 93       	push	r28
+    116a:	df 93       	push	r29
+    116c:	7c 01       	movw	r14, r24
+    116e:	dc 01       	movw	r26, r24
+    1170:	0d 90       	ld	r0, X+
+    1172:	00 20       	and	r0, r0
+    1174:	e9 f7       	brne	.-6      	; 0x1170 <xbee_send_string+0x10>
+    1176:	8d 01       	movw	r16, r26
+    1178:	01 50       	subi	r16, 0x01	; 1
+    117a:	10 40       	sbci	r17, 0x00	; 0
+    117c:	08 1b       	sub	r16, r24
+    117e:	19 0b       	sbc	r17, r25
+    1180:	c0 e0       	ldi	r28, 0x00	; 0
+    1182:	d0 e0       	ldi	r29, 0x00	; 0
+    1184:	07 c0       	rjmp	.+14     	; 0x1194 <xbee_send_string+0x34>
+    1186:	f7 01       	movw	r30, r14
+    1188:	ec 0f       	add	r30, r28
+    118a:	fd 1f       	adc	r31, r29
+    118c:	80 81       	ld	r24, Z
+    118e:	0e 94 77 1e 	call	0x3cee	; 0x3cee <xbee_putc>
+    1192:	21 96       	adiw	r28, 0x01	; 1
+    1194:	c0 17       	cp	r28, r16
+    1196:	d1 07       	cpc	r29, r17
+    1198:	b4 f3       	brlt	.-20     	; 0x1186 <xbee_send_string+0x26>
+    119a:	80 e0       	ldi	r24, 0x00	; 0
+    119c:	90 e0       	ldi	r25, 0x00	; 0
+    119e:	df 91       	pop	r29
+    11a0:	cf 91       	pop	r28
+    11a2:	1f 91       	pop	r17
+    11a4:	0f 91       	pop	r16
+    11a6:	ff 90       	pop	r15
+    11a8:	ef 90       	pop	r14
+    11aa:	08 95       	ret
+
+000011ac <xbee_lib_init>:
+    11ac:	80 91 9a 00 	lds	r24, 0x009A
+    11b0:	80 68       	ori	r24, 0x80	; 128
+    11b2:	80 93 9a 00 	sts	0x009A, r24
+    11b6:	78 94       	sei
+    11b8:	85 e2       	ldi	r24, 0x25	; 37
+    11ba:	91 e0       	ldi	r25, 0x01	; 1
+    11bc:	0e 94 b0 08 	call	0x1160	; 0x1160 <xbee_send_string>
+    11c0:	89 2b       	or	r24, r25
+    11c2:	09 f0       	breq	.+2      	; 0x11c6 <xbee_lib_init+0x1a>
+    11c4:	99 c0       	rjmp	.+306    	; 0x12f8 <xbee_lib_init+0x14c>
+    11c6:	26 c0       	rjmp	.+76     	; 0x1214 <xbee_lib_init+0x68>
+    11c8:	20 91 68 03 	lds	r18, 0x0368
+    11cc:	30 91 69 03 	lds	r19, 0x0369
+    11d0:	80 91 6a 03 	lds	r24, 0x036A
+    11d4:	90 91 6b 03 	lds	r25, 0x036B
+    11d8:	28 17       	cp	r18, r24
+    11da:	39 07       	cpc	r19, r25
+    11dc:	f9 f0       	breq	.+62     	; 0x121c <xbee_lib_init+0x70>
+    11de:	80 91 6a 03 	lds	r24, 0x036A
+    11e2:	90 91 6b 03 	lds	r25, 0x036B
+    11e6:	fc 01       	movw	r30, r24
+    11e8:	ef 59       	subi	r30, 0x9F	; 159
+    11ea:	fb 4f       	sbci	r31, 0xFB	; 251
+    11ec:	e0 81       	ld	r30, Z
+    11ee:	01 96       	adiw	r24, 0x01	; 1
+    11f0:	90 93 6b 03 	sts	0x036B, r25
+    11f4:	80 93 6a 03 	sts	0x036A, r24
+    11f8:	80 91 6a 03 	lds	r24, 0x036A
+    11fc:	90 91 6b 03 	lds	r25, 0x036B
+    1200:	80 38       	cpi	r24, 0x80	; 128
+    1202:	91 05       	cpc	r25, r1
+    1204:	21 f4       	brne	.+8      	; 0x120e <xbee_lib_init+0x62>
+    1206:	10 92 6b 03 	sts	0x036B, r1
+    120a:	10 92 6a 03 	sts	0x036A, r1
+    120e:	8c 91       	ld	r24, X
+    1210:	e8 17       	cp	r30, r24
+    1212:	19 f0       	breq	.+6      	; 0x121a <xbee_lib_init+0x6e>
+    1214:	a9 e2       	ldi	r26, 0x29	; 41
+    1216:	b1 e0       	ldi	r27, 0x01	; 1
+    1218:	01 c0       	rjmp	.+2      	; 0x121c <xbee_lib_init+0x70>
+    121a:	11 96       	adiw	r26, 0x01	; 1
+    121c:	cd 01       	movw	r24, r26
+    121e:	89 52       	subi	r24, 0x29	; 41
+    1220:	91 40       	sbci	r25, 0x01	; 1
+    1222:	03 97       	sbiw	r24, 0x03	; 3
+    1224:	8c f2       	brlt	.-94     	; 0x11c8 <xbee_lib_init+0x1c>
+    1226:	6c c0       	rjmp	.+216    	; 0x1300 <xbee_lib_init+0x154>
+    1228:	20 91 68 03 	lds	r18, 0x0368
+    122c:	30 91 69 03 	lds	r19, 0x0369
+    1230:	80 91 6a 03 	lds	r24, 0x036A
+    1234:	90 91 6b 03 	lds	r25, 0x036B
+    1238:	28 17       	cp	r18, r24
+    123a:	39 07       	cpc	r19, r25
+    123c:	e9 f0       	breq	.+58     	; 0x1278 <xbee_lib_init+0xcc>
+    123e:	80 91 6a 03 	lds	r24, 0x036A
+    1242:	90 91 6b 03 	lds	r25, 0x036B
+    1246:	fc 01       	movw	r30, r24
+    1248:	ef 59       	subi	r30, 0x9F	; 159
+    124a:	fb 4f       	sbci	r31, 0xFB	; 251
+    124c:	e0 81       	ld	r30, Z
+    124e:	01 96       	adiw	r24, 0x01	; 1
+    1250:	90 93 6b 03 	sts	0x036B, r25
+    1254:	80 93 6a 03 	sts	0x036A, r24
+    1258:	80 91 6a 03 	lds	r24, 0x036A
+    125c:	90 91 6b 03 	lds	r25, 0x036B
+    1260:	80 38       	cpi	r24, 0x80	; 128
+    1262:	91 05       	cpc	r25, r1
+    1264:	21 f4       	brne	.+8      	; 0x126e <xbee_lib_init+0xc2>
+    1266:	10 92 6b 03 	sts	0x036B, r1
+    126a:	10 92 6a 03 	sts	0x036A, r1
+    126e:	8c 91       	ld	r24, X
+    1270:	e8 17       	cp	r30, r24
+    1272:	09 f0       	breq	.+2      	; 0x1276 <xbee_lib_init+0xca>
+    1274:	4b c0       	rjmp	.+150    	; 0x130c <xbee_lib_init+0x160>
+    1276:	11 96       	adiw	r26, 0x01	; 1
+    1278:	cd 01       	movw	r24, r26
+    127a:	89 52       	subi	r24, 0x29	; 41
+    127c:	91 40       	sbci	r25, 0x01	; 1
+    127e:	03 97       	sbiw	r24, 0x03	; 3
+    1280:	9c f2       	brlt	.-90     	; 0x1228 <xbee_lib_init+0x7c>
+    1282:	47 c0       	rjmp	.+142    	; 0x1312 <xbee_lib_init+0x166>
+    1284:	20 91 68 03 	lds	r18, 0x0368
+    1288:	30 91 69 03 	lds	r19, 0x0369
+    128c:	80 91 6a 03 	lds	r24, 0x036A
+    1290:	90 91 6b 03 	lds	r25, 0x036B
+    1294:	28 17       	cp	r18, r24
+    1296:	39 07       	cpc	r19, r25
+    1298:	e1 f0       	breq	.+56     	; 0x12d2 <xbee_lib_init+0x126>
+    129a:	80 91 6a 03 	lds	r24, 0x036A
+    129e:	90 91 6b 03 	lds	r25, 0x036B
+    12a2:	fc 01       	movw	r30, r24
+    12a4:	ef 59       	subi	r30, 0x9F	; 159
+    12a6:	fb 4f       	sbci	r31, 0xFB	; 251
+    12a8:	e0 81       	ld	r30, Z
+    12aa:	01 96       	adiw	r24, 0x01	; 1
+    12ac:	90 93 6b 03 	sts	0x036B, r25
+    12b0:	80 93 6a 03 	sts	0x036A, r24
+    12b4:	80 91 6a 03 	lds	r24, 0x036A
+    12b8:	90 91 6b 03 	lds	r25, 0x036B
+    12bc:	80 38       	cpi	r24, 0x80	; 128
+    12be:	91 05       	cpc	r25, r1
+    12c0:	21 f4       	brne	.+8      	; 0x12ca <xbee_lib_init+0x11e>
+    12c2:	10 92 6b 03 	sts	0x036B, r1
+    12c6:	10 92 6a 03 	sts	0x036A, r1
+    12ca:	8c 91       	ld	r24, X
+    12cc:	e8 17       	cp	r30, r24
+    12ce:	39 f5       	brne	.+78     	; 0x131e <xbee_lib_init+0x172>
+    12d0:	11 96       	adiw	r26, 0x01	; 1
+    12d2:	cd 01       	movw	r24, r26
+    12d4:	89 52       	subi	r24, 0x29	; 41
+    12d6:	91 40       	sbci	r25, 0x01	; 1
+    12d8:	03 97       	sbiw	r24, 0x03	; 3
+    12da:	a4 f2       	brlt	.-88     	; 0x1284 <xbee_lib_init+0xd8>
+    12dc:	23 c0       	rjmp	.+70     	; 0x1324 <xbee_lib_init+0x178>
+    12de:	80 e0       	ldi	r24, 0x00	; 0
+    12e0:	90 e0       	ldi	r25, 0x00	; 0
+    12e2:	0e 94 06 06 	call	0xc0c	; 0xc0c <xbee_get_packet>
+    12e6:	80 91 6c 03 	lds	r24, 0x036C
+    12ea:	90 91 6d 03 	lds	r25, 0x036D
+    12ee:	89 2b       	or	r24, r25
+    12f0:	b1 f3       	breq	.-20     	; 0x12de <xbee_lib_init+0x132>
+    12f2:	20 e0       	ldi	r18, 0x00	; 0
+    12f4:	30 e0       	ldi	r19, 0x00	; 0
+    12f6:	02 c0       	rjmp	.+4      	; 0x12fc <xbee_lib_init+0x150>
+    12f8:	2f ef       	ldi	r18, 0xFF	; 255
+    12fa:	3f ef       	ldi	r19, 0xFF	; 255
+    12fc:	c9 01       	movw	r24, r18
+    12fe:	08 95       	ret
+    1300:	8d e2       	ldi	r24, 0x2D	; 45
+    1302:	91 e0       	ldi	r25, 0x01	; 1
+    1304:	0e 94 b0 08 	call	0x1160	; 0x1160 <xbee_send_string>
+    1308:	89 2b       	or	r24, r25
+    130a:	b1 f7       	brne	.-20     	; 0x12f8 <xbee_lib_init+0x14c>
+    130c:	a9 e2       	ldi	r26, 0x29	; 41
+    130e:	b1 e0       	ldi	r27, 0x01	; 1
+    1310:	b3 cf       	rjmp	.-154    	; 0x1278 <xbee_lib_init+0xcc>
+    1312:	85 e3       	ldi	r24, 0x35	; 53
+    1314:	91 e0       	ldi	r25, 0x01	; 1
+    1316:	0e 94 b0 08 	call	0x1160	; 0x1160 <xbee_send_string>
+    131a:	89 2b       	or	r24, r25
+    131c:	69 f7       	brne	.-38     	; 0x12f8 <xbee_lib_init+0x14c>
+    131e:	a9 e2       	ldi	r26, 0x29	; 41
+    1320:	b1 e0       	ldi	r27, 0x01	; 1
+    1322:	d7 cf       	rjmp	.-82     	; 0x12d2 <xbee_lib_init+0x126>
+    1324:	8b e3       	ldi	r24, 0x3B	; 59
+    1326:	91 e0       	ldi	r25, 0x01	; 1
+    1328:	60 e0       	ldi	r22, 0x00	; 0
+    132a:	70 e0       	ldi	r23, 0x00	; 0
+    132c:	0e 94 48 07 	call	0xe90	; 0xe90 <xbee_send_modify_at_command>
+    1330:	89 2b       	or	r24, r25
+    1332:	c9 f2       	breq	.-78     	; 0x12e6 <xbee_lib_init+0x13a>
+    1334:	e1 cf       	rjmp	.-62     	; 0x12f8 <xbee_lib_init+0x14c>
+
+00001336 <analog_init>:
+ * 8-bit precision which can work at ADC clock speeds
+ * higher than 200kHz. Experimental tests needed to
+ * determine highest clock speed for accurate 8-bit ADC.
+ *
+ **/
+void analog_init(int start_conversion) {
+    1336:	ac 01       	movw	r20, r24
+    1338:	20 e0       	ldi	r18, 0x00	; 0
+    133a:	30 e0       	ldi	r19, 0x00	; 0
+	for (int i = 0; i < 11; i++) {
+		an_val[i].adc10 = 0;
+    133c:	f9 01       	movw	r30, r18
+    133e:	ee 0f       	add	r30, r30
+    1340:	ff 1f       	adc	r31, r31
+    1342:	e2 0f       	add	r30, r18
+    1344:	f3 1f       	adc	r31, r19
+    1346:	ef 51       	subi	r30, 0x1F	; 31
+    1348:	fb 4f       	sbci	r31, 0xFB	; 251
+    134a:	12 82       	std	Z+2, r1	; 0x02
+    134c:	11 82       	std	Z+1, r1	; 0x01
+		an_val[i].adc8 = 0;
+    134e:	10 82       	st	Z, r1
+ * higher than 200kHz. Experimental tests needed to
+ * determine highest clock speed for accurate 8-bit ADC.
+ *
+ **/
+void analog_init(int start_conversion) {
+	for (int i = 0; i < 11; i++) {
+    1350:	2f 5f       	subi	r18, 0xFF	; 255
+    1352:	3f 4f       	sbci	r19, 0xFF	; 255
+    1354:	2b 30       	cpi	r18, 0x0B	; 11
+    1356:	31 05       	cpc	r19, r1
+    1358:	89 f7       	brne	.-30     	; 0x133c <analog_init+0x6>
+	// Bit 7,6 - Set voltage reference to AVcc (0b01)
+	// Bit 5 - ADLAR set to simplify moving from register
+	// Bit 4 - X
+	// Bit 3:0 - Sets the current channel
+	// Initializes to read from AN1 first (AN0 is reservered for the BOM)
+	ADMUX = 0;
+    135a:	17 b8       	out	0x07, r1	; 7
+	ADMUX |= ADMUX_OPT | _BV(MUX0);
+    135c:	87 b1       	in	r24, 0x07	; 7
+    135e:	81 66       	ori	r24, 0x61	; 97
+    1360:	87 b9       	out	0x07, r24	; 7
+	// Bit 6 - Start conversion bit is set (must be done once for free-running mode)
+	// Bit 5 - Enable Auto Trigger (for free running mode) NOT DOING THIS RIGHT NOW
+	// Bit 4 - ADC interrupt flag, 0
+	// Bit 3 - Enable ADC Interrupt (required to run free-running mode)
+	// Bits 2-0 - Set to create a clock divisor of 128, to make ADC clock = 8,000,000/64 = 125kHz
+	ADCSRA = 0;
+    1362:	16 b8       	out	0x06, r1	; 6
+	ADCSRA |= _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0);
+    1364:	86 b1       	in	r24, 0x06	; 6
+    1366:	87 68       	ori	r24, 0x87	; 135
+    1368:	86 b9       	out	0x06, r24	; 6
+	
+	// Set external mux lines to outputs
+	DDRG |= 0x1C;
+    136a:	80 91 64 00 	lds	r24, 0x0064
+    136e:	8c 61       	ori	r24, 0x1C	; 28
+    1370:	80 93 64 00 	sts	0x0064, r24
+ *
+ * @see analog_init
+ **/
+void set_adc_mux(int which) {  
+  // mask so only proper bits are possible.  
+  PORTG = (PORTG & 0xE3) | ((which & 0x03) << 3) | (which & 0x04);
+    1374:	80 91 65 00 	lds	r24, 0x0065
+    1378:	83 7e       	andi	r24, 0xE3	; 227
+    137a:	80 93 65 00 	sts	0x0065, r24
+	// Set external mux lines to outputs
+	DDRG |= 0x1C;
+	
+	// Set up first port for conversions
+	set_adc_mux(0x00);
+	adc_current_port = AN1;
+    137e:	21 e0       	ldi	r18, 0x01	; 1
+    1380:	30 e0       	ldi	r19, 0x00	; 0
+    1382:	30 93 e5 03 	sts	0x03E5, r19
+    1386:	20 93 e4 03 	sts	0x03E4, r18
+
+	//Start the conversion loop if requested
+	if (start_conversion)
+    138a:	45 2b       	or	r20, r21
+    138c:	61 f0       	breq	.+24     	; 0x13a6 <analog_init+0x70>
+ * until analog_stop_loop is called.
+ *
+ * @see analog_stop_loop, analog_loop_status
+ **/
+void analog_start_loop(void) {
+	if(adc_loop_status != ADC_LOOP_RUNNING){
+    138e:	80 91 e0 03 	lds	r24, 0x03E0
+    1392:	90 91 e1 03 	lds	r25, 0x03E1
+    1396:	01 97       	sbiw	r24, 0x01	; 1
+    1398:	31 f0       	breq	.+12     	; 0x13a6 <analog_init+0x70>
+		//Start the conversion, enable ADC interrupt
+		ADCSRA |= _BV(ADIE);
+    139a:	33 9a       	sbi	0x06, 3	; 6
+		ADCSRA |= _BV(ADSC);
+    139c:	36 9a       	sbi	0x06, 6	; 6
+		adc_loop_status = ADC_LOOP_RUNNING;
+    139e:	30 93 e1 03 	sts	0x03E1, r19
+    13a2:	20 93 e0 03 	sts	0x03E0, r18
+    13a6:	08 95       	ret
+
+000013a8 <analog8>:
+ * @return 8-bit analog value for the which port requested
+ *
+ * @see analog10, analog_get8, analog_get10
+ **/
+unsigned int analog8(int which) {
+	if (which == BOM_PORT) {
+    13a8:	00 97       	sbiw	r24, 0x00	; 0
+    13aa:	19 f4       	brne	.+6      	; 0x13b2 <analog8+0xa>
+    13ac:	20 e0       	ldi	r18, 0x00	; 0
+    13ae:	30 e0       	ldi	r19, 0x00	; 0
+    13b0:	0b c0       	rjmp	.+22     	; 0x13c8 <analog8+0x20>
+		return 0;
+	} else {
+		return an_val[which - 1].adc8;
+    13b2:	01 97       	sbiw	r24, 0x01	; 1
+    13b4:	fc 01       	movw	r30, r24
+    13b6:	ee 0f       	add	r30, r30
+    13b8:	ff 1f       	adc	r31, r31
+    13ba:	e8 0f       	add	r30, r24
+    13bc:	f9 1f       	adc	r31, r25
+    13be:	ef 51       	subi	r30, 0x1F	; 31
+    13c0:	fb 4f       	sbci	r31, 0xFB	; 251
+    13c2:	80 81       	ld	r24, Z
+    13c4:	28 2f       	mov	r18, r24
+    13c6:	30 e0       	ldi	r19, 0x00	; 0
+	}
+}
+    13c8:	c9 01       	movw	r24, r18
+    13ca:	08 95       	ret
+
+000013cc <analog10>:
+ * @return 10-bit analog value for the which port requested
+ *
+ * @see analog8, analog_get8, analog_get10
+ **/
+unsigned int analog10(int which) {
+	if (which == BOM_PORT) {
+    13cc:	00 97       	sbiw	r24, 0x00	; 0
+    13ce:	19 f4       	brne	.+6      	; 0x13d6 <analog10+0xa>
+    13d0:	20 e0       	ldi	r18, 0x00	; 0
+    13d2:	30 e0       	ldi	r19, 0x00	; 0
+    13d4:	0a c0       	rjmp	.+20     	; 0x13ea <analog10+0x1e>
+		return 0;
+	} else {
+		return an_val[which - 1].adc10;
+    13d6:	01 97       	sbiw	r24, 0x01	; 1
+    13d8:	fc 01       	movw	r30, r24
+    13da:	ee 0f       	add	r30, r30
+    13dc:	ff 1f       	adc	r31, r31
+    13de:	e8 0f       	add	r30, r24
+    13e0:	f9 1f       	adc	r31, r25
+    13e2:	ef 51       	subi	r30, 0x1F	; 31
+    13e4:	fb 4f       	sbci	r31, 0xFB	; 251
+    13e6:	21 81       	ldd	r18, Z+1	; 0x01
+    13e8:	32 81       	ldd	r19, Z+2	; 0x02
+	}
+}
+    13ea:	c9 01       	movw	r24, r18
+    13ec:	08 95       	ret
+
+000013ee <analog_start_loop>:
+ * until analog_stop_loop is called.
+ *
+ * @see analog_stop_loop, analog_loop_status
+ **/
+void analog_start_loop(void) {
+	if(adc_loop_status != ADC_LOOP_RUNNING){
+    13ee:	80 91 e0 03 	lds	r24, 0x03E0
+    13f2:	90 91 e1 03 	lds	r25, 0x03E1
+    13f6:	01 97       	sbiw	r24, 0x01	; 1
+    13f8:	41 f0       	breq	.+16     	; 0x140a <analog_start_loop+0x1c>
+		//Start the conversion, enable ADC interrupt
+		ADCSRA |= _BV(ADIE);
+    13fa:	33 9a       	sbi	0x06, 3	; 6
+		ADCSRA |= _BV(ADSC);
+    13fc:	36 9a       	sbi	0x06, 6	; 6
+		adc_loop_status = ADC_LOOP_RUNNING;
+    13fe:	81 e0       	ldi	r24, 0x01	; 1
+    1400:	90 e0       	ldi	r25, 0x00	; 0
+    1402:	90 93 e1 03 	sts	0x03E1, r25
+    1406:	80 93 e0 03 	sts	0x03E0, r24
+    140a:	08 95       	ret
+
+0000140c <analog_stop_loop>:
+ *
+ * @see analog_start_loop, analog_loop_status
+ **/
+void analog_stop_loop() {
+	//Signal to stop after the next conversion
+	adc_sig_stop_loop = 1;
+    140c:	81 e0       	ldi	r24, 0x01	; 1
+    140e:	90 e0       	ldi	r25, 0x00	; 0
+    1410:	90 93 e3 03 	sts	0x03E3, r25
+    1414:	80 93 e2 03 	sts	0x03E2, r24
+}
+    1418:	08 95       	ret
+
+0000141a <analog_loop_status>:
+ * 1 for running. 2 for paused.
+ *
+ * @see analog_start_loop, analog_stop_loop
+ **/
+int analog_loop_status(void) {
+	return adc_loop_status;
+    141a:	20 91 e0 03 	lds	r18, 0x03E0
+    141e:	30 91 e1 03 	lds	r19, 0x03E1
+}
+    1422:	c9 01       	movw	r24, r18
+    1424:	08 95       	ret
+
+00001426 <analog_get8>:
+ * @return the 8-bit input to the specified port
+ *
+ * @see analog_init, analog_get10, analog8, analog_stop_loop,
+ * analog_start_loop
+ **/
+unsigned int analog_get8(int which) {	
+    1426:	9c 01       	movw	r18, r24
+	// Let any previous conversion finish
+	while (ADCSRA & _BV(ADSC));
+    1428:	36 99       	sbic	0x06, 6	; 6
+    142a:	fe cf       	rjmp	.-4      	; 0x1428 <analog_get8+0x2>
+	
+	if(which < EXT_MUX) {
+    142c:	27 30       	cpi	r18, 0x07	; 7
+    142e:	31 05       	cpc	r19, r1
+    1430:	24 f4       	brge	.+8      	; 0x143a <analog_get8+0x14>
+		ADMUX = ADMUX_OPT + which;
+    1432:	82 2f       	mov	r24, r18
+    1434:	80 5a       	subi	r24, 0xA0	; 160
+    1436:	87 b9       	out	0x07, r24	; 7
+    1438:	14 c0       	rjmp	.+40     	; 0x1462 <analog_get8+0x3c>
+	} else {
+		ADMUX = ADMUX_OPT + EXT_MUX;
+    143a:	87 e6       	ldi	r24, 0x67	; 103
+    143c:	87 b9       	out	0x07, r24	; 7
+		set_adc_mux(which - 8);
+    143e:	c9 01       	movw	r24, r18
+    1440:	08 97       	sbiw	r24, 0x08	; 8
+ *
+ * @see analog_init
+ **/
+void set_adc_mux(int which) {  
+  // mask so only proper bits are possible.  
+  PORTG = (PORTG & 0xE3) | ((which & 0x03) << 3) | (which & 0x04);
+    1442:	20 91 65 00 	lds	r18, 0x0065
+    1446:	38 2f       	mov	r19, r24
+    1448:	34 70       	andi	r19, 0x04	; 4
+    144a:	23 7e       	andi	r18, 0xE3	; 227
+    144c:	32 2b       	or	r19, r18
+    144e:	83 70       	andi	r24, 0x03	; 3
+    1450:	90 70       	andi	r25, 0x00	; 0
+    1452:	43 e0       	ldi	r20, 0x03	; 3
+    1454:	88 0f       	add	r24, r24
+    1456:	99 1f       	adc	r25, r25
+    1458:	4a 95       	dec	r20
+    145a:	e1 f7       	brne	.-8      	; 0x1454 <analog_get8+0x2e>
+    145c:	38 2b       	or	r19, r24
+    145e:	30 93 65 00 	sts	0x0065, r19
+		ADMUX = ADMUX_OPT + EXT_MUX;
+		set_adc_mux(which - 8);
+	}
+	
+	// Start the conversion
+	ADCSRA |= _BV(ADSC);
+    1462:	36 9a       	sbi	0x06, 6	; 6
+
+	// Wait for the conversion to finish
+	while (ADCSRA & _BV(ADSC));
+    1464:	36 99       	sbic	0x06, 6	; 6
+    1466:	fe cf       	rjmp	.-4      	; 0x1464 <analog_get8+0x3e>
+
+	return ADCH; //since we left aligned the data, ADCH is the 8 MSB.
+    1468:	85 b1       	in	r24, 0x05	; 5
+}
+    146a:	90 e0       	ldi	r25, 0x00	; 0
+    146c:	08 95       	ret
+
+0000146e <analog_get10>:
+ * @return the 10-bit number input to the specified port
+ * 
+ * @see analog_init, analog_get8, analog10, analog_stop_loop,
+ * analog_start_loop
+ **/
+unsigned int analog_get10(int which) {
+    146e:	9c 01       	movw	r18, r24
+	int adc_h;
+	int adc_l;
+	
+	// Let any previous conversion finish
+	while (ADCSRA & _BV(ADSC));
+    1470:	36 99       	sbic	0x06, 6	; 6
+    1472:	fe cf       	rjmp	.-4      	; 0x1470 <analog_get10+0x2>
+
+	if(which < EXT_MUX) {
+    1474:	27 30       	cpi	r18, 0x07	; 7
+    1476:	31 05       	cpc	r19, r1
+    1478:	24 f4       	brge	.+8      	; 0x1482 <analog_get10+0x14>
+		ADMUX = ADMUX_OPT + which;
+    147a:	82 2f       	mov	r24, r18
+    147c:	80 5a       	subi	r24, 0xA0	; 160
+    147e:	87 b9       	out	0x07, r24	; 7
+    1480:	14 c0       	rjmp	.+40     	; 0x14aa <analog_get10+0x3c>
+	} else {
+		ADMUX = ADMUX_OPT + EXT_MUX;
+    1482:	87 e6       	ldi	r24, 0x67	; 103
+    1484:	87 b9       	out	0x07, r24	; 7
+		set_adc_mux(which - 8);
+    1486:	c9 01       	movw	r24, r18
+    1488:	08 97       	sbiw	r24, 0x08	; 8
+ *
+ * @see analog_init
+ **/
+void set_adc_mux(int which) {  
+  // mask so only proper bits are possible.  
+  PORTG = (PORTG & 0xE3) | ((which & 0x03) << 3) | (which & 0x04);
+    148a:	20 91 65 00 	lds	r18, 0x0065
+    148e:	38 2f       	mov	r19, r24
+    1490:	34 70       	andi	r19, 0x04	; 4
+    1492:	23 7e       	andi	r18, 0xE3	; 227
+    1494:	32 2b       	or	r19, r18
+    1496:	83 70       	andi	r24, 0x03	; 3
+    1498:	90 70       	andi	r25, 0x00	; 0
+    149a:	73 e0       	ldi	r23, 0x03	; 3
+    149c:	88 0f       	add	r24, r24
+    149e:	99 1f       	adc	r25, r25
+    14a0:	7a 95       	dec	r23
+    14a2:	e1 f7       	brne	.-8      	; 0x149c <analog_get10+0x2e>
+    14a4:	38 2b       	or	r19, r24
+    14a6:	30 93 65 00 	sts	0x0065, r19
+		ADMUX = ADMUX_OPT + EXT_MUX;
+		set_adc_mux(which - 8);
+	}
+	
+	// Start the conversion
+	ADCSRA |= _BV(ADSC);
+    14aa:	36 9a       	sbi	0x06, 6	; 6
+
+	// Wait for the conversion to finish
+	while (ADCSRA & _BV(ADSC));
+    14ac:	36 99       	sbic	0x06, 6	; 6
+    14ae:	fe cf       	rjmp	.-4      	; 0x14ac <analog_get10+0x3e>
+	
+	adc_l = ADCL;
+    14b0:	24 b1       	in	r18, 0x04	; 4
+	adc_h = ADCH;
+    14b2:	85 b1       	in	r24, 0x05	; 5
+    14b4:	30 e0       	ldi	r19, 0x00	; 0
+    14b6:	66 e0       	ldi	r22, 0x06	; 6
+    14b8:	35 95       	asr	r19
+    14ba:	27 95       	ror	r18
+    14bc:	6a 95       	dec	r22
+    14be:	e1 f7       	brne	.-8      	; 0x14b8 <analog_get10+0x4a>
+    14c0:	90 e0       	ldi	r25, 0x00	; 0
+    14c2:	88 0f       	add	r24, r24
+    14c4:	99 1f       	adc	r25, r25
+    14c6:	88 0f       	add	r24, r24
+    14c8:	99 1f       	adc	r25, r25
+    14ca:	28 2b       	or	r18, r24
+    14cc:	39 2b       	or	r19, r25
+
+	return ((adc_h << 2) | (adc_l >> 6));
+}
+    14ce:	c9 01       	movw	r24, r18
+    14d0:	08 95       	ret
+
+000014d2 <wheel>:
+ **/
+unsigned int analog8(int which) {
+	if (which == BOM_PORT) {
+		return 0;
+	} else {
+		return an_val[which - 1].adc8;
+    14d2:	80 91 fc 04 	lds	r24, 0x04FC
+ *
+ * @see analog_init
+ **/
+int wheel(void) {
+	return analog8(WHEEL_PORT);
+}
+    14d6:	90 e0       	ldi	r25, 0x00	; 0
+    14d8:	08 95       	ret
+
+000014da <set_adc_mux>:
+ *
+ * @see analog_init
+ **/
+void set_adc_mux(int which) {  
+  // mask so only proper bits are possible.  
+  PORTG = (PORTG & 0xE3) | ((which & 0x03) << 3) | (which & 0x04);
+    14da:	e5 e6       	ldi	r30, 0x65	; 101
+    14dc:	f0 e0       	ldi	r31, 0x00	; 0
+    14de:	20 81       	ld	r18, Z
+    14e0:	38 2f       	mov	r19, r24
+    14e2:	34 70       	andi	r19, 0x04	; 4
+    14e4:	23 7e       	andi	r18, 0xE3	; 227
+    14e6:	32 2b       	or	r19, r18
+    14e8:	83 70       	andi	r24, 0x03	; 3
+    14ea:	90 70       	andi	r25, 0x00	; 0
+    14ec:	a3 e0       	ldi	r26, 0x03	; 3
+    14ee:	88 0f       	add	r24, r24
+    14f0:	99 1f       	adc	r25, r25
+    14f2:	aa 95       	dec	r26
+    14f4:	e1 f7       	brne	.-8      	; 0x14ee <set_adc_mux+0x14>
+    14f6:	38 2b       	or	r19, r24
+    14f8:	30 83       	st	Z, r19
+}
+    14fa:	08 95       	ret
+
+000014fc <__vector_21>:
+
+/**@}**/ //end defgroup
+
+
+ISR(ADC_vect) {
+    14fc:	1f 92       	push	r1
+    14fe:	0f 92       	push	r0
+    1500:	0f b6       	in	r0, 0x3f	; 63
+    1502:	0f 92       	push	r0
+    1504:	0b b6       	in	r0, 0x3b	; 59
+    1506:	0f 92       	push	r0
+    1508:	11 24       	eor	r1, r1
+    150a:	2f 93       	push	r18
+    150c:	3f 93       	push	r19
+    150e:	4f 93       	push	r20
+    1510:	5f 93       	push	r21
+    1512:	6f 93       	push	r22
+    1514:	8f 93       	push	r24
+    1516:	9f 93       	push	r25
+    1518:	ef 93       	push	r30
+    151a:	ff 93       	push	r31
+	int adc_h = 0;
+	int adc_l = 0;
+	
+	if(adc_loop_status != ADC_LOOP_RUNNING) return;
+    151c:	80 91 e0 03 	lds	r24, 0x03E0
+    1520:	90 91 e1 03 	lds	r25, 0x03E1
+    1524:	01 97       	sbiw	r24, 0x01	; 1
+    1526:	09 f0       	breq	.+2      	; 0x152a <__vector_21+0x2e>
+    1528:	8d c0       	rjmp	.+282    	; 0x1644 <__vector_21+0x148>
+
+	//Store the value only if this read isn't for the BOM
+	if (ADMUX != BOM_PORT) {
+    152a:	87 b1       	in	r24, 0x07	; 7
+    152c:	88 23       	and	r24, r24
+    152e:	61 f1       	breq	.+88     	; 0x1588 <__vector_21+0x8c>
+		adc_l = ADCL;
+    1530:	24 b1       	in	r18, 0x04	; 4
+		adc_h = ADCH;
+    1532:	65 b1       	in	r22, 0x05	; 5
+	
+		an_val[adc_current_port - 1].adc10 = (adc_h << 2) | (adc_l >> 6);
+    1534:	40 91 e4 03 	lds	r20, 0x03E4
+    1538:	50 91 e5 03 	lds	r21, 0x03E5
+    153c:	41 50       	subi	r20, 0x01	; 1
+    153e:	50 40       	sbci	r21, 0x00	; 0
+    1540:	30 e0       	ldi	r19, 0x00	; 0
+    1542:	f6 e0       	ldi	r31, 0x06	; 6
+    1544:	35 95       	asr	r19
+    1546:	27 95       	ror	r18
+    1548:	fa 95       	dec	r31
+    154a:	e1 f7       	brne	.-8      	; 0x1544 <__vector_21+0x48>
+    154c:	86 2f       	mov	r24, r22
+    154e:	90 e0       	ldi	r25, 0x00	; 0
+    1550:	88 0f       	add	r24, r24
+    1552:	99 1f       	adc	r25, r25
+    1554:	88 0f       	add	r24, r24
+    1556:	99 1f       	adc	r25, r25
+    1558:	28 2b       	or	r18, r24
+    155a:	39 2b       	or	r19, r25
+    155c:	fa 01       	movw	r30, r20
+    155e:	ee 0f       	add	r30, r30
+    1560:	ff 1f       	adc	r31, r31
+    1562:	e4 0f       	add	r30, r20
+    1564:	f5 1f       	adc	r31, r21
+    1566:	ef 51       	subi	r30, 0x1F	; 31
+    1568:	fb 4f       	sbci	r31, 0xFB	; 251
+    156a:	32 83       	std	Z+2, r19	; 0x02
+    156c:	21 83       	std	Z+1, r18	; 0x01
+		an_val[adc_current_port - 1].adc8 = adc_h;
+    156e:	80 91 e4 03 	lds	r24, 0x03E4
+    1572:	90 91 e5 03 	lds	r25, 0x03E5
+    1576:	01 97       	sbiw	r24, 0x01	; 1
+    1578:	fc 01       	movw	r30, r24
+    157a:	ee 0f       	add	r30, r30
+    157c:	ff 1f       	adc	r31, r31
+    157e:	e8 0f       	add	r30, r24
+    1580:	f9 1f       	adc	r31, r25
+    1582:	ef 51       	subi	r30, 0x1F	; 31
+    1584:	fb 4f       	sbci	r31, 0xFB	; 251
+    1586:	60 83       	st	Z, r22
+	}
+	
+	//Skip AN7 because it is not a real port
+	if (adc_current_port == AN6) {
+    1588:	80 91 e4 03 	lds	r24, 0x03E4
+    158c:	90 91 e5 03 	lds	r25, 0x03E5
+    1590:	06 97       	sbiw	r24, 0x06	; 6
+    1592:	71 f4       	brne	.+28     	; 0x15b0 <__vector_21+0xb4>
+		ADMUX = ADMUX_OPT | EXT_MUX;
+    1594:	87 e6       	ldi	r24, 0x67	; 103
+    1596:	87 b9       	out	0x07, r24	; 7
+ *
+ * @see analog_init
+ **/
+void set_adc_mux(int which) {  
+  // mask so only proper bits are possible.  
+  PORTG = (PORTG & 0xE3) | ((which & 0x03) << 3) | (which & 0x04);
+    1598:	80 91 65 00 	lds	r24, 0x0065
+    159c:	83 7e       	andi	r24, 0xE3	; 227
+    159e:	80 93 65 00 	sts	0x0065, r24
+	
+	//Skip AN7 because it is not a real port
+	if (adc_current_port == AN6) {
+		ADMUX = ADMUX_OPT | EXT_MUX;
+		set_adc_mux(AN8 - 8);
+		adc_current_port = AN8;
+    15a2:	88 e0       	ldi	r24, 0x08	; 8
+    15a4:	90 e0       	ldi	r25, 0x00	; 0
+    15a6:	90 93 e5 03 	sts	0x03E5, r25
+    15aa:	80 93 e4 03 	sts	0x03E4, r24
+    15ae:	3a c0       	rjmp	.+116    	; 0x1624 <__vector_21+0x128>
+	//Wrap around
+	} else if (adc_current_port == AN11) {
+    15b0:	80 91 e4 03 	lds	r24, 0x03E4
+    15b4:	90 91 e5 03 	lds	r25, 0x03E5
+    15b8:	0b 97       	sbiw	r24, 0x0b	; 11
+    15ba:	39 f4       	brne	.+14     	; 0x15ca <__vector_21+0xce>
+		adc_current_port = AN1;
+    15bc:	81 e0       	ldi	r24, 0x01	; 1
+    15be:	90 e0       	ldi	r25, 0x00	; 0
+    15c0:	90 93 e5 03 	sts	0x03E5, r25
+    15c4:	80 93 e4 03 	sts	0x03E4, r24
+    15c8:	0f c0       	rjmp	.+30     	; 0x15e8 <__vector_21+0xec>
+		ADMUX = ADMUX_OPT | adc_current_port;
+	//Normal increment
+	} else {
+		adc_current_port++;
+    15ca:	80 91 e4 03 	lds	r24, 0x03E4
+    15ce:	90 91 e5 03 	lds	r25, 0x03E5
+    15d2:	01 96       	adiw	r24, 0x01	; 1
+    15d4:	90 93 e5 03 	sts	0x03E5, r25
+    15d8:	80 93 e4 03 	sts	0x03E4, r24
+	
+		if(adc_current_port < EXT_MUX) {
+    15dc:	80 91 e4 03 	lds	r24, 0x03E4
+    15e0:	90 91 e5 03 	lds	r25, 0x03E5
+    15e4:	07 97       	sbiw	r24, 0x07	; 7
+    15e6:	3c f4       	brge	.+14     	; 0x15f6 <__vector_21+0xfa>
+			ADMUX = ADMUX_OPT | adc_current_port;
+    15e8:	80 91 e4 03 	lds	r24, 0x03E4
+    15ec:	90 91 e5 03 	lds	r25, 0x03E5
+    15f0:	80 66       	ori	r24, 0x60	; 96
+    15f2:	87 b9       	out	0x07, r24	; 7
+    15f4:	17 c0       	rjmp	.+46     	; 0x1624 <__vector_21+0x128>
+		} else {
+			ADMUX = ADMUX_OPT | EXT_MUX;
+    15f6:	87 e6       	ldi	r24, 0x67	; 103
+    15f8:	87 b9       	out	0x07, r24	; 7
+			set_adc_mux(adc_current_port - 8);
+    15fa:	80 91 e4 03 	lds	r24, 0x03E4
+    15fe:	90 91 e5 03 	lds	r25, 0x03E5
+    1602:	08 97       	sbiw	r24, 0x08	; 8
+ *
+ * @see analog_init
+ **/
+void set_adc_mux(int which) {  
+  // mask so only proper bits are possible.  
+  PORTG = (PORTG & 0xE3) | ((which & 0x03) << 3) | (which & 0x04);
+    1604:	20 91 65 00 	lds	r18, 0x0065
+    1608:	38 2f       	mov	r19, r24
+    160a:	34 70       	andi	r19, 0x04	; 4
+    160c:	23 7e       	andi	r18, 0xE3	; 227
+    160e:	32 2b       	or	r19, r18
+    1610:	83 70       	andi	r24, 0x03	; 3
+    1612:	90 70       	andi	r25, 0x00	; 0
+    1614:	23 e0       	ldi	r18, 0x03	; 3
+    1616:	88 0f       	add	r24, r24
+    1618:	99 1f       	adc	r25, r25
+    161a:	2a 95       	dec	r18
+    161c:	e1 f7       	brne	.-8      	; 0x1616 <__vector_21+0x11a>
+    161e:	38 2b       	or	r19, r24
+    1620:	30 93 65 00 	sts	0x0065, r19
+			set_adc_mux(adc_current_port - 8);
+		}
+	}
+
+	//Stop loop if signal is set
+	if(adc_sig_stop_loop) {
+    1624:	80 91 e2 03 	lds	r24, 0x03E2
+    1628:	90 91 e3 03 	lds	r25, 0x03E3
+    162c:	89 2b       	or	r24, r25
+    162e:	49 f0       	breq	.+18     	; 0x1642 <__vector_21+0x146>
+		adc_sig_stop_loop = 0;
+    1630:	10 92 e3 03 	sts	0x03E3, r1
+    1634:	10 92 e2 03 	sts	0x03E2, r1
+		adc_loop_status = ADC_LOOP_STOPPED;
+    1638:	10 92 e1 03 	sts	0x03E1, r1
+    163c:	10 92 e0 03 	sts	0x03E0, r1
+    1640:	01 c0       	rjmp	.+2      	; 0x1644 <__vector_21+0x148>
+		return;
+	}
+	
+	//Start next conversion
+	ADCSRA |= _BV(ADSC);
+    1642:	36 9a       	sbi	0x06, 6	; 6
+}
+    1644:	ff 91       	pop	r31
+    1646:	ef 91       	pop	r30
+    1648:	9f 91       	pop	r25
+    164a:	8f 91       	pop	r24
+    164c:	6f 91       	pop	r22
+    164e:	5f 91       	pop	r21
+    1650:	4f 91       	pop	r20
+    1652:	3f 91       	pop	r19
+    1654:	2f 91       	pop	r18
+    1656:	0f 90       	pop	r0
+    1658:	0b be       	out	0x3b, r0	; 59
+    165a:	0f 90       	pop	r0
+    165c:	0f be       	out	0x3f, r0	; 63
+    165e:	0f 90       	pop	r0
+    1660:	1f 90       	pop	r1
+    1662:	18 95       	reti
+
+00001664 <bom_get>:
+ *
+ * @return the bom value
+ *
+ * see bom_refresh
+ **/
+int bom_get(int which) {
+    1664:	fc 01       	movw	r30, r24
+    1666:	ee 0f       	add	r30, r30
+    1668:	ff 1f       	adc	r31, r31
+    166a:	e9 51       	subi	r30, 0x19	; 25
+    166c:	fc 4f       	sbci	r31, 0xFC	; 252
+    return bom_val[which];
+}
+    166e:	80 81       	ld	r24, Z
+    1670:	91 81       	ldd	r25, Z+1	; 0x01
+    1672:	08 95       	ret
+
+00001674 <bom_get_max>:
+ *
+ * @pre must call bom refresh
+ * @return index to the lowest (max) bom value element.  -1 if no value is lower than
+ *    BOM_VALUE_THRESHOLD
+ **/
+int bom_get_max(void) {
+    1674:	e7 ee       	ldi	r30, 0xE7	; 231
+    1676:	f3 e0       	ldi	r31, 0x03	; 3
+    1678:	20 e0       	ldi	r18, 0x00	; 0
+    167a:	30 e0       	ldi	r19, 0x00	; 0
+    167c:	8f ef       	ldi	r24, 0xFF	; 255
+    167e:	90 e0       	ldi	r25, 0x00	; 0
+    1680:	6f ef       	ldi	r22, 0xFF	; 255
+    1682:	7f ef       	ldi	r23, 0xFF	; 255
+    int i, lowest_val, lowest_i;
+    lowest_i = -1;
+    lowest_val = 255;
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+        if(bom_val[i] < lowest_val) {
+    1684:	40 81       	ld	r20, Z
+    1686:	51 81       	ldd	r21, Z+1	; 0x01
+    1688:	48 17       	cp	r20, r24
+    168a:	59 07       	cpc	r21, r25
+    168c:	10 f4       	brcc	.+4      	; 0x1692 <bom_get_max+0x1e>
+            lowest_val = bom_val[i];
+    168e:	ca 01       	movw	r24, r20
+    1690:	b9 01       	movw	r22, r18
+ **/
+int bom_get_max(void) {
+    int i, lowest_val, lowest_i;
+    lowest_i = -1;
+    lowest_val = 255;
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+    1692:	2f 5f       	subi	r18, 0xFF	; 255
+    1694:	3f 4f       	sbci	r19, 0xFF	; 255
+    1696:	32 96       	adiw	r30, 0x02	; 2
+    1698:	20 31       	cpi	r18, 0x10	; 16
+    169a:	31 05       	cpc	r19, r1
+    169c:	99 f7       	brne	.-26     	; 0x1684 <bom_get_max+0x10>
+            lowest_val = bom_val[i];
+            lowest_i = i;
+        }
+    }
+    
+    if(lowest_val < BOM_VALUE_THRESHOLD)
+    169e:	86 39       	cpi	r24, 0x96	; 150
+    16a0:	91 05       	cpc	r25, r1
+    16a2:	14 f0       	brlt	.+4      	; 0x16a8 <bom_get_max+0x34>
+    16a4:	6f ef       	ldi	r22, 0xFF	; 255
+    16a6:	7f ef       	ldi	r23, 0xFF	; 255
+        return lowest_i;
+    else
+        return -1;
+}
+    16a8:	cb 01       	movw	r24, r22
+    16aa:	08 95       	ret
+
+000016ac <bom_get_max10>:
+ * @pre must call bom refresh
+ * @param dist  pointer to int in which to return the estimated distance to the other robot
+ * @return estimated position of the max bom value element as a fixed point value analogous to 10 times the
+ *        index of the max bom value.  -1 if no value is lower than BOM_VALUE_THRESHOLD.
+ **/
+int bom_get_max10(int *dist) {
+    16ac:	2f 92       	push	r2
+    16ae:	3f 92       	push	r3
+    16b0:	4f 92       	push	r4
+    16b2:	5f 92       	push	r5
+    16b4:	6f 92       	push	r6
+    16b6:	7f 92       	push	r7
+    16b8:	8f 92       	push	r8
+    16ba:	9f 92       	push	r9
+    16bc:	af 92       	push	r10
+    16be:	bf 92       	push	r11
+    16c0:	cf 92       	push	r12
+    16c2:	df 92       	push	r13
+    16c4:	ef 92       	push	r14
+    16c6:	ff 92       	push	r15
+    16c8:	0f 93       	push	r16
+    16ca:	1f 93       	push	r17
+    16cc:	df 93       	push	r29
+    16ce:	cf 93       	push	r28
+    16d0:	cd b7       	in	r28, 0x3d	; 61
+    16d2:	de b7       	in	r29, 0x3e	; 62
+    16d4:	67 97       	sbiw	r28, 0x17	; 23
+    16d6:	0f b6       	in	r0, 0x3f	; 63
+    16d8:	f8 94       	cli
+    16da:	de bf       	out	0x3e, r29	; 62
+    16dc:	0f be       	out	0x3f, r0	; 63
+    16de:	cd bf       	out	0x3d, r28	; 61
+    16e0:	2c 01       	movw	r4, r24
+    16e2:	27 ee       	ldi	r18, 0xE7	; 231
+    16e4:	33 e0       	ldi	r19, 0x03	; 3
+    16e6:	3d 8b       	std	Y+21, r19	; 0x15
+    16e8:	2c 8b       	std	Y+20, r18	; 0x14
+    16ea:	f9 01       	movw	r30, r18
+    16ec:	20 e0       	ldi	r18, 0x00	; 0
+    16ee:	30 e0       	ldi	r19, 0x00	; 0
+    16f0:	6f ef       	ldi	r22, 0xFF	; 255
+    16f2:	70 e0       	ldi	r23, 0x00	; 0
+    16f4:	8f ef       	ldi	r24, 0xFF	; 255
+    16f6:	9f ef       	ldi	r25, 0xFF	; 255
+int bom_get_max(void) {
+    int i, lowest_val, lowest_i;
+    lowest_i = -1;
+    lowest_val = 255;
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+        if(bom_val[i] < lowest_val) {
+    16f8:	40 81       	ld	r20, Z
+    16fa:	51 81       	ldd	r21, Z+1	; 0x01
+    16fc:	46 17       	cp	r20, r22
+    16fe:	57 07       	cpc	r21, r23
+    1700:	10 f4       	brcc	.+4      	; 0x1706 <bom_get_max10+0x5a>
+            lowest_val = bom_val[i];
+    1702:	ba 01       	movw	r22, r20
+    1704:	c9 01       	movw	r24, r18
+ **/
+int bom_get_max(void) {
+    int i, lowest_val, lowest_i;
+    lowest_i = -1;
+    lowest_val = 255;
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+    1706:	2f 5f       	subi	r18, 0xFF	; 255
+    1708:	3f 4f       	sbci	r19, 0xFF	; 255
+    170a:	32 96       	adiw	r30, 0x02	; 2
+    170c:	20 31       	cpi	r18, 0x10	; 16
+    170e:	31 05       	cpc	r19, r1
+    1710:	99 f7       	brne	.-26     	; 0x16f8 <bom_get_max10+0x4c>
+            lowest_val = bom_val[i];
+            lowest_i = i;
+        }
+    }
+    
+    if(lowest_val < BOM_VALUE_THRESHOLD)
+    1712:	66 39       	cpi	r22, 0x96	; 150
+    1714:	71 05       	cpc	r23, r1
+    1716:	24 f4       	brge	.+8      	; 0x1720 <bom_get_max10+0x74>
+int bom_get_max10(int *dist) {
+    int i, max;
+    long long mean = 0, sum = 0;
+
+    max = bom_get_max();
+    if (max < 0)
+    1718:	3f ef       	ldi	r19, 0xFF	; 255
+    171a:	8f 3f       	cpi	r24, 0xFF	; 255
+    171c:	93 07       	cpc	r25, r19
+    171e:	59 f4       	brne	.+22     	; 0x1736 <bom_get_max10+0x8a>
+    {
+        if (dist)
+    1720:	41 14       	cp	r4, r1
+    1722:	51 04       	cpc	r5, r1
+    1724:	29 f0       	breq	.+10     	; 0x1730 <bom_get_max10+0x84>
+        {
+            *dist = -1;
+    1726:	8f ef       	ldi	r24, 0xFF	; 255
+    1728:	9f ef       	ldi	r25, 0xFF	; 255
+    172a:	d2 01       	movw	r26, r4
+    172c:	8d 93       	st	X+, r24
+    172e:	9c 93       	st	X, r25
+    1730:	2f ef       	ldi	r18, 0xFF	; 255
+    1732:	3f ef       	ldi	r19, 0xFF	; 255
+    1734:	ea c1       	rjmp	.+980    	; 0x1b0a <bom_get_max10+0x45e>
+    1736:	e8 e1       	ldi	r30, 0x18	; 24
+    1738:	f0 e0       	ldi	r31, 0x00	; 0
+    173a:	e8 1b       	sub	r30, r24
+    173c:	f9 0b       	sbc	r31, r25
+    173e:	99 24       	eor	r9, r9
+    1740:	88 24       	eor	r8, r8
+    1742:	77 24       	eor	r7, r7
+    1744:	66 24       	eor	r6, r6
+    1746:	33 24       	eor	r3, r3
+    1748:	22 24       	eor	r2, r2
+    174a:	1a 8a       	std	Y+18, r1	; 0x12
+    174c:	1b 8a       	std	Y+19, r1	; 0x13
+    174e:	10 e0       	ldi	r17, 0x00	; 0
+    1750:	00 e0       	ldi	r16, 0x00	; 0
+    1752:	ee 24       	eor	r14, r14
+    1754:	dd 24       	eor	r13, r13
+    1756:	cc 24       	eor	r12, r12
+    1758:	19 86       	std	Y+9, r1	; 0x09
+    175a:	1a 86       	std	Y+10, r1	; 0x0a
+    175c:	ff 24       	eor	r15, r15
+    }
+    /* Record values into an array */
+    for (i = 0; i < NUM_BOM_LEDS; i++) {
+        int idx = ((i + (NUM_BOM_LEDS/2 - max) + NUM_BOM_LEDS) % NUM_BOM_LEDS) - (NUM_BOM_LEDS/2 - max);
+        int val = 255 - bom_val[i];
+        mean += idx * val;
+    175e:	9c 01       	movw	r18, r24
+    1760:	28 50       	subi	r18, 0x08	; 8
+    1762:	30 40       	sbci	r19, 0x00	; 0
+    1764:	39 8b       	std	Y+17, r19	; 0x11
+    1766:	28 8b       	std	Y+16, r18	; 0x10
+        return -1;
+    }
+    /* Record values into an array */
+    for (i = 0; i < NUM_BOM_LEDS; i++) {
+        int idx = ((i + (NUM_BOM_LEDS/2 - max) + NUM_BOM_LEDS) % NUM_BOM_LEDS) - (NUM_BOM_LEDS/2 - max);
+        int val = 255 - bom_val[i];
+    1768:	ac 89       	ldd	r26, Y+20	; 0x14
+    176a:	bd 89       	ldd	r27, Y+21	; 0x15
+    176c:	8d 91       	ld	r24, X+
+    176e:	9c 91       	ld	r25, X
+    1770:	2f ef       	ldi	r18, 0xFF	; 255
+    1772:	a2 2e       	mov	r10, r18
+    1774:	b1 2c       	mov	r11, r1
+    1776:	a8 1a       	sub	r10, r24
+    1778:	b9 0a       	sbc	r11, r25
+        mean += idx * val;
+    177a:	cf 01       	movw	r24, r30
+    177c:	60 e1       	ldi	r22, 0x10	; 16
+    177e:	70 e0       	ldi	r23, 0x00	; 0
+    1780:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    1784:	28 89       	ldd	r18, Y+16	; 0x10
+    1786:	39 89       	ldd	r19, Y+17	; 0x11
+    1788:	82 0f       	add	r24, r18
+    178a:	93 1f       	adc	r25, r19
+    178c:	8a 9d       	mul	r24, r10
+    178e:	90 01       	movw	r18, r0
+    1790:	8b 9d       	mul	r24, r11
+    1792:	30 0d       	add	r19, r0
+    1794:	9a 9d       	mul	r25, r10
+    1796:	30 0d       	add	r19, r0
+    1798:	11 24       	eor	r1, r1
+    179a:	c9 01       	movw	r24, r18
+    179c:	99 0f       	add	r25, r25
+    179e:	88 0b       	sbc	r24, r24
+    17a0:	98 2f       	mov	r25, r24
+    17a2:	68 2f       	mov	r22, r24
+    17a4:	78 2f       	mov	r23, r24
+    17a6:	8f 8b       	std	Y+23, r24	; 0x17
+    17a8:	8b 87       	std	Y+11, r24	; 0x0b
+    17aa:	8c 87       	std	Y+12, r24	; 0x0c
+    17ac:	98 2f       	mov	r25, r24
+    17ae:	49 2d       	mov	r20, r9
+    17b0:	42 0f       	add	r20, r18
+    17b2:	4d 87       	std	Y+13, r20	; 0x0d
+    17b4:	51 e0       	ldi	r21, 0x01	; 1
+    17b6:	49 15       	cp	r20, r9
+    17b8:	08 f0       	brcs	.+2      	; 0x17bc <bom_get_max10+0x110>
+    17ba:	50 e0       	ldi	r21, 0x00	; 0
+    17bc:	28 2d       	mov	r18, r8
+    17be:	23 0f       	add	r18, r19
+    17c0:	41 e0       	ldi	r20, 0x01	; 1
+    17c2:	28 15       	cp	r18, r8
+    17c4:	08 f0       	brcs	.+2      	; 0x17c8 <bom_get_max10+0x11c>
+    17c6:	40 e0       	ldi	r20, 0x00	; 0
+    17c8:	52 0f       	add	r21, r18
+    17ca:	59 83       	std	Y+1, r21	; 0x01
+    17cc:	31 e0       	ldi	r19, 0x01	; 1
+    17ce:	52 17       	cp	r21, r18
+    17d0:	08 f0       	brcs	.+2      	; 0x17d4 <bom_get_max10+0x128>
+    17d2:	30 e0       	ldi	r19, 0x00	; 0
+    17d4:	43 2b       	or	r20, r19
+    17d6:	87 2d       	mov	r24, r7
+    17d8:	86 0f       	add	r24, r22
+    17da:	31 e0       	ldi	r19, 0x01	; 1
+    17dc:	87 15       	cp	r24, r7
+    17de:	08 f0       	brcs	.+2      	; 0x17e2 <bom_get_max10+0x136>
+    17e0:	30 e0       	ldi	r19, 0x00	; 0
+    17e2:	48 0f       	add	r20, r24
+    17e4:	4e 8b       	std	Y+22, r20	; 0x16
+    17e6:	21 e0       	ldi	r18, 0x01	; 1
+    17e8:	48 17       	cp	r20, r24
+    17ea:	08 f0       	brcs	.+2      	; 0x17ee <bom_get_max10+0x142>
+    17ec:	20 e0       	ldi	r18, 0x00	; 0
+    17ee:	32 2b       	or	r19, r18
+    17f0:	86 2d       	mov	r24, r6
+    17f2:	87 0f       	add	r24, r23
+    17f4:	41 e0       	ldi	r20, 0x01	; 1
+    17f6:	86 15       	cp	r24, r6
+    17f8:	08 f0       	brcs	.+2      	; 0x17fc <bom_get_max10+0x150>
+    17fa:	40 e0       	ldi	r20, 0x00	; 0
+    17fc:	73 2f       	mov	r23, r19
+    17fe:	78 0f       	add	r23, r24
+    1800:	21 e0       	ldi	r18, 0x01	; 1
+    1802:	78 17       	cp	r23, r24
+    1804:	08 f0       	brcs	.+2      	; 0x1808 <bom_get_max10+0x15c>
+    1806:	20 e0       	ldi	r18, 0x00	; 0
+    1808:	42 2b       	or	r20, r18
+    180a:	8f 89       	ldd	r24, Y+23	; 0x17
+    180c:	83 0d       	add	r24, r3
+    180e:	31 e0       	ldi	r19, 0x01	; 1
+    1810:	83 15       	cp	r24, r3
+    1812:	08 f0       	brcs	.+2      	; 0x1816 <bom_get_max10+0x16a>
+    1814:	30 e0       	ldi	r19, 0x00	; 0
+    1816:	64 2f       	mov	r22, r20
+    1818:	68 0f       	add	r22, r24
+    181a:	21 e0       	ldi	r18, 0x01	; 1
+    181c:	68 17       	cp	r22, r24
+    181e:	08 f0       	brcs	.+2      	; 0x1822 <bom_get_max10+0x176>
+    1820:	20 e0       	ldi	r18, 0x00	; 0
+    1822:	32 2b       	or	r19, r18
+    1824:	8b 85       	ldd	r24, Y+11	; 0x0b
+    1826:	82 0d       	add	r24, r2
+    1828:	41 e0       	ldi	r20, 0x01	; 1
+    182a:	82 15       	cp	r24, r2
+    182c:	08 f0       	brcs	.+2      	; 0x1830 <bom_get_max10+0x184>
+    182e:	40 e0       	ldi	r20, 0x00	; 0
+    1830:	53 2f       	mov	r21, r19
+    1832:	58 0f       	add	r21, r24
+    1834:	21 e0       	ldi	r18, 0x01	; 1
+    1836:	58 17       	cp	r21, r24
+    1838:	08 f0       	brcs	.+2      	; 0x183c <bom_get_max10+0x190>
+    183a:	20 e0       	ldi	r18, 0x00	; 0
+    183c:	42 2b       	or	r20, r18
+    183e:	8a 89       	ldd	r24, Y+18	; 0x12
+    1840:	ac 85       	ldd	r26, Y+12	; 0x0c
+    1842:	8a 0f       	add	r24, r26
+    1844:	31 e0       	ldi	r19, 0x01	; 1
+    1846:	ba 89       	ldd	r27, Y+18	; 0x12
+    1848:	8b 17       	cp	r24, r27
+    184a:	08 f0       	brcs	.+2      	; 0x184e <bom_get_max10+0x1a2>
+    184c:	30 e0       	ldi	r19, 0x00	; 0
+    184e:	48 0f       	add	r20, r24
+    1850:	21 e0       	ldi	r18, 0x01	; 1
+    1852:	48 17       	cp	r20, r24
+    1854:	08 f0       	brcs	.+2      	; 0x1858 <bom_get_max10+0x1ac>
+    1856:	20 e0       	ldi	r18, 0x00	; 0
+    1858:	32 2b       	or	r19, r18
+    185a:	2b 89       	ldd	r18, Y+19	; 0x13
+    185c:	92 0f       	add	r25, r18
+    185e:	9d 84       	ldd	r9, Y+13	; 0x0d
+    1860:	89 80       	ldd	r8, Y+1	; 0x01
+    1862:	7e 88       	ldd	r7, Y+22	; 0x16
+    1864:	67 2e       	mov	r6, r23
+    1866:	36 2e       	mov	r3, r22
+    1868:	25 2e       	mov	r2, r21
+    186a:	4a 8b       	std	Y+18, r20	; 0x12
+    186c:	39 0f       	add	r19, r25
+    186e:	3b 8b       	std	Y+19, r19	; 0x13
+        sum += val;
+    1870:	c5 01       	movw	r24, r10
+    1872:	99 0f       	add	r25, r25
+    1874:	88 0b       	sbc	r24, r24
+    1876:	98 2f       	mov	r25, r24
+    1878:	2b 2d       	mov	r18, r11
+    187a:	98 2f       	mov	r25, r24
+    187c:	68 2f       	mov	r22, r24
+    187e:	78 2f       	mov	r23, r24
+    1880:	8e 8b       	std	Y+22, r24	; 0x16
+    1882:	8f 8b       	std	Y+23, r24	; 0x17
+    1884:	8e 87       	std	Y+14, r24	; 0x0e
+    1886:	31 2f       	mov	r19, r17
+    1888:	3a 0d       	add	r19, r10
+    188a:	3f 87       	std	Y+15, r19	; 0x0f
+    188c:	31 e0       	ldi	r19, 0x01	; 1
+    188e:	4f 85       	ldd	r20, Y+15	; 0x0f
+    1890:	41 17       	cp	r20, r17
+    1892:	08 f0       	brcs	.+2      	; 0x1896 <bom_get_max10+0x1ea>
+    1894:	30 e0       	ldi	r19, 0x00	; 0
+    1896:	20 0f       	add	r18, r16
+    1898:	41 e0       	ldi	r20, 0x01	; 1
+    189a:	20 17       	cp	r18, r16
+    189c:	08 f0       	brcs	.+2      	; 0x18a0 <bom_get_max10+0x1f4>
+    189e:	40 e0       	ldi	r20, 0x00	; 0
+    18a0:	32 0f       	add	r19, r18
+    18a2:	3a 83       	std	Y+2, r19	; 0x02
+    18a4:	31 e0       	ldi	r19, 0x01	; 1
+    18a6:	8a 81       	ldd	r24, Y+2	; 0x02
+    18a8:	82 17       	cp	r24, r18
+    18aa:	08 f0       	brcs	.+2      	; 0x18ae <bom_get_max10+0x202>
+    18ac:	30 e0       	ldi	r19, 0x00	; 0
+    18ae:	43 2b       	or	r20, r19
+    18b0:	8e 2d       	mov	r24, r14
+    18b2:	89 0f       	add	r24, r25
+    18b4:	51 e0       	ldi	r21, 0x01	; 1
+    18b6:	8e 15       	cp	r24, r14
+    18b8:	08 f0       	brcs	.+2      	; 0x18bc <bom_get_max10+0x210>
+    18ba:	50 e0       	ldi	r21, 0x00	; 0
+    18bc:	48 0f       	add	r20, r24
+    18be:	4b 83       	std	Y+3, r20	; 0x03
+    18c0:	21 e0       	ldi	r18, 0x01	; 1
+    18c2:	48 17       	cp	r20, r24
+    18c4:	08 f0       	brcs	.+2      	; 0x18c8 <bom_get_max10+0x21c>
+    18c6:	20 e0       	ldi	r18, 0x00	; 0
+    18c8:	52 2b       	or	r21, r18
+    18ca:	8d 2d       	mov	r24, r13
+    18cc:	86 0f       	add	r24, r22
+    18ce:	61 e0       	ldi	r22, 0x01	; 1
+    18d0:	8d 15       	cp	r24, r13
+    18d2:	08 f0       	brcs	.+2      	; 0x18d6 <bom_get_max10+0x22a>
+    18d4:	60 e0       	ldi	r22, 0x00	; 0
+    18d6:	58 0f       	add	r21, r24
+    18d8:	5c 83       	std	Y+4, r21	; 0x04
+    18da:	21 e0       	ldi	r18, 0x01	; 1
+    18dc:	58 17       	cp	r21, r24
+    18de:	08 f0       	brcs	.+2      	; 0x18e2 <bom_get_max10+0x236>
+    18e0:	20 e0       	ldi	r18, 0x00	; 0
+    18e2:	62 2b       	or	r22, r18
+    18e4:	8c 2d       	mov	r24, r12
+    18e6:	87 0f       	add	r24, r23
+    18e8:	71 e0       	ldi	r23, 0x01	; 1
+    18ea:	8c 15       	cp	r24, r12
+    18ec:	08 f0       	brcs	.+2      	; 0x18f0 <bom_get_max10+0x244>
+    18ee:	70 e0       	ldi	r23, 0x00	; 0
+    18f0:	68 0f       	add	r22, r24
+    18f2:	6d 83       	std	Y+5, r22	; 0x05
+    18f4:	21 e0       	ldi	r18, 0x01	; 1
+    18f6:	68 17       	cp	r22, r24
+    18f8:	08 f0       	brcs	.+2      	; 0x18fc <bom_get_max10+0x250>
+    18fa:	20 e0       	ldi	r18, 0x00	; 0
+    18fc:	72 2b       	or	r23, r18
+    18fe:	89 85       	ldd	r24, Y+9	; 0x09
+    1900:	9e 89       	ldd	r25, Y+22	; 0x16
+    1902:	89 0f       	add	r24, r25
+    1904:	01 e0       	ldi	r16, 0x01	; 1
+    1906:	a9 85       	ldd	r26, Y+9	; 0x09
+    1908:	8a 17       	cp	r24, r26
+    190a:	08 f0       	brcs	.+2      	; 0x190e <bom_get_max10+0x262>
+    190c:	00 e0       	ldi	r16, 0x00	; 0
+    190e:	78 0f       	add	r23, r24
+    1910:	7e 83       	std	Y+6, r23	; 0x06
+    1912:	21 e0       	ldi	r18, 0x01	; 1
+    1914:	78 17       	cp	r23, r24
+    1916:	08 f0       	brcs	.+2      	; 0x191a <bom_get_max10+0x26e>
+    1918:	20 e0       	ldi	r18, 0x00	; 0
+    191a:	02 2b       	or	r16, r18
+    191c:	8a 85       	ldd	r24, Y+10	; 0x0a
+    191e:	bf 89       	ldd	r27, Y+23	; 0x17
+    1920:	8b 0f       	add	r24, r27
+    1922:	21 e0       	ldi	r18, 0x01	; 1
+    1924:	3a 85       	ldd	r19, Y+10	; 0x0a
+    1926:	83 17       	cp	r24, r19
+    1928:	08 f0       	brcs	.+2      	; 0x192c <bom_get_max10+0x280>
+    192a:	20 e0       	ldi	r18, 0x00	; 0
+    192c:	08 0f       	add	r16, r24
+    192e:	0f 83       	std	Y+7, r16	; 0x07
+    1930:	11 e0       	ldi	r17, 0x01	; 1
+    1932:	08 17       	cp	r16, r24
+    1934:	08 f0       	brcs	.+2      	; 0x1938 <bom_get_max10+0x28c>
+    1936:	10 e0       	ldi	r17, 0x00	; 0
+    1938:	21 2b       	or	r18, r17
+    193a:	4e 85       	ldd	r20, Y+14	; 0x0e
+    193c:	f4 0e       	add	r15, r20
+    193e:	2f 0d       	add	r18, r15
+    1940:	28 87       	std	Y+8, r18	; 0x08
+    1942:	1f 85       	ldd	r17, Y+15	; 0x0f
+    1944:	0a 81       	ldd	r16, Y+2	; 0x02
+    1946:	eb 80       	ldd	r14, Y+3	; 0x03
+    1948:	dc 80       	ldd	r13, Y+4	; 0x04
+    194a:	cd 80       	ldd	r12, Y+5	; 0x05
+    194c:	8e 81       	ldd	r24, Y+6	; 0x06
+    194e:	89 87       	std	Y+9, r24	; 0x09
+    1950:	9f 81       	ldd	r25, Y+7	; 0x07
+    1952:	9a 87       	std	Y+10, r25	; 0x0a
+    1954:	f2 2e       	mov	r15, r18
+    1956:	31 96       	adiw	r30, 0x01	; 1
+    1958:	ac 89       	ldd	r26, Y+20	; 0x14
+    195a:	bd 89       	ldd	r27, Y+21	; 0x15
+    195c:	12 96       	adiw	r26, 0x02	; 2
+    195e:	bd 8b       	std	Y+21, r27	; 0x15
+    1960:	ac 8b       	std	Y+20, r26	; 0x14
+            *dist = -1;
+        }
+        return -1;
+    }
+    /* Record values into an array */
+    for (i = 0; i < NUM_BOM_LEDS; i++) {
+    1962:	a7 50       	subi	r26, 0x07	; 7
+    1964:	b4 40       	sbci	r27, 0x04	; 4
+    1966:	09 f0       	breq	.+2      	; 0x196a <bom_get_max10+0x2be>
+    1968:	ff ce       	rjmp	.-514    	; 0x1768 <bom_get_max10+0xbc>
+        sum += val;
+    }
+    mean = (mean * 10) / sum;
+    mean = (mean + NUM_BOM_LEDS*10) % (NUM_BOM_LEDS*10);
+
+    if (dist)
+    196a:	41 14       	cp	r4, r1
+    196c:	51 04       	cpc	r5, r1
+    196e:	01 f1       	breq	.+64     	; 0x19b0 <bom_get_max10+0x304>
+    {
+        *dist = 50 - sum/48;
+    1970:	21 2f       	mov	r18, r17
+    1972:	30 2f       	mov	r19, r16
+    1974:	4e 2d       	mov	r20, r14
+    1976:	5d 2d       	mov	r21, r13
+    1978:	6c 2d       	mov	r22, r12
+    197a:	78 2f       	mov	r23, r24
+    197c:	89 2f       	mov	r24, r25
+    197e:	9f 2d       	mov	r25, r15
+    1980:	e0 ed       	ldi	r30, 0xD0	; 208
+    1982:	ae 2e       	mov	r10, r30
+    1984:	bb 24       	eor	r11, r11
+    1986:	ba 94       	dec	r11
+    1988:	cc 24       	eor	r12, r12
+    198a:	ca 94       	dec	r12
+    198c:	dd 24       	eor	r13, r13
+    198e:	da 94       	dec	r13
+    1990:	ee 24       	eor	r14, r14
+    1992:	ea 94       	dec	r14
+    1994:	ff 24       	eor	r15, r15
+    1996:	fa 94       	dec	r15
+    1998:	0f ef       	ldi	r16, 0xFF	; 255
+    199a:	1f ef       	ldi	r17, 0xFF	; 255
+    199c:	0e 94 0d 21 	call	0x421a	; 0x421a <__divdi3>
+    19a0:	59 01       	movw	r10, r18
+    19a2:	82 e3       	ldi	r24, 0x32	; 50
+    19a4:	90 e0       	ldi	r25, 0x00	; 0
+    19a6:	a8 0e       	add	r10, r24
+    19a8:	b9 1e       	adc	r11, r25
+    19aa:	d2 01       	movw	r26, r4
+    19ac:	ad 92       	st	X+, r10
+    19ae:	bc 92       	st	X, r11
+        int idx = ((i + (NUM_BOM_LEDS/2 - max) + NUM_BOM_LEDS) % NUM_BOM_LEDS) - (NUM_BOM_LEDS/2 - max);
+        int val = 255 - bom_val[i];
+        mean += idx * val;
+        sum += val;
+    }
+    mean = (mean * 10) / sum;
+    19b0:	29 2d       	mov	r18, r9
+    19b2:	38 2d       	mov	r19, r8
+    19b4:	47 2d       	mov	r20, r7
+    19b6:	56 2d       	mov	r21, r6
+    19b8:	63 2d       	mov	r22, r3
+    19ba:	72 2d       	mov	r23, r2
+    19bc:	8a 89       	ldd	r24, Y+18	; 0x12
+    19be:	9b 89       	ldd	r25, Y+19	; 0x13
+    19c0:	01 e0       	ldi	r16, 0x01	; 1
+    19c2:	0e 94 8e 20 	call	0x411c	; 0x411c <__ashldi3>
+    19c6:	12 2f       	mov	r17, r18
+    19c8:	f3 2e       	mov	r15, r19
+    19ca:	e4 2e       	mov	r14, r20
+    19cc:	d5 2e       	mov	r13, r21
+    19ce:	c6 2e       	mov	r12, r22
+    19d0:	b7 2e       	mov	r11, r23
+    19d2:	a8 2e       	mov	r10, r24
+    19d4:	89 2e       	mov	r8, r25
+    19d6:	02 e0       	ldi	r16, 0x02	; 2
+    19d8:	0e 94 8e 20 	call	0x411c	; 0x411c <__ashldi3>
+    19dc:	b9 2f       	mov	r27, r25
+    19de:	21 0f       	add	r18, r17
+    19e0:	e1 e0       	ldi	r30, 0x01	; 1
+    19e2:	21 17       	cp	r18, r17
+    19e4:	08 f0       	brcs	.+2      	; 0x19e8 <bom_get_max10+0x33c>
+    19e6:	e0 e0       	ldi	r30, 0x00	; 0
+    19e8:	3f 0d       	add	r19, r15
+    19ea:	f1 e0       	ldi	r31, 0x01	; 1
+    19ec:	3f 15       	cp	r19, r15
+    19ee:	08 f0       	brcs	.+2      	; 0x19f2 <bom_get_max10+0x346>
+    19f0:	f0 e0       	ldi	r31, 0x00	; 0
+    19f2:	9e 2e       	mov	r9, r30
+    19f4:	93 0e       	add	r9, r19
+    19f6:	e1 e0       	ldi	r30, 0x01	; 1
+    19f8:	93 16       	cp	r9, r19
+    19fa:	08 f0       	brcs	.+2      	; 0x19fe <bom_get_max10+0x352>
+    19fc:	e0 e0       	ldi	r30, 0x00	; 0
+    19fe:	fe 2b       	or	r31, r30
+    1a00:	4e 0d       	add	r20, r14
+    1a02:	a1 e0       	ldi	r26, 0x01	; 1
+    1a04:	4e 15       	cp	r20, r14
+    1a06:	08 f0       	brcs	.+2      	; 0x1a0a <bom_get_max10+0x35e>
+    1a08:	a0 e0       	ldi	r26, 0x00	; 0
+    1a0a:	ff 2e       	mov	r15, r31
+    1a0c:	f4 0e       	add	r15, r20
+    1a0e:	e1 e0       	ldi	r30, 0x01	; 1
+    1a10:	f4 16       	cp	r15, r20
+    1a12:	08 f0       	brcs	.+2      	; 0x1a16 <bom_get_max10+0x36a>
+    1a14:	e0 e0       	ldi	r30, 0x00	; 0
+    1a16:	ae 2b       	or	r26, r30
+    1a18:	5d 0d       	add	r21, r13
+    1a1a:	f1 e0       	ldi	r31, 0x01	; 1
+    1a1c:	5d 15       	cp	r21, r13
+    1a1e:	08 f0       	brcs	.+2      	; 0x1a22 <bom_get_max10+0x376>
+    1a20:	f0 e0       	ldi	r31, 0x00	; 0
+    1a22:	0a 2f       	mov	r16, r26
+    1a24:	05 0f       	add	r16, r21
+    1a26:	e1 e0       	ldi	r30, 0x01	; 1
+    1a28:	05 17       	cp	r16, r21
+    1a2a:	08 f0       	brcs	.+2      	; 0x1a2e <bom_get_max10+0x382>
+    1a2c:	e0 e0       	ldi	r30, 0x00	; 0
+    1a2e:	fe 2b       	or	r31, r30
+    1a30:	6c 0d       	add	r22, r12
+    1a32:	a1 e0       	ldi	r26, 0x01	; 1
+    1a34:	6c 15       	cp	r22, r12
+    1a36:	08 f0       	brcs	.+2      	; 0x1a3a <bom_get_max10+0x38e>
+    1a38:	a0 e0       	ldi	r26, 0x00	; 0
+    1a3a:	1f 2f       	mov	r17, r31
+    1a3c:	16 0f       	add	r17, r22
+    1a3e:	e1 e0       	ldi	r30, 0x01	; 1
+    1a40:	16 17       	cp	r17, r22
+    1a42:	08 f0       	brcs	.+2      	; 0x1a46 <bom_get_max10+0x39a>
+    1a44:	e0 e0       	ldi	r30, 0x00	; 0
+    1a46:	ae 2b       	or	r26, r30
+    1a48:	7b 0d       	add	r23, r11
+    1a4a:	f1 e0       	ldi	r31, 0x01	; 1
+    1a4c:	7b 15       	cp	r23, r11
+    1a4e:	08 f0       	brcs	.+2      	; 0x1a52 <bom_get_max10+0x3a6>
+    1a50:	f0 e0       	ldi	r31, 0x00	; 0
+    1a52:	a7 0f       	add	r26, r23
+    1a54:	e1 e0       	ldi	r30, 0x01	; 1
+    1a56:	a7 17       	cp	r26, r23
+    1a58:	08 f0       	brcs	.+2      	; 0x1a5c <bom_get_max10+0x3b0>
+    1a5a:	e0 e0       	ldi	r30, 0x00	; 0
+    1a5c:	fe 2b       	or	r31, r30
+    1a5e:	8a 0d       	add	r24, r10
+    1a60:	91 e0       	ldi	r25, 0x01	; 1
+    1a62:	8a 15       	cp	r24, r10
+    1a64:	08 f0       	brcs	.+2      	; 0x1a68 <bom_get_max10+0x3bc>
+    1a66:	90 e0       	ldi	r25, 0x00	; 0
+    1a68:	f8 0f       	add	r31, r24
+    1a6a:	e1 e0       	ldi	r30, 0x01	; 1
+    1a6c:	f8 17       	cp	r31, r24
+    1a6e:	08 f0       	brcs	.+2      	; 0x1a72 <bom_get_max10+0x3c6>
+    1a70:	e0 e0       	ldi	r30, 0x00	; 0
+    1a72:	9e 2b       	or	r25, r30
+    1a74:	b8 0d       	add	r27, r8
+    mean = (mean + NUM_BOM_LEDS*10) % (NUM_BOM_LEDS*10);
+    1a76:	39 2d       	mov	r19, r9
+    1a78:	4f 2d       	mov	r20, r15
+    1a7a:	50 2f       	mov	r21, r16
+    1a7c:	61 2f       	mov	r22, r17
+    1a7e:	7a 2f       	mov	r23, r26
+    1a80:	8f 2f       	mov	r24, r31
+    1a82:	9b 0f       	add	r25, r27
+    1a84:	af 84       	ldd	r10, Y+15	; 0x0f
+    1a86:	ba 80       	ldd	r11, Y+2	; 0x02
+    1a88:	cb 80       	ldd	r12, Y+3	; 0x03
+    1a8a:	dc 80       	ldd	r13, Y+4	; 0x04
+    1a8c:	ed 80       	ldd	r14, Y+5	; 0x05
+    1a8e:	fe 80       	ldd	r15, Y+6	; 0x06
+    1a90:	0f 81       	ldd	r16, Y+7	; 0x07
+    1a92:	18 85       	ldd	r17, Y+8	; 0x08
+    1a94:	0e 94 0d 21 	call	0x421a	; 0x421a <__divdi3>
+    1a98:	e3 2f       	mov	r30, r19
+    1a9a:	f4 2f       	mov	r31, r20
+    1a9c:	a5 2f       	mov	r26, r21
+    1a9e:	b6 2f       	mov	r27, r22
+    1aa0:	17 2f       	mov	r17, r23
+    1aa2:	08 2f       	mov	r16, r24
+    1aa4:	e9 2e       	mov	r14, r25
+    1aa6:	80 ea       	ldi	r24, 0xA0	; 160
+    1aa8:	f8 2e       	mov	r15, r24
+    1aaa:	f2 0e       	add	r15, r18
+    1aac:	31 e0       	ldi	r19, 0x01	; 1
+    1aae:	f2 16       	cp	r15, r18
+    1ab0:	08 f0       	brcs	.+2      	; 0x1ab4 <bom_get_max10+0x408>
+    1ab2:	30 e0       	ldi	r19, 0x00	; 0
+    1ab4:	3e 0f       	add	r19, r30
+    1ab6:	41 e0       	ldi	r20, 0x01	; 1
+    1ab8:	3e 17       	cp	r19, r30
+    1aba:	08 f0       	brcs	.+2      	; 0x1abe <bom_get_max10+0x412>
+    1abc:	40 e0       	ldi	r20, 0x00	; 0
+    1abe:	4f 0f       	add	r20, r31
+    1ac0:	51 e0       	ldi	r21, 0x01	; 1
+    1ac2:	4f 17       	cp	r20, r31
+    1ac4:	08 f0       	brcs	.+2      	; 0x1ac8 <bom_get_max10+0x41c>
+    1ac6:	50 e0       	ldi	r21, 0x00	; 0
+    1ac8:	5a 0f       	add	r21, r26
+    1aca:	61 e0       	ldi	r22, 0x01	; 1
+    1acc:	5a 17       	cp	r21, r26
+    1ace:	08 f0       	brcs	.+2      	; 0x1ad2 <bom_get_max10+0x426>
+    1ad0:	60 e0       	ldi	r22, 0x00	; 0
+    1ad2:	6b 0f       	add	r22, r27
+    1ad4:	71 e0       	ldi	r23, 0x01	; 1
+    1ad6:	6b 17       	cp	r22, r27
+    1ad8:	08 f0       	brcs	.+2      	; 0x1adc <bom_get_max10+0x430>
+    1ada:	70 e0       	ldi	r23, 0x00	; 0
+    1adc:	71 0f       	add	r23, r17
+    1ade:	81 e0       	ldi	r24, 0x01	; 1
+    1ae0:	71 17       	cp	r23, r17
+    1ae2:	08 f0       	brcs	.+2      	; 0x1ae6 <bom_get_max10+0x43a>
+    1ae4:	80 e0       	ldi	r24, 0x00	; 0
+    1ae6:	80 0f       	add	r24, r16
+    1ae8:	91 e0       	ldi	r25, 0x01	; 1
+    1aea:	80 17       	cp	r24, r16
+    1aec:	08 f0       	brcs	.+2      	; 0x1af0 <bom_get_max10+0x444>
+    1aee:	90 e0       	ldi	r25, 0x00	; 0
+    if (dist)
+    {
+        *dist = 50 - sum/48;
+    }
+
+    return mean;
+    1af0:	2f 2d       	mov	r18, r15
+    1af2:	9e 0d       	add	r25, r14
+    1af4:	e0 ea       	ldi	r30, 0xA0	; 160
+    1af6:	ae 2e       	mov	r10, r30
+    1af8:	bb 24       	eor	r11, r11
+    1afa:	cc 24       	eor	r12, r12
+    1afc:	dd 24       	eor	r13, r13
+    1afe:	ee 24       	eor	r14, r14
+    1b00:	ff 24       	eor	r15, r15
+    1b02:	00 e0       	ldi	r16, 0x00	; 0
+    1b04:	10 e0       	ldi	r17, 0x00	; 0
+    1b06:	0e 94 35 29 	call	0x526a	; 0x526a <__moddi3>
+}
+    1b0a:	c9 01       	movw	r24, r18
+    1b0c:	67 96       	adiw	r28, 0x17	; 23
+    1b0e:	0f b6       	in	r0, 0x3f	; 63
+    1b10:	f8 94       	cli
+    1b12:	de bf       	out	0x3e, r29	; 62
+    1b14:	0f be       	out	0x3f, r0	; 63
+    1b16:	cd bf       	out	0x3d, r28	; 61
+    1b18:	cf 91       	pop	r28
+    1b1a:	df 91       	pop	r29
+    1b1c:	1f 91       	pop	r17
+    1b1e:	0f 91       	pop	r16
+    1b20:	ff 90       	pop	r15
+    1b22:	ef 90       	pop	r14
+    1b24:	df 90       	pop	r13
+    1b26:	cf 90       	pop	r12
+    1b28:	bf 90       	pop	r11
+    1b2a:	af 90       	pop	r10
+    1b2c:	9f 90       	pop	r9
+    1b2e:	8f 90       	pop	r8
+    1b30:	7f 90       	pop	r7
+    1b32:	6f 90       	pop	r6
+    1b34:	5f 90       	pop	r5
+    1b36:	4f 90       	pop	r4
+    1b38:	3f 90       	pop	r3
+    1b3a:	2f 90       	pop	r2
+    1b3c:	08 95       	ret
+
+00001b3e <bom_off>:
+ * 
+ * @see bom_on
+ **/
+void bom_off(void)
+{
+  switch(bom_type) {
+    1b3e:	80 91 e6 03 	lds	r24, 0x03E6
+    1b42:	88 23       	and	r24, r24
+    1b44:	19 f0       	breq	.+6      	; 0x1b4c <bom_off+0xe>
+    1b46:	81 30       	cpi	r24, 0x01	; 1
+    1b48:	71 f4       	brne	.+28     	; 0x1b66 <bom_off+0x28>
+    1b4a:	07 c0       	rjmp	.+14     	; 0x1b5a <bom_off+0x1c>
+  case BOM10:
+	digital_output(MONKL, 0);
+    1b4c:	8a e2       	ldi	r24, 0x2A	; 42
+    1b4e:	90 e0       	ldi	r25, 0x00	; 0
+    1b50:	60 e0       	ldi	r22, 0x00	; 0
+    1b52:	70 e0       	ldi	r23, 0x00	; 0
+    1b54:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+    1b58:	08 95       	ret
+	break;
+  case BOM15:
+	digital_output(BOM_STROBE, 0);
+    1b5a:	8b e2       	ldi	r24, 0x2B	; 43
+    1b5c:	90 e0       	ldi	r25, 0x00	; 0
+    1b5e:	60 e0       	ldi	r22, 0x00	; 0
+    1b60:	70 e0       	ldi	r23, 0x00	; 0
+    1b62:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+    1b66:	08 95       	ret
+
+00001b68 <bom_on>:
+ * 
+ * @see bom_off, bom_set_leds
+ **/
+void bom_on(void)
+{
+  switch(bom_type) {
+    1b68:	80 91 e6 03 	lds	r24, 0x03E6
+    1b6c:	88 23       	and	r24, r24
+    1b6e:	19 f0       	breq	.+6      	; 0x1b76 <bom_on+0xe>
+    1b70:	81 30       	cpi	r24, 0x01	; 1
+    1b72:	71 f4       	brne	.+28     	; 0x1b90 <bom_on+0x28>
+    1b74:	07 c0       	rjmp	.+14     	; 0x1b84 <bom_on+0x1c>
+  case BOM10:
+	digital_output(MONKL, 1);
+    1b76:	8a e2       	ldi	r24, 0x2A	; 42
+    1b78:	90 e0       	ldi	r25, 0x00	; 0
+    1b7a:	61 e0       	ldi	r22, 0x01	; 1
+    1b7c:	70 e0       	ldi	r23, 0x00	; 0
+    1b7e:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+    1b82:	08 95       	ret
+	break;
+  case BOM15:
+	digital_output(BOM_STROBE, 1);
+    1b84:	8b e2       	ldi	r24, 0x2B	; 43
+    1b86:	90 e0       	ldi	r25, 0x00	; 0
+    1b88:	61 e0       	ldi	r22, 0x01	; 1
+    1b8a:	70 e0       	ldi	r23, 0x00	; 0
+    1b8c:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+    1b90:	08 95       	ret
+
+00001b92 <bom_set_leds>:
+ *    bom_init must be called for this to work. Does nothing if a BOM1.0 is installed
+ *
+ * @param bit_field specifies which leds should be turned on when bom_on is called.  Use BOM_ALL to turn on all bom leds.
+ *    Ex. if 0x0005 is passed, leds 0 and 2 will be turned on.
+ **/
+void bom_set_leds(int bit_field) {
+    1b92:	ef 92       	push	r14
+    1b94:	ff 92       	push	r15
+    1b96:	0f 93       	push	r16
+    1b98:	1f 93       	push	r17
+    1b9a:	cf 93       	push	r28
+    1b9c:	df 93       	push	r29
+    1b9e:	7c 01       	movw	r14, r24
+    int i;
+	unsigned int mask = 1<<(NUM_BOM_LEDS-1);
+	switch(bom_type) {
+    1ba0:	80 91 e6 03 	lds	r24, 0x03E6
+    1ba4:	81 30       	cpi	r24, 0x01	; 1
+    1ba6:	e1 f4       	brne	.+56     	; 0x1be0 <bom_set_leds+0x4e>
+    1ba8:	00 e1       	ldi	r16, 0x10	; 16
+    1baa:	10 e0       	ldi	r17, 0x00	; 0
+    1bac:	c0 e0       	ldi	r28, 0x00	; 0
+    1bae:	d0 e8       	ldi	r29, 0x80	; 128
+		
+    case BOM15:
+	    for(i=NUM_BOM_LEDS; i>0; i--)
+	    {
+		    //set the current bit, sending MSB first
+		    digital_output(BOM_DATA, bit_field&mask);
+    1bb0:	be 01       	movw	r22, r28
+    1bb2:	6e 21       	and	r22, r14
+    1bb4:	7f 21       	and	r23, r15
+    1bb6:	88 e0       	ldi	r24, 0x08	; 8
+    1bb8:	90 e0       	ldi	r25, 0x00	; 0
+    1bba:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+		    //then pulse the clock
+		    digital_output(BOM_CLOCK, 1);
+    1bbe:	89 e0       	ldi	r24, 0x09	; 9
+    1bc0:	90 e0       	ldi	r25, 0x00	; 0
+    1bc2:	61 e0       	ldi	r22, 0x01	; 1
+    1bc4:	70 e0       	ldi	r23, 0x00	; 0
+    1bc6:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+		    digital_output(BOM_CLOCK, 0);
+    1bca:	89 e0       	ldi	r24, 0x09	; 9
+    1bcc:	90 e0       	ldi	r25, 0x00	; 0
+    1bce:	60 e0       	ldi	r22, 0x00	; 0
+    1bd0:	70 e0       	ldi	r23, 0x00	; 0
+    1bd2:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+			mask = mask>>1;
+    1bd6:	d6 95       	lsr	r29
+    1bd8:	c7 95       	ror	r28
+    case BOM10:
+        //TODO: put an assert here to alert the user that this should not be called
+        break;
+		
+    case BOM15:
+	    for(i=NUM_BOM_LEDS; i>0; i--)
+    1bda:	01 50       	subi	r16, 0x01	; 1
+    1bdc:	10 40       	sbci	r17, 0x00	; 0
+    1bde:	41 f7       	brne	.-48     	; 0x1bb0 <bom_set_leds+0x1e>
+		
+    case RBOM:
+        //add rbom code here
+        break;
+    }
+}
+    1be0:	df 91       	pop	r29
+    1be2:	cf 91       	pop	r28
+    1be4:	1f 91       	pop	r17
+    1be6:	0f 91       	pop	r16
+    1be8:	ff 90       	pop	r15
+    1bea:	ef 90       	pop	r14
+    1bec:	08 95       	ret
+
+00001bee <bom_init>:
+ * until Cornell and Pras return
+ * 
+ * @see bom_refresh, bom_leds_on, bom_leds_off
+ **/
+void bom_init(char type) {
+    bom_type = type;
+    1bee:	80 93 e6 03 	sts	0x03E6, r24
+    
+    switch(bom_type) {
+    1bf2:	80 91 e6 03 	lds	r24, 0x03E6
+    1bf6:	88 23       	and	r24, r24
+    1bf8:	21 f0       	breq	.+8      	; 0x1c02 <bom_init+0x14>
+    1bfa:	81 30       	cpi	r24, 0x01	; 1
+    1bfc:	09 f0       	breq	.+2      	; 0x1c00 <bom_init+0x12>
+    1bfe:	44 c0       	rjmp	.+136    	; 0x1c88 <bom_init+0x9a>
+    1c00:	1d c0       	rjmp	.+58     	; 0x1c3c <bom_init+0x4e>
+    case BOM10:
+		select_pins[0] = MONK0; 
+    1c02:	8c e2       	ldi	r24, 0x2C	; 44
+    1c04:	90 e0       	ldi	r25, 0x00	; 0
+    1c06:	90 93 08 04 	sts	0x0408, r25
+    1c0a:	80 93 07 04 	sts	0x0407, r24
+		select_pins[1] = MONK1;
+    1c0e:	8b e2       	ldi	r24, 0x2B	; 43
+    1c10:	90 e0       	ldi	r25, 0x00	; 0
+    1c12:	90 93 0a 04 	sts	0x040A, r25
+    1c16:	80 93 09 04 	sts	0x0409, r24
+		select_pins[2] = MONK2;
+    1c1a:	8f e2       	ldi	r24, 0x2F	; 47
+    1c1c:	90 e0       	ldi	r25, 0x00	; 0
+    1c1e:	90 93 0c 04 	sts	0x040C, r25
+    1c22:	80 93 0b 04 	sts	0x040B, r24
+		select_pins[3] = MONK3;
+    1c26:	8e e2       	ldi	r24, 0x2E	; 46
+    1c28:	90 e0       	ldi	r25, 0x00	; 0
+    1c2a:	90 93 0e 04 	sts	0x040E, r25
+    1c2e:	80 93 0d 04 	sts	0x040D, r24
+		analog_pin = MONKI;
+    1c32:	10 92 10 04 	sts	0x0410, r1
+    1c36:	10 92 0f 04 	sts	0x040F, r1
+    1c3a:	08 95       	ret
+        break;
+    case BOM15:
+        //Sets BOM1.5 to normal [BOM] mode
+        digital_output(BOM_MODE, 0);
+    1c3c:	8a e2       	ldi	r24, 0x2A	; 42
+    1c3e:	90 e0       	ldi	r25, 0x00	; 0
+    1c40:	60 e0       	ldi	r22, 0x00	; 0
+    1c42:	70 e0       	ldi	r23, 0x00	; 0
+    1c44:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+		select_pins[0] = BOM_S0; 
+    1c48:	8d e2       	ldi	r24, 0x2D	; 45
+    1c4a:	90 e0       	ldi	r25, 0x00	; 0
+    1c4c:	90 93 08 04 	sts	0x0408, r25
+    1c50:	80 93 07 04 	sts	0x0407, r24
+		select_pins[1] = BOM_S1;
+    1c54:	8c e2       	ldi	r24, 0x2C	; 44
+    1c56:	90 e0       	ldi	r25, 0x00	; 0
+    1c58:	90 93 0a 04 	sts	0x040A, r25
+    1c5c:	80 93 09 04 	sts	0x0409, r24
+		select_pins[2] = BOM_S2;
+    1c60:	8f e2       	ldi	r24, 0x2F	; 47
+    1c62:	90 e0       	ldi	r25, 0x00	; 0
+    1c64:	90 93 0c 04 	sts	0x040C, r25
+    1c68:	80 93 0b 04 	sts	0x040B, r24
+		select_pins[3] = BOM_S3;
+    1c6c:	8e e2       	ldi	r24, 0x2E	; 46
+    1c6e:	90 e0       	ldi	r25, 0x00	; 0
+    1c70:	90 93 0e 04 	sts	0x040E, r25
+    1c74:	80 93 0d 04 	sts	0x040D, r24
+		bom_set_leds(BOM_ALL);
+    1c78:	8f ef       	ldi	r24, 0xFF	; 255
+    1c7a:	9f ef       	ldi	r25, 0xFF	; 255
+    1c7c:	0e 94 c9 0d 	call	0x1b92	; 0x1b92 <bom_set_leds>
+		analog_pin = BOM_OUT;
+    1c80:	10 92 10 04 	sts	0x0410, r1
+    1c84:	10 92 0f 04 	sts	0x040F, r1
+    1c88:	08 95       	ret
+
+00001c8a <bom_refresh>:
+ * @param bit_field specifies which elements in bom_val[] should be updated. Use BOM_ALL to refresh all values.
+ *    Ex. if 0x0003 is passed, bom_val[0] and bom_val[1] will be updated.
+ *
+ * @see bom_get
+ **/
+void bom_refresh(int bit_field) {
+    1c8a:	af 92       	push	r10
+    1c8c:	bf 92       	push	r11
+    1c8e:	cf 92       	push	r12
+    1c90:	df 92       	push	r13
+    1c92:	ef 92       	push	r14
+    1c94:	ff 92       	push	r15
+    1c96:	1f 93       	push	r17
+    1c98:	cf 93       	push	r28
+    1c9a:	df 93       	push	r29
+    1c9c:	6c 01       	movw	r12, r24
+    int i;
+	int loop_was_running = 0;
+    
+	//Check analog loop status
+    if(analog_loop_status() == ADC_LOOP_RUNNING) {
+    1c9e:	0e 94 0d 0a 	call	0x141a	; 0x141a <analog_loop_status>
+    1ca2:	01 97       	sbiw	r24, 0x01	; 1
+    1ca4:	19 f0       	breq	.+6      	; 0x1cac <bom_refresh+0x22>
+    1ca6:	aa 24       	eor	r10, r10
+    1ca8:	bb 24       	eor	r11, r11
+    1caa:	05 c0       	rjmp	.+10     	; 0x1cb6 <bom_refresh+0x2c>
+		loop_was_running = 1;
+		analog_stop_loop();
+    1cac:	0e 94 06 0a 	call	0x140c	; 0x140c <analog_stop_loop>
+    1cb0:	61 e0       	ldi	r22, 0x01	; 1
+    1cb2:	a6 2e       	mov	r10, r22
+    1cb4:	b1 2c       	mov	r11, r1
+    1cb6:	57 ee       	ldi	r21, 0xE7	; 231
+    1cb8:	e5 2e       	mov	r14, r21
+    1cba:	53 e0       	ldi	r21, 0x03	; 3
+    1cbc:	f5 2e       	mov	r15, r21
+    1cbe:	c0 e0       	ldi	r28, 0x00	; 0
+    1cc0:	d0 e0       	ldi	r29, 0x00	; 0
+	}
+    
+	//Read BOM values
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+        if(bit_field & 0x1) {
+    1cc2:	c0 fe       	sbrs	r12, 0
+    1cc4:	57 c0       	rjmp	.+174    	; 0x1d74 <bom_refresh+0xea>
+    1cc6:	ec 2f       	mov	r30, r28
+
+/** @} **/ //end group
+
+//select a detector to read
+static void bom_select(char which) {
+	if(bom_type == BOM10)
+    1cc8:	80 91 e6 03 	lds	r24, 0x03E6
+    1ccc:	88 23       	and	r24, r24
+    1cce:	21 f4       	brne	.+8      	; 0x1cd8 <bom_refresh+0x4e>
+	  which = lookup[(int)which];
+    1cd0:	fe 01       	movw	r30, r28
+    1cd2:	e8 57       	subi	r30, 0x78	; 120
+    1cd4:	fe 4f       	sbci	r31, 0xFE	; 254
+    1cd6:	e0 81       	ld	r30, Z
+	
+    if (which&8)
+    1cd8:	1e 2f       	mov	r17, r30
+    1cda:	e3 ff       	sbrs	r30, 3
+    1cdc:	07 c0       	rjmp	.+14     	; 0x1cec <bom_refresh+0x62>
+      digital_output(select_pins[3], 1);
+    1cde:	80 91 0d 04 	lds	r24, 0x040D
+    1ce2:	90 91 0e 04 	lds	r25, 0x040E
+    1ce6:	61 e0       	ldi	r22, 0x01	; 1
+    1ce8:	70 e0       	ldi	r23, 0x00	; 0
+    1cea:	06 c0       	rjmp	.+12     	; 0x1cf8 <bom_refresh+0x6e>
+    else
+      digital_output(select_pins[3], 0);
+    1cec:	80 91 0d 04 	lds	r24, 0x040D
+    1cf0:	90 91 0e 04 	lds	r25, 0x040E
+    1cf4:	60 e0       	ldi	r22, 0x00	; 0
+    1cf6:	70 e0       	ldi	r23, 0x00	; 0
+    1cf8:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+
+    if (which&4)
+    1cfc:	12 ff       	sbrs	r17, 2
+    1cfe:	07 c0       	rjmp	.+14     	; 0x1d0e <bom_refresh+0x84>
+      digital_output(select_pins[2], 1);
+    1d00:	80 91 0b 04 	lds	r24, 0x040B
+    1d04:	90 91 0c 04 	lds	r25, 0x040C
+    1d08:	61 e0       	ldi	r22, 0x01	; 1
+    1d0a:	70 e0       	ldi	r23, 0x00	; 0
+    1d0c:	06 c0       	rjmp	.+12     	; 0x1d1a <bom_refresh+0x90>
+    else
+      digital_output(select_pins[2], 0);
+    1d0e:	80 91 0b 04 	lds	r24, 0x040B
+    1d12:	90 91 0c 04 	lds	r25, 0x040C
+    1d16:	60 e0       	ldi	r22, 0x00	; 0
+    1d18:	70 e0       	ldi	r23, 0x00	; 0
+    1d1a:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+
+    if (which&2)
+    1d1e:	11 ff       	sbrs	r17, 1
+    1d20:	07 c0       	rjmp	.+14     	; 0x1d30 <bom_refresh+0xa6>
+      digital_output(select_pins[1], 1);
+    1d22:	80 91 09 04 	lds	r24, 0x0409
+    1d26:	90 91 0a 04 	lds	r25, 0x040A
+    1d2a:	61 e0       	ldi	r22, 0x01	; 1
+    1d2c:	70 e0       	ldi	r23, 0x00	; 0
+    1d2e:	06 c0       	rjmp	.+12     	; 0x1d3c <bom_refresh+0xb2>
+    else
+      digital_output(select_pins[1], 0);
+    1d30:	80 91 09 04 	lds	r24, 0x0409
+    1d34:	90 91 0a 04 	lds	r25, 0x040A
+    1d38:	60 e0       	ldi	r22, 0x00	; 0
+    1d3a:	70 e0       	ldi	r23, 0x00	; 0
+    1d3c:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+
+    if (which&1)
+    1d40:	10 ff       	sbrs	r17, 0
+    1d42:	07 c0       	rjmp	.+14     	; 0x1d52 <bom_refresh+0xc8>
+      digital_output(select_pins[0], 1);
+    1d44:	80 91 07 04 	lds	r24, 0x0407
+    1d48:	90 91 08 04 	lds	r25, 0x0408
+    1d4c:	61 e0       	ldi	r22, 0x01	; 1
+    1d4e:	70 e0       	ldi	r23, 0x00	; 0
+    1d50:	06 c0       	rjmp	.+12     	; 0x1d5e <bom_refresh+0xd4>
+    else
+      digital_output(select_pins[0], 0);
+    1d52:	80 91 07 04 	lds	r24, 0x0407
+    1d56:	90 91 08 04 	lds	r25, 0x0408
+    1d5a:	60 e0       	ldi	r22, 0x00	; 0
+    1d5c:	70 e0       	ldi	r23, 0x00	; 0
+    1d5e:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+    
+	//Read BOM values
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+        if(bit_field & 0x1) {
+            bom_select(i);
+            bom_val[i] = analog_get8(analog_pin);
+    1d62:	80 91 0f 04 	lds	r24, 0x040F
+    1d66:	90 91 10 04 	lds	r25, 0x0410
+    1d6a:	0e 94 13 0a 	call	0x1426	; 0x1426 <analog_get8>
+    1d6e:	f7 01       	movw	r30, r14
+    1d70:	91 83       	std	Z+1, r25	; 0x01
+    1d72:	80 83       	st	Z, r24
+		loop_was_running = 1;
+		analog_stop_loop();
+	}
+    
+	//Read BOM values
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+    1d74:	21 96       	adiw	r28, 0x01	; 1
+    1d76:	82 e0       	ldi	r24, 0x02	; 2
+    1d78:	90 e0       	ldi	r25, 0x00	; 0
+    1d7a:	e8 0e       	add	r14, r24
+    1d7c:	f9 1e       	adc	r15, r25
+    1d7e:	c0 31       	cpi	r28, 0x10	; 16
+    1d80:	d1 05       	cpc	r29, r1
+    1d82:	19 f0       	breq	.+6      	; 0x1d8a <bom_refresh+0x100>
+        if(bit_field & 0x1) {
+            bom_select(i);
+            bom_val[i] = analog_get8(analog_pin);
+        }
+        bit_field = bit_field >> 1;
+    1d84:	d5 94       	asr	r13
+    1d86:	c7 94       	ror	r12
+    1d88:	9c cf       	rjmp	.-200    	; 0x1cc2 <bom_refresh+0x38>
+    }
+    
+	//Restore analog loop status
+	if(loop_was_running)
+    1d8a:	ab 28       	or	r10, r11
+    1d8c:	11 f0       	breq	.+4      	; 0x1d92 <bom_refresh+0x108>
+		analog_start_loop();
+    1d8e:	0e 94 f7 09 	call	0x13ee	; 0x13ee <analog_start_loop>
+}
+    1d92:	df 91       	pop	r29
+    1d94:	cf 91       	pop	r28
+    1d96:	1f 91       	pop	r17
+    1d98:	ff 90       	pop	r15
+    1d9a:	ef 90       	pop	r14
+    1d9c:	df 90       	pop	r13
+    1d9e:	cf 90       	pop	r12
+    1da0:	bf 90       	pop	r11
+    1da2:	af 90       	pop	r10
+    1da4:	08 95       	ret
+
+00001da6 <get_max_bom>:
+ * @return the direction of the maximum BOM reading
+ *
+ * @see analog_init
+ **/
+int get_max_bom(void) {
+    bom_refresh(BOM_ALL);
+    1da6:	8f ef       	ldi	r24, 0xFF	; 255
+    1da8:	9f ef       	ldi	r25, 0xFF	; 255
+    1daa:	0e 94 45 0e 	call	0x1c8a	; 0x1c8a <bom_refresh>
+    1dae:	e7 ee       	ldi	r30, 0xE7	; 231
+    1db0:	f3 e0       	ldi	r31, 0x03	; 3
+    1db2:	20 e0       	ldi	r18, 0x00	; 0
+    1db4:	30 e0       	ldi	r19, 0x00	; 0
+    1db6:	8f ef       	ldi	r24, 0xFF	; 255
+    1db8:	90 e0       	ldi	r25, 0x00	; 0
+    1dba:	6f ef       	ldi	r22, 0xFF	; 255
+    1dbc:	7f ef       	ldi	r23, 0xFF	; 255
+int bom_get_max(void) {
+    int i, lowest_val, lowest_i;
+    lowest_i = -1;
+    lowest_val = 255;
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+        if(bom_val[i] < lowest_val) {
+    1dbe:	40 81       	ld	r20, Z
+    1dc0:	51 81       	ldd	r21, Z+1	; 0x01
+    1dc2:	48 17       	cp	r20, r24
+    1dc4:	59 07       	cpc	r21, r25
+    1dc6:	10 f4       	brcc	.+4      	; 0x1dcc <get_max_bom+0x26>
+            lowest_val = bom_val[i];
+    1dc8:	ca 01       	movw	r24, r20
+    1dca:	b9 01       	movw	r22, r18
+ **/
+int bom_get_max(void) {
+    int i, lowest_val, lowest_i;
+    lowest_i = -1;
+    lowest_val = 255;
+    for(i = 0; i < NUM_BOM_LEDS; i++) {
+    1dcc:	2f 5f       	subi	r18, 0xFF	; 255
+    1dce:	3f 4f       	sbci	r19, 0xFF	; 255
+    1dd0:	32 96       	adiw	r30, 0x02	; 2
+    1dd2:	20 31       	cpi	r18, 0x10	; 16
+    1dd4:	31 05       	cpc	r19, r1
+    1dd6:	99 f7       	brne	.-26     	; 0x1dbe <get_max_bom+0x18>
+            lowest_val = bom_val[i];
+            lowest_i = i;
+        }
+    }
+    
+    if(lowest_val < BOM_VALUE_THRESHOLD)
+    1dd8:	86 39       	cpi	r24, 0x96	; 150
+    1dda:	91 05       	cpc	r25, r1
+    1ddc:	14 f0       	brlt	.+4      	; 0x1de2 <get_max_bom+0x3c>
+    1dde:	6f ef       	ldi	r22, 0xFF	; 255
+    1de0:	7f ef       	ldi	r23, 0xFF	; 255
+ * @see analog_init
+ **/
+int get_max_bom(void) {
+    bom_refresh(BOM_ALL);
+    return bom_get_max();
+}
+    1de2:	cb 01       	movw	r24, r22
+    1de4:	08 95       	ret
+
+00001de6 <bom_print_usb>:
+ * @param curBOMvals  Pointer to an array of the current BOM values (the array must have
+ *		length 16). Use this to print values you have already collected. Otherwise pass in NULL
+ *		and bom_refresh() will be called and the current BOM intensity values will be collected.
+ * @return  Exit status - Zero for success; negative on error.
+ **/
+int bom_print_usb(int* usrBOMvals) {
+    1de6:	af 92       	push	r10
+    1de8:	bf 92       	push	r11
+    1dea:	cf 92       	push	r12
+    1dec:	df 92       	push	r13
+    1dee:	ef 92       	push	r14
+    1df0:	ff 92       	push	r15
+    1df2:	0f 93       	push	r16
+    1df4:	1f 93       	push	r17
+    1df6:	df 93       	push	r29
+    1df8:	cf 93       	push	r28
+    1dfa:	cd b7       	in	r28, 0x3d	; 61
+    1dfc:	de b7       	in	r29, 0x3e	; 62
+    1dfe:	a0 97       	sbiw	r28, 0x20	; 32
+    1e00:	0f b6       	in	r0, 0x3f	; 63
+    1e02:	f8 94       	cli
+    1e04:	de bf       	out	0x3e, r29	; 62
+    1e06:	0f be       	out	0x3f, r0	; 63
+    1e08:	cd bf       	out	0x3d, r28	; 61
+
+	int i, j, max = -1;
+	int curVals[16];
+	int* prtValPtr;
+
+	if (usrBOMvals) {
+    1e0a:	00 97       	sbiw	r24, 0x00	; 0
+    1e0c:	a9 f0       	breq	.+42     	; 0x1e38 <bom_print_usb+0x52>
+    1e0e:	aa 24       	eor	r10, r10
+    1e10:	aa 94       	dec	r10
+    1e12:	ba 2c       	mov	r11, r10
+    1e14:	20 e0       	ldi	r18, 0x00	; 0
+    1e16:	30 e0       	ldi	r19, 0x00	; 0
+    1e18:	fc 01       	movw	r30, r24
+    1e1a:	e2 0f       	add	r30, r18
+    1e1c:	f3 1f       	adc	r31, r19
+    1e1e:	01 90       	ld	r0, Z+
+    1e20:	f0 81       	ld	r31, Z
+    1e22:	e0 2d       	mov	r30, r0
+    1e24:	ae 16       	cp	r10, r30
+    1e26:	bf 06       	cpc	r11, r31
+    1e28:	0c f4       	brge	.+2      	; 0x1e2c <bom_print_usb+0x46>
+    1e2a:	5f 01       	movw	r10, r30
+    1e2c:	2e 5f       	subi	r18, 0xFE	; 254
+    1e2e:	3f 4f       	sbci	r19, 0xFF	; 255
+		/* Use BOM values collected by user */
+		prtValPtr = usrBOMvals;
+
+		/* Find max BOM value from users values */
+		for (i = 0; i < 16; i++) {
+    1e30:	20 32       	cpi	r18, 0x20	; 32
+    1e32:	31 05       	cpc	r19, r1
+    1e34:	89 f7       	brne	.-30     	; 0x1e18 <bom_print_usb+0x32>
+    1e36:	21 c0       	rjmp	.+66     	; 0x1e7a <bom_print_usb+0x94>
+			if (max < prtValPtr[i])
+				max = prtValPtr[i];
+		}
+	} else {
+		/* Refresh and make sure the table is updated */
+		bom_refresh(BOM_ALL);
+    1e38:	8f ef       	ldi	r24, 0xFF	; 255
+    1e3a:	9f ef       	ldi	r25, 0xFF	; 255
+    1e3c:	0e 94 45 0e 	call	0x1c8a	; 0x1c8a <bom_refresh>
+    1e40:	aa 24       	eor	r10, r10
+    1e42:	aa 94       	dec	r10
+    1e44:	ba 2c       	mov	r11, r10
+    1e46:	20 e0       	ldi	r18, 0x00	; 0
+    1e48:	30 e0       	ldi	r19, 0x00	; 0
+
+		/* Record values into an array */
+		for (i = 0; i < 16; i++) {
+			curVals[i] = bom_get(i);
+    1e4a:	ae 01       	movw	r20, r28
+    1e4c:	4f 5f       	subi	r20, 0xFF	; 255
+    1e4e:	5f 4f       	sbci	r21, 0xFF	; 255
+ * @return the bom value
+ *
+ * see bom_refresh
+ **/
+int bom_get(int which) {
+    return bom_val[which];
+    1e50:	f9 01       	movw	r30, r18
+    1e52:	e9 51       	subi	r30, 0x19	; 25
+    1e54:	fc 4f       	sbci	r31, 0xFC	; 252
+    1e56:	80 81       	ld	r24, Z
+    1e58:	91 81       	ldd	r25, Z+1	; 0x01
+		/* Refresh and make sure the table is updated */
+		bom_refresh(BOM_ALL);
+
+		/* Record values into an array */
+		for (i = 0; i < 16; i++) {
+			curVals[i] = bom_get(i);
+    1e5a:	fa 01       	movw	r30, r20
+    1e5c:	e2 0f       	add	r30, r18
+    1e5e:	f3 1f       	adc	r31, r19
+    1e60:	91 83       	std	Z+1, r25	; 0x01
+    1e62:	80 83       	st	Z, r24
+    1e64:	a8 16       	cp	r10, r24
+    1e66:	b9 06       	cpc	r11, r25
+    1e68:	0c f4       	brge	.+2      	; 0x1e6c <bom_print_usb+0x86>
+    1e6a:	5c 01       	movw	r10, r24
+    1e6c:	2e 5f       	subi	r18, 0xFE	; 254
+    1e6e:	3f 4f       	sbci	r19, 0xFF	; 255
+	} else {
+		/* Refresh and make sure the table is updated */
+		bom_refresh(BOM_ALL);
+
+		/* Record values into an array */
+		for (i = 0; i < 16; i++) {
+    1e70:	20 32       	cpi	r18, 0x20	; 32
+    1e72:	31 05       	cpc	r19, r1
+    1e74:	69 f7       	brne	.-38     	; 0x1e50 <bom_print_usb+0x6a>
+    1e76:	ce 01       	movw	r24, r28
+    1e78:	01 96       	adiw	r24, 0x01	; 1
+    1e7a:	6c 01       	movw	r12, r24
+    1e7c:	ee 24       	eor	r14, r14
+    1e7e:	ff 24       	eor	r15, r15
+	}
+
+	/* Display results */
+	for (i = 0; i < 16; i++) {
+		
+		usb_puti(i);
+    1e80:	c7 01       	movw	r24, r14
+    1e82:	0e 94 b5 1e 	call	0x3d6a	; 0x3d6a <usb_puti>
+		usb_puts(": ");
+    1e86:	82 e4       	ldi	r24, 0x42	; 66
+    1e88:	91 e0       	ldi	r25, 0x01	; 1
+    1e8a:	0e 94 81 1e 	call	0x3d02	; 0x3d02 <usb_puts>
+		usb_puti(prtValPtr[i]);
+    1e8e:	f6 01       	movw	r30, r12
+    1e90:	80 81       	ld	r24, Z
+    1e92:	91 81       	ldd	r25, Z+1	; 0x01
+    1e94:	0e 94 b5 1e 	call	0x3d6a	; 0x3d6a <usb_puti>
+		usb_putc('\t');
+    1e98:	89 e0       	ldi	r24, 0x09	; 9
+    1e9a:	0e 94 71 1e 	call	0x3ce2	; 0x3ce2 <usb_putc>
+    1e9e:	00 e0       	ldi	r16, 0x00	; 0
+    1ea0:	10 e0       	ldi	r17, 0x00	; 0
+    1ea2:	05 c0       	rjmp	.+10     	; 0x1eae <bom_print_usb+0xc8>
+
+		for (j = 0; j < (int)((max - prtValPtr[i]) / 5); j++) {
+			usb_putc('#');
+    1ea4:	83 e2       	ldi	r24, 0x23	; 35
+    1ea6:	0e 94 71 1e 	call	0x3ce2	; 0x3ce2 <usb_putc>
+		usb_puti(i);
+		usb_puts(": ");
+		usb_puti(prtValPtr[i]);
+		usb_putc('\t');
+
+		for (j = 0; j < (int)((max - prtValPtr[i]) / 5); j++) {
+    1eaa:	0f 5f       	subi	r16, 0xFF	; 255
+    1eac:	1f 4f       	sbci	r17, 0xFF	; 255
+    1eae:	f6 01       	movw	r30, r12
+    1eb0:	80 81       	ld	r24, Z
+    1eb2:	91 81       	ldd	r25, Z+1	; 0x01
+    1eb4:	95 01       	movw	r18, r10
+    1eb6:	28 1b       	sub	r18, r24
+    1eb8:	39 0b       	sbc	r19, r25
+    1eba:	c9 01       	movw	r24, r18
+    1ebc:	65 e0       	ldi	r22, 0x05	; 5
+    1ebe:	70 e0       	ldi	r23, 0x00	; 0
+    1ec0:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    1ec4:	06 17       	cp	r16, r22
+    1ec6:	17 07       	cpc	r17, r23
+    1ec8:	6c f3       	brlt	.-38     	; 0x1ea4 <bom_print_usb+0xbe>
+			usb_putc('#');
+		}
+		usb_puts("\r\n");
+    1eca:	85 e4       	ldi	r24, 0x45	; 69
+    1ecc:	91 e0       	ldi	r25, 0x01	; 1
+    1ece:	0e 94 81 1e 	call	0x3d02	; 0x3d02 <usb_puts>
+		/* Use the current set of collected values */
+		prtValPtr = curVals;
+	}
+
+	/* Display results */
+	for (i = 0; i < 16; i++) {
+    1ed2:	08 94       	sec
+    1ed4:	e1 1c       	adc	r14, r1
+    1ed6:	f1 1c       	adc	r15, r1
+    1ed8:	82 e0       	ldi	r24, 0x02	; 2
+    1eda:	90 e0       	ldi	r25, 0x00	; 0
+    1edc:	c8 0e       	add	r12, r24
+    1ede:	d9 1e       	adc	r13, r25
+    1ee0:	90 e1       	ldi	r25, 0x10	; 16
+    1ee2:	e9 16       	cp	r14, r25
+    1ee4:	f1 04       	cpc	r15, r1
+    1ee6:	61 f6       	brne	.-104    	; 0x1e80 <bom_print_usb+0x9a>
+		for (j = 0; j < (int)((max - prtValPtr[i]) / 5); j++) {
+			usb_putc('#');
+		}
+		usb_puts("\r\n");
+	}
+	usb_puts("\r\n");
+    1ee8:	85 e4       	ldi	r24, 0x45	; 69
+    1eea:	91 e0       	ldi	r25, 0x01	; 1
+    1eec:	0e 94 81 1e 	call	0x3d02	; 0x3d02 <usb_puts>
+
+	return 0;
+
+}
+    1ef0:	80 e0       	ldi	r24, 0x00	; 0
+    1ef2:	90 e0       	ldi	r25, 0x00	; 0
+    1ef4:	a0 96       	adiw	r28, 0x20	; 32
+    1ef6:	0f b6       	in	r0, 0x3f	; 63
+    1ef8:	f8 94       	cli
+    1efa:	de bf       	out	0x3e, r29	; 62
+    1efc:	0f be       	out	0x3f, r0	; 63
+    1efe:	cd bf       	out	0x3d, r28	; 61
+    1f00:	cf 91       	pop	r28
+    1f02:	df 91       	pop	r29
+    1f04:	1f 91       	pop	r17
+    1f06:	0f 91       	pop	r16
+    1f08:	ff 90       	pop	r15
+    1f0a:	ef 90       	pop	r14
+    1f0c:	df 90       	pop	r13
+    1f0e:	cf 90       	pop	r12
+    1f10:	bf 90       	pop	r11
+    1f12:	af 90       	pop	r10
+    1f14:	08 95       	ret
+
+00001f16 <bom_get_norm_vector>:
+ *		has already collected BOM information. Otherwise, leave as NULL and a new set of data
+ *		will be collected and used.
+ *
+ * @return  Exit status - Zero for success; negative on error.
+ **/
+int bom_get_norm_vector(Vector* v, int* usrBOMvals) {
+    1f16:	4f 92       	push	r4
+    1f18:	5f 92       	push	r5
+    1f1a:	6f 92       	push	r6
+    1f1c:	7f 92       	push	r7
+    1f1e:	8f 92       	push	r8
+    1f20:	9f 92       	push	r9
+    1f22:	af 92       	push	r10
+    1f24:	bf 92       	push	r11
+    1f26:	cf 92       	push	r12
+    1f28:	df 92       	push	r13
+    1f2a:	ef 92       	push	r14
+    1f2c:	ff 92       	push	r15
+    1f2e:	0f 93       	push	r16
+    1f30:	1f 93       	push	r17
+    1f32:	df 93       	push	r29
+    1f34:	cf 93       	push	r28
+    1f36:	cd b7       	in	r28, 0x3d	; 61
+    1f38:	de b7       	in	r29, 0x3e	; 62
+    1f3a:	a0 97       	sbiw	r28, 0x20	; 32
+    1f3c:	0f b6       	in	r0, 0x3f	; 63
+    1f3e:	f8 94       	cli
+    1f40:	de bf       	out	0x3e, r29	; 62
+    1f42:	0f be       	out	0x3f, r0	; 63
+    1f44:	cd bf       	out	0x3d, r28	; 61
+    1f46:	2c 01       	movw	r4, r24
+
+	/* Store current BOM readings and use them as a weighting factor */
+	int intensity[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    1f48:	6e 01       	movw	r12, r28
+    1f4a:	08 94       	sec
+    1f4c:	c1 1c       	adc	r12, r1
+    1f4e:	d1 1c       	adc	r13, r1
+    1f50:	80 e2       	ldi	r24, 0x20	; 32
+    1f52:	f6 01       	movw	r30, r12
+    1f54:	11 92       	st	Z+, r1
+    1f56:	8a 95       	dec	r24
+    1f58:	e9 f7       	brne	.-6      	; 0x1f54 <bom_get_norm_vector+0x3e>
+	int normalized_net_y_comp = 0;
+
+	int i = 0;
+
+	/* BOM intensity is actually measured as more intense = closer to 0 */
+	if (usrBOMvals) {
+    1f5a:	61 15       	cp	r22, r1
+    1f5c:	71 05       	cpc	r23, r1
+    1f5e:	b9 f0       	breq	.+46     	; 0x1f8e <bom_get_norm_vector+0x78>
+    1f60:	20 e0       	ldi	r18, 0x00	; 0
+    1f62:	30 e0       	ldi	r19, 0x00	; 0
+		/* Use BOM values collected by user */
+		for (i = 0; i < 16; i++) {
+			intensity[i] = 255 - usrBOMvals[i];
+    1f64:	4f ef       	ldi	r20, 0xFF	; 255
+    1f66:	50 e0       	ldi	r21, 0x00	; 0
+    1f68:	d6 01       	movw	r26, r12
+    1f6a:	a2 0f       	add	r26, r18
+    1f6c:	b3 1f       	adc	r27, r19
+    1f6e:	fb 01       	movw	r30, r22
+    1f70:	e2 0f       	add	r30, r18
+    1f72:	f3 1f       	adc	r31, r19
+    1f74:	80 81       	ld	r24, Z
+    1f76:	91 81       	ldd	r25, Z+1	; 0x01
+    1f78:	fa 01       	movw	r30, r20
+    1f7a:	e8 1b       	sub	r30, r24
+    1f7c:	f9 0b       	sbc	r31, r25
+    1f7e:	ed 93       	st	X+, r30
+    1f80:	fc 93       	st	X, r31
+    1f82:	2e 5f       	subi	r18, 0xFE	; 254
+    1f84:	3f 4f       	sbci	r19, 0xFF	; 255
+	int i = 0;
+
+	/* BOM intensity is actually measured as more intense = closer to 0 */
+	if (usrBOMvals) {
+		/* Use BOM values collected by user */
+		for (i = 0; i < 16; i++) {
+    1f86:	20 32       	cpi	r18, 0x20	; 32
+    1f88:	31 05       	cpc	r19, r1
+    1f8a:	71 f7       	brne	.-36     	; 0x1f68 <bom_get_norm_vector+0x52>
+    1f8c:	1b c0       	rjmp	.+54     	; 0x1fc4 <bom_get_norm_vector+0xae>
+			intensity[i] = 255 - usrBOMvals[i];
+		}
+	} else {
+		/* Collect new set of BOM data */
+		bom_refresh(BOM_ALL);
+    1f8e:	8f ef       	ldi	r24, 0xFF	; 255
+    1f90:	9f ef       	ldi	r25, 0xFF	; 255
+    1f92:	0e 94 45 0e 	call	0x1c8a	; 0x1c8a <bom_refresh>
+    1f96:	20 e0       	ldi	r18, 0x00	; 0
+    1f98:	30 e0       	ldi	r19, 0x00	; 0
+		for (i = 0; i < 16; i++) {
+			intensity[i] = 255 - bom_get(i);
+    1f9a:	b6 01       	movw	r22, r12
+    1f9c:	4f ef       	ldi	r20, 0xFF	; 255
+    1f9e:	50 e0       	ldi	r21, 0x00	; 0
+    1fa0:	db 01       	movw	r26, r22
+    1fa2:	a2 0f       	add	r26, r18
+    1fa4:	b3 1f       	adc	r27, r19
+    1fa6:	f9 01       	movw	r30, r18
+    1fa8:	e9 51       	subi	r30, 0x19	; 25
+    1faa:	fc 4f       	sbci	r31, 0xFC	; 252
+    1fac:	80 81       	ld	r24, Z
+    1fae:	91 81       	ldd	r25, Z+1	; 0x01
+    1fb0:	fa 01       	movw	r30, r20
+    1fb2:	e8 1b       	sub	r30, r24
+    1fb4:	f9 0b       	sbc	r31, r25
+    1fb6:	ed 93       	st	X+, r30
+    1fb8:	fc 93       	st	X, r31
+    1fba:	2e 5f       	subi	r18, 0xFE	; 254
+    1fbc:	3f 4f       	sbci	r19, 0xFF	; 255
+			intensity[i] = 255 - usrBOMvals[i];
+		}
+	} else {
+		/* Collect new set of BOM data */
+		bom_refresh(BOM_ALL);
+		for (i = 0; i < 16; i++) {
+    1fbe:	20 32       	cpi	r18, 0x20	; 32
+    1fc0:	31 05       	cpc	r19, r1
+    1fc2:	71 f7       	brne	.-36     	; 0x1fa0 <bom_get_norm_vector+0x8a>
+    1fc4:	aa 24       	eor	r10, r10
+    1fc6:	bb 24       	eor	r11, r11
+    1fc8:	65 01       	movw	r12, r10
+    1fca:	66 24       	eor	r6, r6
+    1fcc:	77 24       	eor	r7, r7
+    1fce:	43 01       	movw	r8, r6
+    1fd0:	60 e0       	ldi	r22, 0x00	; 0
+    1fd2:	70 e0       	ldi	r23, 0x00	; 0
+    1fd4:	40 e0       	ldi	r20, 0x00	; 0
+    1fd6:	50 e0       	ldi	r21, 0x00	; 0
+		}
+	}
+
+	/* Calculate weighted vector components and accumulate vector sum */
+	for (i = 0; i < 16; i++) {
+		weighted_x_comp[i] = intensity[i] * x_comp[i];
+    1fd8:	8e 01       	movw	r16, r28
+    1fda:	0f 5f       	subi	r16, 0xFF	; 255
+    1fdc:	1f 4f       	sbci	r17, 0xFF	; 255
+    1fde:	f8 01       	movw	r30, r16
+    1fe0:	e4 0f       	add	r30, r20
+    1fe2:	f5 1f       	adc	r31, r21
+    1fe4:	20 81       	ld	r18, Z
+    1fe6:	31 81       	ldd	r19, Z+1	; 0x01
+		weighted_y_comp[i] = intensity[i] * y_comp[i];
+		net_x_comp += weighted_x_comp[i];
+    1fe8:	fa 01       	movw	r30, r20
+    1fea:	e8 5b       	subi	r30, 0xB8	; 184
+    1fec:	fe 4f       	sbci	r31, 0xFE	; 254
+    1fee:	80 81       	ld	r24, Z
+    1ff0:	91 81       	ldd	r25, Z+1	; 0x01
+    1ff2:	fc 01       	movw	r30, r24
+    1ff4:	2e 9f       	mul	r18, r30
+    1ff6:	c0 01       	movw	r24, r0
+    1ff8:	2f 9f       	mul	r18, r31
+    1ffa:	90 0d       	add	r25, r0
+    1ffc:	3e 9f       	mul	r19, r30
+    1ffe:	90 0d       	add	r25, r0
+    2000:	11 24       	eor	r1, r1
+    2002:	aa 27       	eor	r26, r26
+    2004:	97 fd       	sbrc	r25, 7
+    2006:	a0 95       	com	r26
+    2008:	ba 2f       	mov	r27, r26
+    200a:	a8 0e       	add	r10, r24
+    200c:	b9 1e       	adc	r11, r25
+    200e:	ca 1e       	adc	r12, r26
+    2010:	db 1e       	adc	r13, r27
+		net_y_comp += weighted_y_comp[i];
+    2012:	fa 01       	movw	r30, r20
+    2014:	e8 59       	subi	r30, 0x98	; 152
+    2016:	fe 4f       	sbci	r31, 0xFE	; 254
+    2018:	80 81       	ld	r24, Z
+    201a:	91 81       	ldd	r25, Z+1	; 0x01
+    201c:	fc 01       	movw	r30, r24
+    201e:	2e 9f       	mul	r18, r30
+    2020:	c0 01       	movw	r24, r0
+    2022:	2f 9f       	mul	r18, r31
+    2024:	90 0d       	add	r25, r0
+    2026:	3e 9f       	mul	r19, r30
+    2028:	90 0d       	add	r25, r0
+    202a:	11 24       	eor	r1, r1
+    202c:	aa 27       	eor	r26, r26
+    202e:	97 fd       	sbrc	r25, 7
+    2030:	a0 95       	com	r26
+    2032:	ba 2f       	mov	r27, r26
+    2034:	68 0e       	add	r6, r24
+    2036:	79 1e       	adc	r7, r25
+    2038:	8a 1e       	adc	r8, r26
+    203a:	9b 1e       	adc	r9, r27
+		total_intensity += intensity[i];
+    203c:	62 0f       	add	r22, r18
+    203e:	73 1f       	adc	r23, r19
+    2040:	4e 5f       	subi	r20, 0xFE	; 254
+    2042:	5f 4f       	sbci	r21, 0xFF	; 255
+			intensity[i] = 255 - bom_get(i);
+		}
+	}
+
+	/* Calculate weighted vector components and accumulate vector sum */
+	for (i = 0; i < 16; i++) {
+    2044:	40 32       	cpi	r20, 0x20	; 32
+    2046:	51 05       	cpc	r21, r1
+    2048:	51 f6       	brne	.-108    	; 0x1fde <bom_get_norm_vector+0xc8>
+		net_y_comp += weighted_y_comp[i];
+		total_intensity += intensity[i];
+	}
+
+	/* Normalize the resultant vector components by the total intensity */
+	if (total_intensity > 0) {
+    204a:	16 16       	cp	r1, r22
+    204c:	17 06       	cpc	r1, r23
+    204e:	2c f0       	brlt	.+10     	; 0x205a <bom_get_norm_vector+0x144>
+    2050:	20 e0       	ldi	r18, 0x00	; 0
+    2052:	30 e0       	ldi	r19, 0x00	; 0
+    2054:	cc 24       	eor	r12, r12
+    2056:	dd 24       	eor	r13, r13
+    2058:	12 c0       	rjmp	.+36     	; 0x207e <bom_get_norm_vector+0x168>
+		normalized_net_x_comp = net_x_comp / total_intensity;
+    205a:	7b 01       	movw	r14, r22
+    205c:	00 27       	eor	r16, r16
+    205e:	f7 fc       	sbrc	r15, 7
+    2060:	00 95       	com	r16
+    2062:	10 2f       	mov	r17, r16
+    2064:	c6 01       	movw	r24, r12
+    2066:	b5 01       	movw	r22, r10
+    2068:	a8 01       	movw	r20, r16
+    206a:	97 01       	movw	r18, r14
+    206c:	0e 94 85 31 	call	0x630a	; 0x630a <__divmodsi4>
+    2070:	69 01       	movw	r12, r18
+		normalized_net_y_comp = net_y_comp / total_intensity;
+    2072:	c4 01       	movw	r24, r8
+    2074:	b3 01       	movw	r22, r6
+    2076:	a8 01       	movw	r20, r16
+    2078:	97 01       	movw	r18, r14
+    207a:	0e 94 85 31 	call	0x630a	; 0x630a <__divmodsi4>
+	}
+
+	/* Fill the Vector struct */
+	v->x = normalized_net_x_comp;
+    207e:	f2 01       	movw	r30, r4
+    2080:	d1 82       	std	Z+1, r13	; 0x01
+    2082:	c0 82       	st	Z, r12
+	v->y = normalized_net_y_comp;
+    2084:	33 83       	std	Z+3, r19	; 0x03
+    2086:	22 83       	std	Z+2, r18	; 0x02
+
+	return 0;
+
+}
+    2088:	80 e0       	ldi	r24, 0x00	; 0
+    208a:	90 e0       	ldi	r25, 0x00	; 0
+    208c:	a0 96       	adiw	r28, 0x20	; 32
+    208e:	0f b6       	in	r0, 0x3f	; 63
+    2090:	f8 94       	cli
+    2092:	de bf       	out	0x3e, r29	; 62
+    2094:	0f be       	out	0x3f, r0	; 63
+    2096:	cd bf       	out	0x3d, r28	; 61
+    2098:	cf 91       	pop	r28
+    209a:	df 91       	pop	r29
+    209c:	1f 91       	pop	r17
+    209e:	0f 91       	pop	r16
+    20a0:	ff 90       	pop	r15
+    20a2:	ef 90       	pop	r14
+    20a4:	df 90       	pop	r13
+    20a6:	cf 90       	pop	r12
+    20a8:	bf 90       	pop	r11
+    20aa:	af 90       	pop	r10
+    20ac:	9f 90       	pop	r9
+    20ae:	8f 90       	pop	r8
+    20b0:	7f 90       	pop	r7
+    20b2:	6f 90       	pop	r6
+    20b4:	5f 90       	pop	r5
+    20b6:	4f 90       	pop	r4
+    20b8:	08 95       	ret
+
+000020ba <bom_get_vector>:
+ *		has already collected BOM information. Otherwise, leave as NULL and a new set of data
+ *		will be collected and used.
+ *
+ * @return  Exit status - Zero for success; negative on error.
+ **/
+int bom_get_vector(Vector* v, int* usrBOMvals) {
+    20ba:	8f 92       	push	r8
+    20bc:	9f 92       	push	r9
+    20be:	af 92       	push	r10
+    20c0:	bf 92       	push	r11
+    20c2:	cf 92       	push	r12
+    20c4:	df 92       	push	r13
+    20c6:	ef 92       	push	r14
+    20c8:	ff 92       	push	r15
+    20ca:	0f 93       	push	r16
+    20cc:	1f 93       	push	r17
+    20ce:	df 93       	push	r29
+    20d0:	cf 93       	push	r28
+    20d2:	cd b7       	in	r28, 0x3d	; 61
+    20d4:	de b7       	in	r29, 0x3e	; 62
+    20d6:	a0 97       	sbiw	r28, 0x20	; 32
+    20d8:	0f b6       	in	r0, 0x3f	; 63
+    20da:	f8 94       	cli
+    20dc:	de bf       	out	0x3e, r29	; 62
+    20de:	0f be       	out	0x3f, r0	; 63
+    20e0:	cd bf       	out	0x3d, r28	; 61
+    20e2:	4c 01       	movw	r8, r24
+
+	/* Store current BOM readings and use them as a weighting factor */
+	int intensity[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    20e4:	8e 01       	movw	r16, r28
+    20e6:	0f 5f       	subi	r16, 0xFF	; 255
+    20e8:	1f 4f       	sbci	r17, 0xFF	; 255
+    20ea:	80 e2       	ldi	r24, 0x20	; 32
+    20ec:	f8 01       	movw	r30, r16
+    20ee:	11 92       	st	Z+, r1
+    20f0:	8a 95       	dec	r24
+    20f2:	e9 f7       	brne	.-6      	; 0x20ee <bom_get_vector+0x34>
+	long net_y_comp = 0;
+
+	int i = 0;
+
+	/* BOM intensity is actually measured as more intense = closer to 0 */
+	if (usrBOMvals) {
+    20f4:	61 15       	cp	r22, r1
+    20f6:	71 05       	cpc	r23, r1
+    20f8:	b9 f0       	breq	.+46     	; 0x2128 <bom_get_vector+0x6e>
+    20fa:	20 e0       	ldi	r18, 0x00	; 0
+    20fc:	30 e0       	ldi	r19, 0x00	; 0
+		/* Use BOM values collected by user */
+		for (i = 0; i < 16; i++) {
+			intensity[i] = 255 - usrBOMvals[i];
+    20fe:	4f ef       	ldi	r20, 0xFF	; 255
+    2100:	50 e0       	ldi	r21, 0x00	; 0
+    2102:	d8 01       	movw	r26, r16
+    2104:	a2 0f       	add	r26, r18
+    2106:	b3 1f       	adc	r27, r19
+    2108:	fb 01       	movw	r30, r22
+    210a:	e2 0f       	add	r30, r18
+    210c:	f3 1f       	adc	r31, r19
+    210e:	80 81       	ld	r24, Z
+    2110:	91 81       	ldd	r25, Z+1	; 0x01
+    2112:	fa 01       	movw	r30, r20
+    2114:	e8 1b       	sub	r30, r24
+    2116:	f9 0b       	sbc	r31, r25
+    2118:	ed 93       	st	X+, r30
+    211a:	fc 93       	st	X, r31
+    211c:	2e 5f       	subi	r18, 0xFE	; 254
+    211e:	3f 4f       	sbci	r19, 0xFF	; 255
+	int i = 0;
+
+	/* BOM intensity is actually measured as more intense = closer to 0 */
+	if (usrBOMvals) {
+		/* Use BOM values collected by user */
+		for (i = 0; i < 16; i++) {
+    2120:	20 32       	cpi	r18, 0x20	; 32
+    2122:	31 05       	cpc	r19, r1
+    2124:	71 f7       	brne	.-36     	; 0x2102 <bom_get_vector+0x48>
+    2126:	1b c0       	rjmp	.+54     	; 0x215e <bom_get_vector+0xa4>
+			intensity[i] = 255 - usrBOMvals[i];
+		}
+	} else {
+		/* Collect new set of BOM data */
+		bom_refresh(BOM_ALL);
+    2128:	8f ef       	ldi	r24, 0xFF	; 255
+    212a:	9f ef       	ldi	r25, 0xFF	; 255
+    212c:	0e 94 45 0e 	call	0x1c8a	; 0x1c8a <bom_refresh>
+    2130:	20 e0       	ldi	r18, 0x00	; 0
+    2132:	30 e0       	ldi	r19, 0x00	; 0
+		for (i = 0; i < 16; i++) {
+			intensity[i] = 255 - bom_get(i);
+    2134:	b8 01       	movw	r22, r16
+    2136:	4f ef       	ldi	r20, 0xFF	; 255
+    2138:	50 e0       	ldi	r21, 0x00	; 0
+    213a:	db 01       	movw	r26, r22
+    213c:	a2 0f       	add	r26, r18
+    213e:	b3 1f       	adc	r27, r19
+    2140:	f9 01       	movw	r30, r18
+    2142:	e9 51       	subi	r30, 0x19	; 25
+    2144:	fc 4f       	sbci	r31, 0xFC	; 252
+    2146:	80 81       	ld	r24, Z
+    2148:	91 81       	ldd	r25, Z+1	; 0x01
+    214a:	fa 01       	movw	r30, r20
+    214c:	e8 1b       	sub	r30, r24
+    214e:	f9 0b       	sbc	r31, r25
+    2150:	ed 93       	st	X+, r30
+    2152:	fc 93       	st	X, r31
+    2154:	2e 5f       	subi	r18, 0xFE	; 254
+    2156:	3f 4f       	sbci	r19, 0xFF	; 255
+			intensity[i] = 255 - usrBOMvals[i];
+		}
+	} else {
+		/* Collect new set of BOM data */
+		bom_refresh(BOM_ALL);
+		for (i = 0; i < 16; i++) {
+    2158:	20 32       	cpi	r18, 0x20	; 32
+    215a:	31 05       	cpc	r19, r1
+    215c:	71 f7       	brne	.-36     	; 0x213a <bom_get_vector+0x80>
+    215e:	aa 24       	eor	r10, r10
+    2160:	bb 24       	eor	r11, r11
+    2162:	65 01       	movw	r12, r10
+    2164:	ee 24       	eor	r14, r14
+    2166:	ff 24       	eor	r15, r15
+    2168:	87 01       	movw	r16, r14
+    216a:	40 e0       	ldi	r20, 0x00	; 0
+    216c:	50 e0       	ldi	r21, 0x00	; 0
+		}
+	}
+
+	/* Calculate weighted vector components and accumulate vector sum */
+	for (i = 0; i < 16; i++) {
+		weighted_x_comp[i] = intensity[i] * x_comp[i];
+    216e:	be 01       	movw	r22, r28
+    2170:	6f 5f       	subi	r22, 0xFF	; 255
+    2172:	7f 4f       	sbci	r23, 0xFF	; 255
+    2174:	fb 01       	movw	r30, r22
+    2176:	e4 0f       	add	r30, r20
+    2178:	f5 1f       	adc	r31, r21
+    217a:	20 81       	ld	r18, Z
+    217c:	31 81       	ldd	r19, Z+1	; 0x01
+		weighted_y_comp[i] = intensity[i] * y_comp[i];
+		net_x_comp += weighted_x_comp[i];
+    217e:	fa 01       	movw	r30, r20
+    2180:	e8 5b       	subi	r30, 0xB8	; 184
+    2182:	fe 4f       	sbci	r31, 0xFE	; 254
+    2184:	80 81       	ld	r24, Z
+    2186:	91 81       	ldd	r25, Z+1	; 0x01
+    2188:	fc 01       	movw	r30, r24
+    218a:	2e 9f       	mul	r18, r30
+    218c:	c0 01       	movw	r24, r0
+    218e:	2f 9f       	mul	r18, r31
+    2190:	90 0d       	add	r25, r0
+    2192:	3e 9f       	mul	r19, r30
+    2194:	90 0d       	add	r25, r0
+    2196:	11 24       	eor	r1, r1
+    2198:	aa 27       	eor	r26, r26
+    219a:	97 fd       	sbrc	r25, 7
+    219c:	a0 95       	com	r26
+    219e:	ba 2f       	mov	r27, r26
+    21a0:	a8 0e       	add	r10, r24
+    21a2:	b9 1e       	adc	r11, r25
+    21a4:	ca 1e       	adc	r12, r26
+    21a6:	db 1e       	adc	r13, r27
+		net_y_comp += weighted_y_comp[i];
+    21a8:	fa 01       	movw	r30, r20
+    21aa:	e8 59       	subi	r30, 0x98	; 152
+    21ac:	fe 4f       	sbci	r31, 0xFE	; 254
+    21ae:	80 81       	ld	r24, Z
+    21b0:	91 81       	ldd	r25, Z+1	; 0x01
+    21b2:	fc 01       	movw	r30, r24
+    21b4:	2e 9f       	mul	r18, r30
+    21b6:	c0 01       	movw	r24, r0
+    21b8:	2f 9f       	mul	r18, r31
+    21ba:	90 0d       	add	r25, r0
+    21bc:	3e 9f       	mul	r19, r30
+    21be:	90 0d       	add	r25, r0
+    21c0:	11 24       	eor	r1, r1
+    21c2:	aa 27       	eor	r26, r26
+    21c4:	97 fd       	sbrc	r25, 7
+    21c6:	a0 95       	com	r26
+    21c8:	ba 2f       	mov	r27, r26
+    21ca:	e8 0e       	add	r14, r24
+    21cc:	f9 1e       	adc	r15, r25
+    21ce:	0a 1f       	adc	r16, r26
+    21d0:	1b 1f       	adc	r17, r27
+    21d2:	4e 5f       	subi	r20, 0xFE	; 254
+    21d4:	5f 4f       	sbci	r21, 0xFF	; 255
+			intensity[i] = 255 - bom_get(i);
+		}
+	}
+
+	/* Calculate weighted vector components and accumulate vector sum */
+	for (i = 0; i < 16; i++) {
+    21d6:	40 32       	cpi	r20, 0x20	; 32
+    21d8:	51 05       	cpc	r21, r1
+    21da:	61 f6       	brne	.-104    	; 0x2174 <bom_get_vector+0xba>
+		net_x_comp += weighted_x_comp[i];
+		net_y_comp += weighted_y_comp[i];
+	}
+
+	/* Fill the Vector struct */
+	v->x = net_x_comp;
+    21dc:	f4 01       	movw	r30, r8
+    21de:	b1 82       	std	Z+1, r11	; 0x01
+    21e0:	a0 82       	st	Z, r10
+	v->y = net_y_comp;
+    21e2:	f3 82       	std	Z+3, r15	; 0x03
+    21e4:	e2 82       	std	Z+2, r14	; 0x02
+
+	return 0;
+
+}
+    21e6:	80 e0       	ldi	r24, 0x00	; 0
+    21e8:	90 e0       	ldi	r25, 0x00	; 0
+    21ea:	a0 96       	adiw	r28, 0x20	; 32
+    21ec:	0f b6       	in	r0, 0x3f	; 63
+    21ee:	f8 94       	cli
+    21f0:	de bf       	out	0x3e, r29	; 62
+    21f2:	0f be       	out	0x3f, r0	; 63
+    21f4:	cd bf       	out	0x3d, r28	; 61
+    21f6:	cf 91       	pop	r28
+    21f8:	df 91       	pop	r29
+    21fa:	1f 91       	pop	r17
+    21fc:	0f 91       	pop	r16
+    21fe:	ff 90       	pop	r15
+    2200:	ef 90       	pop	r14
+    2202:	df 90       	pop	r13
+    2204:	cf 90       	pop	r12
+    2206:	bf 90       	pop	r11
+    2208:	af 90       	pop	r10
+    220a:	9f 90       	pop	r9
+    220c:	8f 90       	pop	r8
+    220e:	08 95       	ret
+
+00002210 <digital_input>:
+ * for a description of portpins.
+ *
+ * @return 1 or 0, depending on the value of the portpin.
+ **/
+int digital_input(int portpin) {
+  int pin = portpin & 0x7;
+    2210:	ac 01       	movw	r20, r24
+    2212:	47 70       	andi	r20, 0x07	; 7
+    2214:	50 70       	andi	r21, 0x00	; 0
+  int pin_val = 0;
+  
+  switch(portpin >> 3) {
+    2216:	9c 01       	movw	r18, r24
+    2218:	83 e0       	ldi	r24, 0x03	; 3
+    221a:	35 95       	asr	r19
+    221c:	27 95       	ror	r18
+    221e:	8a 95       	dec	r24
+    2220:	e1 f7       	brne	.-8      	; 0x221a <digital_input+0xa>
+    2222:	24 30       	cpi	r18, 0x04	; 4
+    2224:	31 05       	cpc	r19, r1
+    2226:	09 f4       	brne	.+2      	; 0x222a <digital_input+0x1a>
+    2228:	44 c0       	rjmp	.+136    	; 0x22b2 <digital_input+0xa2>
+    222a:	25 30       	cpi	r18, 0x05	; 5
+    222c:	31 05       	cpc	r19, r1
+    222e:	54 f4       	brge	.+20     	; 0x2244 <digital_input+0x34>
+    2230:	22 30       	cpi	r18, 0x02	; 2
+    2232:	31 05       	cpc	r19, r1
+    2234:	11 f1       	breq	.+68     	; 0x227a <digital_input+0x6a>
+    2236:	23 30       	cpi	r18, 0x03	; 3
+    2238:	31 05       	cpc	r19, r1
+    223a:	6c f5       	brge	.+90     	; 0x2296 <digital_input+0x86>
+    223c:	21 30       	cpi	r18, 0x01	; 1
+    223e:	31 05       	cpc	r19, r1
+    2240:	61 f4       	brne	.+24     	; 0x225a <digital_input+0x4a>
+    2242:	0e c0       	rjmp	.+28     	; 0x2260 <digital_input+0x50>
+    2244:	26 30       	cpi	r18, 0x06	; 6
+    2246:	31 05       	cpc	r19, r1
+    2248:	09 f4       	brne	.+2      	; 0x224c <digital_input+0x3c>
+    224a:	4f c0       	rjmp	.+158    	; 0x22ea <digital_input+0xda>
+    224c:	26 30       	cpi	r18, 0x06	; 6
+    224e:	31 05       	cpc	r19, r1
+    2250:	f4 f1       	brlt	.+124    	; 0x22ce <digital_input+0xbe>
+    2252:	27 30       	cpi	r18, 0x07	; 7
+    2254:	31 05       	cpc	r19, r1
+    2256:	09 f4       	brne	.+2      	; 0x225a <digital_input+0x4a>
+    2258:	61 c0       	rjmp	.+194    	; 0x231c <digital_input+0x10c>
+    225a:	2f ef       	ldi	r18, 0xFF	; 255
+    225c:	3f ef       	ldi	r19, 0xFF	; 255
+    225e:	77 c0       	rjmp	.+238    	; 0x234e <digital_input+0x13e>
+  case _PORT_A:
+    DDRA &= ~_BV(pin);
+    2260:	8a b3       	in	r24, 0x1a	; 26
+    2262:	04 2e       	mov	r0, r20
+    2264:	02 c0       	rjmp	.+4      	; 0x226a <digital_input+0x5a>
+    2266:	22 0f       	add	r18, r18
+    2268:	33 1f       	adc	r19, r19
+    226a:	0a 94       	dec	r0
+    226c:	e2 f7       	brpl	.-8      	; 0x2266 <digital_input+0x56>
+    226e:	92 2f       	mov	r25, r18
+    2270:	90 95       	com	r25
+    2272:	98 23       	and	r25, r24
+    2274:	9a bb       	out	0x1a, r25	; 26
+    pin_val = PINA;
+    2276:	89 b3       	in	r24, 0x19	; 25
+    2278:	61 c0       	rjmp	.+194    	; 0x233c <digital_input+0x12c>
+    return (pin_val >> pin) & 1;
+  case _PORT_B:
+    DDRB &= ~_BV(pin);
+    227a:	87 b3       	in	r24, 0x17	; 23
+    227c:	21 e0       	ldi	r18, 0x01	; 1
+    227e:	30 e0       	ldi	r19, 0x00	; 0
+    2280:	04 2e       	mov	r0, r20
+    2282:	02 c0       	rjmp	.+4      	; 0x2288 <digital_input+0x78>
+    2284:	22 0f       	add	r18, r18
+    2286:	33 1f       	adc	r19, r19
+    2288:	0a 94       	dec	r0
+    228a:	e2 f7       	brpl	.-8      	; 0x2284 <digital_input+0x74>
+    228c:	20 95       	com	r18
+    228e:	28 23       	and	r18, r24
+    2290:	27 bb       	out	0x17, r18	; 23
+    pin_val = PINB;
+    2292:	86 b3       	in	r24, 0x16	; 22
+    2294:	53 c0       	rjmp	.+166    	; 0x233c <digital_input+0x12c>
+    return (pin_val >> pin) & 1;
+  case _PORT_C:
+    DDRC &= ~_BV(pin);
+    2296:	84 b3       	in	r24, 0x14	; 20
+    2298:	21 e0       	ldi	r18, 0x01	; 1
+    229a:	30 e0       	ldi	r19, 0x00	; 0
+    229c:	04 2e       	mov	r0, r20
+    229e:	02 c0       	rjmp	.+4      	; 0x22a4 <digital_input+0x94>
+    22a0:	22 0f       	add	r18, r18
+    22a2:	33 1f       	adc	r19, r19
+    22a4:	0a 94       	dec	r0
+    22a6:	e2 f7       	brpl	.-8      	; 0x22a0 <digital_input+0x90>
+    22a8:	20 95       	com	r18
+    22aa:	28 23       	and	r18, r24
+    22ac:	24 bb       	out	0x14, r18	; 20
+    pin_val = PINC;
+    22ae:	83 b3       	in	r24, 0x13	; 19
+    22b0:	45 c0       	rjmp	.+138    	; 0x233c <digital_input+0x12c>
+    return (pin_val >> pin) & 1;
+  case _PORT_D:
+    DDRD &= ~_BV(pin);
+    22b2:	81 b3       	in	r24, 0x11	; 17
+    22b4:	21 e0       	ldi	r18, 0x01	; 1
+    22b6:	30 e0       	ldi	r19, 0x00	; 0
+    22b8:	04 2e       	mov	r0, r20
+    22ba:	02 c0       	rjmp	.+4      	; 0x22c0 <digital_input+0xb0>
+    22bc:	22 0f       	add	r18, r18
+    22be:	33 1f       	adc	r19, r19
+    22c0:	0a 94       	dec	r0
+    22c2:	e2 f7       	brpl	.-8      	; 0x22bc <digital_input+0xac>
+    22c4:	20 95       	com	r18
+    22c6:	28 23       	and	r18, r24
+    22c8:	21 bb       	out	0x11, r18	; 17
+    pin_val = PIND;
+    22ca:	80 b3       	in	r24, 0x10	; 16
+    22cc:	37 c0       	rjmp	.+110    	; 0x233c <digital_input+0x12c>
+    return (pin_val >> pin) & 1;
+  case _PORT_E:
+    DDRE &= ~_BV(pin);
+    22ce:	82 b1       	in	r24, 0x02	; 2
+    22d0:	21 e0       	ldi	r18, 0x01	; 1
+    22d2:	30 e0       	ldi	r19, 0x00	; 0
+    22d4:	04 2e       	mov	r0, r20
+    22d6:	02 c0       	rjmp	.+4      	; 0x22dc <digital_input+0xcc>
+    22d8:	22 0f       	add	r18, r18
+    22da:	33 1f       	adc	r19, r19
+    22dc:	0a 94       	dec	r0
+    22de:	e2 f7       	brpl	.-8      	; 0x22d8 <digital_input+0xc8>
+    22e0:	20 95       	com	r18
+    22e2:	28 23       	and	r18, r24
+    22e4:	22 b9       	out	0x02, r18	; 2
+    pin_val = PINE;
+    22e6:	81 b1       	in	r24, 0x01	; 1
+    22e8:	29 c0       	rjmp	.+82     	; 0x233c <digital_input+0x12c>
+    return (pin_val >> pin) & 1;
+  case _PORT_F:
+    if(pin>=4) {
+    22ea:	44 30       	cpi	r20, 0x04	; 4
+    22ec:	51 05       	cpc	r21, r1
+    22ee:	34 f0       	brlt	.+12     	; 0x22fc <digital_input+0xec>
+      MCUSR|=1<<7;
+    22f0:	84 b7       	in	r24, 0x34	; 52
+    22f2:	80 68       	ori	r24, 0x80	; 128
+    22f4:	84 bf       	out	0x34, r24	; 52
+      MCUSR|=1<<7;
+    22f6:	84 b7       	in	r24, 0x34	; 52
+    22f8:	80 68       	ori	r24, 0x80	; 128
+    22fa:	84 bf       	out	0x34, r24	; 52
+    }
+    DDRF &= ~_BV(pin);
+    22fc:	80 91 61 00 	lds	r24, 0x0061
+    2300:	21 e0       	ldi	r18, 0x01	; 1
+    2302:	30 e0       	ldi	r19, 0x00	; 0
+    2304:	04 2e       	mov	r0, r20
+    2306:	02 c0       	rjmp	.+4      	; 0x230c <digital_input+0xfc>
+    2308:	22 0f       	add	r18, r18
+    230a:	33 1f       	adc	r19, r19
+    230c:	0a 94       	dec	r0
+    230e:	e2 f7       	brpl	.-8      	; 0x2308 <digital_input+0xf8>
+    2310:	20 95       	com	r18
+    2312:	28 23       	and	r18, r24
+    2314:	20 93 61 00 	sts	0x0061, r18
+    pin_val = PINF;
+    2318:	80 b1       	in	r24, 0x00	; 0
+    231a:	10 c0       	rjmp	.+32     	; 0x233c <digital_input+0x12c>
+    return (pin_val >> pin) & 1;
+  case _PORT_G:
+    DDRG &= ~_BV(pin);
+    231c:	80 91 64 00 	lds	r24, 0x0064
+    2320:	21 e0       	ldi	r18, 0x01	; 1
+    2322:	30 e0       	ldi	r19, 0x00	; 0
+    2324:	04 2e       	mov	r0, r20
+    2326:	02 c0       	rjmp	.+4      	; 0x232c <digital_input+0x11c>
+    2328:	22 0f       	add	r18, r18
+    232a:	33 1f       	adc	r19, r19
+    232c:	0a 94       	dec	r0
+    232e:	e2 f7       	brpl	.-8      	; 0x2328 <digital_input+0x118>
+    2330:	20 95       	com	r18
+    2332:	28 23       	and	r18, r24
+    2334:	20 93 64 00 	sts	0x0064, r18
+    pin_val = PING;
+    2338:	80 91 63 00 	lds	r24, 0x0063
+    return (pin_val >> pin) & 1;
+    233c:	28 2f       	mov	r18, r24
+    233e:	30 e0       	ldi	r19, 0x00	; 0
+    2340:	02 c0       	rjmp	.+4      	; 0x2346 <digital_input+0x136>
+    2342:	35 95       	asr	r19
+    2344:	27 95       	ror	r18
+    2346:	4a 95       	dec	r20
+    2348:	e2 f7       	brpl	.-8      	; 0x2342 <digital_input+0x132>
+    234a:	21 70       	andi	r18, 0x01	; 1
+    234c:	30 70       	andi	r19, 0x00	; 0
+  default: break;
+  }
+  
+  return -1;
+}
+    234e:	c9 01       	movw	r24, r18
+    2350:	08 95       	ret
+
+00002352 <digital_pull_up>:
+ *
+ * @param portpin the pin to enable pullup on. See the general description
+ * for a discussion of portpins.
+ **/
+void digital_pull_up(int portpin) {
+  int pins = portpin & 0x07;
+    2352:	ac 01       	movw	r20, r24
+    2354:	47 70       	andi	r20, 0x07	; 7
+    2356:	50 70       	andi	r21, 0x00	; 0
+
+  switch(portpin >> 3) {
+    2358:	9c 01       	movw	r18, r24
+    235a:	93 e0       	ldi	r25, 0x03	; 3
+    235c:	35 95       	asr	r19
+    235e:	27 95       	ror	r18
+    2360:	9a 95       	dec	r25
+    2362:	e1 f7       	brne	.-8      	; 0x235c <digital_pull_up+0xa>
+    2364:	24 30       	cpi	r18, 0x04	; 4
+    2366:	31 05       	cpc	r19, r1
+    2368:	c9 f1       	breq	.+114    	; 0x23dc <digital_pull_up+0x8a>
+    236a:	25 30       	cpi	r18, 0x05	; 5
+    236c:	31 05       	cpc	r19, r1
+    236e:	5c f4       	brge	.+22     	; 0x2386 <digital_pull_up+0x34>
+    2370:	22 30       	cpi	r18, 0x02	; 2
+    2372:	31 05       	cpc	r19, r1
+    2374:	e9 f0       	breq	.+58     	; 0x23b0 <digital_pull_up+0x5e>
+    2376:	23 30       	cpi	r18, 0x03	; 3
+    2378:	31 05       	cpc	r19, r1
+    237a:	2c f5       	brge	.+74     	; 0x23c6 <digital_pull_up+0x74>
+    237c:	21 30       	cpi	r18, 0x01	; 1
+    237e:	31 05       	cpc	r19, r1
+    2380:	09 f0       	breq	.+2      	; 0x2384 <digital_pull_up+0x32>
+    2382:	5b c0       	rjmp	.+182    	; 0x243a <digital_pull_up+0xe8>
+    2384:	0c c0       	rjmp	.+24     	; 0x239e <digital_pull_up+0x4c>
+    2386:	26 30       	cpi	r18, 0x06	; 6
+    2388:	31 05       	cpc	r19, r1
+    238a:	09 f4       	brne	.+2      	; 0x238e <digital_pull_up+0x3c>
+    238c:	3d c0       	rjmp	.+122    	; 0x2408 <digital_pull_up+0xb6>
+    238e:	26 30       	cpi	r18, 0x06	; 6
+    2390:	31 05       	cpc	r19, r1
+    2392:	7c f1       	brlt	.+94     	; 0x23f2 <digital_pull_up+0xa0>
+    2394:	27 30       	cpi	r18, 0x07	; 7
+    2396:	31 05       	cpc	r19, r1
+    2398:	09 f0       	breq	.+2      	; 0x239c <digital_pull_up+0x4a>
+    239a:	4f c0       	rjmp	.+158    	; 0x243a <digital_pull_up+0xe8>
+    239c:	42 c0       	rjmp	.+132    	; 0x2422 <digital_pull_up+0xd0>
+  case _PORT_A:
+    PORTA |= _BV(pins);
+    239e:	8b b3       	in	r24, 0x1b	; 27
+    23a0:	02 c0       	rjmp	.+4      	; 0x23a6 <digital_pull_up+0x54>
+    23a2:	22 0f       	add	r18, r18
+    23a4:	33 1f       	adc	r19, r19
+    23a6:	4a 95       	dec	r20
+    23a8:	e2 f7       	brpl	.-8      	; 0x23a2 <digital_pull_up+0x50>
+    23aa:	82 2b       	or	r24, r18
+    23ac:	8b bb       	out	0x1b, r24	; 27
+    23ae:	08 95       	ret
+    break;
+  case _PORT_B:
+    PORTB |= _BV(pins);
+    23b0:	28 b3       	in	r18, 0x18	; 24
+    23b2:	81 e0       	ldi	r24, 0x01	; 1
+    23b4:	90 e0       	ldi	r25, 0x00	; 0
+    23b6:	02 c0       	rjmp	.+4      	; 0x23bc <digital_pull_up+0x6a>
+    23b8:	88 0f       	add	r24, r24
+    23ba:	99 1f       	adc	r25, r25
+    23bc:	4a 95       	dec	r20
+    23be:	e2 f7       	brpl	.-8      	; 0x23b8 <digital_pull_up+0x66>
+    23c0:	28 2b       	or	r18, r24
+    23c2:	28 bb       	out	0x18, r18	; 24
+    23c4:	08 95       	ret
+    break;    
+  case _PORT_C:
+    PORTC |= _BV(pins);
+    23c6:	25 b3       	in	r18, 0x15	; 21
+    23c8:	81 e0       	ldi	r24, 0x01	; 1
+    23ca:	90 e0       	ldi	r25, 0x00	; 0
+    23cc:	02 c0       	rjmp	.+4      	; 0x23d2 <digital_pull_up+0x80>
+    23ce:	88 0f       	add	r24, r24
+    23d0:	99 1f       	adc	r25, r25
+    23d2:	4a 95       	dec	r20
+    23d4:	e2 f7       	brpl	.-8      	; 0x23ce <digital_pull_up+0x7c>
+    23d6:	28 2b       	or	r18, r24
+    23d8:	25 bb       	out	0x15, r18	; 21
+    23da:	08 95       	ret
+    break;    
+  case _PORT_D:
+    PORTD |= _BV(pins);
+    23dc:	22 b3       	in	r18, 0x12	; 18
+    23de:	81 e0       	ldi	r24, 0x01	; 1
+    23e0:	90 e0       	ldi	r25, 0x00	; 0
+    23e2:	02 c0       	rjmp	.+4      	; 0x23e8 <digital_pull_up+0x96>
+    23e4:	88 0f       	add	r24, r24
+    23e6:	99 1f       	adc	r25, r25
+    23e8:	4a 95       	dec	r20
+    23ea:	e2 f7       	brpl	.-8      	; 0x23e4 <digital_pull_up+0x92>
+    23ec:	28 2b       	or	r18, r24
+    23ee:	22 bb       	out	0x12, r18	; 18
+    23f0:	08 95       	ret
+    break;    
+  case _PORT_E:
+    PORTE |= _BV(pins);
+    23f2:	23 b1       	in	r18, 0x03	; 3
+    23f4:	81 e0       	ldi	r24, 0x01	; 1
+    23f6:	90 e0       	ldi	r25, 0x00	; 0
+    23f8:	02 c0       	rjmp	.+4      	; 0x23fe <digital_pull_up+0xac>
+    23fa:	88 0f       	add	r24, r24
+    23fc:	99 1f       	adc	r25, r25
+    23fe:	4a 95       	dec	r20
+    2400:	e2 f7       	brpl	.-8      	; 0x23fa <digital_pull_up+0xa8>
+    2402:	28 2b       	or	r18, r24
+    2404:	23 b9       	out	0x03, r18	; 3
+    2406:	08 95       	ret
+    break;    
+  case _PORT_F:
+    PORTF |= _BV(pins);
+    2408:	20 91 62 00 	lds	r18, 0x0062
+    240c:	81 e0       	ldi	r24, 0x01	; 1
+    240e:	90 e0       	ldi	r25, 0x00	; 0
+    2410:	02 c0       	rjmp	.+4      	; 0x2416 <digital_pull_up+0xc4>
+    2412:	88 0f       	add	r24, r24
+    2414:	99 1f       	adc	r25, r25
+    2416:	4a 95       	dec	r20
+    2418:	e2 f7       	brpl	.-8      	; 0x2412 <digital_pull_up+0xc0>
+    241a:	28 2b       	or	r18, r24
+    241c:	20 93 62 00 	sts	0x0062, r18
+    2420:	08 95       	ret
+    break;    
+  case _PORT_G:
+    PORTG |= _BV(pins);
+    2422:	20 91 65 00 	lds	r18, 0x0065
+    2426:	81 e0       	ldi	r24, 0x01	; 1
+    2428:	90 e0       	ldi	r25, 0x00	; 0
+    242a:	02 c0       	rjmp	.+4      	; 0x2430 <digital_pull_up+0xde>
+    242c:	88 0f       	add	r24, r24
+    242e:	99 1f       	adc	r25, r25
+    2430:	4a 95       	dec	r20
+    2432:	e2 f7       	brpl	.-8      	; 0x242c <digital_pull_up+0xda>
+    2434:	28 2b       	or	r18, r24
+    2436:	20 93 65 00 	sts	0x0065, r18
+    243a:	08 95       	ret
+
+0000243c <digital_output>:
+ *
+ * @param val the value to set the portpin to. 0 for off,
+ * nonzero for on.
+ **/
+void digital_output(int portpin, int val) {
+  int pins = portpin & 0x07;
+    243c:	ac 01       	movw	r20, r24
+    243e:	47 70       	andi	r20, 0x07	; 7
+    2440:	50 70       	andi	r21, 0x00	; 0
+    2442:	9c 01       	movw	r18, r24
+    2444:	53 e0       	ldi	r21, 0x03	; 3
+    2446:	35 95       	asr	r19
+    2448:	27 95       	ror	r18
+    244a:	5a 95       	dec	r21
+    244c:	e1 f7       	brne	.-8      	; 0x2446 <digital_output+0xa>
+  
+  /* if you want to set to 0... */
+  if(val == 0) {
+    244e:	67 2b       	or	r22, r23
+    2450:	09 f0       	breq	.+2      	; 0x2454 <digital_output+0x18>
+    2452:	88 c0       	rjmp	.+272    	; 0x2564 <digital_output+0x128>
+    switch(portpin >> 3) {
+    2454:	24 30       	cpi	r18, 0x04	; 4
+    2456:	31 05       	cpc	r19, r1
+    2458:	09 f4       	brne	.+2      	; 0x245c <digital_output+0x20>
+    245a:	44 c0       	rjmp	.+136    	; 0x24e4 <digital_output+0xa8>
+    245c:	25 30       	cpi	r18, 0x05	; 5
+    245e:	31 05       	cpc	r19, r1
+    2460:	5c f4       	brge	.+22     	; 0x2478 <digital_output+0x3c>
+    2462:	22 30       	cpi	r18, 0x02	; 2
+    2464:	31 05       	cpc	r19, r1
+    2466:	11 f1       	breq	.+68     	; 0x24ac <digital_output+0x70>
+    2468:	23 30       	cpi	r18, 0x03	; 3
+    246a:	31 05       	cpc	r19, r1
+    246c:	6c f5       	brge	.+90     	; 0x24c8 <digital_output+0x8c>
+    246e:	21 30       	cpi	r18, 0x01	; 1
+    2470:	31 05       	cpc	r19, r1
+    2472:	09 f0       	breq	.+2      	; 0x2476 <digital_output+0x3a>
+    2474:	fe c0       	rjmp	.+508    	; 0x2672 <digital_output+0x236>
+    2476:	0d c0       	rjmp	.+26     	; 0x2492 <digital_output+0x56>
+    2478:	26 30       	cpi	r18, 0x06	; 6
+    247a:	31 05       	cpc	r19, r1
+    247c:	09 f4       	brne	.+2      	; 0x2480 <digital_output+0x44>
+    247e:	4e c0       	rjmp	.+156    	; 0x251c <digital_output+0xe0>
+    2480:	26 30       	cpi	r18, 0x06	; 6
+    2482:	31 05       	cpc	r19, r1
+    2484:	0c f4       	brge	.+2      	; 0x2488 <digital_output+0x4c>
+    2486:	3c c0       	rjmp	.+120    	; 0x2500 <digital_output+0xc4>
+    2488:	27 30       	cpi	r18, 0x07	; 7
+    248a:	31 05       	cpc	r19, r1
+    248c:	09 f0       	breq	.+2      	; 0x2490 <digital_output+0x54>
+    248e:	f1 c0       	rjmp	.+482    	; 0x2672 <digital_output+0x236>
+    2490:	56 c0       	rjmp	.+172    	; 0x253e <digital_output+0x102>
+    case _PORT_A:
+      DDRA |= _BV(pins);
+    2492:	8a b3       	in	r24, 0x1a	; 26
+    2494:	02 c0       	rjmp	.+4      	; 0x249a <digital_output+0x5e>
+    2496:	22 0f       	add	r18, r18
+    2498:	33 1f       	adc	r19, r19
+    249a:	4a 95       	dec	r20
+    249c:	e2 f7       	brpl	.-8      	; 0x2496 <digital_output+0x5a>
+    249e:	82 2b       	or	r24, r18
+    24a0:	8a bb       	out	0x1a, r24	; 26
+      PORTA &= (0XFF - _BV(pins));
+    24a2:	8b b3       	in	r24, 0x1b	; 27
+    24a4:	20 95       	com	r18
+    24a6:	28 23       	and	r18, r24
+    24a8:	2b bb       	out	0x1b, r18	; 27
+    24aa:	08 95       	ret
+      break;
+    case _PORT_B:
+      DDRB |= _BV(pins);
+    24ac:	87 b3       	in	r24, 0x17	; 23
+    24ae:	21 e0       	ldi	r18, 0x01	; 1
+    24b0:	30 e0       	ldi	r19, 0x00	; 0
+    24b2:	02 c0       	rjmp	.+4      	; 0x24b8 <digital_output+0x7c>
+    24b4:	22 0f       	add	r18, r18
+    24b6:	33 1f       	adc	r19, r19
+    24b8:	4a 95       	dec	r20
+    24ba:	e2 f7       	brpl	.-8      	; 0x24b4 <digital_output+0x78>
+    24bc:	82 2b       	or	r24, r18
+    24be:	87 bb       	out	0x17, r24	; 23
+      PORTB &= (0XFF - _BV(pins));
+    24c0:	88 b3       	in	r24, 0x18	; 24
+    24c2:	20 95       	com	r18
+    24c4:	28 23       	and	r18, r24
+    24c6:	86 c0       	rjmp	.+268    	; 0x25d4 <digital_output+0x198>
+      break;    
+    case _PORT_C:
+      DDRC |= _BV(pins);
+    24c8:	84 b3       	in	r24, 0x14	; 20
+    24ca:	21 e0       	ldi	r18, 0x01	; 1
+    24cc:	30 e0       	ldi	r19, 0x00	; 0
+    24ce:	02 c0       	rjmp	.+4      	; 0x24d4 <digital_output+0x98>
+    24d0:	22 0f       	add	r18, r18
+    24d2:	33 1f       	adc	r19, r19
+    24d4:	4a 95       	dec	r20
+    24d6:	e2 f7       	brpl	.-8      	; 0x24d0 <digital_output+0x94>
+    24d8:	82 2b       	or	r24, r18
+    24da:	84 bb       	out	0x14, r24	; 20
+      PORTC &= (0XFF - _BV(pins));
+    24dc:	85 b3       	in	r24, 0x15	; 21
+    24de:	20 95       	com	r18
+    24e0:	28 23       	and	r18, r24
+    24e2:	86 c0       	rjmp	.+268    	; 0x25f0 <digital_output+0x1b4>
+      break;    
+    case _PORT_D:
+      DDRD |= _BV(pins);
+    24e4:	81 b3       	in	r24, 0x11	; 17
+    24e6:	21 e0       	ldi	r18, 0x01	; 1
+    24e8:	30 e0       	ldi	r19, 0x00	; 0
+    24ea:	02 c0       	rjmp	.+4      	; 0x24f0 <digital_output+0xb4>
+    24ec:	22 0f       	add	r18, r18
+    24ee:	33 1f       	adc	r19, r19
+    24f0:	4a 95       	dec	r20
+    24f2:	e2 f7       	brpl	.-8      	; 0x24ec <digital_output+0xb0>
+    24f4:	82 2b       	or	r24, r18
+    24f6:	81 bb       	out	0x11, r24	; 17
+      PORTD &= (0XFF - _BV(pins));
+    24f8:	82 b3       	in	r24, 0x12	; 18
+    24fa:	20 95       	com	r18
+    24fc:	28 23       	and	r18, r24
+    24fe:	86 c0       	rjmp	.+268    	; 0x260c <digital_output+0x1d0>
+      break;    
+    case _PORT_E:
+      DDRE |= _BV(pins);
+    2500:	82 b1       	in	r24, 0x02	; 2
+    2502:	21 e0       	ldi	r18, 0x01	; 1
+    2504:	30 e0       	ldi	r19, 0x00	; 0
+    2506:	02 c0       	rjmp	.+4      	; 0x250c <digital_output+0xd0>
+    2508:	22 0f       	add	r18, r18
+    250a:	33 1f       	adc	r19, r19
+    250c:	4a 95       	dec	r20
+    250e:	e2 f7       	brpl	.-8      	; 0x2508 <digital_output+0xcc>
+    2510:	82 2b       	or	r24, r18
+    2512:	82 b9       	out	0x02, r24	; 2
+      PORTE &= (0XFF - _BV(pins));
+    2514:	83 b1       	in	r24, 0x03	; 3
+    2516:	20 95       	com	r18
+    2518:	28 23       	and	r18, r24
+    251a:	86 c0       	rjmp	.+268    	; 0x2628 <digital_output+0x1ec>
+      break;    
+    case _PORT_F:
+      DDRF |= _BV(pins);
+    251c:	80 91 61 00 	lds	r24, 0x0061
+    2520:	21 e0       	ldi	r18, 0x01	; 1
+    2522:	30 e0       	ldi	r19, 0x00	; 0
+    2524:	02 c0       	rjmp	.+4      	; 0x252a <digital_output+0xee>
+    2526:	22 0f       	add	r18, r18
+    2528:	33 1f       	adc	r19, r19
+    252a:	4a 95       	dec	r20
+    252c:	e2 f7       	brpl	.-8      	; 0x2526 <digital_output+0xea>
+    252e:	82 2b       	or	r24, r18
+    2530:	80 93 61 00 	sts	0x0061, r24
+      PORTF &= (0XFF - _BV(pins));
+    2534:	80 91 62 00 	lds	r24, 0x0062
+    2538:	20 95       	com	r18
+    253a:	28 23       	and	r18, r24
+    253c:	86 c0       	rjmp	.+268    	; 0x264a <digital_output+0x20e>
+      break;    
+    case _PORT_G:
+      DDRG |= _BV(pins);
+    253e:	80 91 64 00 	lds	r24, 0x0064
+    2542:	21 e0       	ldi	r18, 0x01	; 1
+    2544:	30 e0       	ldi	r19, 0x00	; 0
+    2546:	02 c0       	rjmp	.+4      	; 0x254c <digital_output+0x110>
+    2548:	22 0f       	add	r18, r18
+    254a:	33 1f       	adc	r19, r19
+    254c:	4a 95       	dec	r20
+    254e:	e2 f7       	brpl	.-8      	; 0x2548 <digital_output+0x10c>
+    2550:	82 2b       	or	r24, r18
+    2552:	80 93 64 00 	sts	0x0064, r24
+      PORTG &= (0XFF - _BV(pins));
+    2556:	80 91 65 00 	lds	r24, 0x0065
+    255a:	20 95       	com	r18
+    255c:	28 23       	and	r18, r24
+    255e:	20 93 65 00 	sts	0x0065, r18
+    2562:	08 95       	ret
+      break;
+    }
+  } else { /* ( val == 1) */ 
+    switch(portpin >> 3) {
+    2564:	24 30       	cpi	r18, 0x04	; 4
+    2566:	31 05       	cpc	r19, r1
+    2568:	09 f4       	brne	.+2      	; 0x256c <digital_output+0x130>
+    256a:	44 c0       	rjmp	.+136    	; 0x25f4 <digital_output+0x1b8>
+    256c:	25 30       	cpi	r18, 0x05	; 5
+    256e:	31 05       	cpc	r19, r1
+    2570:	5c f4       	brge	.+22     	; 0x2588 <digital_output+0x14c>
+    2572:	22 30       	cpi	r18, 0x02	; 2
+    2574:	31 05       	cpc	r19, r1
+    2576:	11 f1       	breq	.+68     	; 0x25bc <digital_output+0x180>
+    2578:	23 30       	cpi	r18, 0x03	; 3
+    257a:	31 05       	cpc	r19, r1
+    257c:	6c f5       	brge	.+90     	; 0x25d8 <digital_output+0x19c>
+    257e:	21 30       	cpi	r18, 0x01	; 1
+    2580:	31 05       	cpc	r19, r1
+    2582:	09 f0       	breq	.+2      	; 0x2586 <digital_output+0x14a>
+    2584:	76 c0       	rjmp	.+236    	; 0x2672 <digital_output+0x236>
+    2586:	0d c0       	rjmp	.+26     	; 0x25a2 <digital_output+0x166>
+    2588:	26 30       	cpi	r18, 0x06	; 6
+    258a:	31 05       	cpc	r19, r1
+    258c:	09 f4       	brne	.+2      	; 0x2590 <digital_output+0x154>
+    258e:	4e c0       	rjmp	.+156    	; 0x262c <digital_output+0x1f0>
+    2590:	26 30       	cpi	r18, 0x06	; 6
+    2592:	31 05       	cpc	r19, r1
+    2594:	0c f4       	brge	.+2      	; 0x2598 <digital_output+0x15c>
+    2596:	3c c0       	rjmp	.+120    	; 0x2610 <digital_output+0x1d4>
+    2598:	27 30       	cpi	r18, 0x07	; 7
+    259a:	31 05       	cpc	r19, r1
+    259c:	09 f0       	breq	.+2      	; 0x25a0 <digital_output+0x164>
+    259e:	69 c0       	rjmp	.+210    	; 0x2672 <digital_output+0x236>
+    25a0:	57 c0       	rjmp	.+174    	; 0x2650 <digital_output+0x214>
+    case _PORT_A:
+      DDRA |= _BV(pins);
+    25a2:	8a b3       	in	r24, 0x1a	; 26
+    25a4:	02 c0       	rjmp	.+4      	; 0x25aa <digital_output+0x16e>
+    25a6:	22 0f       	add	r18, r18
+    25a8:	33 1f       	adc	r19, r19
+    25aa:	4a 95       	dec	r20
+    25ac:	e2 f7       	brpl	.-8      	; 0x25a6 <digital_output+0x16a>
+    25ae:	92 2f       	mov	r25, r18
+    25b0:	82 2b       	or	r24, r18
+    25b2:	8a bb       	out	0x1a, r24	; 26
+      PORTA |= _BV(pins);
+    25b4:	8b b3       	in	r24, 0x1b	; 27
+    25b6:	98 2b       	or	r25, r24
+    25b8:	9b bb       	out	0x1b, r25	; 27
+    25ba:	08 95       	ret
+      break;
+    case _PORT_B:
+      DDRB |= _BV(pins);
+    25bc:	87 b3       	in	r24, 0x17	; 23
+    25be:	21 e0       	ldi	r18, 0x01	; 1
+    25c0:	30 e0       	ldi	r19, 0x00	; 0
+    25c2:	02 c0       	rjmp	.+4      	; 0x25c8 <digital_output+0x18c>
+    25c4:	22 0f       	add	r18, r18
+    25c6:	33 1f       	adc	r19, r19
+    25c8:	4a 95       	dec	r20
+    25ca:	e2 f7       	brpl	.-8      	; 0x25c4 <digital_output+0x188>
+    25cc:	82 2b       	or	r24, r18
+    25ce:	87 bb       	out	0x17, r24	; 23
+      PORTB |= _BV(pins);
+    25d0:	88 b3       	in	r24, 0x18	; 24
+    25d2:	28 2b       	or	r18, r24
+    25d4:	28 bb       	out	0x18, r18	; 24
+    25d6:	08 95       	ret
+      break;    
+    case _PORT_C:
+      DDRC |= _BV(pins);
+    25d8:	84 b3       	in	r24, 0x14	; 20
+    25da:	21 e0       	ldi	r18, 0x01	; 1
+    25dc:	30 e0       	ldi	r19, 0x00	; 0
+    25de:	02 c0       	rjmp	.+4      	; 0x25e4 <digital_output+0x1a8>
+    25e0:	22 0f       	add	r18, r18
+    25e2:	33 1f       	adc	r19, r19
+    25e4:	4a 95       	dec	r20
+    25e6:	e2 f7       	brpl	.-8      	; 0x25e0 <digital_output+0x1a4>
+    25e8:	82 2b       	or	r24, r18
+    25ea:	84 bb       	out	0x14, r24	; 20
+      PORTC |= _BV(pins);
+    25ec:	85 b3       	in	r24, 0x15	; 21
+    25ee:	28 2b       	or	r18, r24
+    25f0:	25 bb       	out	0x15, r18	; 21
+    25f2:	08 95       	ret
+      break;    
+    case _PORT_D:
+      DDRD |= _BV(pins);
+    25f4:	81 b3       	in	r24, 0x11	; 17
+    25f6:	21 e0       	ldi	r18, 0x01	; 1
+    25f8:	30 e0       	ldi	r19, 0x00	; 0
+    25fa:	02 c0       	rjmp	.+4      	; 0x2600 <digital_output+0x1c4>
+    25fc:	22 0f       	add	r18, r18
+    25fe:	33 1f       	adc	r19, r19
+    2600:	4a 95       	dec	r20
+    2602:	e2 f7       	brpl	.-8      	; 0x25fc <digital_output+0x1c0>
+    2604:	82 2b       	or	r24, r18
+    2606:	81 bb       	out	0x11, r24	; 17
+      PORTD |= _BV(pins);
+    2608:	82 b3       	in	r24, 0x12	; 18
+    260a:	28 2b       	or	r18, r24
+    260c:	22 bb       	out	0x12, r18	; 18
+    260e:	08 95       	ret
+      break;    
+    case _PORT_E:
+      DDRE |= _BV(pins);
+    2610:	82 b1       	in	r24, 0x02	; 2
+    2612:	21 e0       	ldi	r18, 0x01	; 1
+    2614:	30 e0       	ldi	r19, 0x00	; 0
+    2616:	02 c0       	rjmp	.+4      	; 0x261c <digital_output+0x1e0>
+    2618:	22 0f       	add	r18, r18
+    261a:	33 1f       	adc	r19, r19
+    261c:	4a 95       	dec	r20
+    261e:	e2 f7       	brpl	.-8      	; 0x2618 <digital_output+0x1dc>
+    2620:	82 2b       	or	r24, r18
+    2622:	82 b9       	out	0x02, r24	; 2
+      PORTE |= _BV(pins);
+    2624:	83 b1       	in	r24, 0x03	; 3
+    2626:	28 2b       	or	r18, r24
+    2628:	23 b9       	out	0x03, r18	; 3
+    262a:	08 95       	ret
+      break;    
+    case _PORT_F:
+      DDRF |= _BV(pins);
+    262c:	80 91 61 00 	lds	r24, 0x0061
+    2630:	21 e0       	ldi	r18, 0x01	; 1
+    2632:	30 e0       	ldi	r19, 0x00	; 0
+    2634:	02 c0       	rjmp	.+4      	; 0x263a <digital_output+0x1fe>
+    2636:	22 0f       	add	r18, r18
+    2638:	33 1f       	adc	r19, r19
+    263a:	4a 95       	dec	r20
+    263c:	e2 f7       	brpl	.-8      	; 0x2636 <digital_output+0x1fa>
+    263e:	82 2b       	or	r24, r18
+    2640:	80 93 61 00 	sts	0x0061, r24
+      PORTF |= _BV(pins);
+    2644:	80 91 62 00 	lds	r24, 0x0062
+    2648:	28 2b       	or	r18, r24
+    264a:	20 93 62 00 	sts	0x0062, r18
+    264e:	08 95       	ret
+      break;    
+    case _PORT_G:
+      DDRG |= _BV(pins);
+    2650:	80 91 64 00 	lds	r24, 0x0064
+    2654:	21 e0       	ldi	r18, 0x01	; 1
+    2656:	30 e0       	ldi	r19, 0x00	; 0
+    2658:	02 c0       	rjmp	.+4      	; 0x265e <digital_output+0x222>
+    265a:	22 0f       	add	r18, r18
+    265c:	33 1f       	adc	r19, r19
+    265e:	4a 95       	dec	r20
+    2660:	e2 f7       	brpl	.-8      	; 0x265a <digital_output+0x21e>
+    2662:	82 2b       	or	r24, r18
+    2664:	80 93 64 00 	sts	0x0064, r24
+      PORTG |= _BV(pins);
+    2668:	80 91 65 00 	lds	r24, 0x0065
+    266c:	28 2b       	or	r18, r24
+    266e:	20 93 65 00 	sts	0x0065, r18
+    2672:	08 95       	ret
+
+00002674 <button1_read>:
+ *
+ * @see button1_wait, button1_click
+ **/
+int button1_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING0);
+    2674:	e4 e6       	ldi	r30, 0x64	; 100
+    2676:	f0 e0       	ldi	r31, 0x00	; 0
+    2678:	80 81       	ld	r24, Z
+    267a:	8e 7f       	andi	r24, 0xFE	; 254
+    267c:	80 83       	st	Z, r24
+  PORTG|= _BV(PING0);
+    267e:	e5 e6       	ldi	r30, 0x65	; 101
+    2680:	f0 e0       	ldi	r31, 0x00	; 0
+    2682:	80 81       	ld	r24, Z
+    2684:	81 60       	ori	r24, 0x01	; 1
+    2686:	80 83       	st	Z, r24
+  pin_val = PING;
+    2688:	20 91 63 00 	lds	r18, 0x0063
+    268c:	30 e0       	ldi	r19, 0x00	; 0
+    268e:	20 95       	com	r18
+    2690:	30 95       	com	r19
+    2692:	21 70       	andi	r18, 0x01	; 1
+    2694:	30 70       	andi	r19, 0x00	; 0
+  return !((pin_val & _BV(PING0)));
+}
+    2696:	c9 01       	movw	r24, r18
+    2698:	08 95       	ret
+
+0000269a <button1_click>:
+ *
+ * @see button1_wait, button1_click
+ **/
+int button1_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING0);
+    269a:	80 91 64 00 	lds	r24, 0x0064
+    269e:	8e 7f       	andi	r24, 0xFE	; 254
+    26a0:	80 93 64 00 	sts	0x0064, r24
+  PORTG|= _BV(PING0);
+    26a4:	80 91 65 00 	lds	r24, 0x0065
+    26a8:	81 60       	ori	r24, 0x01	; 1
+    26aa:	80 93 65 00 	sts	0x0065, r24
+  pin_val = PING;
+    26ae:	80 91 63 00 	lds	r24, 0x0063
+ * @return 1 if button1 has been pressed, 0 otherwise
+ *
+ * @see button1_read, button1_wait
+ **/
+int button1_click() {
+  if(button1_read()) {
+    26b2:	80 ff       	sbrs	r24, 0
+    26b4:	03 c0       	rjmp	.+6      	; 0x26bc <button1_click+0x22>
+    26b6:	20 e0       	ldi	r18, 0x00	; 0
+    26b8:	30 e0       	ldi	r19, 0x00	; 0
+    26ba:	10 c0       	rjmp	.+32     	; 0x26dc <button1_click+0x42>
+ *
+ * @see button1_wait, button1_click
+ **/
+int button1_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING0);
+    26bc:	80 91 64 00 	lds	r24, 0x0064
+    26c0:	8e 7f       	andi	r24, 0xFE	; 254
+    26c2:	80 93 64 00 	sts	0x0064, r24
+  PORTG|= _BV(PING0);
+    26c6:	80 91 65 00 	lds	r24, 0x0065
+    26ca:	81 60       	ori	r24, 0x01	; 1
+    26cc:	80 93 65 00 	sts	0x0065, r24
+  pin_val = PING;
+    26d0:	80 91 63 00 	lds	r24, 0x0063
+ *
+ * @see button1_read, button1_wait
+ **/
+int button1_click() {
+  if(button1_read()) {
+    while(button1_read());
+    26d4:	80 ff       	sbrs	r24, 0
+    26d6:	f2 cf       	rjmp	.-28     	; 0x26bc <button1_click+0x22>
+    26d8:	21 e0       	ldi	r18, 0x01	; 1
+    26da:	30 e0       	ldi	r19, 0x00	; 0
+    return 1;
+  } else {
+    return 0;
+  }
+}
+    26dc:	c9 01       	movw	r24, r18
+    26de:	08 95       	ret
+
+000026e0 <button2_read>:
+ *
+ * @see button2_wait, button2_click
+ **/
+int button2_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING1);
+    26e0:	e4 e6       	ldi	r30, 0x64	; 100
+    26e2:	f0 e0       	ldi	r31, 0x00	; 0
+    26e4:	80 81       	ld	r24, Z
+    26e6:	8d 7f       	andi	r24, 0xFD	; 253
+    26e8:	80 83       	st	Z, r24
+  PORTG|= _BV(PING1);
+    26ea:	e5 e6       	ldi	r30, 0x65	; 101
+    26ec:	f0 e0       	ldi	r31, 0x00	; 0
+    26ee:	80 81       	ld	r24, Z
+    26f0:	82 60       	ori	r24, 0x02	; 2
+    26f2:	80 83       	st	Z, r24
+  pin_val = PING;
+    26f4:	20 91 63 00 	lds	r18, 0x0063
+    26f8:	30 e0       	ldi	r19, 0x00	; 0
+    26fa:	36 95       	lsr	r19
+    26fc:	27 95       	ror	r18
+    26fe:	20 95       	com	r18
+    2700:	30 95       	com	r19
+    2702:	21 70       	andi	r18, 0x01	; 1
+    2704:	30 70       	andi	r19, 0x00	; 0
+  return !((pin_val & _BV(PING1)));
+}
+    2706:	c9 01       	movw	r24, r18
+    2708:	08 95       	ret
+
+0000270a <button2_click>:
+ *
+ * @see button2_wait, button2_click
+ **/
+int button2_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING1);
+    270a:	80 91 64 00 	lds	r24, 0x0064
+    270e:	8d 7f       	andi	r24, 0xFD	; 253
+    2710:	80 93 64 00 	sts	0x0064, r24
+  PORTG|= _BV(PING1);
+    2714:	80 91 65 00 	lds	r24, 0x0065
+    2718:	82 60       	ori	r24, 0x02	; 2
+    271a:	80 93 65 00 	sts	0x0065, r24
+  pin_val = PING;
+    271e:	80 91 63 00 	lds	r24, 0x0063
+ * @return 1 if button2 has been pressed, 0 otherwise
+ *
+ * @see button2_read, button2_wait
+ **/
+int button2_click() {
+  if(button2_read()) {
+    2722:	81 ff       	sbrs	r24, 1
+    2724:	03 c0       	rjmp	.+6      	; 0x272c <button2_click+0x22>
+    2726:	20 e0       	ldi	r18, 0x00	; 0
+    2728:	30 e0       	ldi	r19, 0x00	; 0
+    272a:	10 c0       	rjmp	.+32     	; 0x274c <button2_click+0x42>
+ *
+ * @see button2_wait, button2_click
+ **/
+int button2_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING1);
+    272c:	80 91 64 00 	lds	r24, 0x0064
+    2730:	8d 7f       	andi	r24, 0xFD	; 253
+    2732:	80 93 64 00 	sts	0x0064, r24
+  PORTG|= _BV(PING1);
+    2736:	80 91 65 00 	lds	r24, 0x0065
+    273a:	82 60       	ori	r24, 0x02	; 2
+    273c:	80 93 65 00 	sts	0x0065, r24
+  pin_val = PING;
+    2740:	80 91 63 00 	lds	r24, 0x0063
+ *
+ * @see button2_read, button2_wait
+ **/
+int button2_click() {
+  if(button2_read()) {
+    while(button2_read());
+    2744:	81 ff       	sbrs	r24, 1
+    2746:	f2 cf       	rjmp	.-28     	; 0x272c <button2_click+0x22>
+    2748:	21 e0       	ldi	r18, 0x01	; 1
+    274a:	30 e0       	ldi	r19, 0x00	; 0
+    return 1;
+  } else {
+    return 0;
+  }
+}
+    274c:	c9 01       	movw	r24, r18
+    274e:	08 95       	ret
+
+00002750 <button2_wait>:
+/**
+ * Delays execution until button2 is pressed.
+ *
+ * @see button2_read, button2_click
+ **/
+void button2_wait( void ) {
+    2750:	04 c0       	rjmp	.+8      	; 0x275a <button2_wait+0xa>
+  while(!button2_read()){
+    delay_ms(15);
+    2752:	8f e0       	ldi	r24, 0x0F	; 15
+    2754:	90 e0       	ldi	r25, 0x00	; 0
+    2756:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+ *
+ * @see button2_wait, button2_click
+ **/
+int button2_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING1);
+    275a:	80 91 64 00 	lds	r24, 0x0064
+    275e:	8d 7f       	andi	r24, 0xFD	; 253
+    2760:	80 93 64 00 	sts	0x0064, r24
+  PORTG|= _BV(PING1);
+    2764:	80 91 65 00 	lds	r24, 0x0065
+    2768:	82 60       	ori	r24, 0x02	; 2
+    276a:	80 93 65 00 	sts	0x0065, r24
+  pin_val = PING;
+    276e:	80 91 63 00 	lds	r24, 0x0063
+ * Delays execution until button2 is pressed.
+ *
+ * @see button2_read, button2_click
+ **/
+void button2_wait( void ) {
+  while(!button2_read()){
+    2772:	81 fd       	sbrc	r24, 1
+    2774:	ee cf       	rjmp	.-36     	; 0x2752 <button2_wait+0x2>
+    delay_ms(15);
+  }
+}
+    2776:	08 95       	ret
+
+00002778 <button1_wait>:
+/**
+ * Delays execution until button1 is pressed.
+ *
+ * @see button1_read, button1_click
+ **/
+void button1_wait( void ) {
+    2778:	04 c0       	rjmp	.+8      	; 0x2782 <button1_wait+0xa>
+  while(!button1_read() ) {
+    delay_ms(15);
+    277a:	8f e0       	ldi	r24, 0x0F	; 15
+    277c:	90 e0       	ldi	r25, 0x00	; 0
+    277e:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+ *
+ * @see button1_wait, button1_click
+ **/
+int button1_read( void ) {
+  int pin_val;
+  DDRG &= ~_BV(PING0);
+    2782:	80 91 64 00 	lds	r24, 0x0064
+    2786:	8e 7f       	andi	r24, 0xFE	; 254
+    2788:	80 93 64 00 	sts	0x0064, r24
+  PORTG|= _BV(PING0);
+    278c:	80 91 65 00 	lds	r24, 0x0065
+    2790:	81 60       	ori	r24, 0x01	; 1
+    2792:	80 93 65 00 	sts	0x0065, r24
+  pin_val = PING;
+    2796:	80 91 63 00 	lds	r24, 0x0063
+ * Delays execution until button1 is pressed.
+ *
+ * @see button1_read, button1_click
+ **/
+void button1_wait( void ) {
+  while(!button1_read() ) {
+    279a:	80 fd       	sbrc	r24, 0
+    279c:	ee cf       	rjmp	.-36     	; 0x277a <button1_wait+0x2>
+    delay_ms(15);
+  }
+}
+    279e:	08 95       	ret
+
+000027a0 <flash_red>:
+    _delay_ms(1);
+}
+
+//flash lights red three times and restore ports
+void flash_red(void)
+{
+    27a0:	ef 92       	push	r14
+    27a2:	ff 92       	push	r15
+    27a4:	0f 93       	push	r16
+    27a6:	1f 93       	push	r17
+    cli();
+    27a8:	f8 94       	cli
+    char dd = DDRC;
+    27aa:	f4 b2       	in	r15, 0x14	; 20
+    char po = PORTC;
+    27ac:	e5 b2       	in	r14, 0x15	; 21
+    char i;
+    DDRC = 0x77;
+    27ae:	17 e7       	ldi	r17, 0x77	; 119
+    27b0:	14 bb       	out	0x14, r17	; 20
+    for(i = 0; i<3; i++)
+    {
+        PORTC = 0x77;
+    27b2:	15 bb       	out	0x15, r17	; 21
+        delay_ms(300);
+    27b4:	8c e2       	ldi	r24, 0x2C	; 44
+    27b6:	91 e0       	ldi	r25, 0x01	; 1
+    27b8:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+        PORTC = 0x66;
+    27bc:	06 e6       	ldi	r16, 0x66	; 102
+    27be:	05 bb       	out	0x15, r16	; 21
+        delay_ms(300);
+    27c0:	8c e2       	ldi	r24, 0x2C	; 44
+    27c2:	91 e0       	ldi	r25, 0x01	; 1
+    27c4:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+    char po = PORTC;
+    char i;
+    DDRC = 0x77;
+    for(i = 0; i<3; i++)
+    {
+        PORTC = 0x77;
+    27c8:	15 bb       	out	0x15, r17	; 21
+        delay_ms(300);
+    27ca:	8c e2       	ldi	r24, 0x2C	; 44
+    27cc:	91 e0       	ldi	r25, 0x01	; 1
+    27ce:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+        PORTC = 0x66;
+    27d2:	05 bb       	out	0x15, r16	; 21
+        delay_ms(300);
+    27d4:	8c e2       	ldi	r24, 0x2C	; 44
+    27d6:	91 e0       	ldi	r25, 0x01	; 1
+    27d8:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+    char po = PORTC;
+    char i;
+    DDRC = 0x77;
+    for(i = 0; i<3; i++)
+    {
+        PORTC = 0x77;
+    27dc:	15 bb       	out	0x15, r17	; 21
+        delay_ms(300);
+    27de:	8c e2       	ldi	r24, 0x2C	; 44
+    27e0:	91 e0       	ldi	r25, 0x01	; 1
+    27e2:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+        PORTC = 0x66;
+    27e6:	05 bb       	out	0x15, r16	; 21
+        delay_ms(300);
+    27e8:	8c e2       	ldi	r24, 0x2C	; 44
+    27ea:	91 e0       	ldi	r25, 0x01	; 1
+    27ec:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+    }
+    
+    DDRC = dd;
+    27f0:	f4 ba       	out	0x14, r15	; 20
+    PORTC = po;
+    27f2:	e5 ba       	out	0x15, r14	; 21
+    sei();
+    27f4:	78 94       	sei
+}
+    27f6:	1f 91       	pop	r17
+    27f8:	0f 91       	pop	r16
+    27fa:	ff 90       	pop	r15
+    27fc:	ef 90       	pop	r14
+    27fe:	08 95       	ret
+
+00002800 <dragonfly_init>:
+ **/
+ 
+void flash_red(void);
+
+void dragonfly_init(int config) 
+{
+    2800:	cf 93       	push	r28
+    2802:	df 93       	push	r29
+    2804:	ec 01       	movw	r28, r24
+    sei();
+    2806:	78 94       	sei
+    // Set directionality of various IO pins
+    DDRG &= ~(_BV(PING0)|_BV(PING1));
+    2808:	80 91 64 00 	lds	r24, 0x0064
+    280c:	8c 7f       	andi	r24, 0xFC	; 252
+    280e:	80 93 64 00 	sts	0x0064, r24
+    PORTG |= _BV(PING0)|_BV(PING1);
+    2812:	80 91 65 00 	lds	r24, 0x0065
+    2816:	83 60       	ori	r24, 0x03	; 3
+    2818:	80 93 65 00 	sts	0x0065, r24
+    
+    if(config & ANALOG)
+    281c:	c0 ff       	sbrs	r28, 0
+    281e:	04 c0       	rjmp	.+8      	; 0x2828 <dragonfly_init+0x28>
+        analog_init(ADC_START);
+    2820:	81 e0       	ldi	r24, 0x01	; 1
+    2822:	90 e0       	ldi	r25, 0x00	; 0
+    2824:	0e 94 9b 09 	call	0x1336	; 0x1336 <analog_init>
+    
+    if(config & COMM)
+    2828:	c1 ff       	sbrs	r28, 1
+    282a:	04 c0       	rjmp	.+8      	; 0x2834 <dragonfly_init+0x34>
+    {
+        //Defaults to 115200. Check serial.h for more information.
+        usb_init();
+    282c:	0e 94 4e 1e 	call	0x3c9c	; 0x3c9c <usb_init>
+        xbee_init();
+    2830:	0e 94 5c 1e 	call	0x3cb8	; 0x3cb8 <xbee_init>
+    }
+    
+    if(config & BUZZER)
+    2834:	c6 ff       	sbrs	r28, 6
+    2836:	03 c0       	rjmp	.+6      	; 0x283e <dragonfly_init+0x3e>
+    {
+        sei();
+    2838:	78 94       	sei
+        buzzer_init();
+    283a:	0e 94 59 20 	call	0x40b2	; 0x40b2 <buzzer_init>
+    }
+    
+    if(config & ORB)
+    283e:	c2 ff       	sbrs	r28, 2
+    2840:	03 c0       	rjmp	.+6      	; 0x2848 <dragonfly_init+0x48>
+    {
+        sei();
+    2842:	78 94       	sei
+        orb_init();
+    2844:	0e 94 3a 1c 	call	0x3874	; 0x3874 <orb_init>
+    }
+    
+    if(config & MOTORS)
+    2848:	c3 ff       	sbrs	r28, 3
+    284a:	02 c0       	rjmp	.+4      	; 0x2850 <dragonfly_init+0x50>
+        motors_init();
+    284c:	0e 94 3d 1c 	call	0x387a	; 0x387a <motors_init>
+
+    if(config & LCD)
+    2850:	c7 ff       	sbrs	r28, 7
+    2852:	02 c0       	rjmp	.+4      	; 0x2858 <dragonfly_init+0x58>
+        lcd_init();
+    2854:	0e 94 f1 17 	call	0x2fe2	; 0x2fe2 <lcd_init>
+    
+    if(config & RANGE)
+    2858:	d0 ff       	sbrs	r29, 0
+    285a:	02 c0       	rjmp	.+4      	; 0x2860 <dragonfly_init+0x60>
+        range_init();
+    285c:	0e 94 31 1e 	call	0x3c62	; 0x3c62 <range_init>
+        
+    if(config & BOM)
+    2860:	d1 ff       	sbrs	r29, 1
+    2862:	09 c0       	rjmp	.+18     	; 0x2876 <dragonfly_init+0x76>
+    {
+        unsigned char bom_read = get_bom_type();
+    2864:	0e 94 79 14 	call	0x28f2	; 0x28f2 <get_bom_type>
+        if(bom_read == 0xFF)
+    2868:	8f 3f       	cpi	r24, 0xFF	; 255
+    286a:	19 f4       	brne	.+6      	; 0x2872 <dragonfly_init+0x72>
+            //warn that bom initialization failed
+            flash_red();
+    286c:	0e 94 d0 13 	call	0x27a0	; 0x27a0 <flash_red>
+    2870:	02 c0       	rjmp	.+4      	; 0x2876 <dragonfly_init+0x76>
+        else
+            bom_init(bom_read);
+    2872:	0e 94 f7 0d 	call	0x1bee	; 0x1bee <bom_init>
+    }
+
+	if (config & ENCODERS)
+    2876:	d2 ff       	sbrs	r29, 2
+    2878:	02 c0       	rjmp	.+4      	; 0x287e <dragonfly_init+0x7e>
+	{
+		encoders_init();
+    287a:	0e 94 09 17 	call	0x2e12	; 0x2e12 <encoders_init>
+    milliseconds can be achieved.
+ */
+void
+_delay_loop_2(uint16_t __count)
+{
+	__asm__ volatile (
+    287e:	80 ea       	ldi	r24, 0xA0	; 160
+    2880:	9f e0       	ldi	r25, 0x0F	; 15
+    2882:	01 97       	sbiw	r24, 0x01	; 1
+    2884:	f1 f7       	brne	.-4      	; 0x2882 <dragonfly_init+0x82>
+	}
+
+    // delay a bit for stability
+    _delay_ms(1);
+}
+    2886:	df 91       	pop	r29
+    2888:	cf 91       	pop	r28
+    288a:	08 95       	ret
+
+0000288c <eeprom_put_byte>:
+#include <avr/io.h>
+#include "eeprom.h"
+
+int eeprom_put_byte(unsigned int uiAddress, unsigned char ucData) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    288c:	e1 99       	sbic	0x1c, 1	; 28
+    288e:	fe cf       	rjmp	.-4      	; 0x288c <eeprom_put_byte>
+    /* Set up address and data registers */
+    EEAR = uiAddress;
+    2890:	9f bb       	out	0x1f, r25	; 31
+    2892:	8e bb       	out	0x1e, r24	; 30
+    EEDR = ucData;
+    2894:	6d bb       	out	0x1d, r22	; 29
+    /* Write logical one to EEMWE */
+    EECR |= (1<<EEMWE);
+    2896:	e2 9a       	sbi	0x1c, 2	; 28
+    /* Start eeprom write by setting EEWE */
+    EECR |= (1<<EEWE);
+    2898:	e1 9a       	sbi	0x1c, 1	; 28
+    
+    return 0;
+}
+    289a:	80 e0       	ldi	r24, 0x00	; 0
+    289c:	90 e0       	ldi	r25, 0x00	; 0
+    289e:	08 95       	ret
+
+000028a0 <eeprom_get_byte>:
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    28a0:	fb 01       	movw	r30, r22
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    28a2:	e1 99       	sbic	0x1c, 1	; 28
+    28a4:	fe cf       	rjmp	.-4      	; 0x28a2 <eeprom_get_byte+0x2>
+    /* Set up address register */
+    EEAR = uiAddress;
+    28a6:	9f bb       	out	0x1f, r25	; 31
+    28a8:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    28aa:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    28ac:	8d b3       	in	r24, 0x1d	; 29
+    28ae:	80 83       	st	Z, r24
+    
+    return 0;
+}
+    28b0:	80 e0       	ldi	r24, 0x00	; 0
+    28b2:	90 e0       	ldi	r25, 0x00	; 0
+    28b4:	08 95       	ret
+
+000028b6 <get_robotid>:
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    28b6:	e1 99       	sbic	0x1c, 1	; 28
+    28b8:	fe cf       	rjmp	.-4      	; 0x28b6 <get_robotid>
+    /* Set up address register */
+    EEAR = uiAddress;
+    28ba:	80 e1       	ldi	r24, 0x10	; 16
+    28bc:	90 e0       	ldi	r25, 0x00	; 0
+    28be:	9f bb       	out	0x1f, r25	; 31
+    28c0:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    28c2:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    28c4:	3d b3       	in	r19, 0x1d	; 29
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    28c6:	e1 99       	sbic	0x1c, 1	; 28
+    28c8:	fe cf       	rjmp	.-4      	; 0x28c6 <get_robotid+0x10>
+    /* Set up address register */
+    EEAR = uiAddress;
+    28ca:	81 e1       	ldi	r24, 0x11	; 17
+    28cc:	90 e0       	ldi	r25, 0x00	; 0
+    28ce:	9f bb       	out	0x1f, r25	; 31
+    28d0:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    28d2:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    28d4:	2d b3       	in	r18, 0x1d	; 29
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    28d6:	e1 99       	sbic	0x1c, 1	; 28
+    28d8:	fe cf       	rjmp	.-4      	; 0x28d6 <get_robotid+0x20>
+    /* Set up address register */
+    EEAR = uiAddress;
+    28da:	82 e1       	ldi	r24, 0x12	; 18
+    28dc:	90 e0       	ldi	r25, 0x00	; 0
+    28de:	9f bb       	out	0x1f, r25	; 31
+    28e0:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    28e2:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    28e4:	8d b3       	in	r24, 0x1d	; 29
+    unsigned char c0, c1, c2;
+    
+    eeprom_get_byte(EEPROM_ROBOT_ID_ADDR, &c0);
+    eeprom_get_byte(EEPROM_ROBOT_ID_ADDR+1, &c1);
+    eeprom_get_byte(EEPROM_ROBOT_ID_ADDR+2, &c2);
+    if(c0 == 'I' && c1 == 'D')
+    28e6:	39 34       	cpi	r19, 0x49	; 73
+    28e8:	11 f4       	brne	.+4      	; 0x28ee <get_robotid+0x38>
+    28ea:	24 34       	cpi	r18, 0x44	; 68
+    28ec:	09 f0       	breq	.+2      	; 0x28f0 <get_robotid+0x3a>
+    28ee:	8f ef       	ldi	r24, 0xFF	; 255
+        return c2;
+    else
+        return 0xFF;
+}
+    28f0:	08 95       	ret
+
+000028f2 <get_bom_type>:
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    28f2:	e1 99       	sbic	0x1c, 1	; 28
+    28f4:	fe cf       	rjmp	.-4      	; 0x28f2 <get_bom_type>
+    /* Set up address register */
+    EEAR = uiAddress;
+    28f6:	84 e1       	ldi	r24, 0x14	; 20
+    28f8:	90 e0       	ldi	r25, 0x00	; 0
+    28fa:	9f bb       	out	0x1f, r25	; 31
+    28fc:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    28fe:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    2900:	4d b3       	in	r20, 0x1d	; 29
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    2902:	e1 99       	sbic	0x1c, 1	; 28
+    2904:	fe cf       	rjmp	.-4      	; 0x2902 <get_bom_type+0x10>
+    /* Set up address register */
+    EEAR = uiAddress;
+    2906:	85 e1       	ldi	r24, 0x15	; 21
+    2908:	90 e0       	ldi	r25, 0x00	; 0
+    290a:	9f bb       	out	0x1f, r25	; 31
+    290c:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    290e:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    2910:	3d b3       	in	r19, 0x1d	; 29
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    2912:	e1 99       	sbic	0x1c, 1	; 28
+    2914:	fe cf       	rjmp	.-4      	; 0x2912 <get_bom_type+0x20>
+    /* Set up address register */
+    EEAR = uiAddress;
+    2916:	86 e1       	ldi	r24, 0x16	; 22
+    2918:	90 e0       	ldi	r25, 0x00	; 0
+    291a:	9f bb       	out	0x1f, r25	; 31
+    291c:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    291e:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    2920:	2d b3       	in	r18, 0x1d	; 29
+    return 0;
+}
+
+int eeprom_get_byte(unsigned int uiAddress, unsigned char *byte) {
+    /* Wait for completion of previous write */
+    while(EECR & (1<<EEWE));
+    2922:	e1 99       	sbic	0x1c, 1	; 28
+    2924:	fe cf       	rjmp	.-4      	; 0x2922 <get_bom_type+0x30>
+    /* Set up address register */
+    EEAR = uiAddress;
+    2926:	87 e1       	ldi	r24, 0x17	; 23
+    2928:	90 e0       	ldi	r25, 0x00	; 0
+    292a:	9f bb       	out	0x1f, r25	; 31
+    292c:	8e bb       	out	0x1e, r24	; 30
+    /* Start eeprom read by writing EERE */
+    EECR |= (1<<EERE);
+    292e:	e0 9a       	sbi	0x1c, 0	; 28
+    /* get data from data register */
+    *byte=EEDR;
+    2930:	8d b3       	in	r24, 0x1d	; 29
+    
+    eeprom_get_byte(EEPROM_BOM_TYPE_ADDR, &c0);
+    eeprom_get_byte(EEPROM_BOM_TYPE_ADDR+1, &c1);
+    eeprom_get_byte(EEPROM_BOM_TYPE_ADDR+2, &c2);
+    eeprom_get_byte(EEPROM_BOM_TYPE_ADDR+3, &c3);
+    if(c0 == 'B' && c1 == 'O' && c2 == 'M')
+    2932:	42 34       	cpi	r20, 0x42	; 66
+    2934:	21 f4       	brne	.+8      	; 0x293e <get_bom_type+0x4c>
+    2936:	3f 34       	cpi	r19, 0x4F	; 79
+    2938:	11 f4       	brne	.+4      	; 0x293e <get_bom_type+0x4c>
+    293a:	2d 34       	cpi	r18, 0x4D	; 77
+    293c:	09 f0       	breq	.+2      	; 0x2940 <get_bom_type+0x4e>
+    293e:	8f ef       	ldi	r24, 0xFF	; 255
+        return c3;
+    else
+        return 0xFF;
+}
+    2940:	08 95       	ret
+
+00002942 <encoder_read>:
+ *         values above ENCODER_MAX usually means phyiscal problems with
+ *         the encoder.
+ **/
+int encoder_read(char encoder){
+	
+	if(encoder==LEFT) return left_data;
+    2942:	88 23       	and	r24, r24
+    2944:	29 f4       	brne	.+10     	; 0x2950 <encoder_read+0xe>
+    2946:	20 91 cf 05 	lds	r18, 0x05CF
+    294a:	30 91 d0 05 	lds	r19, 0x05D0
+    294e:	09 c0       	rjmp	.+18     	; 0x2962 <encoder_read+0x20>
+	else if(encoder==RIGHT) return right_data;
+    2950:	81 30       	cpi	r24, 0x01	; 1
+    2952:	19 f0       	breq	.+6      	; 0x295a <encoder_read+0x18>
+    2954:	2f ef       	ldi	r18, 0xFF	; 255
+    2956:	3f ef       	ldi	r19, 0xFF	; 255
+    2958:	04 c0       	rjmp	.+8      	; 0x2962 <encoder_read+0x20>
+    295a:	20 91 04 05 	lds	r18, 0x0504
+    295e:	30 91 05 05 	lds	r19, 0x0505
+	else return -1;
+}
+    2962:	c9 01       	movw	r24, r18
+    2964:	08 95       	ret
+
+00002966 <encoder_get_x>:
+ *
+ * @return The distance covered by the specified encoder.
+ **/
+int encoder_get_dx(char encoder) {
+	
+	if(encoder==LEFT) return left_dx;
+    2966:	88 23       	and	r24, r24
+    2968:	29 f4       	brne	.+10     	; 0x2974 <encoder_get_x+0xe>
+    296a:	20 91 c9 05 	lds	r18, 0x05C9
+    296e:	30 91 ca 05 	lds	r19, 0x05CA
+    2972:	09 c0       	rjmp	.+18     	; 0x2986 <encoder_get_x+0x20>
+	else if(encoder==RIGHT) return right_dx;
+    2974:	81 30       	cpi	r24, 0x01	; 1
+    2976:	19 f0       	breq	.+6      	; 0x297e <encoder_get_x+0x18>
+    2978:	2f ef       	ldi	r18, 0xFF	; 255
+    297a:	3f ef       	ldi	r19, 0xFF	; 255
+    297c:	04 c0       	rjmp	.+8      	; 0x2986 <encoder_get_x+0x20>
+    297e:	20 91 66 05 	lds	r18, 0x0566
+    2982:	30 91 67 05 	lds	r19, 0x0567
+ *
+ * @note Simply calls encoder_get_dx.
+ **/
+int encoder_get_x(char encoder) {
+	return encoder_get_dx(encoder);
+}
+    2986:	c9 01       	movw	r24, r18
+    2988:	08 95       	ret
+
+0000298a <encoder_get_dx>:
+ *
+ * @return The distance covered by the specified encoder.
+ **/
+int encoder_get_dx(char encoder) {
+	
+	if(encoder==LEFT) return left_dx;
+    298a:	88 23       	and	r24, r24
+    298c:	29 f4       	brne	.+10     	; 0x2998 <encoder_get_dx+0xe>
+    298e:	20 91 c9 05 	lds	r18, 0x05C9
+    2992:	30 91 ca 05 	lds	r19, 0x05CA
+    2996:	09 c0       	rjmp	.+18     	; 0x29aa <encoder_get_dx+0x20>
+	else if(encoder==RIGHT) return right_dx;
+    2998:	81 30       	cpi	r24, 0x01	; 1
+    299a:	19 f0       	breq	.+6      	; 0x29a2 <encoder_get_dx+0x18>
+    299c:	2f ef       	ldi	r18, 0xFF	; 255
+    299e:	3f ef       	ldi	r19, 0xFF	; 255
+    29a0:	04 c0       	rjmp	.+8      	; 0x29aa <encoder_get_dx+0x20>
+    29a2:	20 91 66 05 	lds	r18, 0x0566
+    29a6:	30 91 67 05 	lds	r19, 0x0567
+	else return -1;
+}
+    29aa:	c9 01       	movw	r24, r18
+    29ac:	08 95       	ret
+
+000029ae <encoder_rst_dx>:
+ *
+ * @param encoder the encoder that you want to reset distance for
+ **/
+void encoder_rst_dx(char encoder) {
+	
+	if(encoder==LEFT) left_dx = 0;
+    29ae:	88 23       	and	r24, r24
+    29b0:	29 f4       	brne	.+10     	; 0x29bc <encoder_rst_dx+0xe>
+    29b2:	10 92 ca 05 	sts	0x05CA, r1
+    29b6:	10 92 c9 05 	sts	0x05C9, r1
+    29ba:	08 95       	ret
+	else if(encoder==RIGHT) right_dx = 0;
+    29bc:	81 30       	cpi	r24, 0x01	; 1
+    29be:	21 f4       	brne	.+8      	; 0x29c8 <encoder_rst_dx+0x1a>
+    29c0:	10 92 67 05 	sts	0x0567, r1
+    29c4:	10 92 66 05 	sts	0x0566, r1
+    29c8:	08 95       	ret
+
+000029ca <encoder_get_tc>:
+* 
+* @return The time count.
+*/
+int encoder_get_tc(void) {
+	return timecount;
+}
+    29ca:	80 91 68 05 	lds	r24, 0x0568
+    29ce:	90 91 69 05 	lds	r25, 0x0569
+    29d2:	08 95       	ret
+
+000029d4 <encoder_rst_tc>:
+
+/** 
+* @brief Resets the encoder read counter.
+*/
+void encoder_rst_tc(void) {
+	timecount = 0;
+    29d4:	10 92 68 05 	sts	0x0568, r1
+    29d8:	10 92 69 05 	sts	0x0569, r1
+    29dc:	10 92 6a 05 	sts	0x056A, r1
+    29e0:	10 92 6b 05 	sts	0x056B, r1
+}
+    29e4:	08 95       	ret
+
+000029e6 <encoder_wait>:
+* @brief Waits until n encoder reads have occurred.
+* Counter is reset on functions exit.
+* 
+* @param n 
+*/
+void encoder_wait(int n){
+    29e6:	9c 01       	movw	r18, r24
+	while(data_ready<n);
+    29e8:	80 91 02 05 	lds	r24, 0x0502
+    29ec:	90 91 03 05 	lds	r25, 0x0503
+    29f0:	82 17       	cp	r24, r18
+    29f2:	93 07       	cpc	r25, r19
+    29f4:	cc f3       	brlt	.-14     	; 0x29e8 <encoder_wait+0x2>
+	data_ready=0;
+    29f6:	10 92 03 05 	sts	0x0503, r1
+    29fa:	10 92 02 05 	sts	0x0502, r1
+}
+    29fe:	08 95       	ret
+
+00002a00 <encoder_recv>:
+void encoder_recv(char data){
+	short int dx;
+	
+	//Parse the encoder data, comes in over 5 bytes 16 bits per encoder,
+	// second is offset by 1 bit.
+	switch(encoder_buf_index){	
+    2a00:	40 91 6c 05 	lds	r20, 0x056C
+    2a04:	42 30       	cpi	r20, 0x02	; 2
+    2a06:	e1 f0       	breq	.+56     	; 0x2a40 <encoder_recv+0x40>
+    2a08:	43 30       	cpi	r20, 0x03	; 3
+    2a0a:	28 f4       	brcc	.+10     	; 0x2a16 <encoder_recv+0x16>
+    2a0c:	44 23       	and	r20, r20
+    2a0e:	41 f0       	breq	.+16     	; 0x2a20 <encoder_recv+0x20>
+    2a10:	41 30       	cpi	r20, 0x01	; 1
+    2a12:	71 f5       	brne	.+92     	; 0x2a70 <encoder_recv+0x70>
+    2a14:	08 c0       	rjmp	.+16     	; 0x2a26 <encoder_recv+0x26>
+    2a16:	43 30       	cpi	r20, 0x03	; 3
+    2a18:	b9 f0       	breq	.+46     	; 0x2a48 <encoder_recv+0x48>
+    2a1a:	44 30       	cpi	r20, 0x04	; 4
+    2a1c:	49 f5       	brne	.+82     	; 0x2a70 <encoder_recv+0x70>
+    2a1e:	19 c0       	rjmp	.+50     	; 0x2a52 <encoder_recv+0x52>
+	case 0: 
+		right_data_buf |= ((short)data)<<8 & 0xff00;
+    2a20:	38 2f       	mov	r19, r24
+    2a22:	20 e0       	ldi	r18, 0x00	; 0
+    2a24:	02 c0       	rjmp	.+4      	; 0x2a2a <encoder_recv+0x2a>
+		break;
+	case 1:
+		right_data_buf |= ((short)data) & 0xff;
+    2a26:	28 2f       	mov	r18, r24
+    2a28:	30 e0       	ldi	r19, 0x00	; 0
+    2a2a:	80 91 cd 05 	lds	r24, 0x05CD
+    2a2e:	90 91 ce 05 	lds	r25, 0x05CE
+    2a32:	82 2b       	or	r24, r18
+    2a34:	93 2b       	or	r25, r19
+    2a36:	90 93 ce 05 	sts	0x05CE, r25
+    2a3a:	80 93 cd 05 	sts	0x05CD, r24
+    2a3e:	18 c0       	rjmp	.+48     	; 0x2a70 <encoder_recv+0x70>
+		break;
+	case 2:
+		left_data_buf |= (((short)data) << 9) & (0x7F << 9);
+    2a40:	38 2f       	mov	r19, r24
+    2a42:	33 0f       	add	r19, r19
+    2a44:	20 e0       	ldi	r18, 0x00	; 0
+    2a46:	0a c0       	rjmp	.+20     	; 0x2a5c <encoder_recv+0x5c>
+		break;
+	case 3:
+		left_data_buf |= (((short)data) << 1) & (0xFF<<1);
+    2a48:	28 2f       	mov	r18, r24
+    2a4a:	30 e0       	ldi	r19, 0x00	; 0
+    2a4c:	22 0f       	add	r18, r18
+    2a4e:	33 1f       	adc	r19, r19
+    2a50:	05 c0       	rjmp	.+10     	; 0x2a5c <encoder_recv+0x5c>
+		break;
+	case 4: left_data_buf |= (((short)data)>>7) & 0x1;
+    2a52:	88 1f       	adc	r24, r24
+    2a54:	88 27       	eor	r24, r24
+    2a56:	88 1f       	adc	r24, r24
+    2a58:	28 2f       	mov	r18, r24
+    2a5a:	30 e0       	ldi	r19, 0x00	; 0
+    2a5c:	80 91 06 05 	lds	r24, 0x0506
+    2a60:	90 91 07 05 	lds	r25, 0x0507
+    2a64:	82 2b       	or	r24, r18
+    2a66:	93 2b       	or	r25, r19
+    2a68:	90 93 07 05 	sts	0x0507, r25
+    2a6c:	80 93 06 05 	sts	0x0506, r24
+	}	
+		
+	encoder_buf_index = (encoder_buf_index + 1) % 5;
+    2a70:	84 2f       	mov	r24, r20
+    2a72:	90 e0       	ldi	r25, 0x00	; 0
+    2a74:	01 96       	adiw	r24, 0x01	; 1
+    2a76:	65 e0       	ldi	r22, 0x05	; 5
+    2a78:	70 e0       	ldi	r23, 0x00	; 0
+    2a7a:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    2a7e:	80 93 6c 05 	sts	0x056C, r24
+
+	if(encoder_buf_index==0) {
+    2a82:	88 23       	and	r24, r24
+    2a84:	09 f0       	breq	.+2      	; 0x2a88 <encoder_recv+0x88>
+    2a86:	04 c1       	rjmp	.+520    	; 0x2c90 <encoder_recv+0x290>
+		
+		/*Error handling for the left encoder*/ 
+		if(!(left_data_buf & OCF)) 
+    2a88:	20 91 06 05 	lds	r18, 0x0506
+    2a8c:	30 91 07 05 	lds	r19, 0x0507
+			left_data = ENCODER_DATA_NOT_READY; 
+		if(left_data_buf & (COF | LIN))  
+    2a90:	c9 01       	movw	r24, r18
+    2a92:	8c 70       	andi	r24, 0x0C	; 12
+    2a94:	90 70       	andi	r25, 0x00	; 0
+    2a96:	89 2b       	or	r24, r25
+    2a98:	19 f0       	breq	.+6      	; 0x2aa0 <encoder_recv+0xa0>
+			left_data = ENCODER_MISALIGNED;
+    2a9a:	83 e0       	ldi	r24, 0x03	; 3
+    2a9c:	94 e0       	ldi	r25, 0x04	; 4
+    2a9e:	06 c0       	rjmp	.+12     	; 0x2aac <encoder_recv+0xac>
+		else if((left_data_buf & MagINCn) && (left_data_buf & MagDECn)) 
+    2aa0:	21 ff       	sbrs	r18, 1
+    2aa2:	09 c0       	rjmp	.+18     	; 0x2ab6 <encoder_recv+0xb6>
+    2aa4:	20 ff       	sbrs	r18, 0
+    2aa6:	07 c0       	rjmp	.+14     	; 0x2ab6 <encoder_recv+0xb6>
+			left_data = ENCODER_MAGNET_FAILURE;
+    2aa8:	81 e0       	ldi	r24, 0x01	; 1
+    2aaa:	94 e0       	ldi	r25, 0x04	; 4
+    2aac:	90 93 d0 05 	sts	0x05D0, r25
+    2ab0:	80 93 cf 05 	sts	0x05CF, r24
+    2ab4:	0a c0       	rjmp	.+20     	; 0x2aca <encoder_recv+0xca>
+		else left_data = (left_data_buf>>5) & 1023;
+    2ab6:	75 e0       	ldi	r23, 0x05	; 5
+    2ab8:	36 95       	lsr	r19
+    2aba:	27 95       	ror	r18
+    2abc:	7a 95       	dec	r23
+    2abe:	e1 f7       	brne	.-8      	; 0x2ab8 <encoder_recv+0xb8>
+    2ac0:	33 70       	andi	r19, 0x03	; 3
+    2ac2:	30 93 d0 05 	sts	0x05D0, r19
+    2ac6:	20 93 cf 05 	sts	0x05CF, r18
+			
+		/*Error handling for the right encoder*/ 
+	 	if(!(right_data_buf & OCF))
+    2aca:	20 91 cd 05 	lds	r18, 0x05CD
+    2ace:	30 91 ce 05 	lds	r19, 0x05CE
+			right_data = ENCODER_DATA_NOT_READY;	
+		if(right_data_buf & (COF | LIN)) 
+    2ad2:	c9 01       	movw	r24, r18
+    2ad4:	8c 70       	andi	r24, 0x0C	; 12
+    2ad6:	90 70       	andi	r25, 0x00	; 0
+    2ad8:	89 2b       	or	r24, r25
+    2ada:	19 f0       	breq	.+6      	; 0x2ae2 <encoder_recv+0xe2>
+			right_data = ENCODER_MISALIGNED;
+    2adc:	83 e0       	ldi	r24, 0x03	; 3
+    2ade:	94 e0       	ldi	r25, 0x04	; 4
+    2ae0:	06 c0       	rjmp	.+12     	; 0x2aee <encoder_recv+0xee>
+		else if ((right_data_buf & MagINCn)  && (right_data_buf & MagDECn)) 
+    2ae2:	21 ff       	sbrs	r18, 1
+    2ae4:	09 c0       	rjmp	.+18     	; 0x2af8 <encoder_recv+0xf8>
+    2ae6:	20 ff       	sbrs	r18, 0
+    2ae8:	07 c0       	rjmp	.+14     	; 0x2af8 <encoder_recv+0xf8>
+			right_data = ENCODER_MAGNET_FAILURE;
+    2aea:	81 e0       	ldi	r24, 0x01	; 1
+    2aec:	94 e0       	ldi	r25, 0x04	; 4
+    2aee:	90 93 05 05 	sts	0x0505, r25
+    2af2:	80 93 04 05 	sts	0x0504, r24
+    2af6:	0a c0       	rjmp	.+20     	; 0x2b0c <encoder_recv+0x10c>
+		else right_data = (right_data_buf>>5) & 1023;
+    2af8:	65 e0       	ldi	r22, 0x05	; 5
+    2afa:	36 95       	lsr	r19
+    2afc:	27 95       	ror	r18
+    2afe:	6a 95       	dec	r22
+    2b00:	e1 f7       	brne	.-8      	; 0x2afa <encoder_recv+0xfa>
+    2b02:	33 70       	andi	r19, 0x03	; 3
+    2b04:	30 93 05 05 	sts	0x0505, r19
+    2b08:	20 93 04 05 	sts	0x0504, r18
+			
+  		left_data_buf = 0;
+    2b0c:	10 92 07 05 	sts	0x0507, r1
+    2b10:	10 92 06 05 	sts	0x0506, r1
+		right_data_buf = 0;
+    2b14:	10 92 ce 05 	sts	0x05CE, r1
+    2b18:	10 92 cd 05 	sts	0x05CD, r1
+
+		/*Note: Above 1023 is invalid data*/	
+		if(!(left_data > 1023)) {
+    2b1c:	80 91 cf 05 	lds	r24, 0x05CF
+    2b20:	90 91 d0 05 	lds	r25, 0x05D0
+    2b24:	24 e0       	ldi	r18, 0x04	; 4
+    2b26:	80 30       	cpi	r24, 0x00	; 0
+    2b28:	92 07       	cpc	r25, r18
+    2b2a:	08 f0       	brcs	.+2      	; 0x2b2e <encoder_recv+0x12e>
+    2b2c:	57 c0       	rjmp	.+174    	; 0x2bdc <encoder_recv+0x1dc>
+			//Reverse the left wheel since encoders are necessarily mounted backwards.
+			left_data = 1023 - left_data;
+    2b2e:	2f ef       	ldi	r18, 0xFF	; 255
+    2b30:	33 e0       	ldi	r19, 0x03	; 3
+    2b32:	28 1b       	sub	r18, r24
+    2b34:	39 0b       	sbc	r19, r25
+    2b36:	30 93 d0 05 	sts	0x05D0, r19
+    2b3a:	20 93 cf 05 	sts	0x05CF, r18
+}
+
+
+//Helper Functions
+inline void left_data_array_put(unsigned short int value) {
+	if(left_data_idx == BUFFER_SIZE-1)
+    2b3e:	80 91 64 05 	lds	r24, 0x0564
+    2b42:	90 91 65 05 	lds	r25, 0x0565
+    2b46:	8d 32       	cpi	r24, 0x2D	; 45
+    2b48:	91 05       	cpc	r25, r1
+    2b4a:	29 f4       	brne	.+10     	; 0x2b56 <encoder_recv+0x156>
+		left_data_idx = 0;
+    2b4c:	10 92 65 05 	sts	0x0565, r1
+    2b50:	10 92 64 05 	sts	0x0564, r1
+    2b54:	05 c0       	rjmp	.+10     	; 0x2b60 <encoder_recv+0x160>
+	else
+		left_data_idx++;
+    2b56:	01 96       	adiw	r24, 0x01	; 1
+    2b58:	90 93 65 05 	sts	0x0565, r25
+    2b5c:	80 93 64 05 	sts	0x0564, r24
+	left_data_array[left_data_idx] = value;
+    2b60:	a0 91 64 05 	lds	r26, 0x0564
+    2b64:	b0 91 65 05 	lds	r27, 0x0565
+    2b68:	fd 01       	movw	r30, r26
+    2b6a:	ee 0f       	add	r30, r30
+    2b6c:	ff 1f       	adc	r31, r31
+    2b6e:	e8 5f       	subi	r30, 0xF8	; 248
+    2b70:	fa 4f       	sbci	r31, 0xFA	; 250
+    2b72:	31 83       	std	Z+1, r19	; 0x01
+    2b74:	20 83       	st	Z, r18
+inline unsigned int left_data_array_top(void) {
+	return left_data_array[left_data_idx];
+}
+
+inline unsigned int left_data_array_prev(void) {
+	if(left_data_idx == 0)
+    2b76:	10 97       	sbiw	r26, 0x00	; 0
+    2b78:	29 f4       	brne	.+10     	; 0x2b84 <encoder_recv+0x184>
+		return left_data_array[BUFFER_SIZE-1];
+    2b7a:	e0 91 62 05 	lds	r30, 0x0562
+    2b7e:	f0 91 63 05 	lds	r31, 0x0563
+    2b82:	06 c0       	rjmp	.+12     	; 0x2b90 <encoder_recv+0x190>
+	else
+		return left_data_array[left_data_idx - 1];
+    2b84:	aa 0f       	add	r26, r26
+    2b86:	bb 1f       	adc	r27, r27
+    2b88:	aa 5f       	subi	r26, 0xFA	; 250
+    2b8a:	ba 4f       	sbci	r27, 0xFA	; 250
+    2b8c:	ed 91       	ld	r30, X+
+    2b8e:	fc 91       	ld	r31, X
+			left_data_array_put(left_data);
+
+			//Adjust left accumulator
+			dx = left_data - left_data_array_prev();
+			
+			if(left_data_array_prev()==0)  dx=0;
+    2b90:	30 97       	sbiw	r30, 0x00	; 0
+    2b92:	c1 f0       	breq	.+48     	; 0x2bc4 <encoder_recv+0x1c4>
+			//Reverse the left wheel since encoders are necessarily mounted backwards.
+			left_data = 1023 - left_data;
+			left_data_array_put(left_data);
+
+			//Adjust left accumulator
+			dx = left_data - left_data_array_prev();
+    2b94:	2e 1b       	sub	r18, r30
+    2b96:	3f 0b       	sbc	r19, r31
+			
+			if(left_data_array_prev()==0)  dx=0;
+
+			if(dx > 512) left_dx += dx - 1023; //Underflow
+    2b98:	82 e0       	ldi	r24, 0x02	; 2
+    2b9a:	21 30       	cpi	r18, 0x01	; 1
+    2b9c:	38 07       	cpc	r19, r24
+    2b9e:	3c f0       	brlt	.+14     	; 0x2bae <encoder_recv+0x1ae>
+    2ba0:	80 91 c9 05 	lds	r24, 0x05C9
+    2ba4:	90 91 ca 05 	lds	r25, 0x05CA
+    2ba8:	8f 5f       	subi	r24, 0xFF	; 255
+    2baa:	93 40       	sbci	r25, 0x03	; 3
+    2bac:	11 c0       	rjmp	.+34     	; 0x2bd0 <encoder_recv+0x1d0>
+			else if(dx < -512) left_dx += dx + 1023; //Overflow
+    2bae:	9e ef       	ldi	r25, 0xFE	; 254
+    2bb0:	20 30       	cpi	r18, 0x00	; 0
+    2bb2:	39 07       	cpc	r19, r25
+    2bb4:	4c f4       	brge	.+18     	; 0x2bc8 <encoder_recv+0x1c8>
+    2bb6:	80 91 c9 05 	lds	r24, 0x05C9
+    2bba:	90 91 ca 05 	lds	r25, 0x05CA
+    2bbe:	81 50       	subi	r24, 0x01	; 1
+    2bc0:	9c 4f       	sbci	r25, 0xFC	; 252
+    2bc2:	06 c0       	rjmp	.+12     	; 0x2bd0 <encoder_recv+0x1d0>
+    2bc4:	20 e0       	ldi	r18, 0x00	; 0
+    2bc6:	30 e0       	ldi	r19, 0x00	; 0
+			else left_dx += dx;
+    2bc8:	80 91 c9 05 	lds	r24, 0x05C9
+    2bcc:	90 91 ca 05 	lds	r25, 0x05CA
+    2bd0:	82 0f       	add	r24, r18
+    2bd2:	93 1f       	adc	r25, r19
+    2bd4:	90 93 ca 05 	sts	0x05CA, r25
+    2bd8:	80 93 c9 05 	sts	0x05C9, r24
+		}
+
+		/*Above 1023 is invalid data*/	
+		if(!(right_data > 1023)) {
+    2bdc:	20 91 04 05 	lds	r18, 0x0504
+    2be0:	30 91 05 05 	lds	r19, 0x0505
+    2be4:	84 e0       	ldi	r24, 0x04	; 4
+    2be6:	20 30       	cpi	r18, 0x00	; 0
+    2be8:	38 07       	cpc	r19, r24
+    2bea:	08 f0       	brcs	.+2      	; 0x2bee <encoder_recv+0x1ee>
+    2bec:	51 c0       	rjmp	.+162    	; 0x2c90 <encoder_recv+0x290>
+	else
+		return left_data_array[left_data_idx + 1];
+}
+
+inline void right_data_array_put(unsigned short int value) {
+	if(right_data_idx == BUFFER_SIZE-1)
+    2bee:	80 91 cb 05 	lds	r24, 0x05CB
+    2bf2:	90 91 cc 05 	lds	r25, 0x05CC
+    2bf6:	8d 32       	cpi	r24, 0x2D	; 45
+    2bf8:	91 05       	cpc	r25, r1
+    2bfa:	29 f4       	brne	.+10     	; 0x2c06 <encoder_recv+0x206>
+		right_data_idx = 0;
+    2bfc:	10 92 cc 05 	sts	0x05CC, r1
+    2c00:	10 92 cb 05 	sts	0x05CB, r1
+    2c04:	05 c0       	rjmp	.+10     	; 0x2c10 <encoder_recv+0x210>
+	else
+		right_data_idx++;
+    2c06:	01 96       	adiw	r24, 0x01	; 1
+    2c08:	90 93 cc 05 	sts	0x05CC, r25
+    2c0c:	80 93 cb 05 	sts	0x05CB, r24
+	right_data_array[right_data_idx] = value;
+    2c10:	a0 91 cb 05 	lds	r26, 0x05CB
+    2c14:	b0 91 cc 05 	lds	r27, 0x05CC
+    2c18:	fd 01       	movw	r30, r26
+    2c1a:	ee 0f       	add	r30, r30
+    2c1c:	ff 1f       	adc	r31, r31
+    2c1e:	e3 59       	subi	r30, 0x93	; 147
+    2c20:	fa 4f       	sbci	r31, 0xFA	; 250
+    2c22:	31 83       	std	Z+1, r19	; 0x01
+    2c24:	20 83       	st	Z, r18
+inline unsigned int right_data_array_top(void) {
+	return right_data_array[right_data_idx];
+}
+
+inline unsigned int right_data_array_prev(void) {
+	if(right_data_idx == 0)
+    2c26:	10 97       	sbiw	r26, 0x00	; 0
+    2c28:	29 f4       	brne	.+10     	; 0x2c34 <encoder_recv+0x234>
+		return right_data_array[BUFFER_SIZE-1];
+    2c2a:	e0 91 c7 05 	lds	r30, 0x05C7
+    2c2e:	f0 91 c8 05 	lds	r31, 0x05C8
+    2c32:	06 c0       	rjmp	.+12     	; 0x2c40 <encoder_recv+0x240>
+	else
+		return right_data_array[right_data_idx - 1];
+    2c34:	aa 0f       	add	r26, r26
+    2c36:	bb 1f       	adc	r27, r27
+    2c38:	a5 59       	subi	r26, 0x95	; 149
+    2c3a:	ba 4f       	sbci	r27, 0xFA	; 250
+    2c3c:	ed 91       	ld	r30, X+
+    2c3e:	fc 91       	ld	r31, X
+			right_data_array_put(right_data);
+
+			//Adjust right accumulator
+			dx = right_data - right_data_array_prev();
+
+			if(right_data_array_prev()==0) dx=0;
+    2c40:	30 97       	sbiw	r30, 0x00	; 0
+    2c42:	d1 f0       	breq	.+52     	; 0x2c78 <encoder_recv+0x278>
+		/*Above 1023 is invalid data*/	
+		if(!(right_data > 1023)) {
+			right_data_array_put(right_data);
+
+			//Adjust right accumulator
+			dx = right_data - right_data_array_prev();
+    2c44:	c9 01       	movw	r24, r18
+    2c46:	8e 1b       	sub	r24, r30
+    2c48:	9f 0b       	sbc	r25, r31
+    2c4a:	fc 01       	movw	r30, r24
+
+			if(right_data_array_prev()==0) dx=0;
+			  
+			if(dx > 512) right_dx += dx - 1023; //underflow
+    2c4c:	92 e0       	ldi	r25, 0x02	; 2
+    2c4e:	e1 30       	cpi	r30, 0x01	; 1
+    2c50:	f9 07       	cpc	r31, r25
+    2c52:	3c f0       	brlt	.+14     	; 0x2c62 <encoder_recv+0x262>
+    2c54:	80 91 66 05 	lds	r24, 0x0566
+    2c58:	90 91 67 05 	lds	r25, 0x0567
+    2c5c:	8f 5f       	subi	r24, 0xFF	; 255
+    2c5e:	93 40       	sbci	r25, 0x03	; 3
+    2c60:	11 c0       	rjmp	.+34     	; 0x2c84 <encoder_recv+0x284>
+			else if(dx < -512) right_dx += dx + 1023; //overflow 
+    2c62:	2e ef       	ldi	r18, 0xFE	; 254
+    2c64:	e0 30       	cpi	r30, 0x00	; 0
+    2c66:	f2 07       	cpc	r31, r18
+    2c68:	4c f4       	brge	.+18     	; 0x2c7c <encoder_recv+0x27c>
+    2c6a:	80 91 66 05 	lds	r24, 0x0566
+    2c6e:	90 91 67 05 	lds	r25, 0x0567
+    2c72:	81 50       	subi	r24, 0x01	; 1
+    2c74:	9c 4f       	sbci	r25, 0xFC	; 252
+    2c76:	06 c0       	rjmp	.+12     	; 0x2c84 <encoder_recv+0x284>
+    2c78:	e0 e0       	ldi	r30, 0x00	; 0
+    2c7a:	f0 e0       	ldi	r31, 0x00	; 0
+			else right_dx += dx;
+    2c7c:	80 91 66 05 	lds	r24, 0x0566
+    2c80:	90 91 67 05 	lds	r25, 0x0567
+    2c84:	8e 0f       	add	r24, r30
+    2c86:	9f 1f       	adc	r25, r31
+    2c88:	90 93 67 05 	sts	0x0567, r25
+    2c8c:	80 93 66 05 	sts	0x0566, r24
+		}
+	}
+
+	//Increment timecount accumulator
+	timecount++;
+    2c90:	80 91 68 05 	lds	r24, 0x0568
+    2c94:	90 91 69 05 	lds	r25, 0x0569
+    2c98:	a0 91 6a 05 	lds	r26, 0x056A
+    2c9c:	b0 91 6b 05 	lds	r27, 0x056B
+    2ca0:	01 96       	adiw	r24, 0x01	; 1
+    2ca2:	a1 1d       	adc	r26, r1
+    2ca4:	b1 1d       	adc	r27, r1
+    2ca6:	80 93 68 05 	sts	0x0568, r24
+    2caa:	90 93 69 05 	sts	0x0569, r25
+    2cae:	a0 93 6a 05 	sts	0x056A, r26
+    2cb2:	b0 93 6b 05 	sts	0x056B, r27
+}
+    2cb6:	08 95       	ret
+
+00002cb8 <left_data_at>:
+		return right_data_array[right_data_idx + 1];
+}
+
+/* Helper functions for encoder_get_v */
+int left_data_at(int index) {
+    int tmp_idx = left_data_idx - index;
+    2cb8:	e0 91 64 05 	lds	r30, 0x0564
+    2cbc:	f0 91 65 05 	lds	r31, 0x0565
+    2cc0:	e8 1b       	sub	r30, r24
+    2cc2:	f9 0b       	sbc	r31, r25
+    if (tmp_idx < 0)
+    2cc4:	f7 fd       	sbrc	r31, 7
+        tmp_idx += BUFFER_SIZE;
+    2cc6:	be 96       	adiw	r30, 0x2e	; 46
+    2cc8:	ee 0f       	add	r30, r30
+    2cca:	ff 1f       	adc	r31, r31
+    2ccc:	e8 5f       	subi	r30, 0xF8	; 248
+    2cce:	fa 4f       	sbci	r31, 0xFA	; 250
+    return left_data_array[tmp_idx];
+}
+    2cd0:	80 81       	ld	r24, Z
+    2cd2:	91 81       	ldd	r25, Z+1	; 0x01
+    2cd4:	08 95       	ret
+
+00002cd6 <right_data_at>:
+
+int right_data_at(int index) {
+    int tmp_idx = right_data_idx - index;
+    2cd6:	e0 91 cb 05 	lds	r30, 0x05CB
+    2cda:	f0 91 cc 05 	lds	r31, 0x05CC
+    2cde:	e8 1b       	sub	r30, r24
+    2ce0:	f9 0b       	sbc	r31, r25
+    if (tmp_idx < 0)
+    2ce2:	f7 fd       	sbrc	r31, 7
+        tmp_idx += BUFFER_SIZE;
+    2ce4:	be 96       	adiw	r30, 0x2e	; 46
+    2ce6:	ee 0f       	add	r30, r30
+    2ce8:	ff 1f       	adc	r31, r31
+    2cea:	e3 59       	subi	r30, 0x93	; 147
+    2cec:	fa 4f       	sbci	r31, 0xFA	; 250
+    return right_data_array[tmp_idx];
+}
+    2cee:	80 81       	ld	r24, Z
+    2cf0:	91 81       	ldd	r25, Z+1	; 0x01
+    2cf2:	08 95       	ret
+
+00002cf4 <get_dx>:
+
+int get_dx(char encoder, int index) {
+    2cf4:	ff 92       	push	r15
+    2cf6:	0f 93       	push	r16
+    2cf8:	1f 93       	push	r17
+    2cfa:	cf 93       	push	r28
+    2cfc:	df 93       	push	r29
+    2cfe:	f8 2e       	mov	r15, r24
+		return right_data_array[right_data_idx + 1];
+}
+
+/* Helper functions for encoder_get_v */
+int left_data_at(int index) {
+    int tmp_idx = left_data_idx - index;
+    2d00:	80 91 64 05 	lds	r24, 0x0564
+    2d04:	90 91 65 05 	lds	r25, 0x0565
+        tmp_idx += BUFFER_SIZE;
+    return left_data_array[tmp_idx];
+}
+
+int right_data_at(int index) {
+    int tmp_idx = right_data_idx - index;
+    2d08:	20 91 cb 05 	lds	r18, 0x05CB
+    2d0c:	30 91 cc 05 	lds	r19, 0x05CC
+    2d10:	86 97       	sbiw	r24, 0x26	; 38
+    2d12:	8c 01       	movw	r16, r24
+    2d14:	06 1b       	sub	r16, r22
+    2d16:	17 0b       	sbc	r17, r23
+    2d18:	dc 01       	movw	r26, r24
+    2d1a:	96 96       	adiw	r26, 0x26	; 38
+    2d1c:	a6 1b       	sub	r26, r22
+    2d1e:	b7 0b       	sbc	r27, r23
+    2d20:	26 52       	subi	r18, 0x26	; 38
+    2d22:	30 40       	sbci	r19, 0x00	; 0
+    2d24:	e9 01       	movw	r28, r18
+    2d26:	c6 1b       	sub	r28, r22
+    2d28:	d7 0b       	sbc	r29, r23
+    2d2a:	2a 5d       	subi	r18, 0xDA	; 218
+    2d2c:	3f 4f       	sbci	r19, 0xFF	; 255
+    2d2e:	26 1b       	sub	r18, r22
+    2d30:	37 0b       	sbc	r19, r23
+    2d32:	60 e0       	ldi	r22, 0x00	; 0
+    2d34:	70 e0       	ldi	r23, 0x00	; 0
+int get_dx(char encoder, int index) {
+    int dx, ctr;
+    ctr = 0;
+    dx = 1024;
+    do {
+        if (encoder == LEFT)
+    2d36:	ff 20       	and	r15, r15
+    2d38:	99 f4       	brne	.+38     	; 0x2d60 <get_dx+0x6c>
+    2d3a:	fd 01       	movw	r30, r26
+}
+
+/* Helper functions for encoder_get_v */
+int left_data_at(int index) {
+    int tmp_idx = left_data_idx - index;
+    if (tmp_idx < 0)
+    2d3c:	b7 fd       	sbrc	r27, 7
+    2d3e:	be 96       	adiw	r30, 0x2e	; 46
+        tmp_idx += BUFFER_SIZE;
+    return left_data_array[tmp_idx];
+    2d40:	ee 0f       	add	r30, r30
+    2d42:	ff 1f       	adc	r31, r31
+    2d44:	e8 5f       	subi	r30, 0xF8	; 248
+    2d46:	fa 4f       	sbci	r31, 0xFA	; 250
+    2d48:	40 81       	ld	r20, Z
+    2d4a:	51 81       	ldd	r21, Z+1	; 0x01
+    2d4c:	f8 01       	movw	r30, r16
+}
+
+/* Helper functions for encoder_get_v */
+int left_data_at(int index) {
+    int tmp_idx = left_data_idx - index;
+    if (tmp_idx < 0)
+    2d4e:	17 ff       	sbrs	r17, 7
+    2d50:	02 c0       	rjmp	.+4      	; 0x2d56 <get_dx+0x62>
+    2d52:	fd 01       	movw	r30, r26
+    2d54:	38 96       	adiw	r30, 0x08	; 8
+    int dx, ctr;
+    ctr = 0;
+    dx = 1024;
+    do {
+        if (encoder == LEFT)
+            dx = left_data_at(index+ctr) - left_data_at(index+ctr+38);
+    2d56:	ee 0f       	add	r30, r30
+    2d58:	ff 1f       	adc	r31, r31
+    2d5a:	e8 5f       	subi	r30, 0xF8	; 248
+    2d5c:	fa 4f       	sbci	r31, 0xFA	; 250
+    2d5e:	12 c0       	rjmp	.+36     	; 0x2d84 <get_dx+0x90>
+    2d60:	f9 01       	movw	r30, r18
+    return left_data_array[tmp_idx];
+}
+
+int right_data_at(int index) {
+    int tmp_idx = right_data_idx - index;
+    if (tmp_idx < 0)
+    2d62:	37 fd       	sbrc	r19, 7
+    2d64:	be 96       	adiw	r30, 0x2e	; 46
+        tmp_idx += BUFFER_SIZE;
+    return right_data_array[tmp_idx];
+    2d66:	ee 0f       	add	r30, r30
+    2d68:	ff 1f       	adc	r31, r31
+    2d6a:	e3 59       	subi	r30, 0x93	; 147
+    2d6c:	fa 4f       	sbci	r31, 0xFA	; 250
+    2d6e:	40 81       	ld	r20, Z
+    2d70:	51 81       	ldd	r21, Z+1	; 0x01
+    2d72:	fe 01       	movw	r30, r28
+    return left_data_array[tmp_idx];
+}
+
+int right_data_at(int index) {
+    int tmp_idx = right_data_idx - index;
+    if (tmp_idx < 0)
+    2d74:	d7 ff       	sbrs	r29, 7
+    2d76:	02 c0       	rjmp	.+4      	; 0x2d7c <get_dx+0x88>
+    2d78:	f9 01       	movw	r30, r18
+    2d7a:	38 96       	adiw	r30, 0x08	; 8
+    dx = 1024;
+    do {
+        if (encoder == LEFT)
+            dx = left_data_at(index+ctr) - left_data_at(index+ctr+38);
+        else
+            dx = right_data_at(index+ctr) - right_data_at(index+ctr+38);
+    2d7c:	ee 0f       	add	r30, r30
+    2d7e:	ff 1f       	adc	r31, r31
+    2d80:	e3 59       	subi	r30, 0x93	; 147
+    2d82:	fa 4f       	sbci	r31, 0xFA	; 250
+    2d84:	80 81       	ld	r24, Z
+    2d86:	91 81       	ldd	r25, Z+1	; 0x01
+    2d88:	48 1b       	sub	r20, r24
+    2d8a:	59 0b       	sbc	r21, r25
+        ctr++;
+    } while ((dx > 30 || dx < -30) && ctr < 3); 
+    2d8c:	ca 01       	movw	r24, r20
+    2d8e:	4e 96       	adiw	r24, 0x1e	; 30
+    2d90:	cd 97       	sbiw	r24, 0x3d	; 61
+    2d92:	68 f0       	brcs	.+26     	; 0x2dae <get_dx+0xba>
+    do {
+        if (encoder == LEFT)
+            dx = left_data_at(index+ctr) - left_data_at(index+ctr+38);
+        else
+            dx = right_data_at(index+ctr) - right_data_at(index+ctr+38);
+        ctr++;
+    2d94:	6f 5f       	subi	r22, 0xFF	; 255
+    2d96:	7f 4f       	sbci	r23, 0xFF	; 255
+    2d98:	01 50       	subi	r16, 0x01	; 1
+    2d9a:	10 40       	sbci	r17, 0x00	; 0
+    2d9c:	11 97       	sbiw	r26, 0x01	; 1
+    2d9e:	21 97       	sbiw	r28, 0x01	; 1
+    2da0:	21 50       	subi	r18, 0x01	; 1
+    2da2:	30 40       	sbci	r19, 0x00	; 0
+    } while ((dx > 30 || dx < -30) && ctr < 3); 
+    2da4:	63 30       	cpi	r22, 0x03	; 3
+    2da6:	71 05       	cpc	r23, r1
+    2da8:	31 f6       	brne	.-116    	; 0x2d36 <get_dx+0x42>
+    2daa:	40 e0       	ldi	r20, 0x00	; 0
+    2dac:	54 e0       	ldi	r21, 0x04	; 4
+    if (dx > 30 || dx < -30)
+        return ERR_VEL;
+    return dx; 
+}
+    2dae:	ca 01       	movw	r24, r20
+    2db0:	df 91       	pop	r29
+    2db2:	cf 91       	pop	r28
+    2db4:	1f 91       	pop	r17
+    2db6:	0f 91       	pop	r16
+    2db8:	ff 90       	pop	r15
+    2dba:	08 95       	ret
+
+00002dbc <encoder_get_v>:
+ *         if an error occurs (1024 * 2 = 2048)
+ *
+ * @bug This uses hard coded values and results are inconsistent.
+ *      Use at your own risk.
+ */
+int encoder_get_v(char encoder){
+    2dbc:	1f 93       	push	r17
+    2dbe:	cf 93       	push	r28
+    2dc0:	df 93       	push	r29
+    2dc2:	18 2f       	mov	r17, r24
+    int vel1, vel2;
+    vel1 = get_dx(encoder, 0);
+    2dc4:	60 e0       	ldi	r22, 0x00	; 0
+    2dc6:	70 e0       	ldi	r23, 0x00	; 0
+    2dc8:	0e 94 7a 16 	call	0x2cf4	; 0x2cf4 <get_dx>
+    2dcc:	ec 01       	movw	r28, r24
+    vel2 = get_dx(encoder, 1);
+    2dce:	81 2f       	mov	r24, r17
+    2dd0:	61 e0       	ldi	r22, 0x01	; 1
+    2dd2:	70 e0       	ldi	r23, 0x00	; 0
+    2dd4:	0e 94 7a 16 	call	0x2cf4	; 0x2cf4 <get_dx>
+
+    if (vel1 == ERR_VEL && vel2 == ERR_VEL)
+    2dd8:	24 e0       	ldi	r18, 0x04	; 4
+    2dda:	c0 30       	cpi	r28, 0x00	; 0
+    2ddc:	d2 07       	cpc	r29, r18
+    2dde:	39 f4       	brne	.+14     	; 0x2dee <encoder_get_v+0x32>
+    2de0:	24 e0       	ldi	r18, 0x04	; 4
+    2de2:	80 30       	cpi	r24, 0x00	; 0
+    2de4:	92 07       	cpc	r25, r18
+    2de6:	49 f4       	brne	.+18     	; 0x2dfa <encoder_get_v+0x3e>
+    2de8:	20 e0       	ldi	r18, 0x00	; 0
+    2dea:	38 e0       	ldi	r19, 0x08	; 8
+    2dec:	0d c0       	rjmp	.+26     	; 0x2e08 <encoder_get_v+0x4c>
+        return ERR_VEL << 1;
+    else if (vel2 == ERR_VEL)
+    2dee:	24 e0       	ldi	r18, 0x04	; 4
+    2df0:	80 30       	cpi	r24, 0x00	; 0
+    2df2:	92 07       	cpc	r25, r18
+    2df4:	31 f4       	brne	.+12     	; 0x2e02 <encoder_get_v+0x46>
+        return vel1 << 1;
+    2df6:	9e 01       	movw	r18, r28
+    2df8:	01 c0       	rjmp	.+2      	; 0x2dfc <encoder_get_v+0x40>
+    else if (vel1 == ERR_VEL)
+        return vel2 << 1;
+    2dfa:	9c 01       	movw	r18, r24
+    2dfc:	22 0f       	add	r18, r18
+    2dfe:	33 1f       	adc	r19, r19
+    2e00:	03 c0       	rjmp	.+6      	; 0x2e08 <encoder_get_v+0x4c>
+    else
+        return vel1 + vel2;
+    2e02:	9c 01       	movw	r18, r24
+    2e04:	2c 0f       	add	r18, r28
+    2e06:	3d 1f       	adc	r19, r29
+}
+    2e08:	c9 01       	movw	r24, r18
+    2e0a:	df 91       	pop	r29
+    2e0c:	cf 91       	pop	r28
+    2e0e:	1f 91       	pop	r17
+    2e10:	08 95       	ret
+
+00002e12 <encoders_init>:
+* @brief Initializes encoder variables and the hardware interface.
+*/
+void encoders_init(void){
+	int i;
+	
+	data_ready=0;
+    2e12:	10 92 03 05 	sts	0x0503, r1
+    2e16:	10 92 02 05 	sts	0x0502, r1
+
+	spi_init(encoder_recv, encoder_recv_complete);
+    2e1a:	80 e0       	ldi	r24, 0x00	; 0
+    2e1c:	95 e1       	ldi	r25, 0x15	; 21
+    2e1e:	63 e4       	ldi	r22, 0x43	; 67
+    2e20:	77 e1       	ldi	r23, 0x17	; 23
+    2e22:	0e 94 77 1f 	call	0x3eee	; 0x3eee <spi_init>
+	encoder_buf_index = 0;
+    2e26:	10 92 6c 05 	sts	0x056C, r1
+	left_data_buf = 0;
+    2e2a:	10 92 07 05 	sts	0x0507, r1
+    2e2e:	10 92 06 05 	sts	0x0506, r1
+	right_data_buf= 0;
+    2e32:	10 92 ce 05 	sts	0x05CE, r1
+    2e36:	10 92 cd 05 	sts	0x05CD, r1
+	left_data = -1;
+    2e3a:	8f ef       	ldi	r24, 0xFF	; 255
+    2e3c:	9f ef       	ldi	r25, 0xFF	; 255
+    2e3e:	90 93 d0 05 	sts	0x05D0, r25
+    2e42:	80 93 cf 05 	sts	0x05CF, r24
+	right_data = -1;
+    2e46:	90 93 05 05 	sts	0x0505, r25
+    2e4a:	80 93 04 05 	sts	0x0504, r24
+	
+	//RING_BUFFER_INIT(enc_buffer,BUFFER_SIZE);
+	left_data_idx = 0;
+    2e4e:	10 92 65 05 	sts	0x0565, r1
+    2e52:	10 92 64 05 	sts	0x0564, r1
+	right_data_idx = 0;
+    2e56:	10 92 cc 05 	sts	0x05CC, r1
+    2e5a:	10 92 cb 05 	sts	0x05CB, r1
+    2e5e:	e8 e0       	ldi	r30, 0x08	; 8
+    2e60:	f5 e0       	ldi	r31, 0x05	; 5
+	for(i = 0; i < BUFFER_SIZE; i++) {
+		left_data_array[i] = 0;
+    2e62:	11 92       	st	Z+, r1
+    2e64:	11 92       	st	Z+, r1
+	right_data = -1;
+	
+	//RING_BUFFER_INIT(enc_buffer,BUFFER_SIZE);
+	left_data_idx = 0;
+	right_data_idx = 0;
+	for(i = 0; i < BUFFER_SIZE; i++) {
+    2e66:	85 e0       	ldi	r24, 0x05	; 5
+    2e68:	e4 36       	cpi	r30, 0x64	; 100
+    2e6a:	f8 07       	cpc	r31, r24
+    2e6c:	d1 f7       	brne	.-12     	; 0x2e62 <encoders_init+0x50>
+    2e6e:	ed e6       	ldi	r30, 0x6D	; 109
+    2e70:	f5 e0       	ldi	r31, 0x05	; 5
+		left_data_array[i] = 0;
+	}
+	for(i = 0; i < BUFFER_SIZE; i++) {
+		right_data_array[i] = 0;
+    2e72:	11 92       	st	Z+, r1
+    2e74:	11 92       	st	Z+, r1
+	left_data_idx = 0;
+	right_data_idx = 0;
+	for(i = 0; i < BUFFER_SIZE; i++) {
+		left_data_array[i] = 0;
+	}
+	for(i = 0; i < BUFFER_SIZE; i++) {
+    2e76:	85 e0       	ldi	r24, 0x05	; 5
+    2e78:	e9 3c       	cpi	r30, 0xC9	; 201
+    2e7a:	f8 07       	cpc	r31, r24
+    2e7c:	d1 f7       	brne	.-12     	; 0x2e72 <encoders_init+0x60>
+		right_data_array[i] = 0;
+	}
+	spi_transfer(5);
+    2e7e:	85 e0       	ldi	r24, 0x05	; 5
+    2e80:	0e 94 8b 1f 	call	0x3f16	; 0x3f16 <spi_transfer>
+}
+    2e84:	08 95       	ret
+
+00002e86 <encoder_recv_complete>:
+int left_data_at(int index);
+int right_data_at(int index);
+int get_dx(char encoder, int index);
+
+void encoder_recv_complete(void){
+  	encoder_buf_index = 0;
+    2e86:	10 92 6c 05 	sts	0x056C, r1
+	data_ready++;
+    2e8a:	80 91 02 05 	lds	r24, 0x0502
+    2e8e:	90 91 03 05 	lds	r25, 0x0503
+    2e92:	01 96       	adiw	r24, 0x01	; 1
+    2e94:	90 93 03 05 	sts	0x0503, r25
+    2e98:	80 93 02 05 	sts	0x0502, r24
+  
+   	spi_transfer(5);
+    2e9c:	85 e0       	ldi	r24, 0x05	; 5
+    2e9e:	0e 94 8b 1f 	call	0x3f16	; 0x3f16 <spi_transfer>
+}
+    2ea2:	08 95       	ret
+
+00002ea4 <lcd_clear_screen>:
+/**
+ * Clears the LCD screen. lcd_init must be called first.
+ * 
+ * @see lcd_init
+ **/
+void lcd_clear_screen( void ) {
+    2ea4:	80 e0       	ldi	r24, 0x00	; 0
+    2ea6:	90 e0       	ldi	r25, 0x00	; 0
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2ea8:	1f b8       	out	0x0f, r1	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2eaa:	77 9b       	sbis	0x0e, 7	; 14
+    2eac:	fe cf       	rjmp	.-4      	; 0x2eaa <lcd_clear_screen+0x6>
+ * 
+ * @see lcd_init
+ **/
+void lcd_clear_screen( void ) {
+  int i;
+  for (i = 0; i < 504; i++)
+    2eae:	01 96       	adiw	r24, 0x01	; 1
+    2eb0:	21 e0       	ldi	r18, 0x01	; 1
+    2eb2:	88 3f       	cpi	r24, 0xF8	; 248
+    2eb4:	92 07       	cpc	r25, r18
+    2eb6:	c1 f7       	brne	.-16     	; 0x2ea8 <lcd_clear_screen+0x4>
+ * @param y The y coordinate of the new position
+ *
+ * @see lcd_init
+ **/
+void lcd_gotoxy(int x, int y) {
+  LCDRESETPORT &= ~(D_C);
+    2eb8:	95 98       	cbi	0x12, 5	; 18
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2eba:	80 e4       	ldi	r24, 0x40	; 64
+    2ebc:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2ebe:	77 9b       	sbis	0x0e, 7	; 14
+    2ec0:	fe cf       	rjmp	.-4      	; 0x2ebe <lcd_clear_screen+0x1a>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2ec2:	80 e8       	ldi	r24, 0x80	; 128
+    2ec4:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2ec6:	77 9b       	sbis	0x0e, 7	; 14
+    2ec8:	fe cf       	rjmp	.-4      	; 0x2ec6 <lcd_clear_screen+0x22>
+ **/
+void lcd_gotoxy(int x, int y) {
+  LCDRESETPORT &= ~(D_C);
+  lcd_putbyte(0x40 | (y & 0x07));
+  lcd_putbyte(0x80 | (x & 0x7f));
+  LCDRESETPORT |= D_C;
+    2eca:	95 9a       	sbi	0x12, 5	; 18
+  int i;
+  for (i = 0; i < 504; i++)
+    lcd_putbyte(0x0);
+	
+  lcd_gotoxy(0,0);
+}
+    2ecc:	08 95       	ret
+
+00002ece <lcd_putc>:
+ **/
+void lcd_putc(char c) {
+  int i;
+	
+  for (i = 0; i < 5; i++)
+    lcd_putbyte(pgm_read_byte(&(FontLookup[c-32][i])));
+    2ece:	95 e0       	ldi	r25, 0x05	; 5
+    2ed0:	89 9f       	mul	r24, r25
+    2ed2:	c0 01       	movw	r24, r0
+    2ed4:	11 24       	eor	r1, r1
+    2ed6:	fc 01       	movw	r30, r24
+    2ed8:	e4 51       	subi	r30, 0x14	; 20
+    2eda:	f0 40       	sbci	r31, 0x00	; 0
+ * @see lcd_init
+ **/
+void lcd_putc(char c) {
+  int i;
+	
+  for (i = 0; i < 5; i++)
+    2edc:	9c 01       	movw	r18, r24
+    2ede:	2b 59       	subi	r18, 0x9B	; 155
+    2ee0:	30 40       	sbci	r19, 0x00	; 0
+    2ee2:	24 57       	subi	r18, 0x74	; 116
+    2ee4:	3f 4f       	sbci	r19, 0xFF	; 255
+    lcd_putbyte(pgm_read_byte(&(FontLookup[c-32][i])));
+    2ee6:	84 91       	lpm	r24, Z+
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2ee8:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2eea:	77 9b       	sbis	0x0e, 7	; 14
+    2eec:	fe cf       	rjmp	.-4      	; 0x2eea <lcd_putc+0x1c>
+    2eee:	31 96       	adiw	r30, 0x01	; 1
+ * @see lcd_init
+ **/
+void lcd_putc(char c) {
+  int i;
+	
+  for (i = 0; i < 5; i++)
+    2ef0:	e2 17       	cp	r30, r18
+    2ef2:	f3 07       	cpc	r31, r19
+    2ef4:	c1 f7       	brne	.-16     	; 0x2ee6 <lcd_putc+0x18>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2ef6:	1f b8       	out	0x0f, r1	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2ef8:	77 9b       	sbis	0x0e, 7	; 14
+    2efa:	fe cf       	rjmp	.-4      	; 0x2ef8 <lcd_putc+0x2a>
+  int i;
+	
+  for (i = 0; i < 5; i++)
+    lcd_putbyte(pgm_read_byte(&(FontLookup[c-32][i])));
+  lcd_putbyte(0);
+}
+    2efc:	08 95       	ret
+
+00002efe <lcd_puts>:
+
+/*
+  print an entire string to the lcd
+*/
+void lcd_puts(char *s) {
+    2efe:	cf 93       	push	r28
+    2f00:	df 93       	push	r29
+    2f02:	ec 01       	movw	r28, r24
+    2f04:	03 c0       	rjmp	.+6      	; 0x2f0c <lcd_puts+0xe>
+  char *t = s;
+  while (*t != 0) {
+    lcd_putc(*t);
+    2f06:	0e 94 67 17 	call	0x2ece	; 0x2ece <lcd_putc>
+    t++;
+    2f0a:	21 96       	adiw	r28, 0x01	; 1
+/*
+  print an entire string to the lcd
+*/
+void lcd_puts(char *s) {
+  char *t = s;
+  while (*t != 0) {
+    2f0c:	88 81       	ld	r24, Y
+    2f0e:	88 23       	and	r24, r24
+    2f10:	d1 f7       	brne	.-12     	; 0x2f06 <lcd_puts+0x8>
+    lcd_putc(*t);
+    t++;
+  }
+}
+    2f12:	df 91       	pop	r29
+    2f14:	cf 91       	pop	r28
+    2f16:	08 95       	ret
+
+00002f18 <lcd_gotoxy>:
+ * @param y The y coordinate of the new position
+ *
+ * @see lcd_init
+ **/
+void lcd_gotoxy(int x, int y) {
+  LCDRESETPORT &= ~(D_C);
+    2f18:	95 98       	cbi	0x12, 5	; 18
+  lcd_putbyte(0x40 | (y & 0x07));
+    2f1a:	67 70       	andi	r22, 0x07	; 7
+    2f1c:	60 64       	ori	r22, 0x40	; 64
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2f1e:	6f b9       	out	0x0f, r22	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2f20:	77 9b       	sbis	0x0e, 7	; 14
+    2f22:	fe cf       	rjmp	.-4      	; 0x2f20 <lcd_gotoxy+0x8>
+ * @see lcd_init
+ **/
+void lcd_gotoxy(int x, int y) {
+  LCDRESETPORT &= ~(D_C);
+  lcd_putbyte(0x40 | (y & 0x07));
+  lcd_putbyte(0x80 | (x & 0x7f));
+    2f24:	80 68       	ori	r24, 0x80	; 128
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2f26:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2f28:	77 9b       	sbis	0x0e, 7	; 14
+    2f2a:	fe cf       	rjmp	.-4      	; 0x2f28 <lcd_gotoxy+0x10>
+ **/
+void lcd_gotoxy(int x, int y) {
+  LCDRESETPORT &= ~(D_C);
+  lcd_putbyte(0x40 | (y & 0x07));
+  lcd_putbyte(0x80 | (x & 0x7f));
+  LCDRESETPORT |= D_C;
+    2f2c:	95 9a       	sbi	0x12, 5	; 18
+}
+    2f2e:	08 95       	ret
+
+00002f30 <lcd_puti>:
+ * 
+ * @param value the integer to print
+ *
+ * @see lcd_init
+ **/
+void lcd_puti(int value ) {
+    2f30:	cf 92       	push	r12
+    2f32:	df 92       	push	r13
+    2f34:	ff 92       	push	r15
+    2f36:	0f 93       	push	r16
+    2f38:	1f 93       	push	r17
+    2f3a:	df 93       	push	r29
+    2f3c:	cf 93       	push	r28
+    2f3e:	00 d0       	rcall	.+0      	; 0x2f40 <lcd_puti+0x10>
+    2f40:	00 d0       	rcall	.+0      	; 0x2f42 <lcd_puti+0x12>
+    2f42:	00 d0       	rcall	.+0      	; 0x2f44 <lcd_puti+0x14>
+    2f44:	cd b7       	in	r28, 0x3d	; 61
+    2f46:	de b7       	in	r29, 0x3e	; 62
+    2f48:	8c 01       	movw	r16, r24
+  unsigned char lcd_data[6]={'0','0','0','0','0','0' }, position=sizeof(lcd_data), radix=10; 
+    2f4a:	de 01       	movw	r26, r28
+    2f4c:	11 96       	adiw	r26, 0x01	; 1
+    2f4e:	e8 e9       	ldi	r30, 0x98	; 152
+    2f50:	f1 e0       	ldi	r31, 0x01	; 1
+    2f52:	86 e0       	ldi	r24, 0x06	; 6
+    2f54:	01 90       	ld	r0, Z+
+    2f56:	0d 92       	st	X+, r0
+    2f58:	81 50       	subi	r24, 0x01	; 1
+    2f5a:	e1 f7       	brne	.-8      	; 0x2f54 <lcd_puti+0x24>
+
+  /* convert int to ascii  */ 
+  if(value<0) { 
+    2f5c:	17 ff       	sbrs	r17, 7
+    2f5e:	06 c0       	rjmp	.+12     	; 0x2f6c <lcd_puti+0x3c>
+    lcd_putc('-'); 
+    2f60:	8d e2       	ldi	r24, 0x2D	; 45
+    2f62:	0e 94 67 17 	call	0x2ece	; 0x2ece <lcd_putc>
+    value=-value; 
+    2f66:	10 95       	com	r17
+    2f68:	01 95       	neg	r16
+    2f6a:	1f 4f       	sbci	r17, 0xFF	; 255
+    2f6c:	86 e0       	ldi	r24, 0x06	; 6
+    2f6e:	f8 2e       	mov	r15, r24
+  }    
+  do { 
+    position--; 
+    *(lcd_data+position)=(value%radix)+'0'; 
+    2f70:	6e 01       	movw	r12, r28
+    2f72:	08 94       	sec
+    2f74:	c1 1c       	adc	r12, r1
+    2f76:	d1 1c       	adc	r13, r1
+  if(value<0) { 
+    lcd_putc('-'); 
+    value=-value; 
+  }    
+  do { 
+    position--; 
+    2f78:	fa 94       	dec	r15
+    *(lcd_data+position)=(value%radix)+'0'; 
+    2f7a:	f6 01       	movw	r30, r12
+    2f7c:	ef 0d       	add	r30, r15
+    2f7e:	f1 1d       	adc	r31, r1
+    2f80:	c8 01       	movw	r24, r16
+    2f82:	6a e0       	ldi	r22, 0x0A	; 10
+    2f84:	70 e0       	ldi	r23, 0x00	; 0
+    2f86:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    2f8a:	80 5d       	subi	r24, 0xD0	; 208
+    2f8c:	80 83       	st	Z, r24
+    value/=radix;  
+    2f8e:	c8 01       	movw	r24, r16
+    2f90:	6a e0       	ldi	r22, 0x0A	; 10
+    2f92:	70 e0       	ldi	r23, 0x00	; 0
+    2f94:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    2f98:	8b 01       	movw	r16, r22
+  } while(value); 
+    2f9a:	61 15       	cp	r22, r1
+    2f9c:	71 05       	cpc	r23, r1
+    2f9e:	61 f7       	brne	.-40     	; 0x2f78 <lcd_puti+0x48>
+    2fa0:	08 c0       	rjmp	.+16     	; 0x2fb2 <lcd_puti+0x82>
+
+    
+  /* start displaying the number */
+  for(;position<=(sizeof(lcd_data)-1);position++)
+    lcd_putc(lcd_data[position]);
+    2fa2:	f8 01       	movw	r30, r16
+    2fa4:	ef 0d       	add	r30, r15
+    2fa6:	f1 1d       	adc	r31, r1
+    2fa8:	80 81       	ld	r24, Z
+    2faa:	0e 94 67 17 	call	0x2ece	; 0x2ece <lcd_putc>
+    value/=radix;  
+  } while(value); 
+
+    
+  /* start displaying the number */
+  for(;position<=(sizeof(lcd_data)-1);position++)
+    2fae:	f3 94       	inc	r15
+    2fb0:	03 c0       	rjmp	.+6      	; 0x2fb8 <lcd_puti+0x88>
+    lcd_putc(lcd_data[position]);
+    2fb2:	8e 01       	movw	r16, r28
+    2fb4:	0f 5f       	subi	r16, 0xFF	; 255
+    2fb6:	1f 4f       	sbci	r17, 0xFF	; 255
+    value/=radix;  
+  } while(value); 
+
+    
+  /* start displaying the number */
+  for(;position<=(sizeof(lcd_data)-1);position++)
+    2fb8:	85 e0       	ldi	r24, 0x05	; 5
+    2fba:	8f 15       	cp	r24, r15
+    2fbc:	90 f7       	brcc	.-28     	; 0x2fa2 <lcd_puti+0x72>
+    lcd_putc(lcd_data[position]);
+
+  return;
+}
+    2fbe:	26 96       	adiw	r28, 0x06	; 6
+    2fc0:	0f b6       	in	r0, 0x3f	; 63
+    2fc2:	f8 94       	cli
+    2fc4:	de bf       	out	0x3e, r29	; 62
+    2fc6:	0f be       	out	0x3f, r0	; 63
+    2fc8:	cd bf       	out	0x3d, r28	; 61
+    2fca:	cf 91       	pop	r28
+    2fcc:	df 91       	pop	r29
+    2fce:	1f 91       	pop	r17
+    2fd0:	0f 91       	pop	r16
+    2fd2:	ff 90       	pop	r15
+    2fd4:	df 90       	pop	r13
+    2fd6:	cf 90       	pop	r12
+    2fd8:	08 95       	ret
+
+00002fda <lcd_putbyte>:
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    2fda:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    2fdc:	77 9b       	sbis	0x0e, 7	; 14
+    2fde:	fe cf       	rjmp	.-4      	; 0x2fdc <lcd_putbyte+0x2>
+}
+    2fe0:	08 95       	ret
+
+00002fe2 <lcd_init>:
+/**
+ * Initializes the LCD. Must be called before any other
+ * LCD functions.
+ **/
+void lcd_init(void) {
+  LCDDDR |= (SCE | SDI | SCK);
+    2fe2:	87 b3       	in	r24, 0x17	; 23
+    2fe4:	87 60       	ori	r24, 0x07	; 7
+    2fe6:	87 bb       	out	0x17, r24	; 23
+  LCDRESETDDR |= (RST|D_C);
+    2fe8:	81 b3       	in	r24, 0x11	; 17
+    2fea:	80 63       	ori	r24, 0x30	; 48
+    2fec:	81 bb       	out	0x11, r24	; 17
+
+  LCDPORT &= ~( SCE | SDI | SCK);
+    2fee:	88 b3       	in	r24, 0x18	; 24
+    2ff0:	88 7f       	andi	r24, 0xF8	; 248
+    2ff2:	88 bb       	out	0x18, r24	; 24
+  LCDRESETPORT &=~(D_C);
+    2ff4:	95 98       	cbi	0x12, 5	; 18
+  
+  SPCR |= 0x50;//0b01010000; // no SPI int, SPI en, Master, sample on rising edge, fosc/2
+    2ff6:	8d b1       	in	r24, 0x0d	; 13
+    2ff8:	80 65       	ori	r24, 0x50	; 80
+    2ffa:	8d b9       	out	0x0d, r24	; 13
+  SPSR |= 0x01;       // a continuation of the above
+    2ffc:	70 9a       	sbi	0x0e, 0	; 14
+
+  LCDRESETPORT |= RST;
+    2ffe:	94 9a       	sbi	0x12, 4	; 18
+  delay_ms(10);
+    3000:	8a e0       	ldi	r24, 0x0A	; 10
+    3002:	90 e0       	ldi	r25, 0x00	; 0
+    3004:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+  LCDRESETPORT &= (~RST);
+    3008:	94 98       	cbi	0x12, 4	; 18
+  delay_ms(100);
+    300a:	84 e6       	ldi	r24, 0x64	; 100
+    300c:	90 e0       	ldi	r25, 0x00	; 0
+    300e:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+  LCDRESETPORT |= RST;
+    3012:	94 9a       	sbi	0x12, 4	; 18
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    3014:	81 e2       	ldi	r24, 0x21	; 33
+    3016:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    3018:	77 9b       	sbis	0x0e, 7	; 14
+    301a:	fe cf       	rjmp	.-4      	; 0x3018 <lcd_init+0x36>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    301c:	88 ec       	ldi	r24, 0xC8	; 200
+    301e:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    3020:	77 9b       	sbis	0x0e, 7	; 14
+    3022:	fe cf       	rjmp	.-4      	; 0x3020 <lcd_init+0x3e>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    3024:	86 e0       	ldi	r24, 0x06	; 6
+    3026:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    3028:	77 9b       	sbis	0x0e, 7	; 14
+    302a:	fe cf       	rjmp	.-4      	; 0x3028 <lcd_init+0x46>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    302c:	83 e1       	ldi	r24, 0x13	; 19
+    302e:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    3030:	77 9b       	sbis	0x0e, 7	; 14
+    3032:	fe cf       	rjmp	.-4      	; 0x3030 <lcd_init+0x4e>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    3034:	80 e2       	ldi	r24, 0x20	; 32
+    3036:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    3038:	77 9b       	sbis	0x0e, 7	; 14
+    303a:	fe cf       	rjmp	.-4      	; 0x3038 <lcd_init+0x56>
+}
+
+/** @} **/ //end defgroup
+
+void lcd_putbyte(unsigned char b) {
+  SPDR = b;
+    303c:	8c e0       	ldi	r24, 0x0C	; 12
+    303e:	8f b9       	out	0x0f, r24	; 15
+  while (!(SPSR & 0x80)); /* Wait until SPI transaction is complete */
+    3040:	77 9b       	sbis	0x0e, 7	; 14
+    3042:	fe cf       	rjmp	.-4      	; 0x3040 <lcd_init+0x5e>
+  lcd_putbyte( 0x06 );  // Set Temp coefficent.
+  lcd_putbyte( 0x13 );  // LCD bias mode 1:48.
+  lcd_putbyte( 0x20 );  // LCD Standard Commands, Horizontal addressing mode.
+  lcd_putbyte( 0x0C );  // LCD in normal mode.
+	
+  LCDRESETPORT |= D_C;		//put it in init instead of main
+    3044:	95 9a       	sbi	0x12, 5	; 18
+	
+  lcd_clear_screen();
+    3046:	0e 94 52 17 	call	0x2ea4	; 0x2ea4 <lcd_clear_screen>
+}
+    304a:	08 95       	ret
+
+0000304c <__vector_16>:
+        if (pwm_read_buffer->channel[current_pwm_channel].time<255)
+            OCR0=pwm_read_buffer->channel[current_pwm_channel].time;
+    }
+}
+
+SIGNAL (SIG_OVERFLOW0) {
+    304c:	1f 92       	push	r1
+    304e:	0f 92       	push	r0
+    3050:	0f b6       	in	r0, 0x3f	; 63
+    3052:	0f 92       	push	r0
+    3054:	0b b6       	in	r0, 0x3b	; 59
+    3056:	0f 92       	push	r0
+    3058:	11 24       	eor	r1, r1
+    305a:	2f 93       	push	r18
+    305c:	3f 93       	push	r19
+    305e:	8f 93       	push	r24
+    3060:	9f 93       	push	r25
+    3062:	af 93       	push	r26
+    3064:	bf 93       	push	r27
+    3066:	cf 93       	push	r28
+    3068:	df 93       	push	r29
+    306a:	ef 93       	push	r30
+    306c:	ff 93       	push	r31
+#ifdef LIGHTS_DEBUG
+    LIGHTS_DEBUG_OVERFLOW_INTERRUPT_START
+#endif
+
+    if (pwm_page_flip) {
+    306e:	80 91 11 04 	lds	r24, 0x0411
+    3072:	88 23       	and	r24, r24
+    3074:	91 f0       	breq	.+36     	; 0x309a <__vector_16+0x4e>
+        // Flip the read buffer with the free buffer. We are in an ISR (and we didn't re-enable interrupts), so we don't
+        // have to synchronize explicitly.
+        struct pwm_t *temp = pwm_read_buffer;
+    3076:	20 91 a5 01 	lds	r18, 0x01A5
+    307a:	30 91 a6 01 	lds	r19, 0x01A6
+        pwm_read_buffer    = pwm_free_buffer;
+    307e:	80 91 a9 01 	lds	r24, 0x01A9
+    3082:	90 91 aa 01 	lds	r25, 0x01AA
+    3086:	90 93 a6 01 	sts	0x01A6, r25
+    308a:	80 93 a5 01 	sts	0x01A5, r24
+        pwm_free_buffer    = temp;
+    308e:	30 93 aa 01 	sts	0x01AA, r19
+    3092:	20 93 a9 01 	sts	0x01A9, r18
+        pwm_page_flip=false;
+    3096:	10 92 11 04 	sts	0x0411, r1
+    }
+
+    // Turn only the appropriate PWM channels on. Do this directly on the orb port because at this point all orbs should
+    // be off anyway.
+    ORBPORT|=all_orbs_mask;
+    309a:	85 b3       	in	r24, 0x15	; 21
+    309c:	87 67       	ori	r24, 0x77	; 119
+    309e:	85 bb       	out	0x15, r24	; 21
+    ORBPORT&=pwm_read_buffer->init_mask;
+    30a0:	85 b3       	in	r24, 0x15	; 21
+    30a2:	c0 91 a5 01 	lds	r28, 0x01A5
+    30a6:	d0 91 a6 01 	lds	r29, 0x01A6
+    30aa:	98 81       	ld	r25, Y
+    30ac:	89 23       	and	r24, r25
+    30ae:	85 bb       	out	0x15, r24	; 21
+    
+    // Start at the first channel
+    current_pwm_channel=0;
+    30b0:	10 92 12 04 	sts	0x0412, r1
+    
+    // Load the first OCR
+    OCR0=pwm_read_buffer->channel[current_pwm_channel].time;
+    30b4:	89 81       	ldd	r24, Y+1	; 0x01
+    30b6:	81 bf       	out	0x31, r24	; 49
+    30b8:	20 e0       	ldi	r18, 0x00	; 0
+	// Some optimization is possible in this function.
+
+    while (1) {
+		// The timer value at which the output compare interrupt should occur (one timer clock cycle after the output
+		// compare condition is detected).
+		uint8_t current_channel_time=pwm_read_buffer->channel[current_pwm_channel].time+1;
+    30ba:	a2 2f       	mov	r26, r18
+    30bc:	b0 e0       	ldi	r27, 0x00	; 0
+		
+		// If the counter is not at this time yet, we don't have to do anything right now.
+		if (current_channel_time>TCNT0) return;
+    30be:	82 b7       	in	r24, 0x32	; 50
+    30c0:	fd 01       	movw	r30, r26
+    30c2:	ee 0f       	add	r30, r30
+    30c4:	ff 1f       	adc	r31, r31
+    30c6:	ec 0f       	add	r30, r28
+    30c8:	fd 1f       	adc	r31, r29
+    30ca:	91 81       	ldd	r25, Z+1	; 0x01
+    30cc:	9f 5f       	subi	r25, 0xFF	; 255
+    30ce:	89 17       	cp	r24, r25
+    30d0:	b8 f0       	brcs	.+46     	; 0x3100 <__vector_16+0xb4>
+		
+		// We have an output compare condition for the current channel.
+		
+        // Turn the current channel off
+        ORBPORT|=pwm_read_buffer->channel[current_pwm_channel].mask;
+    30d2:	95 b3       	in	r25, 0x15	; 21
+    30d4:	11 96       	adiw	r26, 0x01	; 1
+    30d6:	aa 0f       	add	r26, r26
+    30d8:	bb 1f       	adc	r27, r27
+    30da:	ac 0f       	add	r26, r28
+    30dc:	bd 1f       	adc	r27, r29
+    30de:	8c 91       	ld	r24, X
+    30e0:	98 2b       	or	r25, r24
+    30e2:	95 bb       	out	0x15, r25	; 21
+
+		// If this was the last channel, exit
+		if (current_pwm_channel==num_pwm_channels-1) return;
+    30e4:	25 30       	cpi	r18, 0x05	; 5
+    30e6:	61 f0       	breq	.+24     	; 0x3100 <__vector_16+0xb4>
+    30e8:	2f 5f       	subi	r18, 0xFF	; 255
+
+        // Increment the channel index
+        current_pwm_channel++;
+
+        // There is a next channel, load its OCR value
+        if (pwm_read_buffer->channel[current_pwm_channel].time<255)
+    30ea:	e2 2f       	mov	r30, r18
+    30ec:	f0 e0       	ldi	r31, 0x00	; 0
+    30ee:	ee 0f       	add	r30, r30
+    30f0:	ff 1f       	adc	r31, r31
+    30f2:	ec 0f       	add	r30, r28
+    30f4:	fd 1f       	adc	r31, r29
+    30f6:	81 81       	ldd	r24, Z+1	; 0x01
+    30f8:	8f 3f       	cpi	r24, 0xFF	; 255
+    30fa:	f9 f2       	breq	.-66     	; 0x30ba <__vector_16+0x6e>
+            OCR0=pwm_read_buffer->channel[current_pwm_channel].time;
+    30fc:	81 bf       	out	0x31, r24	; 49
+    30fe:	dd cf       	rjmp	.-70     	; 0x30ba <__vector_16+0x6e>
+    3100:	20 93 12 04 	sts	0x0412, r18
+	output_compare ();
+
+#ifdef LIGHTS_DEBUG
+    LIGHTS_DEBUG_OVERFLOW_INTERRUPT_END
+#endif
+}
+    3104:	ff 91       	pop	r31
+    3106:	ef 91       	pop	r30
+    3108:	df 91       	pop	r29
+    310a:	cf 91       	pop	r28
+    310c:	bf 91       	pop	r27
+    310e:	af 91       	pop	r26
+    3110:	9f 91       	pop	r25
+    3112:	8f 91       	pop	r24
+    3114:	3f 91       	pop	r19
+    3116:	2f 91       	pop	r18
+    3118:	0f 90       	pop	r0
+    311a:	0b be       	out	0x3b, r0	; 59
+    311c:	0f 90       	pop	r0
+    311e:	0f be       	out	0x3f, r0	; 63
+    3120:	0f 90       	pop	r0
+    3122:	1f 90       	pop	r1
+    3124:	18 95       	reti
+
+00003126 <__vector_15>:
+
+SIGNAL(SIG_OUTPUT_COMPARE0) {
+    3126:	1f 92       	push	r1
+    3128:	0f 92       	push	r0
+    312a:	0f b6       	in	r0, 0x3f	; 63
+    312c:	0f 92       	push	r0
+    312e:	0b b6       	in	r0, 0x3b	; 59
+    3130:	0f 92       	push	r0
+    3132:	11 24       	eor	r1, r1
+    3134:	2f 93       	push	r18
+    3136:	4f 93       	push	r20
+    3138:	5f 93       	push	r21
+    313a:	8f 93       	push	r24
+    313c:	9f 93       	push	r25
+    313e:	af 93       	push	r26
+    3140:	bf 93       	push	r27
+    3142:	ef 93       	push	r30
+    3144:	ff 93       	push	r31
+	// Some optimization is possible in this function.
+
+    while (1) {
+		// The timer value at which the output compare interrupt should occur (one timer clock cycle after the output
+		// compare condition is detected).
+		uint8_t current_channel_time=pwm_read_buffer->channel[current_pwm_channel].time+1;
+    3146:	40 91 a5 01 	lds	r20, 0x01A5
+    314a:	50 91 a6 01 	lds	r21, 0x01A6
+    314e:	20 91 12 04 	lds	r18, 0x0412
+    3152:	a2 2f       	mov	r26, r18
+    3154:	b0 e0       	ldi	r27, 0x00	; 0
+		
+		// If the counter is not at this time yet, we don't have to do anything right now.
+		if (current_channel_time>TCNT0) return;
+    3156:	82 b7       	in	r24, 0x32	; 50
+    3158:	fd 01       	movw	r30, r26
+    315a:	ee 0f       	add	r30, r30
+    315c:	ff 1f       	adc	r31, r31
+    315e:	e4 0f       	add	r30, r20
+    3160:	f5 1f       	adc	r31, r21
+    3162:	91 81       	ldd	r25, Z+1	; 0x01
+    3164:	9f 5f       	subi	r25, 0xFF	; 255
+    3166:	89 17       	cp	r24, r25
+    3168:	b8 f0       	brcs	.+46     	; 0x3198 <__vector_15+0x72>
+		
+		// We have an output compare condition for the current channel.
+		
+        // Turn the current channel off
+        ORBPORT|=pwm_read_buffer->channel[current_pwm_channel].mask;
+    316a:	95 b3       	in	r25, 0x15	; 21
+    316c:	11 96       	adiw	r26, 0x01	; 1
+    316e:	aa 0f       	add	r26, r26
+    3170:	bb 1f       	adc	r27, r27
+    3172:	a4 0f       	add	r26, r20
+    3174:	b5 1f       	adc	r27, r21
+    3176:	8c 91       	ld	r24, X
+    3178:	98 2b       	or	r25, r24
+    317a:	95 bb       	out	0x15, r25	; 21
+
+		// If this was the last channel, exit
+		if (current_pwm_channel==num_pwm_channels-1) return;
+    317c:	25 30       	cpi	r18, 0x05	; 5
+    317e:	61 f0       	breq	.+24     	; 0x3198 <__vector_15+0x72>
+    3180:	2f 5f       	subi	r18, 0xFF	; 255
+
+        // Increment the channel index
+        current_pwm_channel++;
+
+        // There is a next channel, load its OCR value
+        if (pwm_read_buffer->channel[current_pwm_channel].time<255)
+    3182:	e2 2f       	mov	r30, r18
+    3184:	f0 e0       	ldi	r31, 0x00	; 0
+    3186:	ee 0f       	add	r30, r30
+    3188:	ff 1f       	adc	r31, r31
+    318a:	e4 0f       	add	r30, r20
+    318c:	f5 1f       	adc	r31, r21
+    318e:	81 81       	ldd	r24, Z+1	; 0x01
+    3190:	8f 3f       	cpi	r24, 0xFF	; 255
+    3192:	f9 f2       	breq	.-66     	; 0x3152 <__vector_15+0x2c>
+            OCR0=pwm_read_buffer->channel[current_pwm_channel].time;
+    3194:	81 bf       	out	0x31, r24	; 49
+    3196:	dd cf       	rjmp	.-70     	; 0x3152 <__vector_15+0x2c>
+    3198:	20 93 12 04 	sts	0x0412, r18
+	output_compare ();
+    
+#ifdef LIGHTS_DEBUG
+    LIGHTS_DEBUG_OUTPUT_COMPARE_INTERRUPT_END
+#endif
+}
+    319c:	ff 91       	pop	r31
+    319e:	ef 91       	pop	r30
+    31a0:	bf 91       	pop	r27
+    31a2:	af 91       	pop	r26
+    31a4:	9f 91       	pop	r25
+    31a6:	8f 91       	pop	r24
+    31a8:	5f 91       	pop	r21
+    31aa:	4f 91       	pop	r20
+    31ac:	2f 91       	pop	r18
+    31ae:	0f 90       	pop	r0
+    31b0:	0b be       	out	0x3b, r0	; 59
+    31b2:	0f 90       	pop	r0
+    31b4:	0f be       	out	0x3f, r0	; 63
+    31b6:	0f 90       	pop	r0
+    31b8:	1f 90       	pop	r1
+    31ba:	18 95       	reti
+
+000031bc <apply_orbs>:
+    copy_value(1,0); copy_value(1,1); copy_value(1,2);
+    
+    #undef copy_value
+}
+
+static void apply_orbs (void) {
+    31bc:	0f 93       	push	r16
+    31be:	1f 93       	push	r17
+    31c0:	cf 93       	push	r28
+    31c2:	df 93       	push	r29
+
+#ifdef LIGHTS_DEBUG
+    LIGHTS_DEBUG_APPLY_START
+#endif
+
+    if (enable_orb_pwm) {
+    31c4:	80 91 a4 01 	lds	r24, 0x01A4
+    31c8:	88 23       	and	r24, r24
+    31ca:	09 f4       	brne	.+2      	; 0x31ce <apply_orbs+0x12>
+    31cc:	62 c1       	rjmp	.+708    	; 0x3492 <apply_orbs+0x2d6>
+        // PWM mode
+        
+        pwm_write_buffer->init_mask=~0;
+    31ce:	e0 91 a7 01 	lds	r30, 0x01A7
+    31d2:	f0 91 a8 01 	lds	r31, 0x01A8
+    31d6:	8f ef       	ldi	r24, 0xFF	; 255
+    31d8:	80 83       	st	Z, r24
+        \
+        if (time!=0) \
+            pwm_write_buffer->init_mask &= ~mask; \
+
+    uint8_t index, time, mask;
+    copy_value(0,0); copy_value(0,1); copy_value(0,2);
+    31da:	80 91 f8 05 	lds	r24, 0x05F8
+    31de:	81 50       	subi	r24, 0x01	; 1
+    31e0:	81 83       	std	Z+1, r24	; 0x01
+    31e2:	8f 5f       	subi	r24, 0xFF	; 255
+    31e4:	91 e0       	ldi	r25, 0x01	; 1
+    31e6:	92 83       	std	Z+2, r25	; 0x02
+    31e8:	88 23       	and	r24, r24
+    31ea:	11 f0       	breq	.+4      	; 0x31f0 <apply_orbs+0x34>
+    31ec:	8e ef       	ldi	r24, 0xFE	; 254
+    31ee:	80 83       	st	Z, r24
+    31f0:	80 91 f9 05 	lds	r24, 0x05F9
+    31f4:	81 50       	subi	r24, 0x01	; 1
+    31f6:	83 83       	std	Z+3, r24	; 0x03
+    31f8:	8f 5f       	subi	r24, 0xFF	; 255
+    31fa:	92 e0       	ldi	r25, 0x02	; 2
+    31fc:	94 83       	std	Z+4, r25	; 0x04
+    31fe:	88 23       	and	r24, r24
+    3200:	19 f0       	breq	.+6      	; 0x3208 <apply_orbs+0x4c>
+    3202:	80 81       	ld	r24, Z
+    3204:	8d 7f       	andi	r24, 0xFD	; 253
+    3206:	80 83       	st	Z, r24
+    3208:	80 91 fa 05 	lds	r24, 0x05FA
+    320c:	81 50       	subi	r24, 0x01	; 1
+    320e:	85 83       	std	Z+5, r24	; 0x05
+    3210:	8f 5f       	subi	r24, 0xFF	; 255
+    3212:	94 e0       	ldi	r25, 0x04	; 4
+    3214:	96 83       	std	Z+6, r25	; 0x06
+    3216:	88 23       	and	r24, r24
+    3218:	19 f0       	breq	.+6      	; 0x3220 <apply_orbs+0x64>
+    321a:	80 81       	ld	r24, Z
+    321c:	8b 7f       	andi	r24, 0xFB	; 251
+    321e:	80 83       	st	Z, r24
+    copy_value(1,0); copy_value(1,1); copy_value(1,2);
+    3220:	80 91 fb 05 	lds	r24, 0x05FB
+    3224:	81 50       	subi	r24, 0x01	; 1
+    3226:	87 83       	std	Z+7, r24	; 0x07
+    3228:	8f 5f       	subi	r24, 0xFF	; 255
+    322a:	90 e1       	ldi	r25, 0x10	; 16
+    322c:	90 87       	std	Z+8, r25	; 0x08
+    322e:	88 23       	and	r24, r24
+    3230:	19 f0       	breq	.+6      	; 0x3238 <apply_orbs+0x7c>
+    3232:	80 81       	ld	r24, Z
+    3234:	8f 7e       	andi	r24, 0xEF	; 239
+    3236:	80 83       	st	Z, r24
+    3238:	80 91 fc 05 	lds	r24, 0x05FC
+    323c:	81 50       	subi	r24, 0x01	; 1
+    323e:	81 87       	std	Z+9, r24	; 0x09
+    3240:	8f 5f       	subi	r24, 0xFF	; 255
+    3242:	90 e2       	ldi	r25, 0x20	; 32
+    3244:	92 87       	std	Z+10, r25	; 0x0a
+    3246:	88 23       	and	r24, r24
+    3248:	19 f0       	breq	.+6      	; 0x3250 <apply_orbs+0x94>
+    324a:	80 81       	ld	r24, Z
+    324c:	8f 7d       	andi	r24, 0xDF	; 223
+    324e:	80 83       	st	Z, r24
+    3250:	80 91 fd 05 	lds	r24, 0x05FD
+    3254:	81 50       	subi	r24, 0x01	; 1
+    3256:	83 87       	std	Z+11, r24	; 0x0b
+    3258:	8f 5f       	subi	r24, 0xFF	; 255
+    325a:	90 e4       	ldi	r25, 0x40	; 64
+    325c:	94 87       	std	Z+12, r25	; 0x0c
+    325e:	88 23       	and	r24, r24
+    3260:	19 f0       	breq	.+6      	; 0x3268 <apply_orbs+0xac>
+    3262:	80 81       	ld	r24, Z
+    3264:	8f 7b       	andi	r24, 0xBF	; 191
+    3266:	80 83       	st	Z, r24
+    // Pointers to the two PWM channels under inspection
+    struct pwm_channel_t *a, *b;
+
+    // The actual sorting
+    a=first; b=a+1; done=true;
+    bubble next bubble next bubble next bubble next bubble
+    3268:	91 81       	ldd	r25, Z+1	; 0x01
+    326a:	83 81       	ldd	r24, Z+3	; 0x03
+    326c:	89 17       	cp	r24, r25
+    326e:	10 f0       	brcs	.+4      	; 0x3274 <apply_orbs+0xb8>
+    3270:	61 e0       	ldi	r22, 0x01	; 1
+    3272:	07 c0       	rjmp	.+14     	; 0x3282 <apply_orbs+0xc6>
+    3274:	81 83       	std	Z+1, r24	; 0x01
+    3276:	93 83       	std	Z+3, r25	; 0x03
+    3278:	92 81       	ldd	r25, Z+2	; 0x02
+    327a:	84 81       	ldd	r24, Z+4	; 0x04
+    327c:	82 83       	std	Z+2, r24	; 0x02
+    327e:	94 83       	std	Z+4, r25	; 0x04
+    3280:	60 e0       	ldi	r22, 0x00	; 0
+    3282:	df 01       	movw	r26, r30
+    3284:	15 96       	adiw	r26, 0x05	; 5
+    3286:	93 81       	ldd	r25, Z+3	; 0x03
+    3288:	85 81       	ldd	r24, Z+5	; 0x05
+    328a:	89 17       	cp	r24, r25
+    328c:	58 f4       	brcc	.+22     	; 0x32a4 <apply_orbs+0xe8>
+    328e:	83 83       	std	Z+3, r24	; 0x03
+    3290:	95 83       	std	Z+5, r25	; 0x05
+    3292:	94 81       	ldd	r25, Z+4	; 0x04
+    3294:	11 96       	adiw	r26, 0x01	; 1
+    3296:	8c 91       	ld	r24, X
+    3298:	11 97       	sbiw	r26, 0x01	; 1
+    329a:	84 83       	std	Z+4, r24	; 0x04
+    329c:	11 96       	adiw	r26, 0x01	; 1
+    329e:	9c 93       	st	X, r25
+    32a0:	11 97       	sbiw	r26, 0x01	; 1
+    32a2:	60 e0       	ldi	r22, 0x00	; 0
+    32a4:	8d 01       	movw	r16, r26
+    32a6:	0e 5f       	subi	r16, 0xFE	; 254
+    32a8:	1f 4f       	sbci	r17, 0xFF	; 255
+    32aa:	95 81       	ldd	r25, Z+5	; 0x05
+    32ac:	12 96       	adiw	r26, 0x02	; 2
+    32ae:	8c 91       	ld	r24, X
+    32b0:	12 97       	sbiw	r26, 0x02	; 2
+    32b2:	89 17       	cp	r24, r25
+    32b4:	70 f4       	brcc	.+28     	; 0x32d2 <apply_orbs+0x116>
+    32b6:	85 83       	std	Z+5, r24	; 0x05
+    32b8:	12 96       	adiw	r26, 0x02	; 2
+    32ba:	9c 93       	st	X, r25
+    32bc:	12 97       	sbiw	r26, 0x02	; 2
+    32be:	11 96       	adiw	r26, 0x01	; 1
+    32c0:	9c 91       	ld	r25, X
+    32c2:	11 97       	sbiw	r26, 0x01	; 1
+    32c4:	e8 01       	movw	r28, r16
+    32c6:	89 81       	ldd	r24, Y+1	; 0x01
+    32c8:	11 96       	adiw	r26, 0x01	; 1
+    32ca:	8c 93       	st	X, r24
+    32cc:	11 97       	sbiw	r26, 0x01	; 1
+    32ce:	99 83       	std	Y+1, r25	; 0x01
+    32d0:	60 e0       	ldi	r22, 0x00	; 0
+    32d2:	98 01       	movw	r18, r16
+    32d4:	2e 5f       	subi	r18, 0xFE	; 254
+    32d6:	3f 4f       	sbci	r19, 0xFF	; 255
+    32d8:	12 96       	adiw	r26, 0x02	; 2
+    32da:	9c 91       	ld	r25, X
+    32dc:	12 97       	sbiw	r26, 0x02	; 2
+    32de:	e8 01       	movw	r28, r16
+    32e0:	8a 81       	ldd	r24, Y+2	; 0x02
+    32e2:	89 17       	cp	r24, r25
+    32e4:	60 f4       	brcc	.+24     	; 0x32fe <apply_orbs+0x142>
+    32e6:	12 96       	adiw	r26, 0x02	; 2
+    32e8:	8c 93       	st	X, r24
+    32ea:	12 97       	sbiw	r26, 0x02	; 2
+    32ec:	9a 83       	std	Y+2, r25	; 0x02
+    32ee:	99 81       	ldd	r25, Y+1	; 0x01
+    32f0:	e9 01       	movw	r28, r18
+    32f2:	89 81       	ldd	r24, Y+1	; 0x01
+    32f4:	e8 01       	movw	r28, r16
+    32f6:	89 83       	std	Y+1, r24	; 0x01
+    32f8:	e9 01       	movw	r28, r18
+    32fa:	99 83       	std	Y+1, r25	; 0x01
+    32fc:	60 e0       	ldi	r22, 0x00	; 0
+    32fe:	a9 01       	movw	r20, r18
+    3300:	4e 5f       	subi	r20, 0xFE	; 254
+    3302:	5f 4f       	sbci	r21, 0xFF	; 255
+    3304:	e8 01       	movw	r28, r16
+    3306:	9a 81       	ldd	r25, Y+2	; 0x02
+    3308:	e9 01       	movw	r28, r18
+    330a:	8a 81       	ldd	r24, Y+2	; 0x02
+    330c:	89 17       	cp	r24, r25
+    330e:	60 f4       	brcc	.+24     	; 0x3328 <apply_orbs+0x16c>
+    3310:	e8 01       	movw	r28, r16
+    3312:	8a 83       	std	Y+2, r24	; 0x02
+    3314:	e9 01       	movw	r28, r18
+    3316:	9a 83       	std	Y+2, r25	; 0x02
+    3318:	99 81       	ldd	r25, Y+1	; 0x01
+    331a:	ea 01       	movw	r28, r20
+    331c:	89 81       	ldd	r24, Y+1	; 0x01
+    331e:	e9 01       	movw	r28, r18
+    3320:	89 83       	std	Y+1, r24	; 0x01
+    3322:	ea 01       	movw	r28, r20
+    3324:	99 83       	std	Y+1, r25	; 0x01
+    3326:	03 c0       	rjmp	.+6      	; 0x332e <apply_orbs+0x172>
+    if (done) return;
+    3328:	66 23       	and	r22, r22
+    332a:	09 f0       	breq	.+2      	; 0x332e <apply_orbs+0x172>
+    332c:	9f c0       	rjmp	.+318    	; 0x346c <apply_orbs+0x2b0>
+
+    a=first; b=a+1; done=true;
+    bubble next bubble next bubble next bubble
+    332e:	91 81       	ldd	r25, Z+1	; 0x01
+    3330:	83 81       	ldd	r24, Z+3	; 0x03
+    3332:	89 17       	cp	r24, r25
+    3334:	10 f0       	brcs	.+4      	; 0x333a <apply_orbs+0x17e>
+    3336:	91 e0       	ldi	r25, 0x01	; 1
+    3338:	07 c0       	rjmp	.+14     	; 0x3348 <apply_orbs+0x18c>
+    333a:	81 83       	std	Z+1, r24	; 0x01
+    333c:	93 83       	std	Z+3, r25	; 0x03
+    333e:	92 81       	ldd	r25, Z+2	; 0x02
+    3340:	84 81       	ldd	r24, Z+4	; 0x04
+    3342:	82 83       	std	Z+2, r24	; 0x02
+    3344:	94 83       	std	Z+4, r25	; 0x04
+    3346:	90 e0       	ldi	r25, 0x00	; 0
+    3348:	43 81       	ldd	r20, Z+3	; 0x03
+    334a:	85 81       	ldd	r24, Z+5	; 0x05
+    334c:	84 17       	cp	r24, r20
+    334e:	58 f4       	brcc	.+22     	; 0x3366 <apply_orbs+0x1aa>
+    3350:	83 83       	std	Z+3, r24	; 0x03
+    3352:	45 83       	std	Z+5, r20	; 0x05
+    3354:	94 81       	ldd	r25, Z+4	; 0x04
+    3356:	11 96       	adiw	r26, 0x01	; 1
+    3358:	8c 91       	ld	r24, X
+    335a:	11 97       	sbiw	r26, 0x01	; 1
+    335c:	84 83       	std	Z+4, r24	; 0x04
+    335e:	11 96       	adiw	r26, 0x01	; 1
+    3360:	9c 93       	st	X, r25
+    3362:	11 97       	sbiw	r26, 0x01	; 1
+    3364:	90 e0       	ldi	r25, 0x00	; 0
+    3366:	45 81       	ldd	r20, Z+5	; 0x05
+    3368:	12 96       	adiw	r26, 0x02	; 2
+    336a:	8c 91       	ld	r24, X
+    336c:	12 97       	sbiw	r26, 0x02	; 2
+    336e:	84 17       	cp	r24, r20
+    3370:	70 f4       	brcc	.+28     	; 0x338e <apply_orbs+0x1d2>
+    3372:	85 83       	std	Z+5, r24	; 0x05
+    3374:	12 96       	adiw	r26, 0x02	; 2
+    3376:	4c 93       	st	X, r20
+    3378:	12 97       	sbiw	r26, 0x02	; 2
+    337a:	11 96       	adiw	r26, 0x01	; 1
+    337c:	9c 91       	ld	r25, X
+    337e:	11 97       	sbiw	r26, 0x01	; 1
+    3380:	e8 01       	movw	r28, r16
+    3382:	89 81       	ldd	r24, Y+1	; 0x01
+    3384:	11 96       	adiw	r26, 0x01	; 1
+    3386:	8c 93       	st	X, r24
+    3388:	11 97       	sbiw	r26, 0x01	; 1
+    338a:	99 83       	std	Y+1, r25	; 0x01
+    338c:	90 e0       	ldi	r25, 0x00	; 0
+    338e:	12 96       	adiw	r26, 0x02	; 2
+    3390:	4c 91       	ld	r20, X
+    3392:	12 97       	sbiw	r26, 0x02	; 2
+    3394:	e8 01       	movw	r28, r16
+    3396:	8a 81       	ldd	r24, Y+2	; 0x02
+    3398:	84 17       	cp	r24, r20
+    339a:	60 f4       	brcc	.+24     	; 0x33b4 <apply_orbs+0x1f8>
+    339c:	12 96       	adiw	r26, 0x02	; 2
+    339e:	8c 93       	st	X, r24
+    33a0:	12 97       	sbiw	r26, 0x02	; 2
+    33a2:	4a 83       	std	Y+2, r20	; 0x02
+    33a4:	99 81       	ldd	r25, Y+1	; 0x01
+    33a6:	e9 01       	movw	r28, r18
+    33a8:	89 81       	ldd	r24, Y+1	; 0x01
+    33aa:	e8 01       	movw	r28, r16
+    33ac:	89 83       	std	Y+1, r24	; 0x01
+    33ae:	e9 01       	movw	r28, r18
+    33b0:	99 83       	std	Y+1, r25	; 0x01
+    33b2:	03 c0       	rjmp	.+6      	; 0x33ba <apply_orbs+0x1fe>
+    if (done) return;
+    33b4:	99 23       	and	r25, r25
+    33b6:	09 f0       	breq	.+2      	; 0x33ba <apply_orbs+0x1fe>
+    33b8:	59 c0       	rjmp	.+178    	; 0x346c <apply_orbs+0x2b0>
+
+    a=first; b=a+1; done=true;
+    bubble next bubble next bubble
+    33ba:	91 81       	ldd	r25, Z+1	; 0x01
+    33bc:	83 81       	ldd	r24, Z+3	; 0x03
+    33be:	89 17       	cp	r24, r25
+    33c0:	10 f0       	brcs	.+4      	; 0x33c6 <apply_orbs+0x20a>
+    33c2:	91 e0       	ldi	r25, 0x01	; 1
+    33c4:	07 c0       	rjmp	.+14     	; 0x33d4 <apply_orbs+0x218>
+    33c6:	81 83       	std	Z+1, r24	; 0x01
+    33c8:	93 83       	std	Z+3, r25	; 0x03
+    33ca:	92 81       	ldd	r25, Z+2	; 0x02
+    33cc:	84 81       	ldd	r24, Z+4	; 0x04
+    33ce:	82 83       	std	Z+2, r24	; 0x02
+    33d0:	94 83       	std	Z+4, r25	; 0x04
+    33d2:	90 e0       	ldi	r25, 0x00	; 0
+    33d4:	23 81       	ldd	r18, Z+3	; 0x03
+    33d6:	85 81       	ldd	r24, Z+5	; 0x05
+    33d8:	82 17       	cp	r24, r18
+    33da:	58 f4       	brcc	.+22     	; 0x33f2 <apply_orbs+0x236>
+    33dc:	83 83       	std	Z+3, r24	; 0x03
+    33de:	25 83       	std	Z+5, r18	; 0x05
+    33e0:	94 81       	ldd	r25, Z+4	; 0x04
+    33e2:	11 96       	adiw	r26, 0x01	; 1
+    33e4:	8c 91       	ld	r24, X
+    33e6:	11 97       	sbiw	r26, 0x01	; 1
+    33e8:	84 83       	std	Z+4, r24	; 0x04
+    33ea:	11 96       	adiw	r26, 0x01	; 1
+    33ec:	9c 93       	st	X, r25
+    33ee:	11 97       	sbiw	r26, 0x01	; 1
+    33f0:	90 e0       	ldi	r25, 0x00	; 0
+    33f2:	25 81       	ldd	r18, Z+5	; 0x05
+    33f4:	12 96       	adiw	r26, 0x02	; 2
+    33f6:	8c 91       	ld	r24, X
+    33f8:	12 97       	sbiw	r26, 0x02	; 2
+    33fa:	82 17       	cp	r24, r18
+    33fc:	70 f4       	brcc	.+28     	; 0x341a <apply_orbs+0x25e>
+    33fe:	85 83       	std	Z+5, r24	; 0x05
+    3400:	12 96       	adiw	r26, 0x02	; 2
+    3402:	2c 93       	st	X, r18
+    3404:	12 97       	sbiw	r26, 0x02	; 2
+    3406:	11 96       	adiw	r26, 0x01	; 1
+    3408:	9c 91       	ld	r25, X
+    340a:	11 97       	sbiw	r26, 0x01	; 1
+    340c:	e8 01       	movw	r28, r16
+    340e:	89 81       	ldd	r24, Y+1	; 0x01
+    3410:	11 96       	adiw	r26, 0x01	; 1
+    3412:	8c 93       	st	X, r24
+    3414:	11 97       	sbiw	r26, 0x01	; 1
+    3416:	99 83       	std	Y+1, r25	; 0x01
+    3418:	02 c0       	rjmp	.+4      	; 0x341e <apply_orbs+0x262>
+    if (done) return;
+    341a:	99 23       	and	r25, r25
+    341c:	39 f5       	brne	.+78     	; 0x346c <apply_orbs+0x2b0>
+
+    a=first; b=a+1; done=true;
+    bubble next bubble
+    341e:	91 81       	ldd	r25, Z+1	; 0x01
+    3420:	83 81       	ldd	r24, Z+3	; 0x03
+    3422:	89 17       	cp	r24, r25
+    3424:	10 f0       	brcs	.+4      	; 0x342a <apply_orbs+0x26e>
+    3426:	21 e0       	ldi	r18, 0x01	; 1
+    3428:	07 c0       	rjmp	.+14     	; 0x3438 <apply_orbs+0x27c>
+    342a:	81 83       	std	Z+1, r24	; 0x01
+    342c:	93 83       	std	Z+3, r25	; 0x03
+    342e:	92 81       	ldd	r25, Z+2	; 0x02
+    3430:	84 81       	ldd	r24, Z+4	; 0x04
+    3432:	82 83       	std	Z+2, r24	; 0x02
+    3434:	94 83       	std	Z+4, r25	; 0x04
+    3436:	20 e0       	ldi	r18, 0x00	; 0
+    3438:	93 81       	ldd	r25, Z+3	; 0x03
+    343a:	85 81       	ldd	r24, Z+5	; 0x05
+    343c:	89 17       	cp	r24, r25
+    343e:	50 f4       	brcc	.+20     	; 0x3454 <apply_orbs+0x298>
+    3440:	83 83       	std	Z+3, r24	; 0x03
+    3442:	95 83       	std	Z+5, r25	; 0x05
+    3444:	94 81       	ldd	r25, Z+4	; 0x04
+    3446:	11 96       	adiw	r26, 0x01	; 1
+    3448:	8c 91       	ld	r24, X
+    344a:	11 97       	sbiw	r26, 0x01	; 1
+    344c:	84 83       	std	Z+4, r24	; 0x04
+    344e:	11 96       	adiw	r26, 0x01	; 1
+    3450:	9c 93       	st	X, r25
+    3452:	02 c0       	rjmp	.+4      	; 0x3458 <apply_orbs+0x29c>
+    if (done) return;
+    3454:	22 23       	and	r18, r18
+    3456:	51 f4       	brne	.+20     	; 0x346c <apply_orbs+0x2b0>
+
+    a=first; b=a+1; done=true;
+    bubble
+    3458:	91 81       	ldd	r25, Z+1	; 0x01
+    345a:	83 81       	ldd	r24, Z+3	; 0x03
+    345c:	89 17       	cp	r24, r25
+    345e:	30 f4       	brcc	.+12     	; 0x346c <apply_orbs+0x2b0>
+    3460:	81 83       	std	Z+1, r24	; 0x01
+    3462:	93 83       	std	Z+3, r25	; 0x03
+    3464:	92 81       	ldd	r25, Z+2	; 0x02
+    3466:	84 81       	ldd	r24, Z+4	; 0x04
+    3468:	82 83       	std	Z+2, r24	; 0x02
+    346a:	94 83       	std	Z+4, r25	; 0x04
+
+        // 2. sort the buffer.
+        sort_orbs_buffer ();
+
+        // Flip the write buffer with the free buffer.
+        SYNC {
+    346c:	8f b7       	in	r24, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    346e:	f8 94       	cli
+            struct pwm_t *temp = pwm_write_buffer;
+            pwm_write_buffer   = pwm_free_buffer;
+    3470:	20 91 a9 01 	lds	r18, 0x01A9
+    3474:	30 91 aa 01 	lds	r19, 0x01AA
+    3478:	30 93 a8 01 	sts	0x01A8, r19
+    347c:	20 93 a7 01 	sts	0x01A7, r18
+            pwm_free_buffer    = temp;
+    3480:	f0 93 aa 01 	sts	0x01AA, r31
+    3484:	e0 93 a9 01 	sts	0x01A9, r30
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    3488:	8f bf       	out	0x3f, r24	; 63
+        }
+        
+        // On the next overflow, flip the read buffer with the free buffer.
+        pwm_page_flip=true;
+    348a:	81 e0       	ldi	r24, 0x01	; 1
+    348c:	80 93 11 04 	sts	0x0411, r24
+    3490:	21 c0       	rjmp	.+66     	; 0x34d4 <apply_orbs+0x318>
+    3492:	80 91 f8 05 	lds	r24, 0x05F8
+    3496:	81 11       	cpse	r24, r1
+    3498:	81 e0       	ldi	r24, 0x01	; 1
+    349a:	28 2f       	mov	r18, r24
+        // Binary mode.
+        // The outputs are inverted.
+        uint8_t on=0;
+        
+        if (orb_values[0][0]) on |= orb_mask[0][0];
+        if (orb_values[0][1]) on |= orb_mask[0][1];
+    349c:	80 91 f9 05 	lds	r24, 0x05F9
+    34a0:	81 11       	cpse	r24, r1
+    34a2:	22 60       	ori	r18, 0x02	; 2
+        if (orb_values[0][2]) on |= orb_mask[0][2];
+    34a4:	80 91 fa 05 	lds	r24, 0x05FA
+    34a8:	81 11       	cpse	r24, r1
+    34aa:	24 60       	ori	r18, 0x04	; 4
+        if (orb_values[1][0]) on |= orb_mask[1][0];
+    34ac:	80 91 fb 05 	lds	r24, 0x05FB
+    34b0:	81 11       	cpse	r24, r1
+    34b2:	20 61       	ori	r18, 0x10	; 16
+        if (orb_values[1][1]) on |= orb_mask[1][1];
+    34b4:	80 91 fc 05 	lds	r24, 0x05FC
+    34b8:	81 11       	cpse	r24, r1
+    34ba:	20 62       	ori	r18, 0x20	; 32
+        if (orb_values[1][2]) on |= orb_mask[1][2];
+    34bc:	80 91 fd 05 	lds	r24, 0x05FD
+    34c0:	81 11       	cpse	r24, r1
+    34c2:	20 64       	ori	r18, 0x40	; 64
+    
+        // Write the new orb states to the output port. Synchronized because it is a RMW operation.
+        SYNC {
+    34c4:	9f b7       	in	r25, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    34c6:	f8 94       	cli
+            uint8_t value=ORBPORT;
+    34c8:	85 b3       	in	r24, 0x15	; 21
+            value |= all_orbs_mask; // All orbs off
+            value &= ~on; // Selected orbs on
+    34ca:	20 95       	com	r18
+    34cc:	87 67       	ori	r24, 0x77	; 119
+    34ce:	82 23       	and	r24, r18
+            ORBPORT=value;
+    34d0:	85 bb       	out	0x15, r24	; 21
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    34d2:	9f bf       	out	0x3f, r25	; 63
+    }
+            
+#ifdef LIGHTS_DEBUG
+    LIGHTS_DEBUG_APPLY_END
+#endif
+}
+    34d4:	df 91       	pop	r29
+    34d6:	cf 91       	pop	r28
+    34d8:	1f 91       	pop	r17
+    34da:	0f 91       	pop	r16
+    34dc:	08 95       	ret
+
+000034de <orb_n_set>:
+ * @param red the red value for the specified orb
+ * @param green the green value for the specified orb
+ * @param blue the blue value for the specified orb
+ * @see 
+ */
+void orb_n_set (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    34de:	98 2f       	mov	r25, r24
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+    34e0:	3f b7       	in	r19, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    34e2:	f8 94       	cli
+    34e4:	80 91 13 04 	lds	r24, 0x0413
+    34e8:	88 23       	and	r24, r24
+    34ea:	a9 f4       	brne	.+42     	; 0x3516 <orb_n_set+0x38>
+    34ec:	81 e0       	ldi	r24, 0x01	; 1
+    34ee:	80 93 13 04 	sts	0x0413, r24
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    34f2:	3f bf       	out	0x3f, r19	; 63
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    34f4:	89 2f       	mov	r24, r25
+    34f6:	90 e0       	ldi	r25, 0x00	; 0
+    34f8:	fc 01       	movw	r30, r24
+    34fa:	ee 0f       	add	r30, r30
+    34fc:	ff 1f       	adc	r31, r31
+    34fe:	e8 0f       	add	r30, r24
+    3500:	f9 1f       	adc	r31, r25
+    3502:	e8 50       	subi	r30, 0x08	; 8
+    3504:	fa 4f       	sbci	r31, 0xFA	; 250
+    3506:	60 83       	st	Z, r22
+    orb_values[num][1]=green;
+    3508:	41 83       	std	Z+1, r20	; 0x01
+    orb_values[num][2]=blue;
+    350a:	22 83       	std	Z+2, r18	; 0x02
+ */
+void orb_n_set (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+	
+    set_orb_values (num, red, green, blue);
+    apply_orbs ();
+    350c:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+	
+	RELEASE_LOCK(orb_lock);
+    3510:	10 92 13 04 	sts	0x0413, r1
+    3514:	08 95       	ret
+    3516:	3f bf       	out	0x3f, r19	; 63
+    __asm__ volatile ("" ::: "memory");
+    3518:	08 95       	ret
+
+0000351a <orb1_set>:
+ * @param green the green component of the color
+ * @param blue the blue component of the color
+ *
+ * @see orb_init
+ **/
+void orb1_set (uint8_t red, uint8_t green, uint8_t blue) {
+    351a:	28 2f       	mov	r18, r24
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+    351c:	9f b7       	in	r25, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    351e:	f8 94       	cli
+    3520:	80 91 13 04 	lds	r24, 0x0413
+    3524:	88 23       	and	r24, r24
+    3526:	79 f4       	brne	.+30     	; 0x3546 <orb1_set+0x2c>
+    3528:	81 e0       	ldi	r24, 0x01	; 1
+    352a:	80 93 13 04 	sts	0x0413, r24
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    352e:	9f bf       	out	0x3f, r25	; 63
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    3530:	20 93 f8 05 	sts	0x05F8, r18
+    orb_values[num][1]=green;
+    3534:	60 93 f9 05 	sts	0x05F9, r22
+    orb_values[num][2]=blue;
+    3538:	40 93 fa 05 	sts	0x05FA, r20
+ **/
+void orb1_set (uint8_t red, uint8_t green, uint8_t blue) {
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+	
+    set_orb_values (0, red, green, blue);
+    apply_orbs ();
+    353c:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+
+	RELEASE_LOCK(orb_lock);
+    3540:	10 92 13 04 	sts	0x0413, r1
+    3544:	08 95       	ret
+    3546:	9f bf       	out	0x3f, r25	; 63
+    __asm__ volatile ("" ::: "memory");
+    3548:	08 95       	ret
+
+0000354a <orb2_set>:
+ * @param green_led the green component of the color
+ * @param blue_led the blue component of the color
+ *
+ * @see orb_init
+ **/
+void orb2_set (uint8_t red, uint8_t green, uint8_t blue) {
+    354a:	28 2f       	mov	r18, r24
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+    354c:	9f b7       	in	r25, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    354e:	f8 94       	cli
+    3550:	80 91 13 04 	lds	r24, 0x0413
+    3554:	88 23       	and	r24, r24
+    3556:	79 f4       	brne	.+30     	; 0x3576 <orb2_set+0x2c>
+    3558:	81 e0       	ldi	r24, 0x01	; 1
+    355a:	80 93 13 04 	sts	0x0413, r24
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    355e:	9f bf       	out	0x3f, r25	; 63
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    3560:	20 93 fb 05 	sts	0x05FB, r18
+    orb_values[num][1]=green;
+    3564:	60 93 fc 05 	sts	0x05FC, r22
+    orb_values[num][2]=blue;
+    3568:	40 93 fd 05 	sts	0x05FD, r20
+ **/
+void orb2_set (uint8_t red, uint8_t green, uint8_t blue) {
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+	
+    set_orb_values (1, red, green, blue);
+    apply_orbs ();
+    356c:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+
+	RELEASE_LOCK(orb_lock);
+    3570:	10 92 13 04 	sts	0x0413, r1
+    3574:	08 95       	ret
+    3576:	9f bf       	out	0x3f, r25	; 63
+    __asm__ volatile ("" ::: "memory");
+    3578:	08 95       	ret
+
+0000357a <orb_set>:
+ * @param green_led the green component of the color
+ * @param blue_led the blue component of the color
+ *
+ * @see orb_init, orb1_set, orb2_set
+ **/
+void orb_set (uint8_t red, uint8_t green, uint8_t blue) {
+    357a:	28 2f       	mov	r18, r24
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+    357c:	9f b7       	in	r25, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    357e:	f8 94       	cli
+    3580:	80 91 13 04 	lds	r24, 0x0413
+    3584:	88 23       	and	r24, r24
+    3586:	a9 f4       	brne	.+42     	; 0x35b2 <orb_set+0x38>
+    3588:	81 e0       	ldi	r24, 0x01	; 1
+    358a:	80 93 13 04 	sts	0x0413, r24
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    358e:	9f bf       	out	0x3f, r25	; 63
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    3590:	20 93 f8 05 	sts	0x05F8, r18
+    orb_values[num][1]=green;
+    3594:	60 93 f9 05 	sts	0x05F9, r22
+    orb_values[num][2]=blue;
+    3598:	40 93 fa 05 	sts	0x05FA, r20
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    359c:	20 93 fb 05 	sts	0x05FB, r18
+    orb_values[num][1]=green;
+    35a0:	60 93 fc 05 	sts	0x05FC, r22
+    orb_values[num][2]=blue;
+    35a4:	40 93 fd 05 	sts	0x05FD, r20
+void orb_set (uint8_t red, uint8_t green, uint8_t blue) {
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+	
+    set_orb_values (0, red, green, blue);
+    set_orb_values (1, red, green, blue);
+    apply_orbs ();
+    35a8:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+
+	RELEASE_LOCK(orb_lock);
+    35ac:	10 92 13 04 	sts	0x0413, r1
+    35b0:	08 95       	ret
+    35b2:	9f bf       	out	0x3f, r25	; 63
+    __asm__ volatile ("" ::: "memory");
+    35b4:	08 95       	ret
+
+000035b6 <orbs_set>:
+ * @see orb2_set
+ * @see orb_n_set
+ **/
+void orbs_set (
+    uint8_t red1, uint8_t green1, uint8_t blue1,
+    uint8_t red2, uint8_t green2, uint8_t blue2) {
+    35b6:	ef 92       	push	r14
+    35b8:	0f 93       	push	r16
+    35ba:	38 2f       	mov	r19, r24
+
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+    35bc:	9f b7       	in	r25, 0x3f	; 63
+    return 1;
+}
+
+static __inline__ uint8_t __iCliRetVal(void)
+{
+    cli();
+    35be:	f8 94       	cli
+    35c0:	80 91 13 04 	lds	r24, 0x0413
+    35c4:	88 23       	and	r24, r24
+    35c6:	a9 f4       	brne	.+42     	; 0x35f2 <orbs_set+0x3c>
+    35c8:	81 e0       	ldi	r24, 0x01	; 1
+    35ca:	80 93 13 04 	sts	0x0413, r24
+    (void)__s;
+}
+
+static __inline__ void __iRestore(const  uint8_t *__s)
+{
+    SREG = *__s;
+    35ce:	9f bf       	out	0x3f, r25	; 63
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    35d0:	30 93 f8 05 	sts	0x05F8, r19
+    orb_values[num][1]=green;
+    35d4:	60 93 f9 05 	sts	0x05F9, r22
+    orb_values[num][2]=blue;
+    35d8:	40 93 fa 05 	sts	0x05FA, r20
+
+static void set_orb_values (uint8_t num, uint8_t red, uint8_t green, uint8_t blue) {
+    // Write the values to the array, but do not sort them yet, as we might want to write the other orb values first so
+    // we don't have to sort twice.
+    // Any function calling this function will probably want to call apply_orbs() afterwards.
+    orb_values[num][0]=red;
+    35dc:	20 93 fb 05 	sts	0x05FB, r18
+    orb_values[num][1]=green;
+    35e0:	00 93 fc 05 	sts	0x05FC, r16
+    orb_values[num][2]=blue;
+    35e4:	e0 92 fd 05 	sts	0x05FD, r14
+
+	REQUIRE_LOCK_OR_RETURN(orb_lock);
+
+    set_orb_values (0, red1, green1, blue1);
+    set_orb_values (1, red2, green2, blue2);
+    apply_orbs ();
+    35e8:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+
+	RELEASE_LOCK(orb_lock);
+    35ec:	10 92 13 04 	sts	0x0413, r1
+    35f0:	01 c0       	rjmp	.+2      	; 0x35f4 <orbs_set+0x3e>
+    35f2:	9f bf       	out	0x3f, r25	; 63
+}
+    35f4:	0f 91       	pop	r16
+    35f6:	ef 90       	pop	r14
+    35f8:	08 95       	ret
+
+000035fa <orb_n_set_color>:
+ *
+ * @param num the number of the orb to set (0 or 1)
+ * @param col the color to set the orbs to
+ **/
+void orb_n_set_color(uint8_t num, uint8_t col) {
+    orb_n_set(num, C_RED(col), C_GREEN(col), C_BLUE(col));
+    35fa:	e6 2f       	mov	r30, r22
+    35fc:	f0 e0       	ldi	r31, 0x00	; 0
+    35fe:	62 95       	swap	r22
+    3600:	66 95       	lsr	r22
+    3602:	67 70       	andi	r22, 0x07	; 7
+    3604:	70 e0       	ldi	r23, 0x00	; 0
+    3606:	44 e2       	ldi	r20, 0x24	; 36
+    3608:	50 e0       	ldi	r21, 0x00	; 0
+    360a:	9b 01       	movw	r18, r22
+    360c:	24 9f       	mul	r18, r20
+    360e:	b0 01       	movw	r22, r0
+    3610:	25 9f       	mul	r18, r21
+    3612:	70 0d       	add	r23, r0
+    3614:	34 9f       	mul	r19, r20
+    3616:	70 0d       	add	r23, r0
+    3618:	11 24       	eor	r1, r1
+    361a:	9f 01       	movw	r18, r30
+    361c:	2c 71       	andi	r18, 0x1C	; 28
+    361e:	30 70       	andi	r19, 0x00	; 0
+    3620:	35 95       	asr	r19
+    3622:	27 95       	ror	r18
+    3624:	35 95       	asr	r19
+    3626:	27 95       	ror	r18
+    3628:	da 01       	movw	r26, r20
+    362a:	2a 9f       	mul	r18, r26
+    362c:	a0 01       	movw	r20, r0
+    362e:	2b 9f       	mul	r18, r27
+    3630:	50 0d       	add	r21, r0
+    3632:	3a 9f       	mul	r19, r26
+    3634:	50 0d       	add	r21, r0
+    3636:	11 24       	eor	r1, r1
+    3638:	e3 70       	andi	r30, 0x03	; 3
+    363a:	f0 70       	andi	r31, 0x00	; 0
+    363c:	25 e5       	ldi	r18, 0x55	; 85
+    363e:	30 e0       	ldi	r19, 0x00	; 0
+    3640:	d9 01       	movw	r26, r18
+    3642:	ea 9f       	mul	r30, r26
+    3644:	90 01       	movw	r18, r0
+    3646:	eb 9f       	mul	r30, r27
+    3648:	30 0d       	add	r19, r0
+    364a:	fa 9f       	mul	r31, r26
+    364c:	30 0d       	add	r19, r0
+    364e:	11 24       	eor	r1, r1
+    3650:	0e 94 6f 1a 	call	0x34de	; 0x34de <orb_n_set>
+}
+    3654:	08 95       	ret
+
+00003656 <orb1_set_color>:
+ * Set orb1 to the specified color. This function is intended to be used with the predefined colors.
+ *
+ * @param col the color to set the orbs to
+ **/
+void orb1_set_color(uint8_t col) {
+    orb1_set (C_RED(col), C_GREEN(col), C_BLUE(col));
+    3656:	48 2f       	mov	r20, r24
+    3658:	50 e0       	ldi	r21, 0x00	; 0
+    365a:	82 95       	swap	r24
+    365c:	86 95       	lsr	r24
+    365e:	87 70       	andi	r24, 0x07	; 7
+    3660:	e4 e2       	ldi	r30, 0x24	; 36
+    3662:	f0 e0       	ldi	r31, 0x00	; 0
+    3664:	9a 01       	movw	r18, r20
+    3666:	2c 71       	andi	r18, 0x1C	; 28
+    3668:	30 70       	andi	r19, 0x00	; 0
+    366a:	35 95       	asr	r19
+    366c:	27 95       	ror	r18
+    366e:	35 95       	asr	r19
+    3670:	27 95       	ror	r18
+    3672:	2e 9f       	mul	r18, r30
+    3674:	b0 01       	movw	r22, r0
+    3676:	2f 9f       	mul	r18, r31
+    3678:	70 0d       	add	r23, r0
+    367a:	3e 9f       	mul	r19, r30
+    367c:	70 0d       	add	r23, r0
+    367e:	11 24       	eor	r1, r1
+    3680:	43 70       	andi	r20, 0x03	; 3
+    3682:	50 70       	andi	r21, 0x00	; 0
+    3684:	25 e5       	ldi	r18, 0x55	; 85
+    3686:	30 e0       	ldi	r19, 0x00	; 0
+    3688:	da 01       	movw	r26, r20
+    368a:	a2 9f       	mul	r26, r18
+    368c:	a0 01       	movw	r20, r0
+    368e:	a3 9f       	mul	r26, r19
+    3690:	50 0d       	add	r21, r0
+    3692:	b2 9f       	mul	r27, r18
+    3694:	50 0d       	add	r21, r0
+    3696:	11 24       	eor	r1, r1
+    3698:	8e 9f       	mul	r24, r30
+    369a:	80 2d       	mov	r24, r0
+    369c:	11 24       	eor	r1, r1
+    369e:	0e 94 8d 1a 	call	0x351a	; 0x351a <orb1_set>
+}
+    36a2:	08 95       	ret
+
+000036a4 <orb2_set_color>:
+ * Set orb2 to the specified color. This function is intended to be used with the predefined colors.
+ *
+ * @param col the color to set the orbs to
+ **/
+void orb2_set_color(uint8_t col) {
+    orb2_set(C_RED(col), C_GREEN(col), C_BLUE(col));
+    36a4:	48 2f       	mov	r20, r24
+    36a6:	50 e0       	ldi	r21, 0x00	; 0
+    36a8:	82 95       	swap	r24
+    36aa:	86 95       	lsr	r24
+    36ac:	87 70       	andi	r24, 0x07	; 7
+    36ae:	e4 e2       	ldi	r30, 0x24	; 36
+    36b0:	f0 e0       	ldi	r31, 0x00	; 0
+    36b2:	9a 01       	movw	r18, r20
+    36b4:	2c 71       	andi	r18, 0x1C	; 28
+    36b6:	30 70       	andi	r19, 0x00	; 0
+    36b8:	35 95       	asr	r19
+    36ba:	27 95       	ror	r18
+    36bc:	35 95       	asr	r19
+    36be:	27 95       	ror	r18
+    36c0:	2e 9f       	mul	r18, r30
+    36c2:	b0 01       	movw	r22, r0
+    36c4:	2f 9f       	mul	r18, r31
+    36c6:	70 0d       	add	r23, r0
+    36c8:	3e 9f       	mul	r19, r30
+    36ca:	70 0d       	add	r23, r0
+    36cc:	11 24       	eor	r1, r1
+    36ce:	43 70       	andi	r20, 0x03	; 3
+    36d0:	50 70       	andi	r21, 0x00	; 0
+    36d2:	25 e5       	ldi	r18, 0x55	; 85
+    36d4:	30 e0       	ldi	r19, 0x00	; 0
+    36d6:	da 01       	movw	r26, r20
+    36d8:	a2 9f       	mul	r26, r18
+    36da:	a0 01       	movw	r20, r0
+    36dc:	a3 9f       	mul	r26, r19
+    36de:	50 0d       	add	r21, r0
+    36e0:	b2 9f       	mul	r27, r18
+    36e2:	50 0d       	add	r21, r0
+    36e4:	11 24       	eor	r1, r1
+    36e6:	8e 9f       	mul	r24, r30
+    36e8:	80 2d       	mov	r24, r0
+    36ea:	11 24       	eor	r1, r1
+    36ec:	0e 94 a5 1a 	call	0x354a	; 0x354a <orb2_set>
+}
+    36f0:	08 95       	ret
+
+000036f2 <orb_set_color>:
+ * Set both orbs to the specified color. This function is intended to be used with the predefined colors.
+ *
+ * @param col the color to set the orbs to
+ **/
+void orb_set_color(uint8_t col) {
+    orb_set (C_RED(col), C_GREEN(col), C_BLUE(col));
+    36f2:	48 2f       	mov	r20, r24
+    36f4:	50 e0       	ldi	r21, 0x00	; 0
+    36f6:	82 95       	swap	r24
+    36f8:	86 95       	lsr	r24
+    36fa:	87 70       	andi	r24, 0x07	; 7
+    36fc:	e4 e2       	ldi	r30, 0x24	; 36
+    36fe:	f0 e0       	ldi	r31, 0x00	; 0
+    3700:	9a 01       	movw	r18, r20
+    3702:	2c 71       	andi	r18, 0x1C	; 28
+    3704:	30 70       	andi	r19, 0x00	; 0
+    3706:	35 95       	asr	r19
+    3708:	27 95       	ror	r18
+    370a:	35 95       	asr	r19
+    370c:	27 95       	ror	r18
+    370e:	2e 9f       	mul	r18, r30
+    3710:	b0 01       	movw	r22, r0
+    3712:	2f 9f       	mul	r18, r31
+    3714:	70 0d       	add	r23, r0
+    3716:	3e 9f       	mul	r19, r30
+    3718:	70 0d       	add	r23, r0
+    371a:	11 24       	eor	r1, r1
+    371c:	43 70       	andi	r20, 0x03	; 3
+    371e:	50 70       	andi	r21, 0x00	; 0
+    3720:	25 e5       	ldi	r18, 0x55	; 85
+    3722:	30 e0       	ldi	r19, 0x00	; 0
+    3724:	da 01       	movw	r26, r20
+    3726:	a2 9f       	mul	r26, r18
+    3728:	a0 01       	movw	r20, r0
+    372a:	a3 9f       	mul	r26, r19
+    372c:	50 0d       	add	r21, r0
+    372e:	b2 9f       	mul	r27, r18
+    3730:	50 0d       	add	r21, r0
+    3732:	11 24       	eor	r1, r1
+    3734:	8e 9f       	mul	r24, r30
+    3736:	80 2d       	mov	r24, r0
+    3738:	11 24       	eor	r1, r1
+    373a:	0e 94 bd 1a 	call	0x357a	; 0x357a <orb_set>
+}
+    373e:	08 95       	ret
+
+00003740 <orbs_set_color>:
+ * Set the orbs to the respective color. This function is intended to be used with the predefined colors.
+ *
+ * @param col1 the color to set orb 1 to
+ * @param col2 the color to set orb 2 to
+ **/
+void orbs_set_color(uint8_t col1, uint8_t col2) {
+    3740:	af 92       	push	r10
+    3742:	bf 92       	push	r11
+    3744:	df 92       	push	r13
+    3746:	ef 92       	push	r14
+    3748:	ff 92       	push	r15
+    374a:	0f 93       	push	r16
+    374c:	1f 93       	push	r17
+    374e:	d8 2e       	mov	r13, r24
+    orbs_set (C_RED(col1), C_GREEN(col1), C_BLUE(col1), C_RED(col2), C_GREEN(col2), C_BLUE(col2));
+    3750:	48 2f       	mov	r20, r24
+    3752:	50 e0       	ldi	r21, 0x00	; 0
+    3754:	e6 2f       	mov	r30, r22
+    3756:	f0 e0       	ldi	r31, 0x00	; 0
+    3758:	d6 94       	lsr	r13
+    375a:	d6 94       	lsr	r13
+    375c:	d6 94       	lsr	r13
+    375e:	d6 94       	lsr	r13
+    3760:	d6 94       	lsr	r13
+    3762:	84 e2       	ldi	r24, 0x24	; 36
+    3764:	90 e0       	ldi	r25, 0x00	; 0
+    3766:	9a 01       	movw	r18, r20
+    3768:	2c 71       	andi	r18, 0x1C	; 28
+    376a:	30 70       	andi	r19, 0x00	; 0
+    376c:	35 95       	asr	r19
+    376e:	27 95       	ror	r18
+    3770:	35 95       	asr	r19
+    3772:	27 95       	ror	r18
+    3774:	28 9f       	mul	r18, r24
+    3776:	50 01       	movw	r10, r0
+    3778:	29 9f       	mul	r18, r25
+    377a:	b0 0c       	add	r11, r0
+    377c:	38 9f       	mul	r19, r24
+    377e:	b0 0c       	add	r11, r0
+    3780:	11 24       	eor	r1, r1
+    3782:	43 70       	andi	r20, 0x03	; 3
+    3784:	50 70       	andi	r21, 0x00	; 0
+    3786:	a5 e5       	ldi	r26, 0x55	; 85
+    3788:	b0 e0       	ldi	r27, 0x00	; 0
+    378a:	9a 01       	movw	r18, r20
+    378c:	2a 9f       	mul	r18, r26
+    378e:	a0 01       	movw	r20, r0
+    3790:	2b 9f       	mul	r18, r27
+    3792:	50 0d       	add	r21, r0
+    3794:	3a 9f       	mul	r19, r26
+    3796:	50 0d       	add	r21, r0
+    3798:	11 24       	eor	r1, r1
+    379a:	62 95       	swap	r22
+    379c:	66 95       	lsr	r22
+    379e:	67 70       	andi	r22, 0x07	; 7
+    37a0:	70 e0       	ldi	r23, 0x00	; 0
+    37a2:	68 9f       	mul	r22, r24
+    37a4:	90 01       	movw	r18, r0
+    37a6:	69 9f       	mul	r22, r25
+    37a8:	30 0d       	add	r19, r0
+    37aa:	78 9f       	mul	r23, r24
+    37ac:	30 0d       	add	r19, r0
+    37ae:	11 24       	eor	r1, r1
+    37b0:	bf 01       	movw	r22, r30
+    37b2:	6c 71       	andi	r22, 0x1C	; 28
+    37b4:	70 70       	andi	r23, 0x00	; 0
+    37b6:	75 95       	asr	r23
+    37b8:	67 95       	ror	r22
+    37ba:	75 95       	asr	r23
+    37bc:	67 95       	ror	r22
+    37be:	68 9f       	mul	r22, r24
+    37c0:	80 01       	movw	r16, r0
+    37c2:	69 9f       	mul	r22, r25
+    37c4:	10 0d       	add	r17, r0
+    37c6:	78 9f       	mul	r23, r24
+    37c8:	10 0d       	add	r17, r0
+    37ca:	11 24       	eor	r1, r1
+    37cc:	e3 70       	andi	r30, 0x03	; 3
+    37ce:	f0 70       	andi	r31, 0x00	; 0
+    37d0:	ea 9f       	mul	r30, r26
+    37d2:	70 01       	movw	r14, r0
+    37d4:	eb 9f       	mul	r30, r27
+    37d6:	f0 0c       	add	r15, r0
+    37d8:	fa 9f       	mul	r31, r26
+    37da:	f0 0c       	add	r15, r0
+    37dc:	11 24       	eor	r1, r1
+    37de:	d8 9e       	mul	r13, r24
+    37e0:	80 2d       	mov	r24, r0
+    37e2:	11 24       	eor	r1, r1
+    37e4:	6a 2d       	mov	r22, r10
+    37e6:	0e 94 db 1a 	call	0x35b6	; 0x35b6 <orbs_set>
+}
+    37ea:	1f 91       	pop	r17
+    37ec:	0f 91       	pop	r16
+    37ee:	ff 90       	pop	r15
+    37f0:	ef 90       	pop	r14
+    37f2:	df 90       	pop	r13
+    37f4:	bf 90       	pop	r11
+    37f6:	af 90       	pop	r10
+    37f8:	08 95       	ret
+
+000037fa <orb_enable_timer>:
+    // For this implementation, variant 4 was chosen.
+    //
+    // Using an 8 bit timer has the added advantage that all the comparisons are faster.
+    
+    // Normal mode, Compare match output off, Prescaler
+    TCCR0=_BV(CS02) | _BV(CS01); // 256, 120 Hz
+    37fa:	86 e0       	ldi	r24, 0x06	; 6
+    37fc:	83 bf       	out	0x33, r24	; 51
+	// The next higher prescaler would be 1024 (30 Hz) which makes the orbs flicker visibly.
+
+    // Enable the interrupts
+    TIMSK|= _BV(OCIE0) | _BV(TOIE0);
+    37fe:	87 b7       	in	r24, 0x37	; 55
+    3800:	83 60       	ori	r24, 0x03	; 3
+    3802:	87 bf       	out	0x37, r24	; 55
+}
+    3804:	08 95       	ret
+
+00003806 <orb_disable_timer>:
+ * Disables the orb timer. Note that you usually don't want to use this function directly. Instead, use orb_set_mode.
+ * @see orb_set_mode
+ **/
+void orb_disable_timer (void) {
+    // Disable the interrupts
+    TIMSK&=~( _BV(OCIE0) | _BV(TOIE0));
+    3806:	87 b7       	in	r24, 0x37	; 55
+    3808:	8c 7f       	andi	r24, 0xFC	; 252
+    380a:	87 bf       	out	0x37, r24	; 55
+}
+    380c:	08 95       	ret
+
+0000380e <orb_set_mode>:
+
+
+void orb_set_mode (orb_mode_t mode) {
+    // Set enable_orb_pwm to the appropriate value and disable or enable the timer.
+    if (mode==orb_mode_binary) {
+    380e:	81 30       	cpi	r24, 0x01	; 1
+    3810:	41 f4       	brne	.+16     	; 0x3822 <orb_set_mode+0x14>
+ * Disables the orb timer. Note that you usually don't want to use this function directly. Instead, use orb_set_mode.
+ * @see orb_set_mode
+ **/
+void orb_disable_timer (void) {
+    // Disable the interrupts
+    TIMSK&=~( _BV(OCIE0) | _BV(TOIE0));
+    3812:	87 b7       	in	r24, 0x37	; 55
+    3814:	8c 7f       	andi	r24, 0xFC	; 252
+    3816:	87 bf       	out	0x37, r24	; 55
+void orb_set_mode (orb_mode_t mode) {
+    // Set enable_orb_pwm to the appropriate value and disable or enable the timer.
+    if (mode==orb_mode_binary) {
+        orb_disable_timer ();
+
+        enable_orb_pwm=false;
+    3818:	10 92 a4 01 	sts	0x01A4, r1
+        apply_orbs ();
+    381c:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+    3820:	08 95       	ret
+    }
+    else { // orb_mode_pwm
+        enable_orb_pwm=true;
+    3822:	81 e0       	ldi	r24, 0x01	; 1
+    3824:	80 93 a4 01 	sts	0x01A4, r24
+        apply_orbs ();
+    3828:	0e 94 de 18 	call	0x31bc	; 0x31bc <apply_orbs>
+    // For this implementation, variant 4 was chosen.
+    //
+    // Using an 8 bit timer has the added advantage that all the comparisons are faster.
+    
+    // Normal mode, Compare match output off, Prescaler
+    TCCR0=_BV(CS02) | _BV(CS01); // 256, 120 Hz
+    382c:	86 e0       	ldi	r24, 0x06	; 6
+    382e:	83 bf       	out	0x33, r24	; 51
+	// The next higher prescaler would be 1024 (30 Hz) which makes the orbs flicker visibly.
+
+    // Enable the interrupts
+    TIMSK|= _BV(OCIE0) | _BV(TOIE0);
+    3830:	87 b7       	in	r24, 0x37	; 55
+    3832:	83 60       	ori	r24, 0x03	; 3
+    3834:	87 bf       	out	0x37, r24	; 55
+    3836:	08 95       	ret
+
+00003838 <orb_init_binary>:
+// ********************
+
+// Orb initialization code common to all modes.
+static void orb_init_common (void) {
+    // Enable the output ports and turn off the LEDs
+    ORBPORT |=  all_orbs_mask;
+    3838:	85 b3       	in	r24, 0x15	; 21
+    383a:	87 67       	ori	r24, 0x77	; 119
+    383c:	85 bb       	out	0x15, r24	; 21
+    ORBDDR  |=  all_orbs_mask;
+    383e:	84 b3       	in	r24, 0x14	; 20
+    3840:	87 67       	ori	r24, 0x77	; 119
+    3842:	84 bb       	out	0x14, r24	; 20
+
+    // Set all orbs to "off"
+    orb_set (0, 0, 0);
+    3844:	80 e0       	ldi	r24, 0x00	; 0
+    3846:	60 e0       	ldi	r22, 0x00	; 0
+    3848:	40 e0       	ldi	r20, 0x00	; 0
+    384a:	0e 94 bd 1a 	call	0x357a	; 0x357a <orb_set>
+ * 
+ * @see orb_init_pwm
+ **/
+void orb_init_binary (void) {
+    orb_init_common ();
+    orb_set_mode (orb_mode_binary);
+    384e:	81 e0       	ldi	r24, 0x01	; 1
+    3850:	0e 94 07 1c 	call	0x380e	; 0x380e <orb_set_mode>
+}
+    3854:	08 95       	ret
+
+00003856 <orb_init_pwm>:
+// ********************
+
+// Orb initialization code common to all modes.
+static void orb_init_common (void) {
+    // Enable the output ports and turn off the LEDs
+    ORBPORT |=  all_orbs_mask;
+    3856:	85 b3       	in	r24, 0x15	; 21
+    3858:	87 67       	ori	r24, 0x77	; 119
+    385a:	85 bb       	out	0x15, r24	; 21
+    ORBDDR  |=  all_orbs_mask;
+    385c:	84 b3       	in	r24, 0x14	; 20
+    385e:	87 67       	ori	r24, 0x77	; 119
+    3860:	84 bb       	out	0x14, r24	; 20
+
+    // Set all orbs to "off"
+    orb_set (0, 0, 0);
+    3862:	80 e0       	ldi	r24, 0x00	; 0
+    3864:	60 e0       	ldi	r22, 0x00	; 0
+    3866:	40 e0       	ldi	r20, 0x00	; 0
+    3868:	0e 94 bd 1a 	call	0x357a	; 0x357a <orb_set>
+ * 
+ * @see orb_init_binary
+ **/
+void orb_init_pwm (void) {
+    orb_init_common ();
+    orb_set_mode (orb_mode_pwm);
+    386c:	80 e0       	ldi	r24, 0x00	; 0
+    386e:	0e 94 07 1c 	call	0x380e	; 0x380e <orb_set_mode>
+}
+    3872:	08 95       	ret
+
+00003874 <orb_init>:
+ *
+ * @see orb_init_pwm
+ * @see orb_init_binary
+ **/
+void orb_init () {
+    orb_init_pwm ();
+    3874:	0e 94 2b 1c 	call	0x3856	; 0x3856 <orb_init_pwm>
+}
+    3878:	08 95       	ret
+
+0000387a <motors_init>:
+ * @see motors_off, motor1_set, motor2_set
+ **/
+void motors_init( void ) {
+  // Configure counter such that we use phase correct
+  // PWM with 8-bit resolution
+  PORTA &= 0x0F;
+    387a:	8b b3       	in	r24, 0x1b	; 27
+    387c:	8f 70       	andi	r24, 0x0F	; 15
+    387e:	8b bb       	out	0x1b, r24	; 27
+  DDRA |= 0xF0;
+    3880:	8a b3       	in	r24, 0x1a	; 26
+    3882:	80 6f       	ori	r24, 0xF0	; 240
+    3884:	8a bb       	out	0x1a, r24	; 26
+  DDRB |= 0x60;
+    3886:	87 b3       	in	r24, 0x17	; 23
+    3888:	80 66       	ori	r24, 0x60	; 96
+    388a:	87 bb       	out	0x17, r24	; 23
+
+  //timer 1A and 1B
+  TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM10);
+    388c:	81 ea       	ldi	r24, 0xA1	; 161
+    388e:	8f bd       	out	0x2f, r24	; 47
+  TCCR1B = _BV(WGM12) | _BV(CS10);
+    3890:	89 e0       	ldi	r24, 0x09	; 9
+    3892:	8e bd       	out	0x2e, r24	; 46
+  //	TCCR1A = 0xA1;
+  //	TCCR1B = 0x04;
+  OCR1AH=0;
+    3894:	1b bc       	out	0x2b, r1	; 43
+  OCR1AL=0;
+    3896:	1a bc       	out	0x2a, r1	; 42
+  OCR1BH=0;
+    3898:	19 bc       	out	0x29, r1	; 41
+  OCR1BL=0;
+    389a:	18 bc       	out	0x28, r1	; 40
+}
+    389c:	08 95       	ret
+
+0000389e <motor_l_set>:
+ * 
+ * @see motor_r_set, motors_init
+ **/
+void motor_l_set(int direction, int speed) {
+
+  if(direction == 0) {
+    389e:	89 2b       	or	r24, r25
+    38a0:	51 f4       	brne	.+20     	; 0x38b6 <motor_l_set+0x18>
+    // turn off PWM first if switching directions
+    if((PORTA & 0x30) != 0x10) {
+    38a2:	8b b3       	in	r24, 0x1b	; 27
+    38a4:	80 73       	andi	r24, 0x30	; 48
+    38a6:	80 31       	cpi	r24, 0x10	; 16
+    38a8:	11 f0       	breq	.+4      	; 0x38ae <motor_l_set+0x10>
+      OCR1A = 0;
+    38aa:	1b bc       	out	0x2b, r1	; 43
+    38ac:	1a bc       	out	0x2a, r1	; 42
+    }	
+    PORTA = (PORTA & 0xCF) | 0x10;
+    38ae:	8b b3       	in	r24, 0x1b	; 27
+    38b0:	8f 7c       	andi	r24, 0xCF	; 207
+    38b2:	80 61       	ori	r24, 0x10	; 16
+    38b4:	09 c0       	rjmp	.+18     	; 0x38c8 <motor_l_set+0x2a>
+    //		PORTD |= 0x10;
+    //		PORTD &= 0xBF;
+  } else {
+    // turn off PWM first if switching directions
+    if((PORTA & 0x30) != 0x20) {
+    38b6:	8b b3       	in	r24, 0x1b	; 27
+    38b8:	80 73       	andi	r24, 0x30	; 48
+    38ba:	80 32       	cpi	r24, 0x20	; 32
+    38bc:	11 f0       	breq	.+4      	; 0x38c2 <motor_l_set+0x24>
+      OCR1A = 0;
+    38be:	1b bc       	out	0x2b, r1	; 43
+    38c0:	1a bc       	out	0x2a, r1	; 42
+    }
+    PORTA = (PORTA & 0xCF) | 0x20;
+    38c2:	8b b3       	in	r24, 0x1b	; 27
+    38c4:	8f 7c       	andi	r24, 0xCF	; 207
+    38c6:	80 62       	ori	r24, 0x20	; 32
+    38c8:	8b bb       	out	0x1b, r24	; 27
+    //		PORTD |= 0x40;
+    //		PORTD &= 0xEF;
+  }
+	
+  // Set the timer to count up to speed, an 8-bit value
+  OCR1AL = speed;
+    38ca:	6a bd       	out	0x2a, r22	; 42
+}
+    38cc:	08 95       	ret
+
+000038ce <motor_r_set>:
+ * @param speed The speed the motor will run at, in the range 0-255.
+ *
+ * @see motor_l_set, motors_init
+ **/
+void motor_r_set(int direction, int speed) {
+  if(direction == 0) {
+    38ce:	89 2b       	or	r24, r25
+    38d0:	51 f4       	brne	.+20     	; 0x38e6 <motor_r_set+0x18>
+    //		PORTD |= 0x20;
+    //		PORTD &= 0x7F;
+    // turn off PWM first if switching directions
+    if((PORTA & 0xC0) != 0x80) {
+    38d2:	8b b3       	in	r24, 0x1b	; 27
+    38d4:	80 7c       	andi	r24, 0xC0	; 192
+    38d6:	80 38       	cpi	r24, 0x80	; 128
+    38d8:	11 f0       	breq	.+4      	; 0x38de <motor_r_set+0x10>
+      OCR1B = 0;
+    38da:	19 bc       	out	0x29, r1	; 41
+    38dc:	18 bc       	out	0x28, r1	; 40
+    }		
+		
+    PORTA = (PORTA & 0x3F) | 0x80;
+    38de:	8b b3       	in	r24, 0x1b	; 27
+    38e0:	8f 73       	andi	r24, 0x3F	; 63
+    38e2:	80 68       	ori	r24, 0x80	; 128
+    38e4:	09 c0       	rjmp	.+18     	; 0x38f8 <motor_r_set+0x2a>
+  } else {
+    //		PORTD |= 0x80;
+    //		PORTD &= 0xDF;
+
+    // turn off PWM first if switching directions
+    if((PORTA & 0xC0) != 0x40) {
+    38e6:	8b b3       	in	r24, 0x1b	; 27
+    38e8:	80 7c       	andi	r24, 0xC0	; 192
+    38ea:	80 34       	cpi	r24, 0x40	; 64
+    38ec:	11 f0       	breq	.+4      	; 0x38f2 <motor_r_set+0x24>
+      OCR1B = 0;
+    38ee:	19 bc       	out	0x29, r1	; 41
+    38f0:	18 bc       	out	0x28, r1	; 40
+    }		
+		
+    PORTA = (PORTA & 0x3F) | 0x40;
+    38f2:	8b b3       	in	r24, 0x1b	; 27
+    38f4:	8f 73       	andi	r24, 0x3F	; 63
+    38f6:	80 64       	ori	r24, 0x40	; 64
+    38f8:	8b bb       	out	0x1b, r24	; 27
+  }
+  OCR1BL = speed;
+    38fa:	68 bd       	out	0x28, r22	; 40
+}
+    38fc:	08 95       	ret
+
+000038fe <motor1_set>:
+ * @param speed The speed the motor will run at, in the range 0-255.
+ *
+ * @see motor2_set, motors_init
+ **/
+void motor1_set(int direction, int speed) {
+	motor_l_set(direction, speed);
+    38fe:	0e 94 4f 1c 	call	0x389e	; 0x389e <motor_l_set>
+}
+    3902:	08 95       	ret
+
+00003904 <motor2_set>:
+ * @param speed The speed the motor will run at, in the range 0-255.
+ *
+ * @see motor2_set, motors_init
+ **/
+void motor2_set(int direction, int speed) {
+	motor_r_set(direction, speed);
+    3904:	0e 94 67 1c 	call	0x38ce	; 0x38ce <motor_r_set>
+}
+    3908:	08 95       	ret
+
+0000390a <motors_off>:
+ * Turns off both motors.
+ *
+ * @see motors_init
+ **/
+void motors_off( void ) {
+  OCR1AL = 0x0;
+    390a:	1a bc       	out	0x2a, r1	; 42
+  OCR1BL = 0x0;
+    390c:	18 bc       	out	0x28, r1	; 40
+}
+    390e:	08 95       	ret
+
+00003910 <linearize_distance>:
+ * @param value the 8-bit analog value from rangefinder
+ *
+ * @return linearized distance reading from rangefinder (integer in [101,800])
+ **/
+int linearize_distance(int value) {
+  if(value < MIN_IR_ADC8) {
+    3910:	8b 31       	cpi	r24, 0x1B	; 27
+    3912:	91 05       	cpc	r25, r1
+    3914:	5c f0       	brlt	.+22     	; 0x392c <linearize_distance+0x1c>
+    return -1;
+  } else if(value > MAX_IR_ADC8) {
+    3916:	83 36       	cpi	r24, 0x63	; 99
+    3918:	91 05       	cpc	r25, r1
+    391a:	44 f4       	brge	.+16     	; 0x392c <linearize_distance+0x1c>
+    return -1;
+  } else {
+    return pgm_read_word(&(IR_dist_conversion[value - MIN_IR_ADC8]));
+    391c:	fc 01       	movw	r30, r24
+    391e:	ee 0f       	add	r30, r30
+    3920:	ff 1f       	adc	r31, r31
+    3922:	ea 5c       	subi	r30, 0xCA	; 202
+    3924:	fd 4f       	sbci	r31, 0xFD	; 253
+    3926:	25 91       	lpm	r18, Z+
+    3928:	34 91       	lpm	r19, Z+
+    392a:	02 c0       	rjmp	.+4      	; 0x3930 <linearize_distance+0x20>
+    392c:	2f ef       	ldi	r18, 0xFF	; 255
+    392e:	3f ef       	ldi	r19, 0xFF	; 255
+  }
+}
+    3930:	c9 01       	movw	r24, r18
+    3932:	08 95       	ret
+
+00003934 <get_range_index>:
+/*
+ * Butterworth helper function that takes a rangefinder ID and turns it into
+ * an array index between 0 and 4.
+ */
+int get_range_index(int range_id){
+    switch(range_id){
+    3934:	84 30       	cpi	r24, 0x04	; 4
+    3936:	91 05       	cpc	r25, r1
+    3938:	a9 f0       	breq	.+42     	; 0x3964 <get_range_index+0x30>
+    393a:	85 30       	cpi	r24, 0x05	; 5
+    393c:	91 05       	cpc	r25, r1
+    393e:	34 f4       	brge	.+12     	; 0x394c <get_range_index+0x18>
+    3940:	82 30       	cpi	r24, 0x02	; 2
+    3942:	91 05       	cpc	r25, r1
+    3944:	a9 f0       	breq	.+42     	; 0x3970 <get_range_index+0x3c>
+    3946:	03 97       	sbiw	r24, 0x03	; 3
+    3948:	b1 f4       	brne	.+44     	; 0x3976 <get_range_index+0x42>
+    394a:	0f c0       	rjmp	.+30     	; 0x396a <get_range_index+0x36>
+    394c:	85 30       	cpi	r24, 0x05	; 5
+    394e:	91 05       	cpc	r25, r1
+    3950:	19 f0       	breq	.+6      	; 0x3958 <get_range_index+0x24>
+    3952:	06 97       	sbiw	r24, 0x06	; 6
+    3954:	81 f4       	brne	.+32     	; 0x3976 <get_range_index+0x42>
+    3956:	03 c0       	rjmp	.+6      	; 0x395e <get_range_index+0x2a>
+    3958:	21 e0       	ldi	r18, 0x01	; 1
+    395a:	30 e0       	ldi	r19, 0x00	; 0
+    395c:	0e c0       	rjmp	.+28     	; 0x397a <get_range_index+0x46>
+    395e:	20 e0       	ldi	r18, 0x00	; 0
+    3960:	30 e0       	ldi	r19, 0x00	; 0
+    3962:	0b c0       	rjmp	.+22     	; 0x397a <get_range_index+0x46>
+    3964:	22 e0       	ldi	r18, 0x02	; 2
+    3966:	30 e0       	ldi	r19, 0x00	; 0
+    3968:	08 c0       	rjmp	.+16     	; 0x397a <get_range_index+0x46>
+    case IR1:
+        return 0;
+    case IR2:
+        return 1;
+    case IR3:
+        return 2;
+    396a:	23 e0       	ldi	r18, 0x03	; 3
+    396c:	30 e0       	ldi	r19, 0x00	; 0
+    396e:	05 c0       	rjmp	.+10     	; 0x397a <get_range_index+0x46>
+    case IR4:
+        return 3;
+    3970:	24 e0       	ldi	r18, 0x04	; 4
+    3972:	30 e0       	ldi	r19, 0x00	; 0
+    3974:	02 c0       	rjmp	.+4      	; 0x397a <get_range_index+0x46>
+    case IR5:
+        return 4;
+    3976:	2f ef       	ldi	r18, 0xFF	; 255
+    3978:	30 e0       	ldi	r19, 0x00	; 0
+    default: // should never happen
+        return 0xff;
+    }
+}
+    397a:	c9 01       	movw	r24, r18
+    397c:	08 95       	ret
+
+0000397e <butter_filter>:
+ * @param range_id the rangefinder to use. This should be one of the constants
+ * IR1 - IR5.
+ * @param the value read from that rangefinder
+ **/
+void butter_filter(int range_id, int val)
+{
+    397e:	ef 92       	push	r14
+    3980:	ff 92       	push	r15
+    3982:	0f 93       	push	r16
+    3984:	1f 93       	push	r17
+    3986:	cf 93       	push	r28
+    3988:	df 93       	push	r29
+/*
+ * Butterworth helper function that takes a rangefinder ID and turns it into
+ * an array index between 0 and 4.
+ */
+int get_range_index(int range_id){
+    switch(range_id){
+    398a:	84 30       	cpi	r24, 0x04	; 4
+    398c:	91 05       	cpc	r25, r1
+    398e:	b1 f0       	breq	.+44     	; 0x39bc <butter_filter+0x3e>
+    3990:	85 30       	cpi	r24, 0x05	; 5
+    3992:	91 05       	cpc	r25, r1
+    3994:	34 f4       	brge	.+12     	; 0x39a2 <butter_filter+0x24>
+    3996:	82 30       	cpi	r24, 0x02	; 2
+    3998:	91 05       	cpc	r25, r1
+    399a:	c1 f0       	breq	.+48     	; 0x39cc <butter_filter+0x4e>
+    399c:	03 97       	sbiw	r24, 0x03	; 3
+    399e:	d1 f4       	brne	.+52     	; 0x39d4 <butter_filter+0x56>
+    39a0:	11 c0       	rjmp	.+34     	; 0x39c4 <butter_filter+0x46>
+    39a2:	85 30       	cpi	r24, 0x05	; 5
+    39a4:	91 05       	cpc	r25, r1
+    39a6:	19 f0       	breq	.+6      	; 0x39ae <butter_filter+0x30>
+    39a8:	06 97       	sbiw	r24, 0x06	; 6
+    39aa:	a1 f4       	brne	.+40     	; 0x39d4 <butter_filter+0x56>
+    39ac:	04 c0       	rjmp	.+8      	; 0x39b6 <butter_filter+0x38>
+    39ae:	b1 e0       	ldi	r27, 0x01	; 1
+    39b0:	eb 2e       	mov	r14, r27
+    39b2:	f1 2c       	mov	r15, r1
+    39b4:	12 c0       	rjmp	.+36     	; 0x39da <butter_filter+0x5c>
+    39b6:	ee 24       	eor	r14, r14
+    39b8:	ff 24       	eor	r15, r15
+    39ba:	0f c0       	rjmp	.+30     	; 0x39da <butter_filter+0x5c>
+    39bc:	a2 e0       	ldi	r26, 0x02	; 2
+    39be:	ea 2e       	mov	r14, r26
+    39c0:	f1 2c       	mov	r15, r1
+    39c2:	0b c0       	rjmp	.+22     	; 0x39da <butter_filter+0x5c>
+    39c4:	f3 e0       	ldi	r31, 0x03	; 3
+    39c6:	ef 2e       	mov	r14, r31
+    39c8:	f1 2c       	mov	r15, r1
+    39ca:	07 c0       	rjmp	.+14     	; 0x39da <butter_filter+0x5c>
+    39cc:	e4 e0       	ldi	r30, 0x04	; 4
+    39ce:	ee 2e       	mov	r14, r30
+    39d0:	f1 2c       	mov	r15, r1
+    39d2:	03 c0       	rjmp	.+6      	; 0x39da <butter_filter+0x5c>
+    39d4:	5f ef       	ldi	r21, 0xFF	; 255
+    39d6:	e5 2e       	mov	r14, r21
+    39d8:	f1 2c       	mov	r15, r1
+    39da:	f7 01       	movw	r30, r14
+    39dc:	e7 5c       	subi	r30, 0xC7	; 199
+    39de:	fb 4f       	sbci	r31, 0xFB	; 251
+ **/
+void butter_filter(int range_id, int val)
+{
+    int range_index = get_range_index(range_id);
+    // we have a non-error value
+    if(val > -1 && val <= MAX_IR_LINEAR)
+    39e0:	21 e0       	ldi	r18, 0x01	; 1
+    39e2:	68 34       	cpi	r22, 0x48	; 72
+    39e4:	72 07       	cpc	r23, r18
+    39e6:	08 f0       	brcs	.+2      	; 0x39ea <butter_filter+0x6c>
+    39e8:	8f c0       	rjmp	.+286    	; 0x3b08 <butter_filter+0x18a>
+    {
+      // we just passed two or fewer -1's: act as though none seen
+      if(neg_one_count[range_index] < 3)
+    39ea:	80 81       	ld	r24, Z
+    39ec:	97 01       	movw	r18, r14
+    39ee:	22 0f       	add	r18, r18
+    39f0:	33 1f       	adc	r19, r19
+    39f2:	22 0f       	add	r18, r18
+    39f4:	33 1f       	adc	r19, r19
+    39f6:	e7 01       	movw	r28, r14
+    39f8:	cc 0f       	add	r28, r28
+    39fa:	dd 1f       	adc	r29, r29
+    39fc:	6e 54       	subi	r22, 0x4E	; 78
+    39fe:	83 30       	cpi	r24, 0x03	; 3
+    3a00:	d0 f4       	brcc	.+52     	; 0x3a36 <butter_filter+0xb8>
+      {
+        // shift the values of the arrays to the left
+        int i;
+        for(i=0; i<2; i++)
+        {
+          butter_x[range_index][i] = butter_x[range_index][i+1];
+    3a02:	2a 5e       	subi	r18, 0xEA	; 234
+    3a04:	3b 4f       	sbci	r19, 0xFB	; 251
+    3a06:	f9 01       	movw	r30, r18
+    3a08:	81 81       	ldd	r24, Z+1	; 0x01
+    3a0a:	80 83       	st	Z, r24
+          butter_y[range_index][i] = butter_y[range_index][i+1];
+    3a0c:	fe 01       	movw	r30, r28
+    3a0e:	ee 0d       	add	r30, r14
+    3a10:	ff 1d       	adc	r31, r15
+    3a12:	e6 5d       	subi	r30, 0xD6	; 214
+    3a14:	fb 4f       	sbci	r31, 0xFB	; 251
+    3a16:	81 81       	ldd	r24, Z+1	; 0x01
+    3a18:	80 83       	st	Z, r24
+      {
+        // shift the values of the arrays to the left
+        int i;
+        for(i=0; i<2; i++)
+        {
+          butter_x[range_index][i] = butter_x[range_index][i+1];
+    3a1a:	de 01       	movw	r26, r28
+    3a1c:	aa 0f       	add	r26, r26
+    3a1e:	bb 1f       	adc	r27, r27
+    3a20:	a8 5e       	subi	r26, 0xE8	; 232
+    3a22:	bb 4f       	sbci	r27, 0xFB	; 251
+    3a24:	8c 91       	ld	r24, X
+    3a26:	e9 01       	movw	r28, r18
+    3a28:	89 83       	std	Y+1, r24	; 0x01
+          butter_y[range_index][i] = butter_y[range_index][i+1];
+    3a2a:	82 81       	ldd	r24, Z+2	; 0x02
+    3a2c:	81 83       	std	Z+1, r24	; 0x01
+        }
+        butter_x[range_index][2] = butter_x[range_index][3];
+    3a2e:	8b 81       	ldd	r24, Y+3	; 0x03
+    3a30:	8c 93       	st	X, r24
+        // add the new value to the X array
+        butter_x[range_index][3] = val - MIN_IR_LINEAR;
+    3a32:	6b 83       	std	Y+3, r22	; 0x03
+    3a34:	16 c0       	rjmp	.+44     	; 0x3a62 <butter_filter+0xe4>
+      {
+        int i;
+        // fill x and y values with the new value
+        for(i=0; i<3; i++)
+        {
+          butter_x[range_index][i] = val - MIN_IR_LINEAR;
+    3a36:	d9 01       	movw	r26, r18
+    3a38:	aa 5e       	subi	r26, 0xEA	; 234
+    3a3a:	bb 4f       	sbci	r27, 0xFB	; 251
+    3a3c:	6c 93       	st	X, r22
+          butter_y[range_index][i] = val - MIN_IR_LINEAR;
+    3a3e:	fe 01       	movw	r30, r28
+    3a40:	ee 0d       	add	r30, r14
+    3a42:	ff 1d       	adc	r31, r15
+    3a44:	e6 5d       	subi	r30, 0xD6	; 214
+    3a46:	fb 4f       	sbci	r31, 0xFB	; 251
+    3a48:	60 83       	st	Z, r22
+      {
+        int i;
+        // fill x and y values with the new value
+        for(i=0; i<3; i++)
+        {
+          butter_x[range_index][i] = val - MIN_IR_LINEAR;
+    3a4a:	11 96       	adiw	r26, 0x01	; 1
+    3a4c:	6c 93       	st	X, r22
+    3a4e:	11 97       	sbiw	r26, 0x01	; 1
+          butter_y[range_index][i] = val - MIN_IR_LINEAR;
+    3a50:	61 83       	std	Z+1, r22	; 0x01
+      {
+        int i;
+        // fill x and y values with the new value
+        for(i=0; i<3; i++)
+        {
+          butter_x[range_index][i] = val - MIN_IR_LINEAR;
+    3a52:	cc 0f       	add	r28, r28
+    3a54:	dd 1f       	adc	r29, r29
+    3a56:	c8 5e       	subi	r28, 0xE8	; 232
+    3a58:	db 4f       	sbci	r29, 0xFB	; 251
+    3a5a:	68 83       	st	Y, r22
+          butter_y[range_index][i] = val - MIN_IR_LINEAR;
+    3a5c:	62 83       	std	Z+2, r22	; 0x02
+        }
+        butter_x[range_index][3] = val - MIN_IR_LINEAR;
+    3a5e:	13 96       	adiw	r26, 0x03	; 3
+    3a60:	6c 93       	st	X, r22
+      }
+
+      // reset the -1 count value
+      neg_one_count[range_index] = 0;
+    3a62:	f7 01       	movw	r30, r14
+    3a64:	e7 5c       	subi	r30, 0xC7	; 199
+    3a66:	fb 4f       	sbci	r31, 0xFB	; 251
+    3a68:	10 82       	st	Z, r1
+      int16_t temp1 = (int16_t)butter_x[range_index][3] +
+          (int16_t)butter_x[range_index][0] + (2*MIN_IR_LINEAR);
+      int16_t temp2 = (int16_t)butter_x[range_index][2] +
+          (int16_t)butter_x[range_index][1] + (2*MIN_IR_LINEAR);
+      int16_t temp3 = (int16_t)butter_y[range_index][0] + MIN_IR_LINEAR;
+      int16_t filtered_big = ((((temp1*8)-(temp3*16))/3)+(temp2*8)+8)/16;
+    3a6a:	d7 01       	movw	r26, r14
+    3a6c:	aa 0f       	add	r26, r26
+    3a6e:	bb 1f       	adc	r27, r27
+    3a70:	fd 01       	movw	r30, r26
+    3a72:	ee 0f       	add	r30, r30
+    3a74:	ff 1f       	adc	r31, r31
+    3a76:	e8 5e       	subi	r30, 0xE8	; 232
+    3a78:	fb 4f       	sbci	r31, 0xFB	; 251
+    3a7a:	80 81       	ld	r24, Z
+    3a7c:	f7 01       	movw	r30, r14
+    3a7e:	ee 0f       	add	r30, r30
+    3a80:	ff 1f       	adc	r31, r31
+    3a82:	ee 0f       	add	r30, r30
+    3a84:	ff 1f       	adc	r31, r31
+    3a86:	ea 5e       	subi	r30, 0xEA	; 234
+    3a88:	fb 4f       	sbci	r31, 0xFB	; 251
+    3a8a:	01 81       	ldd	r16, Z+1	; 0x01
+    3a8c:	10 e0       	ldi	r17, 0x00	; 0
+    3a8e:	08 0f       	add	r16, r24
+    3a90:	11 1d       	adc	r17, r1
+    3a92:	53 e0       	ldi	r21, 0x03	; 3
+    3a94:	00 0f       	add	r16, r16
+    3a96:	11 1f       	adc	r17, r17
+    3a98:	5a 95       	dec	r21
+    3a9a:	e1 f7       	brne	.-8      	; 0x3a94 <butter_filter+0x116>
+    3a9c:	08 51       	subi	r16, 0x18	; 24
+    3a9e:	1b 4f       	sbci	r17, 0xFB	; 251
+    3aa0:	23 81       	ldd	r18, Z+3	; 0x03
+    3aa2:	80 81       	ld	r24, Z
+    3aa4:	90 e0       	ldi	r25, 0x00	; 0
+    3aa6:	82 0f       	add	r24, r18
+    3aa8:	91 1d       	adc	r25, r1
+    3aaa:	84 56       	subi	r24, 0x64	; 100
+    3aac:	9f 4f       	sbci	r25, 0xFF	; 255
+    3aae:	ae 0d       	add	r26, r14
+    3ab0:	bf 1d       	adc	r27, r15
+    3ab2:	a6 5d       	subi	r26, 0xD6	; 214
+    3ab4:	bb 4f       	sbci	r27, 0xFB	; 251
+    3ab6:	2c 91       	ld	r18, X
+    3ab8:	30 e0       	ldi	r19, 0x00	; 0
+    3aba:	22 5b       	subi	r18, 0xB2	; 178
+    3abc:	3f 4f       	sbci	r19, 0xFF	; 255
+    3abe:	22 0f       	add	r18, r18
+    3ac0:	33 1f       	adc	r19, r19
+    3ac2:	82 1b       	sub	r24, r18
+    3ac4:	93 0b       	sbc	r25, r19
+    3ac6:	23 e0       	ldi	r18, 0x03	; 3
+    3ac8:	88 0f       	add	r24, r24
+    3aca:	99 1f       	adc	r25, r25
+    3acc:	2a 95       	dec	r18
+    3ace:	e1 f7       	brne	.-8      	; 0x3ac8 <butter_filter+0x14a>
+    3ad0:	63 e0       	ldi	r22, 0x03	; 3
+    3ad2:	70 e0       	ldi	r23, 0x00	; 0
+    3ad4:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    3ad8:	c8 01       	movw	r24, r16
+    3ada:	86 0f       	add	r24, r22
+    3adc:	97 1f       	adc	r25, r23
+    3ade:	60 e1       	ldi	r22, 0x10	; 16
+    3ae0:	70 e0       	ldi	r23, 0x00	; 0
+    3ae2:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    3ae6:	cb 01       	movw	r24, r22
+      filtered_big -= MIN_IR_LINEAR;
+    3ae8:	8e 54       	subi	r24, 0x4E	; 78
+    3aea:	90 40       	sbci	r25, 0x00	; 0
+      uint8_t filtered = filtered_big > 0xff ? 0xff : (uint8_t)filtered_big;
+    3aec:	8f 3f       	cpi	r24, 0xFF	; 255
+    3aee:	91 05       	cpc	r25, r1
+    3af0:	11 f0       	breq	.+4      	; 0x3af6 <butter_filter+0x178>
+    3af2:	0c f0       	brlt	.+2      	; 0x3af6 <butter_filter+0x178>
+    3af4:	8f ef       	ldi	r24, 0xFF	; 255
+
+      butter_y[range_index][2] = filtered;
+    3af6:	f7 01       	movw	r30, r14
+    3af8:	ee 0f       	add	r30, r30
+    3afa:	ff 1f       	adc	r31, r31
+    3afc:	ee 0d       	add	r30, r14
+    3afe:	ff 1d       	adc	r31, r15
+    3b00:	e6 5d       	subi	r30, 0xD6	; 214
+    3b02:	fb 4f       	sbci	r31, 0xFB	; 251
+    3b04:	82 83       	std	Z+2, r24	; 0x02
+    3b06:	0a c0       	rjmp	.+20     	; 0x3b1c <butter_filter+0x19e>
+    }
+    // -1 seen - don't want to store it
+    else
+    {
+        // increment -1 count, preventing overflow
+        neg_one_count[range_index] = neg_one_count[range_index] == 0xff ? 0xff :
+    3b08:	80 81       	ld	r24, Z
+    3b0a:	8f 3f       	cpi	r24, 0xFF	; 255
+    3b0c:	09 f0       	breq	.+2      	; 0x3b10 <butter_filter+0x192>
+    3b0e:	8f 5f       	subi	r24, 0xFF	; 255
+    3b10:	e9 e3       	ldi	r30, 0x39	; 57
+    3b12:	f4 e0       	ldi	r31, 0x04	; 4
+    3b14:	ee 0e       	add	r14, r30
+    3b16:	ff 1e       	adc	r15, r31
+    3b18:	e7 01       	movw	r28, r14
+    3b1a:	88 83       	st	Y, r24
+            neg_one_count[range_index]+1;
+    }
+}
+    3b1c:	df 91       	pop	r29
+    3b1e:	cf 91       	pop	r28
+    3b20:	1f 91       	pop	r17
+    3b22:	0f 91       	pop	r16
+    3b24:	ff 90       	pop	r15
+    3b26:	ef 90       	pop	r14
+    3b28:	08 95       	ret
+
+00003b2a <butter_init>:
+    int i;
+    // init -1 count to 3 for each rangefinder
+    // this will cause them to restart the filter
+    for(i=0; i<5; i++)
+    {
+        neg_one_count[i] = 3;
+    3b2a:	83 e0       	ldi	r24, 0x03	; 3
+    3b2c:	80 93 39 04 	sts	0x0439, r24
+    3b30:	80 93 3a 04 	sts	0x043A, r24
+    3b34:	80 93 3b 04 	sts	0x043B, r24
+    3b38:	80 93 3c 04 	sts	0x043C, r24
+    3b3c:	80 93 3d 04 	sts	0x043D, r24
+    }
+
+    // set up the rtc to run butter_task periodically
+    rtc_init(SIXTEENTH_SECOND, butter_task);
+    3b40:	81 e0       	ldi	r24, 0x01	; 1
+    3b42:	90 e0       	ldi	r25, 0x00	; 0
+    3b44:	63 e0       	ldi	r22, 0x03	; 3
+    3b46:	7e e1       	ldi	r23, 0x1E	; 30
+    3b48:	0e 94 e0 1f 	call	0x3fc0	; 0x3fc0 <rtc_init>
+}
+    3b4c:	08 95       	ret
+
+00003b4e <range_read_distance>:
+ * @return the distance measured by the rangefinder
+ *
+ * @see range_init
+ **/
+int range_read_distance(int range_id) {
+  return linearize_distance(analog8(range_id));
+    3b4e:	0e 94 d4 09 	call	0x13a8	; 0x13a8 <analog8>
+ * @param value the 8-bit analog value from rangefinder
+ *
+ * @return linearized distance reading from rangefinder (integer in [101,800])
+ **/
+int linearize_distance(int value) {
+  if(value < MIN_IR_ADC8) {
+    3b52:	8b 31       	cpi	r24, 0x1B	; 27
+    3b54:	91 05       	cpc	r25, r1
+    3b56:	5c f0       	brlt	.+22     	; 0x3b6e <range_read_distance+0x20>
+    return -1;
+  } else if(value > MAX_IR_ADC8) {
+    3b58:	83 36       	cpi	r24, 0x63	; 99
+    3b5a:	91 05       	cpc	r25, r1
+    3b5c:	44 f4       	brge	.+16     	; 0x3b6e <range_read_distance+0x20>
+    return -1;
+  } else {
+    return pgm_read_word(&(IR_dist_conversion[value - MIN_IR_ADC8]));
+    3b5e:	fc 01       	movw	r30, r24
+    3b60:	ee 0f       	add	r30, r30
+    3b62:	ff 1f       	adc	r31, r31
+    3b64:	ea 5c       	subi	r30, 0xCA	; 202
+    3b66:	fd 4f       	sbci	r31, 0xFD	; 253
+    3b68:	25 91       	lpm	r18, Z+
+    3b6a:	34 91       	lpm	r19, Z+
+    3b6c:	02 c0       	rjmp	.+4      	; 0x3b72 <range_read_distance+0x24>
+    3b6e:	2f ef       	ldi	r18, 0xFF	; 255
+    3b70:	3f ef       	ldi	r19, 0xFF	; 255
+ *
+ * @see range_init
+ **/
+int range_read_distance(int range_id) {
+  return linearize_distance(analog8(range_id));
+}
+    3b72:	c9 01       	movw	r24, r18
+    3b74:	08 95       	ret
+
+00003b76 <range_read_filtered_distance>:
+ * unfiltered value from the rangefinder.
+ *
+ * @param range_id the rangefinder to use. This should be one of the constants
+ * IR1 - IR5.
+ **/
+int range_read_filtered_distance(int range_id){
+    3b76:	9c 01       	movw	r18, r24
+    if(!use_filter){
+    3b78:	80 91 14 04 	lds	r24, 0x0414
+    3b7c:	90 91 15 04 	lds	r25, 0x0415
+    3b80:	89 2b       	or	r24, r25
+    3b82:	29 f4       	brne	.+10     	; 0x3b8e <range_read_filtered_distance+0x18>
+        return range_read_distance(range_id);
+    3b84:	c9 01       	movw	r24, r18
+    3b86:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+    3b8a:	9c 01       	movw	r18, r24
+    3b8c:	3a c0       	rjmp	.+116    	; 0x3c02 <range_read_filtered_distance+0x8c>
+/*
+ * Butterworth helper function that takes a rangefinder ID and turns it into
+ * an array index between 0 and 4.
+ */
+int get_range_index(int range_id){
+    switch(range_id){
+    3b8e:	24 30       	cpi	r18, 0x04	; 4
+    3b90:	31 05       	cpc	r19, r1
+    3b92:	b9 f0       	breq	.+46     	; 0x3bc2 <range_read_filtered_distance+0x4c>
+    3b94:	25 30       	cpi	r18, 0x05	; 5
+    3b96:	31 05       	cpc	r19, r1
+    3b98:	3c f4       	brge	.+14     	; 0x3ba8 <range_read_filtered_distance+0x32>
+    3b9a:	22 30       	cpi	r18, 0x02	; 2
+    3b9c:	31 05       	cpc	r19, r1
+    3b9e:	b9 f0       	breq	.+46     	; 0x3bce <range_read_filtered_distance+0x58>
+    3ba0:	23 30       	cpi	r18, 0x03	; 3
+    3ba2:	31 05       	cpc	r19, r1
+    3ba4:	b9 f4       	brne	.+46     	; 0x3bd4 <range_read_filtered_distance+0x5e>
+    3ba6:	10 c0       	rjmp	.+32     	; 0x3bc8 <range_read_filtered_distance+0x52>
+    3ba8:	25 30       	cpi	r18, 0x05	; 5
+    3baa:	31 05       	cpc	r19, r1
+    3bac:	21 f0       	breq	.+8      	; 0x3bb6 <range_read_filtered_distance+0x40>
+    3bae:	26 30       	cpi	r18, 0x06	; 6
+    3bb0:	31 05       	cpc	r19, r1
+    3bb2:	81 f4       	brne	.+32     	; 0x3bd4 <range_read_filtered_distance+0x5e>
+    3bb4:	03 c0       	rjmp	.+6      	; 0x3bbc <range_read_filtered_distance+0x46>
+    3bb6:	21 e0       	ldi	r18, 0x01	; 1
+    3bb8:	30 e0       	ldi	r19, 0x00	; 0
+    3bba:	0e c0       	rjmp	.+28     	; 0x3bd8 <range_read_filtered_distance+0x62>
+    3bbc:	20 e0       	ldi	r18, 0x00	; 0
+    3bbe:	30 e0       	ldi	r19, 0x00	; 0
+    3bc0:	0b c0       	rjmp	.+22     	; 0x3bd8 <range_read_filtered_distance+0x62>
+    3bc2:	22 e0       	ldi	r18, 0x02	; 2
+    3bc4:	30 e0       	ldi	r19, 0x00	; 0
+    3bc6:	08 c0       	rjmp	.+16     	; 0x3bd8 <range_read_filtered_distance+0x62>
+    3bc8:	23 e0       	ldi	r18, 0x03	; 3
+    3bca:	30 e0       	ldi	r19, 0x00	; 0
+    3bcc:	05 c0       	rjmp	.+10     	; 0x3bd8 <range_read_filtered_distance+0x62>
+    3bce:	24 e0       	ldi	r18, 0x04	; 4
+    3bd0:	30 e0       	ldi	r19, 0x00	; 0
+    3bd2:	02 c0       	rjmp	.+4      	; 0x3bd8 <range_read_filtered_distance+0x62>
+    3bd4:	2f ef       	ldi	r18, 0xFF	; 255
+    3bd6:	30 e0       	ldi	r19, 0x00	; 0
+    }
+
+    int range_index = get_range_index(range_id);
+
+    // haven't seen too many -1s recently - return filtered value
+    if(neg_one_count[range_index] < 3)
+    3bd8:	f9 01       	movw	r30, r18
+    3bda:	e7 5c       	subi	r30, 0xC7	; 199
+    3bdc:	fb 4f       	sbci	r31, 0xFB	; 251
+    3bde:	80 81       	ld	r24, Z
+    3be0:	83 30       	cpi	r24, 0x03	; 3
+    3be2:	18 f0       	brcs	.+6      	; 0x3bea <range_read_filtered_distance+0x74>
+    3be4:	2f ef       	ldi	r18, 0xFF	; 255
+    3be6:	3f ef       	ldi	r19, 0xFF	; 255
+    3be8:	0c c0       	rjmp	.+24     	; 0x3c02 <range_read_filtered_distance+0x8c>
+    {
+        return butter_y[range_index][2] + MIN_IR_LINEAR;
+    3bea:	f9 01       	movw	r30, r18
+    3bec:	ee 0f       	add	r30, r30
+    3bee:	ff 1f       	adc	r31, r31
+    3bf0:	e2 0f       	add	r30, r18
+    3bf2:	f3 1f       	adc	r31, r19
+    3bf4:	e6 5d       	subi	r30, 0xD6	; 214
+    3bf6:	fb 4f       	sbci	r31, 0xFB	; 251
+    3bf8:	82 81       	ldd	r24, Z+2	; 0x02
+    3bfa:	28 2f       	mov	r18, r24
+    3bfc:	30 e0       	ldi	r19, 0x00	; 0
+    3bfe:	22 5b       	subi	r18, 0xB2	; 178
+    3c00:	3f 4f       	sbci	r19, 0xFF	; 255
+    }
+    // have seen several -1s - return -1
+    return -1;
+}
+    3c02:	c9 01       	movw	r24, r18
+    3c04:	08 95       	ret
+
+00003c06 <butter_task>:
+ * This task should be run frequently so that range_read_filtered_distance
+ * returns fresh values
+ */
+void butter_task(void)
+{
+    butter_filter(IR1, range_read_distance(IR1));
+    3c06:	86 e0       	ldi	r24, 0x06	; 6
+    3c08:	90 e0       	ldi	r25, 0x00	; 0
+    3c0a:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+    3c0e:	bc 01       	movw	r22, r24
+    3c10:	86 e0       	ldi	r24, 0x06	; 6
+    3c12:	90 e0       	ldi	r25, 0x00	; 0
+    3c14:	0e 94 bf 1c 	call	0x397e	; 0x397e <butter_filter>
+    butter_filter(IR2, range_read_distance(IR2));
+    3c18:	85 e0       	ldi	r24, 0x05	; 5
+    3c1a:	90 e0       	ldi	r25, 0x00	; 0
+    3c1c:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+    3c20:	bc 01       	movw	r22, r24
+    3c22:	85 e0       	ldi	r24, 0x05	; 5
+    3c24:	90 e0       	ldi	r25, 0x00	; 0
+    3c26:	0e 94 bf 1c 	call	0x397e	; 0x397e <butter_filter>
+    butter_filter(IR3, range_read_distance(IR3));
+    3c2a:	84 e0       	ldi	r24, 0x04	; 4
+    3c2c:	90 e0       	ldi	r25, 0x00	; 0
+    3c2e:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+    3c32:	bc 01       	movw	r22, r24
+    3c34:	84 e0       	ldi	r24, 0x04	; 4
+    3c36:	90 e0       	ldi	r25, 0x00	; 0
+    3c38:	0e 94 bf 1c 	call	0x397e	; 0x397e <butter_filter>
+    butter_filter(IR4, range_read_distance(IR4));
+    3c3c:	83 e0       	ldi	r24, 0x03	; 3
+    3c3e:	90 e0       	ldi	r25, 0x00	; 0
+    3c40:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+    3c44:	bc 01       	movw	r22, r24
+    3c46:	83 e0       	ldi	r24, 0x03	; 3
+    3c48:	90 e0       	ldi	r25, 0x00	; 0
+    3c4a:	0e 94 bf 1c 	call	0x397e	; 0x397e <butter_filter>
+    butter_filter(IR5, range_read_distance(IR5));
+    3c4e:	82 e0       	ldi	r24, 0x02	; 2
+    3c50:	90 e0       	ldi	r25, 0x00	; 0
+    3c52:	0e 94 a7 1d 	call	0x3b4e	; 0x3b4e <range_read_distance>
+    3c56:	bc 01       	movw	r22, r24
+    3c58:	82 e0       	ldi	r24, 0x02	; 2
+    3c5a:	90 e0       	ldi	r25, 0x00	; 0
+    3c5c:	0e 94 bf 1c 	call	0x397e	; 0x397e <butter_filter>
+}
+    3c60:	08 95       	ret
+
+00003c62 <range_init>:
+ *
+ * @see range_read_distance
+ **/
+void range_init(void)
+{
+  digital_output(_PIN_B4,0);
+    3c62:	84 e1       	ldi	r24, 0x14	; 20
+    3c64:	90 e0       	ldi	r25, 0x00	; 0
+    3c66:	60 e0       	ldi	r22, 0x00	; 0
+    3c68:	70 e0       	ldi	r23, 0x00	; 0
+    3c6a:	0e 94 1e 12 	call	0x243c	; 0x243c <digital_output>
+  use_filter = 0;
+    3c6e:	10 92 15 04 	sts	0x0415, r1
+    3c72:	10 92 14 04 	sts	0x0414, r1
+}
+    3c76:	08 95       	ret
+
+00003c78 <range_init_filter>:
+ * computations in the RTC interrupt.
+ *
+ * @param filter 1 to enable the filter, 0 to leave it turned off
+ **/
+void range_init_filter(int filter)
+{
+    3c78:	0f 93       	push	r16
+    3c7a:	1f 93       	push	r17
+    3c7c:	8c 01       	movw	r16, r24
+    range_init();
+    3c7e:	0e 94 31 1e 	call	0x3c62	; 0x3c62 <range_init>
+    if(filter){
+    3c82:	01 2b       	or	r16, r17
+    3c84:	41 f0       	breq	.+16     	; 0x3c96 <range_init_filter+0x1e>
+        use_filter = 1;
+    3c86:	81 e0       	ldi	r24, 0x01	; 1
+    3c88:	90 e0       	ldi	r25, 0x00	; 0
+    3c8a:	90 93 15 04 	sts	0x0415, r25
+    3c8e:	80 93 14 04 	sts	0x0414, r24
+        butter_init();
+    3c92:	0e 94 95 1d 	call	0x3b2a	; 0x3b2a <butter_init>
+    }
+}
+    3c96:	1f 91       	pop	r17
+    3c98:	0f 91       	pop	r16
+    3c9a:	08 95       	ret
+
+00003c9c <usb_init>:
+void usb_init() {
+  //Set baud rate
+  // - 115200 (both wired and wireless) is UBRR=8, U2X=1
+  // - 9600 is U2X =1, UBRR = 107.
+#if (USB_BAUD == 115200)
+  UBRR0H = 0x00;
+    3c9c:	10 92 90 00 	sts	0x0090, r1
+  UBRR0L = 8;
+    3ca0:	88 e0       	ldi	r24, 0x08	; 8
+    3ca2:	89 b9       	out	0x09, r24	; 9
+  UCSR0A |= _BV(U2X0);
+    3ca4:	59 9a       	sbi	0x0b, 1	; 11
+#else //Baud rate is defined in the header file, we should not get here
+  return;
+#endif
+
+  /*Enable receiver and transmitter */
+  UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
+    3ca6:	8a b1       	in	r24, 0x0a	; 10
+    3ca8:	88 61       	ori	r24, 0x18	; 24
+    3caa:	8a b9       	out	0x0a, r24	; 10
+	
+  /* Set frame format: 8data, 1stop bit, asynchronous normal mode */
+  UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01);
+    3cac:	e5 e9       	ldi	r30, 0x95	; 149
+    3cae:	f0 e0       	ldi	r31, 0x00	; 0
+    3cb0:	80 81       	ld	r24, Z
+    3cb2:	86 60       	ori	r24, 0x06	; 6
+    3cb4:	80 83       	st	Z, r24
+  // if we have enabled the stdio stuff, then we init it here
+#ifdef USE_STDIO
+  /* Open the stdio stream corresponding to this port */
+  usb_fd = fdevopen(usb_putc, usb_getc);
+#endif
+}
+    3cb6:	08 95       	ret
+
+00003cb8 <xbee_init>:
+#if (XBEE_BAUD == 115200)
+  UBRR1H = 0x00;
+  UBRR1L = 8;
+  UCSR1A |= _BV(U2X1);
+#elif (XBEE_BAUD == 9600)
+  UBRR1H = 0x00;
+    3cb8:	10 92 98 00 	sts	0x0098, r1
+  UBRR1L = 103;
+    3cbc:	87 e6       	ldi	r24, 0x67	; 103
+    3cbe:	80 93 99 00 	sts	0x0099, r24
+  UCSR1A |= _BV(U2X1);
+    3cc2:	eb e9       	ldi	r30, 0x9B	; 155
+    3cc4:	f0 e0       	ldi	r31, 0x00	; 0
+    3cc6:	80 81       	ld	r24, Z
+    3cc8:	82 60       	ori	r24, 0x02	; 2
+    3cca:	80 83       	st	Z, r24
+#else //Baud rate is defined in the header file, we should not get here
+  return;
+#endif
+
+  //Enable receiver and transmitter
+  UCSR1B |= (1<<RXEN1)|(1<<TXEN1);
+    3ccc:	ea e9       	ldi	r30, 0x9A	; 154
+    3cce:	f0 e0       	ldi	r31, 0x00	; 0
+    3cd0:	80 81       	ld	r24, Z
+    3cd2:	88 61       	ori	r24, 0x18	; 24
+    3cd4:	80 83       	st	Z, r24
+	
+  // Set frame format: 8data, 1stop bit, asynchronous normal mode
+  UCSR1C |= (1<<UCSZ10) | (1<<UCSZ11);
+    3cd6:	ed e9       	ldi	r30, 0x9D	; 157
+    3cd8:	f0 e0       	ldi	r31, 0x00	; 0
+    3cda:	80 81       	ld	r24, Z
+    3cdc:	86 60       	ori	r24, 0x06	; 6
+    3cde:	80 83       	st	Z, r24
+  // if we have enabled the stdio stuff, then we init it here
+#ifdef USE_STDIO
+  /* Open the stdio stream corresponding to this port */
+  xbee_fd = fdevopen(xbee_putc, xbee_getc);
+#endif
+}
+    3ce0:	08 95       	ret
+
+00003ce2 <usb_putc>:
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3ce2:	5d 9b       	sbis	0x0b, 5	; 11
+    3ce4:	fe cf       	rjmp	.-4      	; 0x3ce2 <usb_putc>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3ce6:	8c b9       	out	0x0c, r24	; 12
+  return 0;
+}
+    3ce8:	80 e0       	ldi	r24, 0x00	; 0
+    3cea:	90 e0       	ldi	r25, 0x00	; 0
+    3cec:	08 95       	ret
+
+00003cee <xbee_putc>:
+ * Sends a character to the XBee.
+ *
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int xbee_putc(char c) {
+    3cee:	98 2f       	mov	r25, r24
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR1A, UDRE1);
+    3cf0:	80 91 9b 00 	lds	r24, 0x009B
+    3cf4:	85 ff       	sbrs	r24, 5
+    3cf6:	fc cf       	rjmp	.-8      	; 0x3cf0 <xbee_putc+0x2>
+	
+  // Load buffer with your character
+  UDR1 = c;
+    3cf8:	90 93 9c 00 	sts	0x009C, r25
+  return 0;
+}
+    3cfc:	80 e0       	ldi	r24, 0x00	; 0
+    3cfe:	90 e0       	ldi	r25, 0x00	; 0
+    3d00:	08 95       	ret
+
+00003d02 <usb_puts>:
+ * Sends a sequence of characters over USB.
+ *
+ * @param s the string to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_puts(char *s) {
+    3d02:	fc 01       	movw	r30, r24
+    3d04:	04 c0       	rjmp	.+8      	; 0x3d0e <usb_puts+0xc>
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3d06:	5d 9b       	sbis	0x0b, 5	; 11
+    3d08:	fe cf       	rjmp	.-4      	; 0x3d06 <usb_puts+0x4>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3d0a:	8c b9       	out	0x0c, r24	; 12
+ **/
+int usb_puts(char *s) {
+  char *t = s;
+  while (*t != 0) {
+    usb_putc(*t);
+    t++;
+    3d0c:	31 96       	adiw	r30, 0x01	; 1
+ * @param s the string to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_puts(char *s) {
+  char *t = s;
+  while (*t != 0) {
+    3d0e:	80 81       	ld	r24, Z
+    3d10:	88 23       	and	r24, r24
+    3d12:	c9 f7       	brne	.-14     	; 0x3d06 <usb_puts+0x4>
+    usb_putc(*t);
+    t++;
+  }
+  return 0;
+}
+    3d14:	80 e0       	ldi	r24, 0x00	; 0
+    3d16:	90 e0       	ldi	r25, 0x00	; 0
+    3d18:	08 95       	ret
+
+00003d1a <usb_getc>:
+ *
+ * @see usb_init, usb_getc_nb
+ **/
+int usb_getc(void) {
+  // Wait for the receive buffer to be filled
+  loop_until_bit_is_set(UCSR0A, RXC0);
+    3d1a:	5f 9b       	sbis	0x0b, 7	; 11
+    3d1c:	fe cf       	rjmp	.-4      	; 0x3d1a <usb_getc>
+	
+  // Read the receive buffer
+  return UDR0;
+    3d1e:	8c b1       	in	r24, 0x0c	; 12
+}
+    3d20:	90 e0       	ldi	r25, 0x00	; 0
+    3d22:	08 95       	ret
+
+00003d24 <xbee_getc>:
+ * 
+ * @see xbee_init, xbee_getc_nb
+ **/
+int xbee_getc(void) {
+  // Wait for the receive buffer to be filled
+  loop_until_bit_is_set(UCSR1A, RXC1);
+    3d24:	80 91 9b 00 	lds	r24, 0x009B
+    3d28:	87 ff       	sbrs	r24, 7
+    3d2a:	fc cf       	rjmp	.-8      	; 0x3d24 <xbee_getc>
+	
+  // Read the receive buffer
+  return UDR1;
+    3d2c:	80 91 9c 00 	lds	r24, 0x009C
+}
+    3d30:	90 e0       	ldi	r25, 0x00	; 0
+    3d32:	08 95       	ret
+
+00003d34 <usb_getc_nb>:
+ * 
+ * @return -1 if no character is available, 0 otherwise
+ * 
+ * @see usb_init, usb_getc
+ **/
+int usb_getc_nb(char *c) {
+    3d34:	fc 01       	movw	r30, r24
+  // check if the receive buffer is filled
+  if (UCSR0A & _BV(RXC0)) {
+    3d36:	5f 99       	sbic	0x0b, 7	; 11
+    3d38:	03 c0       	rjmp	.+6      	; 0x3d40 <usb_getc_nb+0xc>
+    3d3a:	2f ef       	ldi	r18, 0xFF	; 255
+    3d3c:	3f ef       	ldi	r19, 0xFF	; 255
+    3d3e:	04 c0       	rjmp	.+8      	; 0x3d48 <usb_getc_nb+0x14>
+    // Read the receive buffer
+    (*c) = UDR0;
+    3d40:	8c b1       	in	r24, 0x0c	; 12
+    3d42:	80 83       	st	Z, r24
+    3d44:	20 e0       	ldi	r18, 0x00	; 0
+    3d46:	30 e0       	ldi	r19, 0x00	; 0
+    return 0;
+  } else {
+    // Return empty
+    return -1;
+  }
+}
+    3d48:	c9 01       	movw	r24, r18
+    3d4a:	08 95       	ret
+
+00003d4c <xbee_getc_nb>:
+ * 
+ * @return -1 if no character is available, 0 otherwise
+ *
+ * @see xbee_init, xbee_getc
+ **/
+int xbee_getc_nb(char *c) {
+    3d4c:	fc 01       	movw	r30, r24
+  // check if the receive buffer is filled
+  if (UCSR1A & _BV(RXC1)) {
+    3d4e:	80 91 9b 00 	lds	r24, 0x009B
+    3d52:	87 fd       	sbrc	r24, 7
+    3d54:	03 c0       	rjmp	.+6      	; 0x3d5c <xbee_getc_nb+0x10>
+    3d56:	2f ef       	ldi	r18, 0xFF	; 255
+    3d58:	3f ef       	ldi	r19, 0xFF	; 255
+    3d5a:	05 c0       	rjmp	.+10     	; 0x3d66 <xbee_getc_nb+0x1a>
+    // Read the receive buffer
+    (*c) = UDR1;
+    3d5c:	80 91 9c 00 	lds	r24, 0x009C
+    3d60:	80 83       	st	Z, r24
+    3d62:	20 e0       	ldi	r18, 0x00	; 0
+    3d64:	30 e0       	ldi	r19, 0x00	; 0
+    return 0;
+  } else {
+    // Return empty
+    return -1;
+  }
+}
+    3d66:	c9 01       	movw	r24, r18
+    3d68:	08 95       	ret
+
+00003d6a <usb_puti>:
+ * 
+ * @return 0 if successful, nonzero otherwise
+ *
+ * @see usb_init, usb_putc
+ **/
+int usb_puti(int value ) {
+    3d6a:	0f 93       	push	r16
+    3d6c:	1f 93       	push	r17
+    3d6e:	df 93       	push	r29
+    3d70:	cf 93       	push	r28
+    3d72:	00 d0       	rcall	.+0      	; 0x3d74 <usb_puti+0xa>
+    3d74:	00 d0       	rcall	.+0      	; 0x3d76 <usb_puti+0xc>
+    3d76:	00 d0       	rcall	.+0      	; 0x3d78 <usb_puti+0xe>
+    3d78:	cd b7       	in	r28, 0x3d	; 61
+    3d7a:	de b7       	in	r29, 0x3e	; 62
+    3d7c:	9c 01       	movw	r18, r24
+  unsigned char usb_data[6]={'0','0','0','0','0','0' }, position=sizeof(usb_data), radix=10; 
+    3d7e:	de 01       	movw	r26, r28
+    3d80:	11 96       	adiw	r26, 0x01	; 1
+    3d82:	ec eb       	ldi	r30, 0xBC	; 188
+    3d84:	f1 e0       	ldi	r31, 0x01	; 1
+    3d86:	86 e0       	ldi	r24, 0x06	; 6
+    3d88:	01 90       	ld	r0, Z+
+    3d8a:	0d 92       	st	X+, r0
+    3d8c:	81 50       	subi	r24, 0x01	; 1
+    3d8e:	e1 f7       	brne	.-8      	; 0x3d88 <usb_puti+0x1e>
+
+  /* convert int to ascii  */ 
+  if(value<0) { 
+    3d90:	37 ff       	sbrs	r19, 7
+    3d92:	07 c0       	rjmp	.+14     	; 0x3da2 <usb_puti+0x38>
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3d94:	5d 9b       	sbis	0x0b, 5	; 11
+    3d96:	fe cf       	rjmp	.-4      	; 0x3d94 <usb_puti+0x2a>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3d98:	8d e2       	ldi	r24, 0x2D	; 45
+    3d9a:	8c b9       	out	0x0c, r24	; 12
+  unsigned char usb_data[6]={'0','0','0','0','0','0' }, position=sizeof(usb_data), radix=10; 
+
+  /* convert int to ascii  */ 
+  if(value<0) { 
+    usb_putc('-'); 
+    value=-value; 
+    3d9c:	30 95       	com	r19
+    3d9e:	21 95       	neg	r18
+    3da0:	3f 4f       	sbci	r19, 0xFF	; 255
+    3da2:	46 e0       	ldi	r20, 0x06	; 6
+  }    
+  do { 
+    position--; 
+    *(usb_data+position)=(value%radix)+'0'; 
+    3da4:	8e 01       	movw	r16, r28
+    3da6:	0f 5f       	subi	r16, 0xFF	; 255
+    3da8:	1f 4f       	sbci	r17, 0xFF	; 255
+  if(value<0) { 
+    usb_putc('-'); 
+    value=-value; 
+  }    
+  do { 
+    position--; 
+    3daa:	41 50       	subi	r20, 0x01	; 1
+    *(usb_data+position)=(value%radix)+'0'; 
+    3dac:	f8 01       	movw	r30, r16
+    3dae:	e4 0f       	add	r30, r20
+    3db0:	f1 1d       	adc	r31, r1
+    3db2:	c9 01       	movw	r24, r18
+    3db4:	6a e0       	ldi	r22, 0x0A	; 10
+    3db6:	70 e0       	ldi	r23, 0x00	; 0
+    3db8:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    3dbc:	80 5d       	subi	r24, 0xD0	; 208
+    3dbe:	80 83       	st	Z, r24
+    value/=radix;  
+    3dc0:	c9 01       	movw	r24, r18
+    3dc2:	6a e0       	ldi	r22, 0x0A	; 10
+    3dc4:	70 e0       	ldi	r23, 0x00	; 0
+    3dc6:	0e 94 72 31 	call	0x62e4	; 0x62e4 <__divmodhi4>
+    3dca:	9b 01       	movw	r18, r22
+  } while(value); 
+    3dcc:	61 15       	cp	r22, r1
+    3dce:	71 05       	cpc	r23, r1
+    3dd0:	61 f7       	brne	.-40     	; 0x3daa <usb_puti+0x40>
+    3dd2:	09 c0       	rjmp	.+18     	; 0x3de6 <usb_puti+0x7c>
+
+    
+  /* start displaying the number */
+  for(;position<=(sizeof(usb_data)-1);position++) {
+            
+    usb_putc(usb_data[position]);
+    3dd4:	fc 01       	movw	r30, r24
+    3dd6:	e4 0f       	add	r30, r20
+    3dd8:	f1 1d       	adc	r31, r1
+    3dda:	e0 81       	ld	r30, Z
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3ddc:	5d 9b       	sbis	0x0b, 5	; 11
+    3dde:	fe cf       	rjmp	.-4      	; 0x3ddc <usb_puti+0x72>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3de0:	ec b9       	out	0x0c, r30	; 12
+    value/=radix;  
+  } while(value); 
+
+    
+  /* start displaying the number */
+  for(;position<=(sizeof(usb_data)-1);position++) {
+    3de2:	4f 5f       	subi	r20, 0xFF	; 255
+    3de4:	02 c0       	rjmp	.+4      	; 0x3dea <usb_puti+0x80>
+            
+    usb_putc(usb_data[position]);
+    3de6:	ce 01       	movw	r24, r28
+    3de8:	01 96       	adiw	r24, 0x01	; 1
+    value/=radix;  
+  } while(value); 
+
+    
+  /* start displaying the number */
+  for(;position<=(sizeof(usb_data)-1);position++) {
+    3dea:	46 30       	cpi	r20, 0x06	; 6
+    3dec:	98 f3       	brcs	.-26     	; 0x3dd4 <usb_puti+0x6a>
+            
+    usb_putc(usb_data[position]);
+  }
+
+  return 0;
+}
+    3dee:	80 e0       	ldi	r24, 0x00	; 0
+    3df0:	90 e0       	ldi	r25, 0x00	; 0
+    3df2:	26 96       	adiw	r28, 0x06	; 6
+    3df4:	0f b6       	in	r0, 0x3f	; 63
+    3df6:	f8 94       	cli
+    3df8:	de bf       	out	0x3e, r29	; 62
+    3dfa:	0f be       	out	0x3f, r0	; 63
+    3dfc:	cd bf       	out	0x3d, r28	; 61
+    3dfe:	cf 91       	pop	r28
+    3e00:	df 91       	pop	r29
+    3e02:	1f 91       	pop	r17
+    3e04:	0f 91       	pop	r16
+    3e06:	08 95       	ret
+
+00003e08 <hex_digit>:
+ * @return the hexadecimal digit in ASCII code, or '?'
+ * if the input is invalid.
+ **/
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    3e08:	80 31       	cpi	r24, 0x10	; 16
+    3e0a:	10 f0       	brcs	.+4      	; 0x3e10 <hex_digit+0x8>
+    3e0c:	8f e3       	ldi	r24, 0x3F	; 63
+    3e0e:	08 95       	ret
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e10:	e8 2f       	mov	r30, r24
+    3e12:	f0 e0       	ldi	r31, 0x00	; 0
+    3e14:	e5 55       	subi	r30, 0x55	; 85
+    3e16:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e18:	80 81       	ld	r24, Z
+}
+    3e1a:	08 95       	ret
+
+00003e1c <usb_puth16>:
+ * @param value the value to print
+ * 
+ * @see usb_init, usb_puti, usb_puts, usb_puth8, hex_digit
+ **/
+void usb_puth16 (uint16_t value)
+{
+    3e1c:	9c 01       	movw	r18, r24
+    usb_putc (hex_digit((value >>12)&0xF));
+    3e1e:	e3 2f       	mov	r30, r19
+    3e20:	e2 95       	swap	r30
+    3e22:	ef 70       	andi	r30, 0x0F	; 15
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e24:	f0 e0       	ldi	r31, 0x00	; 0
+    3e26:	e5 55       	subi	r30, 0x55	; 85
+    3e28:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e2a:	e0 81       	ld	r30, Z
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3e2c:	5d 9b       	sbis	0x0b, 5	; 11
+    3e2e:	fe cf       	rjmp	.-4      	; 0x3e2c <usb_puth16+0x10>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3e30:	ec b9       	out	0x0c, r30	; 12
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3e32:	5d 9b       	sbis	0x0b, 5	; 11
+    3e34:	fe cf       	rjmp	.-4      	; 0x3e32 <usb_puth16+0x16>
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e36:	e3 2f       	mov	r30, r19
+    3e38:	f0 e0       	ldi	r31, 0x00	; 0
+    3e3a:	ef 70       	andi	r30, 0x0F	; 15
+    3e3c:	f0 70       	andi	r31, 0x00	; 0
+    3e3e:	e5 55       	subi	r30, 0x55	; 85
+    3e40:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e42:	80 81       	ld	r24, Z
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3e44:	8c b9       	out	0x0c, r24	; 12
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3e46:	5d 9b       	sbis	0x0b, 5	; 11
+    3e48:	fe cf       	rjmp	.-4      	; 0x3e46 <usb_puth16+0x2a>
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e4a:	f9 01       	movw	r30, r18
+    3e4c:	84 e0       	ldi	r24, 0x04	; 4
+    3e4e:	f6 95       	lsr	r31
+    3e50:	e7 95       	ror	r30
+    3e52:	8a 95       	dec	r24
+    3e54:	e1 f7       	brne	.-8      	; 0x3e4e <usb_puth16+0x32>
+    3e56:	f0 e0       	ldi	r31, 0x00	; 0
+    3e58:	ef 70       	andi	r30, 0x0F	; 15
+    3e5a:	f0 70       	andi	r31, 0x00	; 0
+    3e5c:	e5 55       	subi	r30, 0x55	; 85
+    3e5e:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e60:	80 81       	ld	r24, Z
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3e62:	8c b9       	out	0x0c, r24	; 12
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3e64:	5d 9b       	sbis	0x0b, 5	; 11
+    3e66:	fe cf       	rjmp	.-4      	; 0x3e64 <usb_puth16+0x48>
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e68:	e2 2f       	mov	r30, r18
+    3e6a:	f0 e0       	ldi	r31, 0x00	; 0
+    3e6c:	ef 70       	andi	r30, 0x0F	; 15
+    3e6e:	f0 70       	andi	r31, 0x00	; 0
+    3e70:	e5 55       	subi	r30, 0x55	; 85
+    3e72:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e74:	80 81       	ld	r24, Z
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3e76:	8c b9       	out	0x0c, r24	; 12
+{
+    usb_putc (hex_digit((value >>12)&0xF));
+    usb_putc (hex_digit((value >>8 )&0xF));
+    usb_putc (hex_digit((value >>4 )&0xF));
+    usb_putc (hex_digit( value      &0xF));
+}
+    3e78:	08 95       	ret
+
+00003e7a <usb_puth8>:
+ * 
+ * @see usb_init, usb_puti, usb_puts, usb_puth16, hex_digit
+ **/
+void usb_puth8(uint8_t value)
+{
+    usb_putc (hex_digit ((value)>>4 &0xF));
+    3e7a:	e8 2f       	mov	r30, r24
+    3e7c:	e2 95       	swap	r30
+    3e7e:	ef 70       	andi	r30, 0x0F	; 15
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e80:	f0 e0       	ldi	r31, 0x00	; 0
+    3e82:	e5 55       	subi	r30, 0x55	; 85
+    3e84:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e86:	e0 81       	ld	r30, Z
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3e88:	5d 9b       	sbis	0x0b, 5	; 11
+    3e8a:	fe cf       	rjmp	.-4      	; 0x3e88 <usb_puth8+0xe>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3e8c:	ec b9       	out	0x0c, r30	; 12
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3e8e:	5d 9b       	sbis	0x0b, 5	; 11
+    3e90:	fe cf       	rjmp	.-4      	; 0x3e8e <usb_puth8+0x14>
+uint8_t hex_digit (uint8_t value)
+{
+    if (value>15) return '?';
+    // Postcondition: 0<=x<=15
+
+    return "0123456789ABCDEF"[value];
+    3e92:	e8 2f       	mov	r30, r24
+    3e94:	f0 e0       	ldi	r31, 0x00	; 0
+    3e96:	ef 70       	andi	r30, 0x0F	; 15
+    3e98:	f0 70       	andi	r31, 0x00	; 0
+    3e9a:	e5 55       	subi	r30, 0x55	; 85
+    3e9c:	fe 4f       	sbci	r31, 0xFE	; 254
+    3e9e:	80 81       	ld	r24, Z
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3ea0:	8c b9       	out	0x0c, r24	; 12
+ **/
+void usb_puth8(uint8_t value)
+{
+    usb_putc (hex_digit ((value)>>4 &0xF));
+    usb_putc (hex_digit ( value     &0xF));
+}
+    3ea2:	08 95       	ret
+
+00003ea4 <usb_puts_P>:
+/**
+ * Sends a sequence of characters from program space over USB.
+ *
+ * @param s the string to send
+ **/
+void usb_puts_P (PGM_P s) {
+    3ea4:	ef 92       	push	r14
+    3ea6:	ff 92       	push	r15
+    3ea8:	0f 93       	push	r16
+    3eaa:	1f 93       	push	r17
+    3eac:	df 93       	push	r29
+    3eae:	cf 93       	push	r28
+    3eb0:	0f 92       	push	r0
+    3eb2:	cd b7       	in	r28, 0x3d	; 61
+    3eb4:	de b7       	in	r29, 0x3e	; 62
+    3eb6:	8c 01       	movw	r16, r24
+    char buf;
+	
+    while (memcpy_P (&buf, s, sizeof (char)), buf!=0) {
+    3eb8:	7e 01       	movw	r14, r28
+    3eba:	08 94       	sec
+    3ebc:	e1 1c       	adc	r14, r1
+    3ebe:	f1 1c       	adc	r15, r1
+    3ec0:	05 c0       	rjmp	.+10     	; 0x3ecc <usb_puts_P+0x28>
+ * @param c the character to send
+ * @return 0 for success, nonzero for failure
+ **/
+int usb_putc(char c) {
+  // Wait until buffer is clear for sending
+  loop_until_bit_is_set(UCSR0A, UDRE0);
+    3ec2:	5d 9b       	sbis	0x0b, 5	; 11
+    3ec4:	fe cf       	rjmp	.-4      	; 0x3ec2 <usb_puts_P+0x1e>
+	
+  // Load buffer with your character
+  UDR0 = c;
+    3ec6:	8c b9       	out	0x0c, r24	; 12
+void usb_puts_P (PGM_P s) {
+    char buf;
+	
+    while (memcpy_P (&buf, s, sizeof (char)), buf!=0) {
+        usb_putc (buf);
+        s++;
+    3ec8:	0f 5f       	subi	r16, 0xFF	; 255
+    3eca:	1f 4f       	sbci	r17, 0xFF	; 255
+ * @param s the string to send
+ **/
+void usb_puts_P (PGM_P s) {
+    char buf;
+	
+    while (memcpy_P (&buf, s, sizeof (char)), buf!=0) {
+    3ecc:	c7 01       	movw	r24, r14
+    3ece:	b8 01       	movw	r22, r16
+    3ed0:	41 e0       	ldi	r20, 0x01	; 1
+    3ed2:	50 e0       	ldi	r21, 0x00	; 0
+    3ed4:	0e 94 2c 32 	call	0x6458	; 0x6458 <memcpy_P>
+    3ed8:	89 81       	ldd	r24, Y+1	; 0x01
+    3eda:	88 23       	and	r24, r24
+    3edc:	91 f7       	brne	.-28     	; 0x3ec2 <usb_puts_P+0x1e>
+        usb_putc (buf);
+        s++;
+    }
+}
+    3ede:	0f 90       	pop	r0
+    3ee0:	cf 91       	pop	r28
+    3ee2:	df 91       	pop	r29
+    3ee4:	1f 91       	pop	r17
+    3ee6:	0f 91       	pop	r16
+    3ee8:	ff 90       	pop	r15
+    3eea:	ef 90       	pop	r14
+    3eec:	08 95       	ret
+
+00003eee <spi_init>:
+* @param recv_complete_func  The function to be called at the end of a complete transmission.
+*/
+void spi_init (spi_fun_recv_t recv_func, spi_fun_recv_complete_t recv_complete_func)
+{
+    /*  Enable Interrupt, Enable SPI Module, MSB First, Master Mode, Clock div = 64 */
+    SPCR = _BV(SPE) | _BV(SPIE) /*| _BV(DORD)*/ | _BV(MSTR) | _BV(SPR1) | _BV(SPR0);
+    3eee:	23 ed       	ldi	r18, 0xD3	; 211
+    3ef0:	2d b9       	out	0x0d, r18	; 13
+    SPSR = _BV(SPI2X); 
+    3ef2:	21 e0       	ldi	r18, 0x01	; 1
+    3ef4:	2e b9       	out	0x0e, r18	; 14
+
+    /* Set SCLK, SS, MOSI as outputs. MISO as input */
+    DDRB |= MOSI | SCLK | SS;
+    3ef6:	27 b3       	in	r18, 0x17	; 23
+    3ef8:	27 60       	ori	r18, 0x07	; 7
+    3efa:	27 bb       	out	0x17, r18	; 23
+    DDRB &= ~MISO;
+    3efc:	bb 98       	cbi	0x17, 3	; 23
+    
+    /* Keep SS high until transmit */
+    PORTB |= SS;
+    3efe:	c0 9a       	sbi	0x18, 0	; 24
+
+    /* set function to be executed when we receive a byte */
+    spi_recv_func = recv_func;
+    3f00:	90 93 40 04 	sts	0x0440, r25
+    3f04:	80 93 3f 04 	sts	0x043F, r24
+    spi_recv_complete_func = recv_complete_func;
+    3f08:	70 93 42 04 	sts	0x0442, r23
+    3f0c:	60 93 41 04 	sts	0x0441, r22
+    spi_bytes = 0;
+    3f10:	10 92 3e 04 	sts	0x043E, r1
+    //usb_puts("\tspi.c Debug: SPI INITIALIZED\n");
+}
+    3f14:	08 95       	ret
+
+00003f16 <spi_transfer>:
+* 
+* @param bytes The number of bytes to be transferred.
+**/
+void spi_transfer(char bytes)
+{
+    spi_bytes = bytes;
+    3f16:	80 93 3e 04 	sts	0x043E, r24
+    PORTB &= ~SS; /* Set SS low to initiate transmission */
+    3f1a:	c0 98       	cbi	0x18, 0	; 24
+    SPDR = 0xff; /* Initiate data transmision */
+    3f1c:	8f ef       	ldi	r24, 0xFF	; 255
+    3f1e:	8f b9       	out	0x0f, r24	; 15
+}
+    3f20:	08 95       	ret
+
+00003f22 <__vector_17>:
+
+ISR(SIG_SPI) 
+{
+    3f22:	1f 92       	push	r1
+    3f24:	0f 92       	push	r0
+    3f26:	0f b6       	in	r0, 0x3f	; 63
+    3f28:	0f 92       	push	r0
+    3f2a:	0b b6       	in	r0, 0x3b	; 59
+    3f2c:	0f 92       	push	r0
+    3f2e:	11 24       	eor	r1, r1
+    3f30:	2f 93       	push	r18
+    3f32:	3f 93       	push	r19
+    3f34:	4f 93       	push	r20
+    3f36:	5f 93       	push	r21
+    3f38:	6f 93       	push	r22
+    3f3a:	7f 93       	push	r23
+    3f3c:	8f 93       	push	r24
+    3f3e:	9f 93       	push	r25
+    3f40:	af 93       	push	r26
+    3f42:	bf 93       	push	r27
+    3f44:	ef 93       	push	r30
+    3f46:	ff 93       	push	r31
+	//usb_puts("Interrupt");
+    /* only handle intterupt when we are expecting data */
+    if(spi_bytes > 0){
+    3f48:	80 91 3e 04 	lds	r24, 0x043E
+    3f4c:	88 23       	and	r24, r24
+    3f4e:	d1 f0       	breq	.+52     	; 0x3f84 <__vector_17+0x62>
+	/* process byte */
+	spi_recv_func(SPDR);
+    3f50:	8f b1       	in	r24, 0x0f	; 15
+    3f52:	e0 91 3f 04 	lds	r30, 0x043F
+    3f56:	f0 91 40 04 	lds	r31, 0x0440
+    3f5a:	09 95       	icall
+	/* if we've read all the bytes, set SS high to end transmission,
+	 * otherwise get the next byte  */
+	if(--spi_bytes == 0){
+    3f5c:	80 91 3e 04 	lds	r24, 0x043E
+    3f60:	81 50       	subi	r24, 0x01	; 1
+    3f62:	80 93 3e 04 	sts	0x043E, r24
+    3f66:	80 91 3e 04 	lds	r24, 0x043E
+    3f6a:	88 23       	and	r24, r24
+    3f6c:	49 f4       	brne	.+18     	; 0x3f80 <__vector_17+0x5e>
+		//usb_puts("Read all bytes\r\n");
+		PORTB |= SS;
+    3f6e:	c0 9a       	sbi	0x18, 0	; 24
+		if(spi_recv_complete_func)
+    3f70:	e0 91 41 04 	lds	r30, 0x0441
+    3f74:	f0 91 42 04 	lds	r31, 0x0442
+    3f78:	30 97       	sbiw	r30, 0x00	; 0
+    3f7a:	21 f0       	breq	.+8      	; 0x3f84 <__vector_17+0x62>
+			spi_recv_complete_func();
+    3f7c:	09 95       	icall
+    3f7e:	02 c0       	rjmp	.+4      	; 0x3f84 <__vector_17+0x62>
+	}else {
+		//usb_puts("There are this many bytes left: "); usb_puti(spi_bytes);usb_puts("\r\n");
+		SPDR = 0xff;
+    3f80:	8f ef       	ldi	r24, 0xFF	; 255
+    3f82:	8f b9       	out	0x0f, r24	; 15
+	}
+    }
+}		
+    3f84:	ff 91       	pop	r31
+    3f86:	ef 91       	pop	r30
+    3f88:	bf 91       	pop	r27
+    3f8a:	af 91       	pop	r26
+    3f8c:	9f 91       	pop	r25
+    3f8e:	8f 91       	pop	r24
+    3f90:	7f 91       	pop	r23
+    3f92:	6f 91       	pop	r22
+    3f94:	5f 91       	pop	r21
+    3f96:	4f 91       	pop	r20
+    3f98:	3f 91       	pop	r19
+    3f9a:	2f 91       	pop	r18
+    3f9c:	0f 90       	pop	r0
+    3f9e:	0b be       	out	0x3b, r0	; 59
+    3fa0:	0f 90       	pop	r0
+    3fa2:	0f be       	out	0x3f, r0	; 63
+    3fa4:	0f 90       	pop	r0
+    3fa6:	1f 90       	pop	r1
+    3fa8:	18 95       	reti
+
+00003faa <delay_ms>:
+    3faa:	20 e4       	ldi	r18, 0x40	; 64
+    3fac:	36 e0       	ldi	r19, 0x06	; 6
+    3fae:	04 c0       	rjmp	.+8      	; 0x3fb8 <delay_ms+0xe>
+    3fb0:	f9 01       	movw	r30, r18
+    3fb2:	31 97       	sbiw	r30, 0x01	; 1
+    3fb4:	f1 f7       	brne	.-4      	; 0x3fb2 <delay_ms+0x8>
+ * the error negligable.
+ *
+ * @param ms the number of milliseconds to delay for
+ **/
+void delay_ms(int ms) {
+    for (; ms > 0; ms--) {
+    3fb6:	01 97       	sbiw	r24, 0x01	; 1
+    3fb8:	18 16       	cp	r1, r24
+    3fba:	19 06       	cpc	r1, r25
+    3fbc:	cc f3       	brlt	.-14     	; 0x3fb0 <delay_ms+0x6>
+        _delay_loop_2(WAIT_CYCLES);
+    }
+}
+    3fbe:	08 95       	ret
+
+00003fc0 <rtc_init>:
+ *
+ **/
+void rtc_init(int prescale_opt, void (*rtc_func)(void)) {
+	
+  //Clear timer register for Timer 3
+  TCNT3 = 0;
+    3fc0:	10 92 89 00 	sts	0x0089, r1
+    3fc4:	10 92 88 00 	sts	0x0088, r1
+	
+  /* 	This sets the Waveform Generation Module to CTC (Clear Timer on Compare) Mode (100)
+	See page135 in Atmega128 Docs for more modes and explanations */
+  TCCR3B |= _BV(WGM32);
+    3fc8:	ea e8       	ldi	r30, 0x8A	; 138
+    3fca:	f0 e0       	ldi	r31, 0x00	; 0
+    3fcc:	20 81       	ld	r18, Z
+    3fce:	28 60       	ori	r18, 0x08	; 8
+    3fd0:	20 83       	st	Z, r18
+	
+  /* 	This sets the prescaler for the system clock (8MHz) ie: divides the clock by some number.
+	Currently set to a prescaler of 8 because that is what the orb and servos use (they are on this timer as well)
+	See page137 in Atemga128 Docs for all the available prescalers */
+  TCCR3B |= _BV(CS31);
+    3fd2:	20 81       	ld	r18, Z
+    3fd4:	22 60       	ori	r18, 0x02	; 2
+    3fd6:	20 83       	st	Z, r18
+  /* 	Sets the two regsiters that we compare against. So the timer counts up to this number and
+	then resets back to 0 and calls the compare match interrupt.
+	8x10^6 / 8 = 1/16 Second. All values are based off of this number. Do not change it unless you
+	are l337*/
+		
+  OCR3A = 0xF424;	
+    3fd8:	24 e2       	ldi	r18, 0x24	; 36
+    3fda:	34 ef       	ldi	r19, 0xF4	; 244
+    3fdc:	30 93 87 00 	sts	0x0087, r19
+    3fe0:	20 93 86 00 	sts	0x0086, r18
+
+  /* 	Enable Output Compare A Interrupt. When OCR3A is met by the timer TCNT3 this interrupt will be
+	triggerd. (See page140 in Atmega128 Docs for more information */
+  ETIMSK |= _BV(OCIE3A);
+    3fe4:	ed e7       	ldi	r30, 0x7D	; 125
+    3fe6:	f0 e0       	ldi	r31, 0x00	; 0
+    3fe8:	20 81       	ld	r18, Z
+    3fea:	20 61       	ori	r18, 0x10	; 16
+    3fec:	20 83       	st	Z, r18
+	
+  /*	Store the pointer to the function to be used in the interrupt */
+  _rtc_f = rtc_func;
+    3fee:	70 93 48 04 	sts	0x0448, r23
+    3ff2:	60 93 47 04 	sts	0x0447, r22
+	
+  /*	Store how many 1/16ths of a second you want to let by before triggering an interrupt */
+  _rtc_scale = prescale_opt;
+    3ff6:	90 93 c3 01 	sts	0x01C3, r25
+    3ffa:	80 93 c2 01 	sts	0x01C2, r24
+}
+    3ffe:	08 95       	ret
+
+00004000 <rtc_get>:
+ * @return the number of seconds since the last call to rtc_init or rtc_reset
+ *
+ * @see rtc_init, rtc_reset
+ **/
+int rtc_get(void) {
+  return _rtc_val;
+    4000:	20 91 45 04 	lds	r18, 0x0445
+    4004:	30 91 46 04 	lds	r19, 0x0446
+}
+    4008:	c9 01       	movw	r24, r18
+    400a:	08 95       	ret
+
+0000400c <rtc_reset>:
+ * Resets the real time clock counter to 0.
+ *
+ * @see rtc_init, rtc_get
+ **/
+void rtc_reset(void) {
+  _rtc_val = 0;
+    400c:	10 92 46 04 	sts	0x0446, r1
+    4010:	10 92 45 04 	sts	0x0445, r1
+}
+    4014:	08 95       	ret
+
+00004016 <__vector_26>:
+/** @} **/ //end defgroup
+
+/*	Called every pulse. Function in _rtc_f is called every _rtc_scale and also the counter is updated.
+	Bascially, since the pulse is hard set at 1/16s  you want to count how many 16ths of a second have passed
+	and when it reaches the amount of time you want, execute the code. */
+SIGNAL(TIMER3_COMPA_vect) {
+    4016:	1f 92       	push	r1
+    4018:	0f 92       	push	r0
+    401a:	0f b6       	in	r0, 0x3f	; 63
+    401c:	0f 92       	push	r0
+    401e:	0b b6       	in	r0, 0x3b	; 59
+    4020:	0f 92       	push	r0
+    4022:	11 24       	eor	r1, r1
+    4024:	2f 93       	push	r18
+    4026:	3f 93       	push	r19
+    4028:	4f 93       	push	r20
+    402a:	5f 93       	push	r21
+    402c:	6f 93       	push	r22
+    402e:	7f 93       	push	r23
+    4030:	8f 93       	push	r24
+    4032:	9f 93       	push	r25
+    4034:	af 93       	push	r26
+    4036:	bf 93       	push	r27
+    4038:	ef 93       	push	r30
+    403a:	ff 93       	push	r31
+
+  if (_rtc_pulse ==  _rtc_scale) {
+    403c:	20 91 43 04 	lds	r18, 0x0443
+    4040:	30 91 44 04 	lds	r19, 0x0444
+    4044:	80 91 c2 01 	lds	r24, 0x01C2
+    4048:	90 91 c3 01 	lds	r25, 0x01C3
+    404c:	28 17       	cp	r18, r24
+    404e:	39 07       	cpc	r19, r25
+    4050:	a1 f4       	brne	.+40     	; 0x407a <__vector_26+0x64>
+    //Increment the real time clock counter
+    _rtc_val++;
+    4052:	80 91 45 04 	lds	r24, 0x0445
+    4056:	90 91 46 04 	lds	r25, 0x0446
+    405a:	01 96       	adiw	r24, 0x01	; 1
+    405c:	90 93 46 04 	sts	0x0446, r25
+    4060:	80 93 45 04 	sts	0x0445, r24
+		
+    //Calls the function tied to the real time clock if defined
+    if(_rtc_f != 0)
+    4064:	e0 91 47 04 	lds	r30, 0x0447
+    4068:	f0 91 48 04 	lds	r31, 0x0448
+    406c:	30 97       	sbiw	r30, 0x00	; 0
+    406e:	09 f0       	breq	.+2      	; 0x4072 <__vector_26+0x5c>
+      _rtc_f();
+    4070:	09 95       	icall
+		
+    //Resets the pulse until the next scale is matched
+    _rtc_pulse = 0;
+    4072:	10 92 44 04 	sts	0x0444, r1
+    4076:	10 92 43 04 	sts	0x0443, r1
+  }	
+	
+  //Updates the amount of pulses seen since the last scale match
+  _rtc_pulse++;
+    407a:	80 91 43 04 	lds	r24, 0x0443
+    407e:	90 91 44 04 	lds	r25, 0x0444
+    4082:	01 96       	adiw	r24, 0x01	; 1
+    4084:	90 93 44 04 	sts	0x0444, r25
+    4088:	80 93 43 04 	sts	0x0443, r24
+	
+}
+    408c:	ff 91       	pop	r31
+    408e:	ef 91       	pop	r30
+    4090:	bf 91       	pop	r27
+    4092:	af 91       	pop	r26
+    4094:	9f 91       	pop	r25
+    4096:	8f 91       	pop	r24
+    4098:	7f 91       	pop	r23
+    409a:	6f 91       	pop	r22
+    409c:	5f 91       	pop	r21
+    409e:	4f 91       	pop	r20
+    40a0:	3f 91       	pop	r19
+    40a2:	2f 91       	pop	r18
+    40a4:	0f 90       	pop	r0
+    40a6:	0b be       	out	0x3b, r0	; 59
+    40a8:	0f 90       	pop	r0
+    40aa:	0f be       	out	0x3f, r0	; 63
+    40ac:	0f 90       	pop	r0
+    40ae:	1f 90       	pop	r1
+    40b0:	18 95       	reti
+
+000040b2 <buzzer_init>:
+	//NOTE: This is mostly handled by buzzer_Set_val for now
+	// Set pin B7 to output - B7 is buzzer pin
+	//DDRB |= _BV(DDB7);
+	//Fast PWM Mode, Clear OCR0 on compare match and set at bottom, clock/64
+	//TCCR2 = _BV(COM20) | _BV(WGM21)  | _BV(CS22);
+}
+    40b2:	08 95       	ret
+
+000040b4 <buzzer_set_val>:
+ *
+ * @see buzzer_init, buzzer_set_freq, buzzer_off
+ **/
+void buzzer_set_val(unsigned int buzz_value)
+{ 
+	TCCR2 = _BV(COM20) | _BV(WGM21)  | _BV(CS22);
+    40b4:	9c e1       	ldi	r25, 0x1C	; 28
+    40b6:	95 bd       	out	0x25, r25	; 37
+	DDRB |= _BV(DDB7);
+    40b8:	bf 9a       	sbi	0x17, 7	; 23
+	OCR2 = buzz_value;
+    40ba:	83 bd       	out	0x23, r24	; 35
+}
+    40bc:	08 95       	ret
+
+000040be <buzzer_set_freq>:
+ **/
+void buzzer_set_freq(unsigned int buzz_freq)
+{
+  int buzz_value;
+  
+  buzz_value = 62500/buzz_freq - 1;
+    40be:	9c 01       	movw	r18, r24
+    40c0:	40 e0       	ldi	r20, 0x00	; 0
+    40c2:	50 e0       	ldi	r21, 0x00	; 0
+    40c4:	64 e2       	ldi	r22, 0x24	; 36
+    40c6:	74 ef       	ldi	r23, 0xF4	; 244
+    40c8:	80 e0       	ldi	r24, 0x00	; 0
+    40ca:	90 e0       	ldi	r25, 0x00	; 0
+    40cc:	0e 94 85 31 	call	0x630a	; 0x630a <__divmodsi4>
+    40d0:	21 50       	subi	r18, 0x01	; 1
+    40d2:	30 40       	sbci	r19, 0x00	; 0
+    40d4:	37 ff       	sbrs	r19, 7
+    40d6:	02 c0       	rjmp	.+4      	; 0x40dc <buzzer_set_freq+0x1e>
+    40d8:	20 e0       	ldi	r18, 0x00	; 0
+    40da:	30 e0       	ldi	r19, 0x00	; 0
+ *
+ * @see buzzer_init, buzzer_set_freq, buzzer_off
+ **/
+void buzzer_set_val(unsigned int buzz_value)
+{ 
+	TCCR2 = _BV(COM20) | _BV(WGM21)  | _BV(CS22);
+    40dc:	8c e1       	ldi	r24, 0x1C	; 28
+    40de:	85 bd       	out	0x25, r24	; 37
+	DDRB |= _BV(DDB7);
+    40e0:	bf 9a       	sbi	0x17, 7	; 23
+	OCR2 = buzz_value;
+    40e2:	2f 3f       	cpi	r18, 0xFF	; 255
+    40e4:	31 05       	cpc	r19, r1
+    40e6:	19 f0       	breq	.+6      	; 0x40ee <buzzer_set_freq+0x30>
+    40e8:	14 f0       	brlt	.+4      	; 0x40ee <buzzer_set_freq+0x30>
+    40ea:	2f ef       	ldi	r18, 0xFF	; 255
+    40ec:	30 e0       	ldi	r19, 0x00	; 0
+    40ee:	23 bd       	out	0x23, r18	; 35
+  }else if(buzz_value < 0){
+    buzz_value = 0;
+  }
+  
+  buzzer_set_val(buzz_value);
+}
+    40f0:	08 95       	ret
+
+000040f2 <buzzer_off>:
+ * @see buzzer_init
+ **/
+void buzzer_off()
+{
+  // Disable clock, to halt counter
+  TCCR2 &= 0xF8;//0b11111000;
+    40f2:	85 b5       	in	r24, 0x25	; 37
+    40f4:	88 7f       	andi	r24, 0xF8	; 248
+    40f6:	85 bd       	out	0x25, r24	; 37
+  
+  // Set buzzer pin low in case it's high
+  PORTB &= 0xBF;//0b10111111;
+    40f8:	c6 98       	cbi	0x18, 6	; 24
+}
+    40fa:	08 95       	ret
+
+000040fc <buzzer_chirp>:
+ * @param buzz_freq the frequency to play
+ *
+ * @see buzzer_init, buzzer_set_freq
+ **/
+void buzzer_chirp(unsigned int ms, unsigned int buzz_freq) 
+{ 
+    40fc:	0f 93       	push	r16
+    40fe:	1f 93       	push	r17
+    4100:	8c 01       	movw	r16, r24
+    4102:	cb 01       	movw	r24, r22
+  buzzer_set_freq(buzz_freq);
+    4104:	0e 94 5f 20 	call	0x40be	; 0x40be <buzzer_set_freq>
+  delay_ms(ms);
+    4108:	c8 01       	movw	r24, r16
+    410a:	0e 94 d5 1f 	call	0x3faa	; 0x3faa <delay_ms>
+ * @see buzzer_init
+ **/
+void buzzer_off()
+{
+  // Disable clock, to halt counter
+  TCCR2 &= 0xF8;//0b11111000;
+    410e:	85 b5       	in	r24, 0x25	; 37
+    4110:	88 7f       	andi	r24, 0xF8	; 248
+    4112:	85 bd       	out	0x25, r24	; 37
+  
+  // Set buzzer pin low in case it's high
+  PORTB &= 0xBF;//0b10111111;
+    4114:	c6 98       	cbi	0x18, 6	; 24
+void buzzer_chirp(unsigned int ms, unsigned int buzz_freq) 
+{ 
+  buzzer_set_freq(buzz_freq);
+  delay_ms(ms);
+  buzzer_off();
+}
+    4116:	1f 91       	pop	r17
+    4118:	0f 91       	pop	r16
+    411a:	08 95       	ret
+
+0000411c <__ashldi3>:
+    411c:	ef 92       	push	r14
+    411e:	ff 92       	push	r15
+    4120:	0f 93       	push	r16
+    4122:	df 93       	push	r29
+    4124:	cf 93       	push	r28
+    4126:	cd b7       	in	r28, 0x3d	; 61
+    4128:	de b7       	in	r29, 0x3e	; 62
+    412a:	60 97       	sbiw	r28, 0x10	; 16
+    412c:	0f b6       	in	r0, 0x3f	; 63
+    412e:	f8 94       	cli
+    4130:	de bf       	out	0x3e, r29	; 62
+    4132:	0f be       	out	0x3f, r0	; 63
+    4134:	cd bf       	out	0x3d, r28	; 61
+    4136:	a8 2f       	mov	r26, r24
+    4138:	00 23       	and	r16, r16
+    413a:	09 f4       	brne	.+2      	; 0x413e <__ashldi3+0x22>
+    413c:	61 c0       	rjmp	.+194    	; 0x4200 <__ashldi3+0xe4>
+    413e:	7e 01       	movw	r14, r28
+    4140:	08 94       	sec
+    4142:	e1 1c       	adc	r14, r1
+    4144:	f1 1c       	adc	r15, r1
+    4146:	88 e0       	ldi	r24, 0x08	; 8
+    4148:	f7 01       	movw	r30, r14
+    414a:	11 92       	st	Z+, r1
+    414c:	8a 95       	dec	r24
+    414e:	e9 f7       	brne	.-6      	; 0x414a <__ashldi3+0x2e>
+    4150:	29 83       	std	Y+1, r18	; 0x01
+    4152:	3a 83       	std	Y+2, r19	; 0x02
+    4154:	4b 83       	std	Y+3, r20	; 0x03
+    4156:	5c 83       	std	Y+4, r21	; 0x04
+    4158:	6d 83       	std	Y+5, r22	; 0x05
+    415a:	7e 83       	std	Y+6, r23	; 0x06
+    415c:	af 83       	std	Y+7, r26	; 0x07
+    415e:	98 87       	std	Y+8, r25	; 0x08
+    4160:	80 e2       	ldi	r24, 0x20	; 32
+    4162:	80 1b       	sub	r24, r16
+    4164:	e8 2f       	mov	r30, r24
+    4166:	ff 27       	eor	r31, r31
+    4168:	e7 fd       	sbrc	r30, 7
+    416a:	f0 95       	com	r31
+    416c:	49 81       	ldd	r20, Y+1	; 0x01
+    416e:	5a 81       	ldd	r21, Y+2	; 0x02
+    4170:	6b 81       	ldd	r22, Y+3	; 0x03
+    4172:	7c 81       	ldd	r23, Y+4	; 0x04
+    4174:	18 16       	cp	r1, r24
+    4176:	84 f0       	brlt	.+32     	; 0x4198 <__ashldi3+0x7c>
+    4178:	19 86       	std	Y+9, r1	; 0x09
+    417a:	1a 86       	std	Y+10, r1	; 0x0a
+    417c:	1b 86       	std	Y+11, r1	; 0x0b
+    417e:	1c 86       	std	Y+12, r1	; 0x0c
+    4180:	88 27       	eor	r24, r24
+    4182:	99 27       	eor	r25, r25
+    4184:	8e 1b       	sub	r24, r30
+    4186:	9f 0b       	sbc	r25, r31
+    4188:	04 c0       	rjmp	.+8      	; 0x4192 <__ashldi3+0x76>
+    418a:	44 0f       	add	r20, r20
+    418c:	55 1f       	adc	r21, r21
+    418e:	66 1f       	adc	r22, r22
+    4190:	77 1f       	adc	r23, r23
+    4192:	8a 95       	dec	r24
+    4194:	d2 f7       	brpl	.-12     	; 0x418a <__ashldi3+0x6e>
+    4196:	28 c0       	rjmp	.+80     	; 0x41e8 <__ashldi3+0xcc>
+    4198:	20 2f       	mov	r18, r16
+    419a:	33 27       	eor	r19, r19
+    419c:	27 fd       	sbrc	r18, 7
+    419e:	30 95       	com	r19
+    41a0:	db 01       	movw	r26, r22
+    41a2:	ca 01       	movw	r24, r20
+    41a4:	02 2e       	mov	r0, r18
+    41a6:	04 c0       	rjmp	.+8      	; 0x41b0 <__ashldi3+0x94>
+    41a8:	88 0f       	add	r24, r24
+    41aa:	99 1f       	adc	r25, r25
+    41ac:	aa 1f       	adc	r26, r26
+    41ae:	bb 1f       	adc	r27, r27
+    41b0:	0a 94       	dec	r0
+    41b2:	d2 f7       	brpl	.-12     	; 0x41a8 <__ashldi3+0x8c>
+    41b4:	89 87       	std	Y+9, r24	; 0x09
+    41b6:	9a 87       	std	Y+10, r25	; 0x0a
+    41b8:	ab 87       	std	Y+11, r26	; 0x0b
+    41ba:	bc 87       	std	Y+12, r27	; 0x0c
+    41bc:	04 c0       	rjmp	.+8      	; 0x41c6 <__ashldi3+0xaa>
+    41be:	76 95       	lsr	r23
+    41c0:	67 95       	ror	r22
+    41c2:	57 95       	ror	r21
+    41c4:	47 95       	ror	r20
+    41c6:	ea 95       	dec	r30
+    41c8:	d2 f7       	brpl	.-12     	; 0x41be <__ashldi3+0xa2>
+    41ca:	8d 81       	ldd	r24, Y+5	; 0x05
+    41cc:	9e 81       	ldd	r25, Y+6	; 0x06
+    41ce:	af 81       	ldd	r26, Y+7	; 0x07
+    41d0:	b8 85       	ldd	r27, Y+8	; 0x08
+    41d2:	04 c0       	rjmp	.+8      	; 0x41dc <__ashldi3+0xc0>
+    41d4:	88 0f       	add	r24, r24
+    41d6:	99 1f       	adc	r25, r25
+    41d8:	aa 1f       	adc	r26, r26
+    41da:	bb 1f       	adc	r27, r27
+    41dc:	2a 95       	dec	r18
+    41de:	d2 f7       	brpl	.-12     	; 0x41d4 <__ashldi3+0xb8>
+    41e0:	48 2b       	or	r20, r24
+    41e2:	59 2b       	or	r21, r25
+    41e4:	6a 2b       	or	r22, r26
+    41e6:	7b 2b       	or	r23, r27
+    41e8:	4d 87       	std	Y+13, r20	; 0x0d
+    41ea:	5e 87       	std	Y+14, r21	; 0x0e
+    41ec:	6f 87       	std	Y+15, r22	; 0x0f
+    41ee:	78 8b       	std	Y+16, r23	; 0x10
+    41f0:	29 85       	ldd	r18, Y+9	; 0x09
+    41f2:	3a 85       	ldd	r19, Y+10	; 0x0a
+    41f4:	4b 85       	ldd	r20, Y+11	; 0x0b
+    41f6:	5c 85       	ldd	r21, Y+12	; 0x0c
+    41f8:	6d 85       	ldd	r22, Y+13	; 0x0d
+    41fa:	7e 85       	ldd	r23, Y+14	; 0x0e
+    41fc:	af 85       	ldd	r26, Y+15	; 0x0f
+    41fe:	98 89       	ldd	r25, Y+16	; 0x10
+    4200:	8a 2f       	mov	r24, r26
+    4202:	60 96       	adiw	r28, 0x10	; 16
+    4204:	0f b6       	in	r0, 0x3f	; 63
+    4206:	f8 94       	cli
+    4208:	de bf       	out	0x3e, r29	; 62
+    420a:	0f be       	out	0x3f, r0	; 63
+    420c:	cd bf       	out	0x3d, r28	; 61
+    420e:	cf 91       	pop	r28
+    4210:	df 91       	pop	r29
+    4212:	0f 91       	pop	r16
+    4214:	ff 90       	pop	r15
+    4216:	ef 90       	pop	r14
+    4218:	08 95       	ret
+
+0000421a <__divdi3>:
+    421a:	a2 e7       	ldi	r26, 0x72	; 114
+    421c:	b0 e0       	ldi	r27, 0x00	; 0
+    421e:	e3 e1       	ldi	r30, 0x13	; 19
+    4220:	f1 e2       	ldi	r31, 0x21	; 33
+    4222:	0c 94 f5 31 	jmp	0x63ea	; 0x63ea <__prologue_saves__>
+    4226:	98 2e       	mov	r9, r24
+    4228:	89 2e       	mov	r8, r25
+    422a:	71 2e       	mov	r7, r17
+    422c:	88 e0       	ldi	r24, 0x08	; 8
+    422e:	fe 01       	movw	r30, r28
+    4230:	31 96       	adiw	r30, 0x01	; 1
+    4232:	df 01       	movw	r26, r30
+    4234:	68 2e       	mov	r6, r24
+    4236:	1d 92       	st	X+, r1
+    4238:	6a 94       	dec	r6
+    423a:	e9 f7       	brne	.-6      	; 0x4236 <__divdi3+0x1c>
+    423c:	29 83       	std	Y+1, r18	; 0x01
+    423e:	3a 83       	std	Y+2, r19	; 0x02
+    4240:	4b 83       	std	Y+3, r20	; 0x03
+    4242:	5c 83       	std	Y+4, r21	; 0x04
+    4244:	6d 83       	std	Y+5, r22	; 0x05
+    4246:	7e 83       	std	Y+6, r23	; 0x06
+    4248:	9f 82       	std	Y+7, r9	; 0x07
+    424a:	98 87       	std	Y+8, r25	; 0x08
+    424c:	fe 01       	movw	r30, r28
+    424e:	39 96       	adiw	r30, 0x09	; 9
+    4250:	df 01       	movw	r26, r30
+    4252:	1d 92       	st	X+, r1
+    4254:	8a 95       	dec	r24
+    4256:	e9 f7       	brne	.-6      	; 0x4252 <__divdi3+0x38>
+    4258:	a9 86       	std	Y+9, r10	; 0x09
+    425a:	ba 86       	std	Y+10, r11	; 0x0a
+    425c:	cb 86       	std	Y+11, r12	; 0x0b
+    425e:	dc 86       	std	Y+12, r13	; 0x0c
+    4260:	ed 86       	std	Y+13, r14	; 0x0d
+    4262:	fe 86       	std	Y+14, r15	; 0x0e
+    4264:	0f 87       	std	Y+15, r16	; 0x0f
+    4266:	18 8b       	std	Y+16, r17	; 0x10
+    4268:	8d 81       	ldd	r24, Y+5	; 0x05
+    426a:	9e 81       	ldd	r25, Y+6	; 0x06
+    426c:	af 81       	ldd	r26, Y+7	; 0x07
+    426e:	b8 85       	ldd	r27, Y+8	; 0x08
+    4270:	b7 fd       	sbrc	r27, 7
+    4272:	07 c0       	rjmp	.+14     	; 0x4282 <__divdi3+0x68>
+    4274:	e1 96       	adiw	r28, 0x31	; 49
+    4276:	1c ae       	std	Y+60, r1	; 0x3c
+    4278:	1d ae       	std	Y+61, r1	; 0x3d
+    427a:	1e ae       	std	Y+62, r1	; 0x3e
+    427c:	1f ae       	std	Y+63, r1	; 0x3f
+    427e:	e1 97       	sbiw	r28, 0x31	; 49
+    4280:	64 c0       	rjmp	.+200    	; 0x434a <__divdi3+0x130>
+    4282:	21 95       	neg	r18
+    4284:	81 e0       	ldi	r24, 0x01	; 1
+    4286:	12 16       	cp	r1, r18
+    4288:	08 f0       	brcs	.+2      	; 0x428c <__divdi3+0x72>
+    428a:	80 e0       	ldi	r24, 0x00	; 0
+    428c:	31 95       	neg	r19
+    428e:	91 e0       	ldi	r25, 0x01	; 1
+    4290:	13 16       	cp	r1, r19
+    4292:	08 f0       	brcs	.+2      	; 0x4296 <__divdi3+0x7c>
+    4294:	90 e0       	ldi	r25, 0x00	; 0
+    4296:	b3 2f       	mov	r27, r19
+    4298:	b8 1b       	sub	r27, r24
+    429a:	81 e0       	ldi	r24, 0x01	; 1
+    429c:	3b 17       	cp	r19, r27
+    429e:	08 f0       	brcs	.+2      	; 0x42a2 <__divdi3+0x88>
+    42a0:	80 e0       	ldi	r24, 0x00	; 0
+    42a2:	98 2b       	or	r25, r24
+    42a4:	41 95       	neg	r20
+    42a6:	31 e0       	ldi	r19, 0x01	; 1
+    42a8:	14 16       	cp	r1, r20
+    42aa:	08 f0       	brcs	.+2      	; 0x42ae <__divdi3+0x94>
+    42ac:	30 e0       	ldi	r19, 0x00	; 0
+    42ae:	a4 2f       	mov	r26, r20
+    42b0:	a9 1b       	sub	r26, r25
+    42b2:	81 e0       	ldi	r24, 0x01	; 1
+    42b4:	4a 17       	cp	r20, r26
+    42b6:	08 f0       	brcs	.+2      	; 0x42ba <__divdi3+0xa0>
+    42b8:	80 e0       	ldi	r24, 0x00	; 0
+    42ba:	38 2b       	or	r19, r24
+    42bc:	51 95       	neg	r21
+    42be:	91 e0       	ldi	r25, 0x01	; 1
+    42c0:	15 16       	cp	r1, r21
+    42c2:	08 f0       	brcs	.+2      	; 0x42c6 <__divdi3+0xac>
+    42c4:	90 e0       	ldi	r25, 0x00	; 0
+    42c6:	f5 2f       	mov	r31, r21
+    42c8:	f3 1b       	sub	r31, r19
+    42ca:	81 e0       	ldi	r24, 0x01	; 1
+    42cc:	5f 17       	cp	r21, r31
+    42ce:	08 f0       	brcs	.+2      	; 0x42d2 <__divdi3+0xb8>
+    42d0:	80 e0       	ldi	r24, 0x00	; 0
+    42d2:	98 2b       	or	r25, r24
+    42d4:	61 95       	neg	r22
+    42d6:	31 e0       	ldi	r19, 0x01	; 1
+    42d8:	16 16       	cp	r1, r22
+    42da:	08 f0       	brcs	.+2      	; 0x42de <__divdi3+0xc4>
+    42dc:	30 e0       	ldi	r19, 0x00	; 0
+    42de:	e6 2f       	mov	r30, r22
+    42e0:	e9 1b       	sub	r30, r25
+    42e2:	81 e0       	ldi	r24, 0x01	; 1
+    42e4:	6e 17       	cp	r22, r30
+    42e6:	08 f0       	brcs	.+2      	; 0x42ea <__divdi3+0xd0>
+    42e8:	80 e0       	ldi	r24, 0x00	; 0
+    42ea:	38 2b       	or	r19, r24
+    42ec:	71 95       	neg	r23
+    42ee:	41 e0       	ldi	r20, 0x01	; 1
+    42f0:	17 16       	cp	r1, r23
+    42f2:	08 f0       	brcs	.+2      	; 0x42f6 <__divdi3+0xdc>
+    42f4:	40 e0       	ldi	r20, 0x00	; 0
+    42f6:	57 2f       	mov	r21, r23
+    42f8:	53 1b       	sub	r21, r19
+    42fa:	81 e0       	ldi	r24, 0x01	; 1
+    42fc:	75 17       	cp	r23, r21
+    42fe:	08 f0       	brcs	.+2      	; 0x4302 <__divdi3+0xe8>
+    4300:	80 e0       	ldi	r24, 0x00	; 0
+    4302:	48 2b       	or	r20, r24
+    4304:	89 2d       	mov	r24, r9
+    4306:	81 95       	neg	r24
+    4308:	91 e0       	ldi	r25, 0x01	; 1
+    430a:	18 16       	cp	r1, r24
+    430c:	08 f0       	brcs	.+2      	; 0x4310 <__divdi3+0xf6>
+    430e:	90 e0       	ldi	r25, 0x00	; 0
+    4310:	68 2e       	mov	r6, r24
+    4312:	64 1a       	sub	r6, r20
+    4314:	46 2d       	mov	r20, r6
+    4316:	31 e0       	ldi	r19, 0x01	; 1
+    4318:	86 15       	cp	r24, r6
+    431a:	08 f0       	brcs	.+2      	; 0x431e <__divdi3+0x104>
+    431c:	30 e0       	ldi	r19, 0x00	; 0
+    431e:	93 2b       	or	r25, r19
+    4320:	88 2d       	mov	r24, r8
+    4322:	81 95       	neg	r24
+    4324:	89 1b       	sub	r24, r25
+    4326:	29 83       	std	Y+1, r18	; 0x01
+    4328:	ba 83       	std	Y+2, r27	; 0x02
+    432a:	ab 83       	std	Y+3, r26	; 0x03
+    432c:	fc 83       	std	Y+4, r31	; 0x04
+    432e:	ed 83       	std	Y+5, r30	; 0x05
+    4330:	5e 83       	std	Y+6, r21	; 0x06
+    4332:	4f 83       	std	Y+7, r20	; 0x07
+    4334:	88 87       	std	Y+8, r24	; 0x08
+    4336:	2f ef       	ldi	r18, 0xFF	; 255
+    4338:	3f ef       	ldi	r19, 0xFF	; 255
+    433a:	4f ef       	ldi	r20, 0xFF	; 255
+    433c:	5f ef       	ldi	r21, 0xFF	; 255
+    433e:	e1 96       	adiw	r28, 0x31	; 49
+    4340:	2c af       	std	Y+60, r18	; 0x3c
+    4342:	3d af       	std	Y+61, r19	; 0x3d
+    4344:	4e af       	std	Y+62, r20	; 0x3e
+    4346:	5f af       	std	Y+63, r21	; 0x3f
+    4348:	e1 97       	sbiw	r28, 0x31	; 49
+    434a:	8d 85       	ldd	r24, Y+13	; 0x0d
+    434c:	9e 85       	ldd	r25, Y+14	; 0x0e
+    434e:	af 85       	ldd	r26, Y+15	; 0x0f
+    4350:	b8 89       	ldd	r27, Y+16	; 0x10
+    4352:	b7 ff       	sbrs	r27, 7
+    4354:	6a c0       	rjmp	.+212    	; 0x442a <__divdi3+0x210>
+    4356:	e1 96       	adiw	r28, 0x31	; 49
+    4358:	4c ad       	ldd	r20, Y+60	; 0x3c
+    435a:	5d ad       	ldd	r21, Y+61	; 0x3d
+    435c:	6e ad       	ldd	r22, Y+62	; 0x3e
+    435e:	7f ad       	ldd	r23, Y+63	; 0x3f
+    4360:	e1 97       	sbiw	r28, 0x31	; 49
+    4362:	40 95       	com	r20
+    4364:	50 95       	com	r21
+    4366:	60 95       	com	r22
+    4368:	70 95       	com	r23
+    436a:	e1 96       	adiw	r28, 0x31	; 49
+    436c:	4c af       	std	Y+60, r20	; 0x3c
+    436e:	5d af       	std	Y+61, r21	; 0x3d
+    4370:	6e af       	std	Y+62, r22	; 0x3e
+    4372:	7f af       	std	Y+63, r23	; 0x3f
+    4374:	e1 97       	sbiw	r28, 0x31	; 49
+    4376:	a1 94       	neg	r10
+    4378:	81 e0       	ldi	r24, 0x01	; 1
+    437a:	1a 14       	cp	r1, r10
+    437c:	08 f0       	brcs	.+2      	; 0x4380 <__divdi3+0x166>
+    437e:	80 e0       	ldi	r24, 0x00	; 0
+    4380:	b1 94       	neg	r11
+    4382:	91 e0       	ldi	r25, 0x01	; 1
+    4384:	1b 14       	cp	r1, r11
+    4386:	08 f0       	brcs	.+2      	; 0x438a <__divdi3+0x170>
+    4388:	90 e0       	ldi	r25, 0x00	; 0
+    438a:	6b 2d       	mov	r22, r11
+    438c:	68 1b       	sub	r22, r24
+    438e:	81 e0       	ldi	r24, 0x01	; 1
+    4390:	b6 16       	cp	r11, r22
+    4392:	08 f0       	brcs	.+2      	; 0x4396 <__divdi3+0x17c>
+    4394:	80 e0       	ldi	r24, 0x00	; 0
+    4396:	98 2b       	or	r25, r24
+    4398:	c1 94       	neg	r12
+    439a:	21 e0       	ldi	r18, 0x01	; 1
+    439c:	1c 14       	cp	r1, r12
+    439e:	08 f0       	brcs	.+2      	; 0x43a2 <__divdi3+0x188>
+    43a0:	20 e0       	ldi	r18, 0x00	; 0
+    43a2:	5c 2d       	mov	r21, r12
+    43a4:	59 1b       	sub	r21, r25
+    43a6:	81 e0       	ldi	r24, 0x01	; 1
+    43a8:	c5 16       	cp	r12, r21
+    43aa:	08 f0       	brcs	.+2      	; 0x43ae <__divdi3+0x194>
+    43ac:	80 e0       	ldi	r24, 0x00	; 0
+    43ae:	28 2b       	or	r18, r24
+    43b0:	d1 94       	neg	r13
+    43b2:	91 e0       	ldi	r25, 0x01	; 1
+    43b4:	1d 14       	cp	r1, r13
+    43b6:	08 f0       	brcs	.+2      	; 0x43ba <__divdi3+0x1a0>
+    43b8:	90 e0       	ldi	r25, 0x00	; 0
+    43ba:	4d 2d       	mov	r20, r13
+    43bc:	42 1b       	sub	r20, r18
+    43be:	81 e0       	ldi	r24, 0x01	; 1
+    43c0:	d4 16       	cp	r13, r20
+    43c2:	08 f0       	brcs	.+2      	; 0x43c6 <__divdi3+0x1ac>
+    43c4:	80 e0       	ldi	r24, 0x00	; 0
+    43c6:	98 2b       	or	r25, r24
+    43c8:	e1 94       	neg	r14
+    43ca:	21 e0       	ldi	r18, 0x01	; 1
+    43cc:	1e 14       	cp	r1, r14
+    43ce:	08 f0       	brcs	.+2      	; 0x43d2 <__divdi3+0x1b8>
+    43d0:	20 e0       	ldi	r18, 0x00	; 0
+    43d2:	3e 2d       	mov	r19, r14
+    43d4:	39 1b       	sub	r19, r25
+    43d6:	81 e0       	ldi	r24, 0x01	; 1
+    43d8:	e3 16       	cp	r14, r19
+    43da:	08 f0       	brcs	.+2      	; 0x43de <__divdi3+0x1c4>
+    43dc:	80 e0       	ldi	r24, 0x00	; 0
+    43de:	28 2b       	or	r18, r24
+    43e0:	f1 94       	neg	r15
+    43e2:	91 e0       	ldi	r25, 0x01	; 1
+    43e4:	1f 14       	cp	r1, r15
+    43e6:	08 f0       	brcs	.+2      	; 0x43ea <__divdi3+0x1d0>
+    43e8:	90 e0       	ldi	r25, 0x00	; 0
+    43ea:	7f 2d       	mov	r23, r15
+    43ec:	72 1b       	sub	r23, r18
+    43ee:	27 2f       	mov	r18, r23
+    43f0:	81 e0       	ldi	r24, 0x01	; 1
+    43f2:	f7 16       	cp	r15, r23
+    43f4:	08 f0       	brcs	.+2      	; 0x43f8 <__divdi3+0x1de>
+    43f6:	80 e0       	ldi	r24, 0x00	; 0
+    43f8:	98 2b       	or	r25, r24
+    43fa:	01 95       	neg	r16
+    43fc:	11 e0       	ldi	r17, 0x01	; 1
+    43fe:	10 16       	cp	r1, r16
+    4400:	08 f0       	brcs	.+2      	; 0x4404 <__divdi3+0x1ea>
+    4402:	10 e0       	ldi	r17, 0x00	; 0
+    4404:	80 2f       	mov	r24, r16
+    4406:	89 1b       	sub	r24, r25
+    4408:	98 2f       	mov	r25, r24
+    440a:	81 e0       	ldi	r24, 0x01	; 1
+    440c:	09 17       	cp	r16, r25
+    440e:	08 f0       	brcs	.+2      	; 0x4412 <__divdi3+0x1f8>
+    4410:	80 e0       	ldi	r24, 0x00	; 0
+    4412:	18 2b       	or	r17, r24
+    4414:	87 2d       	mov	r24, r7
+    4416:	81 95       	neg	r24
+    4418:	81 1b       	sub	r24, r17
+    441a:	a9 86       	std	Y+9, r10	; 0x09
+    441c:	6a 87       	std	Y+10, r22	; 0x0a
+    441e:	5b 87       	std	Y+11, r21	; 0x0b
+    4420:	4c 87       	std	Y+12, r20	; 0x0c
+    4422:	3d 87       	std	Y+13, r19	; 0x0d
+    4424:	2e 87       	std	Y+14, r18	; 0x0e
+    4426:	9f 87       	std	Y+15, r25	; 0x0f
+    4428:	88 8b       	std	Y+16, r24	; 0x10
+    442a:	99 81       	ldd	r25, Y+1	; 0x01
+    442c:	2a 81       	ldd	r18, Y+2	; 0x02
+    442e:	3b 81       	ldd	r19, Y+3	; 0x03
+    4430:	4c 81       	ldd	r20, Y+4	; 0x04
+    4432:	5d 81       	ldd	r21, Y+5	; 0x05
+    4434:	6e 81       	ldd	r22, Y+6	; 0x06
+    4436:	7f 81       	ldd	r23, Y+7	; 0x07
+    4438:	a8 85       	ldd	r26, Y+8	; 0x08
+    443a:	b9 85       	ldd	r27, Y+9	; 0x09
+    443c:	1a 85       	ldd	r17, Y+10	; 0x0a
+    443e:	0b 85       	ldd	r16, Y+11	; 0x0b
+    4440:	fc 84       	ldd	r15, Y+12	; 0x0c
+    4442:	ed 84       	ldd	r14, Y+13	; 0x0d
+    4444:	de 84       	ldd	r13, Y+14	; 0x0e
+    4446:	cf 84       	ldd	r12, Y+15	; 0x0f
+    4448:	b8 88       	ldd	r11, Y+16	; 0x10
+    444a:	88 e0       	ldi	r24, 0x08	; 8
+    444c:	e1 e1       	ldi	r30, 0x11	; 17
+    444e:	8e 2e       	mov	r8, r30
+    4450:	91 2c       	mov	r9, r1
+    4452:	8c 0e       	add	r8, r28
+    4454:	9d 1e       	adc	r9, r29
+    4456:	f4 01       	movw	r30, r8
+    4458:	68 2e       	mov	r6, r24
+    445a:	11 92       	st	Z+, r1
+    445c:	6a 94       	dec	r6
+    445e:	e9 f7       	brne	.-6      	; 0x445a <__divdi3+0x240>
+    4460:	99 8b       	std	Y+17, r25	; 0x11
+    4462:	2a 8b       	std	Y+18, r18	; 0x12
+    4464:	3b 8b       	std	Y+19, r19	; 0x13
+    4466:	4c 8b       	std	Y+20, r20	; 0x14
+    4468:	5d 8b       	std	Y+21, r21	; 0x15
+    446a:	6e 8b       	std	Y+22, r22	; 0x16
+    446c:	7f 8b       	std	Y+23, r23	; 0x17
+    446e:	a8 8f       	std	Y+24, r26	; 0x18
+    4470:	9e 01       	movw	r18, r28
+    4472:	27 5e       	subi	r18, 0xE7	; 231
+    4474:	3f 4f       	sbci	r19, 0xFF	; 255
+    4476:	f9 01       	movw	r30, r18
+    4478:	11 92       	st	Z+, r1
+    447a:	8a 95       	dec	r24
+    447c:	e9 f7       	brne	.-6      	; 0x4478 <__divdi3+0x25e>
+    447e:	b9 8f       	std	Y+25, r27	; 0x19
+    4480:	1a 8f       	std	Y+26, r17	; 0x1a
+    4482:	0b 8f       	std	Y+27, r16	; 0x1b
+    4484:	fc 8e       	std	Y+28, r15	; 0x1c
+    4486:	ed 8e       	std	Y+29, r14	; 0x1d
+    4488:	de 8e       	std	Y+30, r13	; 0x1e
+    448a:	cf 8e       	std	Y+31, r12	; 0x1f
+    448c:	b8 a2       	std	Y+32, r11	; 0x20
+    448e:	29 8c       	ldd	r2, Y+25	; 0x19
+    4490:	3a 8c       	ldd	r3, Y+26	; 0x1a
+    4492:	4b 8c       	ldd	r4, Y+27	; 0x1b
+    4494:	5c 8c       	ldd	r5, Y+28	; 0x1c
+    4496:	ed 8c       	ldd	r14, Y+29	; 0x1d
+    4498:	fe 8c       	ldd	r15, Y+30	; 0x1e
+    449a:	0f 8d       	ldd	r16, Y+31	; 0x1f
+    449c:	18 a1       	ldd	r17, Y+32	; 0x20
+    449e:	69 88       	ldd	r6, Y+17	; 0x11
+    44a0:	7a 88       	ldd	r7, Y+18	; 0x12
+    44a2:	8b 88       	ldd	r8, Y+19	; 0x13
+    44a4:	9c 88       	ldd	r9, Y+20	; 0x14
+    44a6:	21 96       	adiw	r28, 0x01	; 1
+    44a8:	6c ae       	std	Y+60, r6	; 0x3c
+    44aa:	7d ae       	std	Y+61, r7	; 0x3d
+    44ac:	8e ae       	std	Y+62, r8	; 0x3e
+    44ae:	9f ae       	std	Y+63, r9	; 0x3f
+    44b0:	21 97       	sbiw	r28, 0x01	; 1
+    44b2:	6d 88       	ldd	r6, Y+21	; 0x15
+    44b4:	7e 88       	ldd	r7, Y+22	; 0x16
+    44b6:	8f 88       	ldd	r8, Y+23	; 0x17
+    44b8:	98 8c       	ldd	r9, Y+24	; 0x18
+    44ba:	e1 14       	cp	r14, r1
+    44bc:	f1 04       	cpc	r15, r1
+    44be:	01 05       	cpc	r16, r1
+    44c0:	11 05       	cpc	r17, r1
+    44c2:	09 f0       	breq	.+2      	; 0x44c6 <__divdi3+0x2ac>
+    44c4:	d9 c3       	rjmp	.+1970   	; 0x4c78 <__divdi3+0xa5e>
+    44c6:	62 14       	cp	r6, r2
+    44c8:	73 04       	cpc	r7, r3
+    44ca:	84 04       	cpc	r8, r4
+    44cc:	95 04       	cpc	r9, r5
+    44ce:	08 f0       	brcs	.+2      	; 0x44d2 <__divdi3+0x2b8>
+    44d0:	57 c1       	rjmp	.+686    	; 0x4780 <__divdi3+0x566>
+    44d2:	00 e0       	ldi	r16, 0x00	; 0
+    44d4:	20 16       	cp	r2, r16
+    44d6:	00 e0       	ldi	r16, 0x00	; 0
+    44d8:	30 06       	cpc	r3, r16
+    44da:	01 e0       	ldi	r16, 0x01	; 1
+    44dc:	40 06       	cpc	r4, r16
+    44de:	00 e0       	ldi	r16, 0x00	; 0
+    44e0:	50 06       	cpc	r5, r16
+    44e2:	88 f4       	brcc	.+34     	; 0x4506 <__divdi3+0x2ec>
+    44e4:	1f ef       	ldi	r17, 0xFF	; 255
+    44e6:	21 16       	cp	r2, r17
+    44e8:	31 04       	cpc	r3, r1
+    44ea:	41 04       	cpc	r4, r1
+    44ec:	51 04       	cpc	r5, r1
+    44ee:	39 f0       	breq	.+14     	; 0x44fe <__divdi3+0x2e4>
+    44f0:	30 f0       	brcs	.+12     	; 0x44fe <__divdi3+0x2e4>
+    44f2:	48 e0       	ldi	r20, 0x08	; 8
+    44f4:	e4 2e       	mov	r14, r20
+    44f6:	f1 2c       	mov	r15, r1
+    44f8:	01 2d       	mov	r16, r1
+    44fa:	11 2d       	mov	r17, r1
+    44fc:	18 c0       	rjmp	.+48     	; 0x452e <__divdi3+0x314>
+    44fe:	ee 24       	eor	r14, r14
+    4500:	ff 24       	eor	r15, r15
+    4502:	87 01       	movw	r16, r14
+    4504:	14 c0       	rjmp	.+40     	; 0x452e <__divdi3+0x314>
+    4506:	20 e0       	ldi	r18, 0x00	; 0
+    4508:	22 16       	cp	r2, r18
+    450a:	20 e0       	ldi	r18, 0x00	; 0
+    450c:	32 06       	cpc	r3, r18
+    450e:	20 e0       	ldi	r18, 0x00	; 0
+    4510:	42 06       	cpc	r4, r18
+    4512:	21 e0       	ldi	r18, 0x01	; 1
+    4514:	52 06       	cpc	r5, r18
+    4516:	30 f0       	brcs	.+12     	; 0x4524 <__divdi3+0x30a>
+    4518:	38 e1       	ldi	r19, 0x18	; 24
+    451a:	e3 2e       	mov	r14, r19
+    451c:	f1 2c       	mov	r15, r1
+    451e:	01 2d       	mov	r16, r1
+    4520:	11 2d       	mov	r17, r1
+    4522:	05 c0       	rjmp	.+10     	; 0x452e <__divdi3+0x314>
+    4524:	20 e1       	ldi	r18, 0x10	; 16
+    4526:	e2 2e       	mov	r14, r18
+    4528:	f1 2c       	mov	r15, r1
+    452a:	01 2d       	mov	r16, r1
+    452c:	11 2d       	mov	r17, r1
+    452e:	d2 01       	movw	r26, r4
+    4530:	c1 01       	movw	r24, r2
+    4532:	0e 2c       	mov	r0, r14
+    4534:	04 c0       	rjmp	.+8      	; 0x453e <__divdi3+0x324>
+    4536:	b6 95       	lsr	r27
+    4538:	a7 95       	ror	r26
+    453a:	97 95       	ror	r25
+    453c:	87 95       	ror	r24
+    453e:	0a 94       	dec	r0
+    4540:	d2 f7       	brpl	.-12     	; 0x4536 <__divdi3+0x31c>
+    4542:	8c 53       	subi	r24, 0x3C	; 60
+    4544:	9e 4f       	sbci	r25, 0xFE	; 254
+    4546:	dc 01       	movw	r26, r24
+    4548:	2c 91       	ld	r18, X
+    454a:	80 e2       	ldi	r24, 0x20	; 32
+    454c:	90 e0       	ldi	r25, 0x00	; 0
+    454e:	a0 e0       	ldi	r26, 0x00	; 0
+    4550:	b0 e0       	ldi	r27, 0x00	; 0
+    4552:	8e 19       	sub	r24, r14
+    4554:	9f 09       	sbc	r25, r15
+    4556:	a0 0b       	sbc	r26, r16
+    4558:	b1 0b       	sbc	r27, r17
+    455a:	7c 01       	movw	r14, r24
+    455c:	8d 01       	movw	r16, r26
+    455e:	e2 1a       	sub	r14, r18
+    4560:	f1 08       	sbc	r15, r1
+    4562:	01 09       	sbc	r16, r1
+    4564:	11 09       	sbc	r17, r1
+    4566:	e1 14       	cp	r14, r1
+    4568:	f1 04       	cpc	r15, r1
+    456a:	01 05       	cpc	r16, r1
+    456c:	11 05       	cpc	r17, r1
+    456e:	d1 f1       	breq	.+116    	; 0x45e4 <__divdi3+0x3ca>
+    4570:	0e 2c       	mov	r0, r14
+    4572:	04 c0       	rjmp	.+8      	; 0x457c <__divdi3+0x362>
+    4574:	22 0c       	add	r2, r2
+    4576:	33 1c       	adc	r3, r3
+    4578:	44 1c       	adc	r4, r4
+    457a:	55 1c       	adc	r5, r5
+    457c:	0a 94       	dec	r0
+    457e:	d2 f7       	brpl	.-12     	; 0x4574 <__divdi3+0x35a>
+    4580:	a4 01       	movw	r20, r8
+    4582:	93 01       	movw	r18, r6
+    4584:	0e 2c       	mov	r0, r14
+    4586:	04 c0       	rjmp	.+8      	; 0x4590 <__divdi3+0x376>
+    4588:	22 0f       	add	r18, r18
+    458a:	33 1f       	adc	r19, r19
+    458c:	44 1f       	adc	r20, r20
+    458e:	55 1f       	adc	r21, r21
+    4590:	0a 94       	dec	r0
+    4592:	d2 f7       	brpl	.-12     	; 0x4588 <__divdi3+0x36e>
+    4594:	80 e2       	ldi	r24, 0x20	; 32
+    4596:	90 e0       	ldi	r25, 0x00	; 0
+    4598:	8e 19       	sub	r24, r14
+    459a:	9f 09       	sbc	r25, r15
+    459c:	21 96       	adiw	r28, 0x01	; 1
+    459e:	6c ac       	ldd	r6, Y+60	; 0x3c
+    45a0:	7d ac       	ldd	r7, Y+61	; 0x3d
+    45a2:	8e ac       	ldd	r8, Y+62	; 0x3e
+    45a4:	9f ac       	ldd	r9, Y+63	; 0x3f
+    45a6:	21 97       	sbiw	r28, 0x01	; 1
+    45a8:	04 c0       	rjmp	.+8      	; 0x45b2 <__divdi3+0x398>
+    45aa:	96 94       	lsr	r9
+    45ac:	87 94       	ror	r8
+    45ae:	77 94       	ror	r7
+    45b0:	67 94       	ror	r6
+    45b2:	8a 95       	dec	r24
+    45b4:	d2 f7       	brpl	.-12     	; 0x45aa <__divdi3+0x390>
+    45b6:	62 2a       	or	r6, r18
+    45b8:	73 2a       	or	r7, r19
+    45ba:	84 2a       	or	r8, r20
+    45bc:	95 2a       	or	r9, r21
+    45be:	21 96       	adiw	r28, 0x01	; 1
+    45c0:	ac ac       	ldd	r10, Y+60	; 0x3c
+    45c2:	bd ac       	ldd	r11, Y+61	; 0x3d
+    45c4:	ce ac       	ldd	r12, Y+62	; 0x3e
+    45c6:	df ac       	ldd	r13, Y+63	; 0x3f
+    45c8:	21 97       	sbiw	r28, 0x01	; 1
+    45ca:	04 c0       	rjmp	.+8      	; 0x45d4 <__divdi3+0x3ba>
+    45cc:	aa 0c       	add	r10, r10
+    45ce:	bb 1c       	adc	r11, r11
+    45d0:	cc 1c       	adc	r12, r12
+    45d2:	dd 1c       	adc	r13, r13
+    45d4:	ea 94       	dec	r14
+    45d6:	d2 f7       	brpl	.-12     	; 0x45cc <__divdi3+0x3b2>
+    45d8:	21 96       	adiw	r28, 0x01	; 1
+    45da:	ac ae       	std	Y+60, r10	; 0x3c
+    45dc:	bd ae       	std	Y+61, r11	; 0x3d
+    45de:	ce ae       	std	Y+62, r12	; 0x3e
+    45e0:	df ae       	std	Y+63, r13	; 0x3f
+    45e2:	21 97       	sbiw	r28, 0x01	; 1
+    45e4:	62 01       	movw	r12, r4
+    45e6:	ee 24       	eor	r14, r14
+    45e8:	ff 24       	eor	r15, r15
+    45ea:	29 96       	adiw	r28, 0x09	; 9
+    45ec:	cc ae       	std	Y+60, r12	; 0x3c
+    45ee:	dd ae       	std	Y+61, r13	; 0x3d
+    45f0:	ee ae       	std	Y+62, r14	; 0x3e
+    45f2:	ff ae       	std	Y+63, r15	; 0x3f
+    45f4:	29 97       	sbiw	r28, 0x09	; 9
+    45f6:	92 01       	movw	r18, r4
+    45f8:	81 01       	movw	r16, r2
+    45fa:	20 70       	andi	r18, 0x00	; 0
+    45fc:	30 70       	andi	r19, 0x00	; 0
+    45fe:	2d 96       	adiw	r28, 0x0d	; 13
+    4600:	0c af       	std	Y+60, r16	; 0x3c
+    4602:	1d af       	std	Y+61, r17	; 0x3d
+    4604:	2e af       	std	Y+62, r18	; 0x3e
+    4606:	3f af       	std	Y+63, r19	; 0x3f
+    4608:	2d 97       	sbiw	r28, 0x0d	; 13
+    460a:	c4 01       	movw	r24, r8
+    460c:	b3 01       	movw	r22, r6
+    460e:	a7 01       	movw	r20, r14
+    4610:	96 01       	movw	r18, r12
+    4612:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4616:	7b 01       	movw	r14, r22
+    4618:	8c 01       	movw	r16, r24
+    461a:	c4 01       	movw	r24, r8
+    461c:	b3 01       	movw	r22, r6
+    461e:	29 96       	adiw	r28, 0x09	; 9
+    4620:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4622:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4624:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4626:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4628:	29 97       	sbiw	r28, 0x09	; 9
+    462a:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    462e:	c9 01       	movw	r24, r18
+    4630:	da 01       	movw	r26, r20
+    4632:	3c 01       	movw	r6, r24
+    4634:	4d 01       	movw	r8, r26
+    4636:	c4 01       	movw	r24, r8
+    4638:	b3 01       	movw	r22, r6
+    463a:	2d 96       	adiw	r28, 0x0d	; 13
+    463c:	2c ad       	ldd	r18, Y+60	; 0x3c
+    463e:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4640:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4642:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4644:	2d 97       	sbiw	r28, 0x0d	; 13
+    4646:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    464a:	9b 01       	movw	r18, r22
+    464c:	ac 01       	movw	r20, r24
+    464e:	87 01       	movw	r16, r14
+    4650:	ff 24       	eor	r15, r15
+    4652:	ee 24       	eor	r14, r14
+    4654:	21 96       	adiw	r28, 0x01	; 1
+    4656:	ac ac       	ldd	r10, Y+60	; 0x3c
+    4658:	bd ac       	ldd	r11, Y+61	; 0x3d
+    465a:	ce ac       	ldd	r12, Y+62	; 0x3e
+    465c:	df ac       	ldd	r13, Y+63	; 0x3f
+    465e:	21 97       	sbiw	r28, 0x01	; 1
+    4660:	c6 01       	movw	r24, r12
+    4662:	aa 27       	eor	r26, r26
+    4664:	bb 27       	eor	r27, r27
+    4666:	57 01       	movw	r10, r14
+    4668:	68 01       	movw	r12, r16
+    466a:	a8 2a       	or	r10, r24
+    466c:	b9 2a       	or	r11, r25
+    466e:	ca 2a       	or	r12, r26
+    4670:	db 2a       	or	r13, r27
+    4672:	a2 16       	cp	r10, r18
+    4674:	b3 06       	cpc	r11, r19
+    4676:	c4 06       	cpc	r12, r20
+    4678:	d5 06       	cpc	r13, r21
+    467a:	e0 f4       	brcc	.+56     	; 0x46b4 <__divdi3+0x49a>
+    467c:	08 94       	sec
+    467e:	61 08       	sbc	r6, r1
+    4680:	71 08       	sbc	r7, r1
+    4682:	81 08       	sbc	r8, r1
+    4684:	91 08       	sbc	r9, r1
+    4686:	a2 0c       	add	r10, r2
+    4688:	b3 1c       	adc	r11, r3
+    468a:	c4 1c       	adc	r12, r4
+    468c:	d5 1c       	adc	r13, r5
+    468e:	a2 14       	cp	r10, r2
+    4690:	b3 04       	cpc	r11, r3
+    4692:	c4 04       	cpc	r12, r4
+    4694:	d5 04       	cpc	r13, r5
+    4696:	70 f0       	brcs	.+28     	; 0x46b4 <__divdi3+0x49a>
+    4698:	a2 16       	cp	r10, r18
+    469a:	b3 06       	cpc	r11, r19
+    469c:	c4 06       	cpc	r12, r20
+    469e:	d5 06       	cpc	r13, r21
+    46a0:	48 f4       	brcc	.+18     	; 0x46b4 <__divdi3+0x49a>
+    46a2:	08 94       	sec
+    46a4:	61 08       	sbc	r6, r1
+    46a6:	71 08       	sbc	r7, r1
+    46a8:	81 08       	sbc	r8, r1
+    46aa:	91 08       	sbc	r9, r1
+    46ac:	a2 0c       	add	r10, r2
+    46ae:	b3 1c       	adc	r11, r3
+    46b0:	c4 1c       	adc	r12, r4
+    46b2:	d5 1c       	adc	r13, r5
+    46b4:	a2 1a       	sub	r10, r18
+    46b6:	b3 0a       	sbc	r11, r19
+    46b8:	c4 0a       	sbc	r12, r20
+    46ba:	d5 0a       	sbc	r13, r21
+    46bc:	c6 01       	movw	r24, r12
+    46be:	b5 01       	movw	r22, r10
+    46c0:	29 96       	adiw	r28, 0x09	; 9
+    46c2:	2c ad       	ldd	r18, Y+60	; 0x3c
+    46c4:	3d ad       	ldd	r19, Y+61	; 0x3d
+    46c6:	4e ad       	ldd	r20, Y+62	; 0x3e
+    46c8:	5f ad       	ldd	r21, Y+63	; 0x3f
+    46ca:	29 97       	sbiw	r28, 0x09	; 9
+    46cc:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    46d0:	7b 01       	movw	r14, r22
+    46d2:	8c 01       	movw	r16, r24
+    46d4:	c6 01       	movw	r24, r12
+    46d6:	b5 01       	movw	r22, r10
+    46d8:	29 96       	adiw	r28, 0x09	; 9
+    46da:	2c ad       	ldd	r18, Y+60	; 0x3c
+    46dc:	3d ad       	ldd	r19, Y+61	; 0x3d
+    46de:	4e ad       	ldd	r20, Y+62	; 0x3e
+    46e0:	5f ad       	ldd	r21, Y+63	; 0x3f
+    46e2:	29 97       	sbiw	r28, 0x09	; 9
+    46e4:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    46e8:	c9 01       	movw	r24, r18
+    46ea:	da 01       	movw	r26, r20
+    46ec:	5c 01       	movw	r10, r24
+    46ee:	6d 01       	movw	r12, r26
+    46f0:	c6 01       	movw	r24, r12
+    46f2:	b5 01       	movw	r22, r10
+    46f4:	2d 96       	adiw	r28, 0x0d	; 13
+    46f6:	2c ad       	ldd	r18, Y+60	; 0x3c
+    46f8:	3d ad       	ldd	r19, Y+61	; 0x3d
+    46fa:	4e ad       	ldd	r20, Y+62	; 0x3e
+    46fc:	5f ad       	ldd	r21, Y+63	; 0x3f
+    46fe:	2d 97       	sbiw	r28, 0x0d	; 13
+    4700:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4704:	9b 01       	movw	r18, r22
+    4706:	ac 01       	movw	r20, r24
+    4708:	87 01       	movw	r16, r14
+    470a:	ff 24       	eor	r15, r15
+    470c:	ee 24       	eor	r14, r14
+    470e:	21 96       	adiw	r28, 0x01	; 1
+    4710:	8c ad       	ldd	r24, Y+60	; 0x3c
+    4712:	9d ad       	ldd	r25, Y+61	; 0x3d
+    4714:	ae ad       	ldd	r26, Y+62	; 0x3e
+    4716:	bf ad       	ldd	r27, Y+63	; 0x3f
+    4718:	21 97       	sbiw	r28, 0x01	; 1
+    471a:	a0 70       	andi	r26, 0x00	; 0
+    471c:	b0 70       	andi	r27, 0x00	; 0
+    471e:	e8 2a       	or	r14, r24
+    4720:	f9 2a       	or	r15, r25
+    4722:	0a 2b       	or	r16, r26
+    4724:	1b 2b       	or	r17, r27
+    4726:	e2 16       	cp	r14, r18
+    4728:	f3 06       	cpc	r15, r19
+    472a:	04 07       	cpc	r16, r20
+    472c:	15 07       	cpc	r17, r21
+    472e:	c0 f4       	brcc	.+48     	; 0x4760 <__divdi3+0x546>
+    4730:	08 94       	sec
+    4732:	a1 08       	sbc	r10, r1
+    4734:	b1 08       	sbc	r11, r1
+    4736:	c1 08       	sbc	r12, r1
+    4738:	d1 08       	sbc	r13, r1
+    473a:	e2 0c       	add	r14, r2
+    473c:	f3 1c       	adc	r15, r3
+    473e:	04 1d       	adc	r16, r4
+    4740:	15 1d       	adc	r17, r5
+    4742:	e2 14       	cp	r14, r2
+    4744:	f3 04       	cpc	r15, r3
+    4746:	04 05       	cpc	r16, r4
+    4748:	15 05       	cpc	r17, r5
+    474a:	50 f0       	brcs	.+20     	; 0x4760 <__divdi3+0x546>
+    474c:	e2 16       	cp	r14, r18
+    474e:	f3 06       	cpc	r15, r19
+    4750:	04 07       	cpc	r16, r20
+    4752:	15 07       	cpc	r17, r21
+    4754:	28 f4       	brcc	.+10     	; 0x4760 <__divdi3+0x546>
+    4756:	08 94       	sec
+    4758:	a1 08       	sbc	r10, r1
+    475a:	b1 08       	sbc	r11, r1
+    475c:	c1 08       	sbc	r12, r1
+    475e:	d1 08       	sbc	r13, r1
+    4760:	d3 01       	movw	r26, r6
+    4762:	99 27       	eor	r25, r25
+    4764:	88 27       	eor	r24, r24
+    4766:	86 01       	movw	r16, r12
+    4768:	75 01       	movw	r14, r10
+    476a:	e8 2a       	or	r14, r24
+    476c:	f9 2a       	or	r15, r25
+    476e:	0a 2b       	or	r16, r26
+    4770:	1b 2b       	or	r17, r27
+    4772:	25 96       	adiw	r28, 0x05	; 5
+    4774:	ec ae       	std	Y+60, r14	; 0x3c
+    4776:	fd ae       	std	Y+61, r15	; 0x3d
+    4778:	0e af       	std	Y+62, r16	; 0x3e
+    477a:	1f af       	std	Y+63, r17	; 0x3f
+    477c:	25 97       	sbiw	r28, 0x05	; 5
+    477e:	eb c4       	rjmp	.+2518   	; 0x5156 <__divdi3+0xf3c>
+    4780:	21 14       	cp	r2, r1
+    4782:	31 04       	cpc	r3, r1
+    4784:	41 04       	cpc	r4, r1
+    4786:	51 04       	cpc	r5, r1
+    4788:	71 f4       	brne	.+28     	; 0x47a6 <__divdi3+0x58c>
+    478a:	61 e0       	ldi	r22, 0x01	; 1
+    478c:	70 e0       	ldi	r23, 0x00	; 0
+    478e:	80 e0       	ldi	r24, 0x00	; 0
+    4790:	90 e0       	ldi	r25, 0x00	; 0
+    4792:	20 e0       	ldi	r18, 0x00	; 0
+    4794:	30 e0       	ldi	r19, 0x00	; 0
+    4796:	40 e0       	ldi	r20, 0x00	; 0
+    4798:	50 e0       	ldi	r21, 0x00	; 0
+    479a:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    479e:	c9 01       	movw	r24, r18
+    47a0:	da 01       	movw	r26, r20
+    47a2:	1c 01       	movw	r2, r24
+    47a4:	2d 01       	movw	r4, r26
+    47a6:	00 e0       	ldi	r16, 0x00	; 0
+    47a8:	20 16       	cp	r2, r16
+    47aa:	00 e0       	ldi	r16, 0x00	; 0
+    47ac:	30 06       	cpc	r3, r16
+    47ae:	01 e0       	ldi	r16, 0x01	; 1
+    47b0:	40 06       	cpc	r4, r16
+    47b2:	00 e0       	ldi	r16, 0x00	; 0
+    47b4:	50 06       	cpc	r5, r16
+    47b6:	88 f4       	brcc	.+34     	; 0x47da <__divdi3+0x5c0>
+    47b8:	1f ef       	ldi	r17, 0xFF	; 255
+    47ba:	21 16       	cp	r2, r17
+    47bc:	31 04       	cpc	r3, r1
+    47be:	41 04       	cpc	r4, r1
+    47c0:	51 04       	cpc	r5, r1
+    47c2:	31 f0       	breq	.+12     	; 0x47d0 <__divdi3+0x5b6>
+    47c4:	28 f0       	brcs	.+10     	; 0x47d0 <__divdi3+0x5b6>
+    47c6:	48 e0       	ldi	r20, 0x08	; 8
+    47c8:	50 e0       	ldi	r21, 0x00	; 0
+    47ca:	60 e0       	ldi	r22, 0x00	; 0
+    47cc:	70 e0       	ldi	r23, 0x00	; 0
+    47ce:	17 c0       	rjmp	.+46     	; 0x47fe <__divdi3+0x5e4>
+    47d0:	40 e0       	ldi	r20, 0x00	; 0
+    47d2:	50 e0       	ldi	r21, 0x00	; 0
+    47d4:	60 e0       	ldi	r22, 0x00	; 0
+    47d6:	70 e0       	ldi	r23, 0x00	; 0
+    47d8:	12 c0       	rjmp	.+36     	; 0x47fe <__divdi3+0x5e4>
+    47da:	20 e0       	ldi	r18, 0x00	; 0
+    47dc:	22 16       	cp	r2, r18
+    47de:	20 e0       	ldi	r18, 0x00	; 0
+    47e0:	32 06       	cpc	r3, r18
+    47e2:	20 e0       	ldi	r18, 0x00	; 0
+    47e4:	42 06       	cpc	r4, r18
+    47e6:	21 e0       	ldi	r18, 0x01	; 1
+    47e8:	52 06       	cpc	r5, r18
+    47ea:	28 f0       	brcs	.+10     	; 0x47f6 <__divdi3+0x5dc>
+    47ec:	48 e1       	ldi	r20, 0x18	; 24
+    47ee:	50 e0       	ldi	r21, 0x00	; 0
+    47f0:	60 e0       	ldi	r22, 0x00	; 0
+    47f2:	70 e0       	ldi	r23, 0x00	; 0
+    47f4:	04 c0       	rjmp	.+8      	; 0x47fe <__divdi3+0x5e4>
+    47f6:	40 e1       	ldi	r20, 0x10	; 16
+    47f8:	50 e0       	ldi	r21, 0x00	; 0
+    47fa:	60 e0       	ldi	r22, 0x00	; 0
+    47fc:	70 e0       	ldi	r23, 0x00	; 0
+    47fe:	d2 01       	movw	r26, r4
+    4800:	c1 01       	movw	r24, r2
+    4802:	04 2e       	mov	r0, r20
+    4804:	04 c0       	rjmp	.+8      	; 0x480e <__divdi3+0x5f4>
+    4806:	b6 95       	lsr	r27
+    4808:	a7 95       	ror	r26
+    480a:	97 95       	ror	r25
+    480c:	87 95       	ror	r24
+    480e:	0a 94       	dec	r0
+    4810:	d2 f7       	brpl	.-12     	; 0x4806 <__divdi3+0x5ec>
+    4812:	8c 53       	subi	r24, 0x3C	; 60
+    4814:	9e 4f       	sbci	r25, 0xFE	; 254
+    4816:	dc 01       	movw	r26, r24
+    4818:	2c 91       	ld	r18, X
+    481a:	e0 e2       	ldi	r30, 0x20	; 32
+    481c:	ee 2e       	mov	r14, r30
+    481e:	f1 2c       	mov	r15, r1
+    4820:	01 2d       	mov	r16, r1
+    4822:	11 2d       	mov	r17, r1
+    4824:	d8 01       	movw	r26, r16
+    4826:	c7 01       	movw	r24, r14
+    4828:	84 1b       	sub	r24, r20
+    482a:	95 0b       	sbc	r25, r21
+    482c:	a6 0b       	sbc	r26, r22
+    482e:	b7 0b       	sbc	r27, r23
+    4830:	82 1b       	sub	r24, r18
+    4832:	91 09       	sbc	r25, r1
+    4834:	a1 09       	sbc	r26, r1
+    4836:	b1 09       	sbc	r27, r1
+    4838:	00 97       	sbiw	r24, 0x00	; 0
+    483a:	a1 05       	cpc	r26, r1
+    483c:	b1 05       	cpc	r27, r1
+    483e:	61 f4       	brne	.+24     	; 0x4858 <__divdi3+0x63e>
+    4840:	64 01       	movw	r12, r8
+    4842:	53 01       	movw	r10, r6
+    4844:	a2 18       	sub	r10, r2
+    4846:	b3 08       	sbc	r11, r3
+    4848:	c4 08       	sbc	r12, r4
+    484a:	d5 08       	sbc	r13, r5
+    484c:	31 e0       	ldi	r19, 0x01	; 1
+    484e:	63 2e       	mov	r6, r19
+    4850:	71 2c       	mov	r7, r1
+    4852:	81 2c       	mov	r8, r1
+    4854:	91 2c       	mov	r9, r1
+    4856:	24 c1       	rjmp	.+584    	; 0x4aa0 <__divdi3+0x886>
+    4858:	e3 96       	adiw	r28, 0x33	; 51
+    485a:	8f af       	std	Y+63, r24	; 0x3f
+    485c:	e3 97       	sbiw	r28, 0x33	; 51
+    485e:	08 2e       	mov	r0, r24
+    4860:	04 c0       	rjmp	.+8      	; 0x486a <__divdi3+0x650>
+    4862:	22 0c       	add	r2, r2
+    4864:	33 1c       	adc	r3, r3
+    4866:	44 1c       	adc	r4, r4
+    4868:	55 1c       	adc	r5, r5
+    486a:	0a 94       	dec	r0
+    486c:	d2 f7       	brpl	.-12     	; 0x4862 <__divdi3+0x648>
+    486e:	ee 2d       	mov	r30, r14
+    4870:	e8 1b       	sub	r30, r24
+    4872:	64 01       	movw	r12, r8
+    4874:	53 01       	movw	r10, r6
+    4876:	0e 2e       	mov	r0, r30
+    4878:	04 c0       	rjmp	.+8      	; 0x4882 <__divdi3+0x668>
+    487a:	d6 94       	lsr	r13
+    487c:	c7 94       	ror	r12
+    487e:	b7 94       	ror	r11
+    4880:	a7 94       	ror	r10
+    4882:	0a 94       	dec	r0
+    4884:	d2 f7       	brpl	.-12     	; 0x487a <__divdi3+0x660>
+    4886:	a4 01       	movw	r20, r8
+    4888:	93 01       	movw	r18, r6
+    488a:	e3 96       	adiw	r28, 0x33	; 51
+    488c:	0f ac       	ldd	r0, Y+63	; 0x3f
+    488e:	e3 97       	sbiw	r28, 0x33	; 51
+    4890:	04 c0       	rjmp	.+8      	; 0x489a <__divdi3+0x680>
+    4892:	22 0f       	add	r18, r18
+    4894:	33 1f       	adc	r19, r19
+    4896:	44 1f       	adc	r20, r20
+    4898:	55 1f       	adc	r21, r21
+    489a:	0a 94       	dec	r0
+    489c:	d2 f7       	brpl	.-12     	; 0x4892 <__divdi3+0x678>
+    489e:	21 96       	adiw	r28, 0x01	; 1
+    48a0:	6c ac       	ldd	r6, Y+60	; 0x3c
+    48a2:	7d ac       	ldd	r7, Y+61	; 0x3d
+    48a4:	8e ac       	ldd	r8, Y+62	; 0x3e
+    48a6:	9f ac       	ldd	r9, Y+63	; 0x3f
+    48a8:	21 97       	sbiw	r28, 0x01	; 1
+    48aa:	0e 2e       	mov	r0, r30
+    48ac:	04 c0       	rjmp	.+8      	; 0x48b6 <__divdi3+0x69c>
+    48ae:	96 94       	lsr	r9
+    48b0:	87 94       	ror	r8
+    48b2:	77 94       	ror	r7
+    48b4:	67 94       	ror	r6
+    48b6:	0a 94       	dec	r0
+    48b8:	d2 f7       	brpl	.-12     	; 0x48ae <__divdi3+0x694>
+    48ba:	84 01       	movw	r16, r8
+    48bc:	73 01       	movw	r14, r6
+    48be:	e2 2a       	or	r14, r18
+    48c0:	f3 2a       	or	r15, r19
+    48c2:	04 2b       	or	r16, r20
+    48c4:	15 2b       	or	r17, r21
+    48c6:	e9 ae       	std	Y+57, r14	; 0x39
+    48c8:	fa ae       	std	Y+58, r15	; 0x3a
+    48ca:	0b af       	std	Y+59, r16	; 0x3b
+    48cc:	1c af       	std	Y+60, r17	; 0x3c
+    48ce:	32 01       	movw	r6, r4
+    48d0:	88 24       	eor	r8, r8
+    48d2:	99 24       	eor	r9, r9
+    48d4:	92 01       	movw	r18, r4
+    48d6:	81 01       	movw	r16, r2
+    48d8:	20 70       	andi	r18, 0x00	; 0
+    48da:	30 70       	andi	r19, 0x00	; 0
+    48dc:	61 96       	adiw	r28, 0x11	; 17
+    48de:	0c af       	std	Y+60, r16	; 0x3c
+    48e0:	1d af       	std	Y+61, r17	; 0x3d
+    48e2:	2e af       	std	Y+62, r18	; 0x3e
+    48e4:	3f af       	std	Y+63, r19	; 0x3f
+    48e6:	61 97       	sbiw	r28, 0x11	; 17
+    48e8:	c6 01       	movw	r24, r12
+    48ea:	b5 01       	movw	r22, r10
+    48ec:	a4 01       	movw	r20, r8
+    48ee:	93 01       	movw	r18, r6
+    48f0:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    48f4:	7b 01       	movw	r14, r22
+    48f6:	8c 01       	movw	r16, r24
+    48f8:	c6 01       	movw	r24, r12
+    48fa:	b5 01       	movw	r22, r10
+    48fc:	a4 01       	movw	r20, r8
+    48fe:	93 01       	movw	r18, r6
+    4900:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4904:	c9 01       	movw	r24, r18
+    4906:	da 01       	movw	r26, r20
+    4908:	65 96       	adiw	r28, 0x15	; 21
+    490a:	8c af       	std	Y+60, r24	; 0x3c
+    490c:	9d af       	std	Y+61, r25	; 0x3d
+    490e:	ae af       	std	Y+62, r26	; 0x3e
+    4910:	bf af       	std	Y+63, r27	; 0x3f
+    4912:	65 97       	sbiw	r28, 0x15	; 21
+    4914:	bc 01       	movw	r22, r24
+    4916:	cd 01       	movw	r24, r26
+    4918:	61 96       	adiw	r28, 0x11	; 17
+    491a:	2c ad       	ldd	r18, Y+60	; 0x3c
+    491c:	3d ad       	ldd	r19, Y+61	; 0x3d
+    491e:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4920:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4922:	61 97       	sbiw	r28, 0x11	; 17
+    4924:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4928:	9b 01       	movw	r18, r22
+    492a:	ac 01       	movw	r20, r24
+    492c:	87 01       	movw	r16, r14
+    492e:	ff 24       	eor	r15, r15
+    4930:	ee 24       	eor	r14, r14
+    4932:	a9 ac       	ldd	r10, Y+57	; 0x39
+    4934:	ba ac       	ldd	r11, Y+58	; 0x3a
+    4936:	cb ac       	ldd	r12, Y+59	; 0x3b
+    4938:	dc ac       	ldd	r13, Y+60	; 0x3c
+    493a:	c6 01       	movw	r24, r12
+    493c:	aa 27       	eor	r26, r26
+    493e:	bb 27       	eor	r27, r27
+    4940:	5c 01       	movw	r10, r24
+    4942:	6d 01       	movw	r12, r26
+    4944:	ae 28       	or	r10, r14
+    4946:	bf 28       	or	r11, r15
+    4948:	c0 2a       	or	r12, r16
+    494a:	d1 2a       	or	r13, r17
+    494c:	a2 16       	cp	r10, r18
+    494e:	b3 06       	cpc	r11, r19
+    4950:	c4 06       	cpc	r12, r20
+    4952:	d5 06       	cpc	r13, r21
+    4954:	60 f5       	brcc	.+88     	; 0x49ae <__divdi3+0x794>
+    4956:	65 96       	adiw	r28, 0x15	; 21
+    4958:	6c ad       	ldd	r22, Y+60	; 0x3c
+    495a:	7d ad       	ldd	r23, Y+61	; 0x3d
+    495c:	8e ad       	ldd	r24, Y+62	; 0x3e
+    495e:	9f ad       	ldd	r25, Y+63	; 0x3f
+    4960:	65 97       	sbiw	r28, 0x15	; 21
+    4962:	61 50       	subi	r22, 0x01	; 1
+    4964:	70 40       	sbci	r23, 0x00	; 0
+    4966:	80 40       	sbci	r24, 0x00	; 0
+    4968:	90 40       	sbci	r25, 0x00	; 0
+    496a:	65 96       	adiw	r28, 0x15	; 21
+    496c:	6c af       	std	Y+60, r22	; 0x3c
+    496e:	7d af       	std	Y+61, r23	; 0x3d
+    4970:	8e af       	std	Y+62, r24	; 0x3e
+    4972:	9f af       	std	Y+63, r25	; 0x3f
+    4974:	65 97       	sbiw	r28, 0x15	; 21
+    4976:	a2 0c       	add	r10, r2
+    4978:	b3 1c       	adc	r11, r3
+    497a:	c4 1c       	adc	r12, r4
+    497c:	d5 1c       	adc	r13, r5
+    497e:	a2 14       	cp	r10, r2
+    4980:	b3 04       	cpc	r11, r3
+    4982:	c4 04       	cpc	r12, r4
+    4984:	d5 04       	cpc	r13, r5
+    4986:	98 f0       	brcs	.+38     	; 0x49ae <__divdi3+0x794>
+    4988:	a2 16       	cp	r10, r18
+    498a:	b3 06       	cpc	r11, r19
+    498c:	c4 06       	cpc	r12, r20
+    498e:	d5 06       	cpc	r13, r21
+    4990:	70 f4       	brcc	.+28     	; 0x49ae <__divdi3+0x794>
+    4992:	61 50       	subi	r22, 0x01	; 1
+    4994:	70 40       	sbci	r23, 0x00	; 0
+    4996:	80 40       	sbci	r24, 0x00	; 0
+    4998:	90 40       	sbci	r25, 0x00	; 0
+    499a:	65 96       	adiw	r28, 0x15	; 21
+    499c:	6c af       	std	Y+60, r22	; 0x3c
+    499e:	7d af       	std	Y+61, r23	; 0x3d
+    49a0:	8e af       	std	Y+62, r24	; 0x3e
+    49a2:	9f af       	std	Y+63, r25	; 0x3f
+    49a4:	65 97       	sbiw	r28, 0x15	; 21
+    49a6:	a2 0c       	add	r10, r2
+    49a8:	b3 1c       	adc	r11, r3
+    49aa:	c4 1c       	adc	r12, r4
+    49ac:	d5 1c       	adc	r13, r5
+    49ae:	a2 1a       	sub	r10, r18
+    49b0:	b3 0a       	sbc	r11, r19
+    49b2:	c4 0a       	sbc	r12, r20
+    49b4:	d5 0a       	sbc	r13, r21
+    49b6:	c6 01       	movw	r24, r12
+    49b8:	b5 01       	movw	r22, r10
+    49ba:	a4 01       	movw	r20, r8
+    49bc:	93 01       	movw	r18, r6
+    49be:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    49c2:	7b 01       	movw	r14, r22
+    49c4:	8c 01       	movw	r16, r24
+    49c6:	c6 01       	movw	r24, r12
+    49c8:	b5 01       	movw	r22, r10
+    49ca:	a4 01       	movw	r20, r8
+    49cc:	93 01       	movw	r18, r6
+    49ce:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    49d2:	c9 01       	movw	r24, r18
+    49d4:	da 01       	movw	r26, r20
+    49d6:	3c 01       	movw	r6, r24
+    49d8:	4d 01       	movw	r8, r26
+    49da:	c4 01       	movw	r24, r8
+    49dc:	b3 01       	movw	r22, r6
+    49de:	61 96       	adiw	r28, 0x11	; 17
+    49e0:	2c ad       	ldd	r18, Y+60	; 0x3c
+    49e2:	3d ad       	ldd	r19, Y+61	; 0x3d
+    49e4:	4e ad       	ldd	r20, Y+62	; 0x3e
+    49e6:	5f ad       	ldd	r21, Y+63	; 0x3f
+    49e8:	61 97       	sbiw	r28, 0x11	; 17
+    49ea:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    49ee:	9b 01       	movw	r18, r22
+    49f0:	ac 01       	movw	r20, r24
+    49f2:	87 01       	movw	r16, r14
+    49f4:	ff 24       	eor	r15, r15
+    49f6:	ee 24       	eor	r14, r14
+    49f8:	89 ad       	ldd	r24, Y+57	; 0x39
+    49fa:	9a ad       	ldd	r25, Y+58	; 0x3a
+    49fc:	ab ad       	ldd	r26, Y+59	; 0x3b
+    49fe:	bc ad       	ldd	r27, Y+60	; 0x3c
+    4a00:	a0 70       	andi	r26, 0x00	; 0
+    4a02:	b0 70       	andi	r27, 0x00	; 0
+    4a04:	57 01       	movw	r10, r14
+    4a06:	68 01       	movw	r12, r16
+    4a08:	a8 2a       	or	r10, r24
+    4a0a:	b9 2a       	or	r11, r25
+    4a0c:	ca 2a       	or	r12, r26
+    4a0e:	db 2a       	or	r13, r27
+    4a10:	a2 16       	cp	r10, r18
+    4a12:	b3 06       	cpc	r11, r19
+    4a14:	c4 06       	cpc	r12, r20
+    4a16:	d5 06       	cpc	r13, r21
+    4a18:	e0 f4       	brcc	.+56     	; 0x4a52 <__divdi3+0x838>
+    4a1a:	08 94       	sec
+    4a1c:	61 08       	sbc	r6, r1
+    4a1e:	71 08       	sbc	r7, r1
+    4a20:	81 08       	sbc	r8, r1
+    4a22:	91 08       	sbc	r9, r1
+    4a24:	a2 0c       	add	r10, r2
+    4a26:	b3 1c       	adc	r11, r3
+    4a28:	c4 1c       	adc	r12, r4
+    4a2a:	d5 1c       	adc	r13, r5
+    4a2c:	a2 14       	cp	r10, r2
+    4a2e:	b3 04       	cpc	r11, r3
+    4a30:	c4 04       	cpc	r12, r4
+    4a32:	d5 04       	cpc	r13, r5
+    4a34:	70 f0       	brcs	.+28     	; 0x4a52 <__divdi3+0x838>
+    4a36:	a2 16       	cp	r10, r18
+    4a38:	b3 06       	cpc	r11, r19
+    4a3a:	c4 06       	cpc	r12, r20
+    4a3c:	d5 06       	cpc	r13, r21
+    4a3e:	48 f4       	brcc	.+18     	; 0x4a52 <__divdi3+0x838>
+    4a40:	08 94       	sec
+    4a42:	61 08       	sbc	r6, r1
+    4a44:	71 08       	sbc	r7, r1
+    4a46:	81 08       	sbc	r8, r1
+    4a48:	91 08       	sbc	r9, r1
+    4a4a:	a2 0c       	add	r10, r2
+    4a4c:	b3 1c       	adc	r11, r3
+    4a4e:	c4 1c       	adc	r12, r4
+    4a50:	d5 1c       	adc	r13, r5
+    4a52:	21 96       	adiw	r28, 0x01	; 1
+    4a54:	8c ad       	ldd	r24, Y+60	; 0x3c
+    4a56:	9d ad       	ldd	r25, Y+61	; 0x3d
+    4a58:	ae ad       	ldd	r26, Y+62	; 0x3e
+    4a5a:	bf ad       	ldd	r27, Y+63	; 0x3f
+    4a5c:	21 97       	sbiw	r28, 0x01	; 1
+    4a5e:	e3 96       	adiw	r28, 0x33	; 51
+    4a60:	0f ac       	ldd	r0, Y+63	; 0x3f
+    4a62:	e3 97       	sbiw	r28, 0x33	; 51
+    4a64:	04 c0       	rjmp	.+8      	; 0x4a6e <__divdi3+0x854>
+    4a66:	88 0f       	add	r24, r24
+    4a68:	99 1f       	adc	r25, r25
+    4a6a:	aa 1f       	adc	r26, r26
+    4a6c:	bb 1f       	adc	r27, r27
+    4a6e:	0a 94       	dec	r0
+    4a70:	d2 f7       	brpl	.-12     	; 0x4a66 <__divdi3+0x84c>
+    4a72:	21 96       	adiw	r28, 0x01	; 1
+    4a74:	8c af       	std	Y+60, r24	; 0x3c
+    4a76:	9d af       	std	Y+61, r25	; 0x3d
+    4a78:	ae af       	std	Y+62, r26	; 0x3e
+    4a7a:	bf af       	std	Y+63, r27	; 0x3f
+    4a7c:	21 97       	sbiw	r28, 0x01	; 1
+    4a7e:	a2 1a       	sub	r10, r18
+    4a80:	b3 0a       	sbc	r11, r19
+    4a82:	c4 0a       	sbc	r12, r20
+    4a84:	d5 0a       	sbc	r13, r21
+    4a86:	65 96       	adiw	r28, 0x15	; 21
+    4a88:	ec ac       	ldd	r14, Y+60	; 0x3c
+    4a8a:	fd ac       	ldd	r15, Y+61	; 0x3d
+    4a8c:	0e ad       	ldd	r16, Y+62	; 0x3e
+    4a8e:	1f ad       	ldd	r17, Y+63	; 0x3f
+    4a90:	65 97       	sbiw	r28, 0x15	; 21
+    4a92:	d7 01       	movw	r26, r14
+    4a94:	99 27       	eor	r25, r25
+    4a96:	88 27       	eor	r24, r24
+    4a98:	68 2a       	or	r6, r24
+    4a9a:	79 2a       	or	r7, r25
+    4a9c:	8a 2a       	or	r8, r26
+    4a9e:	9b 2a       	or	r9, r27
+    4aa0:	82 01       	movw	r16, r4
+    4aa2:	22 27       	eor	r18, r18
+    4aa4:	33 27       	eor	r19, r19
+    4aa6:	69 96       	adiw	r28, 0x19	; 25
+    4aa8:	0c af       	std	Y+60, r16	; 0x3c
+    4aaa:	1d af       	std	Y+61, r17	; 0x3d
+    4aac:	2e af       	std	Y+62, r18	; 0x3e
+    4aae:	3f af       	std	Y+63, r19	; 0x3f
+    4ab0:	69 97       	sbiw	r28, 0x19	; 25
+    4ab2:	a2 01       	movw	r20, r4
+    4ab4:	91 01       	movw	r18, r2
+    4ab6:	40 70       	andi	r20, 0x00	; 0
+    4ab8:	50 70       	andi	r21, 0x00	; 0
+    4aba:	6d 96       	adiw	r28, 0x1d	; 29
+    4abc:	2c af       	std	Y+60, r18	; 0x3c
+    4abe:	3d af       	std	Y+61, r19	; 0x3d
+    4ac0:	4e af       	std	Y+62, r20	; 0x3e
+    4ac2:	5f af       	std	Y+63, r21	; 0x3f
+    4ac4:	6d 97       	sbiw	r28, 0x1d	; 29
+    4ac6:	c6 01       	movw	r24, r12
+    4ac8:	b5 01       	movw	r22, r10
+    4aca:	69 96       	adiw	r28, 0x19	; 25
+    4acc:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4ace:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4ad0:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4ad2:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4ad4:	69 97       	sbiw	r28, 0x19	; 25
+    4ad6:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4ada:	7b 01       	movw	r14, r22
+    4adc:	8c 01       	movw	r16, r24
+    4ade:	c6 01       	movw	r24, r12
+    4ae0:	b5 01       	movw	r22, r10
+    4ae2:	69 96       	adiw	r28, 0x19	; 25
+    4ae4:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4ae6:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4ae8:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4aea:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4aec:	69 97       	sbiw	r28, 0x19	; 25
+    4aee:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4af2:	c9 01       	movw	r24, r18
+    4af4:	da 01       	movw	r26, r20
+    4af6:	a1 96       	adiw	r28, 0x21	; 33
+    4af8:	8c af       	std	Y+60, r24	; 0x3c
+    4afa:	9d af       	std	Y+61, r25	; 0x3d
+    4afc:	ae af       	std	Y+62, r26	; 0x3e
+    4afe:	bf af       	std	Y+63, r27	; 0x3f
+    4b00:	a1 97       	sbiw	r28, 0x21	; 33
+    4b02:	bc 01       	movw	r22, r24
+    4b04:	cd 01       	movw	r24, r26
+    4b06:	6d 96       	adiw	r28, 0x1d	; 29
+    4b08:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4b0a:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4b0c:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4b0e:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4b10:	6d 97       	sbiw	r28, 0x1d	; 29
+    4b12:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4b16:	9b 01       	movw	r18, r22
+    4b18:	ac 01       	movw	r20, r24
+    4b1a:	87 01       	movw	r16, r14
+    4b1c:	ff 24       	eor	r15, r15
+    4b1e:	ee 24       	eor	r14, r14
+    4b20:	21 96       	adiw	r28, 0x01	; 1
+    4b22:	ac ac       	ldd	r10, Y+60	; 0x3c
+    4b24:	bd ac       	ldd	r11, Y+61	; 0x3d
+    4b26:	ce ac       	ldd	r12, Y+62	; 0x3e
+    4b28:	df ac       	ldd	r13, Y+63	; 0x3f
+    4b2a:	21 97       	sbiw	r28, 0x01	; 1
+    4b2c:	c6 01       	movw	r24, r12
+    4b2e:	aa 27       	eor	r26, r26
+    4b30:	bb 27       	eor	r27, r27
+    4b32:	57 01       	movw	r10, r14
+    4b34:	68 01       	movw	r12, r16
+    4b36:	a8 2a       	or	r10, r24
+    4b38:	b9 2a       	or	r11, r25
+    4b3a:	ca 2a       	or	r12, r26
+    4b3c:	db 2a       	or	r13, r27
+    4b3e:	a2 16       	cp	r10, r18
+    4b40:	b3 06       	cpc	r11, r19
+    4b42:	c4 06       	cpc	r12, r20
+    4b44:	d5 06       	cpc	r13, r21
+    4b46:	60 f5       	brcc	.+88     	; 0x4ba0 <__divdi3+0x986>
+    4b48:	a1 96       	adiw	r28, 0x21	; 33
+    4b4a:	6c ad       	ldd	r22, Y+60	; 0x3c
+    4b4c:	7d ad       	ldd	r23, Y+61	; 0x3d
+    4b4e:	8e ad       	ldd	r24, Y+62	; 0x3e
+    4b50:	9f ad       	ldd	r25, Y+63	; 0x3f
+    4b52:	a1 97       	sbiw	r28, 0x21	; 33
+    4b54:	61 50       	subi	r22, 0x01	; 1
+    4b56:	70 40       	sbci	r23, 0x00	; 0
+    4b58:	80 40       	sbci	r24, 0x00	; 0
+    4b5a:	90 40       	sbci	r25, 0x00	; 0
+    4b5c:	a1 96       	adiw	r28, 0x21	; 33
+    4b5e:	6c af       	std	Y+60, r22	; 0x3c
+    4b60:	7d af       	std	Y+61, r23	; 0x3d
+    4b62:	8e af       	std	Y+62, r24	; 0x3e
+    4b64:	9f af       	std	Y+63, r25	; 0x3f
+    4b66:	a1 97       	sbiw	r28, 0x21	; 33
+    4b68:	a2 0c       	add	r10, r2
+    4b6a:	b3 1c       	adc	r11, r3
+    4b6c:	c4 1c       	adc	r12, r4
+    4b6e:	d5 1c       	adc	r13, r5
+    4b70:	a2 14       	cp	r10, r2
+    4b72:	b3 04       	cpc	r11, r3
+    4b74:	c4 04       	cpc	r12, r4
+    4b76:	d5 04       	cpc	r13, r5
+    4b78:	98 f0       	brcs	.+38     	; 0x4ba0 <__divdi3+0x986>
+    4b7a:	a2 16       	cp	r10, r18
+    4b7c:	b3 06       	cpc	r11, r19
+    4b7e:	c4 06       	cpc	r12, r20
+    4b80:	d5 06       	cpc	r13, r21
+    4b82:	70 f4       	brcc	.+28     	; 0x4ba0 <__divdi3+0x986>
+    4b84:	61 50       	subi	r22, 0x01	; 1
+    4b86:	70 40       	sbci	r23, 0x00	; 0
+    4b88:	80 40       	sbci	r24, 0x00	; 0
+    4b8a:	90 40       	sbci	r25, 0x00	; 0
+    4b8c:	a1 96       	adiw	r28, 0x21	; 33
+    4b8e:	6c af       	std	Y+60, r22	; 0x3c
+    4b90:	7d af       	std	Y+61, r23	; 0x3d
+    4b92:	8e af       	std	Y+62, r24	; 0x3e
+    4b94:	9f af       	std	Y+63, r25	; 0x3f
+    4b96:	a1 97       	sbiw	r28, 0x21	; 33
+    4b98:	a2 0c       	add	r10, r2
+    4b9a:	b3 1c       	adc	r11, r3
+    4b9c:	c4 1c       	adc	r12, r4
+    4b9e:	d5 1c       	adc	r13, r5
+    4ba0:	a2 1a       	sub	r10, r18
+    4ba2:	b3 0a       	sbc	r11, r19
+    4ba4:	c4 0a       	sbc	r12, r20
+    4ba6:	d5 0a       	sbc	r13, r21
+    4ba8:	c6 01       	movw	r24, r12
+    4baa:	b5 01       	movw	r22, r10
+    4bac:	69 96       	adiw	r28, 0x19	; 25
+    4bae:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4bb0:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4bb2:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4bb4:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4bb6:	69 97       	sbiw	r28, 0x19	; 25
+    4bb8:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4bbc:	7b 01       	movw	r14, r22
+    4bbe:	8c 01       	movw	r16, r24
+    4bc0:	c6 01       	movw	r24, r12
+    4bc2:	b5 01       	movw	r22, r10
+    4bc4:	69 96       	adiw	r28, 0x19	; 25
+    4bc6:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4bc8:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4bca:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4bcc:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4bce:	69 97       	sbiw	r28, 0x19	; 25
+    4bd0:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4bd4:	c9 01       	movw	r24, r18
+    4bd6:	da 01       	movw	r26, r20
+    4bd8:	5c 01       	movw	r10, r24
+    4bda:	6d 01       	movw	r12, r26
+    4bdc:	c6 01       	movw	r24, r12
+    4bde:	b5 01       	movw	r22, r10
+    4be0:	6d 96       	adiw	r28, 0x1d	; 29
+    4be2:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4be4:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4be6:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4be8:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4bea:	6d 97       	sbiw	r28, 0x1d	; 29
+    4bec:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4bf0:	9b 01       	movw	r18, r22
+    4bf2:	ac 01       	movw	r20, r24
+    4bf4:	87 01       	movw	r16, r14
+    4bf6:	ff 24       	eor	r15, r15
+    4bf8:	ee 24       	eor	r14, r14
+    4bfa:	21 96       	adiw	r28, 0x01	; 1
+    4bfc:	8c ad       	ldd	r24, Y+60	; 0x3c
+    4bfe:	9d ad       	ldd	r25, Y+61	; 0x3d
+    4c00:	ae ad       	ldd	r26, Y+62	; 0x3e
+    4c02:	bf ad       	ldd	r27, Y+63	; 0x3f
+    4c04:	21 97       	sbiw	r28, 0x01	; 1
+    4c06:	a0 70       	andi	r26, 0x00	; 0
+    4c08:	b0 70       	andi	r27, 0x00	; 0
+    4c0a:	e8 2a       	or	r14, r24
+    4c0c:	f9 2a       	or	r15, r25
+    4c0e:	0a 2b       	or	r16, r26
+    4c10:	1b 2b       	or	r17, r27
+    4c12:	e2 16       	cp	r14, r18
+    4c14:	f3 06       	cpc	r15, r19
+    4c16:	04 07       	cpc	r16, r20
+    4c18:	15 07       	cpc	r17, r21
+    4c1a:	c0 f4       	brcc	.+48     	; 0x4c4c <__divdi3+0xa32>
+    4c1c:	08 94       	sec
+    4c1e:	a1 08       	sbc	r10, r1
+    4c20:	b1 08       	sbc	r11, r1
+    4c22:	c1 08       	sbc	r12, r1
+    4c24:	d1 08       	sbc	r13, r1
+    4c26:	e2 0c       	add	r14, r2
+    4c28:	f3 1c       	adc	r15, r3
+    4c2a:	04 1d       	adc	r16, r4
+    4c2c:	15 1d       	adc	r17, r5
+    4c2e:	e2 14       	cp	r14, r2
+    4c30:	f3 04       	cpc	r15, r3
+    4c32:	04 05       	cpc	r16, r4
+    4c34:	15 05       	cpc	r17, r5
+    4c36:	50 f0       	brcs	.+20     	; 0x4c4c <__divdi3+0xa32>
+    4c38:	e2 16       	cp	r14, r18
+    4c3a:	f3 06       	cpc	r15, r19
+    4c3c:	04 07       	cpc	r16, r20
+    4c3e:	15 07       	cpc	r17, r21
+    4c40:	28 f4       	brcc	.+10     	; 0x4c4c <__divdi3+0xa32>
+    4c42:	08 94       	sec
+    4c44:	a1 08       	sbc	r10, r1
+    4c46:	b1 08       	sbc	r11, r1
+    4c48:	c1 08       	sbc	r12, r1
+    4c4a:	d1 08       	sbc	r13, r1
+    4c4c:	a1 96       	adiw	r28, 0x21	; 33
+    4c4e:	ec ac       	ldd	r14, Y+60	; 0x3c
+    4c50:	fd ac       	ldd	r15, Y+61	; 0x3d
+    4c52:	0e ad       	ldd	r16, Y+62	; 0x3e
+    4c54:	1f ad       	ldd	r17, Y+63	; 0x3f
+    4c56:	a1 97       	sbiw	r28, 0x21	; 33
+    4c58:	d7 01       	movw	r26, r14
+    4c5a:	99 27       	eor	r25, r25
+    4c5c:	88 27       	eor	r24, r24
+    4c5e:	96 01       	movw	r18, r12
+    4c60:	85 01       	movw	r16, r10
+    4c62:	08 2b       	or	r16, r24
+    4c64:	19 2b       	or	r17, r25
+    4c66:	2a 2b       	or	r18, r26
+    4c68:	3b 2b       	or	r19, r27
+    4c6a:	25 96       	adiw	r28, 0x05	; 5
+    4c6c:	0c af       	std	Y+60, r16	; 0x3c
+    4c6e:	1d af       	std	Y+61, r17	; 0x3d
+    4c70:	2e af       	std	Y+62, r18	; 0x3e
+    4c72:	3f af       	std	Y+63, r19	; 0x3f
+    4c74:	25 97       	sbiw	r28, 0x05	; 5
+    4c76:	72 c2       	rjmp	.+1252   	; 0x515c <__divdi3+0xf42>
+    4c78:	6e 14       	cp	r6, r14
+    4c7a:	7f 04       	cpc	r7, r15
+    4c7c:	80 06       	cpc	r8, r16
+    4c7e:	91 06       	cpc	r9, r17
+    4c80:	08 f4       	brcc	.+2      	; 0x4c84 <__divdi3+0xa6a>
+    4c82:	5f c2       	rjmp	.+1214   	; 0x5142 <__divdi3+0xf28>
+    4c84:	20 e0       	ldi	r18, 0x00	; 0
+    4c86:	e2 16       	cp	r14, r18
+    4c88:	20 e0       	ldi	r18, 0x00	; 0
+    4c8a:	f2 06       	cpc	r15, r18
+    4c8c:	21 e0       	ldi	r18, 0x01	; 1
+    4c8e:	02 07       	cpc	r16, r18
+    4c90:	20 e0       	ldi	r18, 0x00	; 0
+    4c92:	12 07       	cpc	r17, r18
+    4c94:	88 f4       	brcc	.+34     	; 0x4cb8 <__divdi3+0xa9e>
+    4c96:	3f ef       	ldi	r19, 0xFF	; 255
+    4c98:	e3 16       	cp	r14, r19
+    4c9a:	f1 04       	cpc	r15, r1
+    4c9c:	01 05       	cpc	r16, r1
+    4c9e:	11 05       	cpc	r17, r1
+    4ca0:	31 f0       	breq	.+12     	; 0x4cae <__divdi3+0xa94>
+    4ca2:	28 f0       	brcs	.+10     	; 0x4cae <__divdi3+0xa94>
+    4ca4:	48 e0       	ldi	r20, 0x08	; 8
+    4ca6:	50 e0       	ldi	r21, 0x00	; 0
+    4ca8:	60 e0       	ldi	r22, 0x00	; 0
+    4caa:	70 e0       	ldi	r23, 0x00	; 0
+    4cac:	17 c0       	rjmp	.+46     	; 0x4cdc <__divdi3+0xac2>
+    4cae:	40 e0       	ldi	r20, 0x00	; 0
+    4cb0:	50 e0       	ldi	r21, 0x00	; 0
+    4cb2:	60 e0       	ldi	r22, 0x00	; 0
+    4cb4:	70 e0       	ldi	r23, 0x00	; 0
+    4cb6:	12 c0       	rjmp	.+36     	; 0x4cdc <__divdi3+0xac2>
+    4cb8:	40 e0       	ldi	r20, 0x00	; 0
+    4cba:	e4 16       	cp	r14, r20
+    4cbc:	40 e0       	ldi	r20, 0x00	; 0
+    4cbe:	f4 06       	cpc	r15, r20
+    4cc0:	40 e0       	ldi	r20, 0x00	; 0
+    4cc2:	04 07       	cpc	r16, r20
+    4cc4:	41 e0       	ldi	r20, 0x01	; 1
+    4cc6:	14 07       	cpc	r17, r20
+    4cc8:	28 f0       	brcs	.+10     	; 0x4cd4 <__divdi3+0xaba>
+    4cca:	48 e1       	ldi	r20, 0x18	; 24
+    4ccc:	50 e0       	ldi	r21, 0x00	; 0
+    4cce:	60 e0       	ldi	r22, 0x00	; 0
+    4cd0:	70 e0       	ldi	r23, 0x00	; 0
+    4cd2:	04 c0       	rjmp	.+8      	; 0x4cdc <__divdi3+0xac2>
+    4cd4:	40 e1       	ldi	r20, 0x10	; 16
+    4cd6:	50 e0       	ldi	r21, 0x00	; 0
+    4cd8:	60 e0       	ldi	r22, 0x00	; 0
+    4cda:	70 e0       	ldi	r23, 0x00	; 0
+    4cdc:	d8 01       	movw	r26, r16
+    4cde:	c7 01       	movw	r24, r14
+    4ce0:	04 2e       	mov	r0, r20
+    4ce2:	04 c0       	rjmp	.+8      	; 0x4cec <__divdi3+0xad2>
+    4ce4:	b6 95       	lsr	r27
+    4ce6:	a7 95       	ror	r26
+    4ce8:	97 95       	ror	r25
+    4cea:	87 95       	ror	r24
+    4cec:	0a 94       	dec	r0
+    4cee:	d2 f7       	brpl	.-12     	; 0x4ce4 <__divdi3+0xaca>
+    4cf0:	8c 53       	subi	r24, 0x3C	; 60
+    4cf2:	9e 4f       	sbci	r25, 0xFE	; 254
+    4cf4:	dc 01       	movw	r26, r24
+    4cf6:	2c 91       	ld	r18, X
+    4cf8:	30 e2       	ldi	r19, 0x20	; 32
+    4cfa:	a3 2e       	mov	r10, r19
+    4cfc:	b1 2c       	mov	r11, r1
+    4cfe:	c1 2c       	mov	r12, r1
+    4d00:	d1 2c       	mov	r13, r1
+    4d02:	d6 01       	movw	r26, r12
+    4d04:	c5 01       	movw	r24, r10
+    4d06:	84 1b       	sub	r24, r20
+    4d08:	95 0b       	sbc	r25, r21
+    4d0a:	a6 0b       	sbc	r26, r22
+    4d0c:	b7 0b       	sbc	r27, r23
+    4d0e:	82 1b       	sub	r24, r18
+    4d10:	91 09       	sbc	r25, r1
+    4d12:	a1 09       	sbc	r26, r1
+    4d14:	b1 09       	sbc	r27, r1
+    4d16:	00 97       	sbiw	r24, 0x00	; 0
+    4d18:	a1 05       	cpc	r26, r1
+    4d1a:	b1 05       	cpc	r27, r1
+    4d1c:	99 f4       	brne	.+38     	; 0x4d44 <__divdi3+0xb2a>
+    4d1e:	e6 14       	cp	r14, r6
+    4d20:	f7 04       	cpc	r15, r7
+    4d22:	08 05       	cpc	r16, r8
+    4d24:	19 05       	cpc	r17, r9
+    4d26:	08 f4       	brcc	.+2      	; 0x4d2a <__divdi3+0xb10>
+    4d28:	fe c1       	rjmp	.+1020   	; 0x5126 <__divdi3+0xf0c>
+    4d2a:	21 96       	adiw	r28, 0x01	; 1
+    4d2c:	6c ac       	ldd	r6, Y+60	; 0x3c
+    4d2e:	7d ac       	ldd	r7, Y+61	; 0x3d
+    4d30:	8e ac       	ldd	r8, Y+62	; 0x3e
+    4d32:	9f ac       	ldd	r9, Y+63	; 0x3f
+    4d34:	21 97       	sbiw	r28, 0x01	; 1
+    4d36:	62 14       	cp	r6, r2
+    4d38:	73 04       	cpc	r7, r3
+    4d3a:	84 04       	cpc	r8, r4
+    4d3c:	95 04       	cpc	r9, r5
+    4d3e:	08 f0       	brcs	.+2      	; 0x4d42 <__divdi3+0xb28>
+    4d40:	f2 c1       	rjmp	.+996    	; 0x5126 <__divdi3+0xf0c>
+    4d42:	ff c1       	rjmp	.+1022   	; 0x5142 <__divdi3+0xf28>
+    4d44:	e2 96       	adiw	r28, 0x32	; 50
+    4d46:	8f af       	std	Y+63, r24	; 0x3f
+    4d48:	e2 97       	sbiw	r28, 0x32	; 50
+    4d4a:	08 2e       	mov	r0, r24
+    4d4c:	04 c0       	rjmp	.+8      	; 0x4d56 <__divdi3+0xb3c>
+    4d4e:	ee 0c       	add	r14, r14
+    4d50:	ff 1c       	adc	r15, r15
+    4d52:	00 1f       	adc	r16, r16
+    4d54:	11 1f       	adc	r17, r17
+    4d56:	0a 94       	dec	r0
+    4d58:	d2 f7       	brpl	.-12     	; 0x4d4e <__divdi3+0xb34>
+    4d5a:	6a 2d       	mov	r22, r10
+    4d5c:	68 1b       	sub	r22, r24
+    4d5e:	d2 01       	movw	r26, r4
+    4d60:	c1 01       	movw	r24, r2
+    4d62:	06 2e       	mov	r0, r22
+    4d64:	04 c0       	rjmp	.+8      	; 0x4d6e <__divdi3+0xb54>
+    4d66:	b6 95       	lsr	r27
+    4d68:	a7 95       	ror	r26
+    4d6a:	97 95       	ror	r25
+    4d6c:	87 95       	ror	r24
+    4d6e:	0a 94       	dec	r0
+    4d70:	d2 f7       	brpl	.-12     	; 0x4d66 <__divdi3+0xb4c>
+    4d72:	5c 01       	movw	r10, r24
+    4d74:	6d 01       	movw	r12, r26
+    4d76:	ae 28       	or	r10, r14
+    4d78:	bf 28       	or	r11, r15
+    4d7a:	c0 2a       	or	r12, r16
+    4d7c:	d1 2a       	or	r13, r17
+    4d7e:	ad aa       	std	Y+53, r10	; 0x35
+    4d80:	be aa       	std	Y+54, r11	; 0x36
+    4d82:	cf aa       	std	Y+55, r12	; 0x37
+    4d84:	d8 ae       	std	Y+56, r13	; 0x38
+    4d86:	72 01       	movw	r14, r4
+    4d88:	61 01       	movw	r12, r2
+    4d8a:	e2 96       	adiw	r28, 0x32	; 50
+    4d8c:	0f ac       	ldd	r0, Y+63	; 0x3f
+    4d8e:	e2 97       	sbiw	r28, 0x32	; 50
+    4d90:	04 c0       	rjmp	.+8      	; 0x4d9a <__divdi3+0xb80>
+    4d92:	cc 0c       	add	r12, r12
+    4d94:	dd 1c       	adc	r13, r13
+    4d96:	ee 1c       	adc	r14, r14
+    4d98:	ff 1c       	adc	r15, r15
+    4d9a:	0a 94       	dec	r0
+    4d9c:	d2 f7       	brpl	.-12     	; 0x4d92 <__divdi3+0xb78>
+    4d9e:	c9 aa       	std	Y+49, r12	; 0x31
+    4da0:	da aa       	std	Y+50, r13	; 0x32
+    4da2:	eb aa       	std	Y+51, r14	; 0x33
+    4da4:	fc aa       	std	Y+52, r15	; 0x34
+    4da6:	64 01       	movw	r12, r8
+    4da8:	53 01       	movw	r10, r6
+    4daa:	06 2e       	mov	r0, r22
+    4dac:	04 c0       	rjmp	.+8      	; 0x4db6 <__divdi3+0xb9c>
+    4dae:	d6 94       	lsr	r13
+    4db0:	c7 94       	ror	r12
+    4db2:	b7 94       	ror	r11
+    4db4:	a7 94       	ror	r10
+    4db6:	0a 94       	dec	r0
+    4db8:	d2 f7       	brpl	.-12     	; 0x4dae <__divdi3+0xb94>
+    4dba:	d4 01       	movw	r26, r8
+    4dbc:	c3 01       	movw	r24, r6
+    4dbe:	e2 96       	adiw	r28, 0x32	; 50
+    4dc0:	0f ac       	ldd	r0, Y+63	; 0x3f
+    4dc2:	e2 97       	sbiw	r28, 0x32	; 50
+    4dc4:	04 c0       	rjmp	.+8      	; 0x4dce <__divdi3+0xbb4>
+    4dc6:	88 0f       	add	r24, r24
+    4dc8:	99 1f       	adc	r25, r25
+    4dca:	aa 1f       	adc	r26, r26
+    4dcc:	bb 1f       	adc	r27, r27
+    4dce:	0a 94       	dec	r0
+    4dd0:	d2 f7       	brpl	.-12     	; 0x4dc6 <__divdi3+0xbac>
+    4dd2:	21 96       	adiw	r28, 0x01	; 1
+    4dd4:	ec ac       	ldd	r14, Y+60	; 0x3c
+    4dd6:	fd ac       	ldd	r15, Y+61	; 0x3d
+    4dd8:	0e ad       	ldd	r16, Y+62	; 0x3e
+    4dda:	1f ad       	ldd	r17, Y+63	; 0x3f
+    4ddc:	21 97       	sbiw	r28, 0x01	; 1
+    4dde:	04 c0       	rjmp	.+8      	; 0x4de8 <__divdi3+0xbce>
+    4de0:	16 95       	lsr	r17
+    4de2:	07 95       	ror	r16
+    4de4:	f7 94       	ror	r15
+    4de6:	e7 94       	ror	r14
+    4de8:	6a 95       	dec	r22
+    4dea:	d2 f7       	brpl	.-12     	; 0x4de0 <__divdi3+0xbc6>
+    4dec:	37 01       	movw	r6, r14
+    4dee:	48 01       	movw	r8, r16
+    4df0:	68 2a       	or	r6, r24
+    4df2:	79 2a       	or	r7, r25
+    4df4:	8a 2a       	or	r8, r26
+    4df6:	9b 2a       	or	r9, r27
+    4df8:	6d a6       	std	Y+45, r6	; 0x2d
+    4dfa:	7e a6       	std	Y+46, r7	; 0x2e
+    4dfc:	8f a6       	std	Y+47, r8	; 0x2f
+    4dfe:	98 aa       	std	Y+48, r9	; 0x30
+    4e00:	ed a8       	ldd	r14, Y+53	; 0x35
+    4e02:	fe a8       	ldd	r15, Y+54	; 0x36
+    4e04:	0f a9       	ldd	r16, Y+55	; 0x37
+    4e06:	18 ad       	ldd	r17, Y+56	; 0x38
+    4e08:	38 01       	movw	r6, r16
+    4e0a:	88 24       	eor	r8, r8
+    4e0c:	99 24       	eor	r9, r9
+    4e0e:	98 01       	movw	r18, r16
+    4e10:	87 01       	movw	r16, r14
+    4e12:	20 70       	andi	r18, 0x00	; 0
+    4e14:	30 70       	andi	r19, 0x00	; 0
+    4e16:	a5 96       	adiw	r28, 0x25	; 37
+    4e18:	0c af       	std	Y+60, r16	; 0x3c
+    4e1a:	1d af       	std	Y+61, r17	; 0x3d
+    4e1c:	2e af       	std	Y+62, r18	; 0x3e
+    4e1e:	3f af       	std	Y+63, r19	; 0x3f
+    4e20:	a5 97       	sbiw	r28, 0x25	; 37
+    4e22:	c6 01       	movw	r24, r12
+    4e24:	b5 01       	movw	r22, r10
+    4e26:	a4 01       	movw	r20, r8
+    4e28:	93 01       	movw	r18, r6
+    4e2a:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4e2e:	7b 01       	movw	r14, r22
+    4e30:	8c 01       	movw	r16, r24
+    4e32:	c6 01       	movw	r24, r12
+    4e34:	b5 01       	movw	r22, r10
+    4e36:	a4 01       	movw	r20, r8
+    4e38:	93 01       	movw	r18, r6
+    4e3a:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4e3e:	c9 01       	movw	r24, r18
+    4e40:	da 01       	movw	r26, r20
+    4e42:	1c 01       	movw	r2, r24
+    4e44:	2d 01       	movw	r4, r26
+    4e46:	c2 01       	movw	r24, r4
+    4e48:	b1 01       	movw	r22, r2
+    4e4a:	a5 96       	adiw	r28, 0x25	; 37
+    4e4c:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4e4e:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4e50:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4e52:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4e54:	a5 97       	sbiw	r28, 0x25	; 37
+    4e56:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4e5a:	9b 01       	movw	r18, r22
+    4e5c:	ac 01       	movw	r20, r24
+    4e5e:	87 01       	movw	r16, r14
+    4e60:	ff 24       	eor	r15, r15
+    4e62:	ee 24       	eor	r14, r14
+    4e64:	ad a4       	ldd	r10, Y+45	; 0x2d
+    4e66:	be a4       	ldd	r11, Y+46	; 0x2e
+    4e68:	cf a4       	ldd	r12, Y+47	; 0x2f
+    4e6a:	d8 a8       	ldd	r13, Y+48	; 0x30
+    4e6c:	c6 01       	movw	r24, r12
+    4e6e:	aa 27       	eor	r26, r26
+    4e70:	bb 27       	eor	r27, r27
+    4e72:	57 01       	movw	r10, r14
+    4e74:	68 01       	movw	r12, r16
+    4e76:	a8 2a       	or	r10, r24
+    4e78:	b9 2a       	or	r11, r25
+    4e7a:	ca 2a       	or	r12, r26
+    4e7c:	db 2a       	or	r13, r27
+    4e7e:	a2 16       	cp	r10, r18
+    4e80:	b3 06       	cpc	r11, r19
+    4e82:	c4 06       	cpc	r12, r20
+    4e84:	d5 06       	cpc	r13, r21
+    4e86:	00 f5       	brcc	.+64     	; 0x4ec8 <__divdi3+0xcae>
+    4e88:	08 94       	sec
+    4e8a:	21 08       	sbc	r2, r1
+    4e8c:	31 08       	sbc	r3, r1
+    4e8e:	41 08       	sbc	r4, r1
+    4e90:	51 08       	sbc	r5, r1
+    4e92:	ed a8       	ldd	r14, Y+53	; 0x35
+    4e94:	fe a8       	ldd	r15, Y+54	; 0x36
+    4e96:	0f a9       	ldd	r16, Y+55	; 0x37
+    4e98:	18 ad       	ldd	r17, Y+56	; 0x38
+    4e9a:	ae 0c       	add	r10, r14
+    4e9c:	bf 1c       	adc	r11, r15
+    4e9e:	c0 1e       	adc	r12, r16
+    4ea0:	d1 1e       	adc	r13, r17
+    4ea2:	ae 14       	cp	r10, r14
+    4ea4:	bf 04       	cpc	r11, r15
+    4ea6:	c0 06       	cpc	r12, r16
+    4ea8:	d1 06       	cpc	r13, r17
+    4eaa:	70 f0       	brcs	.+28     	; 0x4ec8 <__divdi3+0xcae>
+    4eac:	a2 16       	cp	r10, r18
+    4eae:	b3 06       	cpc	r11, r19
+    4eb0:	c4 06       	cpc	r12, r20
+    4eb2:	d5 06       	cpc	r13, r21
+    4eb4:	48 f4       	brcc	.+18     	; 0x4ec8 <__divdi3+0xcae>
+    4eb6:	08 94       	sec
+    4eb8:	21 08       	sbc	r2, r1
+    4eba:	31 08       	sbc	r3, r1
+    4ebc:	41 08       	sbc	r4, r1
+    4ebe:	51 08       	sbc	r5, r1
+    4ec0:	ae 0c       	add	r10, r14
+    4ec2:	bf 1c       	adc	r11, r15
+    4ec4:	c0 1e       	adc	r12, r16
+    4ec6:	d1 1e       	adc	r13, r17
+    4ec8:	a2 1a       	sub	r10, r18
+    4eca:	b3 0a       	sbc	r11, r19
+    4ecc:	c4 0a       	sbc	r12, r20
+    4ece:	d5 0a       	sbc	r13, r21
+    4ed0:	c6 01       	movw	r24, r12
+    4ed2:	b5 01       	movw	r22, r10
+    4ed4:	a4 01       	movw	r20, r8
+    4ed6:	93 01       	movw	r18, r6
+    4ed8:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4edc:	7b 01       	movw	r14, r22
+    4ede:	8c 01       	movw	r16, r24
+    4ee0:	c6 01       	movw	r24, r12
+    4ee2:	b5 01       	movw	r22, r10
+    4ee4:	a4 01       	movw	r20, r8
+    4ee6:	93 01       	movw	r18, r6
+    4ee8:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    4eec:	c9 01       	movw	r24, r18
+    4eee:	da 01       	movw	r26, r20
+    4ef0:	3c 01       	movw	r6, r24
+    4ef2:	4d 01       	movw	r8, r26
+    4ef4:	c4 01       	movw	r24, r8
+    4ef6:	b3 01       	movw	r22, r6
+    4ef8:	a5 96       	adiw	r28, 0x25	; 37
+    4efa:	2c ad       	ldd	r18, Y+60	; 0x3c
+    4efc:	3d ad       	ldd	r19, Y+61	; 0x3d
+    4efe:	4e ad       	ldd	r20, Y+62	; 0x3e
+    4f00:	5f ad       	ldd	r21, Y+63	; 0x3f
+    4f02:	a5 97       	sbiw	r28, 0x25	; 37
+    4f04:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4f08:	9b 01       	movw	r18, r22
+    4f0a:	ac 01       	movw	r20, r24
+    4f0c:	87 01       	movw	r16, r14
+    4f0e:	ff 24       	eor	r15, r15
+    4f10:	ee 24       	eor	r14, r14
+    4f12:	8d a5       	ldd	r24, Y+45	; 0x2d
+    4f14:	9e a5       	ldd	r25, Y+46	; 0x2e
+    4f16:	af a5       	ldd	r26, Y+47	; 0x2f
+    4f18:	b8 a9       	ldd	r27, Y+48	; 0x30
+    4f1a:	a0 70       	andi	r26, 0x00	; 0
+    4f1c:	b0 70       	andi	r27, 0x00	; 0
+    4f1e:	57 01       	movw	r10, r14
+    4f20:	68 01       	movw	r12, r16
+    4f22:	a8 2a       	or	r10, r24
+    4f24:	b9 2a       	or	r11, r25
+    4f26:	ca 2a       	or	r12, r26
+    4f28:	db 2a       	or	r13, r27
+    4f2a:	a2 16       	cp	r10, r18
+    4f2c:	b3 06       	cpc	r11, r19
+    4f2e:	c4 06       	cpc	r12, r20
+    4f30:	d5 06       	cpc	r13, r21
+    4f32:	00 f5       	brcc	.+64     	; 0x4f74 <__divdi3+0xd5a>
+    4f34:	08 94       	sec
+    4f36:	61 08       	sbc	r6, r1
+    4f38:	71 08       	sbc	r7, r1
+    4f3a:	81 08       	sbc	r8, r1
+    4f3c:	91 08       	sbc	r9, r1
+    4f3e:	6d a9       	ldd	r22, Y+53	; 0x35
+    4f40:	7e a9       	ldd	r23, Y+54	; 0x36
+    4f42:	8f a9       	ldd	r24, Y+55	; 0x37
+    4f44:	98 ad       	ldd	r25, Y+56	; 0x38
+    4f46:	a6 0e       	add	r10, r22
+    4f48:	b7 1e       	adc	r11, r23
+    4f4a:	c8 1e       	adc	r12, r24
+    4f4c:	d9 1e       	adc	r13, r25
+    4f4e:	a6 16       	cp	r10, r22
+    4f50:	b7 06       	cpc	r11, r23
+    4f52:	c8 06       	cpc	r12, r24
+    4f54:	d9 06       	cpc	r13, r25
+    4f56:	70 f0       	brcs	.+28     	; 0x4f74 <__divdi3+0xd5a>
+    4f58:	a2 16       	cp	r10, r18
+    4f5a:	b3 06       	cpc	r11, r19
+    4f5c:	c4 06       	cpc	r12, r20
+    4f5e:	d5 06       	cpc	r13, r21
+    4f60:	48 f4       	brcc	.+18     	; 0x4f74 <__divdi3+0xd5a>
+    4f62:	08 94       	sec
+    4f64:	61 08       	sbc	r6, r1
+    4f66:	71 08       	sbc	r7, r1
+    4f68:	81 08       	sbc	r8, r1
+    4f6a:	91 08       	sbc	r9, r1
+    4f6c:	a6 0e       	add	r10, r22
+    4f6e:	b7 1e       	adc	r11, r23
+    4f70:	c8 1e       	adc	r12, r24
+    4f72:	d9 1e       	adc	r13, r25
+    4f74:	d6 01       	movw	r26, r12
+    4f76:	c5 01       	movw	r24, r10
+    4f78:	82 1b       	sub	r24, r18
+    4f7a:	93 0b       	sbc	r25, r19
+    4f7c:	a4 0b       	sbc	r26, r20
+    4f7e:	b5 0b       	sbc	r27, r21
+    4f80:	89 a7       	std	Y+41, r24	; 0x29
+    4f82:	9a a7       	std	Y+42, r25	; 0x2a
+    4f84:	ab a7       	std	Y+43, r26	; 0x2b
+    4f86:	bc a7       	std	Y+44, r27	; 0x2c
+    4f88:	d1 01       	movw	r26, r2
+    4f8a:	99 27       	eor	r25, r25
+    4f8c:	88 27       	eor	r24, r24
+    4f8e:	64 01       	movw	r12, r8
+    4f90:	53 01       	movw	r10, r6
+    4f92:	a8 2a       	or	r10, r24
+    4f94:	b9 2a       	or	r11, r25
+    4f96:	ca 2a       	or	r12, r26
+    4f98:	db 2a       	or	r13, r27
+    4f9a:	25 96       	adiw	r28, 0x05	; 5
+    4f9c:	ac ae       	std	Y+60, r10	; 0x3c
+    4f9e:	bd ae       	std	Y+61, r11	; 0x3d
+    4fa0:	ce ae       	std	Y+62, r12	; 0x3e
+    4fa2:	df ae       	std	Y+63, r13	; 0x3f
+    4fa4:	25 97       	sbiw	r28, 0x05	; 5
+    4fa6:	86 01       	movw	r16, r12
+    4fa8:	75 01       	movw	r14, r10
+    4faa:	2f ef       	ldi	r18, 0xFF	; 255
+    4fac:	3f ef       	ldi	r19, 0xFF	; 255
+    4fae:	40 e0       	ldi	r20, 0x00	; 0
+    4fb0:	50 e0       	ldi	r21, 0x00	; 0
+    4fb2:	e2 22       	and	r14, r18
+    4fb4:	f3 22       	and	r15, r19
+    4fb6:	04 23       	and	r16, r20
+    4fb8:	15 23       	and	r17, r21
+    4fba:	a6 01       	movw	r20, r12
+    4fbc:	66 27       	eor	r22, r22
+    4fbe:	77 27       	eor	r23, r23
+    4fc0:	ad 96       	adiw	r28, 0x2d	; 45
+    4fc2:	4c af       	std	Y+60, r20	; 0x3c
+    4fc4:	5d af       	std	Y+61, r21	; 0x3d
+    4fc6:	6e af       	std	Y+62, r22	; 0x3e
+    4fc8:	7f af       	std	Y+63, r23	; 0x3f
+    4fca:	ad 97       	sbiw	r28, 0x2d	; 45
+    4fcc:	a9 a8       	ldd	r10, Y+49	; 0x31
+    4fce:	ba a8       	ldd	r11, Y+50	; 0x32
+    4fd0:	cb a8       	ldd	r12, Y+51	; 0x33
+    4fd2:	dc a8       	ldd	r13, Y+52	; 0x34
+    4fd4:	6f ef       	ldi	r22, 0xFF	; 255
+    4fd6:	7f ef       	ldi	r23, 0xFF	; 255
+    4fd8:	80 e0       	ldi	r24, 0x00	; 0
+    4fda:	90 e0       	ldi	r25, 0x00	; 0
+    4fdc:	a6 22       	and	r10, r22
+    4fde:	b7 22       	and	r11, r23
+    4fe0:	c8 22       	and	r12, r24
+    4fe2:	d9 22       	and	r13, r25
+    4fe4:	89 a9       	ldd	r24, Y+49	; 0x31
+    4fe6:	9a a9       	ldd	r25, Y+50	; 0x32
+    4fe8:	ab a9       	ldd	r26, Y+51	; 0x33
+    4fea:	bc a9       	ldd	r27, Y+52	; 0x34
+    4fec:	1d 01       	movw	r2, r26
+    4fee:	44 24       	eor	r4, r4
+    4ff0:	55 24       	eor	r5, r5
+    4ff2:	c8 01       	movw	r24, r16
+    4ff4:	b7 01       	movw	r22, r14
+    4ff6:	a6 01       	movw	r20, r12
+    4ff8:	95 01       	movw	r18, r10
+    4ffa:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    4ffe:	a9 96       	adiw	r28, 0x29	; 41
+    5000:	6c af       	std	Y+60, r22	; 0x3c
+    5002:	7d af       	std	Y+61, r23	; 0x3d
+    5004:	8e af       	std	Y+62, r24	; 0x3e
+    5006:	9f af       	std	Y+63, r25	; 0x3f
+    5008:	a9 97       	sbiw	r28, 0x29	; 41
+    500a:	c8 01       	movw	r24, r16
+    500c:	b7 01       	movw	r22, r14
+    500e:	a2 01       	movw	r20, r4
+    5010:	91 01       	movw	r18, r2
+    5012:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5016:	3b 01       	movw	r6, r22
+    5018:	4c 01       	movw	r8, r24
+    501a:	ad 96       	adiw	r28, 0x2d	; 45
+    501c:	6c ad       	ldd	r22, Y+60	; 0x3c
+    501e:	7d ad       	ldd	r23, Y+61	; 0x3d
+    5020:	8e ad       	ldd	r24, Y+62	; 0x3e
+    5022:	9f ad       	ldd	r25, Y+63	; 0x3f
+    5024:	ad 97       	sbiw	r28, 0x2d	; 45
+    5026:	a6 01       	movw	r20, r12
+    5028:	95 01       	movw	r18, r10
+    502a:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    502e:	7b 01       	movw	r14, r22
+    5030:	8c 01       	movw	r16, r24
+    5032:	ad 96       	adiw	r28, 0x2d	; 45
+    5034:	6c ad       	ldd	r22, Y+60	; 0x3c
+    5036:	7d ad       	ldd	r23, Y+61	; 0x3d
+    5038:	8e ad       	ldd	r24, Y+62	; 0x3e
+    503a:	9f ad       	ldd	r25, Y+63	; 0x3f
+    503c:	ad 97       	sbiw	r28, 0x2d	; 45
+    503e:	a2 01       	movw	r20, r4
+    5040:	91 01       	movw	r18, r2
+    5042:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5046:	5b 01       	movw	r10, r22
+    5048:	6c 01       	movw	r12, r24
+    504a:	a8 01       	movw	r20, r16
+    504c:	97 01       	movw	r18, r14
+    504e:	26 0d       	add	r18, r6
+    5050:	37 1d       	adc	r19, r7
+    5052:	48 1d       	adc	r20, r8
+    5054:	59 1d       	adc	r21, r9
+    5056:	a9 96       	adiw	r28, 0x29	; 41
+    5058:	6c ac       	ldd	r6, Y+60	; 0x3c
+    505a:	7d ac       	ldd	r7, Y+61	; 0x3d
+    505c:	8e ac       	ldd	r8, Y+62	; 0x3e
+    505e:	9f ac       	ldd	r9, Y+63	; 0x3f
+    5060:	a9 97       	sbiw	r28, 0x29	; 41
+    5062:	c4 01       	movw	r24, r8
+    5064:	aa 27       	eor	r26, r26
+    5066:	bb 27       	eor	r27, r27
+    5068:	28 0f       	add	r18, r24
+    506a:	39 1f       	adc	r19, r25
+    506c:	4a 1f       	adc	r20, r26
+    506e:	5b 1f       	adc	r21, r27
+    5070:	2e 15       	cp	r18, r14
+    5072:	3f 05       	cpc	r19, r15
+    5074:	40 07       	cpc	r20, r16
+    5076:	51 07       	cpc	r21, r17
+    5078:	48 f4       	brcc	.+18     	; 0x508c <__divdi3+0xe72>
+    507a:	e1 2c       	mov	r14, r1
+    507c:	f1 2c       	mov	r15, r1
+    507e:	61 e0       	ldi	r22, 0x01	; 1
+    5080:	06 2f       	mov	r16, r22
+    5082:	11 2d       	mov	r17, r1
+    5084:	ae 0c       	add	r10, r14
+    5086:	bf 1c       	adc	r11, r15
+    5088:	c0 1e       	adc	r12, r16
+    508a:	d1 1e       	adc	r13, r17
+    508c:	ca 01       	movw	r24, r20
+    508e:	aa 27       	eor	r26, r26
+    5090:	bb 27       	eor	r27, r27
+    5092:	bc 01       	movw	r22, r24
+    5094:	cd 01       	movw	r24, r26
+    5096:	6a 0d       	add	r22, r10
+    5098:	7b 1d       	adc	r23, r11
+    509a:	8c 1d       	adc	r24, r12
+    509c:	9d 1d       	adc	r25, r13
+    509e:	69 a4       	ldd	r6, Y+41	; 0x29
+    50a0:	7a a4       	ldd	r7, Y+42	; 0x2a
+    50a2:	8b a4       	ldd	r8, Y+43	; 0x2b
+    50a4:	9c a4       	ldd	r9, Y+44	; 0x2c
+    50a6:	66 16       	cp	r6, r22
+    50a8:	77 06       	cpc	r7, r23
+    50aa:	88 06       	cpc	r8, r24
+    50ac:	99 06       	cpc	r9, r25
+    50ae:	50 f1       	brcs	.+84     	; 0x5104 <__divdi3+0xeea>
+    50b0:	66 15       	cp	r22, r6
+    50b2:	77 05       	cpc	r23, r7
+    50b4:	88 05       	cpc	r24, r8
+    50b6:	99 05       	cpc	r25, r9
+    50b8:	09 f0       	breq	.+2      	; 0x50bc <__divdi3+0xea2>
+    50ba:	4d c0       	rjmp	.+154    	; 0x5156 <__divdi3+0xf3c>
+    50bc:	d9 01       	movw	r26, r18
+    50be:	99 27       	eor	r25, r25
+    50c0:	88 27       	eor	r24, r24
+    50c2:	a9 96       	adiw	r28, 0x29	; 41
+    50c4:	2c ad       	ldd	r18, Y+60	; 0x3c
+    50c6:	3d ad       	ldd	r19, Y+61	; 0x3d
+    50c8:	4e ad       	ldd	r20, Y+62	; 0x3e
+    50ca:	5f ad       	ldd	r21, Y+63	; 0x3f
+    50cc:	a9 97       	sbiw	r28, 0x29	; 41
+    50ce:	40 70       	andi	r20, 0x00	; 0
+    50d0:	50 70       	andi	r21, 0x00	; 0
+    50d2:	82 0f       	add	r24, r18
+    50d4:	93 1f       	adc	r25, r19
+    50d6:	a4 1f       	adc	r26, r20
+    50d8:	b5 1f       	adc	r27, r21
+    50da:	21 96       	adiw	r28, 0x01	; 1
+    50dc:	2c ad       	ldd	r18, Y+60	; 0x3c
+    50de:	3d ad       	ldd	r19, Y+61	; 0x3d
+    50e0:	4e ad       	ldd	r20, Y+62	; 0x3e
+    50e2:	5f ad       	ldd	r21, Y+63	; 0x3f
+    50e4:	21 97       	sbiw	r28, 0x01	; 1
+    50e6:	e2 96       	adiw	r28, 0x32	; 50
+    50e8:	0f ac       	ldd	r0, Y+63	; 0x3f
+    50ea:	e2 97       	sbiw	r28, 0x32	; 50
+    50ec:	04 c0       	rjmp	.+8      	; 0x50f6 <__divdi3+0xedc>
+    50ee:	22 0f       	add	r18, r18
+    50f0:	33 1f       	adc	r19, r19
+    50f2:	44 1f       	adc	r20, r20
+    50f4:	55 1f       	adc	r21, r21
+    50f6:	0a 94       	dec	r0
+    50f8:	d2 f7       	brpl	.-12     	; 0x50ee <__divdi3+0xed4>
+    50fa:	28 17       	cp	r18, r24
+    50fc:	39 07       	cpc	r19, r25
+    50fe:	4a 07       	cpc	r20, r26
+    5100:	5b 07       	cpc	r21, r27
+    5102:	48 f5       	brcc	.+82     	; 0x5156 <__divdi3+0xf3c>
+    5104:	25 96       	adiw	r28, 0x05	; 5
+    5106:	0c ad       	ldd	r16, Y+60	; 0x3c
+    5108:	1d ad       	ldd	r17, Y+61	; 0x3d
+    510a:	2e ad       	ldd	r18, Y+62	; 0x3e
+    510c:	3f ad       	ldd	r19, Y+63	; 0x3f
+    510e:	25 97       	sbiw	r28, 0x05	; 5
+    5110:	01 50       	subi	r16, 0x01	; 1
+    5112:	10 40       	sbci	r17, 0x00	; 0
+    5114:	20 40       	sbci	r18, 0x00	; 0
+    5116:	30 40       	sbci	r19, 0x00	; 0
+    5118:	25 96       	adiw	r28, 0x05	; 5
+    511a:	0c af       	std	Y+60, r16	; 0x3c
+    511c:	1d af       	std	Y+61, r17	; 0x3d
+    511e:	2e af       	std	Y+62, r18	; 0x3e
+    5120:	3f af       	std	Y+63, r19	; 0x3f
+    5122:	25 97       	sbiw	r28, 0x05	; 5
+    5124:	18 c0       	rjmp	.+48     	; 0x5156 <__divdi3+0xf3c>
+    5126:	66 24       	eor	r6, r6
+    5128:	77 24       	eor	r7, r7
+    512a:	43 01       	movw	r8, r6
+    512c:	21 e0       	ldi	r18, 0x01	; 1
+    512e:	30 e0       	ldi	r19, 0x00	; 0
+    5130:	40 e0       	ldi	r20, 0x00	; 0
+    5132:	50 e0       	ldi	r21, 0x00	; 0
+    5134:	25 96       	adiw	r28, 0x05	; 5
+    5136:	2c af       	std	Y+60, r18	; 0x3c
+    5138:	3d af       	std	Y+61, r19	; 0x3d
+    513a:	4e af       	std	Y+62, r20	; 0x3e
+    513c:	5f af       	std	Y+63, r21	; 0x3f
+    513e:	25 97       	sbiw	r28, 0x05	; 5
+    5140:	0d c0       	rjmp	.+26     	; 0x515c <__divdi3+0xf42>
+    5142:	66 24       	eor	r6, r6
+    5144:	77 24       	eor	r7, r7
+    5146:	43 01       	movw	r8, r6
+    5148:	25 96       	adiw	r28, 0x05	; 5
+    514a:	1c ae       	std	Y+60, r1	; 0x3c
+    514c:	1d ae       	std	Y+61, r1	; 0x3d
+    514e:	1e ae       	std	Y+62, r1	; 0x3e
+    5150:	1f ae       	std	Y+63, r1	; 0x3f
+    5152:	25 97       	sbiw	r28, 0x05	; 5
+    5154:	03 c0       	rjmp	.+6      	; 0x515c <__divdi3+0xf42>
+    5156:	66 24       	eor	r6, r6
+    5158:	77 24       	eor	r7, r7
+    515a:	43 01       	movw	r8, r6
+    515c:	fe 01       	movw	r30, r28
+    515e:	b1 96       	adiw	r30, 0x21	; 33
+    5160:	88 e0       	ldi	r24, 0x08	; 8
+    5162:	df 01       	movw	r26, r30
+    5164:	1d 92       	st	X+, r1
+    5166:	8a 95       	dec	r24
+    5168:	e9 f7       	brne	.-6      	; 0x5164 <__divdi3+0xf4a>
+    516a:	25 96       	adiw	r28, 0x05	; 5
+    516c:	ac ac       	ldd	r10, Y+60	; 0x3c
+    516e:	bd ac       	ldd	r11, Y+61	; 0x3d
+    5170:	ce ac       	ldd	r12, Y+62	; 0x3e
+    5172:	df ac       	ldd	r13, Y+63	; 0x3f
+    5174:	25 97       	sbiw	r28, 0x05	; 5
+    5176:	a9 a2       	std	Y+33, r10	; 0x21
+    5178:	ba a2       	std	Y+34, r11	; 0x22
+    517a:	cb a2       	std	Y+35, r12	; 0x23
+    517c:	dc a2       	std	Y+36, r13	; 0x24
+    517e:	6d a2       	std	Y+37, r6	; 0x25
+    5180:	7e a2       	std	Y+38, r7	; 0x26
+    5182:	8f a2       	std	Y+39, r8	; 0x27
+    5184:	98 a6       	std	Y+40, r9	; 0x28
+    5186:	22 96       	adiw	r28, 0x02	; 2
+    5188:	2f ad       	ldd	r18, Y+63	; 0x3f
+    518a:	22 97       	sbiw	r28, 0x02	; 2
+    518c:	3a a1       	ldd	r19, Y+34	; 0x22
+    518e:	4b a1       	ldd	r20, Y+35	; 0x23
+    5190:	5c a1       	ldd	r21, Y+36	; 0x24
+    5192:	66 2d       	mov	r22, r6
+    5194:	7e a1       	ldd	r23, Y+38	; 0x26
+    5196:	df a0       	ldd	r13, Y+39	; 0x27
+    5198:	98 a5       	ldd	r25, Y+40	; 0x28
+    519a:	e1 96       	adiw	r28, 0x31	; 49
+    519c:	ec ac       	ldd	r14, Y+60	; 0x3c
+    519e:	fd ac       	ldd	r15, Y+61	; 0x3d
+    51a0:	0e ad       	ldd	r16, Y+62	; 0x3e
+    51a2:	1f ad       	ldd	r17, Y+63	; 0x3f
+    51a4:	e1 97       	sbiw	r28, 0x31	; 49
+    51a6:	e1 14       	cp	r14, r1
+    51a8:	f1 04       	cpc	r15, r1
+    51aa:	01 05       	cpc	r16, r1
+    51ac:	11 05       	cpc	r17, r1
+    51ae:	09 f4       	brne	.+2      	; 0x51b2 <__divdi3+0xf98>
+    51b0:	56 c0       	rjmp	.+172    	; 0x525e <__divdi3+0x1044>
+    51b2:	21 95       	neg	r18
+    51b4:	81 e0       	ldi	r24, 0x01	; 1
+    51b6:	12 16       	cp	r1, r18
+    51b8:	08 f0       	brcs	.+2      	; 0x51bc <__divdi3+0xfa2>
+    51ba:	80 e0       	ldi	r24, 0x00	; 0
+    51bc:	31 95       	neg	r19
+    51be:	e1 e0       	ldi	r30, 0x01	; 1
+    51c0:	13 16       	cp	r1, r19
+    51c2:	08 f0       	brcs	.+2      	; 0x51c6 <__divdi3+0xfac>
+    51c4:	e0 e0       	ldi	r30, 0x00	; 0
+    51c6:	93 2e       	mov	r9, r19
+    51c8:	98 1a       	sub	r9, r24
+    51ca:	81 e0       	ldi	r24, 0x01	; 1
+    51cc:	39 15       	cp	r19, r9
+    51ce:	08 f0       	brcs	.+2      	; 0x51d2 <__divdi3+0xfb8>
+    51d0:	80 e0       	ldi	r24, 0x00	; 0
+    51d2:	e8 2b       	or	r30, r24
+    51d4:	41 95       	neg	r20
+    51d6:	f1 e0       	ldi	r31, 0x01	; 1
+    51d8:	14 16       	cp	r1, r20
+    51da:	08 f0       	brcs	.+2      	; 0x51de <__divdi3+0xfc4>
+    51dc:	f0 e0       	ldi	r31, 0x00	; 0
+    51de:	a4 2e       	mov	r10, r20
+    51e0:	ae 1a       	sub	r10, r30
+    51e2:	81 e0       	ldi	r24, 0x01	; 1
+    51e4:	4a 15       	cp	r20, r10
+    51e6:	08 f0       	brcs	.+2      	; 0x51ea <__divdi3+0xfd0>
+    51e8:	80 e0       	ldi	r24, 0x00	; 0
+    51ea:	f8 2b       	or	r31, r24
+    51ec:	51 95       	neg	r21
+    51ee:	e1 e0       	ldi	r30, 0x01	; 1
+    51f0:	15 16       	cp	r1, r21
+    51f2:	08 f0       	brcs	.+2      	; 0x51f6 <__divdi3+0xfdc>
+    51f4:	e0 e0       	ldi	r30, 0x00	; 0
+    51f6:	b5 2e       	mov	r11, r21
+    51f8:	bf 1a       	sub	r11, r31
+    51fa:	81 e0       	ldi	r24, 0x01	; 1
+    51fc:	5b 15       	cp	r21, r11
+    51fe:	08 f0       	brcs	.+2      	; 0x5202 <__divdi3+0xfe8>
+    5200:	80 e0       	ldi	r24, 0x00	; 0
+    5202:	e8 2b       	or	r30, r24
+    5204:	61 95       	neg	r22
+    5206:	f1 e0       	ldi	r31, 0x01	; 1
+    5208:	16 16       	cp	r1, r22
+    520a:	08 f0       	brcs	.+2      	; 0x520e <__divdi3+0xff4>
+    520c:	f0 e0       	ldi	r31, 0x00	; 0
+    520e:	a6 2f       	mov	r26, r22
+    5210:	ae 1b       	sub	r26, r30
+    5212:	81 e0       	ldi	r24, 0x01	; 1
+    5214:	6a 17       	cp	r22, r26
+    5216:	08 f0       	brcs	.+2      	; 0x521a <__divdi3+0x1000>
+    5218:	80 e0       	ldi	r24, 0x00	; 0
+    521a:	f8 2b       	or	r31, r24
+    521c:	71 95       	neg	r23
+    521e:	e1 e0       	ldi	r30, 0x01	; 1
+    5220:	17 16       	cp	r1, r23
+    5222:	08 f0       	brcs	.+2      	; 0x5226 <__divdi3+0x100c>
+    5224:	e0 e0       	ldi	r30, 0x00	; 0
+    5226:	c7 2e       	mov	r12, r23
+    5228:	cf 1a       	sub	r12, r31
+    522a:	81 e0       	ldi	r24, 0x01	; 1
+    522c:	7c 15       	cp	r23, r12
+    522e:	08 f0       	brcs	.+2      	; 0x5232 <__divdi3+0x1018>
+    5230:	80 e0       	ldi	r24, 0x00	; 0
+    5232:	e8 2b       	or	r30, r24
+    5234:	8d 2d       	mov	r24, r13
+    5236:	81 95       	neg	r24
+    5238:	f1 e0       	ldi	r31, 0x01	; 1
+    523a:	18 16       	cp	r1, r24
+    523c:	08 f0       	brcs	.+2      	; 0x5240 <__divdi3+0x1026>
+    523e:	f0 e0       	ldi	r31, 0x00	; 0
+    5240:	d8 2e       	mov	r13, r24
+    5242:	de 1a       	sub	r13, r30
+    5244:	e1 e0       	ldi	r30, 0x01	; 1
+    5246:	8d 15       	cp	r24, r13
+    5248:	08 f0       	brcs	.+2      	; 0x524c <__divdi3+0x1032>
+    524a:	e0 e0       	ldi	r30, 0x00	; 0
+    524c:	fe 2b       	or	r31, r30
+    524e:	89 2f       	mov	r24, r25
+    5250:	81 95       	neg	r24
+    5252:	39 2d       	mov	r19, r9
+    5254:	a5 01       	movw	r20, r10
+    5256:	6a 2f       	mov	r22, r26
+    5258:	7c 2d       	mov	r23, r12
+    525a:	98 2f       	mov	r25, r24
+    525c:	9f 1b       	sub	r25, r31
+    525e:	8d 2d       	mov	r24, r13
+    5260:	ce 58       	subi	r28, 0x8E	; 142
+    5262:	df 4f       	sbci	r29, 0xFF	; 255
+    5264:	e2 e1       	ldi	r30, 0x12	; 18
+    5266:	0c 94 11 32 	jmp	0x6422	; 0x6422 <__epilogue_restores__>
+
+0000526a <__moddi3>:
+    526a:	a7 e7       	ldi	r26, 0x77	; 119
+    526c:	b0 e0       	ldi	r27, 0x00	; 0
+    526e:	eb e3       	ldi	r30, 0x3B	; 59
+    5270:	f9 e2       	ldi	r31, 0x29	; 41
+    5272:	0c 94 f5 31 	jmp	0x63ea	; 0x63ea <__prologue_saves__>
+    5276:	98 2e       	mov	r9, r24
+    5278:	89 2e       	mov	r8, r25
+    527a:	71 2e       	mov	r7, r17
+    527c:	88 e0       	ldi	r24, 0x08	; 8
+    527e:	fe 01       	movw	r30, r28
+    5280:	31 96       	adiw	r30, 0x01	; 1
+    5282:	df 01       	movw	r26, r30
+    5284:	68 2e       	mov	r6, r24
+    5286:	1d 92       	st	X+, r1
+    5288:	6a 94       	dec	r6
+    528a:	e9 f7       	brne	.-6      	; 0x5286 <__moddi3+0x1c>
+    528c:	29 83       	std	Y+1, r18	; 0x01
+    528e:	3a 83       	std	Y+2, r19	; 0x02
+    5290:	4b 83       	std	Y+3, r20	; 0x03
+    5292:	5c 83       	std	Y+4, r21	; 0x04
+    5294:	6d 83       	std	Y+5, r22	; 0x05
+    5296:	7e 83       	std	Y+6, r23	; 0x06
+    5298:	9f 82       	std	Y+7, r9	; 0x07
+    529a:	98 87       	std	Y+8, r25	; 0x08
+    529c:	fe 01       	movw	r30, r28
+    529e:	39 96       	adiw	r30, 0x09	; 9
+    52a0:	df 01       	movw	r26, r30
+    52a2:	1d 92       	st	X+, r1
+    52a4:	8a 95       	dec	r24
+    52a6:	e9 f7       	brne	.-6      	; 0x52a2 <__moddi3+0x38>
+    52a8:	a9 86       	std	Y+9, r10	; 0x09
+    52aa:	ba 86       	std	Y+10, r11	; 0x0a
+    52ac:	cb 86       	std	Y+11, r12	; 0x0b
+    52ae:	dc 86       	std	Y+12, r13	; 0x0c
+    52b0:	ed 86       	std	Y+13, r14	; 0x0d
+    52b2:	fe 86       	std	Y+14, r15	; 0x0e
+    52b4:	0f 87       	std	Y+15, r16	; 0x0f
+    52b6:	18 8b       	std	Y+16, r17	; 0x10
+    52b8:	8d 81       	ldd	r24, Y+5	; 0x05
+    52ba:	9e 81       	ldd	r25, Y+6	; 0x06
+    52bc:	af 81       	ldd	r26, Y+7	; 0x07
+    52be:	b8 85       	ldd	r27, Y+8	; 0x08
+    52c0:	b7 fd       	sbrc	r27, 7
+    52c2:	07 c0       	rjmp	.+14     	; 0x52d2 <__moddi3+0x68>
+    52c4:	e1 96       	adiw	r28, 0x31	; 49
+    52c6:	1c ae       	std	Y+60, r1	; 0x3c
+    52c8:	1d ae       	std	Y+61, r1	; 0x3d
+    52ca:	1e ae       	std	Y+62, r1	; 0x3e
+    52cc:	1f ae       	std	Y+63, r1	; 0x3f
+    52ce:	e1 97       	sbiw	r28, 0x31	; 49
+    52d0:	64 c0       	rjmp	.+200    	; 0x539a <__moddi3+0x130>
+    52d2:	21 95       	neg	r18
+    52d4:	81 e0       	ldi	r24, 0x01	; 1
+    52d6:	12 16       	cp	r1, r18
+    52d8:	08 f0       	brcs	.+2      	; 0x52dc <__moddi3+0x72>
+    52da:	80 e0       	ldi	r24, 0x00	; 0
+    52dc:	31 95       	neg	r19
+    52de:	91 e0       	ldi	r25, 0x01	; 1
+    52e0:	13 16       	cp	r1, r19
+    52e2:	08 f0       	brcs	.+2      	; 0x52e6 <__moddi3+0x7c>
+    52e4:	90 e0       	ldi	r25, 0x00	; 0
+    52e6:	b3 2f       	mov	r27, r19
+    52e8:	b8 1b       	sub	r27, r24
+    52ea:	81 e0       	ldi	r24, 0x01	; 1
+    52ec:	3b 17       	cp	r19, r27
+    52ee:	08 f0       	brcs	.+2      	; 0x52f2 <__moddi3+0x88>
+    52f0:	80 e0       	ldi	r24, 0x00	; 0
+    52f2:	98 2b       	or	r25, r24
+    52f4:	41 95       	neg	r20
+    52f6:	31 e0       	ldi	r19, 0x01	; 1
+    52f8:	14 16       	cp	r1, r20
+    52fa:	08 f0       	brcs	.+2      	; 0x52fe <__moddi3+0x94>
+    52fc:	30 e0       	ldi	r19, 0x00	; 0
+    52fe:	a4 2f       	mov	r26, r20
+    5300:	a9 1b       	sub	r26, r25
+    5302:	81 e0       	ldi	r24, 0x01	; 1
+    5304:	4a 17       	cp	r20, r26
+    5306:	08 f0       	brcs	.+2      	; 0x530a <__moddi3+0xa0>
+    5308:	80 e0       	ldi	r24, 0x00	; 0
+    530a:	38 2b       	or	r19, r24
+    530c:	51 95       	neg	r21
+    530e:	91 e0       	ldi	r25, 0x01	; 1
+    5310:	15 16       	cp	r1, r21
+    5312:	08 f0       	brcs	.+2      	; 0x5316 <__moddi3+0xac>
+    5314:	90 e0       	ldi	r25, 0x00	; 0
+    5316:	f5 2f       	mov	r31, r21
+    5318:	f3 1b       	sub	r31, r19
+    531a:	81 e0       	ldi	r24, 0x01	; 1
+    531c:	5f 17       	cp	r21, r31
+    531e:	08 f0       	brcs	.+2      	; 0x5322 <__moddi3+0xb8>
+    5320:	80 e0       	ldi	r24, 0x00	; 0
+    5322:	98 2b       	or	r25, r24
+    5324:	61 95       	neg	r22
+    5326:	31 e0       	ldi	r19, 0x01	; 1
+    5328:	16 16       	cp	r1, r22
+    532a:	08 f0       	brcs	.+2      	; 0x532e <__moddi3+0xc4>
+    532c:	30 e0       	ldi	r19, 0x00	; 0
+    532e:	e6 2f       	mov	r30, r22
+    5330:	e9 1b       	sub	r30, r25
+    5332:	81 e0       	ldi	r24, 0x01	; 1
+    5334:	6e 17       	cp	r22, r30
+    5336:	08 f0       	brcs	.+2      	; 0x533a <__moddi3+0xd0>
+    5338:	80 e0       	ldi	r24, 0x00	; 0
+    533a:	38 2b       	or	r19, r24
+    533c:	71 95       	neg	r23
+    533e:	41 e0       	ldi	r20, 0x01	; 1
+    5340:	17 16       	cp	r1, r23
+    5342:	08 f0       	brcs	.+2      	; 0x5346 <__moddi3+0xdc>
+    5344:	40 e0       	ldi	r20, 0x00	; 0
+    5346:	57 2f       	mov	r21, r23
+    5348:	53 1b       	sub	r21, r19
+    534a:	81 e0       	ldi	r24, 0x01	; 1
+    534c:	75 17       	cp	r23, r21
+    534e:	08 f0       	brcs	.+2      	; 0x5352 <__moddi3+0xe8>
+    5350:	80 e0       	ldi	r24, 0x00	; 0
+    5352:	48 2b       	or	r20, r24
+    5354:	89 2d       	mov	r24, r9
+    5356:	81 95       	neg	r24
+    5358:	91 e0       	ldi	r25, 0x01	; 1
+    535a:	18 16       	cp	r1, r24
+    535c:	08 f0       	brcs	.+2      	; 0x5360 <__moddi3+0xf6>
+    535e:	90 e0       	ldi	r25, 0x00	; 0
+    5360:	68 2e       	mov	r6, r24
+    5362:	64 1a       	sub	r6, r20
+    5364:	46 2d       	mov	r20, r6
+    5366:	31 e0       	ldi	r19, 0x01	; 1
+    5368:	86 15       	cp	r24, r6
+    536a:	08 f0       	brcs	.+2      	; 0x536e <__moddi3+0x104>
+    536c:	30 e0       	ldi	r19, 0x00	; 0
+    536e:	93 2b       	or	r25, r19
+    5370:	88 2d       	mov	r24, r8
+    5372:	81 95       	neg	r24
+    5374:	89 1b       	sub	r24, r25
+    5376:	29 83       	std	Y+1, r18	; 0x01
+    5378:	ba 83       	std	Y+2, r27	; 0x02
+    537a:	ab 83       	std	Y+3, r26	; 0x03
+    537c:	fc 83       	std	Y+4, r31	; 0x04
+    537e:	ed 83       	std	Y+5, r30	; 0x05
+    5380:	5e 83       	std	Y+6, r21	; 0x06
+    5382:	4f 83       	std	Y+7, r20	; 0x07
+    5384:	88 87       	std	Y+8, r24	; 0x08
+    5386:	2f ef       	ldi	r18, 0xFF	; 255
+    5388:	3f ef       	ldi	r19, 0xFF	; 255
+    538a:	4f ef       	ldi	r20, 0xFF	; 255
+    538c:	5f ef       	ldi	r21, 0xFF	; 255
+    538e:	e1 96       	adiw	r28, 0x31	; 49
+    5390:	2c af       	std	Y+60, r18	; 0x3c
+    5392:	3d af       	std	Y+61, r19	; 0x3d
+    5394:	4e af       	std	Y+62, r20	; 0x3e
+    5396:	5f af       	std	Y+63, r21	; 0x3f
+    5398:	e1 97       	sbiw	r28, 0x31	; 49
+    539a:	8d 85       	ldd	r24, Y+13	; 0x0d
+    539c:	9e 85       	ldd	r25, Y+14	; 0x0e
+    539e:	af 85       	ldd	r26, Y+15	; 0x0f
+    53a0:	b8 89       	ldd	r27, Y+16	; 0x10
+    53a2:	b7 ff       	sbrs	r27, 7
+    53a4:	5a c0       	rjmp	.+180    	; 0x545a <__moddi3+0x1f0>
+    53a6:	a1 94       	neg	r10
+    53a8:	81 e0       	ldi	r24, 0x01	; 1
+    53aa:	1a 14       	cp	r1, r10
+    53ac:	08 f0       	brcs	.+2      	; 0x53b0 <__moddi3+0x146>
+    53ae:	80 e0       	ldi	r24, 0x00	; 0
+    53b0:	b1 94       	neg	r11
+    53b2:	91 e0       	ldi	r25, 0x01	; 1
+    53b4:	1b 14       	cp	r1, r11
+    53b6:	08 f0       	brcs	.+2      	; 0x53ba <__moddi3+0x150>
+    53b8:	90 e0       	ldi	r25, 0x00	; 0
+    53ba:	6b 2d       	mov	r22, r11
+    53bc:	68 1b       	sub	r22, r24
+    53be:	81 e0       	ldi	r24, 0x01	; 1
+    53c0:	b6 16       	cp	r11, r22
+    53c2:	08 f0       	brcs	.+2      	; 0x53c6 <__moddi3+0x15c>
+    53c4:	80 e0       	ldi	r24, 0x00	; 0
+    53c6:	98 2b       	or	r25, r24
+    53c8:	c1 94       	neg	r12
+    53ca:	21 e0       	ldi	r18, 0x01	; 1
+    53cc:	1c 14       	cp	r1, r12
+    53ce:	08 f0       	brcs	.+2      	; 0x53d2 <__moddi3+0x168>
+    53d0:	20 e0       	ldi	r18, 0x00	; 0
+    53d2:	5c 2d       	mov	r21, r12
+    53d4:	59 1b       	sub	r21, r25
+    53d6:	81 e0       	ldi	r24, 0x01	; 1
+    53d8:	c5 16       	cp	r12, r21
+    53da:	08 f0       	brcs	.+2      	; 0x53de <__moddi3+0x174>
+    53dc:	80 e0       	ldi	r24, 0x00	; 0
+    53de:	28 2b       	or	r18, r24
+    53e0:	d1 94       	neg	r13
+    53e2:	91 e0       	ldi	r25, 0x01	; 1
+    53e4:	1d 14       	cp	r1, r13
+    53e6:	08 f0       	brcs	.+2      	; 0x53ea <__moddi3+0x180>
+    53e8:	90 e0       	ldi	r25, 0x00	; 0
+    53ea:	4d 2d       	mov	r20, r13
+    53ec:	42 1b       	sub	r20, r18
+    53ee:	81 e0       	ldi	r24, 0x01	; 1
+    53f0:	d4 16       	cp	r13, r20
+    53f2:	08 f0       	brcs	.+2      	; 0x53f6 <__moddi3+0x18c>
+    53f4:	80 e0       	ldi	r24, 0x00	; 0
+    53f6:	98 2b       	or	r25, r24
+    53f8:	e1 94       	neg	r14
+    53fa:	21 e0       	ldi	r18, 0x01	; 1
+    53fc:	1e 14       	cp	r1, r14
+    53fe:	08 f0       	brcs	.+2      	; 0x5402 <__moddi3+0x198>
+    5400:	20 e0       	ldi	r18, 0x00	; 0
+    5402:	3e 2d       	mov	r19, r14
+    5404:	39 1b       	sub	r19, r25
+    5406:	81 e0       	ldi	r24, 0x01	; 1
+    5408:	e3 16       	cp	r14, r19
+    540a:	08 f0       	brcs	.+2      	; 0x540e <__moddi3+0x1a4>
+    540c:	80 e0       	ldi	r24, 0x00	; 0
+    540e:	28 2b       	or	r18, r24
+    5410:	f1 94       	neg	r15
+    5412:	91 e0       	ldi	r25, 0x01	; 1
+    5414:	1f 14       	cp	r1, r15
+    5416:	08 f0       	brcs	.+2      	; 0x541a <__moddi3+0x1b0>
+    5418:	90 e0       	ldi	r25, 0x00	; 0
+    541a:	7f 2d       	mov	r23, r15
+    541c:	72 1b       	sub	r23, r18
+    541e:	27 2f       	mov	r18, r23
+    5420:	81 e0       	ldi	r24, 0x01	; 1
+    5422:	f7 16       	cp	r15, r23
+    5424:	08 f0       	brcs	.+2      	; 0x5428 <__moddi3+0x1be>
+    5426:	80 e0       	ldi	r24, 0x00	; 0
+    5428:	98 2b       	or	r25, r24
+    542a:	01 95       	neg	r16
+    542c:	11 e0       	ldi	r17, 0x01	; 1
+    542e:	10 16       	cp	r1, r16
+    5430:	08 f0       	brcs	.+2      	; 0x5434 <__moddi3+0x1ca>
+    5432:	10 e0       	ldi	r17, 0x00	; 0
+    5434:	80 2f       	mov	r24, r16
+    5436:	89 1b       	sub	r24, r25
+    5438:	98 2f       	mov	r25, r24
+    543a:	81 e0       	ldi	r24, 0x01	; 1
+    543c:	09 17       	cp	r16, r25
+    543e:	08 f0       	brcs	.+2      	; 0x5442 <__moddi3+0x1d8>
+    5440:	80 e0       	ldi	r24, 0x00	; 0
+    5442:	18 2b       	or	r17, r24
+    5444:	87 2d       	mov	r24, r7
+    5446:	81 95       	neg	r24
+    5448:	81 1b       	sub	r24, r17
+    544a:	a9 86       	std	Y+9, r10	; 0x09
+    544c:	6a 87       	std	Y+10, r22	; 0x0a
+    544e:	5b 87       	std	Y+11, r21	; 0x0b
+    5450:	4c 87       	std	Y+12, r20	; 0x0c
+    5452:	3d 87       	std	Y+13, r19	; 0x0d
+    5454:	2e 87       	std	Y+14, r18	; 0x0e
+    5456:	9f 87       	std	Y+15, r25	; 0x0f
+    5458:	88 8b       	std	Y+16, r24	; 0x10
+    545a:	99 81       	ldd	r25, Y+1	; 0x01
+    545c:	2a 81       	ldd	r18, Y+2	; 0x02
+    545e:	3b 81       	ldd	r19, Y+3	; 0x03
+    5460:	4c 81       	ldd	r20, Y+4	; 0x04
+    5462:	5d 81       	ldd	r21, Y+5	; 0x05
+    5464:	6e 81       	ldd	r22, Y+6	; 0x06
+    5466:	7f 81       	ldd	r23, Y+7	; 0x07
+    5468:	a8 85       	ldd	r26, Y+8	; 0x08
+    546a:	b9 85       	ldd	r27, Y+9	; 0x09
+    546c:	1a 85       	ldd	r17, Y+10	; 0x0a
+    546e:	0b 85       	ldd	r16, Y+11	; 0x0b
+    5470:	fc 84       	ldd	r15, Y+12	; 0x0c
+    5472:	ed 84       	ldd	r14, Y+13	; 0x0d
+    5474:	de 84       	ldd	r13, Y+14	; 0x0e
+    5476:	cf 84       	ldd	r12, Y+15	; 0x0f
+    5478:	b8 88       	ldd	r11, Y+16	; 0x10
+    547a:	88 e0       	ldi	r24, 0x08	; 8
+    547c:	e9 e1       	ldi	r30, 0x19	; 25
+    547e:	8e 2e       	mov	r8, r30
+    5480:	91 2c       	mov	r9, r1
+    5482:	8c 0e       	add	r8, r28
+    5484:	9d 1e       	adc	r9, r29
+    5486:	f4 01       	movw	r30, r8
+    5488:	68 2e       	mov	r6, r24
+    548a:	11 92       	st	Z+, r1
+    548c:	6a 94       	dec	r6
+    548e:	e9 f7       	brne	.-6      	; 0x548a <__moddi3+0x220>
+    5490:	99 8f       	std	Y+25, r25	; 0x19
+    5492:	2a 8f       	std	Y+26, r18	; 0x1a
+    5494:	3b 8f       	std	Y+27, r19	; 0x1b
+    5496:	4c 8f       	std	Y+28, r20	; 0x1c
+    5498:	5d 8f       	std	Y+29, r21	; 0x1d
+    549a:	6e 8f       	std	Y+30, r22	; 0x1e
+    549c:	7f 8f       	std	Y+31, r23	; 0x1f
+    549e:	a8 a3       	std	Y+32, r26	; 0x20
+    54a0:	9e 01       	movw	r18, r28
+    54a2:	2f 5d       	subi	r18, 0xDF	; 223
+    54a4:	3f 4f       	sbci	r19, 0xFF	; 255
+    54a6:	f9 01       	movw	r30, r18
+    54a8:	11 92       	st	Z+, r1
+    54aa:	8a 95       	dec	r24
+    54ac:	e9 f7       	brne	.-6      	; 0x54a8 <__moddi3+0x23e>
+    54ae:	b9 a3       	std	Y+33, r27	; 0x21
+    54b0:	1a a3       	std	Y+34, r17	; 0x22
+    54b2:	0b a3       	std	Y+35, r16	; 0x23
+    54b4:	fc a2       	std	Y+36, r15	; 0x24
+    54b6:	ed a2       	std	Y+37, r14	; 0x25
+    54b8:	de a2       	std	Y+38, r13	; 0x26
+    54ba:	cf a2       	std	Y+39, r12	; 0x27
+    54bc:	b8 a6       	std	Y+40, r11	; 0x28
+    54be:	29 a0       	ldd	r2, Y+33	; 0x21
+    54c0:	3a a0       	ldd	r3, Y+34	; 0x22
+    54c2:	4b a0       	ldd	r4, Y+35	; 0x23
+    54c4:	5c a0       	ldd	r5, Y+36	; 0x24
+    54c6:	ad a0       	ldd	r10, Y+37	; 0x25
+    54c8:	be a0       	ldd	r11, Y+38	; 0x26
+    54ca:	cf a0       	ldd	r12, Y+39	; 0x27
+    54cc:	d8 a4       	ldd	r13, Y+40	; 0x28
+    54ce:	49 8d       	ldd	r20, Y+25	; 0x19
+    54d0:	5a 8d       	ldd	r21, Y+26	; 0x1a
+    54d2:	6b 8d       	ldd	r22, Y+27	; 0x1b
+    54d4:	7c 8d       	ldd	r23, Y+28	; 0x1c
+    54d6:	e5 96       	adiw	r28, 0x35	; 53
+    54d8:	4f af       	std	Y+63, r20	; 0x3f
+    54da:	e5 97       	sbiw	r28, 0x35	; 53
+    54dc:	e6 96       	adiw	r28, 0x36	; 54
+    54de:	5f af       	std	Y+63, r21	; 0x3f
+    54e0:	e6 97       	sbiw	r28, 0x36	; 54
+    54e2:	e7 96       	adiw	r28, 0x37	; 55
+    54e4:	6f af       	std	Y+63, r22	; 0x3f
+    54e6:	e7 97       	sbiw	r28, 0x37	; 55
+    54e8:	e8 96       	adiw	r28, 0x38	; 56
+    54ea:	7f af       	std	Y+63, r23	; 0x3f
+    54ec:	e8 97       	sbiw	r28, 0x38	; 56
+    54ee:	e8 96       	adiw	r28, 0x38	; 56
+    54f0:	6c ac       	ldd	r6, Y+60	; 0x3c
+    54f2:	7d ac       	ldd	r7, Y+61	; 0x3d
+    54f4:	8e ac       	ldd	r8, Y+62	; 0x3e
+    54f6:	9f ac       	ldd	r9, Y+63	; 0x3f
+    54f8:	e8 97       	sbiw	r28, 0x38	; 56
+    54fa:	2d 96       	adiw	r28, 0x0d	; 13
+    54fc:	6c ae       	std	Y+60, r6	; 0x3c
+    54fe:	7d ae       	std	Y+61, r7	; 0x3d
+    5500:	8e ae       	std	Y+62, r8	; 0x3e
+    5502:	9f ae       	std	Y+63, r9	; 0x3f
+    5504:	2d 97       	sbiw	r28, 0x0d	; 13
+    5506:	8d 8d       	ldd	r24, Y+29	; 0x1d
+    5508:	9e 8d       	ldd	r25, Y+30	; 0x1e
+    550a:	2f 8d       	ldd	r18, Y+31	; 0x1f
+    550c:	38 a1       	ldd	r19, Y+32	; 0x20
+    550e:	3c 01       	movw	r6, r24
+    5510:	49 01       	movw	r8, r18
+    5512:	61 96       	adiw	r28, 0x11	; 17
+    5514:	6c ae       	std	Y+60, r6	; 0x3c
+    5516:	7d ae       	std	Y+61, r7	; 0x3d
+    5518:	8e ae       	std	Y+62, r8	; 0x3e
+    551a:	9f ae       	std	Y+63, r9	; 0x3f
+    551c:	61 97       	sbiw	r28, 0x11	; 17
+    551e:	a1 14       	cp	r10, r1
+    5520:	b1 04       	cpc	r11, r1
+    5522:	c1 04       	cpc	r12, r1
+    5524:	d1 04       	cpc	r13, r1
+    5526:	09 f0       	breq	.+2      	; 0x552a <__moddi3+0x2c0>
+    5528:	28 c3       	rjmp	.+1616   	; 0x5b7a <__moddi3+0x910>
+    552a:	62 14       	cp	r6, r2
+    552c:	73 04       	cpc	r7, r3
+    552e:	84 04       	cpc	r8, r4
+    5530:	95 04       	cpc	r9, r5
+    5532:	08 f0       	brcs	.+2      	; 0x5536 <__moddi3+0x2cc>
+    5534:	0e c1       	rjmp	.+540    	; 0x5752 <__moddi3+0x4e8>
+    5536:	00 e0       	ldi	r16, 0x00	; 0
+    5538:	20 16       	cp	r2, r16
+    553a:	00 e0       	ldi	r16, 0x00	; 0
+    553c:	30 06       	cpc	r3, r16
+    553e:	01 e0       	ldi	r16, 0x01	; 1
+    5540:	40 06       	cpc	r4, r16
+    5542:	00 e0       	ldi	r16, 0x00	; 0
+    5544:	50 06       	cpc	r5, r16
+    5546:	88 f4       	brcc	.+34     	; 0x556a <__moddi3+0x300>
+    5548:	1f ef       	ldi	r17, 0xFF	; 255
+    554a:	21 16       	cp	r2, r17
+    554c:	31 04       	cpc	r3, r1
+    554e:	41 04       	cpc	r4, r1
+    5550:	51 04       	cpc	r5, r1
+    5552:	39 f0       	breq	.+14     	; 0x5562 <__moddi3+0x2f8>
+    5554:	30 f0       	brcs	.+12     	; 0x5562 <__moddi3+0x2f8>
+    5556:	88 e0       	ldi	r24, 0x08	; 8
+    5558:	e8 2e       	mov	r14, r24
+    555a:	f1 2c       	mov	r15, r1
+    555c:	01 2d       	mov	r16, r1
+    555e:	11 2d       	mov	r17, r1
+    5560:	18 c0       	rjmp	.+48     	; 0x5592 <__moddi3+0x328>
+    5562:	ee 24       	eor	r14, r14
+    5564:	ff 24       	eor	r15, r15
+    5566:	87 01       	movw	r16, r14
+    5568:	14 c0       	rjmp	.+40     	; 0x5592 <__moddi3+0x328>
+    556a:	20 e0       	ldi	r18, 0x00	; 0
+    556c:	22 16       	cp	r2, r18
+    556e:	20 e0       	ldi	r18, 0x00	; 0
+    5570:	32 06       	cpc	r3, r18
+    5572:	20 e0       	ldi	r18, 0x00	; 0
+    5574:	42 06       	cpc	r4, r18
+    5576:	21 e0       	ldi	r18, 0x01	; 1
+    5578:	52 06       	cpc	r5, r18
+    557a:	30 f0       	brcs	.+12     	; 0x5588 <__moddi3+0x31e>
+    557c:	b8 e1       	ldi	r27, 0x18	; 24
+    557e:	eb 2e       	mov	r14, r27
+    5580:	f1 2c       	mov	r15, r1
+    5582:	01 2d       	mov	r16, r1
+    5584:	11 2d       	mov	r17, r1
+    5586:	05 c0       	rjmp	.+10     	; 0x5592 <__moddi3+0x328>
+    5588:	a0 e1       	ldi	r26, 0x10	; 16
+    558a:	ea 2e       	mov	r14, r26
+    558c:	f1 2c       	mov	r15, r1
+    558e:	01 2d       	mov	r16, r1
+    5590:	11 2d       	mov	r17, r1
+    5592:	d2 01       	movw	r26, r4
+    5594:	c1 01       	movw	r24, r2
+    5596:	0e 2c       	mov	r0, r14
+    5598:	04 c0       	rjmp	.+8      	; 0x55a2 <__moddi3+0x338>
+    559a:	b6 95       	lsr	r27
+    559c:	a7 95       	ror	r26
+    559e:	97 95       	ror	r25
+    55a0:	87 95       	ror	r24
+    55a2:	0a 94       	dec	r0
+    55a4:	d2 f7       	brpl	.-12     	; 0x559a <__moddi3+0x330>
+    55a6:	8c 53       	subi	r24, 0x3C	; 60
+    55a8:	9e 4f       	sbci	r25, 0xFE	; 254
+    55aa:	dc 01       	movw	r26, r24
+    55ac:	2c 91       	ld	r18, X
+    55ae:	80 e2       	ldi	r24, 0x20	; 32
+    55b0:	90 e0       	ldi	r25, 0x00	; 0
+    55b2:	a0 e0       	ldi	r26, 0x00	; 0
+    55b4:	b0 e0       	ldi	r27, 0x00	; 0
+    55b6:	8e 19       	sub	r24, r14
+    55b8:	9f 09       	sbc	r25, r15
+    55ba:	a0 0b       	sbc	r26, r16
+    55bc:	b1 0b       	sbc	r27, r17
+    55be:	5c 01       	movw	r10, r24
+    55c0:	6d 01       	movw	r12, r26
+    55c2:	a2 1a       	sub	r10, r18
+    55c4:	b1 08       	sbc	r11, r1
+    55c6:	c1 08       	sbc	r12, r1
+    55c8:	d1 08       	sbc	r13, r1
+    55ca:	65 96       	adiw	r28, 0x15	; 21
+    55cc:	ac ae       	std	Y+60, r10	; 0x3c
+    55ce:	bd ae       	std	Y+61, r11	; 0x3d
+    55d0:	ce ae       	std	Y+62, r12	; 0x3e
+    55d2:	df ae       	std	Y+63, r13	; 0x3f
+    55d4:	65 97       	sbiw	r28, 0x15	; 21
+    55d6:	a1 14       	cp	r10, r1
+    55d8:	b1 04       	cpc	r11, r1
+    55da:	c1 04       	cpc	r12, r1
+    55dc:	d1 04       	cpc	r13, r1
+    55de:	09 f4       	brne	.+2      	; 0x55e2 <__moddi3+0x378>
+    55e0:	45 c0       	rjmp	.+138    	; 0x566c <__moddi3+0x402>
+    55e2:	62 96       	adiw	r28, 0x12	; 18
+    55e4:	6f ad       	ldd	r22, Y+63	; 0x3f
+    55e6:	62 97       	sbiw	r28, 0x12	; 18
+    55e8:	06 2e       	mov	r0, r22
+    55ea:	04 c0       	rjmp	.+8      	; 0x55f4 <__moddi3+0x38a>
+    55ec:	22 0c       	add	r2, r2
+    55ee:	33 1c       	adc	r3, r3
+    55f0:	44 1c       	adc	r4, r4
+    55f2:	55 1c       	adc	r5, r5
+    55f4:	0a 94       	dec	r0
+    55f6:	d2 f7       	brpl	.-12     	; 0x55ec <__moddi3+0x382>
+    55f8:	a4 01       	movw	r20, r8
+    55fa:	93 01       	movw	r18, r6
+    55fc:	06 2e       	mov	r0, r22
+    55fe:	04 c0       	rjmp	.+8      	; 0x5608 <__moddi3+0x39e>
+    5600:	22 0f       	add	r18, r18
+    5602:	33 1f       	adc	r19, r19
+    5604:	44 1f       	adc	r20, r20
+    5606:	55 1f       	adc	r21, r21
+    5608:	0a 94       	dec	r0
+    560a:	d2 f7       	brpl	.-12     	; 0x5600 <__moddi3+0x396>
+    560c:	80 e2       	ldi	r24, 0x20	; 32
+    560e:	90 e0       	ldi	r25, 0x00	; 0
+    5610:	8a 19       	sub	r24, r10
+    5612:	9b 09       	sbc	r25, r11
+    5614:	e8 96       	adiw	r28, 0x38	; 56
+    5616:	cc ac       	ldd	r12, Y+60	; 0x3c
+    5618:	dd ac       	ldd	r13, Y+61	; 0x3d
+    561a:	ee ac       	ldd	r14, Y+62	; 0x3e
+    561c:	ff ac       	ldd	r15, Y+63	; 0x3f
+    561e:	e8 97       	sbiw	r28, 0x38	; 56
+    5620:	04 c0       	rjmp	.+8      	; 0x562a <__moddi3+0x3c0>
+    5622:	f6 94       	lsr	r15
+    5624:	e7 94       	ror	r14
+    5626:	d7 94       	ror	r13
+    5628:	c7 94       	ror	r12
+    562a:	8a 95       	dec	r24
+    562c:	d2 f7       	brpl	.-12     	; 0x5622 <__moddi3+0x3b8>
+    562e:	87 01       	movw	r16, r14
+    5630:	76 01       	movw	r14, r12
+    5632:	e2 2a       	or	r14, r18
+    5634:	f3 2a       	or	r15, r19
+    5636:	04 2b       	or	r16, r20
+    5638:	15 2b       	or	r17, r21
+    563a:	61 96       	adiw	r28, 0x11	; 17
+    563c:	ec ae       	std	Y+60, r14	; 0x3c
+    563e:	fd ae       	std	Y+61, r15	; 0x3d
+    5640:	0e af       	std	Y+62, r16	; 0x3e
+    5642:	1f af       	std	Y+63, r17	; 0x3f
+    5644:	61 97       	sbiw	r28, 0x11	; 17
+    5646:	e8 96       	adiw	r28, 0x38	; 56
+    5648:	0c ad       	ldd	r16, Y+60	; 0x3c
+    564a:	1d ad       	ldd	r17, Y+61	; 0x3d
+    564c:	2e ad       	ldd	r18, Y+62	; 0x3e
+    564e:	3f ad       	ldd	r19, Y+63	; 0x3f
+    5650:	e8 97       	sbiw	r28, 0x38	; 56
+    5652:	04 c0       	rjmp	.+8      	; 0x565c <__moddi3+0x3f2>
+    5654:	00 0f       	add	r16, r16
+    5656:	11 1f       	adc	r17, r17
+    5658:	22 1f       	adc	r18, r18
+    565a:	33 1f       	adc	r19, r19
+    565c:	6a 95       	dec	r22
+    565e:	d2 f7       	brpl	.-12     	; 0x5654 <__moddi3+0x3ea>
+    5660:	2d 96       	adiw	r28, 0x0d	; 13
+    5662:	0c af       	std	Y+60, r16	; 0x3c
+    5664:	1d af       	std	Y+61, r17	; 0x3d
+    5666:	2e af       	std	Y+62, r18	; 0x3e
+    5668:	3f af       	std	Y+63, r19	; 0x3f
+    566a:	2d 97       	sbiw	r28, 0x0d	; 13
+    566c:	32 01       	movw	r6, r4
+    566e:	88 24       	eor	r8, r8
+    5670:	99 24       	eor	r9, r9
+    5672:	a2 01       	movw	r20, r4
+    5674:	91 01       	movw	r18, r2
+    5676:	40 70       	andi	r20, 0x00	; 0
+    5678:	50 70       	andi	r21, 0x00	; 0
+    567a:	69 96       	adiw	r28, 0x19	; 25
+    567c:	2c af       	std	Y+60, r18	; 0x3c
+    567e:	3d af       	std	Y+61, r19	; 0x3d
+    5680:	4e af       	std	Y+62, r20	; 0x3e
+    5682:	5f af       	std	Y+63, r21	; 0x3f
+    5684:	69 97       	sbiw	r28, 0x19	; 25
+    5686:	61 96       	adiw	r28, 0x11	; 17
+    5688:	6c ad       	ldd	r22, Y+60	; 0x3c
+    568a:	7d ad       	ldd	r23, Y+61	; 0x3d
+    568c:	8e ad       	ldd	r24, Y+62	; 0x3e
+    568e:	9f ad       	ldd	r25, Y+63	; 0x3f
+    5690:	61 97       	sbiw	r28, 0x11	; 17
+    5692:	a4 01       	movw	r20, r8
+    5694:	93 01       	movw	r18, r6
+    5696:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    569a:	7b 01       	movw	r14, r22
+    569c:	8c 01       	movw	r16, r24
+    569e:	61 96       	adiw	r28, 0x11	; 17
+    56a0:	6c ad       	ldd	r22, Y+60	; 0x3c
+    56a2:	7d ad       	ldd	r23, Y+61	; 0x3d
+    56a4:	8e ad       	ldd	r24, Y+62	; 0x3e
+    56a6:	9f ad       	ldd	r25, Y+63	; 0x3f
+    56a8:	61 97       	sbiw	r28, 0x11	; 17
+    56aa:	a4 01       	movw	r20, r8
+    56ac:	93 01       	movw	r18, r6
+    56ae:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    56b2:	ca 01       	movw	r24, r20
+    56b4:	b9 01       	movw	r22, r18
+    56b6:	69 96       	adiw	r28, 0x19	; 25
+    56b8:	2c ad       	ldd	r18, Y+60	; 0x3c
+    56ba:	3d ad       	ldd	r19, Y+61	; 0x3d
+    56bc:	4e ad       	ldd	r20, Y+62	; 0x3e
+    56be:	5f ad       	ldd	r21, Y+63	; 0x3f
+    56c0:	69 97       	sbiw	r28, 0x19	; 25
+    56c2:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    56c6:	9b 01       	movw	r18, r22
+    56c8:	ac 01       	movw	r20, r24
+    56ca:	87 01       	movw	r16, r14
+    56cc:	ff 24       	eor	r15, r15
+    56ce:	ee 24       	eor	r14, r14
+    56d0:	2d 96       	adiw	r28, 0x0d	; 13
+    56d2:	ac ac       	ldd	r10, Y+60	; 0x3c
+    56d4:	bd ac       	ldd	r11, Y+61	; 0x3d
+    56d6:	ce ac       	ldd	r12, Y+62	; 0x3e
+    56d8:	df ac       	ldd	r13, Y+63	; 0x3f
+    56da:	2d 97       	sbiw	r28, 0x0d	; 13
+    56dc:	c6 01       	movw	r24, r12
+    56de:	aa 27       	eor	r26, r26
+    56e0:	bb 27       	eor	r27, r27
+    56e2:	57 01       	movw	r10, r14
+    56e4:	68 01       	movw	r12, r16
+    56e6:	a8 2a       	or	r10, r24
+    56e8:	b9 2a       	or	r11, r25
+    56ea:	ca 2a       	or	r12, r26
+    56ec:	db 2a       	or	r13, r27
+    56ee:	a2 16       	cp	r10, r18
+    56f0:	b3 06       	cpc	r11, r19
+    56f2:	c4 06       	cpc	r12, r20
+    56f4:	d5 06       	cpc	r13, r21
+    56f6:	90 f4       	brcc	.+36     	; 0x571c <__moddi3+0x4b2>
+    56f8:	a2 0c       	add	r10, r2
+    56fa:	b3 1c       	adc	r11, r3
+    56fc:	c4 1c       	adc	r12, r4
+    56fe:	d5 1c       	adc	r13, r5
+    5700:	a2 14       	cp	r10, r2
+    5702:	b3 04       	cpc	r11, r3
+    5704:	c4 04       	cpc	r12, r4
+    5706:	d5 04       	cpc	r13, r5
+    5708:	48 f0       	brcs	.+18     	; 0x571c <__moddi3+0x4b2>
+    570a:	a2 16       	cp	r10, r18
+    570c:	b3 06       	cpc	r11, r19
+    570e:	c4 06       	cpc	r12, r20
+    5710:	d5 06       	cpc	r13, r21
+    5712:	20 f4       	brcc	.+8      	; 0x571c <__moddi3+0x4b2>
+    5714:	a2 0c       	add	r10, r2
+    5716:	b3 1c       	adc	r11, r3
+    5718:	c4 1c       	adc	r12, r4
+    571a:	d5 1c       	adc	r13, r5
+    571c:	a2 1a       	sub	r10, r18
+    571e:	b3 0a       	sbc	r11, r19
+    5720:	c4 0a       	sbc	r12, r20
+    5722:	d5 0a       	sbc	r13, r21
+    5724:	c6 01       	movw	r24, r12
+    5726:	b5 01       	movw	r22, r10
+    5728:	a4 01       	movw	r20, r8
+    572a:	93 01       	movw	r18, r6
+    572c:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5730:	7b 01       	movw	r14, r22
+    5732:	8c 01       	movw	r16, r24
+    5734:	c6 01       	movw	r24, r12
+    5736:	b5 01       	movw	r22, r10
+    5738:	a4 01       	movw	r20, r8
+    573a:	93 01       	movw	r18, r6
+    573c:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5740:	ca 01       	movw	r24, r20
+    5742:	b9 01       	movw	r22, r18
+    5744:	69 96       	adiw	r28, 0x19	; 25
+    5746:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5748:	3d ad       	ldd	r19, Y+61	; 0x3d
+    574a:	4e ad       	ldd	r20, Y+62	; 0x3e
+    574c:	5f ad       	ldd	r21, Y+63	; 0x3f
+    574e:	69 97       	sbiw	r28, 0x19	; 25
+    5750:	c8 c1       	rjmp	.+912    	; 0x5ae2 <__moddi3+0x878>
+    5752:	21 14       	cp	r2, r1
+    5754:	31 04       	cpc	r3, r1
+    5756:	41 04       	cpc	r4, r1
+    5758:	51 04       	cpc	r5, r1
+    575a:	71 f4       	brne	.+28     	; 0x5778 <__moddi3+0x50e>
+    575c:	61 e0       	ldi	r22, 0x01	; 1
+    575e:	70 e0       	ldi	r23, 0x00	; 0
+    5760:	80 e0       	ldi	r24, 0x00	; 0
+    5762:	90 e0       	ldi	r25, 0x00	; 0
+    5764:	20 e0       	ldi	r18, 0x00	; 0
+    5766:	30 e0       	ldi	r19, 0x00	; 0
+    5768:	40 e0       	ldi	r20, 0x00	; 0
+    576a:	50 e0       	ldi	r21, 0x00	; 0
+    576c:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5770:	c9 01       	movw	r24, r18
+    5772:	da 01       	movw	r26, r20
+    5774:	1c 01       	movw	r2, r24
+    5776:	2d 01       	movw	r4, r26
+    5778:	00 e0       	ldi	r16, 0x00	; 0
+    577a:	20 16       	cp	r2, r16
+    577c:	00 e0       	ldi	r16, 0x00	; 0
+    577e:	30 06       	cpc	r3, r16
+    5780:	01 e0       	ldi	r16, 0x01	; 1
+    5782:	40 06       	cpc	r4, r16
+    5784:	00 e0       	ldi	r16, 0x00	; 0
+    5786:	50 06       	cpc	r5, r16
+    5788:	88 f4       	brcc	.+34     	; 0x57ac <__moddi3+0x542>
+    578a:	1f ef       	ldi	r17, 0xFF	; 255
+    578c:	21 16       	cp	r2, r17
+    578e:	31 04       	cpc	r3, r1
+    5790:	41 04       	cpc	r4, r1
+    5792:	51 04       	cpc	r5, r1
+    5794:	39 f0       	breq	.+14     	; 0x57a4 <__moddi3+0x53a>
+    5796:	30 f0       	brcs	.+12     	; 0x57a4 <__moddi3+0x53a>
+    5798:	68 e0       	ldi	r22, 0x08	; 8
+    579a:	e6 2e       	mov	r14, r22
+    579c:	f1 2c       	mov	r15, r1
+    579e:	01 2d       	mov	r16, r1
+    57a0:	11 2d       	mov	r17, r1
+    57a2:	18 c0       	rjmp	.+48     	; 0x57d4 <__moddi3+0x56a>
+    57a4:	ee 24       	eor	r14, r14
+    57a6:	ff 24       	eor	r15, r15
+    57a8:	87 01       	movw	r16, r14
+    57aa:	14 c0       	rjmp	.+40     	; 0x57d4 <__moddi3+0x56a>
+    57ac:	20 e0       	ldi	r18, 0x00	; 0
+    57ae:	22 16       	cp	r2, r18
+    57b0:	20 e0       	ldi	r18, 0x00	; 0
+    57b2:	32 06       	cpc	r3, r18
+    57b4:	20 e0       	ldi	r18, 0x00	; 0
+    57b6:	42 06       	cpc	r4, r18
+    57b8:	21 e0       	ldi	r18, 0x01	; 1
+    57ba:	52 06       	cpc	r5, r18
+    57bc:	30 f0       	brcs	.+12     	; 0x57ca <__moddi3+0x560>
+    57be:	58 e1       	ldi	r21, 0x18	; 24
+    57c0:	e5 2e       	mov	r14, r21
+    57c2:	f1 2c       	mov	r15, r1
+    57c4:	01 2d       	mov	r16, r1
+    57c6:	11 2d       	mov	r17, r1
+    57c8:	05 c0       	rjmp	.+10     	; 0x57d4 <__moddi3+0x56a>
+    57ca:	40 e1       	ldi	r20, 0x10	; 16
+    57cc:	e4 2e       	mov	r14, r20
+    57ce:	f1 2c       	mov	r15, r1
+    57d0:	01 2d       	mov	r16, r1
+    57d2:	11 2d       	mov	r17, r1
+    57d4:	d2 01       	movw	r26, r4
+    57d6:	c1 01       	movw	r24, r2
+    57d8:	0e 2c       	mov	r0, r14
+    57da:	04 c0       	rjmp	.+8      	; 0x57e4 <__moddi3+0x57a>
+    57dc:	b6 95       	lsr	r27
+    57de:	a7 95       	ror	r26
+    57e0:	97 95       	ror	r25
+    57e2:	87 95       	ror	r24
+    57e4:	0a 94       	dec	r0
+    57e6:	d2 f7       	brpl	.-12     	; 0x57dc <__moddi3+0x572>
+    57e8:	8c 53       	subi	r24, 0x3C	; 60
+    57ea:	9e 4f       	sbci	r25, 0xFE	; 254
+    57ec:	dc 01       	movw	r26, r24
+    57ee:	2c 91       	ld	r18, X
+    57f0:	30 e2       	ldi	r19, 0x20	; 32
+    57f2:	a3 2e       	mov	r10, r19
+    57f4:	b1 2c       	mov	r11, r1
+    57f6:	c1 2c       	mov	r12, r1
+    57f8:	d1 2c       	mov	r13, r1
+    57fa:	d6 01       	movw	r26, r12
+    57fc:	c5 01       	movw	r24, r10
+    57fe:	8e 19       	sub	r24, r14
+    5800:	9f 09       	sbc	r25, r15
+    5802:	a0 0b       	sbc	r26, r16
+    5804:	b1 0b       	sbc	r27, r17
+    5806:	7c 01       	movw	r14, r24
+    5808:	8d 01       	movw	r16, r26
+    580a:	e2 1a       	sub	r14, r18
+    580c:	f1 08       	sbc	r15, r1
+    580e:	01 09       	sbc	r16, r1
+    5810:	11 09       	sbc	r17, r1
+    5812:	65 96       	adiw	r28, 0x15	; 21
+    5814:	ec ae       	std	Y+60, r14	; 0x3c
+    5816:	fd ae       	std	Y+61, r15	; 0x3d
+    5818:	0e af       	std	Y+62, r16	; 0x3e
+    581a:	1f af       	std	Y+63, r17	; 0x3f
+    581c:	65 97       	sbiw	r28, 0x15	; 21
+    581e:	e1 14       	cp	r14, r1
+    5820:	f1 04       	cpc	r15, r1
+    5822:	01 05       	cpc	r16, r1
+    5824:	11 05       	cpc	r17, r1
+    5826:	39 f4       	brne	.+14     	; 0x5836 <__moddi3+0x5cc>
+    5828:	64 01       	movw	r12, r8
+    582a:	53 01       	movw	r10, r6
+    582c:	a2 18       	sub	r10, r2
+    582e:	b3 08       	sbc	r11, r3
+    5830:	c4 08       	sbc	r12, r4
+    5832:	d5 08       	sbc	r13, r5
+    5834:	ec c0       	rjmp	.+472    	; 0x5a0e <__moddi3+0x7a4>
+    5836:	62 96       	adiw	r28, 0x12	; 18
+    5838:	ff ac       	ldd	r15, Y+63	; 0x3f
+    583a:	62 97       	sbiw	r28, 0x12	; 18
+    583c:	e4 96       	adiw	r28, 0x34	; 52
+    583e:	ff ae       	std	Y+63, r15	; 0x3f
+    5840:	e4 97       	sbiw	r28, 0x34	; 52
+    5842:	0f 2c       	mov	r0, r15
+    5844:	04 c0       	rjmp	.+8      	; 0x584e <__moddi3+0x5e4>
+    5846:	22 0c       	add	r2, r2
+    5848:	33 1c       	adc	r3, r3
+    584a:	44 1c       	adc	r4, r4
+    584c:	55 1c       	adc	r5, r5
+    584e:	0a 94       	dec	r0
+    5850:	d2 f7       	brpl	.-12     	; 0x5846 <__moddi3+0x5dc>
+    5852:	8a 2d       	mov	r24, r10
+    5854:	8f 19       	sub	r24, r15
+    5856:	64 01       	movw	r12, r8
+    5858:	53 01       	movw	r10, r6
+    585a:	08 2e       	mov	r0, r24
+    585c:	04 c0       	rjmp	.+8      	; 0x5866 <__moddi3+0x5fc>
+    585e:	d6 94       	lsr	r13
+    5860:	c7 94       	ror	r12
+    5862:	b7 94       	ror	r11
+    5864:	a7 94       	ror	r10
+    5866:	0a 94       	dec	r0
+    5868:	d2 f7       	brpl	.-12     	; 0x585e <__moddi3+0x5f4>
+    586a:	a4 01       	movw	r20, r8
+    586c:	93 01       	movw	r18, r6
+    586e:	04 c0       	rjmp	.+8      	; 0x5878 <__moddi3+0x60e>
+    5870:	22 0f       	add	r18, r18
+    5872:	33 1f       	adc	r19, r19
+    5874:	44 1f       	adc	r20, r20
+    5876:	55 1f       	adc	r21, r21
+    5878:	fa 94       	dec	r15
+    587a:	d2 f7       	brpl	.-12     	; 0x5870 <__moddi3+0x606>
+    587c:	e8 96       	adiw	r28, 0x38	; 56
+    587e:	6c ac       	ldd	r6, Y+60	; 0x3c
+    5880:	7d ac       	ldd	r7, Y+61	; 0x3d
+    5882:	8e ac       	ldd	r8, Y+62	; 0x3e
+    5884:	9f ac       	ldd	r9, Y+63	; 0x3f
+    5886:	e8 97       	sbiw	r28, 0x38	; 56
+    5888:	04 c0       	rjmp	.+8      	; 0x5892 <__moddi3+0x628>
+    588a:	96 94       	lsr	r9
+    588c:	87 94       	ror	r8
+    588e:	77 94       	ror	r7
+    5890:	67 94       	ror	r6
+    5892:	8a 95       	dec	r24
+    5894:	d2 f7       	brpl	.-12     	; 0x588a <__moddi3+0x620>
+    5896:	84 01       	movw	r16, r8
+    5898:	73 01       	movw	r14, r6
+    589a:	e2 2a       	or	r14, r18
+    589c:	f3 2a       	or	r15, r19
+    589e:	04 2b       	or	r16, r20
+    58a0:	15 2b       	or	r17, r21
+    58a2:	29 96       	adiw	r28, 0x09	; 9
+    58a4:	ec ae       	std	Y+60, r14	; 0x3c
+    58a6:	fd ae       	std	Y+61, r15	; 0x3d
+    58a8:	0e af       	std	Y+62, r16	; 0x3e
+    58aa:	1f af       	std	Y+63, r17	; 0x3f
+    58ac:	29 97       	sbiw	r28, 0x09	; 9
+    58ae:	32 01       	movw	r6, r4
+    58b0:	88 24       	eor	r8, r8
+    58b2:	99 24       	eor	r9, r9
+    58b4:	92 01       	movw	r18, r4
+    58b6:	81 01       	movw	r16, r2
+    58b8:	20 70       	andi	r18, 0x00	; 0
+    58ba:	30 70       	andi	r19, 0x00	; 0
+    58bc:	6d 96       	adiw	r28, 0x1d	; 29
+    58be:	0c af       	std	Y+60, r16	; 0x3c
+    58c0:	1d af       	std	Y+61, r17	; 0x3d
+    58c2:	2e af       	std	Y+62, r18	; 0x3e
+    58c4:	3f af       	std	Y+63, r19	; 0x3f
+    58c6:	6d 97       	sbiw	r28, 0x1d	; 29
+    58c8:	c6 01       	movw	r24, r12
+    58ca:	b5 01       	movw	r22, r10
+    58cc:	a4 01       	movw	r20, r8
+    58ce:	93 01       	movw	r18, r6
+    58d0:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    58d4:	7b 01       	movw	r14, r22
+    58d6:	8c 01       	movw	r16, r24
+    58d8:	c6 01       	movw	r24, r12
+    58da:	b5 01       	movw	r22, r10
+    58dc:	a4 01       	movw	r20, r8
+    58de:	93 01       	movw	r18, r6
+    58e0:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    58e4:	ca 01       	movw	r24, r20
+    58e6:	b9 01       	movw	r22, r18
+    58e8:	6d 96       	adiw	r28, 0x1d	; 29
+    58ea:	2c ad       	ldd	r18, Y+60	; 0x3c
+    58ec:	3d ad       	ldd	r19, Y+61	; 0x3d
+    58ee:	4e ad       	ldd	r20, Y+62	; 0x3e
+    58f0:	5f ad       	ldd	r21, Y+63	; 0x3f
+    58f2:	6d 97       	sbiw	r28, 0x1d	; 29
+    58f4:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    58f8:	9b 01       	movw	r18, r22
+    58fa:	ac 01       	movw	r20, r24
+    58fc:	87 01       	movw	r16, r14
+    58fe:	ff 24       	eor	r15, r15
+    5900:	ee 24       	eor	r14, r14
+    5902:	29 96       	adiw	r28, 0x09	; 9
+    5904:	ac ac       	ldd	r10, Y+60	; 0x3c
+    5906:	bd ac       	ldd	r11, Y+61	; 0x3d
+    5908:	ce ac       	ldd	r12, Y+62	; 0x3e
+    590a:	df ac       	ldd	r13, Y+63	; 0x3f
+    590c:	29 97       	sbiw	r28, 0x09	; 9
+    590e:	c6 01       	movw	r24, r12
+    5910:	aa 27       	eor	r26, r26
+    5912:	bb 27       	eor	r27, r27
+    5914:	5c 01       	movw	r10, r24
+    5916:	6d 01       	movw	r12, r26
+    5918:	ae 28       	or	r10, r14
+    591a:	bf 28       	or	r11, r15
+    591c:	c0 2a       	or	r12, r16
+    591e:	d1 2a       	or	r13, r17
+    5920:	a2 16       	cp	r10, r18
+    5922:	b3 06       	cpc	r11, r19
+    5924:	c4 06       	cpc	r12, r20
+    5926:	d5 06       	cpc	r13, r21
+    5928:	90 f4       	brcc	.+36     	; 0x594e <__moddi3+0x6e4>
+    592a:	a2 0c       	add	r10, r2
+    592c:	b3 1c       	adc	r11, r3
+    592e:	c4 1c       	adc	r12, r4
+    5930:	d5 1c       	adc	r13, r5
+    5932:	a2 14       	cp	r10, r2
+    5934:	b3 04       	cpc	r11, r3
+    5936:	c4 04       	cpc	r12, r4
+    5938:	d5 04       	cpc	r13, r5
+    593a:	48 f0       	brcs	.+18     	; 0x594e <__moddi3+0x6e4>
+    593c:	a2 16       	cp	r10, r18
+    593e:	b3 06       	cpc	r11, r19
+    5940:	c4 06       	cpc	r12, r20
+    5942:	d5 06       	cpc	r13, r21
+    5944:	20 f4       	brcc	.+8      	; 0x594e <__moddi3+0x6e4>
+    5946:	a2 0c       	add	r10, r2
+    5948:	b3 1c       	adc	r11, r3
+    594a:	c4 1c       	adc	r12, r4
+    594c:	d5 1c       	adc	r13, r5
+    594e:	a2 1a       	sub	r10, r18
+    5950:	b3 0a       	sbc	r11, r19
+    5952:	c4 0a       	sbc	r12, r20
+    5954:	d5 0a       	sbc	r13, r21
+    5956:	c6 01       	movw	r24, r12
+    5958:	b5 01       	movw	r22, r10
+    595a:	a4 01       	movw	r20, r8
+    595c:	93 01       	movw	r18, r6
+    595e:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5962:	7b 01       	movw	r14, r22
+    5964:	8c 01       	movw	r16, r24
+    5966:	c6 01       	movw	r24, r12
+    5968:	b5 01       	movw	r22, r10
+    596a:	a4 01       	movw	r20, r8
+    596c:	93 01       	movw	r18, r6
+    596e:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5972:	ca 01       	movw	r24, r20
+    5974:	b9 01       	movw	r22, r18
+    5976:	6d 96       	adiw	r28, 0x1d	; 29
+    5978:	2c ad       	ldd	r18, Y+60	; 0x3c
+    597a:	3d ad       	ldd	r19, Y+61	; 0x3d
+    597c:	4e ad       	ldd	r20, Y+62	; 0x3e
+    597e:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5980:	6d 97       	sbiw	r28, 0x1d	; 29
+    5982:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5986:	9b 01       	movw	r18, r22
+    5988:	ac 01       	movw	r20, r24
+    598a:	87 01       	movw	r16, r14
+    598c:	ff 24       	eor	r15, r15
+    598e:	ee 24       	eor	r14, r14
+    5990:	29 96       	adiw	r28, 0x09	; 9
+    5992:	8c ad       	ldd	r24, Y+60	; 0x3c
+    5994:	9d ad       	ldd	r25, Y+61	; 0x3d
+    5996:	ae ad       	ldd	r26, Y+62	; 0x3e
+    5998:	bf ad       	ldd	r27, Y+63	; 0x3f
+    599a:	29 97       	sbiw	r28, 0x09	; 9
+    599c:	a0 70       	andi	r26, 0x00	; 0
+    599e:	b0 70       	andi	r27, 0x00	; 0
+    59a0:	57 01       	movw	r10, r14
+    59a2:	68 01       	movw	r12, r16
+    59a4:	a8 2a       	or	r10, r24
+    59a6:	b9 2a       	or	r11, r25
+    59a8:	ca 2a       	or	r12, r26
+    59aa:	db 2a       	or	r13, r27
+    59ac:	a2 16       	cp	r10, r18
+    59ae:	b3 06       	cpc	r11, r19
+    59b0:	c4 06       	cpc	r12, r20
+    59b2:	d5 06       	cpc	r13, r21
+    59b4:	90 f4       	brcc	.+36     	; 0x59da <__moddi3+0x770>
+    59b6:	a2 0c       	add	r10, r2
+    59b8:	b3 1c       	adc	r11, r3
+    59ba:	c4 1c       	adc	r12, r4
+    59bc:	d5 1c       	adc	r13, r5
+    59be:	a2 14       	cp	r10, r2
+    59c0:	b3 04       	cpc	r11, r3
+    59c2:	c4 04       	cpc	r12, r4
+    59c4:	d5 04       	cpc	r13, r5
+    59c6:	48 f0       	brcs	.+18     	; 0x59da <__moddi3+0x770>
+    59c8:	a2 16       	cp	r10, r18
+    59ca:	b3 06       	cpc	r11, r19
+    59cc:	c4 06       	cpc	r12, r20
+    59ce:	d5 06       	cpc	r13, r21
+    59d0:	20 f4       	brcc	.+8      	; 0x59da <__moddi3+0x770>
+    59d2:	a2 0c       	add	r10, r2
+    59d4:	b3 1c       	adc	r11, r3
+    59d6:	c4 1c       	adc	r12, r4
+    59d8:	d5 1c       	adc	r13, r5
+    59da:	e8 96       	adiw	r28, 0x38	; 56
+    59dc:	ec ac       	ldd	r14, Y+60	; 0x3c
+    59de:	fd ac       	ldd	r15, Y+61	; 0x3d
+    59e0:	0e ad       	ldd	r16, Y+62	; 0x3e
+    59e2:	1f ad       	ldd	r17, Y+63	; 0x3f
+    59e4:	e8 97       	sbiw	r28, 0x38	; 56
+    59e6:	e4 96       	adiw	r28, 0x34	; 52
+    59e8:	0f ac       	ldd	r0, Y+63	; 0x3f
+    59ea:	e4 97       	sbiw	r28, 0x34	; 52
+    59ec:	04 c0       	rjmp	.+8      	; 0x59f6 <__moddi3+0x78c>
+    59ee:	ee 0c       	add	r14, r14
+    59f0:	ff 1c       	adc	r15, r15
+    59f2:	00 1f       	adc	r16, r16
+    59f4:	11 1f       	adc	r17, r17
+    59f6:	0a 94       	dec	r0
+    59f8:	d2 f7       	brpl	.-12     	; 0x59ee <__moddi3+0x784>
+    59fa:	2d 96       	adiw	r28, 0x0d	; 13
+    59fc:	ec ae       	std	Y+60, r14	; 0x3c
+    59fe:	fd ae       	std	Y+61, r15	; 0x3d
+    5a00:	0e af       	std	Y+62, r16	; 0x3e
+    5a02:	1f af       	std	Y+63, r17	; 0x3f
+    5a04:	2d 97       	sbiw	r28, 0x0d	; 13
+    5a06:	a2 1a       	sub	r10, r18
+    5a08:	b3 0a       	sbc	r11, r19
+    5a0a:	c4 0a       	sbc	r12, r20
+    5a0c:	d5 0a       	sbc	r13, r21
+    5a0e:	32 01       	movw	r6, r4
+    5a10:	88 24       	eor	r8, r8
+    5a12:	99 24       	eor	r9, r9
+    5a14:	92 01       	movw	r18, r4
+    5a16:	81 01       	movw	r16, r2
+    5a18:	20 70       	andi	r18, 0x00	; 0
+    5a1a:	30 70       	andi	r19, 0x00	; 0
+    5a1c:	a1 96       	adiw	r28, 0x21	; 33
+    5a1e:	0c af       	std	Y+60, r16	; 0x3c
+    5a20:	1d af       	std	Y+61, r17	; 0x3d
+    5a22:	2e af       	std	Y+62, r18	; 0x3e
+    5a24:	3f af       	std	Y+63, r19	; 0x3f
+    5a26:	a1 97       	sbiw	r28, 0x21	; 33
+    5a28:	c6 01       	movw	r24, r12
+    5a2a:	b5 01       	movw	r22, r10
+    5a2c:	a4 01       	movw	r20, r8
+    5a2e:	93 01       	movw	r18, r6
+    5a30:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5a34:	7b 01       	movw	r14, r22
+    5a36:	8c 01       	movw	r16, r24
+    5a38:	c6 01       	movw	r24, r12
+    5a3a:	b5 01       	movw	r22, r10
+    5a3c:	a4 01       	movw	r20, r8
+    5a3e:	93 01       	movw	r18, r6
+    5a40:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5a44:	ca 01       	movw	r24, r20
+    5a46:	b9 01       	movw	r22, r18
+    5a48:	a1 96       	adiw	r28, 0x21	; 33
+    5a4a:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5a4c:	3d ad       	ldd	r19, Y+61	; 0x3d
+    5a4e:	4e ad       	ldd	r20, Y+62	; 0x3e
+    5a50:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5a52:	a1 97       	sbiw	r28, 0x21	; 33
+    5a54:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5a58:	9b 01       	movw	r18, r22
+    5a5a:	ac 01       	movw	r20, r24
+    5a5c:	87 01       	movw	r16, r14
+    5a5e:	ff 24       	eor	r15, r15
+    5a60:	ee 24       	eor	r14, r14
+    5a62:	2d 96       	adiw	r28, 0x0d	; 13
+    5a64:	ac ac       	ldd	r10, Y+60	; 0x3c
+    5a66:	bd ac       	ldd	r11, Y+61	; 0x3d
+    5a68:	ce ac       	ldd	r12, Y+62	; 0x3e
+    5a6a:	df ac       	ldd	r13, Y+63	; 0x3f
+    5a6c:	2d 97       	sbiw	r28, 0x0d	; 13
+    5a6e:	c6 01       	movw	r24, r12
+    5a70:	aa 27       	eor	r26, r26
+    5a72:	bb 27       	eor	r27, r27
+    5a74:	57 01       	movw	r10, r14
+    5a76:	68 01       	movw	r12, r16
+    5a78:	a8 2a       	or	r10, r24
+    5a7a:	b9 2a       	or	r11, r25
+    5a7c:	ca 2a       	or	r12, r26
+    5a7e:	db 2a       	or	r13, r27
+    5a80:	a2 16       	cp	r10, r18
+    5a82:	b3 06       	cpc	r11, r19
+    5a84:	c4 06       	cpc	r12, r20
+    5a86:	d5 06       	cpc	r13, r21
+    5a88:	90 f4       	brcc	.+36     	; 0x5aae <__moddi3+0x844>
+    5a8a:	a2 0c       	add	r10, r2
+    5a8c:	b3 1c       	adc	r11, r3
+    5a8e:	c4 1c       	adc	r12, r4
+    5a90:	d5 1c       	adc	r13, r5
+    5a92:	a2 14       	cp	r10, r2
+    5a94:	b3 04       	cpc	r11, r3
+    5a96:	c4 04       	cpc	r12, r4
+    5a98:	d5 04       	cpc	r13, r5
+    5a9a:	48 f0       	brcs	.+18     	; 0x5aae <__moddi3+0x844>
+    5a9c:	a2 16       	cp	r10, r18
+    5a9e:	b3 06       	cpc	r11, r19
+    5aa0:	c4 06       	cpc	r12, r20
+    5aa2:	d5 06       	cpc	r13, r21
+    5aa4:	20 f4       	brcc	.+8      	; 0x5aae <__moddi3+0x844>
+    5aa6:	a2 0c       	add	r10, r2
+    5aa8:	b3 1c       	adc	r11, r3
+    5aaa:	c4 1c       	adc	r12, r4
+    5aac:	d5 1c       	adc	r13, r5
+    5aae:	a2 1a       	sub	r10, r18
+    5ab0:	b3 0a       	sbc	r11, r19
+    5ab2:	c4 0a       	sbc	r12, r20
+    5ab4:	d5 0a       	sbc	r13, r21
+    5ab6:	c6 01       	movw	r24, r12
+    5ab8:	b5 01       	movw	r22, r10
+    5aba:	a4 01       	movw	r20, r8
+    5abc:	93 01       	movw	r18, r6
+    5abe:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5ac2:	7b 01       	movw	r14, r22
+    5ac4:	8c 01       	movw	r16, r24
+    5ac6:	c6 01       	movw	r24, r12
+    5ac8:	b5 01       	movw	r22, r10
+    5aca:	a4 01       	movw	r20, r8
+    5acc:	93 01       	movw	r18, r6
+    5ace:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5ad2:	ca 01       	movw	r24, r20
+    5ad4:	b9 01       	movw	r22, r18
+    5ad6:	a1 96       	adiw	r28, 0x21	; 33
+    5ad8:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5ada:	3d ad       	ldd	r19, Y+61	; 0x3d
+    5adc:	4e ad       	ldd	r20, Y+62	; 0x3e
+    5ade:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5ae0:	a1 97       	sbiw	r28, 0x21	; 33
+    5ae2:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5ae6:	9b 01       	movw	r18, r22
+    5ae8:	ac 01       	movw	r20, r24
+    5aea:	87 01       	movw	r16, r14
+    5aec:	ff 24       	eor	r15, r15
+    5aee:	ee 24       	eor	r14, r14
+    5af0:	2d 96       	adiw	r28, 0x0d	; 13
+    5af2:	8c ad       	ldd	r24, Y+60	; 0x3c
+    5af4:	9d ad       	ldd	r25, Y+61	; 0x3d
+    5af6:	ae ad       	ldd	r26, Y+62	; 0x3e
+    5af8:	bf ad       	ldd	r27, Y+63	; 0x3f
+    5afa:	2d 97       	sbiw	r28, 0x0d	; 13
+    5afc:	a0 70       	andi	r26, 0x00	; 0
+    5afe:	b0 70       	andi	r27, 0x00	; 0
+    5b00:	e8 2a       	or	r14, r24
+    5b02:	f9 2a       	or	r15, r25
+    5b04:	0a 2b       	or	r16, r26
+    5b06:	1b 2b       	or	r17, r27
+    5b08:	e2 16       	cp	r14, r18
+    5b0a:	f3 06       	cpc	r15, r19
+    5b0c:	04 07       	cpc	r16, r20
+    5b0e:	15 07       	cpc	r17, r21
+    5b10:	90 f4       	brcc	.+36     	; 0x5b36 <__moddi3+0x8cc>
+    5b12:	e2 0c       	add	r14, r2
+    5b14:	f3 1c       	adc	r15, r3
+    5b16:	04 1d       	adc	r16, r4
+    5b18:	15 1d       	adc	r17, r5
+    5b1a:	e2 14       	cp	r14, r2
+    5b1c:	f3 04       	cpc	r15, r3
+    5b1e:	04 05       	cpc	r16, r4
+    5b20:	15 05       	cpc	r17, r5
+    5b22:	48 f0       	brcs	.+18     	; 0x5b36 <__moddi3+0x8cc>
+    5b24:	e2 16       	cp	r14, r18
+    5b26:	f3 06       	cpc	r15, r19
+    5b28:	04 07       	cpc	r16, r20
+    5b2a:	15 07       	cpc	r17, r21
+    5b2c:	20 f4       	brcc	.+8      	; 0x5b36 <__moddi3+0x8cc>
+    5b2e:	e2 0c       	add	r14, r2
+    5b30:	f3 1c       	adc	r15, r3
+    5b32:	04 1d       	adc	r16, r4
+    5b34:	15 1d       	adc	r17, r5
+    5b36:	e2 1a       	sub	r14, r18
+    5b38:	f3 0a       	sbc	r15, r19
+    5b3a:	04 0b       	sbc	r16, r20
+    5b3c:	15 0b       	sbc	r17, r21
+    5b3e:	d8 01       	movw	r26, r16
+    5b40:	c7 01       	movw	r24, r14
+    5b42:	62 96       	adiw	r28, 0x12	; 18
+    5b44:	0f ac       	ldd	r0, Y+63	; 0x3f
+    5b46:	62 97       	sbiw	r28, 0x12	; 18
+    5b48:	04 c0       	rjmp	.+8      	; 0x5b52 <__moddi3+0x8e8>
+    5b4a:	b6 95       	lsr	r27
+    5b4c:	a7 95       	ror	r26
+    5b4e:	97 95       	ror	r25
+    5b50:	87 95       	ror	r24
+    5b52:	0a 94       	dec	r0
+    5b54:	d2 f7       	brpl	.-12     	; 0x5b4a <__moddi3+0x8e0>
+    5b56:	89 a7       	std	Y+41, r24	; 0x29
+    5b58:	9a a7       	std	Y+42, r25	; 0x2a
+    5b5a:	ab a7       	std	Y+43, r26	; 0x2b
+    5b5c:	bc a7       	std	Y+44, r27	; 0x2c
+    5b5e:	1d a6       	std	Y+45, r1	; 0x2d
+    5b60:	1e a6       	std	Y+46, r1	; 0x2e
+    5b62:	1f a6       	std	Y+47, r1	; 0x2f
+    5b64:	18 aa       	std	Y+48, r1	; 0x30
+    5b66:	89 8b       	std	Y+17, r24	; 0x11
+    5b68:	8a a5       	ldd	r24, Y+42	; 0x2a
+    5b6a:	8a 8b       	std	Y+18, r24	; 0x12
+    5b6c:	8b a5       	ldd	r24, Y+43	; 0x2b
+    5b6e:	8b 8b       	std	Y+19, r24	; 0x13
+    5b70:	8c a5       	ldd	r24, Y+44	; 0x2c
+    5b72:	8c 8b       	std	Y+20, r24	; 0x14
+    5b74:	8d a5       	ldd	r24, Y+45	; 0x2d
+    5b76:	8d 8b       	std	Y+21, r24	; 0x15
+    5b78:	2f c3       	rjmp	.+1630   	; 0x61d8 <__moddi3+0xf6e>
+    5b7a:	6a 14       	cp	r6, r10
+    5b7c:	7b 04       	cpc	r7, r11
+    5b7e:	8c 04       	cpc	r8, r12
+    5b80:	9d 04       	cpc	r9, r13
+    5b82:	48 f4       	brcc	.+18     	; 0x5b96 <__moddi3+0x92c>
+    5b84:	49 8b       	std	Y+17, r20	; 0x11
+    5b86:	5a 8b       	std	Y+18, r21	; 0x12
+    5b88:	6b 8b       	std	Y+19, r22	; 0x13
+    5b8a:	7c 8b       	std	Y+20, r23	; 0x14
+    5b8c:	8d 8b       	std	Y+21, r24	; 0x15
+    5b8e:	9e 8b       	std	Y+22, r25	; 0x16
+    5b90:	2f 8b       	std	Y+23, r18	; 0x17
+    5b92:	38 8f       	std	Y+24, r19	; 0x18
+    5b94:	27 c3       	rjmp	.+1614   	; 0x61e4 <__moddi3+0xf7a>
+    5b96:	00 e0       	ldi	r16, 0x00	; 0
+    5b98:	a0 16       	cp	r10, r16
+    5b9a:	00 e0       	ldi	r16, 0x00	; 0
+    5b9c:	b0 06       	cpc	r11, r16
+    5b9e:	01 e0       	ldi	r16, 0x01	; 1
+    5ba0:	c0 06       	cpc	r12, r16
+    5ba2:	00 e0       	ldi	r16, 0x00	; 0
+    5ba4:	d0 06       	cpc	r13, r16
+    5ba6:	88 f4       	brcc	.+34     	; 0x5bca <__moddi3+0x960>
+    5ba8:	1f ef       	ldi	r17, 0xFF	; 255
+    5baa:	a1 16       	cp	r10, r17
+    5bac:	b1 04       	cpc	r11, r1
+    5bae:	c1 04       	cpc	r12, r1
+    5bb0:	d1 04       	cpc	r13, r1
+    5bb2:	39 f0       	breq	.+14     	; 0x5bc2 <__moddi3+0x958>
+    5bb4:	30 f0       	brcs	.+12     	; 0x5bc2 <__moddi3+0x958>
+    5bb6:	28 e0       	ldi	r18, 0x08	; 8
+    5bb8:	e2 2e       	mov	r14, r18
+    5bba:	f1 2c       	mov	r15, r1
+    5bbc:	01 2d       	mov	r16, r1
+    5bbe:	11 2d       	mov	r17, r1
+    5bc0:	18 c0       	rjmp	.+48     	; 0x5bf2 <__moddi3+0x988>
+    5bc2:	ee 24       	eor	r14, r14
+    5bc4:	ff 24       	eor	r15, r15
+    5bc6:	87 01       	movw	r16, r14
+    5bc8:	14 c0       	rjmp	.+40     	; 0x5bf2 <__moddi3+0x988>
+    5bca:	20 e0       	ldi	r18, 0x00	; 0
+    5bcc:	a2 16       	cp	r10, r18
+    5bce:	20 e0       	ldi	r18, 0x00	; 0
+    5bd0:	b2 06       	cpc	r11, r18
+    5bd2:	20 e0       	ldi	r18, 0x00	; 0
+    5bd4:	c2 06       	cpc	r12, r18
+    5bd6:	21 e0       	ldi	r18, 0x01	; 1
+    5bd8:	d2 06       	cpc	r13, r18
+    5bda:	30 f0       	brcs	.+12     	; 0x5be8 <__moddi3+0x97e>
+    5bdc:	98 e1       	ldi	r25, 0x18	; 24
+    5bde:	e9 2e       	mov	r14, r25
+    5be0:	f1 2c       	mov	r15, r1
+    5be2:	01 2d       	mov	r16, r1
+    5be4:	11 2d       	mov	r17, r1
+    5be6:	05 c0       	rjmp	.+10     	; 0x5bf2 <__moddi3+0x988>
+    5be8:	80 e1       	ldi	r24, 0x10	; 16
+    5bea:	e8 2e       	mov	r14, r24
+    5bec:	f1 2c       	mov	r15, r1
+    5bee:	01 2d       	mov	r16, r1
+    5bf0:	11 2d       	mov	r17, r1
+    5bf2:	d6 01       	movw	r26, r12
+    5bf4:	c5 01       	movw	r24, r10
+    5bf6:	0e 2c       	mov	r0, r14
+    5bf8:	04 c0       	rjmp	.+8      	; 0x5c02 <__moddi3+0x998>
+    5bfa:	b6 95       	lsr	r27
+    5bfc:	a7 95       	ror	r26
+    5bfe:	97 95       	ror	r25
+    5c00:	87 95       	ror	r24
+    5c02:	0a 94       	dec	r0
+    5c04:	d2 f7       	brpl	.-12     	; 0x5bfa <__moddi3+0x990>
+    5c06:	8c 53       	subi	r24, 0x3C	; 60
+    5c08:	9e 4f       	sbci	r25, 0xFE	; 254
+    5c0a:	dc 01       	movw	r26, r24
+    5c0c:	2c 91       	ld	r18, X
+    5c0e:	80 e2       	ldi	r24, 0x20	; 32
+    5c10:	90 e0       	ldi	r25, 0x00	; 0
+    5c12:	a0 e0       	ldi	r26, 0x00	; 0
+    5c14:	b0 e0       	ldi	r27, 0x00	; 0
+    5c16:	8e 19       	sub	r24, r14
+    5c18:	9f 09       	sbc	r25, r15
+    5c1a:	a0 0b       	sbc	r26, r16
+    5c1c:	b1 0b       	sbc	r27, r17
+    5c1e:	82 1b       	sub	r24, r18
+    5c20:	91 09       	sbc	r25, r1
+    5c22:	a1 09       	sbc	r26, r1
+    5c24:	b1 09       	sbc	r27, r1
+    5c26:	00 97       	sbiw	r24, 0x00	; 0
+    5c28:	a1 05       	cpc	r26, r1
+    5c2a:	b1 05       	cpc	r27, r1
+    5c2c:	09 f0       	breq	.+2      	; 0x5c30 <__moddi3+0x9c6>
+    5c2e:	59 c0       	rjmp	.+178    	; 0x5ce2 <__moddi3+0xa78>
+    5c30:	a6 14       	cp	r10, r6
+    5c32:	b7 04       	cpc	r11, r7
+    5c34:	c8 04       	cpc	r12, r8
+    5c36:	d9 04       	cpc	r13, r9
+    5c38:	70 f0       	brcs	.+28     	; 0x5c56 <__moddi3+0x9ec>
+    5c3a:	e8 96       	adiw	r28, 0x38	; 56
+    5c3c:	ec ac       	ldd	r14, Y+60	; 0x3c
+    5c3e:	fd ac       	ldd	r15, Y+61	; 0x3d
+    5c40:	0e ad       	ldd	r16, Y+62	; 0x3e
+    5c42:	1f ad       	ldd	r17, Y+63	; 0x3f
+    5c44:	e8 97       	sbiw	r28, 0x38	; 56
+    5c46:	e2 14       	cp	r14, r2
+    5c48:	f3 04       	cpc	r15, r3
+    5c4a:	04 05       	cpc	r16, r4
+    5c4c:	15 05       	cpc	r17, r5
+    5c4e:	18 f4       	brcc	.+6      	; 0x5c56 <__moddi3+0x9ec>
+    5c50:	d8 01       	movw	r26, r16
+    5c52:	c7 01       	movw	r24, r14
+    5c54:	2f c0       	rjmp	.+94     	; 0x5cb4 <__moddi3+0xa4a>
+    5c56:	e8 96       	adiw	r28, 0x38	; 56
+    5c58:	8c ad       	ldd	r24, Y+60	; 0x3c
+    5c5a:	9d ad       	ldd	r25, Y+61	; 0x3d
+    5c5c:	ae ad       	ldd	r26, Y+62	; 0x3e
+    5c5e:	bf ad       	ldd	r27, Y+63	; 0x3f
+    5c60:	e8 97       	sbiw	r28, 0x38	; 56
+    5c62:	82 19       	sub	r24, r2
+    5c64:	93 09       	sbc	r25, r3
+    5c66:	a4 09       	sbc	r26, r4
+    5c68:	b5 09       	sbc	r27, r5
+    5c6a:	a4 01       	movw	r20, r8
+    5c6c:	93 01       	movw	r18, r6
+    5c6e:	2a 19       	sub	r18, r10
+    5c70:	3b 09       	sbc	r19, r11
+    5c72:	4c 09       	sbc	r20, r12
+    5c74:	5d 09       	sbc	r21, r13
+    5c76:	aa 24       	eor	r10, r10
+    5c78:	bb 24       	eor	r11, r11
+    5c7a:	65 01       	movw	r12, r10
+    5c7c:	e8 96       	adiw	r28, 0x38	; 56
+    5c7e:	6c ac       	ldd	r6, Y+60	; 0x3c
+    5c80:	7d ac       	ldd	r7, Y+61	; 0x3d
+    5c82:	8e ac       	ldd	r8, Y+62	; 0x3e
+    5c84:	9f ac       	ldd	r9, Y+63	; 0x3f
+    5c86:	e8 97       	sbiw	r28, 0x38	; 56
+    5c88:	68 16       	cp	r6, r24
+    5c8a:	79 06       	cpc	r7, r25
+    5c8c:	8a 06       	cpc	r8, r26
+    5c8e:	9b 06       	cpc	r9, r27
+    5c90:	28 f4       	brcc	.+10     	; 0x5c9c <__moddi3+0xa32>
+    5c92:	11 e0       	ldi	r17, 0x01	; 1
+    5c94:	a1 2e       	mov	r10, r17
+    5c96:	b1 2c       	mov	r11, r1
+    5c98:	c1 2c       	mov	r12, r1
+    5c9a:	d1 2c       	mov	r13, r1
+    5c9c:	79 01       	movw	r14, r18
+    5c9e:	8a 01       	movw	r16, r20
+    5ca0:	ea 18       	sub	r14, r10
+    5ca2:	fb 08       	sbc	r15, r11
+    5ca4:	0c 09       	sbc	r16, r12
+    5ca6:	1d 09       	sbc	r17, r13
+    5ca8:	61 96       	adiw	r28, 0x11	; 17
+    5caa:	ec ae       	std	Y+60, r14	; 0x3c
+    5cac:	fd ae       	std	Y+61, r15	; 0x3d
+    5cae:	0e af       	std	Y+62, r16	; 0x3e
+    5cb0:	1f af       	std	Y+63, r17	; 0x3f
+    5cb2:	61 97       	sbiw	r28, 0x11	; 17
+    5cb4:	89 a7       	std	Y+41, r24	; 0x29
+    5cb6:	9a a7       	std	Y+42, r25	; 0x2a
+    5cb8:	ab a7       	std	Y+43, r26	; 0x2b
+    5cba:	bc a7       	std	Y+44, r27	; 0x2c
+    5cbc:	61 96       	adiw	r28, 0x11	; 17
+    5cbe:	0c ad       	ldd	r16, Y+60	; 0x3c
+    5cc0:	1d ad       	ldd	r17, Y+61	; 0x3d
+    5cc2:	2e ad       	ldd	r18, Y+62	; 0x3e
+    5cc4:	3f ad       	ldd	r19, Y+63	; 0x3f
+    5cc6:	61 97       	sbiw	r28, 0x11	; 17
+    5cc8:	0d a7       	std	Y+45, r16	; 0x2d
+    5cca:	1e a7       	std	Y+46, r17	; 0x2e
+    5ccc:	2f a7       	std	Y+47, r18	; 0x2f
+    5cce:	38 ab       	std	Y+48, r19	; 0x30
+    5cd0:	89 8b       	std	Y+17, r24	; 0x11
+    5cd2:	8a a5       	ldd	r24, Y+42	; 0x2a
+    5cd4:	8a 8b       	std	Y+18, r24	; 0x12
+    5cd6:	8b a5       	ldd	r24, Y+43	; 0x2b
+    5cd8:	8b 8b       	std	Y+19, r24	; 0x13
+    5cda:	8c a5       	ldd	r24, Y+44	; 0x2c
+    5cdc:	8c 8b       	std	Y+20, r24	; 0x14
+    5cde:	0d 8b       	std	Y+21, r16	; 0x15
+    5ce0:	7b c2       	rjmp	.+1270   	; 0x61d8 <__moddi3+0xf6e>
+    5ce2:	e3 96       	adiw	r28, 0x33	; 51
+    5ce4:	8f af       	std	Y+63, r24	; 0x3f
+    5ce6:	e3 97       	sbiw	r28, 0x33	; 51
+    5ce8:	a6 01       	movw	r20, r12
+    5cea:	95 01       	movw	r18, r10
+    5cec:	08 2e       	mov	r0, r24
+    5cee:	04 c0       	rjmp	.+8      	; 0x5cf8 <__moddi3+0xa8e>
+    5cf0:	22 0f       	add	r18, r18
+    5cf2:	33 1f       	adc	r19, r19
+    5cf4:	44 1f       	adc	r20, r20
+    5cf6:	55 1f       	adc	r21, r21
+    5cf8:	0a 94       	dec	r0
+    5cfa:	d2 f7       	brpl	.-12     	; 0x5cf0 <__moddi3+0xa86>
+    5cfc:	10 e2       	ldi	r17, 0x20	; 32
+    5cfe:	18 1b       	sub	r17, r24
+    5d00:	e2 96       	adiw	r28, 0x32	; 50
+    5d02:	1f af       	std	Y+63, r17	; 0x3f
+    5d04:	e2 97       	sbiw	r28, 0x32	; 50
+    5d06:	d2 01       	movw	r26, r4
+    5d08:	c1 01       	movw	r24, r2
+    5d0a:	01 2e       	mov	r0, r17
+    5d0c:	04 c0       	rjmp	.+8      	; 0x5d16 <__moddi3+0xaac>
+    5d0e:	b6 95       	lsr	r27
+    5d10:	a7 95       	ror	r26
+    5d12:	97 95       	ror	r25
+    5d14:	87 95       	ror	r24
+    5d16:	0a 94       	dec	r0
+    5d18:	d2 f7       	brpl	.-12     	; 0x5d0e <__moddi3+0xaa4>
+    5d1a:	5c 01       	movw	r10, r24
+    5d1c:	6d 01       	movw	r12, r26
+    5d1e:	a2 2a       	or	r10, r18
+    5d20:	b3 2a       	or	r11, r19
+    5d22:	c4 2a       	or	r12, r20
+    5d24:	d5 2a       	or	r13, r21
+    5d26:	25 96       	adiw	r28, 0x05	; 5
+    5d28:	ac ae       	std	Y+60, r10	; 0x3c
+    5d2a:	bd ae       	std	Y+61, r11	; 0x3d
+    5d2c:	ce ae       	std	Y+62, r12	; 0x3e
+    5d2e:	df ae       	std	Y+63, r13	; 0x3f
+    5d30:	25 97       	sbiw	r28, 0x05	; 5
+    5d32:	72 01       	movw	r14, r4
+    5d34:	61 01       	movw	r12, r2
+    5d36:	e3 96       	adiw	r28, 0x33	; 51
+    5d38:	0f ac       	ldd	r0, Y+63	; 0x3f
+    5d3a:	e3 97       	sbiw	r28, 0x33	; 51
+    5d3c:	04 c0       	rjmp	.+8      	; 0x5d46 <__moddi3+0xadc>
+    5d3e:	cc 0c       	add	r12, r12
+    5d40:	dd 1c       	adc	r13, r13
+    5d42:	ee 1c       	adc	r14, r14
+    5d44:	ff 1c       	adc	r15, r15
+    5d46:	0a 94       	dec	r0
+    5d48:	d2 f7       	brpl	.-12     	; 0x5d3e <__moddi3+0xad4>
+    5d4a:	21 96       	adiw	r28, 0x01	; 1
+    5d4c:	cc ae       	std	Y+60, r12	; 0x3c
+    5d4e:	dd ae       	std	Y+61, r13	; 0x3d
+    5d50:	ee ae       	std	Y+62, r14	; 0x3e
+    5d52:	ff ae       	std	Y+63, r15	; 0x3f
+    5d54:	21 97       	sbiw	r28, 0x01	; 1
+    5d56:	64 01       	movw	r12, r8
+    5d58:	53 01       	movw	r10, r6
+    5d5a:	01 2e       	mov	r0, r17
+    5d5c:	04 c0       	rjmp	.+8      	; 0x5d66 <__moddi3+0xafc>
+    5d5e:	d6 94       	lsr	r13
+    5d60:	c7 94       	ror	r12
+    5d62:	b7 94       	ror	r11
+    5d64:	a7 94       	ror	r10
+    5d66:	0a 94       	dec	r0
+    5d68:	d2 f7       	brpl	.-12     	; 0x5d5e <__moddi3+0xaf4>
+    5d6a:	a4 01       	movw	r20, r8
+    5d6c:	93 01       	movw	r18, r6
+    5d6e:	e3 96       	adiw	r28, 0x33	; 51
+    5d70:	0f ac       	ldd	r0, Y+63	; 0x3f
+    5d72:	e3 97       	sbiw	r28, 0x33	; 51
+    5d74:	04 c0       	rjmp	.+8      	; 0x5d7e <__moddi3+0xb14>
+    5d76:	22 0f       	add	r18, r18
+    5d78:	33 1f       	adc	r19, r19
+    5d7a:	44 1f       	adc	r20, r20
+    5d7c:	55 1f       	adc	r21, r21
+    5d7e:	0a 94       	dec	r0
+    5d80:	d2 f7       	brpl	.-12     	; 0x5d76 <__moddi3+0xb0c>
+    5d82:	e8 96       	adiw	r28, 0x38	; 56
+    5d84:	8c ad       	ldd	r24, Y+60	; 0x3c
+    5d86:	9d ad       	ldd	r25, Y+61	; 0x3d
+    5d88:	ae ad       	ldd	r26, Y+62	; 0x3e
+    5d8a:	bf ad       	ldd	r27, Y+63	; 0x3f
+    5d8c:	e8 97       	sbiw	r28, 0x38	; 56
+    5d8e:	04 c0       	rjmp	.+8      	; 0x5d98 <__moddi3+0xb2e>
+    5d90:	b6 95       	lsr	r27
+    5d92:	a7 95       	ror	r26
+    5d94:	97 95       	ror	r25
+    5d96:	87 95       	ror	r24
+    5d98:	1a 95       	dec	r17
+    5d9a:	d2 f7       	brpl	.-12     	; 0x5d90 <__moddi3+0xb26>
+    5d9c:	7c 01       	movw	r14, r24
+    5d9e:	8d 01       	movw	r16, r26
+    5da0:	e2 2a       	or	r14, r18
+    5da2:	f3 2a       	or	r15, r19
+    5da4:	04 2b       	or	r16, r20
+    5da6:	15 2b       	or	r17, r21
+    5da8:	e9 ae       	std	Y+57, r14	; 0x39
+    5daa:	fa ae       	std	Y+58, r15	; 0x3a
+    5dac:	0b af       	std	Y+59, r16	; 0x3b
+    5dae:	1c af       	std	Y+60, r17	; 0x3c
+    5db0:	e8 96       	adiw	r28, 0x38	; 56
+    5db2:	0c ad       	ldd	r16, Y+60	; 0x3c
+    5db4:	1d ad       	ldd	r17, Y+61	; 0x3d
+    5db6:	2e ad       	ldd	r18, Y+62	; 0x3e
+    5db8:	3f ad       	ldd	r19, Y+63	; 0x3f
+    5dba:	e8 97       	sbiw	r28, 0x38	; 56
+    5dbc:	e3 96       	adiw	r28, 0x33	; 51
+    5dbe:	0f ac       	ldd	r0, Y+63	; 0x3f
+    5dc0:	e3 97       	sbiw	r28, 0x33	; 51
+    5dc2:	04 c0       	rjmp	.+8      	; 0x5dcc <__moddi3+0xb62>
+    5dc4:	00 0f       	add	r16, r16
+    5dc6:	11 1f       	adc	r17, r17
+    5dc8:	22 1f       	adc	r18, r18
+    5dca:	33 1f       	adc	r19, r19
+    5dcc:	0a 94       	dec	r0
+    5dce:	d2 f7       	brpl	.-12     	; 0x5dc4 <__moddi3+0xb5a>
+    5dd0:	0d ab       	std	Y+53, r16	; 0x35
+    5dd2:	1e ab       	std	Y+54, r17	; 0x36
+    5dd4:	2f ab       	std	Y+55, r18	; 0x37
+    5dd6:	38 af       	std	Y+56, r19	; 0x38
+    5dd8:	25 96       	adiw	r28, 0x05	; 5
+    5dda:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5ddc:	3d ad       	ldd	r19, Y+61	; 0x3d
+    5dde:	4e ad       	ldd	r20, Y+62	; 0x3e
+    5de0:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5de2:	25 97       	sbiw	r28, 0x05	; 5
+    5de4:	3a 01       	movw	r6, r20
+    5de6:	88 24       	eor	r8, r8
+    5de8:	99 24       	eor	r9, r9
+    5dea:	40 70       	andi	r20, 0x00	; 0
+    5dec:	50 70       	andi	r21, 0x00	; 0
+    5dee:	a5 96       	adiw	r28, 0x25	; 37
+    5df0:	2c af       	std	Y+60, r18	; 0x3c
+    5df2:	3d af       	std	Y+61, r19	; 0x3d
+    5df4:	4e af       	std	Y+62, r20	; 0x3e
+    5df6:	5f af       	std	Y+63, r21	; 0x3f
+    5df8:	a5 97       	sbiw	r28, 0x25	; 37
+    5dfa:	c6 01       	movw	r24, r12
+    5dfc:	b5 01       	movw	r22, r10
+    5dfe:	a4 01       	movw	r20, r8
+    5e00:	93 01       	movw	r18, r6
+    5e02:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5e06:	7b 01       	movw	r14, r22
+    5e08:	8c 01       	movw	r16, r24
+    5e0a:	c6 01       	movw	r24, r12
+    5e0c:	b5 01       	movw	r22, r10
+    5e0e:	a4 01       	movw	r20, r8
+    5e10:	93 01       	movw	r18, r6
+    5e12:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5e16:	c9 01       	movw	r24, r18
+    5e18:	da 01       	movw	r26, r20
+    5e1a:	1c 01       	movw	r2, r24
+    5e1c:	2d 01       	movw	r4, r26
+    5e1e:	c2 01       	movw	r24, r4
+    5e20:	b1 01       	movw	r22, r2
+    5e22:	a5 96       	adiw	r28, 0x25	; 37
+    5e24:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5e26:	3d ad       	ldd	r19, Y+61	; 0x3d
+    5e28:	4e ad       	ldd	r20, Y+62	; 0x3e
+    5e2a:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5e2c:	a5 97       	sbiw	r28, 0x25	; 37
+    5e2e:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5e32:	9b 01       	movw	r18, r22
+    5e34:	ac 01       	movw	r20, r24
+    5e36:	87 01       	movw	r16, r14
+    5e38:	ff 24       	eor	r15, r15
+    5e3a:	ee 24       	eor	r14, r14
+    5e3c:	a9 ac       	ldd	r10, Y+57	; 0x39
+    5e3e:	ba ac       	ldd	r11, Y+58	; 0x3a
+    5e40:	cb ac       	ldd	r12, Y+59	; 0x3b
+    5e42:	dc ac       	ldd	r13, Y+60	; 0x3c
+    5e44:	c6 01       	movw	r24, r12
+    5e46:	aa 27       	eor	r26, r26
+    5e48:	bb 27       	eor	r27, r27
+    5e4a:	57 01       	movw	r10, r14
+    5e4c:	68 01       	movw	r12, r16
+    5e4e:	a8 2a       	or	r10, r24
+    5e50:	b9 2a       	or	r11, r25
+    5e52:	ca 2a       	or	r12, r26
+    5e54:	db 2a       	or	r13, r27
+    5e56:	a2 16       	cp	r10, r18
+    5e58:	b3 06       	cpc	r11, r19
+    5e5a:	c4 06       	cpc	r12, r20
+    5e5c:	d5 06       	cpc	r13, r21
+    5e5e:	10 f5       	brcc	.+68     	; 0x5ea4 <__moddi3+0xc3a>
+    5e60:	08 94       	sec
+    5e62:	21 08       	sbc	r2, r1
+    5e64:	31 08       	sbc	r3, r1
+    5e66:	41 08       	sbc	r4, r1
+    5e68:	51 08       	sbc	r5, r1
+    5e6a:	25 96       	adiw	r28, 0x05	; 5
+    5e6c:	ec ac       	ldd	r14, Y+60	; 0x3c
+    5e6e:	fd ac       	ldd	r15, Y+61	; 0x3d
+    5e70:	0e ad       	ldd	r16, Y+62	; 0x3e
+    5e72:	1f ad       	ldd	r17, Y+63	; 0x3f
+    5e74:	25 97       	sbiw	r28, 0x05	; 5
+    5e76:	ae 0c       	add	r10, r14
+    5e78:	bf 1c       	adc	r11, r15
+    5e7a:	c0 1e       	adc	r12, r16
+    5e7c:	d1 1e       	adc	r13, r17
+    5e7e:	ae 14       	cp	r10, r14
+    5e80:	bf 04       	cpc	r11, r15
+    5e82:	c0 06       	cpc	r12, r16
+    5e84:	d1 06       	cpc	r13, r17
+    5e86:	70 f0       	brcs	.+28     	; 0x5ea4 <__moddi3+0xc3a>
+    5e88:	a2 16       	cp	r10, r18
+    5e8a:	b3 06       	cpc	r11, r19
+    5e8c:	c4 06       	cpc	r12, r20
+    5e8e:	d5 06       	cpc	r13, r21
+    5e90:	48 f4       	brcc	.+18     	; 0x5ea4 <__moddi3+0xc3a>
+    5e92:	08 94       	sec
+    5e94:	21 08       	sbc	r2, r1
+    5e96:	31 08       	sbc	r3, r1
+    5e98:	41 08       	sbc	r4, r1
+    5e9a:	51 08       	sbc	r5, r1
+    5e9c:	ae 0c       	add	r10, r14
+    5e9e:	bf 1c       	adc	r11, r15
+    5ea0:	c0 1e       	adc	r12, r16
+    5ea2:	d1 1e       	adc	r13, r17
+    5ea4:	a2 1a       	sub	r10, r18
+    5ea6:	b3 0a       	sbc	r11, r19
+    5ea8:	c4 0a       	sbc	r12, r20
+    5eaa:	d5 0a       	sbc	r13, r21
+    5eac:	c6 01       	movw	r24, r12
+    5eae:	b5 01       	movw	r22, r10
+    5eb0:	a4 01       	movw	r20, r8
+    5eb2:	93 01       	movw	r18, r6
+    5eb4:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5eb8:	7b 01       	movw	r14, r22
+    5eba:	8c 01       	movw	r16, r24
+    5ebc:	c6 01       	movw	r24, r12
+    5ebe:	b5 01       	movw	r22, r10
+    5ec0:	a4 01       	movw	r20, r8
+    5ec2:	93 01       	movw	r18, r6
+    5ec4:	0e 94 d3 31 	call	0x63a6	; 0x63a6 <__udivmodsi4>
+    5ec8:	c9 01       	movw	r24, r18
+    5eca:	da 01       	movw	r26, r20
+    5ecc:	3c 01       	movw	r6, r24
+    5ece:	4d 01       	movw	r8, r26
+    5ed0:	c4 01       	movw	r24, r8
+    5ed2:	b3 01       	movw	r22, r6
+    5ed4:	a5 96       	adiw	r28, 0x25	; 37
+    5ed6:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5ed8:	3d ad       	ldd	r19, Y+61	; 0x3d
+    5eda:	4e ad       	ldd	r20, Y+62	; 0x3e
+    5edc:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5ede:	a5 97       	sbiw	r28, 0x25	; 37
+    5ee0:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5ee4:	9b 01       	movw	r18, r22
+    5ee6:	ac 01       	movw	r20, r24
+    5ee8:	87 01       	movw	r16, r14
+    5eea:	ff 24       	eor	r15, r15
+    5eec:	ee 24       	eor	r14, r14
+    5eee:	89 ad       	ldd	r24, Y+57	; 0x39
+    5ef0:	9a ad       	ldd	r25, Y+58	; 0x3a
+    5ef2:	ab ad       	ldd	r26, Y+59	; 0x3b
+    5ef4:	bc ad       	ldd	r27, Y+60	; 0x3c
+    5ef6:	a0 70       	andi	r26, 0x00	; 0
+    5ef8:	b0 70       	andi	r27, 0x00	; 0
+    5efa:	57 01       	movw	r10, r14
+    5efc:	68 01       	movw	r12, r16
+    5efe:	a8 2a       	or	r10, r24
+    5f00:	b9 2a       	or	r11, r25
+    5f02:	ca 2a       	or	r12, r26
+    5f04:	db 2a       	or	r13, r27
+    5f06:	a2 16       	cp	r10, r18
+    5f08:	b3 06       	cpc	r11, r19
+    5f0a:	c4 06       	cpc	r12, r20
+    5f0c:	d5 06       	cpc	r13, r21
+    5f0e:	10 f5       	brcc	.+68     	; 0x5f54 <__moddi3+0xcea>
+    5f10:	08 94       	sec
+    5f12:	61 08       	sbc	r6, r1
+    5f14:	71 08       	sbc	r7, r1
+    5f16:	81 08       	sbc	r8, r1
+    5f18:	91 08       	sbc	r9, r1
+    5f1a:	25 96       	adiw	r28, 0x05	; 5
+    5f1c:	6c ad       	ldd	r22, Y+60	; 0x3c
+    5f1e:	7d ad       	ldd	r23, Y+61	; 0x3d
+    5f20:	8e ad       	ldd	r24, Y+62	; 0x3e
+    5f22:	9f ad       	ldd	r25, Y+63	; 0x3f
+    5f24:	25 97       	sbiw	r28, 0x05	; 5
+    5f26:	a6 0e       	add	r10, r22
+    5f28:	b7 1e       	adc	r11, r23
+    5f2a:	c8 1e       	adc	r12, r24
+    5f2c:	d9 1e       	adc	r13, r25
+    5f2e:	a6 16       	cp	r10, r22
+    5f30:	b7 06       	cpc	r11, r23
+    5f32:	c8 06       	cpc	r12, r24
+    5f34:	d9 06       	cpc	r13, r25
+    5f36:	70 f0       	brcs	.+28     	; 0x5f54 <__moddi3+0xcea>
+    5f38:	a2 16       	cp	r10, r18
+    5f3a:	b3 06       	cpc	r11, r19
+    5f3c:	c4 06       	cpc	r12, r20
+    5f3e:	d5 06       	cpc	r13, r21
+    5f40:	48 f4       	brcc	.+18     	; 0x5f54 <__moddi3+0xcea>
+    5f42:	08 94       	sec
+    5f44:	61 08       	sbc	r6, r1
+    5f46:	71 08       	sbc	r7, r1
+    5f48:	81 08       	sbc	r8, r1
+    5f4a:	91 08       	sbc	r9, r1
+    5f4c:	a6 0e       	add	r10, r22
+    5f4e:	b7 1e       	adc	r11, r23
+    5f50:	c8 1e       	adc	r12, r24
+    5f52:	d9 1e       	adc	r13, r25
+    5f54:	d6 01       	movw	r26, r12
+    5f56:	c5 01       	movw	r24, r10
+    5f58:	82 1b       	sub	r24, r18
+    5f5a:	93 0b       	sbc	r25, r19
+    5f5c:	a4 0b       	sbc	r26, r20
+    5f5e:	b5 0b       	sbc	r27, r21
+    5f60:	89 ab       	std	Y+49, r24	; 0x31
+    5f62:	9a ab       	std	Y+50, r25	; 0x32
+    5f64:	ab ab       	std	Y+51, r26	; 0x33
+    5f66:	bc ab       	std	Y+52, r27	; 0x34
+    5f68:	d1 01       	movw	r26, r2
+    5f6a:	99 27       	eor	r25, r25
+    5f6c:	88 27       	eor	r24, r24
+    5f6e:	84 01       	movw	r16, r8
+    5f70:	73 01       	movw	r14, r6
+    5f72:	e8 2a       	or	r14, r24
+    5f74:	f9 2a       	or	r15, r25
+    5f76:	0a 2b       	or	r16, r26
+    5f78:	1b 2b       	or	r17, r27
+    5f7a:	8f ef       	ldi	r24, 0xFF	; 255
+    5f7c:	a8 2e       	mov	r10, r24
+    5f7e:	8f ef       	ldi	r24, 0xFF	; 255
+    5f80:	b8 2e       	mov	r11, r24
+    5f82:	c1 2c       	mov	r12, r1
+    5f84:	d1 2c       	mov	r13, r1
+    5f86:	ae 20       	and	r10, r14
+    5f88:	bf 20       	and	r11, r15
+    5f8a:	c0 22       	and	r12, r16
+    5f8c:	d1 22       	and	r13, r17
+    5f8e:	78 01       	movw	r14, r16
+    5f90:	00 27       	eor	r16, r16
+    5f92:	11 27       	eor	r17, r17
+    5f94:	21 96       	adiw	r28, 0x01	; 1
+    5f96:	6c ac       	ldd	r6, Y+60	; 0x3c
+    5f98:	7d ac       	ldd	r7, Y+61	; 0x3d
+    5f9a:	8e ac       	ldd	r8, Y+62	; 0x3e
+    5f9c:	9f ac       	ldd	r9, Y+63	; 0x3f
+    5f9e:	21 97       	sbiw	r28, 0x01	; 1
+    5fa0:	2f ef       	ldi	r18, 0xFF	; 255
+    5fa2:	3f ef       	ldi	r19, 0xFF	; 255
+    5fa4:	40 e0       	ldi	r20, 0x00	; 0
+    5fa6:	50 e0       	ldi	r21, 0x00	; 0
+    5fa8:	62 22       	and	r6, r18
+    5faa:	73 22       	and	r7, r19
+    5fac:	84 22       	and	r8, r20
+    5fae:	95 22       	and	r9, r21
+    5fb0:	21 96       	adiw	r28, 0x01	; 1
+    5fb2:	6c ad       	ldd	r22, Y+60	; 0x3c
+    5fb4:	7d ad       	ldd	r23, Y+61	; 0x3d
+    5fb6:	8e ad       	ldd	r24, Y+62	; 0x3e
+    5fb8:	9f ad       	ldd	r25, Y+63	; 0x3f
+    5fba:	21 97       	sbiw	r28, 0x01	; 1
+    5fbc:	ac 01       	movw	r20, r24
+    5fbe:	66 27       	eor	r22, r22
+    5fc0:	77 27       	eor	r23, r23
+    5fc2:	ad 96       	adiw	r28, 0x2d	; 45
+    5fc4:	4c af       	std	Y+60, r20	; 0x3c
+    5fc6:	5d af       	std	Y+61, r21	; 0x3d
+    5fc8:	6e af       	std	Y+62, r22	; 0x3e
+    5fca:	7f af       	std	Y+63, r23	; 0x3f
+    5fcc:	ad 97       	sbiw	r28, 0x2d	; 45
+    5fce:	c6 01       	movw	r24, r12
+    5fd0:	b5 01       	movw	r22, r10
+    5fd2:	a4 01       	movw	r20, r8
+    5fd4:	93 01       	movw	r18, r6
+    5fd6:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5fda:	a9 96       	adiw	r28, 0x29	; 41
+    5fdc:	6c af       	std	Y+60, r22	; 0x3c
+    5fde:	7d af       	std	Y+61, r23	; 0x3d
+    5fe0:	8e af       	std	Y+62, r24	; 0x3e
+    5fe2:	9f af       	std	Y+63, r25	; 0x3f
+    5fe4:	a9 97       	sbiw	r28, 0x29	; 41
+    5fe6:	c6 01       	movw	r24, r12
+    5fe8:	b5 01       	movw	r22, r10
+    5fea:	ad 96       	adiw	r28, 0x2d	; 45
+    5fec:	2c ad       	ldd	r18, Y+60	; 0x3c
+    5fee:	3d ad       	ldd	r19, Y+61	; 0x3d
+    5ff0:	4e ad       	ldd	r20, Y+62	; 0x3e
+    5ff2:	5f ad       	ldd	r21, Y+63	; 0x3f
+    5ff4:	ad 97       	sbiw	r28, 0x2d	; 45
+    5ff6:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    5ffa:	1b 01       	movw	r2, r22
+    5ffc:	2c 01       	movw	r4, r24
+    5ffe:	c8 01       	movw	r24, r16
+    6000:	b7 01       	movw	r22, r14
+    6002:	a4 01       	movw	r20, r8
+    6004:	93 01       	movw	r18, r6
+    6006:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    600a:	5b 01       	movw	r10, r22
+    600c:	6c 01       	movw	r12, r24
+    600e:	c8 01       	movw	r24, r16
+    6010:	b7 01       	movw	r22, r14
+    6012:	ad 96       	adiw	r28, 0x2d	; 45
+    6014:	2c ad       	ldd	r18, Y+60	; 0x3c
+    6016:	3d ad       	ldd	r19, Y+61	; 0x3d
+    6018:	4e ad       	ldd	r20, Y+62	; 0x3e
+    601a:	5f ad       	ldd	r21, Y+63	; 0x3f
+    601c:	ad 97       	sbiw	r28, 0x2d	; 45
+    601e:	0e 94 a0 31 	call	0x6340	; 0x6340 <__mulsi3>
+    6022:	7b 01       	movw	r14, r22
+    6024:	8c 01       	movw	r16, r24
+    6026:	a6 01       	movw	r20, r12
+    6028:	95 01       	movw	r18, r10
+    602a:	22 0d       	add	r18, r2
+    602c:	33 1d       	adc	r19, r3
+    602e:	44 1d       	adc	r20, r4
+    6030:	55 1d       	adc	r21, r5
+    6032:	a9 96       	adiw	r28, 0x29	; 41
+    6034:	6c ac       	ldd	r6, Y+60	; 0x3c
+    6036:	7d ac       	ldd	r7, Y+61	; 0x3d
+    6038:	8e ac       	ldd	r8, Y+62	; 0x3e
+    603a:	9f ac       	ldd	r9, Y+63	; 0x3f
+    603c:	a9 97       	sbiw	r28, 0x29	; 41
+    603e:	c4 01       	movw	r24, r8
+    6040:	aa 27       	eor	r26, r26
+    6042:	bb 27       	eor	r27, r27
+    6044:	28 0f       	add	r18, r24
+    6046:	39 1f       	adc	r19, r25
+    6048:	4a 1f       	adc	r20, r26
+    604a:	5b 1f       	adc	r21, r27
+    604c:	2a 15       	cp	r18, r10
+    604e:	3b 05       	cpc	r19, r11
+    6050:	4c 05       	cpc	r20, r12
+    6052:	5d 05       	cpc	r21, r13
+    6054:	48 f4       	brcc	.+18     	; 0x6068 <__moddi3+0xdfe>
+    6056:	81 2c       	mov	r8, r1
+    6058:	91 2c       	mov	r9, r1
+    605a:	e1 e0       	ldi	r30, 0x01	; 1
+    605c:	ae 2e       	mov	r10, r30
+    605e:	b1 2c       	mov	r11, r1
+    6060:	e8 0c       	add	r14, r8
+    6062:	f9 1c       	adc	r15, r9
+    6064:	0a 1d       	adc	r16, r10
+    6066:	1b 1d       	adc	r17, r11
+    6068:	ca 01       	movw	r24, r20
+    606a:	aa 27       	eor	r26, r26
+    606c:	bb 27       	eor	r27, r27
+    606e:	57 01       	movw	r10, r14
+    6070:	68 01       	movw	r12, r16
+    6072:	a8 0e       	add	r10, r24
+    6074:	b9 1e       	adc	r11, r25
+    6076:	ca 1e       	adc	r12, r26
+    6078:	db 1e       	adc	r13, r27
+    607a:	a9 01       	movw	r20, r18
+    607c:	33 27       	eor	r19, r19
+    607e:	22 27       	eor	r18, r18
+    6080:	a9 96       	adiw	r28, 0x29	; 41
+    6082:	8c ad       	ldd	r24, Y+60	; 0x3c
+    6084:	9d ad       	ldd	r25, Y+61	; 0x3d
+    6086:	ae ad       	ldd	r26, Y+62	; 0x3e
+    6088:	bf ad       	ldd	r27, Y+63	; 0x3f
+    608a:	a9 97       	sbiw	r28, 0x29	; 41
+    608c:	a0 70       	andi	r26, 0x00	; 0
+    608e:	b0 70       	andi	r27, 0x00	; 0
+    6090:	28 0f       	add	r18, r24
+    6092:	39 1f       	adc	r19, r25
+    6094:	4a 1f       	adc	r20, r26
+    6096:	5b 1f       	adc	r21, r27
+    6098:	e9 a8       	ldd	r14, Y+49	; 0x31
+    609a:	fa a8       	ldd	r15, Y+50	; 0x32
+    609c:	0b a9       	ldd	r16, Y+51	; 0x33
+    609e:	1c a9       	ldd	r17, Y+52	; 0x34
+    60a0:	ea 14       	cp	r14, r10
+    60a2:	fb 04       	cpc	r15, r11
+    60a4:	0c 05       	cpc	r16, r12
+    60a6:	1d 05       	cpc	r17, r13
+    60a8:	70 f0       	brcs	.+28     	; 0x60c6 <__moddi3+0xe5c>
+    60aa:	ae 14       	cp	r10, r14
+    60ac:	bf 04       	cpc	r11, r15
+    60ae:	c0 06       	cpc	r12, r16
+    60b0:	d1 06       	cpc	r13, r17
+    60b2:	89 f5       	brne	.+98     	; 0x6116 <__moddi3+0xeac>
+    60b4:	6d a9       	ldd	r22, Y+53	; 0x35
+    60b6:	7e a9       	ldd	r23, Y+54	; 0x36
+    60b8:	8f a9       	ldd	r24, Y+55	; 0x37
+    60ba:	98 ad       	ldd	r25, Y+56	; 0x38
+    60bc:	62 17       	cp	r22, r18
+    60be:	73 07       	cpc	r23, r19
+    60c0:	84 07       	cpc	r24, r20
+    60c2:	95 07       	cpc	r25, r21
+    60c4:	40 f5       	brcc	.+80     	; 0x6116 <__moddi3+0xeac>
+    60c6:	da 01       	movw	r26, r20
+    60c8:	c9 01       	movw	r24, r18
+    60ca:	21 96       	adiw	r28, 0x01	; 1
+    60cc:	6c ac       	ldd	r6, Y+60	; 0x3c
+    60ce:	7d ac       	ldd	r7, Y+61	; 0x3d
+    60d0:	8e ac       	ldd	r8, Y+62	; 0x3e
+    60d2:	9f ac       	ldd	r9, Y+63	; 0x3f
+    60d4:	21 97       	sbiw	r28, 0x01	; 1
+    60d6:	86 19       	sub	r24, r6
+    60d8:	97 09       	sbc	r25, r7
+    60da:	a8 09       	sbc	r26, r8
+    60dc:	b9 09       	sbc	r27, r9
+    60de:	25 96       	adiw	r28, 0x05	; 5
+    60e0:	ec ac       	ldd	r14, Y+60	; 0x3c
+    60e2:	fd ac       	ldd	r15, Y+61	; 0x3d
+    60e4:	0e ad       	ldd	r16, Y+62	; 0x3e
+    60e6:	1f ad       	ldd	r17, Y+63	; 0x3f
+    60e8:	25 97       	sbiw	r28, 0x05	; 5
+    60ea:	ae 18       	sub	r10, r14
+    60ec:	bf 08       	sbc	r11, r15
+    60ee:	c0 0a       	sbc	r12, r16
+    60f0:	d1 0a       	sbc	r13, r17
+    60f2:	ee 24       	eor	r14, r14
+    60f4:	ff 24       	eor	r15, r15
+    60f6:	87 01       	movw	r16, r14
+    60f8:	28 17       	cp	r18, r24
+    60fa:	39 07       	cpc	r19, r25
+    60fc:	4a 07       	cpc	r20, r26
+    60fe:	5b 07       	cpc	r21, r27
+    6100:	28 f4       	brcc	.+10     	; 0x610c <__moddi3+0xea2>
+    6102:	21 e0       	ldi	r18, 0x01	; 1
+    6104:	e2 2e       	mov	r14, r18
+    6106:	f1 2c       	mov	r15, r1
+    6108:	01 2d       	mov	r16, r1
+    610a:	11 2d       	mov	r17, r1
+    610c:	ae 18       	sub	r10, r14
+    610e:	bf 08       	sbc	r11, r15
+    6110:	c0 0a       	sbc	r12, r16
+    6112:	d1 0a       	sbc	r13, r17
+    6114:	02 c0       	rjmp	.+4      	; 0x611a <__moddi3+0xeb0>
+    6116:	da 01       	movw	r26, r20
+    6118:	c9 01       	movw	r24, r18
+    611a:	6d a8       	ldd	r6, Y+53	; 0x35
+    611c:	7e a8       	ldd	r7, Y+54	; 0x36
+    611e:	8f a8       	ldd	r8, Y+55	; 0x37
+    6120:	98 ac       	ldd	r9, Y+56	; 0x38
+    6122:	68 1a       	sub	r6, r24
+    6124:	79 0a       	sbc	r7, r25
+    6126:	8a 0a       	sbc	r8, r26
+    6128:	9b 0a       	sbc	r9, r27
+    612a:	09 a9       	ldd	r16, Y+49	; 0x31
+    612c:	1a a9       	ldd	r17, Y+50	; 0x32
+    612e:	2b a9       	ldd	r18, Y+51	; 0x33
+    6130:	3c a9       	ldd	r19, Y+52	; 0x34
+    6132:	0a 19       	sub	r16, r10
+    6134:	1b 09       	sbc	r17, r11
+    6136:	2c 09       	sbc	r18, r12
+    6138:	3d 09       	sbc	r19, r13
+    613a:	58 01       	movw	r10, r16
+    613c:	69 01       	movw	r12, r18
+    613e:	22 24       	eor	r2, r2
+    6140:	33 24       	eor	r3, r3
+    6142:	21 01       	movw	r4, r2
+    6144:	2d a9       	ldd	r18, Y+53	; 0x35
+    6146:	3e a9       	ldd	r19, Y+54	; 0x36
+    6148:	4f a9       	ldd	r20, Y+55	; 0x37
+    614a:	58 ad       	ldd	r21, Y+56	; 0x38
+    614c:	26 15       	cp	r18, r6
+    614e:	37 05       	cpc	r19, r7
+    6150:	48 05       	cpc	r20, r8
+    6152:	59 05       	cpc	r21, r9
+    6154:	28 f4       	brcc	.+10     	; 0x6160 <__moddi3+0xef6>
+    6156:	81 e0       	ldi	r24, 0x01	; 1
+    6158:	28 2e       	mov	r2, r24
+    615a:	31 2c       	mov	r3, r1
+    615c:	41 2c       	mov	r4, r1
+    615e:	51 2c       	mov	r5, r1
+    6160:	86 01       	movw	r16, r12
+    6162:	75 01       	movw	r14, r10
+    6164:	e2 18       	sub	r14, r2
+    6166:	f3 08       	sbc	r15, r3
+    6168:	04 09       	sbc	r16, r4
+    616a:	15 09       	sbc	r17, r5
+    616c:	a8 01       	movw	r20, r16
+    616e:	97 01       	movw	r18, r14
+    6170:	e2 96       	adiw	r28, 0x32	; 50
+    6172:	0f ac       	ldd	r0, Y+63	; 0x3f
+    6174:	e2 97       	sbiw	r28, 0x32	; 50
+    6176:	04 c0       	rjmp	.+8      	; 0x6180 <__moddi3+0xf16>
+    6178:	22 0f       	add	r18, r18
+    617a:	33 1f       	adc	r19, r19
+    617c:	44 1f       	adc	r20, r20
+    617e:	55 1f       	adc	r21, r21
+    6180:	0a 94       	dec	r0
+    6182:	d2 f7       	brpl	.-12     	; 0x6178 <__moddi3+0xf0e>
+    6184:	d4 01       	movw	r26, r8
+    6186:	c3 01       	movw	r24, r6
+    6188:	e3 96       	adiw	r28, 0x33	; 51
+    618a:	0f ac       	ldd	r0, Y+63	; 0x3f
+    618c:	e3 97       	sbiw	r28, 0x33	; 51
+    618e:	04 c0       	rjmp	.+8      	; 0x6198 <__moddi3+0xf2e>
+    6190:	b6 95       	lsr	r27
+    6192:	a7 95       	ror	r26
+    6194:	97 95       	ror	r25
+    6196:	87 95       	ror	r24
+    6198:	0a 94       	dec	r0
+    619a:	d2 f7       	brpl	.-12     	; 0x6190 <__moddi3+0xf26>
+    619c:	28 2b       	or	r18, r24
+    619e:	39 2b       	or	r19, r25
+    61a0:	4a 2b       	or	r20, r26
+    61a2:	5b 2b       	or	r21, r27
+    61a4:	29 a7       	std	Y+41, r18	; 0x29
+    61a6:	3a a7       	std	Y+42, r19	; 0x2a
+    61a8:	4b a7       	std	Y+43, r20	; 0x2b
+    61aa:	5c a7       	std	Y+44, r21	; 0x2c
+    61ac:	e3 96       	adiw	r28, 0x33	; 51
+    61ae:	0f ac       	ldd	r0, Y+63	; 0x3f
+    61b0:	e3 97       	sbiw	r28, 0x33	; 51
+    61b2:	04 c0       	rjmp	.+8      	; 0x61bc <__moddi3+0xf52>
+    61b4:	16 95       	lsr	r17
+    61b6:	07 95       	ror	r16
+    61b8:	f7 94       	ror	r15
+    61ba:	e7 94       	ror	r14
+    61bc:	0a 94       	dec	r0
+    61be:	d2 f7       	brpl	.-12     	; 0x61b4 <__moddi3+0xf4a>
+    61c0:	ed a6       	std	Y+45, r14	; 0x2d
+    61c2:	fe a6       	std	Y+46, r15	; 0x2e
+    61c4:	0f a7       	std	Y+47, r16	; 0x2f
+    61c6:	18 ab       	std	Y+48, r17	; 0x30
+    61c8:	29 8b       	std	Y+17, r18	; 0x11
+    61ca:	8a a5       	ldd	r24, Y+42	; 0x2a
+    61cc:	8a 8b       	std	Y+18, r24	; 0x12
+    61ce:	8b a5       	ldd	r24, Y+43	; 0x2b
+    61d0:	8b 8b       	std	Y+19, r24	; 0x13
+    61d2:	8c a5       	ldd	r24, Y+44	; 0x2c
+    61d4:	8c 8b       	std	Y+20, r24	; 0x14
+    61d6:	ed 8a       	std	Y+21, r14	; 0x15
+    61d8:	8e a5       	ldd	r24, Y+46	; 0x2e
+    61da:	8e 8b       	std	Y+22, r24	; 0x16
+    61dc:	8f a5       	ldd	r24, Y+47	; 0x2f
+    61de:	8f 8b       	std	Y+23, r24	; 0x17
+    61e0:	88 a9       	ldd	r24, Y+48	; 0x30
+    61e2:	88 8f       	std	Y+24, r24	; 0x18
+    61e4:	e1 96       	adiw	r28, 0x31	; 49
+    61e6:	4c ad       	ldd	r20, Y+60	; 0x3c
+    61e8:	5d ad       	ldd	r21, Y+61	; 0x3d
+    61ea:	6e ad       	ldd	r22, Y+62	; 0x3e
+    61ec:	7f ad       	ldd	r23, Y+63	; 0x3f
+    61ee:	e1 97       	sbiw	r28, 0x31	; 49
+    61f0:	41 15       	cp	r20, r1
+    61f2:	51 05       	cpc	r21, r1
+    61f4:	61 05       	cpc	r22, r1
+    61f6:	71 05       	cpc	r23, r1
+    61f8:	09 f4       	brne	.+2      	; 0x61fc <__moddi3+0xf92>
+    61fa:	67 c0       	rjmp	.+206    	; 0x62ca <__moddi3+0x1060>
+    61fc:	89 89       	ldd	r24, Y+17	; 0x11
+    61fe:	2a 89       	ldd	r18, Y+18	; 0x12
+    6200:	3b 89       	ldd	r19, Y+19	; 0x13
+    6202:	4c 89       	ldd	r20, Y+20	; 0x14
+    6204:	5d 89       	ldd	r21, Y+21	; 0x15
+    6206:	ae 89       	ldd	r26, Y+22	; 0x16
+    6208:	bf 89       	ldd	r27, Y+23	; 0x17
+    620a:	18 8d       	ldd	r17, Y+24	; 0x18
+    620c:	f8 2f       	mov	r31, r24
+    620e:	f1 95       	neg	r31
+    6210:	91 e0       	ldi	r25, 0x01	; 1
+    6212:	1f 16       	cp	r1, r31
+    6214:	08 f0       	brcs	.+2      	; 0x6218 <__moddi3+0xfae>
+    6216:	90 e0       	ldi	r25, 0x00	; 0
+    6218:	82 2f       	mov	r24, r18
+    621a:	81 95       	neg	r24
+    621c:	21 e0       	ldi	r18, 0x01	; 1
+    621e:	18 16       	cp	r1, r24
+    6220:	08 f0       	brcs	.+2      	; 0x6224 <__moddi3+0xfba>
+    6222:	20 e0       	ldi	r18, 0x00	; 0
+    6224:	e8 2f       	mov	r30, r24
+    6226:	e9 1b       	sub	r30, r25
+    6228:	91 e0       	ldi	r25, 0x01	; 1
+    622a:	8e 17       	cp	r24, r30
+    622c:	08 f0       	brcs	.+2      	; 0x6230 <__moddi3+0xfc6>
+    622e:	90 e0       	ldi	r25, 0x00	; 0
+    6230:	29 2b       	or	r18, r25
+    6232:	83 2f       	mov	r24, r19
+    6234:	81 95       	neg	r24
+    6236:	31 e0       	ldi	r19, 0x01	; 1
+    6238:	18 16       	cp	r1, r24
+    623a:	08 f0       	brcs	.+2      	; 0x623e <__moddi3+0xfd4>
+    623c:	30 e0       	ldi	r19, 0x00	; 0
+    623e:	78 2f       	mov	r23, r24
+    6240:	72 1b       	sub	r23, r18
+    6242:	91 e0       	ldi	r25, 0x01	; 1
+    6244:	87 17       	cp	r24, r23
+    6246:	08 f0       	brcs	.+2      	; 0x624a <__moddi3+0xfe0>
+    6248:	90 e0       	ldi	r25, 0x00	; 0
+    624a:	39 2b       	or	r19, r25
+    624c:	84 2f       	mov	r24, r20
+    624e:	81 95       	neg	r24
+    6250:	21 e0       	ldi	r18, 0x01	; 1
+    6252:	18 16       	cp	r1, r24
+    6254:	08 f0       	brcs	.+2      	; 0x6258 <__moddi3+0xfee>
+    6256:	20 e0       	ldi	r18, 0x00	; 0
+    6258:	68 2f       	mov	r22, r24
+    625a:	63 1b       	sub	r22, r19
+    625c:	91 e0       	ldi	r25, 0x01	; 1
+    625e:	86 17       	cp	r24, r22
+    6260:	08 f0       	brcs	.+2      	; 0x6264 <__moddi3+0xffa>
+    6262:	90 e0       	ldi	r25, 0x00	; 0
+    6264:	29 2b       	or	r18, r25
+    6266:	85 2f       	mov	r24, r21
+    6268:	81 95       	neg	r24
+    626a:	31 e0       	ldi	r19, 0x01	; 1
+    626c:	18 16       	cp	r1, r24
+    626e:	08 f0       	brcs	.+2      	; 0x6272 <__moddi3+0x1008>
+    6270:	30 e0       	ldi	r19, 0x00	; 0
+    6272:	58 2f       	mov	r21, r24
+    6274:	52 1b       	sub	r21, r18
+    6276:	91 e0       	ldi	r25, 0x01	; 1
+    6278:	85 17       	cp	r24, r21
+    627a:	08 f0       	brcs	.+2      	; 0x627e <__moddi3+0x1014>
+    627c:	90 e0       	ldi	r25, 0x00	; 0
+    627e:	39 2b       	or	r19, r25
+    6280:	8a 2f       	mov	r24, r26
+    6282:	81 95       	neg	r24
+    6284:	21 e0       	ldi	r18, 0x01	; 1
+    6286:	18 16       	cp	r1, r24
+    6288:	08 f0       	brcs	.+2      	; 0x628c <__moddi3+0x1022>
+    628a:	20 e0       	ldi	r18, 0x00	; 0
+    628c:	48 2f       	mov	r20, r24
+    628e:	43 1b       	sub	r20, r19
+    6290:	91 e0       	ldi	r25, 0x01	; 1
+    6292:	84 17       	cp	r24, r20
+    6294:	08 f0       	brcs	.+2      	; 0x6298 <__moddi3+0x102e>
+    6296:	90 e0       	ldi	r25, 0x00	; 0
+    6298:	29 2b       	or	r18, r25
+    629a:	8b 2f       	mov	r24, r27
+    629c:	81 95       	neg	r24
+    629e:	91 e0       	ldi	r25, 0x01	; 1
+    62a0:	18 16       	cp	r1, r24
+    62a2:	08 f0       	brcs	.+2      	; 0x62a6 <__moddi3+0x103c>
+    62a4:	90 e0       	ldi	r25, 0x00	; 0
+    62a6:	38 2f       	mov	r19, r24
+    62a8:	32 1b       	sub	r19, r18
+    62aa:	21 e0       	ldi	r18, 0x01	; 1
+    62ac:	83 17       	cp	r24, r19
+    62ae:	08 f0       	brcs	.+2      	; 0x62b2 <__moddi3+0x1048>
+    62b0:	20 e0       	ldi	r18, 0x00	; 0
+    62b2:	92 2b       	or	r25, r18
+    62b4:	81 2f       	mov	r24, r17
+    62b6:	81 95       	neg	r24
+    62b8:	89 1b       	sub	r24, r25
+    62ba:	f9 8b       	std	Y+17, r31	; 0x11
+    62bc:	ea 8b       	std	Y+18, r30	; 0x12
+    62be:	7b 8b       	std	Y+19, r23	; 0x13
+    62c0:	6c 8b       	std	Y+20, r22	; 0x14
+    62c2:	5d 8b       	std	Y+21, r21	; 0x15
+    62c4:	4e 8b       	std	Y+22, r20	; 0x16
+    62c6:	3f 8b       	std	Y+23, r19	; 0x17
+    62c8:	88 8f       	std	Y+24, r24	; 0x18
+    62ca:	29 89       	ldd	r18, Y+17	; 0x11
+    62cc:	3a 89       	ldd	r19, Y+18	; 0x12
+    62ce:	4b 89       	ldd	r20, Y+19	; 0x13
+    62d0:	5c 89       	ldd	r21, Y+20	; 0x14
+    62d2:	6d 89       	ldd	r22, Y+21	; 0x15
+    62d4:	7e 89       	ldd	r23, Y+22	; 0x16
+    62d6:	8f 89       	ldd	r24, Y+23	; 0x17
+    62d8:	98 8d       	ldd	r25, Y+24	; 0x18
+    62da:	c9 58       	subi	r28, 0x89	; 137
+    62dc:	df 4f       	sbci	r29, 0xFF	; 255
+    62de:	e2 e1       	ldi	r30, 0x12	; 18
+    62e0:	0c 94 11 32 	jmp	0x6422	; 0x6422 <__epilogue_restores__>
+
+000062e4 <__divmodhi4>:
+    62e4:	97 fb       	bst	r25, 7
+    62e6:	09 2e       	mov	r0, r25
+    62e8:	07 26       	eor	r0, r23
+    62ea:	0a d0       	rcall	.+20     	; 0x6300 <__divmodhi4_neg1>
+    62ec:	77 fd       	sbrc	r23, 7
+    62ee:	04 d0       	rcall	.+8      	; 0x62f8 <__divmodhi4_neg2>
+    62f0:	46 d0       	rcall	.+140    	; 0x637e <__udivmodhi4>
+    62f2:	06 d0       	rcall	.+12     	; 0x6300 <__divmodhi4_neg1>
+    62f4:	00 20       	and	r0, r0
+    62f6:	1a f4       	brpl	.+6      	; 0x62fe <__divmodhi4_exit>
+
+000062f8 <__divmodhi4_neg2>:
+    62f8:	70 95       	com	r23
+    62fa:	61 95       	neg	r22
+    62fc:	7f 4f       	sbci	r23, 0xFF	; 255
+
+000062fe <__divmodhi4_exit>:
+    62fe:	08 95       	ret
+
+00006300 <__divmodhi4_neg1>:
+    6300:	f6 f7       	brtc	.-4      	; 0x62fe <__divmodhi4_exit>
+    6302:	90 95       	com	r25
+    6304:	81 95       	neg	r24
+    6306:	9f 4f       	sbci	r25, 0xFF	; 255
+    6308:	08 95       	ret
+
+0000630a <__divmodsi4>:
+    630a:	97 fb       	bst	r25, 7
+    630c:	09 2e       	mov	r0, r25
+    630e:	05 26       	eor	r0, r21
+    6310:	0e d0       	rcall	.+28     	; 0x632e <__divmodsi4_neg1>
+    6312:	57 fd       	sbrc	r21, 7
+    6314:	04 d0       	rcall	.+8      	; 0x631e <__divmodsi4_neg2>
+    6316:	47 d0       	rcall	.+142    	; 0x63a6 <__udivmodsi4>
+    6318:	0a d0       	rcall	.+20     	; 0x632e <__divmodsi4_neg1>
+    631a:	00 1c       	adc	r0, r0
+    631c:	38 f4       	brcc	.+14     	; 0x632c <__divmodsi4_exit>
+
+0000631e <__divmodsi4_neg2>:
+    631e:	50 95       	com	r21
+    6320:	40 95       	com	r20
+    6322:	30 95       	com	r19
+    6324:	21 95       	neg	r18
+    6326:	3f 4f       	sbci	r19, 0xFF	; 255
+    6328:	4f 4f       	sbci	r20, 0xFF	; 255
+    632a:	5f 4f       	sbci	r21, 0xFF	; 255
+
+0000632c <__divmodsi4_exit>:
+    632c:	08 95       	ret
+
+0000632e <__divmodsi4_neg1>:
+    632e:	f6 f7       	brtc	.-4      	; 0x632c <__divmodsi4_exit>
+    6330:	90 95       	com	r25
+    6332:	80 95       	com	r24
+    6334:	70 95       	com	r23
+    6336:	61 95       	neg	r22
+    6338:	7f 4f       	sbci	r23, 0xFF	; 255
+    633a:	8f 4f       	sbci	r24, 0xFF	; 255
+    633c:	9f 4f       	sbci	r25, 0xFF	; 255
+    633e:	08 95       	ret
+
+00006340 <__mulsi3>:
+    6340:	62 9f       	mul	r22, r18
+    6342:	d0 01       	movw	r26, r0
+    6344:	73 9f       	mul	r23, r19
+    6346:	f0 01       	movw	r30, r0
+    6348:	82 9f       	mul	r24, r18
+    634a:	e0 0d       	add	r30, r0
+    634c:	f1 1d       	adc	r31, r1
+    634e:	64 9f       	mul	r22, r20
+    6350:	e0 0d       	add	r30, r0
+    6352:	f1 1d       	adc	r31, r1
+    6354:	92 9f       	mul	r25, r18
+    6356:	f0 0d       	add	r31, r0
+    6358:	83 9f       	mul	r24, r19
+    635a:	f0 0d       	add	r31, r0
+    635c:	74 9f       	mul	r23, r20
+    635e:	f0 0d       	add	r31, r0
+    6360:	65 9f       	mul	r22, r21
+    6362:	f0 0d       	add	r31, r0
+    6364:	99 27       	eor	r25, r25
+    6366:	72 9f       	mul	r23, r18
+    6368:	b0 0d       	add	r27, r0
+    636a:	e1 1d       	adc	r30, r1
+    636c:	f9 1f       	adc	r31, r25
+    636e:	63 9f       	mul	r22, r19
+    6370:	b0 0d       	add	r27, r0
+    6372:	e1 1d       	adc	r30, r1
+    6374:	f9 1f       	adc	r31, r25
+    6376:	bd 01       	movw	r22, r26
+    6378:	cf 01       	movw	r24, r30
+    637a:	11 24       	eor	r1, r1
+    637c:	08 95       	ret
+
+0000637e <__udivmodhi4>:
+    637e:	aa 1b       	sub	r26, r26
+    6380:	bb 1b       	sub	r27, r27
+    6382:	51 e1       	ldi	r21, 0x11	; 17
+    6384:	07 c0       	rjmp	.+14     	; 0x6394 <__udivmodhi4_ep>
+
+00006386 <__udivmodhi4_loop>:
+    6386:	aa 1f       	adc	r26, r26
+    6388:	bb 1f       	adc	r27, r27
+    638a:	a6 17       	cp	r26, r22
+    638c:	b7 07       	cpc	r27, r23
+    638e:	10 f0       	brcs	.+4      	; 0x6394 <__udivmodhi4_ep>
+    6390:	a6 1b       	sub	r26, r22
+    6392:	b7 0b       	sbc	r27, r23
+
+00006394 <__udivmodhi4_ep>:
+    6394:	88 1f       	adc	r24, r24
+    6396:	99 1f       	adc	r25, r25
+    6398:	5a 95       	dec	r21
+    639a:	a9 f7       	brne	.-22     	; 0x6386 <__udivmodhi4_loop>
+    639c:	80 95       	com	r24
+    639e:	90 95       	com	r25
+    63a0:	bc 01       	movw	r22, r24
+    63a2:	cd 01       	movw	r24, r26
+    63a4:	08 95       	ret
+
+000063a6 <__udivmodsi4>:
+    63a6:	a1 e2       	ldi	r26, 0x21	; 33
+    63a8:	1a 2e       	mov	r1, r26
+    63aa:	aa 1b       	sub	r26, r26
+    63ac:	bb 1b       	sub	r27, r27
+    63ae:	fd 01       	movw	r30, r26
+    63b0:	0d c0       	rjmp	.+26     	; 0x63cc <__udivmodsi4_ep>
+
+000063b2 <__udivmodsi4_loop>:
+    63b2:	aa 1f       	adc	r26, r26
+    63b4:	bb 1f       	adc	r27, r27
+    63b6:	ee 1f       	adc	r30, r30
+    63b8:	ff 1f       	adc	r31, r31
+    63ba:	a2 17       	cp	r26, r18
+    63bc:	b3 07       	cpc	r27, r19
+    63be:	e4 07       	cpc	r30, r20
+    63c0:	f5 07       	cpc	r31, r21
+    63c2:	20 f0       	brcs	.+8      	; 0x63cc <__udivmodsi4_ep>
+    63c4:	a2 1b       	sub	r26, r18
+    63c6:	b3 0b       	sbc	r27, r19
+    63c8:	e4 0b       	sbc	r30, r20
+    63ca:	f5 0b       	sbc	r31, r21
+
+000063cc <__udivmodsi4_ep>:
+    63cc:	66 1f       	adc	r22, r22
+    63ce:	77 1f       	adc	r23, r23
+    63d0:	88 1f       	adc	r24, r24
+    63d2:	99 1f       	adc	r25, r25
+    63d4:	1a 94       	dec	r1
+    63d6:	69 f7       	brne	.-38     	; 0x63b2 <__udivmodsi4_loop>
+    63d8:	60 95       	com	r22
+    63da:	70 95       	com	r23
+    63dc:	80 95       	com	r24
+    63de:	90 95       	com	r25
+    63e0:	9b 01       	movw	r18, r22
+    63e2:	ac 01       	movw	r20, r24
+    63e4:	bd 01       	movw	r22, r26
+    63e6:	cf 01       	movw	r24, r30
+    63e8:	08 95       	ret
+
+000063ea <__prologue_saves__>:
+    63ea:	2f 92       	push	r2
+    63ec:	3f 92       	push	r3
+    63ee:	4f 92       	push	r4
+    63f0:	5f 92       	push	r5
+    63f2:	6f 92       	push	r6
+    63f4:	7f 92       	push	r7
+    63f6:	8f 92       	push	r8
+    63f8:	9f 92       	push	r9
+    63fa:	af 92       	push	r10
+    63fc:	bf 92       	push	r11
+    63fe:	cf 92       	push	r12
+    6400:	df 92       	push	r13
+    6402:	ef 92       	push	r14
+    6404:	ff 92       	push	r15
+    6406:	0f 93       	push	r16
+    6408:	1f 93       	push	r17
+    640a:	cf 93       	push	r28
+    640c:	df 93       	push	r29
+    640e:	cd b7       	in	r28, 0x3d	; 61
+    6410:	de b7       	in	r29, 0x3e	; 62
+    6412:	ca 1b       	sub	r28, r26
+    6414:	db 0b       	sbc	r29, r27
+    6416:	0f b6       	in	r0, 0x3f	; 63
+    6418:	f8 94       	cli
+    641a:	de bf       	out	0x3e, r29	; 62
+    641c:	0f be       	out	0x3f, r0	; 63
+    641e:	cd bf       	out	0x3d, r28	; 61
+    6420:	09 94       	ijmp
+
+00006422 <__epilogue_restores__>:
+    6422:	2a 88       	ldd	r2, Y+18	; 0x12
+    6424:	39 88       	ldd	r3, Y+17	; 0x11
+    6426:	48 88       	ldd	r4, Y+16	; 0x10
+    6428:	5f 84       	ldd	r5, Y+15	; 0x0f
+    642a:	6e 84       	ldd	r6, Y+14	; 0x0e
+    642c:	7d 84       	ldd	r7, Y+13	; 0x0d
+    642e:	8c 84       	ldd	r8, Y+12	; 0x0c
+    6430:	9b 84       	ldd	r9, Y+11	; 0x0b
+    6432:	aa 84       	ldd	r10, Y+10	; 0x0a
+    6434:	b9 84       	ldd	r11, Y+9	; 0x09
+    6436:	c8 84       	ldd	r12, Y+8	; 0x08
+    6438:	df 80       	ldd	r13, Y+7	; 0x07
+    643a:	ee 80       	ldd	r14, Y+6	; 0x06
+    643c:	fd 80       	ldd	r15, Y+5	; 0x05
+    643e:	0c 81       	ldd	r16, Y+4	; 0x04
+    6440:	1b 81       	ldd	r17, Y+3	; 0x03
+    6442:	aa 81       	ldd	r26, Y+2	; 0x02
+    6444:	b9 81       	ldd	r27, Y+1	; 0x01
+    6446:	ce 0f       	add	r28, r30
+    6448:	d1 1d       	adc	r29, r1
+    644a:	0f b6       	in	r0, 0x3f	; 63
+    644c:	f8 94       	cli
+    644e:	de bf       	out	0x3e, r29	; 62
+    6450:	0f be       	out	0x3f, r0	; 63
+    6452:	cd bf       	out	0x3d, r28	; 61
+    6454:	ed 01       	movw	r28, r26
+    6456:	08 95       	ret
+
+00006458 <memcpy_P>:
+    6458:	fb 01       	movw	r30, r22
+    645a:	dc 01       	movw	r26, r24
+    645c:	02 c0       	rjmp	.+4      	; 0x6462 <memcpy_P+0xa>
+    645e:	05 90       	lpm	r0, Z+
+    6460:	0d 92       	st	X+, r0
+    6462:	41 50       	subi	r20, 0x01	; 1
+    6464:	50 40       	sbci	r21, 0x00	; 0
+    6466:	d8 f7       	brcc	.-10     	; 0x645e <memcpy_P+0x6>
+    6468:	08 95       	ret
+
+0000646a <_exit>:
+    646a:	f8 94       	cli
+
+0000646c <__stop_program>:
+    646c:	ff cf       	rjmp	.-2      	; 0x646c <__stop_program>
Index: trunk/code/behaviors/hunter_prey/james/hunter_prey.c
===================================================================
--- trunk/code/behaviors/hunter_prey/james/hunter_prey.c	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/hunter_prey.c	(revision 1847)
@@ -0,0 +1,43 @@
+#include "hunter_prey.h"
+#include <dragonfly_lib.h>
+
+#define TAG_TIME 3
+#define TAG_RANGE 150
+
+/**** This file should not be edited! ****/
+
+
+/*
+ * The criteria for tagging are the following:
+ *   * The max bom is betweed 1 and 7
+ *   * The front rangefinder reads less than TAG_RANGE
+ *   * -1 values from the rangefinder are ignored
+ *   * These conditions are met across TAG_TIME calls to this function
+ */
+
+unsigned char hunter_prey_tagged(int max_bom, int frontRange) {
+
+  static int onTarget = 0;
+
+  if(max_bom < 7 && max_bom > 1 && frontRange > 0 && frontRange < TAG_RANGE) {
+    if(onTarget == 0) {
+      onTarget = TAG_TIME;
+      usb_puts("On target!\n");
+    }
+    else {
+      if(--onTarget <= 0) {
+	onTarget = 0;
+	usb_puts("TAG!\n");
+	return 1;
+      }
+    }
+  }
+  else{
+    //don't reset onTarget because the robot got too close
+    if(frontRange > 0)
+      onTarget = 0;
+  }
+
+  return 0;
+
+}
Index: trunk/code/behaviors/hunter_prey/james/hunter_prey.lst
===================================================================
--- trunk/code/behaviors/hunter_prey/james/hunter_prey.lst	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/hunter_prey.lst	(revision 1847)
@@ -0,0 +1,86 @@
+   1               		.file	"hunter_prey.c"
+   2               	__SREG__ = 0x3f
+   3               	__SP_H__ = 0x3e
+   4               	__SP_L__ = 0x3d
+   5               	__CCP__  = 0x34
+   6               	__tmp_reg__ = 0
+   7               	__zero_reg__ = 1
+   8               		.global __do_copy_data
+   9               		.global __do_clear_bss
+  10               		.data
+  11               	.LC0:
+  12 0000 4F6E 2074 		.string	"On target!\n"
+  12      6172 6765 
+  12      7421 0A00 
+  13               	.LC1:
+  14 000c 5441 4721 		.string	"TAG!\n"
+  14      0A00 
+  15               		.text
+  16               	.global	hunter_prey_tagged
+  18               	hunter_prey_tagged:
+  19               	/* prologue: function */
+  20               	/* frame size = 0 */
+  21 0000 0297      		sbiw r24,2
+  22 0002 0597      		sbiw r24,5
+  23 0004 00F4      		brsh .L2
+  24 0006 1616      		cp __zero_reg__,r22
+  25 0008 1706      		cpc __zero_reg__,r23
+  26 000a 04F4      		brge .L3
+  27 000c 6639      		cpi r22,150
+  28 000e 7105      		cpc r23,__zero_reg__
+  29 0010 04F4      		brge .L4
+  30 0012 8091 0000 		lds r24,onTarget.1729
+  31 0016 9091 0000 		lds r25,(onTarget.1729)+1
+  32 001a 0097      		sbiw r24,0
+  33 001c 01F4      		brne .L5
+  34 001e 83E0      		ldi r24,lo8(3)
+  35 0020 90E0      		ldi r25,hi8(3)
+  36 0022 9093 0000 		sts (onTarget.1729)+1,r25
+  37 0026 8093 0000 		sts onTarget.1729,r24
+  38 002a 80E0      		ldi r24,lo8(.LC0)
+  39 002c 90E0      		ldi r25,hi8(.LC0)
+  40 002e 0E94 0000 		call usb_puts
+  41 0032 00C0      		rjmp .L8
+  42               	.L5:
+  43 0034 0197      		sbiw r24,1
+  44 0036 9093 0000 		sts (onTarget.1729)+1,r25
+  45 003a 8093 0000 		sts onTarget.1729,r24
+  46 003e 1816      		cp __zero_reg__,r24
+  47 0040 1906      		cpc __zero_reg__,r25
+  48 0042 04F0      		brlt .L3
+  49 0044 1092 0000 		sts (onTarget.1729)+1,__zero_reg__
+  50 0048 1092 0000 		sts onTarget.1729,__zero_reg__
+  51 004c 80E0      		ldi r24,lo8(.LC1)
+  52 004e 90E0      		ldi r25,hi8(.LC1)
+  53 0050 0E94 0000 		call usb_puts
+  54 0054 81E0      		ldi r24,lo8(1)
+  55 0056 0895      		ret
+  56               	.L2:
+  57 0058 1616      		cp __zero_reg__,r22
+  58 005a 1706      		cpc __zero_reg__,r23
+  59 005c 04F4      		brge .L3
+  60               	.L4:
+  61 005e 1092 0000 		sts (onTarget.1729)+1,__zero_reg__
+  62 0062 1092 0000 		sts onTarget.1729,__zero_reg__
+  63               	.L8:
+  64 0066 80E0      		ldi r24,lo8(0)
+  65 0068 0895      		ret
+  66               	.L3:
+  67 006a 80E0      		ldi r24,lo8(0)
+  68 006c 0895      		ret
+  70               		.lcomm onTarget.1729,2
+DEFINED SYMBOLS
+                            *ABS*:0000000000000000 hunter_prey.c
+     /tmp/ccKiwtkk.s:2      *ABS*:000000000000003f __SREG__
+     /tmp/ccKiwtkk.s:3      *ABS*:000000000000003e __SP_H__
+     /tmp/ccKiwtkk.s:4      *ABS*:000000000000003d __SP_L__
+     /tmp/ccKiwtkk.s:5      *ABS*:0000000000000034 __CCP__
+     /tmp/ccKiwtkk.s:6      *ABS*:0000000000000000 __tmp_reg__
+     /tmp/ccKiwtkk.s:7      *ABS*:0000000000000001 __zero_reg__
+     /tmp/ccKiwtkk.s:18     .text:0000000000000000 hunter_prey_tagged
+                             .bss:0000000000000000 onTarget.1729
+
+UNDEFINED SYMBOLS
+__do_copy_data
+__do_clear_bss
+usb_puts
Index: trunk/code/behaviors/hunter_prey/james/main.c
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.c	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.c	(revision 1847)
@@ -0,0 +1,206 @@
+#include <dragonfly_lib.h>
+#include <wl_basic.h>
+#include "hunter_prey.h"
+
+#define WL_CHANNEL 15
+#define HUNTER 3
+#define PREY 1
+#define PREHUNTER 2
+#define PREPREY 0
+#define WAITING 4
+
+/* Variables used to receive packets */
+unsigned char* packet_data;
+int data_length;
+
+/*  Data buffer used to send packets */
+char send_buffer[2];
+
+int main(void)
+{
+
+	/* Initialize dragonfly board */
+	dragonfly_init(ALL_ON);
+	/* Initialize the XBEE */
+	xbee_init();
+	/* Initialize the basic wireless library */
+	wl_basic_init_default();
+	/* Set the XBee channel to your assigned channel */
+	wl_set_channel(WL_CHANNEL);
+	/* Initialize Orbs*/
+	orb_init();
+	/* Initialize Clock*/
+	rtc_init(SIXTEENTH_SECOND, NULL);
+	/* Initialize motors*/
+	motors_init();
+
+	int state=PREPREY, time, max_bom_reading, front_rangefinder_reading, angle, d1=80, d2=80, d3=80, d4=80, d5=80, speed=0;
+	unsigned char id=get_robotid(), tag;
+
+	if(wheel() < 100)
+		state=HUNTER;
+
+	while(1){
+		switch(state)
+		{
+			case PREPREY:
+				{
+					orb1_set_color(YELLOW);
+					bom_on();
+					state=PREY;
+					motor_r_set(BACKWARD,200);
+					motor_l_set(BACKWARD,200);
+					delay_ms(2000);
+					while(wl_basic_do_default(&data_length));
+					orb1_set_color(GREEN);
+					rtc_reset();
+					break;
+				}
+			case PREY:
+				{
+					int t1 = 0;
+					int t2 = 0;
+					int timechecked = 0;
+					int beginning = 1;
+					orb1_set_color(GREEN);
+					orb2_set_color(GREEN);
+
+					while(1)
+					{
+						int front = range_read_distance(IR2);
+						packet_data = wl_basic_do_default(&data_length);
+						if(packet_data != 0)
+						{
+							if(data_length == 2 && packet_data[0] == HUNTER_PREY_ACTION_TAG)
+							{
+								send_buffer[0] = HUNTER_PREY_ACTION_ACK;
+								send_buffer[1] = packet_data[1];
+								wl_basic_send_global_packet(42, send_buffer, 2);
+								state=PREHUNTER;
+								motor_r_set(0,0);motor_l_set(0,0);
+								break;
+							}
+						}
+						int side1 = range_read_distance(IR1);
+						int side2 = range_read_distance(IR3);
+						t2 = rtc_get();
+						if(front < 200 && front > 50 && !(timechecked == 1))
+						{
+							orb2_set_color(RED);
+							timechecked = 1;
+							t1 = rtc_get();
+							motor_l_set(1, 255);
+							motor_r_set(0, 0);
+						}
+						else if(side1 < 300 && side1 > 0 && timechecked != 1)
+						{
+							motor_r_set(0,0);
+						}
+						else if(side2 < 300 && side2 > 0 && timechecked != 1)
+						{
+							motor_l_set(0,0);
+						}
+						else
+						{
+							if(t2 - t1 > 2 || beginning == 1)
+							{
+								orb2_set_color(BLUE);
+								timechecked = 0;
+								motor_l_set(1, 255);
+								motor_r_set(1, 255);
+								beginning = 0;
+							}
+						}
+					}
+					break;
+				}
+			case PREHUNTER: /*new hunter mode (5 second pause)*/
+				{
+					orb1_set_color(BLUE);
+					orb2_set_color(BLUE);
+					motors_off();
+					state=HUNTER;
+					rtc_reset();
+					bom_off();
+					delay_ms(3000);		
+					while(wl_basic_do_default(&data_length));
+					orb1_set_color(RED);
+					break;
+				}
+			case HUNTER:
+				{
+					orb1_set_color(RED);
+					orb2_set_color(RED);
+					/*HUNT*/
+					angle=0; speed=FULL_SPD;
+					if(max_bom_reading==4){
+						motor_l_set(FORWARD, 255);
+						motor_r_set(FORWARD, 255);
+					}
+					if(max_bom_reading>=1 && max_bom_reading<=3){
+						motor_l_set(FORWARD, 255);
+						motor_r_set(FORWARD, 190);
+					}
+					if(max_bom_reading>=5 && max_bom_reading<=7){
+						motor_l_set(FORWARD, 190);
+						motor_r_set(FORWARD, 255);
+					}
+					if((max_bom_reading>=8 && max_bom_reading<=11) || max_bom_reading<0){
+						motor_l_set(BACKWARD, 170);
+						motor_r_set(FORWARD, 255);
+						orb2_set_color(RED);
+					}
+					if((max_bom_reading>=12 && max_bom_reading<=15) || max_bom_reading==0){
+						motor_l_set(FORWARD, 255);
+						motor_r_set(BACKWARD, 170);
+					}
+					/*Tagging*/
+					packet_data = wl_basic_do_default(&data_length);
+					if(packet_data != 0 && packet_data[0]==HUNTER_PREY_ACTION_ACK && packet_data[1]!=id){
+						state=PREHUNTER;
+					}
+					bom_refresh(BOM_ALL);  
+					front_rangefinder_reading = -1;
+					while(front_rangefinder_reading == -1){
+						front_rangefinder_reading = range_read_distance(IR2);
+					}
+					delay_ms(10);
+					max_bom_reading = bom_get_max();
+					tag = hunter_prey_tagged(max_bom_reading, front_rangefinder_reading);  
+					time = rtc_get();
+					if(button2_read()==1 || (tag && time>16)){
+						send_buffer[0]=HUNTER_PREY_ACTION_TAG;
+						send_buffer[1]=id;
+						wl_basic_send_global_packet( 42, send_buffer, 2 );
+						rtc_reset();
+						state=WAITING;
+						orb1_set_color(PURPLE);
+					}
+					break;
+				}
+			case WAITING: /*Waiting for ack after sending tag*/
+				{
+					time = rtc_get();
+					packet_data = wl_basic_do_default(&data_length);
+					if(packet_data != 0 && packet_data[0]==HUNTER_PREY_ACTION_ACK && packet_data[1]==id){
+						state=PREPREY;
+						rtc_reset();
+					}
+					if(packet_data != 0 && packet_data[0]==HUNTER_PREY_ACTION_ACK && packet_data[1]!=id){
+						state=PREHUNTER;
+					}
+					if(time>16){
+						state=HUNTER;
+						orb1_set_color(RED);
+					}
+					break;
+				}
+		}
+	}
+
+	while(1);
+
+	return 0;
+
+}
+
Index: trunk/code/behaviors/hunter_prey/james/main.lst
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.lst	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.lst	(revision 1847)
@@ -0,0 +1,531 @@
+   1               		.file	"main.c"
+   2               	__SREG__ = 0x3f
+   3               	__SP_H__ = 0x3e
+   4               	__SP_L__ = 0x3d
+   5               	__CCP__  = 0x34
+   6               	__tmp_reg__ = 0
+   7               	__zero_reg__ = 1
+   8               		.global __do_copy_data
+   9               		.global __do_clear_bss
+  10               		.text
+  11               	.global	main
+  13               	main:
+  14 0000 4F92      		push r4
+  15 0002 5F92      		push r5
+  16 0004 6F92      		push r6
+  17 0006 7F92      		push r7
+  18 0008 8F92      		push r8
+  19 000a 9F92      		push r9
+  20 000c AF92      		push r10
+  21 000e BF92      		push r11
+  22 0010 CF92      		push r12
+  23 0012 DF92      		push r13
+  24 0014 EF92      		push r14
+  25 0016 FF92      		push r15
+  26 0018 0F93      		push r16
+  27 001a 1F93      		push r17
+  28 001c CF93      		push r28
+  29 001e DF93      		push r29
+  30               	/* prologue: function */
+  31               	/* frame size = 0 */
+  32 0020 8FEF      		ldi r24,lo8(2047)
+  33 0022 97E0      		ldi r25,hi8(2047)
+  34 0024 0E94 0000 		call dragonfly_init
+  35 0028 0E94 0000 		call xbee_init
+  36 002c 0E94 0000 		call wl_basic_init_default
+  37 0030 8FE0      		ldi r24,lo8(15)
+  38 0032 90E0      		ldi r25,hi8(15)
+  39 0034 0E94 0000 		call wl_set_channel
+  40 0038 0E94 0000 		call orb_init
+  41 003c 81E0      		ldi r24,lo8(1)
+  42 003e 90E0      		ldi r25,hi8(1)
+  43 0040 60E0      		ldi r22,lo8(0)
+  44 0042 70E0      		ldi r23,hi8(0)
+  45 0044 0E94 0000 		call rtc_init
+  46 0048 0E94 0000 		call motors_init
+  47 004c 0E94 0000 		call get_robotid
+  48 0050 582E      		mov r5,r24
+  49 0052 0E94 0000 		call wheel
+  50 0056 8436      		cpi r24,100
+  51 0058 9105      		cpc r25,__zero_reg__
+  52 005a 04F4      		brge .L2
+  53 005c C3E0      		ldi r28,lo8(3)
+  54 005e D0E0      		ldi r29,hi8(3)
+  55 0060 00C0      		rjmp .L38
+  56               	.L2:
+  57 0062 C0E0      		ldi r28,lo8(0)
+  58 0064 D0E0      		ldi r29,hi8(0)
+  59               	.L38:
+  60 0066 24E5      		ldi r18,lo8(84)
+  61 0068 422E      		mov r4,r18
+  62               	.L37:
+  63 006a C230      		cpi r28,2
+  64 006c D105      		cpc r29,__zero_reg__
+  65 006e 01F4      		brne .+2
+  66 0070 00C0      		rjmp .L6
+  67 0072 C330      		cpi r28,3
+  68 0074 D105      		cpc r29,__zero_reg__
+  69 0076 04F4      		brge .L9
+  70 0078 2097      		sbiw r28,0
+  71 007a 01F0      		breq .L4
+  72 007c C130      		cpi r28,1
+  73 007e D105      		cpc r29,__zero_reg__
+  74 0080 01F4      		brne .L37
+  75 0082 00C0      		rjmp .L41
+  76               	.L9:
+  77 0084 C330      		cpi r28,3
+  78 0086 D105      		cpc r29,__zero_reg__
+  79 0088 01F4      		brne .+2
+  80 008a 00C0      		rjmp .L7
+  81 008c C430      		cpi r28,4
+  82 008e D105      		cpc r29,__zero_reg__
+  83 0090 01F4      		brne .L37
+  84 0092 00C0      		rjmp .L42
+  85               	.L4:
+  86 0094 88EE      		ldi r24,lo8(-24)
+  87 0096 0E94 0000 		call orb1_set_color
+  88 009a 0E94 0000 		call bom_on
+  89 009e 80E0      		ldi r24,lo8(0)
+  90 00a0 90E0      		ldi r25,hi8(0)
+  91 00a2 68EC      		ldi r22,lo8(200)
+  92 00a4 70E0      		ldi r23,hi8(200)
+  93 00a6 0E94 0000 		call motor_r_set
+  94 00aa 80E0      		ldi r24,lo8(0)
+  95 00ac 90E0      		ldi r25,hi8(0)
+  96 00ae 68EC      		ldi r22,lo8(200)
+  97 00b0 70E0      		ldi r23,hi8(200)
+  98 00b2 0E94 0000 		call motor_l_set
+  99 00b6 80ED      		ldi r24,lo8(2000)
+ 100 00b8 97E0      		ldi r25,hi8(2000)
+ 101 00ba 0E94 0000 		call delay_ms
+ 102               	.L10:
+ 103 00be 80E0      		ldi r24,lo8(data_length)
+ 104 00c0 90E0      		ldi r25,hi8(data_length)
+ 105 00c2 0E94 0000 		call wl_basic_do_default
+ 106 00c6 892B      		or r24,r25
+ 107 00c8 01F4      		brne .L10
+ 108 00ca 8CE1      		ldi r24,lo8(28)
+ 109 00cc 0E94 0000 		call orb1_set_color
+ 110 00d0 0E94 0000 		call rtc_reset
+ 111 00d4 C1E0      		ldi r28,lo8(1)
+ 112 00d6 D0E0      		ldi r29,hi8(1)
+ 113 00d8 00C0      		rjmp .L37
+ 114               	.L41:
+ 115 00da 8CE1      		ldi r24,lo8(28)
+ 116 00dc 0E94 0000 		call orb1_set_color
+ 117 00e0 8CE1      		ldi r24,lo8(28)
+ 118 00e2 0E94 0000 		call orb2_set_color
+ 119 00e6 6624      		clr r6
+ 120 00e8 7724      		clr r7
+ 121 00ea CC24      		clr r12
+ 122 00ec DD24      		clr r13
+ 123 00ee 91E0      		ldi r25,lo8(1)
+ 124 00f0 A92E      		mov r10,r25
+ 125 00f2 B12C      		mov r11,__zero_reg__
+ 126 00f4 00C0      		rjmp .L39
+ 127               	.L17:
+ 128 00f6 AA24      		clr r10
+ 129 00f8 BB24      		clr r11
+ 130               	.L39:
+ 131 00fa 85E0      		ldi r24,lo8(5)
+ 132 00fc 90E0      		ldi r25,hi8(5)
+ 133 00fe 0E94 0000 		call range_read_distance
+ 134 0102 7C01      		movw r14,r24
+ 135 0104 80E0      		ldi r24,lo8(data_length)
+ 136 0106 90E0      		ldi r25,hi8(data_length)
+ 137 0108 0E94 0000 		call wl_basic_do_default
+ 138 010c FC01      		movw r30,r24
+ 139 010e 9093 0000 		sts (packet_data)+1,r25
+ 140 0112 8093 0000 		sts packet_data,r24
+ 141 0116 0097      		sbiw r24,0
+ 142 0118 01F0      		breq .L12
+ 143 011a 8091 0000 		lds r24,data_length
+ 144 011e 9091 0000 		lds r25,(data_length)+1
+ 145 0122 0297      		sbiw r24,2
+ 146 0124 01F4      		brne .L12
+ 147 0126 8081      		ld r24,Z
+ 148 0128 8435      		cpi r24,lo8(84)
+ 149 012a 01F4      		brne .L12
+ 150 012c 81E4      		ldi r24,lo8(65)
+ 151 012e 8093 0000 		sts send_buffer,r24
+ 152 0132 8181      		ldd r24,Z+1
+ 153 0134 8093 0000 		sts send_buffer+1,r24
+ 154 0138 8AE2      		ldi r24,lo8(42)
+ 155 013a 60E0      		ldi r22,lo8(send_buffer)
+ 156 013c 70E0      		ldi r23,hi8(send_buffer)
+ 157 013e 42E0      		ldi r20,lo8(2)
+ 158 0140 50E0      		ldi r21,hi8(2)
+ 159 0142 0E94 0000 		call wl_basic_send_global_packet
+ 160 0146 80E0      		ldi r24,lo8(0)
+ 161 0148 90E0      		ldi r25,hi8(0)
+ 162 014a 60E0      		ldi r22,lo8(0)
+ 163 014c 70E0      		ldi r23,hi8(0)
+ 164 014e 0E94 0000 		call motor_r_set
+ 165 0152 80E0      		ldi r24,lo8(0)
+ 166 0154 90E0      		ldi r25,hi8(0)
+ 167 0156 60E0      		ldi r22,lo8(0)
+ 168 0158 70E0      		ldi r23,hi8(0)
+ 169 015a 0E94 0000 		call motor_l_set
+ 170 015e C2E0      		ldi r28,lo8(2)
+ 171 0160 D0E0      		ldi r29,hi8(2)
+ 172 0162 00C0      		rjmp .L37
+ 173               	.L12:
+ 174 0164 86E0      		ldi r24,lo8(6)
+ 175 0166 90E0      		ldi r25,hi8(6)
+ 176 0168 0E94 0000 		call range_read_distance
+ 177 016c EC01      		movw r28,r24
+ 178 016e 84E0      		ldi r24,lo8(4)
+ 179 0170 90E0      		ldi r25,hi8(4)
+ 180 0172 0E94 0000 		call range_read_distance
+ 181 0176 8C01      		movw r16,r24
+ 182 0178 0E94 0000 		call rtc_get
+ 183 017c 2DEC      		ldi r18,lo8(-51)
+ 184 017e 3FEF      		ldi r19,hi8(-51)
+ 185 0180 E20E      		add r14,r18
+ 186 0182 F31E      		adc r15,r19
+ 187 0184 35E9      		ldi r19,lo8(149)
+ 188 0186 E316      		cp r14,r19
+ 189 0188 F104      		cpc r15,__zero_reg__
+ 190 018a 00F4      		brsh .L13
+ 191 018c 21E0      		ldi r18,lo8(1)
+ 192 018e C216      		cp r12,r18
+ 193 0190 D104      		cpc r13,__zero_reg__
+ 194 0192 01F0      		breq .L13
+ 195 0194 80EE      		ldi r24,lo8(-32)
+ 196 0196 0E94 0000 		call orb2_set_color
+ 197 019a 0E94 0000 		call rtc_get
+ 198 019e 3C01      		movw r6,r24
+ 199 01a0 81E0      		ldi r24,lo8(1)
+ 200 01a2 90E0      		ldi r25,hi8(1)
+ 201 01a4 6FEF      		ldi r22,lo8(255)
+ 202 01a6 70E0      		ldi r23,hi8(255)
+ 203 01a8 0E94 0000 		call motor_l_set
+ 204 01ac 80E0      		ldi r24,lo8(0)
+ 205 01ae 90E0      		ldi r25,hi8(0)
+ 206 01b0 60E0      		ldi r22,lo8(0)
+ 207 01b2 70E0      		ldi r23,hi8(0)
+ 208 01b4 0E94 0000 		call motor_r_set
+ 209 01b8 81E0      		ldi r24,lo8(1)
+ 210 01ba C82E      		mov r12,r24
+ 211 01bc D12C      		mov r13,__zero_reg__
+ 212 01be 00C0      		rjmp .L39
+ 213               	.L13:
+ 214 01c0 2197      		sbiw r28,1
+ 215 01c2 CB52      		subi r28,lo8(299)
+ 216 01c4 D140      		sbci r29,hi8(299)
+ 217 01c6 00F4      		brsh .L14
+ 218 01c8 21E0      		ldi r18,lo8(1)
+ 219 01ca C216      		cp r12,r18
+ 220 01cc D104      		cpc r13,__zero_reg__
+ 221 01ce 01F0      		breq .L14
+ 222 01d0 80E0      		ldi r24,lo8(0)
+ 223 01d2 90E0      		ldi r25,hi8(0)
+ 224 01d4 60E0      		ldi r22,lo8(0)
+ 225 01d6 70E0      		ldi r23,hi8(0)
+ 226 01d8 0E94 0000 		call motor_r_set
+ 227 01dc 00C0      		rjmp .L39
+ 228               	.L14:
+ 229 01de 0150      		subi r16,lo8(-(-1))
+ 230 01e0 1040      		sbci r17,hi8(-(-1))
+ 231 01e2 0B52      		subi r16,lo8(299)
+ 232 01e4 1140      		sbci r17,hi8(299)
+ 233 01e6 00F4      		brsh .L15
+ 234 01e8 21E0      		ldi r18,lo8(1)
+ 235 01ea C216      		cp r12,r18
+ 236 01ec D104      		cpc r13,__zero_reg__
+ 237 01ee 01F0      		breq .L15
+ 238 01f0 80E0      		ldi r24,lo8(0)
+ 239 01f2 90E0      		ldi r25,hi8(0)
+ 240 01f4 60E0      		ldi r22,lo8(0)
+ 241 01f6 70E0      		ldi r23,hi8(0)
+ 242 01f8 0E94 0000 		call motor_l_set
+ 243 01fc 00C0      		rjmp .L39
+ 244               	.L15:
+ 245 01fe 8619      		sub r24,r6
+ 246 0200 9709      		sbc r25,r7
+ 247 0202 0397      		sbiw r24,3
+ 248 0204 04F4      		brge .L16
+ 249 0206 31E0      		ldi r19,lo8(1)
+ 250 0208 A316      		cp r10,r19
+ 251 020a B104      		cpc r11,__zero_reg__
+ 252 020c 01F0      		breq .+2
+ 253 020e 00C0      		rjmp .L17
+ 254               	.L16:
+ 255 0210 83E0      		ldi r24,lo8(3)
+ 256 0212 0E94 0000 		call orb2_set_color
+ 257 0216 81E0      		ldi r24,lo8(1)
+ 258 0218 90E0      		ldi r25,hi8(1)
+ 259 021a 6FEF      		ldi r22,lo8(255)
+ 260 021c 70E0      		ldi r23,hi8(255)
+ 261 021e 0E94 0000 		call motor_l_set
+ 262 0222 81E0      		ldi r24,lo8(1)
+ 263 0224 90E0      		ldi r25,hi8(1)
+ 264 0226 6FEF      		ldi r22,lo8(255)
+ 265 0228 70E0      		ldi r23,hi8(255)
+ 266 022a 0E94 0000 		call motor_r_set
+ 267 022e CC24      		clr r12
+ 268 0230 DD24      		clr r13
+ 269 0232 00C0      		rjmp .L17
+ 270               	.L6:
+ 271 0234 83E0      		ldi r24,lo8(3)
+ 272 0236 0E94 0000 		call orb1_set_color
+ 273 023a 83E0      		ldi r24,lo8(3)
+ 274 023c 0E94 0000 		call orb2_set_color
+ 275 0240 0E94 0000 		call motors_off
+ 276 0244 0E94 0000 		call rtc_reset
+ 277 0248 0E94 0000 		call bom_off
+ 278 024c 88EB      		ldi r24,lo8(3000)
+ 279 024e 9BE0      		ldi r25,hi8(3000)
+ 280 0250 0E94 0000 		call delay_ms
+ 281               	.L18:
+ 282 0254 80E0      		ldi r24,lo8(data_length)
+ 283 0256 90E0      		ldi r25,hi8(data_length)
+ 284 0258 0E94 0000 		call wl_basic_do_default
+ 285 025c 892B      		or r24,r25
+ 286 025e 01F4      		brne .L18
+ 287 0260 00C0      		rjmp .L40
+ 288               	.L7:
+ 289 0262 80EE      		ldi r24,lo8(-32)
+ 290 0264 0E94 0000 		call orb1_set_color
+ 291 0268 80EE      		ldi r24,lo8(-32)
+ 292 026a 0E94 0000 		call orb2_set_color
+ 293 026e 84E0      		ldi r24,lo8(4)
+ 294 0270 8816      		cp r8,r24
+ 295 0272 9104      		cpc r9,__zero_reg__
+ 296 0274 01F4      		brne .L19
+ 297 0276 81E0      		ldi r24,lo8(1)
+ 298 0278 90E0      		ldi r25,hi8(1)
+ 299 027a 6FEF      		ldi r22,lo8(255)
+ 300 027c 70E0      		ldi r23,hi8(255)
+ 301 027e 0E94 0000 		call motor_l_set
+ 302 0282 81E0      		ldi r24,lo8(1)
+ 303 0284 90E0      		ldi r25,hi8(1)
+ 304 0286 6FEF      		ldi r22,lo8(255)
+ 305 0288 70E0      		ldi r23,hi8(255)
+ 306 028a 0E94 0000 		call motor_r_set
+ 307               	.L19:
+ 308 028e C401      		movw r24,r8
+ 309 0290 0197      		sbiw r24,1
+ 310 0292 0397      		sbiw r24,3
+ 311 0294 00F4      		brsh .L20
+ 312 0296 81E0      		ldi r24,lo8(1)
+ 313 0298 90E0      		ldi r25,hi8(1)
+ 314 029a 6FEF      		ldi r22,lo8(255)
+ 315 029c 70E0      		ldi r23,hi8(255)
+ 316 029e 0E94 0000 		call motor_l_set
+ 317 02a2 81E0      		ldi r24,lo8(1)
+ 318 02a4 90E0      		ldi r25,hi8(1)
+ 319 02a6 6EEB      		ldi r22,lo8(190)
+ 320 02a8 70E0      		ldi r23,hi8(190)
+ 321 02aa 0E94 0000 		call motor_r_set
+ 322               	.L20:
+ 323 02ae C401      		movw r24,r8
+ 324 02b0 0597      		sbiw r24,5
+ 325 02b2 0397      		sbiw r24,3
+ 326 02b4 00F4      		brsh .L21
+ 327 02b6 81E0      		ldi r24,lo8(1)
+ 328 02b8 90E0      		ldi r25,hi8(1)
+ 329 02ba 6EEB      		ldi r22,lo8(190)
+ 330 02bc 70E0      		ldi r23,hi8(190)
+ 331 02be 0E94 0000 		call motor_l_set
+ 332 02c2 81E0      		ldi r24,lo8(1)
+ 333 02c4 90E0      		ldi r25,hi8(1)
+ 334 02c6 6FEF      		ldi r22,lo8(255)
+ 335 02c8 70E0      		ldi r23,hi8(255)
+ 336 02ca 0E94 0000 		call motor_r_set
+ 337               	.L21:
+ 338 02ce C401      		movw r24,r8
+ 339 02d0 0897      		sbiw r24,8
+ 340 02d2 0497      		sbiw r24,4
+ 341 02d4 00F0      		brlo .L22
+ 342 02d6 97FE      		sbrs r9,7
+ 343 02d8 00C0      		rjmp .L23
+ 344               	.L22:
+ 345 02da 80E0      		ldi r24,lo8(0)
+ 346 02dc 90E0      		ldi r25,hi8(0)
+ 347 02de 6AEA      		ldi r22,lo8(170)
+ 348 02e0 70E0      		ldi r23,hi8(170)
+ 349 02e2 0E94 0000 		call motor_l_set
+ 350 02e6 81E0      		ldi r24,lo8(1)
+ 351 02e8 90E0      		ldi r25,hi8(1)
+ 352 02ea 6FEF      		ldi r22,lo8(255)
+ 353 02ec 70E0      		ldi r23,hi8(255)
+ 354 02ee 0E94 0000 		call motor_r_set
+ 355 02f2 80EE      		ldi r24,lo8(-32)
+ 356 02f4 0E94 0000 		call orb2_set_color
+ 357               	.L23:
+ 358 02f8 C401      		movw r24,r8
+ 359 02fa 0C97      		sbiw r24,12
+ 360 02fc 0497      		sbiw r24,4
+ 361 02fe 00F0      		brlo .L24
+ 362 0300 8928      		or r8,r9
+ 363 0302 01F4      		brne .L25
+ 364               	.L24:
+ 365 0304 81E0      		ldi r24,lo8(1)
+ 366 0306 90E0      		ldi r25,hi8(1)
+ 367 0308 6FEF      		ldi r22,lo8(255)
+ 368 030a 70E0      		ldi r23,hi8(255)
+ 369 030c 0E94 0000 		call motor_l_set
+ 370 0310 80E0      		ldi r24,lo8(0)
+ 371 0312 90E0      		ldi r25,hi8(0)
+ 372 0314 6AEA      		ldi r22,lo8(170)
+ 373 0316 70E0      		ldi r23,hi8(170)
+ 374 0318 0E94 0000 		call motor_r_set
+ 375               	.L25:
+ 376 031c 80E0      		ldi r24,lo8(data_length)
+ 377 031e 90E0      		ldi r25,hi8(data_length)
+ 378 0320 0E94 0000 		call wl_basic_do_default
+ 379 0324 FC01      		movw r30,r24
+ 380 0326 9093 0000 		sts (packet_data)+1,r25
+ 381 032a 8093 0000 		sts packet_data,r24
+ 382 032e 0097      		sbiw r24,0
+ 383 0330 01F0      		breq .L26
+ 384 0332 8081      		ld r24,Z
+ 385 0334 8134      		cpi r24,lo8(65)
+ 386 0336 01F4      		brne .L26
+ 387 0338 8181      		ldd r24,Z+1
+ 388 033a 8515      		cp r24,r5
+ 389 033c 01F0      		breq .L26
+ 390 033e C2E0      		ldi r28,lo8(2)
+ 391 0340 D0E0      		ldi r29,hi8(2)
+ 392               	.L26:
+ 393 0342 8FEF      		ldi r24,lo8(-1)
+ 394 0344 9FEF      		ldi r25,hi8(-1)
+ 395 0346 0E94 0000 		call bom_refresh
+ 396               	.L27:
+ 397 034a 85E0      		ldi r24,lo8(5)
+ 398 034c 90E0      		ldi r25,hi8(5)
+ 399 034e 0E94 0000 		call range_read_distance
+ 400 0352 8C01      		movw r16,r24
+ 401 0354 2FEF      		ldi r18,hi8(-1)
+ 402 0356 8F3F      		cpi r24,lo8(-1)
+ 403 0358 9207      		cpc r25,r18
+ 404 035a 01F0      		breq .L27
+ 405 035c 8AE0      		ldi r24,lo8(10)
+ 406 035e 90E0      		ldi r25,hi8(10)
+ 407 0360 0E94 0000 		call delay_ms
+ 408 0364 0E94 0000 		call bom_get_max
+ 409 0368 4C01      		movw r8,r24
+ 410 036a B801      		movw r22,r16
+ 411 036c 0E94 0000 		call hunter_prey_tagged
+ 412 0370 F82E      		mov r15,r24
+ 413 0372 0E94 0000 		call rtc_get
+ 414 0376 8C01      		movw r16,r24
+ 415 0378 0E94 0000 		call button2_read
+ 416 037c 0197      		sbiw r24,1
+ 417 037e 01F0      		breq .L28
+ 418 0380 FF20      		tst r15
+ 419 0382 01F4      		brne .+2
+ 420 0384 00C0      		rjmp .L37
+ 421 0386 0131      		cpi r16,17
+ 422 0388 1105      		cpc r17,__zero_reg__
+ 423 038a 04F4      		brge .+2
+ 424 038c 00C0      		rjmp .L37
+ 425               	.L28:
+ 426 038e 4092 0000 		sts send_buffer,r4
+ 427 0392 5092 0000 		sts send_buffer+1,r5
+ 428 0396 8AE2      		ldi r24,lo8(42)
+ 429 0398 60E0      		ldi r22,lo8(send_buffer)
+ 430 039a 70E0      		ldi r23,hi8(send_buffer)
+ 431 039c 42E0      		ldi r20,lo8(2)
+ 432 039e 50E0      		ldi r21,hi8(2)
+ 433 03a0 0E94 0000 		call wl_basic_send_global_packet
+ 434 03a4 0E94 0000 		call rtc_reset
+ 435 03a8 81E4      		ldi r24,lo8(65)
+ 436 03aa 0E94 0000 		call orb1_set_color
+ 437 03ae C4E0      		ldi r28,lo8(4)
+ 438 03b0 D0E0      		ldi r29,hi8(4)
+ 439 03b2 00C0      		rjmp .L37
+ 440               	.L42:
+ 441 03b4 0E94 0000 		call rtc_get
+ 442 03b8 8C01      		movw r16,r24
+ 443 03ba 80E0      		ldi r24,lo8(data_length)
+ 444 03bc 90E0      		ldi r25,hi8(data_length)
+ 445 03be 0E94 0000 		call wl_basic_do_default
+ 446 03c2 FC01      		movw r30,r24
+ 447 03c4 9093 0000 		sts (packet_data)+1,r25
+ 448 03c8 8093 0000 		sts packet_data,r24
+ 449 03cc 0097      		sbiw r24,0
+ 450 03ce 01F0      		breq .L29
+ 451 03d0 8081      		ld r24,Z
+ 452 03d2 8134      		cpi r24,lo8(65)
+ 453 03d4 01F4      		brne .L29
+ 454 03d6 8181      		ldd r24,Z+1
+ 455 03d8 8515      		cp r24,r5
+ 456 03da 01F4      		brne .L29
+ 457 03dc 0E94 0000 		call rtc_reset
+ 458 03e0 C0E0      		ldi r28,lo8(0)
+ 459 03e2 D0E0      		ldi r29,hi8(0)
+ 460               	.L29:
+ 461 03e4 E091 0000 		lds r30,packet_data
+ 462 03e8 F091 0000 		lds r31,(packet_data)+1
+ 463 03ec 3097      		sbiw r30,0
+ 464 03ee 01F0      		breq .L30
+ 465 03f0 8081      		ld r24,Z
+ 466 03f2 8134      		cpi r24,lo8(65)
+ 467 03f4 01F4      		brne .L30
+ 468 03f6 8181      		ldd r24,Z+1
+ 469 03f8 8515      		cp r24,r5
+ 470 03fa 01F0      		breq .L30
+ 471 03fc C2E0      		ldi r28,lo8(2)
+ 472 03fe D0E0      		ldi r29,hi8(2)
+ 473               	.L30:
+ 474 0400 0131      		cpi r16,17
+ 475 0402 1105      		cpc r17,__zero_reg__
+ 476 0404 04F4      		brge .+2
+ 477 0406 00C0      		rjmp .L37
+ 478               	.L40:
+ 479 0408 80EE      		ldi r24,lo8(-32)
+ 480 040a 0E94 0000 		call orb1_set_color
+ 481 040e C3E0      		ldi r28,lo8(3)
+ 482 0410 D0E0      		ldi r29,hi8(3)
+ 483 0412 00C0      		rjmp .L37
+ 485               		.comm wl_basic_group_handler,10,1
+ 486               		.comm current_packet,8,1
+ 487               		.comm packet_data,2,1
+ 488               		.comm data_length,2,1
+ 489               		.comm send_buffer,2,1
+DEFINED SYMBOLS
+                            *ABS*:0000000000000000 main.c
+     /tmp/ccEOMtyq.s:2      *ABS*:000000000000003f __SREG__
+     /tmp/ccEOMtyq.s:3      *ABS*:000000000000003e __SP_H__
+     /tmp/ccEOMtyq.s:4      *ABS*:000000000000003d __SP_L__
+     /tmp/ccEOMtyq.s:5      *ABS*:0000000000000034 __CCP__
+     /tmp/ccEOMtyq.s:6      *ABS*:0000000000000000 __tmp_reg__
+     /tmp/ccEOMtyq.s:7      *ABS*:0000000000000001 __zero_reg__
+     /tmp/ccEOMtyq.s:13     .text:0000000000000000 main
+                            *COM*:0000000000000002 data_length
+                            *COM*:0000000000000002 packet_data
+                            *COM*:0000000000000002 send_buffer
+                            *COM*:000000000000000a wl_basic_group_handler
+                            *COM*:0000000000000008 current_packet
+
+UNDEFINED SYMBOLS
+__do_copy_data
+__do_clear_bss
+dragonfly_init
+xbee_init
+wl_basic_init_default
+wl_set_channel
+orb_init
+rtc_init
+motors_init
+get_robotid
+wheel
+orb1_set_color
+bom_on
+motor_r_set
+motor_l_set
+delay_ms
+wl_basic_do_default
+rtc_reset
+orb2_set_color
+range_read_distance
+wl_basic_send_global_packet
+rtc_get
+motors_off
+bom_off
+bom_refresh
+bom_get_max
+hunter_prey_tagged
+button2_read
Index: trunk/code/behaviors/hunter_prey/james/.dep/hunter_prey.o.d
===================================================================
--- trunk/code/behaviors/hunter_prey/james/.dep/hunter_prey.o.d	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/.dep/hunter_prey.o.d	(revision 1847)
@@ -0,0 +1,105 @@
+hunter_prey.o: hunter_prey.c hunter_prey.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/inttypes.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/stdint.h \
+  ../../../../code/lib/include/libdragonfly/dragonfly_lib.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/io.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/sfr_defs.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/iom128.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/portpins.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/common.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/version.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/fuse.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/lock.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/interrupt.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay_basic.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/util/twi.h \
+  ../../../../code/lib/include/libdragonfly/atomic.h \
+  ../../../../code/lib/include/libdragonfly/analog.h \
+  ../../../../code/lib/include/libdragonfly/dio.h \
+  ../../../../code/lib/include/libdragonfly/time.h \
+  ../../../../code/lib/include/libdragonfly/lcd.h \
+  ../../../../code/lib/include/libdragonfly/lights.h \
+  ../../../../code/lib/include/libdragonfly/motor.h \
+  ../../../../code/lib/include/libdragonfly/serial.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/pgmspace.h \
+  /usr/lib/gcc/avr/4.3.4/include/stddef.h \
+  ../../../../code/lib/include/libdragonfly/buzzer.h \
+  ../../../../code/lib/include/libdragonfly/rangefinder.h \
+  ../../../../code/lib/include/libdragonfly/bom.h \
+  ../../../../code/lib/include/libdragonfly/encoders.h \
+  ../../../../code/lib/include/libdragonfly/move.h \
+  ../../../../code/lib/include/libdragonfly/reset.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/math.h \
+  ../../../../code/lib/include/libdragonfly/eeprom.h \
+  /usr/lib/gcc/avr/4.3.4/include/stdbool.h
+
+hunter_prey.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/inttypes.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/stdint.h:
+
+../../../../code/lib/include/libdragonfly/dragonfly_lib.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/io.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/sfr_defs.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/iom128.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/portpins.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/common.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/version.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/fuse.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/lock.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/interrupt.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay_basic.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/util/twi.h:
+
+../../../../code/lib/include/libdragonfly/atomic.h:
+
+../../../../code/lib/include/libdragonfly/analog.h:
+
+../../../../code/lib/include/libdragonfly/dio.h:
+
+../../../../code/lib/include/libdragonfly/time.h:
+
+../../../../code/lib/include/libdragonfly/lcd.h:
+
+../../../../code/lib/include/libdragonfly/lights.h:
+
+../../../../code/lib/include/libdragonfly/motor.h:
+
+../../../../code/lib/include/libdragonfly/serial.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/pgmspace.h:
+
+/usr/lib/gcc/avr/4.3.4/include/stddef.h:
+
+../../../../code/lib/include/libdragonfly/buzzer.h:
+
+../../../../code/lib/include/libdragonfly/rangefinder.h:
+
+../../../../code/lib/include/libdragonfly/bom.h:
+
+../../../../code/lib/include/libdragonfly/encoders.h:
+
+../../../../code/lib/include/libdragonfly/move.h:
+
+../../../../code/lib/include/libdragonfly/reset.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/math.h:
+
+../../../../code/lib/include/libdragonfly/eeprom.h:
+
+/usr/lib/gcc/avr/4.3.4/include/stdbool.h:
Index: trunk/code/behaviors/hunter_prey/james/.dep/main.o.d
===================================================================
--- trunk/code/behaviors/hunter_prey/james/.dep/main.o.d	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/.dep/main.o.d	(revision 1847)
@@ -0,0 +1,110 @@
+main.o: main.c ../../../../code/lib/include/libdragonfly/dragonfly_lib.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/inttypes.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/stdint.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/io.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/sfr_defs.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/iom128.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/portpins.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/common.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/version.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/fuse.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/lock.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/interrupt.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay_basic.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/util/twi.h \
+  ../../../../code/lib/include/libdragonfly/atomic.h \
+  ../../../../code/lib/include/libdragonfly/analog.h \
+  ../../../../code/lib/include/libdragonfly/dio.h \
+  ../../../../code/lib/include/libdragonfly/time.h \
+  ../../../../code/lib/include/libdragonfly/lcd.h \
+  ../../../../code/lib/include/libdragonfly/lights.h \
+  ../../../../code/lib/include/libdragonfly/motor.h \
+  ../../../../code/lib/include/libdragonfly/serial.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/pgmspace.h \
+  /usr/lib/gcc/avr/4.3.4/include/stddef.h \
+  ../../../../code/lib/include/libdragonfly/buzzer.h \
+  ../../../../code/lib/include/libdragonfly/rangefinder.h \
+  ../../../../code/lib/include/libdragonfly/bom.h \
+  ../../../../code/lib/include/libdragonfly/encoders.h \
+  ../../../../code/lib/include/libdragonfly/move.h \
+  ../../../../code/lib/include/libdragonfly/reset.h \
+  /usr/lib/gcc/avr/4.3.4/../../../avr/include/math.h \
+  ../../../../code/lib/include/libdragonfly/eeprom.h \
+  /usr/lib/gcc/avr/4.3.4/include/stdbool.h \
+  ../../../../code/lib/include/libwireless/wl_basic.h \
+  ../../../../code/lib/include/libwireless/wireless.h hunter_prey.h
+
+../../../../code/lib/include/libdragonfly/dragonfly_lib.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/inttypes.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/stdint.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/io.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/sfr_defs.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/iom128.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/portpins.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/common.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/version.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/fuse.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/lock.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/interrupt.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/util/delay_basic.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/util/twi.h:
+
+../../../../code/lib/include/libdragonfly/atomic.h:
+
+../../../../code/lib/include/libdragonfly/analog.h:
+
+../../../../code/lib/include/libdragonfly/dio.h:
+
+../../../../code/lib/include/libdragonfly/time.h:
+
+../../../../code/lib/include/libdragonfly/lcd.h:
+
+../../../../code/lib/include/libdragonfly/lights.h:
+
+../../../../code/lib/include/libdragonfly/motor.h:
+
+../../../../code/lib/include/libdragonfly/serial.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/avr/pgmspace.h:
+
+/usr/lib/gcc/avr/4.3.4/include/stddef.h:
+
+../../../../code/lib/include/libdragonfly/buzzer.h:
+
+../../../../code/lib/include/libdragonfly/rangefinder.h:
+
+../../../../code/lib/include/libdragonfly/bom.h:
+
+../../../../code/lib/include/libdragonfly/encoders.h:
+
+../../../../code/lib/include/libdragonfly/move.h:
+
+../../../../code/lib/include/libdragonfly/reset.h:
+
+/usr/lib/gcc/avr/4.3.4/../../../avr/include/math.h:
+
+../../../../code/lib/include/libdragonfly/eeprom.h:
+
+/usr/lib/gcc/avr/4.3.4/include/stdbool.h:
+
+../../../../code/lib/include/libwireless/wl_basic.h:
+
+../../../../code/lib/include/libwireless/wireless.h:
+
+hunter_prey.h:
Index: trunk/code/behaviors/hunter_prey/james/main.hex
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.hex	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.hex	(revision 1847)
@@ -0,0 +1,1637 @@
+:100000000C947E010C949D010C949D010C949D0117
+:100010000C949D010C949D010C949D010C949D01E8
+:100020000C949D010C949D010C949D010C949D01D8
+:100030000C949D010C949D010C949D010C949318BB
+:100040000C9426180C94911F0C949D010C949D0106
+:100050000C949D010C947E0A0C949D010C949D01BE
+:100060000C949D010C949D010C940B200C949D010B
+:100070000C949D010C949D010C94D1050C949D0150
+:100080000C949D010C949D010C949D0100000000B6
+:100090000000005F00000007000700147F147F14B9
+:1000A000242A7F2A122313086462364955225000FD
+:1000B00005030000001C2241000041221C0014081E
+:1000C0003E081408083E08080000503000101010C8
+:1000D0001010006060000020100804023E514945E5
+:1000E0003E00427F400042615149462141454B312B
+:1000F0001814127F1027454545393C4A49493001BB
+:10010000710905033649494936064949291E003611
+:100110003600000056360000081422410014141462
+:1001200014140041221408020151090632495951A0
+:100130003E7E1111117E7F494949363E414141229F
+:100140007F4141221C7F494949417F090909013EFC
+:100150004149497A7F0808087F00417F41002040DB
+:10016000413F017F081422417F404040407F020C04
+:10017000027F7F0408107F3E4141413E7F0909090B
+:10018000063E4151215E7F091929464649494931B8
+:1001900001017F01013F4040403F1F2040201F3FA1
+:1001A0004038403F63140814630708700807615122
+:1001B000494543007F4141000204081020004141AD
+:1001C0007F0004020102044040404040000102045C
+:1001D0000020545454787F484444383844444420E0
+:1001E000384444487F3854545418087E0901020C9E
+:1001F0005252523E7F0804047800447D4000204063
+:10020000443D007F1028440000417F40007C0418DA
+:1002100004787C0804047838444444387C1414146A
+:1002200008081414187C7C0804040848545454200A
+:10023000043F4440203C4040207C1C2040201C3C8B
+:100240004030403C44281028440C5050503C4464FA
+:10025000544C44000836414100007F0000414136C3
+:1002600008000201010201552A552A5547013B01A8
+:100270002F01230119010F010601FD00F500EE0019
+:10028000E700E000DA00D400CE00C800C300BE00E2
+:10029000B900B500B100AD00A800A500A1009E0006
+:1002A0009B009700940091008F008C0089008600CD
+:1002B000840082007F007D007B007900770075005C
+:1002C000730072006F006E006C006A0069006800C5
+:1002D000660064006300620061005F005E005D0014
+:1002E0005B005A0059005800570056005400530054
+:1002F00053005200510050004F004E0011241FBE09
+:10030000CFEFD0E1DEBFCDBF12E0A0E0B1E0EEE67E
+:10031000F4E600E00BBF02C007900D92A43CB107C9
+:10032000D9F715E0A4ECB2E001C01D92AE3FB107D1
+:10033000E1F70E94D6010C9435320C94000002972C
+:10034000059748F5161617067CF56639710534F5DC
+:100350008091C4029091C502009759F483E090E027
+:100360009093C5028093C40280E091E00E94811EB8
+:1003700019C001979093C5028093C40218161906FC
+:100380009CF01092C5021092C4028CE091E00E9491
+:10039000811E81E008951616170634F41092C502E6
+:1003A0001092C40280E0089580E008954F925F9219
+:1003B0006F927F928F929F92AF92BF92CF92DF9275
+:1003C000EF92FF920F931F93CF93DF938FEF97E0FE
+:1003D0000E9400140E945C1E0E94CC058FE090E0F9
+:1003E0000E9415050E943A1C81E090E060E070E0F8
+:1003F0000E94E01F0E943D1C0E945B14582E0E9428
+:10040000690A843691051CF4C3E0D0E002C0C0E064
+:10041000D0E024E5422EC230D10509F4E1C0C3305A
+:10042000D10534F4209761F0C130D105A1F72BC07C
+:10043000C330D10509F4EBC0C430D10561F790C1D8
+:1004400088EE0E942B1B0E94B40D80E090E068ECC7
+:1004500070E00E94671C80E090E068EC70E00E9411
+:100460004F1C80ED97E00E94D51F89E494E00E9424
+:100470006205892BD1F78CE10E942B1B0E9406207C
+:10048000C1E0D0E0C8CF8CE10E942B1B8CE10E9420
+:10049000521B66247724CC24DD2491E0A92EB12CB4
+:1004A00002C0AA24BB2485E090E00E94A71D7C0125
+:1004B00089E494E00E946205FC0190934C048093CF
+:1004C0004B04009729F18091490490914A040297C6
+:1004D000F9F480818435E1F481E4809355048181CD
+:1004E000809356048AE265E574E042E050E00E94A1
+:1004F0007E0580E090E060E070E00E94671C80E094
+:1005000090E060E070E00E944F1CC2E0D0E083CF3A
+:1005100086E090E00E94A71DEC0184E090E00E943C
+:10052000A71D8C010E9400202DEC3FEFE20EF31E70
+:1005300035E9E316F104D0F421E0C216D104B1F09C
+:1005400080EE0E94521B0E9400203C0181E090E05E
+:100550006FEF70E00E944F1C80E090E060E070E080
+:100560000E94671C81E0C82ED12C9DCF2197CB52D1
+:10057000D14058F421E0C216D10439F080E090E077
+:1005800060E070E00E94671C8ECF015010400B525B
+:10059000114058F421E0C216D10439F080E090E017
+:1005A00060E070E00E944F1C7ECF86199709039788
+:1005B0002CF431E0A316B10409F073CF83E00E945C
+:1005C000521B81E090E06FEF70E00E944F1C81E0D1
+:1005D00090E06FEF70E00E94671CCC24DD2461CFB7
+:1005E00083E00E942B1B83E00E94521B0E94851C0B
+:1005F0000E9406200E949F0D88EB9BE00E94D51F61
+:1006000089E494E00E946205892BD1F7D3C080EE83
+:100610000E942B1B80EE0E94521B84E088169104DE
+:1006200061F481E090E06FEF70E00E944F1C81E088
+:1006300090E06FEF70E00E94671CC4010197039780
+:1006400060F481E090E06FEF70E00E944F1C81E069
+:1006500090E06EEB70E00E94671CC4010597039761
+:1006600060F481E090E06EEB70E00E944F1C81E04E
+:1006700090E06FEF70E00E94671CC4010897049738
+:1006800010F097FE0FC080E090E06AEA70E00E94F0
+:100690004F1C81E090E06FEF70E00E94671C80EEDD
+:1006A0000E94521BC4010C97049710F0892861F432
+:1006B00081E090E06FEF70E00E944F1C80E090E0DE
+:1006C0006AEA70E00E94671C89E494E00E94620577
+:1006D000FC0190934C0480934B04009741F080817F
+:1006E000813429F48181851511F0C2E0D0E08FEFCB
+:1006F0009FEF0E94450E85E090E00E94A71D8C01AF
+:100700002FEF8F3F9207B9F38AE090E00E94D51F48
+:100710000E943A0B4C01B8010E949F01F82E0E94E2
+:1007200000208C010E947013019739F0FF2009F41A
+:1007300072CE013111050CF46ECE409255045092E8
+:1007400056048AE265E574E042E050E00E947E05CE
+:100750000E94062081E40E942B1BC4E0D0E05BCE07
+:100760000E9400208C0189E494E00E946205FC0153
+:1007700090934C0480934B04009751F08081813416
+:1007800039F48181851521F40E940620C0E0D0E073
+:10079000E0914B04F0914C04309741F0808181341A
+:1007A00029F48181851511F0C2E0D0E001311105F5
+:1007B0000CF431CE80EE0E942B1BC3E0D0E02BCE98
+:1007C00081E090E09093C7028093C6020895DC0117
+:1007D0008D919C9111978031910558F4FC01EE0F99
+:1007E000FF1FE85BFC4F80819181892B11F4B1835D
+:1007F000A0830895CF93DF93FC01C081D181FE01D6
+:10080000EE0FFF1FE85BFC4F0190F081E02D309769
+:1008100031F00084F185E02D309709F00995CC0F77
+:10082000DD1FC85BDC4F19821882DF91CF910895DC
+:10083000CF93DF938091C6029091C702892BA9F0D4
+:10084000C8E4D3E0E881F981309731F00280F38188
+:10085000E02D309709F00995229683E0C836D80735
+:1008600089F71092C7021092C60288EC92E00E94AB
+:1008700006069C0197FD4EC08091C802893829F573
+:100880002330310509F046C08091C9022091CA0287
+:10089000E82FE295EF70F0E0EE0FFF1FE85BFC4FF2
+:1008A0000190F081E02D3097A9F10480F581E02DD1
+:1008B000309781F190E08F70907060E070E02223BB
+:1008C00011F461E070E0099525C0813819F52730F1
+:1008D000310504F19091C9024091CA028091CE0283
+:1008E000E091CD02F0E0EE0FFF1FE85BFC4F0190BE
+:1008F000F081E02D309771F00680F781E02D309780
+:1009000049F0792F60E0640F711D275030404FECA3
+:1009100052E00995DF91CF910895AF92BF92CF92A7
+:10092000EF920F931F93DF93CF93CDB7DEB7C058ED
+:10093000D0400FB6F894DEBF0FBECDBF982F580140
+:100940000C2DCC2031F08C2D8F70092F0295007F5B
+:10095000082B99836A83BE016D5F7F4FA0E0B0E0F2
+:1009600008C0FA01EA0FFB1F8081FB018193BF01E0
+:100970001196A217B307ACF32E5F3F4FCE0101963D
+:10098000B901A5012E2D0E942E08C058DF4F0FB6C9
+:10099000F894DEBF0FBECDBFCF91DF911F910F91B5
+:1009A000EF90CF90BF90AF900895CF92EF920F93BA
+:1009B0001F93C02E0FEF1FEFEE240E948D041F9196
+:1009C0000F91EF90CF900895CF92EF920F931F93D6
+:1009D000C02E0FEF1FEF74E0E72E0E948D041F91D1
+:1009E0000F91EF90CF900895CF92EF920F931F93B6
+:1009F000CE2CEE240E948D041F910F91EF90CF908A
+:100A00000895CF92EF920F931F93CE2CE4E0EE2E39
+:100A10000E948D041F910F91EF90CF9008950E9436
+:100A2000420708950E943D0708950E94D307089544
+:100A30000E94380708950E94F5070895CF93DF9329
+:100A4000C8E4D3E0E881F981309731F00084F18582
+:100A5000E02D309709F00995229683E0C836D80733
+:100A600089F70E942708DF91CF910895E8E4F3E029
+:100A70001192119223E0E836F207D1F70E94D608CE
+:100A80008F5F9F4F19F42FEF3FEF08C088E090E091
+:100A900060EE73E00E94E01F20E030E0C90108959D
+:100AA00091E090934D0480934E04709350046093B2
+:100AB0004F045093520440935104309354042093B4
+:100AC00053040895CF93DF93EC010E9418048091A2
+:100AD0004D04813019F020E030E00CC010924D043C
+:100AE00080915304909154049983888320915104F8
+:100AF00030915204C901DF91CF9108950F93982F3F
+:100B0000FB019A0188E0692FAF0100E00E94E40434
+:100B10000F910895EF920F931F93982FFB01DA0125
+:100B2000890188E0692FAF019D01EE240E94010533
+:100B30001F910F91EF90089528E030E03093580412
+:100B40002093570410925A041092590410925C0496
+:100B500010925B0490935E0480935D041092600495
+:100B600010925F0487E594E00E94E7030895EF92F6
+:100B7000FF920F931F938C010E943605F82EE92EE9
+:100B8000C8010E949C0510924D048F2D9E2D1F912F
+:100B90000F91FF90EF90089580E595E00E94B705D2
+:100BA00008951F920F920FB60F920BB60F92112459
+:100BB0002F933F938F939F93EF93FF9380919C008C
+:100BC000E0916803F0916903EF59FB4F80838091B6
+:100BD00068039091690301968038910511F480E0D3
+:100BE00090E020916A0330916B03909369038093A6
+:100BF0006803FF91EF919F918F913F912F910F90FB
+:100C00000BBE0F900FBE0F901F9018950F931F9360
+:100C1000CF93DF938C018091720390917303892BA2
+:100C2000D1F580916A0390916B038038910521F48E
+:100C300010926B0310926A0320916A0330916B0348
+:100C400080916803909169032817390709F405C159
+:100C500080916A0390916B03FC01EF59FB4F208157
+:100C6000019690936B0380936A032E37D1F680919F
+:100C70006A0390916B038038910521F410926B0305
+:100C800010926A038EE78093740381E090E0909362
+:100C900073038093720360917203709173036330E6
+:100CA00071051CF44FEF5FEF08C09091750380E071
+:100CB00020917603AC01420F511DEB01CC58DC4F63
+:100CC0003FC06330710581F4B0917503A0E080915D
+:100CD0007603AD01480F511D493751052CF0109294
+:100CE000730310927203B9C020916A0330916B03B1
+:100CF00080916803909169032817390729F470934C
+:100D0000730360937203A9C080916A0390916B038F
+:100D1000FC01EF59FB4F208128836F5F7F4F0196C5
+:100D200090936B0380936A0380916A0390916B03A5
+:100D30008038910521F410926B0310926A0321967A
+:100D40008FEF4F3F580709F4BCCFCA0103968617AF
+:100D500097070CF0B6CF1092730310927203BA018A
+:100D60006C5F7F4F23E030E090E007C0F901EC5862
+:100D7000FC4F8081980F2F5F3F4F26173707B4F342
+:100D80009F3F09F06AC0141615060CF051C08091FF
+:100D90007703883821F08A3809F04AC061C0809111
+:100DA000790390917A03893461F4943409F058C03E
+:100DB000809140019091410190933F0180933E01C9
+:100DC0004FC0833461F4983409F04AC080917003B5
+:100DD0009091710390936F0380936E0341C08D34A3
+:100DE00009F03EC09935E1F5BA0165507040C1F196
+:100DF00010926D0310926C03ECE7F3E040E050E0DA
+:100E00000FC080916C0390916D032191982F8827DA
+:100E1000820F911D90936D0380936C034F5F5F4F22
+:100E20004617570774F380916C0390916D0318C0B7
+:100E30000115110591F0D80123E030E0BA016E5F91
+:100E40007F4F07C0F901EC58FC4F80818D932F5FD5
+:100E50003F4F62177307B4F705C04FEF5FEF02C053
+:100E600043E050E0CA01DF91CF911F910F910895A7
+:100E700080913E0190913F01089580916E03909181
+:100E80006F03089520916C0330916D03C90108959B
+:100E9000CF92DF92EF92FF920F931F93DF93CF9346
+:100EA000CDB7DEB764970FB6F894DEBF0FBECDBFE7
+:100EB000FC0188E08D8381E08E8380818F83818136
+:100EC00088876115710519F4A0E0B0E01FC0DB014F
+:100ED0000D900020E9F71197A61BB70BA930B105BB
+:100EE0001CF02FEF3FEF4FC0AE01475F5F4F20E098
+:100EF00030E009C0FB01E20FF31F8081FA0181930A
+:100F0000AF012F5F3F4F2A173B07A4F354E0E52EB4
+:100F1000F12CEA0EFB1E8EE78A83FB82EC8220E036
+:100F200030E090E0AE014B5F5F4F07C0FA01E20F87
+:100F3000F31F8081980F2F5F3F4F2E153F05B4F3AD
+:100F4000909599838EE70E94771E8B810E94771E71
+:100F50008C810E94771E00E010E045E0C42ED12C69
+:100F6000CC0EDD1E08C0F601E00FF11F80810E944B
+:100F7000771E0F5F1F4F0E151F05ACF389810E946E
+:100F8000771E20E030E0C90164960FB6F894DEBF0A
+:100F90000FBECDBFCF91DF911F910F91FF90EF90CA
+:100FA000DF90CF900895DF93CF9300D00F92CDB70D
+:100FB000DEB79C010B97409718F02FEF3FEF0EC064
+:100FC00029831A82309371032093700382E191E0A8
+:100FD000BE016F5F7F4F0E9448079C01C9010F90BF
+:100FE0000F900F90CF91DF910895DF93CF9300D0B2
+:100FF0000F92CDB7DEB799838A831B82809340011D
+:101000009093410185E191E0BE016F5F7F4F0E94A7
+:1010100048070F900F900F90CF91DF91089588E1CE
+:1010200091E06BE171E00E9448078DE191E060E0A2
+:1010300070E00E9448078CED95E020E931E0F9016D
+:101040003197F1F70197D9F780E090E0089580E2B9
+:1010500091E063E271E00E9448070895AF92BF9269
+:10106000CF92DF92EF92FF920F931F93DF93CF9374
+:10107000CDB7DEB729970FB6F894DEBF0FBECDBF50
+:101080005C017B01653671051CF02FEF3FEF56C008
+:1010900081E08D830E835F83488729878EE78A836B
+:1010A000E5E0F0E0EE0EFF1EFB828BEF9FEFE80E17
+:1010B000F91E8E2D8B5F8C830F5F050F040F020FBF
+:1010C000098320E030E008C0F501E20FF31F8081C2
+:1010D000980F99832F5F3F4F99812E153F05A4F3F9
+:1010E000909599838EE70E94771E8B810E94771ED0
+:1010F0008C810E94771E8E010B5F1F4F6AE0C62E07
+:10110000D12CCC0EDD1EF80181918F010E94771E3B
+:101110000C151D05C1F700E010E008C0F501E00F57
+:10112000F11F80810E94771E0F5F1F4F0E151F0554
+:10113000ACF389810E94771E20E030E0C901299636
+:101140000FB6F894DEBF0FBECDBFCF91DF911F91D8
+:101150000F91FF90EF90DF90CF90BF90AF900895E8
+:10116000EF92FF920F931F93CF93DF937C01DC01EB
+:101170000D900020E9F78D0101501040081B190B5C
+:10118000C0E0D0E007C0F701EC0FFD1F80810E9496
+:10119000771E2196C017D107B4F380E090E0DF916D
+:1011A000CF911F910F91FF90EF90089580919A0039
+:1011B000806880939A00789485E291E00E94B0085C
+:1011C000892B09F099C026C02091680330916903EA
+:1011D00080916A0390916B0328173907F9F0809189
+:1011E0006A0390916B03FC01EF59FB4FE08101967C
+:1011F00090936B0380936A0380916A0390916B03D1
+:101200008038910521F410926B0310926A038C913F
+:10121000E81719F0A9E2B1E001C01196CD01895299
+:10122000914003978CF26CC0209168033091690360
+:1012300080916A0390916B0328173907E9F0809138
+:101240006A0390916B03FC01EF59FB4FE08101961B
+:1012500090936B0380936A0380916A0390916B0370
+:101260008038910521F410926B0310926A038C91DF
+:10127000E81709F04BC01196CD01895291400397B0
+:101280009CF247C0209168033091690380916A0302
+:1012900090916B0328173907E1F080916A039091D0
+:1012A0006B03FC01EF59FB4FE081019690936B03B8
+:1012B00080936A0380916A0390916B038038910553
+:1012C00021F410926B0310926A038C91E81739F5A0
+:1012D0001196CD01895291400397A4F223C080E07A
+:1012E00090E00E94060680916C0390916D03892B1B
+:1012F000B1F320E030E002C02FEF3FEFC9010895C5
+:101300008DE291E00E94B008892BB1F7A9E2B1E02B
+:10131000B3CF85E391E00E94B008892B69F7A9E279
+:10132000B1E0D7CF8BE391E060E070E00E94480726
+:10133000892BC9F2E1CFAC0120E030E0F901EE0FDA
+:10134000FF1FE20FF31FEF51FB4F12821182108239
+:101350002F5F3F4F2B30310589F717B887B1816672
+:1013600087B916B886B1876886B9809164008C61A8
+:101370008093640080916500837E8093650021E006
+:1013800030E03093E5032093E403452B61F0809136
+:10139000E0039091E103019731F0339A369A30934C
+:1013A000E1032093E0030895009719F420E030E072
+:1013B0000BC00197FC01EE0FFF1FE80FF91FEF5163
+:1013C000FB4F8081282F30E0C9010895009719F460
+:1013D00020E030E00AC00197FC01EE0FFF1FE80F8C
+:1013E000F91FEF51FB4F21813281C901089580918E
+:1013F000E0039091E103019741F0339A369A81E03E
+:1014000090E09093E1038093E003089581E090E001
+:101410009093E3038093E20308952091E0033091D9
+:10142000E103C90108959C013699FECF27303105AB
+:1014300024F4822F805A87B914C087E687B9C9017E
+:10144000089720916500382F3470237E322B8370EB
+:10145000907043E0880F991F4A95E1F7382B30933D
+:101460006500369A3699FECF85B190E008959C01CB
+:101470003699FECF2730310524F4822F805A87B960
+:1014800014C087E687B9C901089720916500382FF5
+:101490003470237E322B8370907073E0880F991F15
+:1014A0007A95E1F7382B30936500369A3699FECF5E
+:1014B00024B185B130E066E0359527956A95E1F76E
+:1014C00090E0880F991F880F991F282B392BC9018D
+:1014D00008958091FC0490E00895E5E6F0E0208115
+:1014E000382F3470237E322B83709070A3E0880FE6
+:1014F000991FAA95E1F7382B308308951F920F9218
+:101500000FB60F920BB60F9211242F933F934F9368
+:101510005F936F938F939F93EF93FF938091E0037B
+:101520009091E103019709F08DC087B1882361F1A3
+:1015300024B165B14091E4035091E503415050401E
+:1015400030E0F6E035952795FA95E1F7862F90E0A3
+:10155000880F991F880F991F282B392BFA01EE0F3E
+:10156000FF1FE40FF51FEF51FB4F32832183809162
+:10157000E4039091E5030197FC01EE0FFF1FE80FD4
+:10158000F91FEF51FB4F60838091E4039091E503D5
+:10159000069771F487E687B980916500837E809312
+:1015A000650088E090E09093E5038093E4033AC0FF
+:1015B0008091E4039091E5030B9739F481E090E08A
+:1015C0009093E5038093E4030FC08091E40390912E
+:1015D000E50301969093E5038093E4038091E4038F
+:1015E0009091E50307973CF48091E4039091E50323
+:1015F000806687B917C087E687B98091E403909128
+:10160000E503089720916500382F3470237E322B34
+:101610008370907023E0880F991F2A95E1F7382B8B
+:10162000309365008091E2039091E303892B49F0A8
+:101630001092E3031092E2031092E1031092E00390
+:1016400001C0369AFF91EF919F918F916F915F91B9
+:101650004F913F912F910F900BBE0F900FBE0F90A7
+:101660001F901895FC01EE0FFF1FE951FC4F808180
+:1016700091810895E7EEF3E020E030E08FEF90E015
+:101680006FEF7FEF408151814817590710F4CA016D
+:10169000B9012F5F3F4F32962031310599F78639D6
+:1016A000910514F06FEF7FEFCB0108952F923F92D9
+:1016B0004F925F926F927F928F929F92AF92BF9262
+:1016C000CF92DF92EF92FF920F931F93DF93CF930E
+:1016D000CDB7DEB767970FB6F894DEBF0FBECDBFAC
+:1016E0002C0127EE33E03D8B2C8BF90120E030E01C
+:1016F0006FEF70E08FEF9FEF4081518146175707E2
+:1017000010F4BA01C9012F5F3F4F329620313105E5
+:1017100099F76639710524F43FEF8F3F930759F429
+:101720004114510429F08FEF9FEFD2018D939C93C8
+:101730002FEF3FEFEAC1E8E1F0E0E81BF90B992455
+:10174000882477246624332422241A8A1B8A10E0F2
+:1017500000E0EE24DD24CC2419861A86FF249C01A7
+:1017600028503040398B288BAC89BD898D919C9154
+:101770002FEFA22EB12CA81AB90ACF0160E170E0B8
+:101780000E94723128893989820F931F8A9D9001A6
+:101790008B9D300D9A9D300D1124C901990F880B36
+:1017A000982F682F782F8F8B8B878C87982F492DB8
+:1017B000420F4D8751E0491508F050E0282D230FC6
+:1017C00041E0281508F040E0520F598331E05217EC
+:1017D00008F030E0432B872D860F31E0871508F0A5
+:1017E00030E0480F4E8B21E0481708F020E0322B04
+:1017F000862D870F41E0861508F040E0732F780FA3
+:1018000021E0781708F020E0422B8F89830D31E02A
+:10181000831508F030E0642F680F21E0681708F0A6
+:1018200020E0322B8B85820D41E0821508F040E0EC
+:10183000532F580F21E0581708F020E0422B8A89D7
+:10184000AC858A0F31E0BA898B1708F030E0480F79
+:1018500021E0481708F020E0322B2B89920F9D845D
+:1018600089807E88672E362E252E4A8B390F3B8B3A
+:10187000C501990F880B982F2B2D982F682F782F43
+:101880008E8B8F8B8E87312F3A0D3F8731E04F85BE
+:10189000411708F030E0200F41E0201708F040E049
+:1018A000320F3A8331E08A81821708F030E0432B0F
+:1018B0008E2D890F51E08E1508F050E0480F4B83B4
+:1018C00021E0481708F020E0522B8D2D860F61E0B3
+:1018D0008D1508F060E0580F5C8321E0581708F080
+:1018E00020E0622B8C2D870F71E08C1508F070E0E2
+:1018F000680F6D8321E0681708F020E0722B89855E
+:101900009E89890F01E0A9858A1708F000E0780F09
+:101910007E8321E0781708F020E0022B8A85BF89BA
+:101920008B0F21E03A85831708F020E0080F0F8322
+:1019300011E0081708F010E0212B4E85F40E2F0D52
+:1019400028871F850A81EB80DC80CD808E81898786
+:101950009F819A87F22E3196AC89BD891296BD8BF4
+:10196000AC8BA750B44009F0FFCE4114510401F1F3
+:10197000212F302F4E2D5D2D6C2D782F892F9F2DEF
+:10198000E0EDAE2EBB24BA94CC24CA94DD24DA94C4
+:10199000EE24EA94FF24FA940FEF1FEF0E940D212A
+:1019A000590182E390E0A80EB91ED201AD92BC921B
+:1019B000292D382D472D562D632D722D8A899B890F
+:1019C00001E00E948E20122FF32EE42ED52EC62E7B
+:1019D000B72EA82E892E02E00E948E20B92F210F4B
+:1019E000E1E0211708F0E0E03F0DF1E03F1508F0DD
+:1019F000F0E09E2E930EE1E0931608F0E0E0FE2B5F
+:101A00004E0DA1E04E1508F0A0E0FF2EF40EE1E02F
+:101A1000F41608F0E0E0AE2B5D0DF1E05D1508F086
+:101A2000F0E00A2F050FE1E0051708F0E0E0FE2BDB
+:101A30006C0DA1E06C1508F0A0E01F2F160FE1E07F
+:101A4000161708F0E0E0AE2B7B0DF1E07B1508F0F7
+:101A5000F0E0A70FE1E0A71708F0E0E0FE2B8A0D09
+:101A600091E08A1508F090E0F80FE1E0F81708F02F
+:101A7000E0E09E2BB80D392D4F2D502F612F7A2F7E
+:101A80008F2F9B0FAF84BA80CB80DC80ED80FE80EF
+:101A90000F8118850E940D21E32FF42FA52FB62F5B
+:101AA000172F082FE92E80EAF82EF20E31E0F216F9
+:101AB00008F030E03E0F41E03E1708F040E04F0FE5
+:101AC00051E04F1708F050E05A0F61E05A1708F044
+:101AD00060E06B0F71E06B1708F070E0710F81E050
+:101AE000711708F080E0800F91E0801708F090E017
+:101AF0002F2D9E0DE0EAAE2EBB24CC24DD24EE2457
+:101B0000FF2400E010E00E943529C90167960FB656
+:101B1000F894DEBF0FBECDBFCF91DF911F910F9123
+:101B2000FF90EF90DF90CF90BF90AF909F908F90FD
+:101B30007F906F905F904F903F902F90089580918D
+:101B4000E603882319F0813071F407C08AE290E03F
+:101B500060E070E00E941E1208958BE290E060E069
+:101B600070E00E941E1208958091E603882319F008
+:101B7000813071F407C08AE290E061E070E00E9479
+:101B80001E1208958BE290E061E070E00E941E1248
+:101B90000895EF92FF920F931F93CF93DF937C01F1
+:101BA0008091E6038130E1F400E110E0C0E0D0E88C
+:101BB000BE016E217F2188E090E00E941E1289E024
+:101BC00090E061E070E00E941E1289E090E060E029
+:101BD00070E00E941E12D695C7950150104041F743
+:101BE000DF91CF911F910F91FF90EF900895809317
+:101BF000E6038091E603882321F0813009F044C098
+:101C00001DC08CE290E090930804809307048BE25F
+:101C100090E090930A04809309048FE290E09093FF
+:101C20000C0480930B048EE290E090930E0480935A
+:101C30000D041092100410920F0408958AE290E0AF
+:101C400060E070E00E941E128DE290E09093080424
+:101C5000809307048CE290E090930A048093090437
+:101C60008FE290E090930C0480930B048EE290E05E
+:101C700090930E0480930D048FEF9FEF0E94C90D87
+:101C80001092100410920F040895AF92BF92CF9259
+:101C9000DF92EF92FF921F93CF93DF936C010E942C
+:101CA0000D0A019719F0AA24BB2405C00E94060A58
+:101CB00061E0A62EB12C57EEE52E53E0F52EC0E0E4
+:101CC000D0E0C0FE57C0EC2F8091E603882321F4BA
+:101CD000FE01E857FE4FE0811E2FE3FF07C0809111
+:101CE0000D0490910E0461E070E006C080910D0437
+:101CF00090910E0460E070E00E941E1212FF07C077
+:101D000080910B0490910C0461E070E006C080911A
+:101D10000B0490910C0460E070E00E941E1211FF11
+:101D200007C08091090490910A0461E070E006C048
+:101D30008091090490910A0460E070E00E941E12F4
+:101D400010FF07C0809107049091080461E070E0E3
+:101D500006C0809107049091080460E070E00E9442
+:101D60001E1280910F04909110040E94130AF70133
+:101D700091838083219682E090E0E80EF91EC031C5
+:101D8000D10519F0D594C7949CCFAB2811F00E94CF
+:101D9000F709DF91CF911F91FF90EF90DF90CF90E7
+:101DA000BF90AF9008958FEF9FEF0E94450EE7EE32
+:101DB000F3E020E030E08FEF90E06FEF7FEF4081C5
+:101DC00051814817590710F4CA01B9012F5F3F4FDD
+:101DD00032962031310599F78639910514F06FEF6D
+:101DE0007FEFCB010895AF92BF92CF92DF92EF9237
+:101DF000FF920F931F93DF93CF93CDB7DEB7A097DA
+:101E00000FB6F894DEBF0FBECDBF0097A9F0AA248D
+:101E1000AA94BA2C20E030E0FC01E20FF31F0190FD
+:101E2000F081E02DAE16BF060CF45F012E5F3F4F30
+:101E30002032310589F721C08FEF9FEF0E94450EB8
+:101E4000AA24AA94BA2C20E030E0AE014F5F5F4F85
+:101E5000F901E951FC4F80819181FA01E20FF31FF2
+:101E600091838083A816B9060CF45C012E5F3F4F66
+:101E70002032310569F7CE0101966C01EE24FF2472
+:101E8000C7010E94B51E82E491E00E94811EF60106
+:101E9000808191810E94B51E89E00E94711E00E040
+:101EA00010E005C083E20E94711E0F5F1F4FF60114
+:101EB000808191819501281B390BC90165E070E093
+:101EC0000E947231061717076CF385E491E00E94B7
+:101ED000811E0894E11CF11C82E090E0C80ED91E1E
+:101EE00090E1E916F10461F685E491E00E94811E1B
+:101EF00080E090E0A0960FB6F894DEBF0FBECDBF95
+:101F0000CF91DF911F910F91FF90EF90DF90CF90D5
+:101F1000BF90AF9008954F925F926F927F928F9291
+:101F20009F92AF92BF92CF92DF92EF92FF920F9368
+:101F30001F93DF93CF93CDB7DEB7A0970FB6F8947A
+:101F4000DEBF0FBECDBF2C016E010894C11CD11C99
+:101F500080E2F60111928A95E9F761157105B9F0F1
+:101F600020E030E04FEF50E0D601A20FB31FFB019D
+:101F7000E20FF31F80819181FA01E81BF90BED93C9
+:101F8000FC932E5F3F4F2032310571F71BC08FEF5E
+:101F90009FEF0E94450E20E030E0B6014FEF50E089
+:101FA000DB01A20FB31FF901E951FC4F8081918140
+:101FB000FA01E81BF90BED93FC932E5F3F4F2032A3
+:101FC000310571F7AA24BB246501662477244301F7
+:101FD00060E070E040E050E08E010F5F1F4FF801BD
+:101FE000E40FF51F20813181FA01E85BFE4F80810B
+:101FF0009181FC012E9FC0012F9F900D3E9F900D5F
+:102000001124AA2797FDA095BA2FA80EB91ECA1EA3
+:10201000DB1EFA01E859FE4F80819181FC012E9F61
+:10202000C0012F9F900D3E9F900D1124AA2797FD70
+:10203000A095BA2F680E791E8A1E9B1E620F731F11
+:102040004E5F5F4F4032510551F6161617062CF0C1
+:1020500020E030E0CC24DD2412C07B010027F7FC17
+:102060000095102FC601B501A80197010E94853186
+:102070006901C401B301A80197010E948531F201F1
+:10208000D182C0823383228380E090E0A0960FB695
+:10209000F894DEBF0FBECDBFCF91DF911F910F919E
+:1020A000FF90EF90DF90CF90BF90AF909F908F9078
+:1020B0007F906F905F904F9008958F929F92AF9214
+:1020C000BF92CF92DF92EF92FF920F931F93DF9315
+:1020D000CF93CDB7DEB7A0970FB6F894DEBF0FBE93
+:1020E000CDBF4C018E010F5F1F4F80E2F8011192AE
+:1020F0008A95E9F761157105B9F020E030E04FEFFE
+:1021000050E0D801A20FB31FFB01E20FF31F808143
+:102110009181FA01E81BF90BED93FC932E5F3F4F81
+:102120002032310571F71BC08FEF9FEF0E94450EE3
+:1021300020E030E0B8014FEF50E0DB01A20FB31F09
+:10214000F901E951FC4F80819181FA01E81BF90BFB
+:10215000ED93FC932E5F3F4F2032310571F7AA2497
+:10216000BB246501EE24FF24870140E050E0BE015E
+:102170006F5F7F4FFB01E40FF51F20813181FA0172
+:10218000E85BFE4F80819181FC012E9FC0012F9F53
+:10219000900D3E9F900D1124AA2797FDA095BA2F70
+:1021A000A80EB91ECA1EDB1EFA01E859FE4F808137
+:1021B0009181FC012E9FC0012F9F900D3E9F900D9D
+:1021C0001124AA2797FDA095BA2FE80EF91E0A1F21
+:1021D0001B1F4E5F5F4F4032510561F6F401B18223
+:1021E000A082F382E28280E090E0A0960FB6F8949D
+:1021F000DEBF0FBECDBFCF91DF911F910F91FF903A
+:10220000EF90DF90CF90BF90AF909F908F90089508
+:10221000AC01477050709C0183E0359527958A95F5
+:10222000E1F72430310509F444C02530310554F478
+:102230002230310511F1233031056CF521303105A3
+:1022400061F40EC02630310509F44FC02630310547
+:10225000F4F12730310509F461C02FEF3FEF77C06B
+:102260008AB3042E02C0220F331F0A94E2F7922F82
+:10227000909598239ABB89B361C087B321E030E081
+:10228000042E02C0220F331F0A94E2F72095282360
+:1022900027BB86B353C084B321E030E0042E02C0D4
+:1022A000220F331F0A94E2F72095282324BB83B31F
+:1022B00045C081B321E030E0042E02C0220F331F5D
+:1022C0000A94E2F72095282321BB80B337C082B15E
+:1022D00021E030E0042E02C0220F331F0A94E2F7FF
+:1022E0002095282322B981B129C04430510534F00A
+:1022F00084B7806884BF84B7806884BF80916100A0
+:1023000021E030E0042E02C0220F331F0A94E2F7CE
+:10231000209528232093610080B110C08091640033
+:1023200021E030E0042E02C0220F331F0A94E2F7AE
+:10233000209528232093640080916300282F30E0AB
+:1023400002C0359527954A95E2F721703070C90192
+:102350000895AC01477050709C0193E03595279526
+:102360009A95E1F724303105C9F1253031055CF447
+:1023700022303105E9F0233031052CF521303105CB
+:1023800009F05BC00CC02630310509F43DC0263091
+:1023900031057CF12730310509F04FC042C08BB3C5
+:1023A00002C0220F331F4A95E2F7822B8BBB0895A0
+:1023B00028B381E090E002C0880F991F4A95E2F7A8
+:1023C000282B28BB089525B381E090E002C0880F38
+:1023D000991F4A95E2F7282B25BB089522B381E087
+:1023E00090E002C0880F991F4A95E2F7282B22BB84
+:1023F000089523B181E090E002C0880F991F4A95AB
+:10240000E2F7282B23B908952091620081E090E043
+:1024100002C0880F991F4A95E2F7282B209362008B
+:1024200008952091650081E090E002C0880F991F17
+:102430004A95E2F7282B209365000895AC01477078
+:1024400050709C0153E0359527955A95E1F7672B1D
+:1024500009F088C02430310509F444C02530310525
+:102460005CF42230310511F1233031056CF5213057
+:10247000310509F0FEC00DC02630310509F44EC00B
+:10248000263031050CF43CC02730310509F0F1C08D
+:1024900056C08AB302C0220F331F4A95E2F7822B3F
+:1024A0008ABB8BB3209528232BBB089587B321E0EB
+:1024B00030E002C0220F331F4A95E2F7822B87BB20
+:1024C00088B32095282386C084B321E030E002C081
+:1024D000220F331F4A95E2F7822B84BB85B32095E8
+:1024E000282386C081B321E030E002C0220F331FD1
+:1024F0004A95E2F7822B81BB82B32095282386C0C0
+:1025000082B121E030E002C0220F331F4A95E2F78A
+:10251000822B82B983B12095282386C080916100E7
+:1025200021E030E002C0220F331F4A95E2F7822BF0
+:1025300080936100809162002095282386C080915D
+:10254000640021E030E002C0220F331F4A95E2F719
+:10255000822B80936400809165002095282320932E
+:10256000650008952430310509F444C02530310553
+:102570005CF42230310511F1233031056CF5213046
+:10258000310509F076C00DC02630310509F44EC082
+:10259000263031050CF43CC02730310509F069C004
+:1025A00057C08AB302C0220F331F4A95E2F7922F19
+:1025B000822B8ABB8BB3982B9BBB089587B321E0FA
+:1025C00030E002C0220F331F4A95E2F7822B87BB0F
+:1025D00088B3282B28BB089584B321E030E002C0E3
+:1025E000220F331F4A95E2F7822B84BB85B3282B39
+:1025F00025BB089581B321E030E002C0220F331FD4
+:102600004A95E2F7822B81BB82B3282B22BB089527
+:1026100082B121E030E002C0220F331F4A95E2F779
+:10262000822B82B983B1282B23B908958091610050
+:1026300021E030E002C0220F331F4A95E2F7822BDF
+:102640008093610080916200282B2093620008959E
+:102650008091640021E030E002C0220F331F4A95D0
+:10266000E2F7822B8093640080916500282B2093F1
+:1026700065000895E4E6F0E080818E7F8083E5E6E2
+:10268000F0E08081816080832091630030E02095BC
+:10269000309521703070C9010895809164008E7F5B
+:1026A00080936400809165008160809365008091D3
+:1026B000630080FF03C020E030E010C08091640020
+:1026C0008E7F8093640080916500816080936500B7
+:1026D0008091630080FFF2CF21E030E0C9010895CE
+:1026E000E4E6F0E080818D7F8083E5E6F0E08081A4
+:1026F000826080832091630030E036952795209595
+:10270000309521703070C9010895809164008D7FEB
+:102710008093640080916500826080936500809161
+:10272000630081FF03C020E030E010C080916400AE
+:102730008D7F809364008091650082608093650046
+:102740008091630081FFF2CF21E030E0C90108955C
+:1027500004C08FE090E00E94D51F809164008D7FBF
+:102760008093640080916500826080936500809111
+:10277000630081FDEECF089504C08FE090E00E94D9
+:10278000D51F809164008E7F8093640080916500E6
+:102790008160809365008091630080FDEECF089595
+:1027A000EF92FF920F931F93F894F4B2E5B217E7FC
+:1027B00014BB15BB8CE291E00E94D51F06E605BB59
+:1027C0008CE291E00E94D51F15BB8CE291E00E9443
+:1027D000D51F05BB8CE291E00E94D51F15BB8CE292
+:1027E00091E00E94D51F05BB8CE291E00E94D51FAD
+:1027F000F4BAE5BA78941F910F91FF90EF90089585
+:10280000CF93DF93EC017894809164008C7F809368
+:10281000640080916500836080936500C0FF04C000
+:1028200081E090E00E949B09C1FF04C00E944E1EFF
+:102830000E945C1EC6FF03C078940E945920C2FF0C
+:1028400003C078940E943A1CC3FF02C00E943D1C42
+:10285000C7FF02C00E94F117D0FF02C00E94311EC4
+:10286000D1FF09C00E9479148F3F19F40E94D01340
+:1028700002C00E94F70DD2FF02C00E94091780EA31
+:102880009FE00197F1F7DF91CF910895E199FECF95
+:102890009FBB8EBB6DBBE29AE19A80E090E0089509
+:1028A000FB01E199FECF9FBB8EBBE09A8DB3808385
+:1028B00080E090E00895E199FECF80E190E09FBB39
+:1028C0008EBBE09A3DB3E199FECF81E190E09FBBE2
+:1028D0008EBBE09A2DB3E199FECF82E190E09FBBE1
+:1028E0008EBBE09A8DB3393411F4243409F08FEFA4
+:1028F0000895E199FECF84E190E09FBB8EBBE09A02
+:102900004DB3E199FECF85E190E09FBB8EBBE09A8D
+:102910003DB3E199FECF86E190E09FBB8EBBE09A8C
+:102920002DB3E199FECF87E190E09FBB8EBBE09A8B
+:102930008DB3423421F43F3411F42D3409F08FEF7C
+:102940000895882329F42091CF053091D00509C03E
+:10295000813019F02FEF3FEF04C020910405309132
+:102960000505C9010895882329F42091C9053091EE
+:10297000CA0509C0813019F02FEF3FEF04C0209144
+:10298000660530916705C9010895882329F42091CF
+:10299000C9053091CA0509C0813019F02FEF3FEF0A
+:1029A00004C02091660530916705C9010895882308
+:1029B00029F41092CA051092C9050895813021F4B6
+:1029C00010926705109266050895809168059091B0
+:1029D00069050895109268051092690510926A05BC
+:1029E00010926B0508959C0180910205909103055A
+:1029F00082179307CCF310920305109202050895F5
+:102A000040916C054230E1F0433028F4442341F01A
+:102A1000413071F508C04330B9F0443049F519C070
+:102A2000382F20E002C0282F30E08091CD05909112
+:102A3000CE05822B932B9093CE058093CD0518C0A5
+:102A4000382F330F20E00AC0282F30E0220F331F29
+:102A500005C0881F8827881F282F30E08091060531
+:102A600090910705822B932B909307058093060581
+:102A7000842F90E0019665E070E00E9472318093AF
+:102A80006C05882309F004C12091060530910705E3
+:102A9000C9018C709070892B19F083E094E006C016
+:102AA00021FF09C020FF07C081E094E09093D0058A
+:102AB0008093CF050AC075E0369527957A95E1F7A2
+:102AC00033703093D0052093CF052091CD05309100
+:102AD000CE05C9018C709070892B19F083E094E0C9
+:102AE00006C021FF09C020FF07C081E094E0909359
+:102AF0000505809304050AC065E0369527956A951B
+:102B0000E1F7337030930505209304051092070513
+:102B1000109206051092CE051092CD058091CF053A
+:102B20009091D00524E08030920708F057C02FEF35
+:102B300033E0281B390B3093D0052093CF058091CB
+:102B40006405909165058D32910529F41092650513
+:102B50001092640505C00196909365058093640505
+:102B6000A0916405B0916505FD01EE0FFF1FE85FC0
+:102B7000FA4F31832083109729F4E0916205F09198
+:102B8000630506C0AA0FBB1FAA5FBA4FED91FC9167
+:102B90003097C1F02E1B3F0B82E0213038073CF00C
+:102BA0008091C9059091CA058F5F934011C09EEF37
+:102BB000203039074CF48091C9059091CA058150A5
+:102BC0009C4F06C020E030E08091C9059091CA0575
+:102BD000820F931F9093CA058093C9052091040525
+:102BE0003091050584E02030380708F051C080910D
+:102BF000CB059091CC058D32910529F41092CC052E
+:102C00001092CB0505C001969093CC058093CB051F
+:102C1000A091CB05B091CC05FD01EE0FFF1FE3594C
+:102C2000FA4F31832083109729F4E091C705F09182
+:102C3000C80506C0AA0FBB1FA559BA4FED91FC915C
+:102C40003097D1F0C9018E1B9F0BFC0192E0E1305F
+:102C5000F9073CF080916605909167058F5F93407E
+:102C600011C02EEFE030F2074CF480916605909190
+:102C7000670581509C4F06C0E0E0F0E0809166055A
+:102C8000909167058E0F9F1F90936705809366054F
+:102C90008091680590916905A0916A05B0916B05D6
+:102CA0000196A11DB11D8093680590936905A093BD
+:102CB0006A05B0936B050895E0916405F091650590
+:102CC000E81BF90BF7FDBE96EE0FFF1FE85FFA4F0A
+:102CD000808191810895E091CB05F091CC05E81BAE
+:102CE000F90BF7FDBE96EE0FFF1FE359FA4F8081F7
+:102CF00091810895FF920F931F93CF93DF93F82E46
+:102D000080916405909165052091CB053091CC05AB
+:102D100086978C01061B170BDC019696A61BB70B3A
+:102D200026523040E901C61BD70B2A5D3F4F261BB8
+:102D3000370B60E070E0FF2099F4FD01B7FDBE960F
+:102D4000EE0FFF1FE85FFA4F40815181F80117FF36
+:102D500002C0FD013896EE0FFF1FE85FFA4F12C068
+:102D6000F90137FDBE96EE0FFF1FE359FA4F408180
+:102D70005181FE01D7FF02C0F9013896EE0FFF1F07
+:102D8000E359FA4F80819181481B590BCA014E9635
+:102D9000CD9768F06F5F7F4F0150104011972197DA
+:102DA000215030406330710531F640E054E0CA01F3
+:102DB000DF91CF911F910F91FF9008951F93CF93B3
+:102DC000DF93182F60E070E00E947A16EC01812FEB
+:102DD00061E070E00E947A1624E0C030D20739F436
+:102DE00024E08030920749F420E038E00DC024E070
+:102DF0008030920731F49E0101C09C01220F331FE5
+:102E000003C09C012C0F3D1FC901DF91CF911F9181
+:102E10000895109203051092020580E095E163E4A5
+:102E200077E10E94771F10926C05109207051092AF
+:102E300006051092CE051092CD058FEF9FEF90936F
+:102E4000D0058093CF0590930505809304051092DB
+:102E50006505109264051092CC051092CB05E8E050
+:102E6000F5E01192119285E0E436F807D1F7EDE62E
+:102E7000F5E01192119285E0E93CF807D1F785E081
+:102E80000E948B1F089510926C058091020590910D
+:102E900003050196909303058093020585E00E9447
+:102EA0008B1F089580E090E01FB8779BFECF0196BE
+:102EB00021E0883F9207C1F7959880E48FB9779B0E
+:102EC000FECF80E88FB9779BFECF959A089595E065
+:102ED000899FC0011124FC01E451F0409C012B5951
+:102EE000304024573F4F84918FB9779BFECF319666
+:102EF000E217F307C1F71FB8779BFECF0895CF9372
+:102F0000DF93EC0103C00E94671721968881882314
+:102F1000D1F7DF91CF9108959598677060646FB98C
+:102F2000779BFECF80688FB9779BFECF959A0895E7
+:102F3000CF92DF92FF920F931F93DF93CF9300D036
+:102F400000D000D0CDB7DEB78C01DE011196E8E9E4
+:102F5000F1E086E001900D928150E1F717FF06C085
+:102F60008DE20E946717109501951F4F86E0F82E9D
+:102F70006E010894C11CD11CFA94F601EF0DF11DED
+:102F8000C8016AE070E00E947231805D8083C801F0
+:102F90006AE070E00E9472318B016115710561F782
+:102FA00008C0F801EF0DF11D80810E946717F394AE
+:102FB00003C08E010F5F1F4F85E08F1590F7269697
+:102FC0000FB6F894DEBF0FBECDBFCF91DF911F913A
+:102FD0000F91FF90DF90CF9008958FB9779BFECF30
+:102FE000089587B3876087BB81B3806381BB88B353
+:102FF000887F88BB95988DB180658DB9709A949AB9
+:103000008AE090E00E94D51F949884E690E00E94A8
+:10301000D51F949A81E28FB9779BFECF88EC8FB948
+:10302000779BFECF86E08FB9779BFECF83E18FB988
+:10303000779BFECF80E28FB9779BFECF8CE08FB974
+:10304000779BFECF959A0E94521708951F920F9278
+:103050000FB60F920BB60F9211242F933F938F93BD
+:103060009F93AF93BF93CF93DF93EF93FF938091A1
+:103070001104882391F02091A5013091A60180913F
+:10308000A9019091AA019093A6018093A501309384
+:10309000AA012093A9011092110485B3876785BB0B
+:1030A00085B3C091A501D091A6019881892385BBE4
+:1030B00010921204898181BF20E0A22FB0E082B774
+:1030C000FD01EE0FFF1FEC0FFD1F91819F5F891720
+:1030D000B8F095B31196AA0FBB1FAC0FBD1F8C9112
+:1030E000982B95BB253061F02F5FE22FF0E0EE0FBB
+:1030F000FF1FEC0FFD1F81818F3FF9F281BFDDCFF4
+:1031000020931204FF91EF91DF91CF91BF91AF9186
+:103110009F918F913F912F910F900BBE0F900FBEFB
+:103120000F901F9018951F920F920FB60F920BB62B
+:103130000F9211242F934F935F938F939F93AF938D
+:10314000BF93EF93FF934091A5015091A601209169
+:103150001204A22FB0E082B7FD01EE0FFF1FE40FB3
+:10316000F51F91819F5F8917B8F095B31196AA0F4B
+:10317000BB1FA40FB51F8C91982B95BB253061F018
+:103180002F5FE22FF0E0EE0FFF1FE40FF51F8181AC
+:103190008F3FF9F281BFDDCF20931204FF91EF91B1
+:1031A000BF91AF919F918F915F914F912F910F9010
+:1031B0000BBE0F900FBE0F901F9018950F931F938B
+:1031C000CF93DF938091A401882309F462C1E09139
+:1031D000A701F091A8018FEF80838091F8058150BD
+:1031E00081838F5F91E09283882311F08EEF80833B
+:1031F0008091F905815083838F5F92E094838823C7
+:1032000019F080818D7F80838091FA0581508583BC
+:103210008F5F94E09683882319F080818B7F808371
+:103220008091FB05815087838F5F90E19087882391
+:1032300019F080818F7E80838091FC058150818789
+:103240008F5F90E29287882319F080818F7D808341
+:103250008091FD05815083878F5F90E49487882358
+:1032600019F080818F7B808391818381891710F091
+:1032700061E007C0818393839281848182839483F8
+:1032800060E0DF01159693818581891758F4838367
+:103290009583948111968C911197848311969C93B8
+:1032A000119760E08D010E5F1F4F958112968C91F2
+:1032B0001297891770F4858312969C931297119632
+:1032C0009C911197E801898111968C9311979983AC
+:1032D00060E098012E5F3F4F12969C911297E80193
+:1032E0008A81891760F412968C9312979A83998138
+:1032F000E9018981E8018983E901998360E0A901F5
+:103300004E5F5F4FE8019A81E9018A81891760F475
+:10331000E8018A83E9019A839981EA018981E901B7
+:103320008983EA01998303C0662309F09FC09181D4
+:103330008381891710F091E007C081839383928184
+:1033400084818283948390E043818581841758F43B
+:1033500083834583948111968C9111978483119670
+:103360009C93119790E0458112968C911297841747
+:1033700070F4858312964C93129711969C91119735
+:10338000E801898111968C931197998390E01296A8
+:103390004C911297E8018A81841760F412968C93FD
+:1033A00012974A839981E9018981E8018983E901BA
+:1033B000998303C0992309F059C0918183818917AA
+:1033C00010F091E007C0818393839281848182838E
+:1033D000948390E023818581821758F48383258329
+:1033E000948111968C911197848311969C931197D7
+:1033F00090E0258112968C911297821770F4858344
+:1034000012962C93129711969C911197E80189813D
+:1034100011968C931197998302C0992339F5918164
+:103420008381891710F021E007C081839383928103
+:1034300084818283948320E093818581891750F46D
+:1034400083839583948111968C911197848311962F
+:103450009C9302C0222351F491818381891730F417
+:103460008183938392818481828394838FB7F8943C
+:103470002091A9013091AA013093A8012093A701BE
+:10348000F093AA01E093A9018FBF81E0809311041A
+:1034900021C08091F805811181E0282F8091F905E4
+:1034A000811122608091FA05811124608091FB05D1
+:1034B000811120618091FC05811120628091FD05C0
+:1034C000811120649FB7F89485B320958767822384
+:1034D00085BB9FBFDF91CF911F910F910895982FCA
+:1034E0003FB7F894809113048823A9F481E0809376
+:1034F00013043FBF892F90E0FC01EE0FFF1FE80F80
+:10350000F91FE850FA4F6083418322830E94DE183E
+:103510001092130408953FBF0895282F9FB7F89481
+:1035200080911304882379F481E0809313049FBF72
+:103530002093F8056093F9054093FA050E94DE1880
+:103540001092130408959FBF0895282F9FB7F894F1
+:1035500080911304882379F481E0809313049FBF42
+:103560002093FB056093FC054093FD050E94DE1847
+:103570001092130408959FBF0895282F9FB7F894C1
+:10358000809113048823A9F481E0809313049FBFE2
+:103590002093F8056093F9054093FA052093FB0505
+:1035A0006093FC054093FD050E94DE181092130401
+:1035B00008959FBF0895EF920F93382F9FB7F89407
+:1035C000809113048823A9F481E0809313049FBFA2
+:1035D0003093F8056093F9054093FA052093FB05B5
+:1035E0000093FC05E092FD050E94DE181092130482
+:1035F00001C09FBF0F91EF900895E62FF0E0629514
+:103600006695677070E044E250E09B01249FB00132
+:10361000259F700D349F700D11249F012C71307007
+:103620003595279535952795DA012A9FA0012B9F7F
+:10363000500D3A9F500D1124E370F07025E530E0F5
+:10364000D901EA9F9001EB9F300DFA9F300D1124B4
+:103650000E946F1A0895482F50E0829586958770D2
+:10366000E4E2F0E09A012C7130703595279535959C
+:1036700027952E9FB0012F9F700D3E9F700D112436
+:103680004370507025E530E0DA01A29FA001A39FAE
+:10369000500DB29F500D11248E9F802D11240E9439
+:1036A0008D1A0895482F50E0829586958770E4E240
+:1036B000F0E09A012C713070359527953595279556
+:1036C0002E9FB0012F9F700D3E9F700D11244370EF
+:1036D000507025E530E0DA01A29FA001A39F500DB4
+:1036E000B29F500D11248E9F802D11240E94A51A87
+:1036F0000895482F50E0829586958770E4E2F0E0C7
+:103700009A012C71307035952795359527952E9F08
+:10371000B0012F9F700D3E9F700D112443705070AB
+:1037200025E530E0DA01A29FA001A39F500DB29FD2
+:10373000500D11248E9F802D11240E94BD1A0895D2
+:10374000AF92BF92DF92EF92FF920F931F93D82E0A
+:10375000482F50E0E62FF0E0D694D694D694D69435
+:10376000D69484E290E09A012C71307035952795BB
+:1037700035952795289F5001299FB00C389FB00C94
+:10378000112443705070A5E5B0E09A012A9FA00172
+:103790002B9F500D3A9F500D1124629566956770CE
+:1037A00070E0689F9001699F300D789F300D112463
+:1037B000BF016C7170707595679575956795689F79
+:1037C0008001699F100D789F100D1124E370F07037
+:1037D000EA9F7001EB9FF00CFA9FF00C1124D89E29
+:1037E000802D11246A2D0E94DB1A1F910F91FF90EA
+:1037F000EF90DF90BF90AF90089586E083BF87B7CA
+:10380000836087BF089587B78C7F87BF0895813015
+:1038100041F487B78C7F87BF1092A4010E94DE1805
+:10382000089581E08093A4010E94DE1886E083BFA2
+:1038300087B7836087BF089585B3876785BB84B3E7
+:10384000876784BB80E060E040E00E94BD1A81E0B1
+:103850000E94071C089585B3876785BB84B387677B
+:1038600084BB80E060E040E00E94BD1A80E00E94DE
+:10387000071C08950E942B1C08958BB38F708BBB7F
+:103880008AB3806F8ABB87B3806687BB81EA8FBDAE
+:1038900089E08EBD1BBC1ABC19BC18BC0895892BCD
+:1038A00051F48BB38073803111F01BBC1ABC8BB305
+:1038B0008F7C806109C08BB38073803211F01BBC98
+:1038C0001ABC8BB38F7C80628BBB6ABD0895892B39
+:1038D00051F48BB3807C803811F019BC18BC8BB3C9
+:1038E0008F73806809C08BB3807C803411F019BC61
+:1038F00018BC8BB38F7380648BBB68BD08950E9426
+:103900004F1C08950E94671C08951ABC18BC0895A6
+:103910008B3191055CF08336910544F4FC01EE0F88
+:10392000FF1FEA5CFD4F2591349102C02FEF3FEF5E
+:10393000C901089584309105A9F08530910534F4CA
+:1039400082309105A9F00397B1F40FC0853091053D
+:1039500019F0069781F403C021E030E00EC020E0AA
+:1039600030E00BC022E030E008C023E030E005C0CA
+:1039700024E030E002C02FEF30E0C9010895EF925B
+:10398000FF920F931F93CF93DF9384309105B1F093
+:103990008530910534F482309105C1F00397D1F45C
+:1039A00011C08530910519F00697A1F404C0B1E06B
+:1039B000EB2EF12C12C0EE24FF240FC0A2E0EA2E61
+:1039C000F12C0BC0F3E0EF2EF12C07C0E4E0EE2E5B
+:1039D000F12C03C05FEFE52EF12CF701E75CFB4F04
+:1039E00021E06834720708F08FC080819701220FB0
+:1039F000331F220F331FE701CC0FDD1F6E548330BE
+:103A0000D0F42A5E3B4FF90181818083FE01EE0DE7
+:103A1000FF1DE65DFB4F81818083DE01AA0FBB1F86
+:103A2000A85EBB4F8C91E9018983828181838B8160
+:103A30008C936B8316C0D901AA5EBB4F6C93FE01B9
+:103A4000EE0DFF1DE65DFB4F608311966C931197A1
+:103A50006183CC0FDD1FC85EDB4F688362831396E2
+:103A60006C93F701E75CFB4F1082D701AA0FBB1FD5
+:103A7000FD01EE0FFF1FE85EFB4F8081F701EE0FA7
+:103A8000FF1FEE0FFF1FEA5EFB4F018110E0080FE2
+:103A9000111D53E0000F111F5A95E1F708511B4FFC
+:103AA0002381808190E0820F911D84569F4FAE0D3F
+:103AB000BF1DA65DBB4F2C9130E0225B3F4F220F14
+:103AC000331F821B930B23E0880F991F2A95E1F780
+:103AD00063E070E00E947231C801860F971F60E1B9
+:103AE00070E00E947231CB018E5490408F3F91055F
+:103AF00011F00CF08FEFF701EE0FFF1FEE0DFF1D21
+:103B0000E65DFB4F82830AC080818F3F09F08F5FA3
+:103B1000E9E3F4E0EE0EFF1EE7018883DF91CF9129
+:103B20001F910F91FF90EF90089583E080933904E7
+:103B300080933A0480933B0480933C0480933D043B
+:103B400081E090E063E07EE10E94E01F08950E9422
+:103B5000D4098B3191055CF08336910544F4FC0166
+:103B6000EE0FFF1FEA5CFD4F2591349102C02FEF4D
+:103B70003FEFC90108959C018091140490911504B0
+:103B8000892B29F4C9010E94A71D9C013AC0243049
+:103B90003105B9F0253031053CF422303105B9F05A
+:103BA00023303105B9F410C02530310521F026301D
+:103BB000310581F403C021E030E00EC020E030E0A8
+:103BC0000BC022E030E008C023E030E005C024E074
+:103BD00030E002C02FEF30E0F901E75CFB4F80815D
+:103BE000833018F02FEF3FEF0CC0F901EE0FFF1FED
+:103BF000E20FF31FE65DFB4F8281282F30E0225B4E
+:103C00003F4FC901089586E090E00E94A71DBC01C6
+:103C100086E090E00E94BF1C85E090E00E94A71D16
+:103C2000BC0185E090E00E94BF1C84E090E00E940F
+:103C3000A71DBC0184E090E00E94BF1C83E090E0DF
+:103C40000E94A71DBC0183E090E00E94BF1C82E09F
+:103C500090E00E94A71DBC0182E090E00E94BF1C82
+:103C6000089584E190E060E070E00E941E121092DE
+:103C700015041092140408950F931F938C010E9451
+:103C8000311E012B41F081E090E090931504809368
+:103C900014040E94951D1F910F9108951092900099
+:103CA00088E089B9599A8AB188618AB9E5E9F0E072
+:103CB00080818660808308951092980087E68093C3
+:103CC0009900EBE9F0E0808182608083EAE9F0E02E
+:103CD000808188618083EDE9F0E080818660808367
+:103CE00008955D9BFECF8CB980E090E00895982FF9
+:103CF00080919B0085FFFCCF90939C0080E090E03A
+:103D00000895FC0104C05D9BFECF8CB93196808183
+:103D10008823C9F780E090E008955F9BFECF8CB1C7
+:103D200090E0089580919B0087FFFCCF80919C00DC
+:103D300090E00895FC015F9903C02FEF3FEF04C0AE
+:103D40008CB1808320E030E0C9010895FC018091AE
+:103D50009B0087FD03C02FEF3FEF05C080919C00C3
+:103D6000808320E030E0C90108950F931F93DF9313
+:103D7000CF9300D000D000D0CDB7DEB79C01DE01DC
+:103D80001196ECEBF1E086E001900D928150E1F7A5
+:103D900037FF07C05D9BFECF8DE28CB93095219532
+:103DA0003F4F46E08E010F5F1F4F4150F801E40F77
+:103DB000F11DC9016AE070E00E947231805D80836C
+:103DC000C9016AE070E00E9472319B0161157105C2
+:103DD00061F709C0FC01E40FF11DE0815D9BFECF9E
+:103DE000ECB94F5F02C0CE010196463098F380E0F7
+:103DF00090E026960FB6F894DEBF0FBECDBFCF91F0
+:103E0000DF911F910F910895803110F08FE3089595
+:103E1000E82FF0E0E555FE4F808108959C01E32FE7
+:103E2000E295EF70F0E0E555FE4FE0815D9BFECF3F
+:103E3000ECB95D9BFECFE32FF0E0EF70F070E5553D
+:103E4000FE4F80818CB95D9BFECFF90184E0F69531
+:103E5000E7958A95E1F7F0E0EF70F070E555FE4FD9
+:103E600080818CB95D9BFECFE22FF0E0EF70F070A7
+:103E7000E555FE4F80818CB90895E82FE295EF70EB
+:103E8000F0E0E555FE4FE0815D9BFECFECB95D9B18
+:103E9000FECFE82FF0E0EF70F070E555FE4F808127
+:103EA0008CB90895EF92FF920F931F93DF93CF93F6
+:103EB0000F92CDB7DEB78C017E010894E11CF11C96
+:103EC00005C05D9BFECF8CB90F5F1F4FC701B801C6
+:103ED00041E050E00E942C328981882391F70F90B5
+:103EE000CF91DF911F910F91FF90EF90089523EDF7
+:103EF0002DB921E02EB927B3276027BBBB98C09A04
+:103F00009093400480933F04709342046093410473
+:103F100010923E04089580933E04C0988FEF8FB9AD
+:103F200008951F920F920FB60F920BB60F921124A5
+:103F30002F933F934F935F936F937F938F939F93B1
+:103F4000AF93BF93EF93FF9380913E048823D1F00A
+:103F50008FB1E0913F04F0914004099580913E04B7
+:103F6000815080933E0480913E04882349F4C09A96
+:103F7000E0914104F0914204309721F0099502C08C
+:103F80008FEF8FB9FF91EF91BF91AF919F918F917B
+:103F90007F916F915F914F913F912F910F900BBE49
+:103FA0000F900FBE0F901F90189520E436E004C0CC
+:103FB000F9013197F1F7019718161906CCF3089516
+:103FC0001092890010928800EAE8F0E020812860D1
+:103FD000208320812260208324E234EF3093870005
+:103FE00020938600EDE7F0E020812061208370932C
+:103FF0004804609347049093C3018093C2010895DD
+:104000002091450430914604C90108951092460458
+:104010001092450408951F920F920FB60F920BB69F
+:104020000F9211242F933F934F935F936F937F933E
+:104030008F939F93AF93BF93EF93FF93209143048C
+:10404000309144048091C2019091C301281739072F
+:10405000A1F4809145049091460401969093460402
+:1040600080934504E0914704F0914804309709F0AB
+:104070000995109244041092430480914304909156
+:10408000440401969093440480934304FF91EF917C
+:10409000BF91AF919F918F917F916F915F914F9160
+:1040A0003F912F910F900BBE0F900FBE0F901F905E
+:1040B000189508959CE195BDBF9A83BD08959C0114
+:1040C00040E050E064E274EF80E090E00E948531CF
+:1040D0002150304037FF02C020E030E08CE185BD48
+:1040E000BF9A2F3F310519F014F02FEF30E023BDB8
+:1040F000089585B5887F85BDC69808950F931F9351
+:104100008C01CB010E945F20C8010E94D51F85B59C
+:10411000887F85BDC6981F910F910895EF92FF92F9
+:104120000F93DF93CF93CDB7DEB760970FB6F894B8
+:10413000DEBF0FBECDBFA82F002309F461C07E01F2
+:104140000894E11CF11C88E0F70111928A95E9F7C7
+:1041500029833A834B835C836D837E83AF83988707
+:1041600080E2801BE82FFF27E7FDF09549815A8107
+:104170006B817C81181684F019861A861B861C8632
+:10418000882799278E1B9F0B04C0440F551F661F5D
+:10419000771F8A95D2F728C0202F332727FD309527
+:1041A000DB01CA01022E04C0880F991FAA1FBB1F82
+:1041B0000A94D2F789879A87AB87BC8704C0769523
+:1041C000679557954795EA95D2F78D819E81AF8186
+:1041D000B88504C0880F991FAA1FBB1F2A95D2F764
+:1041E000482B592B6A2B7B2B4D875E876F87788BEB
+:1041F00029853A854B855C856D857E85AF85988957
+:104200008A2F60960FB6F894DEBF0FBECDBFCF9158
+:10421000DF910F91FF90EF900895A2E7B0E0E3E106
+:10422000F1E20C94F531982E892E712E88E0FE0172
+:104230003196DF01682E1D926A94E9F729833A834B
+:104240004B835C836D837E839F829887FE013996C2
+:10425000DF011D928A95E9F7A986BA86CB86DC86AE
+:10426000ED86FE860F87188B8D819E81AF81B88584
+:10427000B7FD07C0E1961CAE1DAE1EAE1FAEE197A6
+:1042800064C0219581E0121608F080E0319591E03C
+:10429000131608F090E0B32FB81B81E03B1708F02D
+:1042A00080E0982B419531E0141608F030E0A42FFF
+:1042B000A91B81E04A1708F080E0382B519591E066
+:1042C000151608F090E0F52FF31B81E05F1708F05A
+:1042D00080E0982B619531E0161608F030E0E62F6B
+:1042E000E91B81E06E1708F080E0382B719541E002
+:1042F000171608F040E0572F531B81E0751708F0A0
+:1043000080E0482B892D819591E0181608F090E007
+:10431000682E641A462D31E0861508F030E0932BA4
+:10432000882D8195891B2983BA83AB83FC83ED8318
+:104330005E834F8388872FEF3FEF4FEF5FEFE1966C
+:104340002CAF3DAF4EAF5FAFE1978D859E85AF85BA
+:10435000B889B7FF6AC0E1964CAD5DAD6EAD7FAD7B
+:10436000E1974095509560957095E1964CAF5DAFA3
+:104370006EAF7FAFE197A19481E01A1408F080E05E
+:10438000B19491E01B1408F090E06B2D681B81E064
+:10439000B61608F080E0982BC19421E01C1408F0B8
+:1043A00020E05C2D591B81E0C51608F080E0282B29
+:1043B000D19491E01D1408F090E04D2D421B81E056
+:1043C000D41608F080E0982BE19421E01E1408F048
+:1043D00020E03E2D391B81E0E31608F080E0282B19
+:1043E000F19491E01F1408F090E07F2D721B272FAD
+:1043F00081E0F71608F080E0982B019511E0101687
+:1044000008F010E0802F891B982F81E0091708F031
+:1044100080E0182B872D8195811BA9866A875B8791
+:104420004C873D872E879F87888B99812A813B8186
+:104430004C815D816E817F81A885B9851A850B8548
+:10444000FC84ED84DE84CF84B88888E0E1E18E2EA0
+:10445000912C8C0E9D1EF401682E11926A94E9F73E
+:10446000998B2A8B3B8B4C8B5D8B6E8B7F8BA88FB4
+:104470009E01275E3F4FF90111928A95E9F7B98FA6
+:104480001A8F0B8FFC8EED8EDE8ECF8EB8A2298C0C
+:104490003A8C4B8C5C8CED8CFE8C0F8D18A169884E
+:1044A0007A888B889C8821966CAE7DAE8EAE9FAE4E
+:1044B00021976D887E888F88988CE114F10401051E
+:1044C000110509F0D9C3621473048404950408F03B
+:1044D00057C100E0201600E0300601E0400600E091
+:1044E000500688F41FEF211631044104510439F0BD
+:1044F00030F048E0E42EF12C012D112D18C0EE24EF
+:10450000FF24870114C020E0221620E0320620E0BC
+:10451000420621E0520630F038E1E32EF12C012D65
+:10452000112D05C020E1E22EF12C012D112DD2011B
+:10453000C1010E2C04C0B695A795979587950A944E
+:10454000D2F78C539E4FDC012C9180E290E0A0E0EA
+:10455000B0E08E199F09A00BB10B7C018D01E21A0E
+:10456000F10801091109E114F10401051105D1F166
+:104570000E2C04C0220C331C441C551C0A94D2F788
+:10458000A40193010E2C04C0220F331F441F551F9A
+:104590000A94D2F780E290E08E199F0921966CACC4
+:1045A0007DAC8EAC9FAC219704C096948794779491
+:1045B00067948A95D2F7622A732A842A952A2196CB
+:1045C000ACACBDACCEACDFAC219704C0AA0CBB1C1C
+:1045D000CC1CDD1CEA94D2F72196ACAEBDAECEAEBB
+:1045E000DFAE21976201EE24FF242996CCAEDDAE2A
+:1045F000EEAEFFAE299792018101207030702D96AA
+:104600000CAF1DAF2EAF3FAF2D97C401B301A70173
+:1046100096010E94D3317B018C01C401B30129961C
+:104620002CAD3DAD4EAD5FAD29970E94D331C90190
+:10463000DA013C014D01C401B3012D962CAD3DAD15
+:104640004EAD5FAD2D970E94A0319B01AC0187015B
+:10465000FF24EE242196ACACBDACCEACDFAC2197F0
+:10466000C601AA27BB2757016801A82AB92ACA2A66
+:10467000DB2AA216B306C406D506E0F40894610846
+:10468000710881089108A20CB31CC41CD51CA2148B
+:10469000B304C404D50470F0A216B306C406D5064C
+:1046A00048F408946108710881089108A20CB31CB1
+:1046B000C41CD51CA21AB30AC40AD50AC601B50186
+:1046C00029962CAD3DAD4EAD5FAD29970E94D331FB
+:1046D0007B018C01C601B50129962CAD3DAD4EADD7
+:1046E0005FAD29970E94D331C901DA015C016D01E8
+:1046F000C601B5012D962CAD3DAD4EAD5FAD2D97EC
+:104700000E94A0319B01AC018701FF24EE24219679
+:104710008CAD9DADAEADBFAD2197A070B070E82A55
+:10472000F92A0A2B1B2BE216F30604071507C0F41F
+:104730000894A108B108C108D108E20CF31C041DBB
+:10474000151DE214F3040405150550F0E216F306F6
+:104750000407150728F40894A108B108C108D10876
+:10476000D3019927882786017501E82AF92A0A2B9F
+:104770001B2B2596ECAEFDAE0EAF1FAF2597EBC4FD
+:10478000211431044104510471F461E070E080E0CF
+:1047900090E020E030E040E050E00E94D331C901D9
+:1047A000DA011C012D0100E0201600E0300601E0D6
+:1047B000400600E0500688F41FEF21163104410442
+:1047C000510431F028F048E050E060E070E017C09C
+:1047D00040E050E060E070E012C020E0221620E0EF
+:1047E000320620E0420621E0520628F048E150E07F
+:1047F00060E070E004C040E150E060E070E0D201B1
+:10480000C101042E04C0B695A795979587950A9483
+:10481000D2F78C539E4FDC012C91E0E2EE2EF12C6E
+:10482000012D112DD801C701841B950BA60BB70BC9
+:10483000821B9109A109B1090097A105B10561F495
+:1048400064015301A218B308C408D50831E0632EEF
+:10485000712C812C912C24C1E3968FAFE397082E05
+:1048600004C0220C331C441C551C0A94D2F7EE2DB4
+:10487000E81B640153010E2E04C0D694C794B7946C
+:10488000A7940A94D2F7A4019301E3960FACE3979F
+:1048900004C0220F331F441F551F0A94D2F72196DC
+:1048A0006CAC7DAC8EAC9FAC21970E2E04C0969460
+:1048B0008794779467940A94D2F784017301E22A6B
+:1048C000F32A042B152BE9AEFAAE0BAF1CAF320165
+:1048D00088249924920181012070307061960CAF78
+:1048E0001DAF2EAF3FAF6197C601B501A401930183
+:1048F0000E94D3317B018C01C601B501A401930153
+:104900000E94D331C901DA0165968CAF9DAFAEAF7D
+:10491000BFAF6597BC01CD0161962CAD3DAD4EADED
+:104920005FAD61970E94A0319B01AC018701FF241C
+:10493000EE24A9ACBAACCBACDCACC601AA27BB2731
+:104940005C016D01AE28BF28C02AD12AA216B30689
+:10495000C406D50660F565966CAD7DAD8EAD9FAD98
+:104960006597615070408040904065966CAF7DAF18
+:104970008EAF9FAF6597A20CB31CC41CD51CA214AC
+:10498000B304C404D50498F0A216B306C406D50631
+:1049900070F4615070408040904065966CAF7DAF80
+:1049A0008EAF9FAF6597A20CB31CC41CD51CA21A76
+:1049B000B30AC40AD50AC601B501A40193010E9435
+:1049C000D3317B018C01C601B501A40193010E9482
+:1049D000D331C901DA013C014D01C401B301619633
+:1049E0002CAD3DAD4EAD5FAD61970E94A0319B01F6
+:1049F000AC018701FF24EE2489AD9AADABADBCAD0F
+:104A0000A070B07057016801A82AB92ACA2ADB2A07
+:104A1000A216B306C406D506E0F40894610871082E
+:104A200081089108A20CB31CC41CD51CA214B304A9
+:104A3000C404D50470F0A216B306C406D50648F423
+:104A400008946108710881089108A20CB31CC41C69
+:104A5000D51C21968CAD9DADAEADBFAD2197E39633
+:104A60000FACE39704C0880F991FAA1FBB1F0A94BD
+:104A7000D2F721968CAF9DAFAEAFBFAF2197A21AF0
+:104A8000B30AC40AD50A6596ECACFDAC0EAD1FADF9
+:104A90006597D70199278827682A792A8A2A9B2A25
+:104AA00082012227332769960CAF1DAF2EAF3FAF8F
+:104AB0006997A2019101407050706D962CAF3DAF87
+:104AC0004EAF5FAF6D97C601B50169962CAD3DAD98
+:104AD0004EAD5FAD69970E94D3317B018C01C60159
+:104AE000B50169962CAD3DAD4EAD5FAD69970E94A5
+:104AF000D331C901DA01A1968CAF9DAFAEAFBFAF84
+:104B0000A197BC01CD016D962CAD3DAD4EAD5FAD15
+:104B10006D970E94A0319B01AC018701FF24EE2418
+:104B20002196ACACBDACCEACDFAC2197C601AA27B8
+:104B3000BB2757016801A82AB92ACA2ADB2AA2166C
+:104B4000B306C406D50660F5A1966CAD7DAD8EADFD
+:104B50009FADA1976150704080409040A1966CAF8E
+:104B60007DAF8EAF9FAFA197A20CB31CC41CD51C08
+:104B7000A214B304C404D50498F0A216B306C40664
+:104B8000D50670F46150704080409040A1966CAFA3
+:104B90007DAF8EAF9FAFA197A20CB31CC41CD51CD8
+:104BA000A21AB30AC40AD50AC601B50169962CAD8A
+:104BB0003DAD4EAD5FAD69970E94D3317B018C0155
+:104BC000C601B50169962CAD3DAD4EAD5FAD69979F
+:104BD0000E94D331C901DA015C016D01C601B50142
+:104BE0006D962CAD3DAD4EAD5FAD6D970E94A03181
+:104BF0009B01AC018701FF24EE2421968CAD9DAD75
+:104C0000AEADBFAD2197A070B070E82AF92A0A2B8B
+:104C10001B2BE216F30604071507C0F40894A1083D
+:104C2000B108C108D108E20CF31C041D151DE214E3
+:104C3000F3040405150550F0E216F3060407150702
+:104C400028F40894A108B108C108D108A196ECACD9
+:104C5000FDAC0EAD1FADA197D7019927882796010E
+:104C60008501082B192B2A2B3B2B25960CAF1DAF4A
+:104C70002EAF3FAF259772C26E147F048006910657
+:104C800008F45FC220E0E21620E0F20621E002070D
+:104C900020E0120788F43FEFE316F1040105110547
+:104CA00031F028F048E050E060E070E017C040E0EC
+:104CB00050E060E070E012C040E0E41640E0F4062E
+:104CC00040E0040741E0140728F048E150E060E0CC
+:104CD00070E004C040E150E060E070E0D801C7013E
+:104CE000042E04C0B695A795979587950A94D2F798
+:104CF0008C539E4FDC012C9130E2A32EB12CC12CA1
+:104D0000D12CD601C501841B950BA60BB70B821BBA
+:104D10009109A109B1090097A105B10599F4E6141B
+:104D2000F7040805190508F4FEC121966CAC7DACAA
+:104D30008EAC9FAC2197621473048404950408F030
+:104D4000F2C1FFC1E2968FAFE297082E04C0EE0CCD
+:104D5000FF1C001F111F0A94D2F76A2D681BD20195
+:104D6000C101062E04C0B695A795979587950A941C
+:104D7000D2F75C016D01AE28BF28C02AD12AADAAA6
+:104D8000BEAACFAAD8AE72016101E2960FACE2973B
+:104D900004C0CC0CDD1CEE1CFF1C0A94D2F7C9AA7F
+:104DA000DAAAEBAAFCAA64015301062E04C0D69429
+:104DB000C794B794A7940A94D2F7D401C301E2969A
+:104DC0000FACE29704C0880F991FAA1FBB1F0A945B
+:104DD000D2F72196ECACFDAC0EAD1FAD219704C00F
+:104DE00016950795F794E7946A95D2F7370148012D
+:104DF000682A792A8A2A9B2A6DA67EA68FA698AA57
+:104E0000EDA8FEA80FA918AD3801882499249801AF
+:104E1000870120703070A5960CAF1DAF2EAF3FAF4D
+:104E2000A597C601B501A40193010E94D3317B016E
+:104E30008C01C601B501A40193010E94D331C901BF
+:104E4000DA011C012D01C201B101A5962CAD3DADC9
+:104E50004EAD5FADA5970E94A0319B01AC018701CB
+:104E6000FF24EE24ADA4BEA4CFA4D8A8C601AA27CF
+:104E7000BB2757016801A82AB92ACA2ADB2AA21629
+:104E8000B306C406D50600F5089421083108410888
+:104E90005108EDA8FEA80FA918ADAE0CBF1CC01E8E
+:104EA000D11EAE14BF04C006D10670F0A216B30620
+:104EB000C406D50648F40894210831084108510871
+:104EC000AE0CBF1CC01ED11EA21AB30AC40AD50A5A
+:104ED000C601B501A40193010E94D3317B018C016D
+:104EE000C601B501A40193010E94D331C901DA01C1
+:104EF0003C014D01C401B301A5962CAD3DAD4EADB5
+:104F00005FADA5970E94A0319B01AC018701FF24F2
+:104F1000EE248DA59EA5AFA5B8A9A070B0705701CD
+:104F20006801A82AB92ACA2ADB2AA216B306C4062F
+:104F3000D50600F5089461087108810891086DA9EB
+:104F40007EA98FA998ADA60EB71EC81ED91EA6169B
+:104F5000B706C806D90670F0A216B306C406D50671
+:104F600048F408946108710881089108A60EB71EDC
+:104F7000C81ED91ED601C501821B930BA40BB50B0D
+:104F800089A79AA7ABA7BCA7D10199278827640155
+:104F90005301A82AB92ACA2ADB2A2596ACAEBDAE8F
+:104FA000CEAEDFAE2597860175012FEF3FEF40E0D3
+:104FB00050E0E222F32204231523A6016627772777
+:104FC000AD964CAF5DAF6EAF7FAFAD97A9A8BAA855
+:104FD000CBA8DCA86FEF7FEF80E090E0A622B7229D
+:104FE000C822D92289A99AA9ABA9BCA91D01442428
+:104FF0005524C801B701A60195010E94A031A996C8
+:105000006CAF7DAF8EAF9FAFA997C801B701A2016A
+:1050100091010E94A0313B014C01AD966CAD7DAD7C
+:105020008EAD9FADAD97A60195010E94A0317B0189
+:105030008C01AD966CAD7DAD8EAD9FADAD97A201EF
+:1050400091010E94A0315B016C01A8019701260D1E
+:10505000371D481D591DA9966CAC7DAC8EAC9FAC1C
+:10506000A997C401AA27BB27280F391F4A1F5B1F16
+:105070002E153F054007510748F4E12CF12C61E063
+:10508000062F112DAE0CBF1CC01ED11ECA01AA27AF
+:10509000BB27BC01CD016A0D7B1D8C1D9D1D69A424
+:1050A0007AA48BA49CA4661677068806990650F10C
+:1050B000661577058805990509F04DC0D90199272E
+:1050C0008827A9962CAD3DAD4EAD5FADA997407038
+:1050D0005070820F931FA41FB51F21962CAD3DADBC
+:1050E0004EAD5FAD2197E2960FACE29704C0220F60
+:1050F000331F441F551F0A94D2F7281739074A0750
+:105100005B0748F525960CAD1DAD2EAD3FAD25973F
+:10511000015010402040304025960CAF1DAF2EAFFF
+:105120003FAF259718C066247724430121E030E083
+:1051300040E050E025962CAF3DAF4EAF5FAF2597D6
+:105140000DC066247724430125961CAE1DAE1EAE0D
+:105150001FAE259703C0662477244301FE01B19654
+:1051600088E0DF011D928A95E9F72596ACACBDACCD
+:10517000CEACDFAC2597A9A2BAA2CBA2DCA26DA2CD
+:105180007EA28FA298A622962FAD22973AA14BA17C
+:105190005CA1662D7EA1DFA098A5E196ECACFDACEC
+:1051A0000EAD1FADE197E114F1040105110509F4FD
+:1051B00056C0219581E0121608F080E03195E1E0BB
+:1051C000131608F0E0E0932E981A81E0391508F0E4
+:1051D00080E0E82B4195F1E0141608F0F0E0A42EF1
+:1051E000AE1A81E04A1508F080E0F82B5195E1E015
+:1051F000151608F0E0E0B52EBF1A81E05B1508F047
+:1052000080E0E82B6195F1E0161608F0F0E0A62F9B
+:10521000AE1B81E06A1708F080E0F82B7195E1E0A1
+:10522000171608F0E0E0C72ECF1A81E07C1508F0D1
+:1052300080E0E82B8D2D8195F1E0181608F0F0E064
+:10524000D82EDE1AE1E08D1508F0E0E0FE2B892F64
+:105250008195392DA5016A2F7C2D982F9F1B8D2DAF
+:10526000CE58DF4FE2E10C941132A7E7B0E0EBE358
+:10527000F9E20C94F531982E892E712E88E0FE010A
+:105280003196DF01682E1D926A94E9F729833A83EB
+:105290004B835C836D837E839F829887FE01399662
+:1052A000DF011D928A95E9F7A986BA86CB86DC864E
+:1052B000ED86FE860F87188B8D819E81AF81B88524
+:1052C000B7FD07C0E1961CAE1DAE1EAE1FAEE19746
+:1052D00064C0219581E0121608F080E0319591E0DC
+:1052E000131608F090E0B32FB81B81E03B1708F0CD
+:1052F00080E0982B419531E0141608F030E0A42F9F
+:10530000A91B81E04A1708F080E0382B519591E005
+:10531000151608F090E0F52FF31B81E05F1708F0F9
+:1053200080E0982B619531E0161608F030E0E62F0A
+:10533000E91B81E06E1708F080E0382B719541E0A1
+:10534000171608F040E0572F531B81E0751708F03F
+:1053500080E0482B892D819591E0181608F090E0A7
+:10536000682E641A462D31E0861508F030E0932B44
+:10537000882D8195891B2983BA83AB83FC83ED83B8
+:105380005E834F8388872FEF3FEF4FEF5FEFE1960C
+:105390002CAF3DAF4EAF5FAFE1978D859E85AF855A
+:1053A000B889B7FF5AC0A19481E01A1408F080E0D0
+:1053B000B19491E01B1408F090E06B2D681B81E024
+:1053C000B61608F080E0982BC19421E01C1408F078
+:1053D00020E05C2D591B81E0C51608F080E0282BE9
+:1053E000D19491E01D1408F090E04D2D421B81E016
+:1053F000D41608F080E0982BE19421E01E1408F008
+:1054000020E03E2D391B81E0E31608F080E0282BD8
+:10541000F19491E01F1408F090E07F2D721B272F6C
+:1054200081E0F71608F080E0982B019511E0101646
+:1054300008F010E0802F891B982F81E0091708F0F1
+:1054400080E0182B872D8195811BA9866A875B8751
+:105450004C873D872E879F87888B99812A813B8146
+:105460004C815D816E817F81A885B9851A850B8508
+:10547000FC84ED84DE84CF84B88888E0E9E18E2E58
+:10548000912C8C0E9D1EF401682E11926A94E9F7FE
+:10549000998F2A8F3B8F4C8F5D8F6E8F7F8FA8A344
+:1054A0009E012F5D3F4FF90111928A95E9F7B9A34B
+:1054B0001AA30BA3FCA2EDA2DEA2CFA2B8A629A03C
+:1054C0003AA04BA05CA0ADA0BEA0CFA0D8A4498DAF
+:1054D0005A8D6B8D7C8DE5964FAFE597E6965FAF65
+:1054E000E697E7966FAFE797E8967FAFE897E8967D
+:1054F0006CAC7DAC8EAC9FACE8972D966CAE7DAE5F
+:105500008EAE9FAE2D978D8D9E8D2F8D38A13C0137
+:10551000490161966CAE7DAE8EAE9FAE6197A114CF
+:10552000B104C104D10409F028C3621473048404D3
+:10553000950408F00EC100E0201600E0300601E0FE
+:10554000400600E0500688F41FEF211631044104A4
+:10555000510439F030F088E0E82EF12C012D112DA6
+:1055600018C0EE24FF24870114C020E0221620E09A
+:10557000320620E0420621E0520630F0B8E1EB2E80
+:10558000F12C012D112D05C0A0E1EA2EF12C012DE9
+:10559000112DD201C1010E2C04C0B695A795979587
+:1055A00087950A94D2F78C539E4FDC012C9180E2B0
+:1055B00090E0A0E0B0E08E199F09A00BB10B5C0158
+:1055C0006D01A21AB108C108D1086596ACAEBDAE96
+:1055D000CEAEDFAE6597A114B104C104D10409F4C5
+:1055E00045C062966FAD6297062E04C0220C331C34
+:1055F000441C551C0A94D2F7A4019301062E04C042
+:10560000220F331F441F551F0A94D2F780E290E007
+:105610008A199B09E896CCACDDACEEACFFACE89700
+:1056200004C0F694E794D794C7948A95D2F787017B
+:105630007601E22AF32A042B152B6196ECAEFDAE1F
+:105640000EAF1FAF6197E8960CAD1DAD2EAD3FAD0F
+:10565000E89704C0000F111F221F331F6A95D2F76D
+:105660002D960CAF1DAF2EAF3FAF2D973201882482
+:105670009924A20191014070507069962CAF3DAF02
+:105680004EAF5FAF699761966CAD7DAD8EAD9FAD4E
+:105690006197A40193010E94D3317B018C01619633
+:1056A0006CAD7DAD8EAD9FAD6197A40193010E945D
+:1056B000D331CA01B90169962CAD3DAD4EAD5FAD98
+:1056C00069970E94A0319B01AC018701FF24EE2461
+:1056D0002D96ACACBDACCEACDFAC2D97C601AA27E5
+:1056E000BB2757016801A82AB92ACA2ADB2AA216B1
+:1056F000B306C406D50690F4A20CB31CC41CD51C7A
+:10570000A214B304C404D50448F0A216B306C40618
+:10571000D50620F4A20CB31CC41CD51CA21AB30AD3
+:10572000C40AD50AC601B501A40193010E94D33170
+:105730007B018C01C601B501A40193010E94D33104
+:10574000CA01B90169962CAD3DAD4EAD5FAD69970B
+:10575000C8C1211431044104510471F461E070E0C6
+:1057600080E090E020E030E040E050E00E94D33163
+:10577000C901DA011C012D0100E0201600E030060D
+:1057800001E0400600E0500688F41FEF21163104C6
+:105790004104510439F030F068E0E62EF12C012D7F
+:1057A000112D18C0EE24FF24870114C020E022161A
+:1057B00020E0320620E0420621E0520630F058E1B7
+:1057C000E52EF12C012D112D05C040E1E42EF12C28
+:1057D000012D112DD201C1010E2C04C0B695A79543
+:1057E000979587950A94D2F78C539E4FDC012C91A4
+:1057F00030E2A32EB12CC12CD12CD601C5018E19BB
+:105800009F09A00BB10B7C018D01E21AF10801097F
+:1058100011096596ECAEFDAE0EAF1FAF6597E114B2
+:10582000F1040105110539F464015301A218B3080C
+:10583000C408D508ECC06296FFAC6297E496FFAE50
+:10584000E4970F2C04C0220C331C441C551C0A94F2
+:10585000D2F78A2D8F1964015301082E04C0D69403
+:10586000C794B794A7940A94D2F7A401930104C0F3
+:10587000220F331F441F551FFA94D2F7E8966CACE1
+:105880007DAC8EAC9FACE89704C0969487947794D7
+:1058900067948A95D2F784017301E22AF32A042BD4
+:1058A000152B2996ECAEFDAE0EAF1FAF2997320136
+:1058B0008824992492018101207030706D960CAF7C
+:1058C0001DAF2EAF3FAF6D97C601B501A401930187
+:1058D0000E94D3317B018C01C601B501A401930163
+:1058E0000E94D331CA01B9016D962CAD3DAD4EADCC
+:1058F0005FAD6D970E94A0319B01AC018701FF2431
+:10590000EE242996ACACBDACCEACDFAC2997C60179
+:10591000AA27BB275C016D01AE28BF28C02AD12A67
+:10592000A216B306C406D50690F4A20CB31CC41C80
+:10593000D51CA214B304C404D50448F0A216B306BF
+:10594000C406D50620F4A20CB31CC41CD51CA21A94
+:10595000B30AC40AD50AC601B501A40193010E9485
+:10596000D3317B018C01C601B501A40193010E94D2
+:10597000D331CA01B9016D962CAD3DAD4EAD5FADD1
+:105980006D970E94A0319B01AC018701FF24EE249A
+:1059900029968CAD9DADAEADBFAD2997A070B0700E
+:1059A00057016801A82AB92ACA2ADB2AA216B30617
+:1059B000C406D50690F4A20CB31CC41CD51CA214BA
+:1059C000B304C404D50448F0A216B306C406D50631
+:1059D00020F4A20CB31CC41CD51CE896ECACFDACA6
+:1059E0000EAD1FADE897E4960FACE49704C0EE0C43
+:1059F000FF1C001F111F0A94D2F72D96ECAEFDAECE
+:105A00000EAF1FAF2D97A21AB30AC40AD50A3201EE
+:105A1000882499249201810120703070A1960CAFE6
+:105A20001DAF2EAF3FAFA197C601B501A4019301F1
+:105A30000E94D3317B018C01C601B501A401930101
+:105A40000E94D331CA01B901A1962CAD3DAD4EAD36
+:105A50005FADA1970E94A0319B01AC018701FF249B
+:105A6000EE242D96ACACBDACCEACDFAC2D97C60110
+:105A7000AA27BB2757016801A82AB92ACA2ADB2A04
+:105A8000A216B306C406D50690F4A20CB31CC41C1F
+:105A9000D51CA214B304C404D50448F0A216B3065E
+:105AA000C406D50620F4A20CB31CC41CD51CA21A33
+:105AB000B30AC40AD50AC601B501A40193010E9424
+:105AC000D3317B018C01C601B501A40193010E9471
+:105AD000D331CA01B901A1962CAD3DAD4EAD5FAD3C
+:105AE000A1970E94A0319B01AC018701FF24EE2405
+:105AF0002D968CAD9DADAEADBFAD2D97A070B070A5
+:105B0000E82AF92A0A2B1B2BE216F30604071507CD
+:105B100090F4E20CF31C041D151DE214F3040405BB
+:105B2000150548F0E216F3060407150720F4E20C09
+:105B3000F31C041D151DE21AF30A040B150BD80102
+:105B4000C70162960FAC629704C0B695A79597956A
+:105B500087950A94D2F789A79AA7ABA7BCA71DA6D9
+:105B60001EA61FA618AA898B8AA58A8B8BA58B8B4C
+:105B70008CA58C8B8DA58D8B2FC36A147B048C0414
+:105B80009D0448F4498B5A8B6B8B7C8B8D8B9E8B41
+:105B90002F8B388F27C300E0A01600E0B00601E08D
+:105BA000C00600E0D00688F41FEFA116B104C104BE
+:105BB000D10439F030F028E0E22EF12C012D112D26
+:105BC00018C0EE24FF24870114C020E0A21620E0B4
+:105BD000B20620E0C20621E0D20630F098E1E92EBC
+:105BE000F12C012D112D05C080E1E82EF12C012DA5
+:105BF000112DD601C5010E2C04C0B695A795979519
+:105C000087950A94D2F78C539E4FDC012C9180E249
+:105C100090E0A0E0B0E08E199F09A00BB10B821BB1
+:105C20009109A109B1090097A105B10509F059C071
+:105C3000A614B704C804D90470F0E896ECACFDAC27
+:105C40000EAD1FADE897E214F3040405150518F432
+:105C5000D801C7012FC0E8968CAD9DADAEADBFADEC
+:105C6000E89782199309A409B509A40193012A1997
+:105C70003B094C095D09AA24BB246501E8966CAC7C
+:105C80007DAC8EAC9FACE897681679068A069B06B9
+:105C900028F411E0A12EB12CC12CD12C79018A015C
+:105CA000EA18FB080C091D096196ECAEFDAE0EAFBB
+:105CB0001FAF619789A79AA7ABA7BCA761960CAD48
+:105CC0001DAD2EAD3FAD61970DA71EA72FA738AB19
+:105CD000898B8AA58A8B8BA58B8B8CA58C8B0D8B46
+:105CE0007BC2E3968FAFE397A6019501082E04C00F
+:105CF000220F331F441F551F0A94D2F710E2181BBE
+:105D0000E2961FAFE297D201C101012E04C0B69501
+:105D1000A795979587950A94D2F75C016D01A22A01
+:105D2000B32AC42AD52A2596ACAEBDAECEAEDFAE20
+:105D3000259772016101E3960FACE39704C0CC0C88
+:105D4000DD1CEE1CFF1C0A94D2F72196CCAEDDAE12
+:105D5000EEAEFFAE219764015301012E04C0D6942C
+:105D6000C794B794A7940A94D2F7A4019301E39639
+:105D70000FACE39704C0220F331F441F551F0A9432
+:105D8000D2F7E8968CAD9DADAEADBFADE89704C03F
+:105D9000B695A795979587951A95D2F77C018D01B1
+:105DA000E22AF32A042B152BE9AEFAAE0BAF1CAF97
+:105DB000E8960CAD1DAD2EAD3FADE897E3960FAC68
+:105DC000E39704C0000F111F221F331F0A94D2F75C
+:105DD0000DAB1EAB2FAB38AF25962CAD3DAD4EAD08
+:105DE0005FAD25973A018824992440705070A5969C
+:105DF0002CAF3DAF4EAF5FAFA597C601B501A40173
+:105E000093010E94D3317B018C01C601B501A4012D
+:105E100093010E94D331C901DA011C012D01C20195
+:105E2000B101A5962CAD3DAD4EAD5FADA5970E94DD
+:105E3000A0319B01AC018701FF24EE24A9ACBAACD0
+:105E4000CBACDCACC601AA27BB2757016801A82A46
+:105E5000B92ACA2ADB2AA216B306C406D50610F54B
+:105E6000089421083108410851082596ECACFDAC96
+:105E70000EAD1FAD2597AE0CBF1CC01ED11EAE14BB
+:105E8000BF04C006D10670F0A216B306C406D5063C
+:105E900048F408942108310841085108AE0CBF1C91
+:105EA000C01ED11EA21AB30AC40AD50AC601B50182
+:105EB000A40193010E94D3317B018C01C601B5017D
+:105EC000A40193010E94D331C901DA013C014D01C3
+:105ED000C401B301A5962CAD3DAD4EAD5FADA59708
+:105EE0000E94A0319B01AC018701FF24EE2489AD03
+:105EF0009AADABADBCADA070B07057016801A82AD7
+:105F0000B92ACA2ADB2AA216B306C406D50610F59A
+:105F10000894610871088108910825966CAD7DADE3
+:105F20008EAD9FAD2597A60EB71EC81ED91EA6160C
+:105F3000B706C806D90670F0A216B306C406D50681
+:105F400048F408946108710881089108A60EB71EEC
+:105F5000C81ED91ED601C501821B930BA40BB50B1D
+:105F600089AB9AABABABBCABD10199278827840135
+:105F70007301E82AF92A0A2B1B2B8FEFA82E8FEF2B
+:105F8000B82EC12CD12CAE20BF20C022D122780146
+:105F90000027112721966CAC7DAC8EAC9FAC21976D
+:105FA0002FEF3FEF40E050E06222732284229522DF
+:105FB00021966CAD7DAD8EAD9FAD2197AC0166276E
+:105FC0007727AD964CAF5DAF6EAF7FAFAD97C60193
+:105FD000B501A40193010E94A031A9966CAF7DAFD9
+:105FE0008EAF9FAFA997C601B501AD962CAD3DAD63
+:105FF0004EAD5FADAD970E94A0311B012C01C801D1
+:10600000B701A40193010E94A0315B016C01C8019A
+:10601000B701AD962CAD3DAD4EAD5FADAD970E94D5
+:10602000A0317B018C01A6019501220D331D441D79
+:10603000551DA9966CAC7DAC8EAC9FACA997C401E4
+:10604000AA27BB27280F391F4A1F5B1F2A153B05AC
+:106050004C055D0548F4812C912CE1E0AE2EB12C6D
+:10606000E80CF91C0A1D1B1DCA01AA27BB275701F2
+:106070006801A80EB91ECA1EDB1EA90133272227FC
+:10608000A9968CAD9DADAEADBFADA997A070B07017
+:10609000280F391F4A1F5B1FE9A8FAA80BA91CA9E2
+:1060A000EA14FB040C051D0570F0AE14BF04C00615
+:1060B000D10689F56DA97EA98FA998AD62177307DE
+:1060C0008407950740F5DA01C90121966CAC7DACD7
+:1060D0008EAC9FAC219786199709A809B909259616
+:1060E000ECACFDAC0EAD1FAD2597AE18BF08C00AD5
+:1060F000D10AEE24FF248701281739074A075B07D6
+:1061000028F421E0E22EF12C012D112DAE18BF084C
+:10611000C00AD10A02C0DA01C9016DA87EA88FA801
+:1061200098AC681A790A8A0A9B0A09A91AA92BA9A4
+:106130003CA90A191B092C093D09580169012224AF
+:10614000332421012DA93EA94FA958AD26153705A5
+:106150004805590528F481E0282E312C412C512C7A
+:1061600086017501E218F30804091509A8019701D1
+:10617000E2960FACE29704C0220F331F441F551F55
+:106180000A94D2F7D401C301E3960FACE39704C09D
+:10619000B695A795979587950A94D2F7282B392B12
+:1061A0004A2B5B2B29A73AA74BA75CA7E3960FAC1A
+:1061B000E39704C016950795F794E7940A94D2F7ED
+:1061C000EDA6FEA60FA718AB298B8AA58A8B8BA5F7
+:1061D0008B8B8CA58C8BED8A8EA58E8B8FA58F8B50
+:1061E00088A9888FE1964CAD5DAD6EAD7FADE1972E
+:1061F000411551056105710509F467C089892A892E
+:106200003B894C895D89AE89BF89188DF82FF1953E
+:1062100091E01F1608F090E0822F819521E018167A
+:1062200008F020E0E82FE91B91E08E1708F090E0DD
+:10623000292B832F819531E0181608F030E0782F54
+:10624000721B91E0871708F090E0392B842F81951D
+:1062500021E0181608F020E0682F631B91E08617F4
+:1062600008F090E0292B852F819531E0181608F071
+:1062700030E0582F521B91E0851708F090E0392B41
+:106280008A2F819521E0181608F020E0482F431B43
+:1062900091E0841708F090E0292B8B2F819591E0F5
+:1062A000181608F090E0382F321B21E0831708F011
+:1062B00020E0922B812F8195891BF98BEA8B7B8BB8
+:1062C0006C8B5D8B4E8B3F8B888F29893A894B89EC
+:1062D0005C896D897E898F89988DC958DF4FE2E18D
+:1062E0000C94113297FB092E07260AD077FD04D0B3
+:1062F00046D006D000201AF4709561957F4F08951E
+:10630000F6F7909581959F4F089597FB092E0526E6
+:106310000ED057FD04D047D00AD0001C38F4509559
+:106320004095309521953F4F4F4F5F4F0895F6F7B9
+:1063300090958095709561957F4F8F4F9F4F0895F1
+:10634000629FD001739FF001829FE00DF11D649F59
+:10635000E00DF11D929FF00D839FF00D749FF00DE5
+:10636000659FF00D9927729FB00DE11DF91F639F86
+:10637000B00DE11DF91FBD01CF0111240895AA1B25
+:10638000BB1B51E107C0AA1FBB1FA617B70710F020
+:10639000A61BB70B881F991F5A95A9F78095909552
+:1063A000BC01CD010895A1E21A2EAA1BBB1BFD0161
+:1063B0000DC0AA1FBB1FEE1FFF1FA217B307E407E4
+:1063C000F50720F0A21BB30BE40BF50B661F771F3C
+:1063D000881F991F1A9469F760957095809590951C
+:1063E0009B01AC01BD01CF0108952F923F924F92C6
+:1063F0005F926F927F928F929F92AF92BF92CF9255
+:10640000DF92EF92FF920F931F93CF93DF93CDB75D
+:10641000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFD5
+:1064200009942A88398848885F846E847D848C84A6
+:106430009B84AA84B984C884DF80EE80FD800C81AF
+:106440001B81AA81B981CE0FD11D0FB6F894DEBF92
+:106450000FBECDBFED010895FB01DC0102C0059028
+:0E6460000D9241505040D8F70895F894FFCFA8
+:10646E004F6E20746172676574210A005441472192
+:10647E000A0043480049440042440033004652009B
+:10648E0041500030002B2B2B004F4B0D004154413F
+:10649E005020310D004154434E0D004D5900FFFF69
+:1064AE00FFFF3A20000D0A00190017001100090025
+:1064BE000000F7FFEFFFE9FFE7FFE9FFEFFFF7FF50
+:1064CE00000009001100170000000900110017005C
+:1064DE0019001700110009000000F7FFEFFFE9FF98
+:1064EE00E7FFE9FFEFFFF7FF0706050E01040302C2
+:1064FE000F000D080C0B090A30303030303001021D
+:10650E000410204001D105DE05EB05303132333465
+:10651E003536373839414243444546003030303005
+:10652E0030302000000102020303030304040404BC
+:10653E000404040405050505050505050505050501
+:10654E0005050505060606060606060606060606E1
+:10655E0006060606060606060606060606060606CD
+:10656E0006060606070707070707070707070707B1
+:10657E00070707070707070707070707070707079D
+:10658E00070707070707070707070707070707078D
+:10659E00070707070707070707070707070707077D
+:1065AE000707070708080808080808080808080861
+:1065BE00080808080808080808080808080808084D
+:1065CE00080808080808080808080808080808083D
+:1065DE00080808080808080808080808080808082D
+:1065EE00080808080808080808080808080808081D
+:1065FE00080808080808080808080808080808080D
+:10660E0008080808080808080808080808080808FC
+:10661E0008080808080808080808080808080808EC
+:04662E000808080848
+:00000001FF
Index: trunk/code/behaviors/hunter_prey/james/main.elf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/code/behaviors/hunter_prey/james/main.elf
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.elf	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.elf	(revision 1847)

Property changes on: trunk/code/behaviors/hunter_prey/james/main.elf
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: trunk/code/behaviors/hunter_prey/james/hunter_prey.h
===================================================================
--- trunk/code/behaviors/hunter_prey/james/hunter_prey.h	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/hunter_prey.h	(revision 1847)
@@ -0,0 +1,19 @@
+#ifndef _HUNTER_PREY_H
+#define _HUNTER_PREY_H
+
+#include <inttypes.h>
+
+/**** This file should not be edited! ****/
+
+/*
+ * The packet structure is 2 bytes
+ * byte 0 is the action, which is one of the values below
+ * byte 1 is the robot id
+ */
+
+#define HUNTER_PREY_ACTION_TAG 'T'
+#define HUNTER_PREY_ACTION_ACK 'A'
+
+unsigned char hunter_prey_tagged(int max_bom, int front_rangefinder);
+
+#endif
Index: trunk/code/behaviors/hunter_prey/james/main.sym
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.sym	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.sym	(revision 1847)
@@ -0,0 +1,444 @@
+00000000 W __heap_end
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 a __tmp_reg__
+00000000 W __vector_default
+00000000 T __vectors
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000001 a __zero_reg__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+00000034 a __CCP__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003d a __SP_L__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003e a __SP_H__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000003f a __SREG__
+0000008c t FontLookup
+0000026c t IR_dist_conversion
+000002fc T __ctors_end
+000002fc T __ctors_start
+000002fc T __dtors_end
+000002fc T __dtors_start
+000002fc W __init
+000002fc T __trampolines_end
+000002fc T __trampolines_start
+00000308 T __do_copy_data
+00000322 T __do_clear_bss
+0000032a t .do_clear_bss_loop
+0000032c t .do_clear_bss_start
+0000033a T __bad_interrupt
+0000033a W __vector_1
+0000033a W __vector_10
+0000033a W __vector_11
+0000033a W __vector_12
+0000033a W __vector_13
+0000033a W __vector_14
+0000033a W __vector_18
+0000033a W __vector_19
+0000033a W __vector_2
+0000033a W __vector_20
+0000033a W __vector_22
+0000033a W __vector_23
+0000033a W __vector_24
+0000033a W __vector_25
+0000033a W __vector_27
+0000033a W __vector_28
+0000033a W __vector_29
+0000033a W __vector_3
+0000033a W __vector_31
+0000033a W __vector_32
+0000033a W __vector_33
+0000033a W __vector_34
+0000033a W __vector_4
+0000033a W __vector_5
+0000033a W __vector_6
+0000033a W __vector_7
+0000033a W __vector_8
+0000033a W __vector_9
+0000033e T hunter_prey_tagged
+000003ac T main
+000007c0 t timer_handler
+000007ce T wl_register_packet_group
+000007f4 T wl_unregister_packet_group
+00000830 T wl_do
+0000091a t wl_send_packet
+000009aa T wl_send_pan_packet
+000009c8 T wl_send_global_packet
+000009e8 T wl_send_robot_to_robot_packet
+00000a02 T wl_send_robot_to_robot_global_packet
+00000a1e T wl_get_xbee_id
+00000a24 T wl_get_channel
+00000a2a T wl_set_channel
+00000a30 T wl_get_pan
+00000a36 T wl_set_pan
+00000a3c T wl_terminate
+00000a6c T wl_init
+00000aa0 T wl_basic_packet_receive_handler
+00000ac4 T wl_basic_do_default
+00000afc T wl_basic_send_global_packet
+00000b14 T wl_basic_send_robot_packet
+00000b38 T wl_basic_register_handler
+00000b6e T wl_basic_init
+00000b98 T wl_basic_init_default
+00000ba2 T __vector_30
+00000c0c T xbee_get_packet
+00000e70 T xbee_get_pan_id
+00000e7a T xbee_get_channel
+00000e84 T xbee_get_address
+00000e90 t xbee_send_modify_at_command
+00000fa6 T xbee_set_channel
+00000fea T xbee_set_pan_id
+0000101e T xbee_reset
+0000104e T xbee_terminate
+0000105c T xbee_send_packet
+000010ff W __stack
+00001160 t xbee_send_string
+000011ac T xbee_lib_init
+00001336 T analog_init
+000013a8 T analog8
+000013cc T analog10
+000013ee T analog_start_loop
+0000140c T analog_stop_loop
+0000141a T analog_loop_status
+00001426 T analog_get8
+0000146e T analog_get10
+000014d2 T wheel
+000014da T set_adc_mux
+000014fc T __vector_21
+00001664 T bom_get
+00001674 T bom_get_max
+000016ac T bom_get_max10
+00001b3e T bom_off
+00001b68 T bom_on
+00001b92 T bom_set_leds
+00001bee T bom_init
+00001c8a T bom_refresh
+00001da6 T get_max_bom
+00001de6 T bom_print_usb
+00001f16 T bom_get_norm_vector
+000020ba T bom_get_vector
+00002210 T digital_input
+00002352 T digital_pull_up
+0000243c T digital_output
+00002674 T button1_read
+0000269a T button1_click
+000026e0 T button2_read
+0000270a T button2_click
+00002750 T button2_wait
+00002778 T button1_wait
+000027a0 T flash_red
+00002800 T dragonfly_init
+0000288c T eeprom_put_byte
+000028a0 T eeprom_get_byte
+000028b6 T get_robotid
+000028f2 T get_bom_type
+00002942 T encoder_read
+00002966 T encoder_get_x
+0000298a T encoder_get_dx
+000029ae T encoder_rst_dx
+000029ca T encoder_get_tc
+000029d4 T encoder_rst_tc
+000029e6 T encoder_wait
+00002a00 T encoder_recv
+00002cb8 T left_data_at
+00002cd6 T right_data_at
+00002cf4 T get_dx
+00002dbc T encoder_get_v
+00002e12 T encoders_init
+00002e86 T encoder_recv_complete
+00002ea4 T lcd_clear_screen
+00002ece T lcd_putc
+00002efe T lcd_puts
+00002f18 T lcd_gotoxy
+00002f30 T lcd_puti
+00002fda T lcd_putbyte
+00002fe2 T lcd_init
+0000304c T __vector_16
+00003126 T __vector_15
+000031bc t apply_orbs
+000034de T orb_n_set
+0000351a T orb1_set
+0000354a T orb2_set
+0000357a T orb_set
+000035b6 T orbs_set
+000035fa T orb_n_set_color
+00003656 T orb1_set_color
+000036a4 T orb2_set_color
+000036f2 T orb_set_color
+00003740 T orbs_set_color
+000037fa T orb_enable_timer
+00003806 T orb_disable_timer
+0000380e T orb_set_mode
+00003838 T orb_init_binary
+00003856 T orb_init_pwm
+00003874 T orb_init
+0000387a T motors_init
+0000389e T motor_l_set
+000038ce T motor_r_set
+000038fe T motor1_set
+00003904 T motor2_set
+0000390a T motors_off
+00003910 T linearize_distance
+00003934 T get_range_index
+0000397e T butter_filter
+00003b2a T butter_init
+00003b4e T range_read_distance
+00003b76 T range_read_filtered_distance
+00003c06 T butter_task
+00003c62 T range_init
+00003c78 T range_init_filter
+00003c9c T usb_init
+00003cb8 T xbee_init
+00003ce2 T usb_putc
+00003cee T xbee_putc
+00003d02 T usb_puts
+00003d1a T usb_getc
+00003d24 T xbee_getc
+00003d34 T usb_getc_nb
+00003d4c T xbee_getc_nb
+00003d6a T usb_puti
+00003e08 T hex_digit
+00003e1c T usb_puth16
+00003e7a T usb_puth8
+00003ea4 T usb_puts_P
+00003eee T spi_init
+00003f16 T spi_transfer
+00003f22 T __vector_17
+00003faa T delay_ms
+00003fc0 T rtc_init
+00004000 T rtc_get
+0000400c T rtc_reset
+00004016 T __vector_26
+000040b2 T buzzer_init
+000040b4 T buzzer_set_val
+000040be T buzzer_set_freq
+000040f2 T buzzer_off
+000040fc T buzzer_chirp
+0000411c T __ashldi3
+0000421a T __divdi3
+0000526a T __moddi3
+000062e4 T __divmodhi4
+000062e4 T _div
+000062f8 t __divmodhi4_neg2
+000062fe t __divmodhi4_exit
+00006300 t __divmodhi4_neg1
+0000630a T __divmodsi4
+0000631e t __divmodsi4_neg2
+0000632c t __divmodsi4_exit
+0000632e t __divmodsi4_neg1
+00006340 T __mulsi3
+0000637e T __udivmodhi4
+00006386 t __udivmodhi4_loop
+00006394 t __udivmodhi4_ep
+000063a6 T __udivmodsi4
+000063b2 t __udivmodsi4_loop
+000063cc t __udivmodsi4_ep
+000063ea T __prologue_saves__
+00006422 T __epilogue_restores__
+00006458 T memcpy_P
+0000646a T _exit
+0000646a W exit
+0000646c t __stop_program
+0000646e A __data_load_start
+0000646e T _etext
+00006632 A __data_load_end
+00800100 D __data_start
+0080013e d xbee_panID
+00800140 d xbee_pending_panID
+00800148 d x_comp
+00800168 d y_comp
+00800188 d lookup
+00800198 d C.1.1433
+0080019e D orb_mask
+008001a4 D enable_orb_pwm
+008001a5 D pwm_read_buffer
+008001a7 D pwm_write_buffer
+008001a9 D pwm_free_buffer
+008001bc d C.1.1467
+008001c2 d _rtc_scale
+008001c4 D __clz_tab
+008002c4 B __bss_start
+008002c4 D __data_end
+008002c4 D _edata
+008002c4 b onTarget.1729
+008002c6 b wl_timeout
+008002c8 b wl_buf
+00800348 b wl_packet_groups
+00800368 B buffer_last
+0080036a B buffer_first
+0080036c b xbee_address
+0080036e b xbee_channel
+00800370 b xbee_pending_channel
+00800372 b currentBufPos
+00800374 b xbee_buf
+008003e0 B adc_loop_status
+008003e2 B adc_sig_stop_loop
+008003e4 B adc_current_port
+008003e6 b bom_type
+008003e7 b bom_val
+00800407 b select_pins
+0080040f b analog_pin
+00800411 B pwm_page_flip
+00800412 B current_pwm_channel
+00800413 B orb_lock
+00800414 b use_filter
+00800416 b butter_x
+0080042a b butter_y
+00800439 b neg_one_count
+0080043e b spi_bytes
+0080043f b spi_recv_func
+00800441 b spi_recv_complete_func
+00800443 b _rtc_pulse
+00800445 b _rtc_val
+00800447 b _rtc_f
+00800449 B data_length
+0080044b B packet_data
+0080044d B current_packet
+00800455 B send_buffer
+00800457 B wl_basic_group_handler
+00800461 B arrival_buf
+008004e1 B an_val
+00800502 B data_ready
+00800504 B right_data
+00800506 B left_data_buf
+00800508 B left_data_array
+00800564 B left_data_idx
+00800566 B right_dx
+00800568 B timecount
+0080056c B encoder_buf_index
+0080056d B right_data_array
+008005c9 B left_dx
+008005cb B right_data_idx
+008005cd B right_data_buf
+008005cf B left_data
+008005d1 B pwm_buffer
+008005f8 B orb_values
+008005fe B __bss_end
+008005fe N _end
+00810000 N __eeprom_end
Index: trunk/code/behaviors/hunter_prey/james/main.eep
===================================================================
--- trunk/code/behaviors/hunter_prey/james/main.eep	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/main.eep	(revision 1847)
@@ -0,0 +1 @@
+:00000001FF
Index: trunk/code/behaviors/hunter_prey/james/Makefile
===================================================================
--- trunk/code/behaviors/hunter_prey/james/Makefile	(nonexistent)
+++ trunk/code/behaviors/hunter_prey/james/Makefile	(revision 1847)
@@ -0,0 +1,20 @@
+# this is a local makefile
+
+# Relative path to the root directory (containing lib directory)
+ifndef COLONYROOT
+COLONYROOT := ..
+
+# Target file name (without extension).
+TARGET = main
+
+# Uncomment this to use the wireless library
+USE_WIRELESS = 1
+
+# com1 = serial port. Use lpt1 to connect to parallel port.
+AVRDUDE_PORT = $(shell if uname -s |grep -i w32 >/dev/null; then echo 'COM4:'; else echo '/dev/ttyUSB0'; fi)
+
+else
+COLONYROOT := ../$(COLONYROOT)
+endif
+
+include $(COLONYROOT)/Makefile
\ No newline at end of file
