MMBC

simple 3d

Sep 14th, 2017
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 53.20 KB | None | 0 0
  1.     .align  2
  2.     .type   KEY_NSPIRE_ESC, %object
  3.     .size   KEY_NSPIRE_ESC, 20
  4. KEY_NSPIRE_ESC:
  5.     .word   28
  6.     .word   128
  7.     .word   28
  8.     .word   128
  9.     .byte   0
  10.     .space  3
  11.     .global RGB332to565lookupTable
  12.     .align  2
  13.     .type   RGB332to565lookupTable, %object
  14.     .size   RGB332to565lookupTable, 512
  15. RGB332to565lookupTable:
  16.     .short  0
  17.     .short  10
  18.     .short  21
  19.     .short  31
  20.     .short  288
  21.     .short  298
  22.     .short  309
  23.     .short  319
  24.     .short  576
  25.     .short  586
  26.     .short  597
  27.     .short  607
  28.     .short  864
  29.     .short  874
  30.     .short  885
  31.     .short  895
  32.     .short  1152
  33.     .short  1162
  34.     .short  1173
  35.     .short  1183
  36.     .short  1440
  37.     .short  1450
  38.     .short  1461
  39.     .short  1471
  40.     .short  1728
  41.     .short  1738
  42.     .short  1749
  43.     .short  1759
  44.     .short  2016
  45.     .short  2026
  46.     .short  2037
  47.     .short  2047
  48.     .short  8192
  49.     .short  8202
  50.     .short  8213
  51.     .short  8223
  52.     .short  8480
  53.     .short  8490
  54.     .short  8501
  55.     .short  8511
  56.     .short  8768
  57.     .short  8778
  58.     .short  8789
  59.     .short  8799
  60.     .short  9056
  61.     .short  9066
  62.     .short  9077
  63.     .short  9087
  64.     .short  9344
  65.     .short  9354
  66.     .short  9365
  67.     .short  9375
  68.     .short  9632
  69.     .short  9642
  70.     .short  9653
  71.     .short  9663
  72.     .short  9920
  73.     .short  9930
  74.     .short  9941
  75.     .short  9951
  76.     .short  10208
  77.     .short  10218
  78.     .short  10229
  79.     .short  10239
  80.     .short  18432
  81.     .short  18442
  82.     .short  18453
  83.     .short  18463
  84.     .short  18720
  85.     .short  18730
  86.     .short  18741
  87.     .short  18751
  88.     .short  19008
  89.     .short  19018
  90.     .short  19029
  91.     .short  19039
  92.     .short  19296
  93.     .short  19306
  94.     .short  19317
  95.     .short  19327
  96.     .short  19584
  97.     .short  19594
  98.     .short  19605
  99.     .short  19615
  100.     .short  19872
  101.     .short  19882
  102.     .short  19893
  103.     .short  19903
  104.     .short  20160
  105.     .short  20170
  106.     .short  20181
  107.     .short  20191
  108.     .short  20448
  109.     .short  20458
  110.     .short  20469
  111.     .short  20479
  112.     .short  26624
  113.     .short  26634
  114.     .short  26645
  115.     .short  26655
  116.     .short  26912
  117.     .short  26922
  118.     .short  26933
  119.     .short  26943
  120.     .short  27200
  121.     .short  27210
  122.     .short  27221
  123.     .short  27231
  124.     .short  27488
  125.     .short  27498
  126.     .short  27509
  127.     .short  27519
  128.     .short  27776
  129.     .short  27786
  130.     .short  27797
  131.     .short  27807
  132.     .short  28064
  133.     .short  28074
  134.     .short  28085
  135.     .short  28095
  136.     .short  28352
  137.     .short  28362
  138.     .short  28373
  139.     .short  28383
  140.     .short  28640
  141.     .short  28650
  142.     .short  28661
  143.     .short  28671
  144.     .short  -28672
  145.     .short  -28662
  146.     .short  -28651
  147.     .short  -28641
  148.     .short  -28384
  149.     .short  -28374
  150.     .short  -28363
  151.     .short  -28353
  152.     .short  -28096
  153.     .short  -28086
  154.     .short  -28075
  155.     .short  -28065
  156.     .short  -27808
  157.     .short  -27798
  158.     .short  -27787
  159.     .short  -27777
  160.     .short  -27520
  161.     .short  -27510
  162.     .short  -27499
  163.     .short  -27489
  164.     .short  -27232
  165.     .short  -27222
  166.     .short  -27211
  167.     .short  -27201
  168.     .short  -26944
  169.     .short  -26934
  170.     .short  -26923
  171.     .short  -26913
  172.     .short  -26656
  173.     .short  -26646
  174.     .short  -26635
  175.     .short  -26625
  176.     .short  -20480
  177.     .short  -20470
  178.     .short  -20459
  179.     .short  -20449
  180.     .short  -20192
  181.     .short  -20182
  182.     .short  -20171
  183.     .short  -20161
  184.     .short  -19904
  185.     .short  -19894
  186.     .short  -19883
  187.     .short  -19873
  188.     .short  -19616
  189.     .short  -19606
  190.     .short  -19595
  191.     .short  -19585
  192.     .short  -19328
  193.     .short  -19318
  194.     .short  -19307
  195.     .short  -19297
  196.     .short  -19040
  197.     .short  -19030
  198.     .short  -19019
  199.     .short  -19009
  200.     .short  -18752
  201.     .short  -18742
  202.     .short  -18731
  203.     .short  -18721
  204.     .short  -18464
  205.     .short  -18454
  206.     .short  -18443
  207.     .short  -18433
  208.     .short  -10240
  209.     .short  -10230
  210.     .short  -10219
  211.     .short  -10209
  212.     .short  -9952
  213.     .short  -9942
  214.     .short  -9931
  215.     .short  -9921
  216.     .short  -9664
  217.     .short  -9654
  218.     .short  -9643
  219.     .short  -9633
  220.     .short  -9376
  221.     .short  -9366
  222.     .short  -9355
  223.     .short  -9345
  224.     .short  -9088
  225.     .short  -9078
  226.     .short  -9067
  227.     .short  -9057
  228.     .short  -8800
  229.     .short  -8790
  230.     .short  -8779
  231.     .short  -8769
  232.     .short  -8512
  233.     .short  -8502
  234.     .short  -8491
  235.     .short  -8481
  236.     .short  -8224
  237.     .short  -8214
  238.     .short  -8203
  239.     .short  -8193
  240.     .short  -2048
  241.     .short  -2038
  242.     .short  -2027
  243.     .short  -2017
  244.     .short  -1760
  245.     .short  -1750
  246.     .short  -1739
  247.     .short  -1729
  248.     .short  -1472
  249.     .short  -1462
  250.     .short  -1451
  251.     .short  -1441
  252.     .short  -1184
  253.     .short  -1174
  254.     .short  -1163
  255.     .short  -1153
  256.     .short  -896
  257.     .short  -886
  258.     .short  -875
  259.     .short  -865
  260.     .short  -608
  261.     .short  -598
  262.     .short  -587
  263.     .short  -577
  264.     .short  -320
  265.     .short  -310
  266.     .short  -299
  267.     .short  -289
  268.     .short  -32
  269.     .short  -22
  270.     .short  -11
  271.     .short  -1
  272.     .global numVerts
  273.     .data
  274.     .align  2
  275.     .type   numVerts, %object
  276.     .size   numVerts, 4
  277. numVerts:
  278.     .word   40
  279.     .global verts
  280.     .align  2
  281.     .type   verts, %object
  282.     .size   verts, 480
  283. verts:
  284.     .word   -1082130432
  285.     .word   -1082130432
  286.     .word   -1082130432
  287.     .word   -1082130432
  288.     .word   1065353216
  289.     .word   -1082130432
  290.     .word   1065353216
  291.     .word   1065353216
  292.     .word   -1082130432
  293.     .word   1065353216
  294.     .word   -1082130432
  295.     .word   -1082130432
  296.     .word   -1082130432
  297.     .word   -1082130432
  298.     .word   1065353216
  299.     .word   -1082130432
  300.     .word   1065353216
  301.     .word   1065353216
  302.     .word   1065353216
  303.     .word   1065353216
  304.     .word   1065353216
  305.     .word   1065353216
  306.     .word   -1082130432
  307.     .word   1065353216
  308.     .word   -1097229926
  309.     .word   -1097229926
  310.     .word   -1097229926
  311.     .word   -1097229926
  312.     .word   1050253722
  313.     .word   -1097229926
  314.     .word   1050253722
  315.     .word   1050253722
  316.     .word   -1097229926
  317.     .word   1050253722
  318.     .word   -1097229926
  319.     .word   -1097229926
  320.     .word   -1097229926
  321.     .word   -1097229926
  322.     .word   1050253722
  323.     .word   -1097229926
  324.     .word   1050253722
  325.     .word   1050253722
  326.     .word   1050253722
  327.     .word   1050253722
  328.     .word   1050253722
  329.     .word   1050253722
  330.     .word   -1097229926
  331.     .word   1050253722
  332.     .word   -1082130432
  333.     .word   -1097229926
  334.     .word   -1097229926
  335.     .word   -1097229926
  336.     .word   -1082130432
  337.     .word   -1097229926
  338.     .word   -1097229926
  339.     .word   -1097229926
  340.     .word   -1082130432
  341.     .word   -1082130432
  342.     .word   1050253722
  343.     .word   -1097229926
  344.     .word   -1097229926
  345.     .word   1065353216
  346.     .word   -1097229926
  347.     .word   -1097229926
  348.     .word   1050253722
  349.     .word   -1082130432
  350.     .word   1065353216
  351.     .word   1050253722
  352.     .word   -1097229926
  353.     .word   1050253722
  354.     .word   1065353216
  355.     .word   -1097229926
  356.     .word   1050253722
  357.     .word   1050253722
  358.     .word   -1082130432
  359.     .word   1065353216
  360.     .word   -1097229926
  361.     .word   -1097229926
  362.     .word   1050253722
  363.     .word   -1082130432
  364.     .word   -1097229926
  365.     .word   1050253722
  366.     .word   -1097229926
  367.     .word   -1082130432
  368.     .word   -1082130432
  369.     .word   -1097229926
  370.     .word   1050253722
  371.     .word   -1097229926
  372.     .word   -1082130432
  373.     .word   1050253722
  374.     .word   -1097229926
  375.     .word   -1097229926
  376.     .word   1065353216
  377.     .word   -1082130432
  378.     .word   1050253722
  379.     .word   1050253722
  380.     .word   -1097229926
  381.     .word   1065353216
  382.     .word   1050253722
  383.     .word   -1097229926
  384.     .word   1050253722
  385.     .word   1065353216
  386.     .word   1065353216
  387.     .word   1050253722
  388.     .word   1050253722
  389.     .word   1050253722
  390.     .word   1065353216
  391.     .word   1050253722
  392.     .word   1050253722
  393.     .word   1050253722
  394.     .word   1065353216
  395.     .word   1065353216
  396.     .word   -1097229926
  397.     .word   1050253722
  398.     .word   1050253722
  399.     .word   -1082130432
  400.     .word   1050253722
  401.     .word   1050253722
  402.     .word   -1097229926
  403.     .word   1065353216
  404.     .global numEdges
  405.     .align  2
  406.     .type   numEdges, %object
  407.     .size   numEdges, 4
  408. numEdges:
  409.     .word   12
  410.     .global edges
  411.     .align  2
  412.     .type   edges, %object
  413.     .size   edges, 96
  414. edges:
  415.     .word   0
  416.     .word   1
  417.     .word   1
  418.     .word   2
  419.     .word   2
  420.     .word   3
  421.     .word   3
  422.     .word   0
  423.     .word   4
  424.     .word   5
  425.     .word   5
  426.     .word   6
  427.     .word   6
  428.     .word   7
  429.     .word   7
  430.     .word   4
  431.     .word   0
  432.     .word   4
  433.     .word   1
  434.     .word   5
  435.     .word   2
  436.     .word   6
  437.     .word   3
  438.     .word   7
  439.     .global numFaces
  440.     .align  2
  441.     .type   numFaces, %object
  442.     .size   numFaces, 4
  443. numFaces:
  444.     .word   12
  445.     .global faces
  446.     .align  2
  447.     .type   faces, %object
  448.     .size   faces, 144
  449. faces:
  450.     .word   1
  451.     .word   2
  452.     .word   19
  453.     .word   4
  454.     .word   1
  455.     .word   28
  456.     .word   3
  457.     .word   4
  458.     .word   25
  459.     .word   2
  460.     .word   3
  461.     .word   22
  462.     .word   1
  463.     .word   5
  464.     .word   17
  465.     .word   2
  466.     .word   1
  467.     .word   20
  468.     .word   6
  469.     .word   2
  470.     .word   32
  471.     .word   5
  472.     .word   6
  473.     .word   29
  474.     .word   3
  475.     .word   2
  476.     .word   24
  477.     .word   7
  478.     .word   3
  479.     .word   36
  480.     .word   6
  481.     .word   7
  482.     .word   33
  483.     .word   2
  484.     .word   6
  485.     .word   21
  486.     .global colors
  487.     .align  2
  488.     .type   colors, %object
  489.     .size   colors, 12
  490. colors:
  491.     .byte   48
  492.     .byte   69
  493.     .byte   21
  494.     .byte   97
  495.     .byte   -98
  496.     .byte   92
  497.     .byte   123
  498.     .byte   -1
  499.     .byte   14
  500.     .byte   47
  501.     .byte   112
  502.     .byte   -36
  503.     .global pxv
  504.     .section    .rodata
  505.     .align  2
  506.     .type   pxv, %object
  507.     .size   pxv, 12
  508. pxv:
  509.     .word   1065353216
  510.     .word   0
  511.     .word   0
  512.     .global nxv
  513.     .align  2
  514.     .type   nxv, %object
  515.     .size   nxv, 12
  516. nxv:
  517.     .word   -1082130432
  518.     .word   0
  519.     .word   0
  520.     .global pyv
  521.     .align  2
  522.     .type   pyv, %object
  523.     .size   pyv, 12
  524. pyv:
  525.     .word   0
  526.     .word   1065353216
  527.     .word   0
  528.     .global nyv
  529.     .align  2
  530.     .type   nyv, %object
  531.     .size   nyv, 12
  532. nyv:
  533.     .word   0
  534.     .word   -1082130432
  535.     .word   0
  536.     .global pzv
  537.     .align  2
  538.     .type   pzv, %object
  539.     .size   pzv, 12
  540. pzv:
  541.     .word   0
  542.     .word   0
  543.     .word   1065353216
  544.     .global nzv
  545.     .align  2
  546.     .type   nzv, %object
  547.     .size   nzv, 12
  548. nzv:
  549.     .word   0
  550.     .word   0
  551.     .word   -1082130432
  552.     .global __aeabi_i2f
  553.     .global __aeabi_fdiv
  554.     .global __aeabi_fmul
  555.     .global __aeabi_f2iz
  556.     .text
  557.     .align  2
  558.     .global MapRGB565
  559.     .syntax unified
  560.     .arm
  561.     .fpu softvfp
  562.     .type   MapRGB565, %function
  563. MapRGB565:
  564.     push    {fp, lr}
  565.     add fp, sp, #4
  566.     sub sp, sp, #40
  567.     str r0, [fp, #-32]
  568.     str r1, [fp, #-36]
  569.     str r2, [fp, #-40]
  570.     ldr r0, [fp, #-32]
  571.     bl  __aeabi_i2f
  572.     mov r3, r0
  573.     str r3, [fp, #-8]
  574.     ldr r0, [fp, #-36]
  575.     bl  __aeabi_i2f
  576.     mov r3, r0
  577.     str r3, [fp, #-12]
  578.     ldr r0, [fp, #-40]
  579.     bl  __aeabi_i2f
  580.     mov r3, r0
  581.     str r3, [fp, #-16]
  582.     ldr r1, .L3
  583.     ldr r0, [fp, #-8]
  584.     bl  __aeabi_fdiv
  585.     mov r3, r0
  586.     str r3, [fp, #-8]
  587.     ldr r1, .L3
  588.     ldr r0, [fp, #-12]
  589.     bl  __aeabi_fdiv
  590.     mov r3, r0
  591.     str r3, [fp, #-12]
  592.     ldr r1, .L3
  593.     ldr r0, [fp, #-16]
  594.     bl  __aeabi_fdiv
  595.     mov r3, r0
  596.     str r3, [fp, #-16]
  597.     ldr r1, .L3+4
  598.     ldr r0, [fp, #-8]
  599.     bl  __aeabi_fmul
  600.     mov r3, r0
  601.     mov r1, #1157627904
  602.     mov r0, r3
  603.     bl  __aeabi_fmul
  604.     mov r3, r0
  605.     mov r0, r3
  606.     bl  __aeabi_f2iz
  607.     mov r3, r0
  608.     str r3, [fp, #-20]
  609.     ldr r1, .L3+8
  610.     ldr r0, [fp, #-12]
  611.     bl  __aeabi_fmul
  612.     mov r3, r0
  613.     mov r1, #1107296256
  614.     mov r0, r3
  615.     bl  __aeabi_fmul
  616.     mov r3, r0
  617.     mov r0, r3
  618.     bl  __aeabi_f2iz
  619.     mov r3, r0
  620.     str r3, [fp, #-24]
  621.     ldr r1, .L3+4
  622.     ldr r0, [fp, #-16]
  623.     bl  __aeabi_fmul
  624.     mov r3, r0
  625.     mov r0, r3
  626.     bl  __aeabi_f2iz
  627.     mov r3, r0
  628.     str r3, [fp, #-28]
  629.     ldr r3, [fp, #-20]
  630.     lsl r3, r3, #16
  631.     lsr r2, r3, #16
  632.     ldr r3, [fp, #-24]
  633.     lsl r3, r3, #16
  634.     lsr r3, r3, #16
  635.     add r3, r2, r3
  636.     lsl r3, r3, #16
  637.     lsr r2, r3, #16
  638.     ldr r3, [fp, #-28]
  639.     lsl r3, r3, #16
  640.     lsr r3, r3, #16
  641.     add r3, r2, r3
  642.     lsl r3, r3, #16
  643.     lsr r3, r3, #16
  644.     mov r0, r3
  645.     sub sp, fp, #4
  646.     pop {fp, pc}
  647. .L4:
  648.     .align  2
  649. .L3:
  650.     .word   1132396544
  651.     .word   1106771968
  652.     .word   1115422720
  653.     .size   MapRGB565, .-MapRGB565
  654.     .align  2
  655.     .global setPixel
  656.     .syntax unified
  657.     .arm
  658.     .fpu softvfp
  659.     .type   setPixel, %function
  660. setPixel:
  661.     str fp, [sp, #-4]!
  662.     add fp, sp, #0
  663.     sub sp, sp, #28
  664.     str r0, [fp, #-16]
  665.     str r1, [fp, #-20]
  666.     str r2, [fp, #-24]
  667.     strh    r3, [fp, #-26]
  668.     ldr r3, [fp, #-16]
  669.     ldr r3, [r3, #20]
  670.     str r3, [fp, #-8]
  671.     ldr r2, [fp, #-24]
  672.     mov r3, r2
  673.     lsl r3, r3, #2
  674.     add r3, r3, r2
  675.     lsl r3, r3, #6
  676.     mov r2, r3
  677.     ldr r3, [fp, #-20]
  678.     add r3, r2, r3
  679.     lsl r3, r3, #1
  680.     mov r2, r3
  681.     ldr r3, [fp, #-8]
  682.     add r3, r3, r2
  683.     str r3, [fp, #-8]
  684.     ldr r3, [fp, #-20]
  685.     cmp r3, #0
  686.     ble .L7
  687.     ldr r3, [fp, #-20]
  688.     cmp r3, #320
  689.     bge .L7
  690.     ldr r3, [fp, #-24]
  691.     cmp r3, #0
  692.     ble .L7
  693.     ldr r3, [fp, #-24]
  694.     cmp r3, #239
  695.     bgt .L7
  696.     ldr r3, [fp, #-8]
  697.     ldrh    r2, [fp, #-26]
  698.     strh    r2, [r3]
  699. .L7:
  700.     nop
  701.     add sp, fp, #0
  702.     ldr fp, [sp], #4
  703.     bx  lr
  704.     .size   setPixel, .-setPixel
  705.     .align  2
  706.     .global drawLine
  707.     .syntax unified
  708.     .arm
  709.     .fpu softvfp
  710.     .type   drawLine, %function
  711. drawLine:
  712.     push    {fp, lr}
  713.     add fp, sp, #4
  714.     sub sp, sp, #40
  715.     str r0, [fp, #-32]
  716.     str r1, [fp, #-36]
  717.     str r2, [fp, #-40]
  718.     str r3, [fp, #-44]
  719.     ldr r2, [fp, #-44]
  720.     ldr r3, [fp, #-36]
  721.     sub r3, r2, r3
  722.     cmp r3, #0
  723.     rsblt   r3, r3, #0
  724.     str r3, [fp, #-12]
  725.     ldr r2, [fp, #-36]
  726.     ldr r3, [fp, #-44]
  727.     cmp r2, r3
  728.     bge .L9
  729.     mov r3, #1
  730.     b   .L10
  731. .L9:
  732.     mvn r3, #0
  733. .L10:
  734.     str r3, [fp, #-16]
  735.     ldr r2, [fp, #4]
  736.     ldr r3, [fp, #-40]
  737.     sub r3, r2, r3
  738.     cmp r3, #0
  739.     rsblt   r3, r3, #0
  740.     rsb r3, r3, #0
  741.     str r3, [fp, #-20]
  742.     ldr r2, [fp, #-40]
  743.     ldr r3, [fp, #4]
  744.     cmp r2, r3
  745.     bge .L11
  746.     mov r3, #1
  747.     b   .L12
  748. .L11:
  749.     mvn r3, #0
  750. .L12:
  751.     str r3, [fp, #-24]
  752.     ldr r2, [fp, #-12]
  753.     ldr r3, [fp, #-20]
  754.     add r3, r2, r3
  755.     str r3, [fp, #-8]
  756. .L17:
  757.     ldrh    r3, [fp, #8]
  758.     ldr r2, [fp, #-40]
  759.     ldr r1, [fp, #-36]
  760.     ldr r0, [fp, #-32]
  761.     bl  setPixel
  762.     ldr r2, [fp, #-36]
  763.     ldr r3, [fp, #-44]
  764.     cmp r2, r3
  765.     bne .L13
  766.     ldr r2, [fp, #-40]
  767.     ldr r3, [fp, #4]
  768.     cmp r2, r3
  769.     beq .L19
  770. .L13:
  771.     ldr r3, [fp, #-8]
  772.     lsl r3, r3, #1
  773.     str r3, [fp, #-28]
  774.     ldr r2, [fp, #-28]
  775.     ldr r3, [fp, #-20]
  776.     cmp r2, r3
  777.     blt .L15
  778.     ldr r2, [fp, #-8]
  779.     ldr r3, [fp, #-20]
  780.     add r3, r2, r3
  781.     str r3, [fp, #-8]
  782.     ldr r2, [fp, #-36]
  783.     ldr r3, [fp, #-16]
  784.     add r3, r2, r3
  785.     str r3, [fp, #-36]
  786. .L15:
  787.     ldr r2, [fp, #-28]
  788.     ldr r3, [fp, #-12]
  789.     cmp r2, r3
  790.     bgt .L17
  791.     ldr r2, [fp, #-8]
  792.     ldr r3, [fp, #-12]
  793.     add r3, r2, r3
  794.     str r3, [fp, #-8]
  795.     ldr r2, [fp, #-40]
  796.     ldr r3, [fp, #-24]
  797.     add r3, r2, r3
  798.     str r3, [fp, #-40]
  799.     b   .L17
  800. .L19:
  801.     nop
  802.     nop
  803.     sub sp, fp, #4
  804.     pop {fp, pc}
  805.     .size   drawLine, .-drawLine
  806.     .align  2
  807.     .global HLine
  808.     .syntax unified
  809.     .arm
  810.     .fpu softvfp
  811.     .type   HLine, %function
  812. HLine:
  813.     push    {fp, lr}
  814.     add fp, sp, #4
  815.     sub sp, sp, #24
  816.     str r0, [fp, #-16]
  817.     str r1, [fp, #-20]
  818.     str r2, [fp, #-24]
  819.     str r3, [fp, #-28]
  820.     ldrh    r3, [fp, #4]
  821.     ldr r2, [fp, #-28]
  822.     ldr r1, [fp, #-20]
  823.     ldr r0, [fp, #-16]
  824.     bl  setPixel
  825.     ldr r2, [fp, #-20]
  826.     ldr r3, [fp, #-24]
  827.     cmp r2, r3
  828.     beq .L27
  829.     ldr r2, [fp, #-20]
  830.     ldr r3, [fp, #-24]
  831.     cmp r2, r3
  832.     bge .L23
  833.     mov r3, #1
  834.     b   .L24
  835. .L23:
  836.     mvn r3, #0
  837. .L24:
  838.     str r3, [fp, #-12]
  839.     ldr r2, [fp, #-20]
  840.     ldr r3, [fp, #-12]
  841.     add r3, r2, r3
  842.     str r3, [fp, #-8]
  843.     b   .L25
  844. .L26:
  845.     ldrh    r3, [fp, #4]
  846.     ldr r2, [fp, #-28]
  847.     ldr r1, [fp, #-8]
  848.     ldr r0, [fp, #-16]
  849.     bl  setPixel
  850.     ldr r2, [fp, #-8]
  851.     ldr r3, [fp, #-12]
  852.     add r3, r2, r3
  853.     str r3, [fp, #-8]
  854. .L25:
  855.     ldr r2, [fp, #-8]
  856.     ldr r3, [fp, #-24]
  857.     cmp r2, r3
  858.     bne .L26
  859.     ldrh    r3, [fp, #4]
  860.     ldr r2, [fp, #-28]
  861.     ldr r1, [fp, #-24]
  862.     ldr r0, [fp, #-16]
  863.     bl  setPixel
  864.     b   .L20
  865. .L27:
  866.     nop
  867. .L20:
  868.     sub sp, fp, #4
  869.     pop {fp, pc}
  870.     .size   HLine, .-HLine
  871.     .global __aeabi_fadd
  872.     .align  2
  873.     .global stdTriangleFlatBottom
  874.     .syntax unified
  875.     .arm
  876.     .fpu softvfp
  877.     .type   stdTriangleFlatBottom, %function
  878. stdTriangleFlatBottom:
  879.     sub sp, sp, #8
  880.     push    {r4, fp, lr}
  881.     add fp, sp, #8
  882.     sub sp, sp, #52
  883.     str r0, [fp, #-40]
  884.     sub r0, fp, #48
  885.     stm r0, {r1, r2}
  886.     str r3, [fp, #8]
  887.     ldr r2, [fp, #8]
  888.     ldr r3, [fp, #-48]
  889.     sub r3, r2, r3
  890.     mov r0, r3
  891.     bl  __aeabi_i2f
  892.     mov r4, r0
  893.     ldr r2, [fp, #12]
  894.     ldr r3, [fp, #-44]
  895.     sub r3, r2, r3
  896.     mov r0, r3
  897.     bl  __aeabi_i2f
  898.     mov r3, r0
  899.     mov r1, r3
  900.     mov r0, r4
  901.     bl  __aeabi_fdiv
  902.     mov r3, r0
  903.     str r3, [fp, #-28]   
  904.     ldr r2, [fp, #16]
  905.     ldr r3, [fp, #-48]
  906.     sub r3, r2, r3
  907.     mov r0, r3
  908.     bl  __aeabi_i2f
  909.     mov r4, r0
  910.     ldr r2, [fp, #20]
  911.     ldr r3, [fp, #-44]
  912.     sub r3, r2, r3
  913.     mov r0, r3
  914.     bl  __aeabi_i2f
  915.     mov r3, r0
  916.     mov r1, r3
  917.     mov r0, r4
  918.     bl  __aeabi_fdiv
  919.     mov r3, r0
  920.     str r3, [fp, #-32]
  921.     ldr r3, [fp, #-48]
  922.     mov r0, r3
  923.     bl  __aeabi_i2f
  924.     mov r3, r0
  925.     str r3, [fp, #-16]
  926.     ldr r3, [fp, #-48]
  927.     mov r0, r3
  928.     bl  __aeabi_i2f
  929.     mov r3, r0
  930.     str r3, [fp, #-20]
  931.     ldr r3, [fp, #-44]
  932.     str r3, [fp, #-24]
  933.     b   .L29
  934. .L30:
  935.     ldr r0, [fp, #-16]
  936.     bl  __aeabi_f2iz
  937.     mov r4, r0
  938.     ldr r0, [fp, #-20]
  939.     bl  __aeabi_f2iz
  940.     mov r2, r0
  941.     ldrh    r3, [fp, #24]
  942.     str r3, [sp]
  943.     ldr r3, [fp, #-24]
  944.     mov r1, r4
  945.     ldr r0, [fp, #-40]
  946.     bl  HLine
  947.     ldr r1, [fp, #-28]
  948.     ldr r0, [fp, #-16]
  949.     bl  __aeabi_fadd
  950.     mov r3, r0
  951.     str r3, [fp, #-16]
  952.     ldr r1, [fp, #-32]
  953.     ldr r0, [fp, #-20]
  954.     bl  __aeabi_fadd
  955.     mov r3, r0
  956.     str r3, [fp, #-20]
  957.     ldr r3, [fp, #-24]
  958.     add r3, r3, #1
  959.     str r3, [fp, #-24]
  960. .L29:
  961.     ldr r3, [fp, #12]
  962.     ldr r2, [fp, #-24]
  963.     cmp r2, r3
  964.     ble .L30
  965.     nop
  966.     sub sp, fp, #8
  967.      
  968.     pop {r4, fp, lr}
  969.     add sp, sp, #8
  970.     bx  lr
  971.     .size   stdTriangleFlatBottom, .-stdTriangleFlatBottom
  972.     .global __aeabi_fsub
  973.     .align  2
  974.     .global stdTriangleFlatTop
  975.     .syntax unified
  976.     .arm
  977.     .fpu softvfp
  978.     .type   stdTriangleFlatTop, %function
  979. stdTriangleFlatTop:
  980.     sub sp, sp, #8
  981.     push    {r4, fp, lr}
  982.     add fp, sp, #8
  983.     sub sp, sp, #52
  984.     str r0, [fp, #-40]
  985.     sub r0, fp, #48
  986.     stm r0, {r1, r2}
  987.     str r3, [fp, #8]
  988.     ldr r2, [fp, #16]
  989.     ldr r3, [fp, #-48]
  990.     sub r3, r2, r3
  991.     mov r0, r3
  992.     bl  __aeabi_i2f
  993.     mov r4, r0
  994.     ldr r2, [fp, #20]
  995.     ldr r3, [fp, #-44]
  996.     sub r3, r2, r3
  997.     mov r0, r3
  998.     bl  __aeabi_i2f
  999.     mov r3, r0
  1000.     mov r1, r3
  1001.     mov r0, r4
  1002.     bl  __aeabi_fdiv
  1003.     mov r3, r0
  1004.     str r3, [fp, #-28]
  1005.     ldr r2, [fp, #16]
  1006.     ldr r3, [fp, #8]
  1007.     sub r3, r2, r3
  1008.     mov r0, r3
  1009.     bl  __aeabi_i2f
  1010.     mov r4, r0
  1011.     ldr r2, [fp, #20]
  1012.     ldr r3, [fp, #12]
  1013.     sub r3, r2, r3
  1014.     mov r0, r3
  1015.     bl  __aeabi_i2f
  1016.     mov r3, r0
  1017.     mov r1, r3
  1018.     mov r0, r4
  1019.     bl  __aeabi_fdiv
  1020.     mov r3, r0
  1021.     str r3, [fp, #-32]
  1022.     ldr r3, [fp, #16]
  1023.     mov r0, r3
  1024.     bl  __aeabi_i2f
  1025.     mov r3, r0
  1026.     str r3, [fp, #-16]
  1027.     ldr r3, [fp, #16]
  1028.     mov r0, r3
  1029.     bl  __aeabi_i2f
  1030.     mov r3, r0
  1031.     str r3, [fp, #-20]
  1032.     ldr r3, [fp, #20]
  1033.     str r3, [fp, #-24]
  1034.     b   .L32
  1035. .L33:
  1036.     ldr r0, [fp, #-16]
  1037.     bl  __aeabi_f2iz
  1038.     mov r4, r0
  1039.     ldr r0, [fp, #-20]
  1040.     bl  __aeabi_f2iz
  1041.     mov r2, r0
  1042.     ldrh    r3, [fp, #24]
  1043.     str r3, [sp]
  1044.     ldr r3, [fp, #-24]
  1045.     mov r1, r4
  1046.     ldr r0, [fp, #-40]
  1047.     bl  HLine
  1048.     ldr r1, [fp, #-28]   
  1049.     ldr r0, [fp, #-16]   
  1050.     bl  __aeabi_fsub
  1051.     mov r3, r0
  1052.     str r3, [fp, #-16]   
  1053.     ldr r1, [fp, #-32]   
  1054.     ldr r0, [fp, #-20]   
  1055.     bl  __aeabi_fsub
  1056.     mov r3, r0
  1057.     str r3, [fp, #-20]   
  1058.     ldr r3, [fp, #-24]
  1059.     sub r3, r3, #1
  1060.     str r3, [fp, #-24]
  1061. .L32:
  1062.     ldr r3, [fp, #-44]
  1063.     ldr r2, [fp, #-24]
  1064.     cmp r2, r3
  1065.     bge .L33
  1066.     nop
  1067.     sub sp, fp, #8
  1068.     pop {r4, fp, lr}
  1069.     add sp, sp, #8
  1070.     bx  lr
  1071.     .size   stdTriangleFlatTop, .-stdTriangleFlatTop
  1072.     .align  2
  1073.     .global stdTriangle
  1074.     .syntax unified
  1075.     .arm
  1076.     .fpu softvfp
  1077.     .type   stdTriangle, %function
  1078. stdTriangle:
  1079.     sub sp, sp, #8
  1080.     push    {r4, r5, fp, lr}
  1081.     add fp, sp, #12
  1082.     sub sp, sp, #64
  1083.     str r0, [fp, #-48]
  1084.     sub r0, fp, #56
  1085.     stm r0, {r1, r2}
  1086.     str r3, [fp, #8]
  1087.     mov r3, #0
  1088.     str r3, [fp, #-20]
  1089.     mov r3, #0
  1090.     str r3, [fp, #-16]
  1091.     sub r3, fp, #28
  1092.     sub r2, fp, #20
  1093.     ldm r2, {r0, r1}
  1094.     stm r3, {r0, r1}
  1095.     sub r3, fp, #36
  1096.     sub r2, fp, #20
  1097.     ldm r2, {r0, r1}
  1098.     stm r3, {r0, r1}
  1099.     ldr r2, [fp, #-52]
  1100.     ldr r3, [fp, #12]
  1101.     cmp r2, r3
  1102.     bge .L35
  1103.     ldr r2, [fp, #-52]
  1104.     ldr r3, [fp, #20]
  1105.     cmp r2, r3
  1106.     bge .L35
  1107.     sub r3, fp, #20
  1108.     sub r2, fp, #56
  1109.     ldm r2, {r0, r1}
  1110.     stm r3, {r0, r1}
  1111.     ldr r2, [fp, #12]
  1112.     ldr r3, [fp, #20]
  1113.     cmp r2, r3
  1114.     bge .L36
  1115.     sub r3, fp, #28
  1116.     add r2, fp, #8
  1117.     ldm r2, {r0, r1}
  1118.     stm r3, {r0, r1}
  1119.     b   .L37
  1120. .L36:
  1121.     sub r3, fp, #28
  1122.     add r2, fp, #16
  1123.     ldm r2, {r0, r1}
  1124.     stm r3, {r0, r1}
  1125. .L37:
  1126.     ldr r2, [fp, #12]
  1127.     ldr r3, [fp, #20]
  1128.     cmp r2, r3
  1129.     bge .L38
  1130.     sub r3, fp, #36
  1131.     add r2, fp, #16
  1132.     ldm r2, {r0, r1}
  1133.     stm r3, {r0, r1}
  1134.     b   .L40
  1135. .L38:
  1136.     sub r3, fp, #36
  1137.     add r2, fp, #8
  1138.     ldm r2, {r0, r1}
  1139.     stm r3, {r0, r1}
  1140.     b   .L40
  1141. .L35:
  1142.     ldr r2, [fp, #12]
  1143.     ldr r3, [fp, #20]
  1144.     cmp r2, r3
  1145.     bge .L41
  1146.     sub r3, fp, #20
  1147.     add r2, fp, #8
  1148.     ldm r2, {r0, r1}
  1149.     stm r3, {r0, r1}
  1150.     ldr r2, [fp, #-52]
  1151.     ldr r3, [fp, #20]
  1152.     cmp r2, r3
  1153.     bge .L42
  1154.     sub r3, fp, #28
  1155.     sub r2, fp, #56
  1156.     ldm r2, {r0, r1}
  1157.     stm r3, {r0, r1}
  1158.     b   .L43
  1159. .L42:
  1160.     sub r3, fp, #28
  1161.     add r2, fp, #16
  1162.     ldm r2, {r0, r1}
  1163.     stm r3, {r0, r1}
  1164. .L43:
  1165.     ldr r2, [fp, #-52]
  1166.     ldr r3, [fp, #20]
  1167.     cmp r2, r3
  1168.     bge .L44
  1169.     sub r3, fp, #36
  1170.     add r2, fp, #16
  1171.     ldm r2, {r0, r1}
  1172.     stm r3, {r0, r1}
  1173.     b   .L40
  1174. .L44:
  1175.     sub r3, fp, #36
  1176.     sub r2, fp, #56
  1177.     ldm r2, {r0, r1}
  1178.     stm r3, {r0, r1}
  1179.     b   .L40
  1180. .L41:
  1181.     sub r3, fp, #20
  1182.     add r2, fp, #16
  1183.     ldm r2, {r0, r1}
  1184.     stm r3, {r0, r1}
  1185.     ldr r2, [fp, #-52]
  1186.     ldr r3, [fp, #12]
  1187.     cmp r2, r3
  1188.     bge .L46
  1189.     sub r3, fp, #28
  1190.     sub r2, fp, #56
  1191.     ldm r2, {r0, r1}
  1192.     stm r3, {r0, r1}
  1193.     b   .L47
  1194. .L46:
  1195.     sub r3, fp, #28
  1196.     add r2, fp, #8
  1197.     ldm r2, {r0, r1}
  1198.     stm r3, {r0, r1}
  1199. .L47:
  1200.     ldr r2, [fp, #-52]
  1201.     ldr r3, [fp, #12]
  1202.     cmp r2, r3
  1203.     bge .L48
  1204.     sub r3, fp, #36
  1205.     add r2, fp, #8
  1206.     ldm r2, {r0, r1}
  1207.     stm r3, {r0, r1}
  1208.     b   .L40
  1209. .L48:
  1210.     sub r3, fp, #36
  1211.     sub r2, fp, #56
  1212.     ldm r2, {r0, r1}
  1213.     stm r3, {r0, r1}
  1214. .L40:
  1215.     ldr r2, [fp, #-24]
  1216.     ldr r3, [fp, #-32]
  1217.     cmp r2, r3
  1218.     bne .L49
  1219.     ldrh    r3, [fp, #24]
  1220.     str r3, [sp, #12]
  1221.     add r2, sp, #4
  1222.     sub r3, fp, #36
  1223.     ldm r3, {r0, r1}
  1224.     stm r2, {r0, r1}
  1225.     ldr r3, [fp, #-24]
  1226.     str r3, [sp]
  1227.     ldr r3, [fp, #-28]
  1228.     sub r2, fp, #20
  1229.     ldm r2, {r1, r2}
  1230.     ldr r0, [fp, #-48]
  1231.     bl  stdTriangleFlatBottom
  1232.     b   .L52
  1233. .L49:
  1234.     ldr r2, [fp, #-16]
  1235.     ldr r3, [fp, #-24]
  1236.     cmp r2, r3
  1237.     bne .L51
  1238.     ldrh    r3, [fp, #24]
  1239.     str r3, [sp, #12]
  1240.     add r2, sp, #4
  1241.     sub r3, fp, #36
  1242.     ldm r3, {r0, r1}
  1243.     stm r2, {r0, r1}
  1244.     ldr r3, [fp, #-24]
  1245.     str r3, [sp]
  1246.     ldr r3, [fp, #-28]
  1247.     sub r2, fp, #20
  1248.     ldm r2, {r1, r2}
  1249.     ldr r0, [fp, #-48]
  1250.     bl  stdTriangleFlatTop
  1251.     b   .L52
  1252. .L51:
  1253.     ldr r3, [fp, #-20]
  1254.     mov r0, r3
  1255.     bl  __aeabi_i2f
  1256.     mov r4, r0
  1257.     ldr r2, [fp, #-24]
  1258.     ldr r3, [fp, #-16]
  1259.     sub r3, r2, r3
  1260.     mov r0, r3
  1261.     bl  __aeabi_i2f
  1262.     mov r5, r0
  1263.     ldr r2, [fp, #-32]
  1264.     ldr r3, [fp, #-16]
  1265.     sub r3, r2, r3
  1266.     mov r0, r3
  1267.     bl  __aeabi_i2f
  1268.     mov r3, r0
  1269.     mov r1, r3
  1270.     mov r0, r5
  1271.     bl  __aeabi_fdiv
  1272.     mov r3, r0
  1273.     mov r5, r3
  1274.     ldr r2, [fp, #-36]
  1275.     ldr r3, [fp, #-20]
  1276.     sub r3, r2, r3
  1277.     mov r0, r3
  1278.     bl  __aeabi_i2f
  1279.     mov r3, r0
  1280.     mov r1, r3
  1281.     mov r0, r5
  1282.     bl  __aeabi_fmul
  1283.     mov r3, r0
  1284.     mov r1, r3
  1285.     mov r0, r4
  1286.     bl  __aeabi_fadd
  1287.     mov r3, r0
  1288.     mov r0, r3
  1289.     bl  __aeabi_f2iz
  1290.     mov r3, r0
  1291.     str r3, [fp, #-44]
  1292.     ldr r3, [fp, #-24]
  1293.     str r3, [fp, #-40]
  1294.     ldrh    r3, [fp, #24]
  1295.     str r3, [sp, #12]
  1296.     add r2, sp, #4
  1297.     sub r3, fp, #44
  1298.     ldm r3, {r0, r1}
  1299.     stm r2, {r0, r1}
  1300.     ldr r3, [fp, #-24]
  1301.     str r3, [sp]
  1302.     ldr r3, [fp, #-28]
  1303.     sub r2, fp, #20
  1304.     ldm r2, {r1, r2}
  1305.     ldr r0, [fp, #-48]
  1306.     bl  stdTriangleFlatBottom
  1307.     ldrh    r3, [fp, #24]
  1308.     str r3, [sp, #12]
  1309.     add r2, sp, #4
  1310.     sub r3, fp, #36
  1311.     ldm r3, {r0, r1}
  1312.     stm r2, {r0, r1}
  1313.     ldr r3, [fp, #-40]
  1314.     str r3, [sp]
  1315.     ldr r3, [fp, #-44]
  1316.     sub r2, fp, #28
  1317.     ldm r2, {r1, r2}
  1318.     ldr r0, [fp, #-48]
  1319.     bl  stdTriangleFlatTop
  1320. .L52:
  1321.     nop
  1322.     sub sp, fp, #12
  1323.      
  1324.     pop {r4, r5, fp, lr}
  1325.     add sp, sp, #8
  1326.     bx  lr
  1327.     .size   stdTriangle, .-stdTriangle
  1328.     .global __aeabi_f2d
  1329.     .global __aeabi_d2f
  1330.     .align  2
  1331.     .global absolute
  1332.     .syntax unified
  1333.     .arm
  1334.     .fpu softvfp
  1335.     .type   absolute, %function
  1336. absolute:
  1337.     push    {r4, fp, lr}
  1338.     add fp, sp, #8
  1339.     sub sp, sp, #20
  1340.     sub r3, fp, #24
  1341.     stm r3, {r0, r1, r2}
  1342.     ldr r3, [fp, #-24]   
  1343.     ldr r2, [fp, #-24]   
  1344.     mov r1, r2
  1345.     mov r0, r3
  1346.     bl  __aeabi_fmul
  1347.     mov r3, r0
  1348.     mov r4, r3
  1349.     ldr r3, [fp, #-20]   
  1350.     ldr r2, [fp, #-20]   
  1351.     mov r1, r2
  1352.     mov r0, r3
  1353.     bl  __aeabi_fmul
  1354.     mov r3, r0
  1355.     mov r1, r3
  1356.     mov r0, r4
  1357.     bl  __aeabi_fadd
  1358.     mov r3, r0
  1359.     mov r4, r3
  1360.     ldr r3, [fp, #-16]   
  1361.     ldr r2, [fp, #-16]   
  1362.     mov r1, r2
  1363.     mov r0, r3
  1364.     bl  __aeabi_fmul
  1365.     mov r3, r0
  1366.     mov r1, r3
  1367.     mov r0, r4
  1368.     bl  __aeabi_fadd
  1369.     mov r3, r0
  1370.     mov r0, r3
  1371.     bl  __aeabi_f2d
  1372.     mov r2, r0
  1373.     mov r3, r1
  1374.     mov r0, r2
  1375.     mov r1, r3
  1376.     bl  sqrt
  1377.     mov r2, r0
  1378.     mov r3, r1
  1379.     mov r0, r2
  1380.     mov r1, r3
  1381.     bl  __aeabi_d2f
  1382.     mov r3, r0
  1383.     mov r0, r3
  1384.     sub sp, fp, #8
  1385.      
  1386.     pop {r4, fp, pc}
  1387.     .size   absolute, .-absolute
  1388.     .align  2
  1389.     .global rotate2d
  1390.     .syntax unified
  1391.     .arm
  1392.     .fpu softvfp
  1393.     .type   rotate2d, %function
  1394. rotate2d:
  1395.     push    {r4, fp, lr}
  1396.     add fp, sp, #8
  1397.     sub sp, sp, #36
  1398.     str r0, [fp, #-32]
  1399.     str r1, [fp, #-36]
  1400.     str r2, [fp, #-40]   
  1401.     ldr r0, [fp, #-40]   
  1402.     bl  __aeabi_f2d
  1403.     mov r2, r0
  1404.     mov r3, r1
  1405.     mov r0, r2
  1406.     mov r1, r3
  1407.     bl  cos
  1408.     mov r2, r0
  1409.     mov r3, r1
  1410.     mov r0, r2
  1411.     mov r1, r3
  1412.     bl  __aeabi_d2f
  1413.     mov r3, r0
  1414.     str r3, [fp, #-16]   
  1415.     ldr r0, [fp, #-40]   
  1416.     bl  __aeabi_f2d
  1417.     mov r2, r0
  1418.     mov r3, r1
  1419.     mov r0, r2
  1420.     mov r1, r3
  1421.     bl  sin
  1422.     mov r2, r0
  1423.     mov r3, r1
  1424.     mov r0, r2
  1425.     mov r1, r3
  1426.     bl  __aeabi_d2f
  1427.     mov r3, r0
  1428.     str r3, [fp, #-20]   
  1429.     ldr r3, [fp, #-32]
  1430.     ldr r3, [r3]     
  1431.     str r3, [fp, #-24]   
  1432.     ldr r3, [fp, #-36]
  1433.     ldr r3, [r3]     
  1434.     str r3, [fp, #-28]   
  1435.     ldr r1, [fp, #-16]   
  1436.     ldr r0, [fp, #-24]   
  1437.     bl  __aeabi_fmul
  1438.     mov r3, r0
  1439.     mov r4, r3
  1440.     ldr r1, [fp, #-20]   
  1441.     ldr r0, [fp, #-28]   
  1442.     bl  __aeabi_fmul
  1443.     mov r3, r0
  1444.     mov r1, r3
  1445.     mov r0, r4
  1446.     bl  __aeabi_fsub
  1447.     mov r3, r0
  1448.     mov r2, r3
  1449.     ldr r3, [fp, #-32]
  1450.     str r2, [r3]     
  1451.     ldr r1, [fp, #-16]   
  1452.     ldr r0, [fp, #-28]   
  1453.     bl  __aeabi_fmul
  1454.     mov r3, r0
  1455.     mov r4, r3
  1456.     ldr r1, [fp, #-20]   
  1457.     ldr r0, [fp, #-24]   
  1458.     bl  __aeabi_fmul
  1459.     mov r3, r0
  1460.     mov r1, r3
  1461.     mov r0, r4
  1462.     bl  __aeabi_fadd
  1463.     mov r3, r0
  1464.     mov r2, r3
  1465.     ldr r3, [fp, #-36]
  1466.     str r2, [r3]     
  1467.     nop
  1468.     sub sp, fp, #8
  1469.      
  1470.     pop {r4, fp, pc}
  1471.     .size   rotate2d, .-rotate2d
  1472.     .align  2
  1473.     .global normalize
  1474.     .syntax unified
  1475.     .arm
  1476.     .fpu softvfp
  1477.     .type   normalize, %function
  1478. normalize:
  1479.     push    {fp, lr}
  1480.     add fp, sp, #4
  1481.     sub sp, sp, #16
  1482.     str r0, [fp, #-16]
  1483.     ldr r3, [fp, #-16]
  1484.     ldm r3, {r0, r1, r2}
  1485.     bl  absolute
  1486.     str r0, [fp, #-8]    
  1487.     ldr r3, [fp, #-16]
  1488.     ldr r3, [r3]     
  1489.     ldr r1, [fp, #-8]    
  1490.     mov r0, r3
  1491.     bl  __aeabi_fdiv
  1492.     mov r3, r0
  1493.     mov r2, r3
  1494.     ldr r3, [fp, #-16]
  1495.     str r2, [r3]     
  1496.     ldr r3, [fp, #-16]
  1497.     ldr r3, [r3, #4]     
  1498.     ldr r1, [fp, #-8]    
  1499.     mov r0, r3
  1500.     bl  __aeabi_fdiv
  1501.     mov r3, r0
  1502.     mov r2, r3
  1503.     ldr r3, [fp, #-16]
  1504.     str r2, [r3, #4]     
  1505.     ldr r3, [fp, #-16]
  1506.     ldr r3, [r3, #8]     
  1507.     ldr r1, [fp, #-8]    
  1508.     mov r0, r3
  1509.     bl  __aeabi_fdiv
  1510.     mov r3, r0
  1511.     mov r2, r3
  1512.     ldr r3, [fp, #-16]
  1513.     str r2, [r3, #8]     
  1514.     nop
  1515.     sub sp, fp, #4
  1516.      
  1517.     pop {fp, pc}
  1518.     .size   normalize, .-normalize
  1519.     .align  2
  1520.     .global dot
  1521.     .syntax unified
  1522.     .arm
  1523.     .fpu softvfp
  1524.     .type   dot, %function
  1525. dot:
  1526.     sub sp, sp, #8
  1527.     push    {r4, fp, lr}
  1528.     add fp, sp, #8
  1529.     sub sp, sp, #20
  1530.     sub ip, fp, #24
  1531.     stm ip, {r0, r1, r2}
  1532.     str r3, [fp, #8]
  1533.     ldr r3, [fp, #-24]   
  1534.     ldr r2, [fp, #8]     
  1535.     mov r1, r2
  1536.     mov r0, r3
  1537.     bl  __aeabi_fmul
  1538.     mov r3, r0
  1539.     mov r4, r3
  1540.     ldr r3, [fp, #-20]   
  1541.     ldr r2, [fp, #12]    
  1542.     mov r1, r2
  1543.     mov r0, r3
  1544.     bl  __aeabi_fmul
  1545.     mov r3, r0
  1546.     mov r1, r3
  1547.     mov r0, r4
  1548.     bl  __aeabi_fadd
  1549.     mov r3, r0
  1550.     mov r4, r3
  1551.     ldr r3, [fp, #-16]   
  1552.     ldr r2, [fp, #16]    
  1553.     mov r1, r2
  1554.     mov r0, r3
  1555.     bl  __aeabi_fmul
  1556.     mov r3, r0
  1557.     mov r1, r3
  1558.     mov r0, r4
  1559.     bl  __aeabi_fadd
  1560.     mov r3, r0
  1561.     mov r0, r3
  1562.     sub sp, fp, #8
  1563.      
  1564.     pop {r4, fp, lr}
  1565.     add sp, sp, #8
  1566.     bx  lr
  1567.     .size   dot, .-dot
  1568.     .align  2
  1569.     .global lightdot
  1570.     .syntax unified
  1571.     .arm
  1572.     .fpu softvfp
  1573.     .type   lightdot, %function
  1574. lightdot:
  1575.     sub sp, sp, #8
  1576.     push    {r4, fp, lr}
  1577.     add fp, sp, #8
  1578.     sub sp, sp, #20
  1579.     sub ip, fp, #24
  1580.     stm ip, {r0, r1, r2}
  1581.     str r3, [fp, #8]
  1582.     ldr r2, [fp, #-24]   
  1583.     ldr r3, [fp, #8]     
  1584.     eor r3, r3, #-2147483648
  1585.     mov r1, r3
  1586.     mov r0, r2
  1587.     bl  __aeabi_fmul
  1588.     mov r3, r0
  1589.     mov r4, r3
  1590.     ldr r2, [fp, #-20]   
  1591.     ldr r3, [fp, #12]    
  1592.     eor r3, r3, #-2147483648
  1593.     mov r1, r3
  1594.     mov r0, r2
  1595.     bl  __aeabi_fmul
  1596.     mov r3, r0
  1597.     mov r1, r3
  1598.     mov r0, r4
  1599.     bl  __aeabi_fadd
  1600.     mov r3, r0
  1601.     mov r4, r3
  1602.     ldr r2, [fp, #-16]   
  1603.     ldr r3, [fp, #16]    
  1604.     eor r3, r3, #-2147483648
  1605.     mov r1, r3
  1606.     mov r0, r2
  1607.     bl  __aeabi_fmul
  1608.     mov r3, r0
  1609.     mov r1, r3
  1610.     mov r0, r4
  1611.     bl  __aeabi_fadd
  1612.     mov r3, r0
  1613.     mov r0, r3
  1614.     sub sp, fp, #8
  1615.      
  1616.     pop {r4, fp, lr}
  1617.     add sp, sp, #8
  1618.     bx  lr
  1619.     .size   lightdot, .-lightdot
  1620.     .align  2
  1621.     .global calculate
  1622.     .syntax unified
  1623.     .arm
  1624.     .fpu softvfp
  1625.     .type   calculate, %function
  1626. calculate:
  1627.     sub sp, sp, #16
  1628.     push    {fp, lr}
  1629.     add fp, sp, #4
  1630.     sub sp, sp, #32
  1631.     add ip, fp, #4
  1632.     stm ip, {r0, r1, r2, r3}
  1633.     mov r3, #0
  1634.     str r3, [fp, #-8]
  1635.     b   .L62
  1636. .L63:
  1637.     ldr r1, .L64
  1638.     ldr r2, [fp, #-8]
  1639.     mov r3, r2
  1640.     lsl r3, r3, #1
  1641.     add r3, r3, r2
  1642.     lsl r3, r3, #2
  1643.     add r3, r1, r3
  1644.     ldr r3, [r3]     
  1645.     str r3, [fp, #-16]   
  1646.     ldr r1, .L64
  1647.     ldr r2, [fp, #-8]
  1648.     mov r3, r2
  1649.     lsl r3, r3, #1
  1650.     add r3, r3, r2
  1651.     lsl r3, r3, #2
  1652.     add r3, r1, r3
  1653.     add r3, r3, #4
  1654.     ldr r3, [r3]     
  1655.     str r3, [fp, #-20]   
  1656.     ldr r1, .L64
  1657.     ldr r2, [fp, #-8]
  1658.     mov r3, r2
  1659.     lsl r3, r3, #1
  1660.     add r3, r3, r2
  1661.     lsl r3, r3, #2
  1662.     add r3, r1, r3
  1663.     add r3, r3, #8
  1664.     ldr r3, [r3]     
  1665.     str r3, [fp, #-24]   
  1666.     ldr r3, [fp, #-16]   
  1667.     ldr r2, [fp, #4]     
  1668.     mov r1, r2
  1669.     mov r0, r3
  1670.     bl  __aeabi_fsub
  1671.     mov r3, r0
  1672.     str r3, [fp, #-16]   
  1673.     ldr r3, [fp, #-20]   
  1674.     ldr r2, [fp, #8]     
  1675.     mov r1, r2
  1676.     mov r0, r3
  1677.     bl  __aeabi_fsub
  1678.     mov r3, r0
  1679.     str r3, [fp, #-20]   
  1680.     ldr r3, [fp, #-24]   
  1681.     ldr r2, [fp, #12]    
  1682.     mov r1, r2
  1683.     mov r0, r3
  1684.     bl  __aeabi_fsub
  1685.     mov r3, r0
  1686.     str r3, [fp, #-24]   
  1687.     ldr r2, [fp, #20]    
  1688.     sub r1, fp, #24
  1689.     sub r3, fp, #16
  1690.     mov r0, r3
  1691.     bl  rotate2d
  1692.     ldr r2, [fp, #16]    
  1693.     sub r1, fp, #24
  1694.     sub r3, fp, #20
  1695.     mov r0, r3
  1696.     bl  rotate2d
  1697.     ldr r3, [fp, #-24]   
  1698.     mov r1, r3
  1699.     ldr r0, .L64+4
  1700.     bl  __aeabi_fdiv
  1701.     mov r3, r0
  1702.     str r3, [fp, #-12]   
  1703.     ldr r3, [fp, #-16]   
  1704.     ldr r1, [fp, #-12]   
  1705.     mov r0, r3
  1706.     bl  __aeabi_fmul
  1707.     mov r3, r0
  1708.     str r3, [fp, #-16]   
  1709.     ldr r3, [fp, #-20]   
  1710.     ldr r1, [fp, #-12]   
  1711.     mov r0, r3
  1712.     bl  __aeabi_fmul
  1713.     mov r3, r0
  1714.     str r3, [fp, #-20]   
  1715.     ldr r3, [fp, #-16]   
  1716.     mov r0, r3
  1717.     bl  __aeabi_f2iz
  1718.     mov r3, r0
  1719.     add r3, r3, #160
  1720.     str r3, [fp, #-32]
  1721.     ldr r3, [fp, #-20]   
  1722.     mov r0, r3
  1723.     bl  __aeabi_f2iz
  1724.     mov r3, r0
  1725.     rsb r3, r3, #120
  1726.     str r3, [fp, #-28]
  1727.     ldr r3, [fp, #-8]
  1728.     lsl r3, r3, #3
  1729.     ldr r2, [fp, #24]
  1730.     add r3, r2, r3
  1731.     mov r2, r3
  1732.     sub r3, fp, #32
  1733.     ldm r3, {r0, r1}
  1734.     stm r2, {r0, r1}
  1735.     ldr r3, [fp, #-8]
  1736.     lsl r3, r3, #2
  1737.     ldr r2, [fp, #28]
  1738.     add r3, r2, r3
  1739.     ldr r2, [fp, #-24]   
  1740.     str r2, [r3]     
  1741.     ldr r3, [fp, #-8]
  1742.     add r3, r3, #1
  1743.     str r3, [fp, #-8]
  1744. .L62:
  1745.     ldr r3, .L64+8
  1746.     ldr r3, [r3]
  1747.     ldr r2, [fp, #-8]
  1748.     cmp r2, r3
  1749.     blt .L63
  1750.     nop
  1751.     sub sp, fp, #4
  1752.      
  1753.     pop {fp, lr}
  1754.     add sp, sp, #16
  1755.     bx  lr
  1756. .L65:
  1757.     .align  2
  1758. .L64:
  1759.     .word   verts
  1760.     .word   1126170624
  1761.     .word   numVerts
  1762.     .size   calculate, .-calculate
  1763.     .align  2
  1764.     .global drawVerts
  1765.     .syntax unified
  1766.     .arm
  1767.     .fpu softvfp
  1768.     .type   drawVerts, %function
  1769. drawVerts:
  1770.     push    {r4, r5, r6, fp, lr}
  1771.     add fp, sp, #16
  1772.     sub sp, sp, #20
  1773.     str r0, [fp, #-32]
  1774.     str r1, [fp, #-36]
  1775.     mov r3, #0
  1776.     str r3, [fp, #-24]
  1777.     b   .L67
  1778. .L68:
  1779.     ldr r3, [fp, #-24]
  1780.     lsl r3, r3, #3
  1781.     ldr r2, [fp, #-36]
  1782.     add r3, r2, r3
  1783.     ldr r4, [r3]
  1784.     ldr r3, [fp, #-24]
  1785.     lsl r3, r3, #3
  1786.     ldr r2, [fp, #-36]
  1787.     add r3, r2, r3
  1788.     ldr r5, [r3, #4]
  1789.     ldr r0, [fp, #-24]
  1790.     bl  __aeabi_i2f
  1791.     mov r6, r0
  1792.     ldr r3, .L69
  1793.     ldr r3, [r3]
  1794.     mov r0, r3
  1795.     bl  __aeabi_i2f
  1796.     mov r3, r0
  1797.     mov r1, r3
  1798.     mov r0, r6
  1799.     bl  __aeabi_fdiv
  1800.     mov r3, r0
  1801.     ldr r1, .L69+4
  1802.     mov r0, r3
  1803.     bl  __aeabi_fmul
  1804.     mov r3, r0
  1805.     mov r0, r3
  1806.     bl  __aeabi_f2iz
  1807.     mov r3, r0
  1808.     add r3, r3, #200
  1809.     ldr r2, .L69+8
  1810.     lsl r3, r3, #1
  1811.     add r3, r2, r3
  1812.     ldrh    r3, [r3]
  1813.     mov r2, r5
  1814.     mov r1, r4
  1815.     ldr r0, [fp, #-32]
  1816.     bl  setPixel
  1817.     ldr r3, [fp, #-24]
  1818.     add r3, r3, #1
  1819.     str r3, [fp, #-24]
  1820. .L67:
  1821.     ldr r3, .L69
  1822.     ldr r3, [r3]
  1823.     ldr r2, [fp, #-24]
  1824.     cmp r2, r3
  1825.     blt .L68
  1826.     nop
  1827.     sub sp, fp, #16
  1828.      
  1829.     pop {r4, r5, r6, fp, pc}
  1830. .L70:
  1831.     .align  2
  1832. .L69:
  1833.     .word   numVerts
  1834.     .word   1112014848
  1835.     .word   RGB332to565lookupTable
  1836.     .size   drawVerts, .-drawVerts
  1837.     .global __aeabi_fcmpgt
  1838.     .align  2
  1839.     .global depthsort
  1840.     .syntax unified
  1841.     .arm
  1842.     .fpu softvfp
  1843.     .type   depthsort, %function
  1844. depthsort:
  1845.     push    {r4, fp, lr}
  1846.     add fp, sp, #8
  1847.     sub sp, sp, #52
  1848.     str r0, [fp, #-56]
  1849.     str r1, [fp, #-60]
  1850.     mov r3, sp
  1851.     mov r4, r3
  1852.     ldr r3, .L81
  1853.     ldr ip, [r3]
  1854.     sub r3, ip, #1
  1855.     str r3, [fp, #-36]
  1856.     mov r3, ip
  1857.     mov r0, r3
  1858.     mov r1, #0
  1859.     mov r2, #0
  1860.     mov r3, #0
  1861.     lsl r3, r1, #5
  1862.     orr r3, r3, r0, lsr #27
  1863.     lsl r2, r0, #5
  1864.     mov r3, ip
  1865.     mov r0, r3
  1866.     mov r1, #0
  1867.     mov r2, #0
  1868.     mov r3, #0
  1869.     lsl r3, r1, #5
  1870.     orr r3, r3, r0, lsr #27
  1871.     lsl r2, r0, #5
  1872.     mov r3, ip
  1873.     lsl r3, r3, #2
  1874.     add r3, r3, #3
  1875.     add r3, r3, #7
  1876.     lsr r3, r3, #3
  1877.     lsl r3, r3, #3
  1878.     sub sp, sp, r3
  1879.     mov r3, sp
  1880.     add r3, r3, #3
  1881.     lsr r3, r3, #2
  1882.     lsl r3, r3, #2
  1883.     str r3, [fp, #-40]
  1884.     mov r3, #0
  1885.     str r3, [fp, #-24]
  1886.     b   .L72
  1887. .L73:
  1888.     ldr r1, .L81+4
  1889.     ldr r2, [fp, #-24]
  1890.     mov r3, r2
  1891.     lsl r3, r3, #1
  1892.     add r3, r3, r2
  1893.     lsl r3, r3, #2
  1894.     add r3, r1, r3
  1895.     ldr r3, [r3]
  1896.     sub r3, r3, #-1073741823
  1897.     lsl r3, r3, #2
  1898.     ldr r2, [fp, #-56]
  1899.     add r3, r2, r3
  1900.     ldr r0, [r3]     
  1901.     ldr r1, .L81+4
  1902.     ldr r2, [fp, #-24]
  1903.     mov r3, r2
  1904.     lsl r3, r3, #1
  1905.     add r3, r3, r2
  1906.     lsl r3, r3, #2
  1907.     add r3, r1, r3
  1908.     add r3, r3, #4
  1909.     ldr r3, [r3]
  1910.     sub r3, r3, #-1073741823
  1911.     lsl r3, r3, #2
  1912.     ldr r2, [fp, #-56]
  1913.     add r3, r2, r3
  1914.     ldr r3, [r3]     
  1915.     mov r1, r3
  1916.     bl  __aeabi_fadd
  1917.     mov r3, r0
  1918.     mov r0, r3
  1919.     ldr r1, .L81+4
  1920.     ldr r2, [fp, #-24]
  1921.     mov r3, r2
  1922.     lsl r3, r3, #1
  1923.     add r3, r3, r2
  1924.     lsl r3, r3, #2
  1925.     add r3, r1, r3
  1926.     add r3, r3, #8
  1927.     ldr r3, [r3]
  1928.     sub r3, r3, #-1073741823
  1929.     lsl r3, r3, #2
  1930.     ldr r2, [fp, #-56]
  1931.     add r3, r2, r3
  1932.     ldr r3, [r3]     
  1933.     mov r1, r3
  1934.     bl  __aeabi_fadd
  1935.     mov r3, r0
  1936.     ldr r1, .L81+8
  1937.     mov r0, r3
  1938.     bl  __aeabi_fdiv
  1939.     mov r3, r0
  1940.     mov r1, r3
  1941.     ldr r3, [fp, #-40]
  1942.     ldr r2, [fp, #-24]
  1943.     str r1, [r3, r2, lsl #2]     
  1944.     ldr r3, [fp, #-24]
  1945.     add r3, r3, #1
  1946.     str r3, [fp, #-24]
  1947. .L72:
  1948.     ldr r3, .L81
  1949.     ldr r3, [r3]
  1950.     ldr r2, [fp, #-24]
  1951.     cmp r2, r3
  1952.     blt .L73
  1953.     mov r3, #0
  1954.     str r3, [fp, #-28]
  1955.     b   .L74
  1956. .L79:
  1957.     ldr r3, [fp, #-40]
  1958.     ldr r2, [fp, #-28]
  1959.     ldr r3, [r3, r2, lsl #2]     
  1960.     str r3, [fp, #-20]   
  1961.     ldr r3, [fp, #-28]
  1962.     str r3, [fp, #-16]
  1963.     ldr r3, [fp, #-28]
  1964.     add r3, r3, #1
  1965.     str r3, [fp, #-32]
  1966.     b   .L75
  1967. .L78:
  1968.     ldr r3, [fp, #-40]
  1969.     ldr r2, [fp, #-32]
  1970.     ldr r3, [r3, r2, lsl #2]     
  1971.     str r3, [fp, #-52]   
  1972.     ldr r1, [fp, #-20]   
  1973.     ldr r0, [fp, #-52]   
  1974.     bl  __aeabi_fcmpgt
  1975.     mov r3, r0
  1976.     cmp r3, #0
  1977.     beq .L76
  1978.     ldr r3, [fp, #-52]   
  1979.     str r3, [fp, #-20]   
  1980.     ldr r3, [fp, #-32]
  1981.     str r3, [fp, #-16]
  1982. .L76:
  1983.     ldr r3, [fp, #-32]
  1984.     add r3, r3, #1
  1985.     str r3, [fp, #-32]
  1986. .L75:
  1987.     ldr r3, .L81
  1988.     ldr r3, [r3]
  1989.     ldr r2, [fp, #-32]
  1990.     cmp r2, r3
  1991.     blt .L78
  1992.     ldr r3, [fp, #-40]
  1993.     ldr r2, [fp, #-28]
  1994.     ldr r3, [r3, r2, lsl #2]     
  1995.     str r3, [fp, #-44]   
  1996.     ldr r3, [fp, #-40]
  1997.     ldr r2, [fp, #-16]
  1998.     ldr r1, [r3, r2, lsl #2]     
  1999.     ldr r3, [fp, #-40]
  2000.     ldr r2, [fp, #-28]
  2001.     str r1, [r3, r2, lsl #2]     
  2002.     ldr r3, [fp, #-40]
  2003.     ldr r2, [fp, #-16]
  2004.     ldr r1, [fp, #-44]   
  2005.     str r1, [r3, r2, lsl #2]     
  2006.     ldr r3, [fp, #-28]
  2007.     lsl r3, r3, #2
  2008.     ldr r2, [fp, #-60]
  2009.     add r3, r2, r3
  2010.     ldr r3, [r3]
  2011.     str r3, [fp, #-48]
  2012.     ldr r3, [fp, #-16]
  2013.     lsl r3, r3, #2
  2014.     ldr r2, [fp, #-60]
  2015.     add r2, r2, r3
  2016.     ldr r3, [fp, #-28]
  2017.     lsl r3, r3, #2
  2018.     ldr r1, [fp, #-60]
  2019.     add r3, r1, r3
  2020.     ldr r2, [r2]
  2021.     str r2, [r3]
  2022.     ldr r3, [fp, #-16]
  2023.     lsl r3, r3, #2
  2024.     ldr r2, [fp, #-60]
  2025.     add r3, r2, r3
  2026.     ldr r2, [fp, #-48]
  2027.     str r2, [r3]
  2028.     ldr r3, [fp, #-28]
  2029.     add r3, r3, #1
  2030.     str r3, [fp, #-28]
  2031. .L74:
  2032.     ldr r3, .L81
  2033.     ldr r3, [r3]
  2034.     ldr r2, [fp, #-28]
  2035.     cmp r2, r3
  2036.     blt .L79
  2037.     mov sp, r4
  2038.     nop
  2039.     sub sp, fp, #8
  2040.      
  2041.     pop {r4, fp, pc}
  2042. .L82:
  2043.     .align  2
  2044. .L81:
  2045.     .word   numFaces
  2046.     .word   faces
  2047.     .word   1077936128
  2048.     .size   depthsort, .-depthsort
  2049.     .align  2
  2050.     .global computeNormals
  2051.     .syntax unified
  2052.     .arm
  2053.     .fpu softvfp
  2054.     .type   computeNormals, %function
  2055. computeNormals:
  2056.     push    {r4, r5, fp, lr}
  2057.     add fp, sp, #12
  2058.     sub sp, sp, #64
  2059.     str r0, [fp, #-72]
  2060.     mov r3, #0
  2061.     str r3, [fp, #-16]
  2062.     b   .L84
  2063. .L85:
  2064.     ldr r1, .L86
  2065.     ldr r2, [fp, #-16]
  2066.     mov r3, r2
  2067.     lsl r3, r3, #1
  2068.     add r3, r3, r2
  2069.     lsl r3, r3, #2
  2070.     add r3, r1, r3
  2071.     ldr r3, [r3]
  2072.     sub r2, r3, #1
  2073.     ldr r1, .L86+4
  2074.     mov r3, r2
  2075.     lsl r3, r3, #1
  2076.     add r3, r3, r2
  2077.     lsl r3, r3, #2
  2078.     add r3, r1, r3
  2079.     ldr r3, [r3]     
  2080.     str r3, [fp, #-20]   
  2081.     ldr r1, .L86
  2082.     ldr r2, [fp, #-16]
  2083.     mov r3, r2
  2084.     lsl r3, r3, #1
  2085.     add r3, r3, r2
  2086.     lsl r3, r3, #2
  2087.     add r3, r1, r3
  2088.     ldr r3, [r3]
  2089.     sub r2, r3, #1
  2090.     ldr r1, .L86+4
  2091.     mov r3, r2
  2092.     lsl r3, r3, #1
  2093.     add r3, r3, r2
  2094.     lsl r3, r3, #2
  2095.     add r3, r1, r3
  2096.     add r3, r3, #4
  2097.     ldr r3, [r3]     
  2098.     str r3, [fp, #-24]   
  2099.     ldr r1, .L86
  2100.     ldr r2, [fp, #-16]
  2101.     mov r3, r2
  2102.     lsl r3, r3, #1
  2103.     add r3, r3, r2
  2104.     lsl r3, r3, #2
  2105.     add r3, r1, r3
  2106.     ldr r3, [r3]
  2107.     sub r2, r3, #1
  2108.     ldr r1, .L86+4
  2109.     mov r3, r2
  2110.     lsl r3, r3, #1
  2111.     add r3, r3, r2
  2112.     lsl r3, r3, #2
  2113.     add r3, r1, r3
  2114.     add r3, r3, #8
  2115.     ldr r3, [r3]     
  2116.     str r3, [fp, #-28]   
  2117.     ldr r1, .L86
  2118.     ldr r2, [fp, #-16]
  2119.     mov r3, r2
  2120.     lsl r3, r3, #1
  2121.     add r3, r3, r2
  2122.     lsl r3, r3, #2
  2123.     add r3, r1, r3
  2124.     add r3, r3, #4
  2125.     ldr r3, [r3]
  2126.     sub r2, r3, #1
  2127.     ldr r1, .L86+4
  2128.     mov r3, r2
  2129.     lsl r3, r3, #1
  2130.     add r3, r3, r2
  2131.     lsl r3, r3, #2
  2132.     add r3, r1, r3
  2133.     ldr r3, [r3]     
  2134.     str r3, [fp, #-32]   
  2135.     ldr r1, .L86
  2136.     ldr r2, [fp, #-16]
  2137.     mov r3, r2
  2138.     lsl r3, r3, #1
  2139.     add r3, r3, r2
  2140.     lsl r3, r3, #2
  2141.     add r3, r1, r3
  2142.     add r3, r3, #4
  2143.     ldr r3, [r3]
  2144.     sub r2, r3, #1
  2145.     ldr r1, .L86+4
  2146.     mov r3, r2
  2147.     lsl r3, r3, #1
  2148.     add r3, r3, r2
  2149.     lsl r3, r3, #2
  2150.     add r3, r1, r3
  2151.     add r3, r3, #4
  2152.     ldr r3, [r3]     
  2153.     str r3, [fp, #-36]   
  2154.     ldr r1, .L86
  2155.     ldr r2, [fp, #-16]
  2156.     mov r3, r2
  2157.     lsl r3, r3, #1
  2158.     add r3, r3, r2
  2159.     lsl r3, r3, #2
  2160.     add r3, r1, r3
  2161.     add r3, r3, #4
  2162.     ldr r3, [r3]
  2163.     sub r2, r3, #1
  2164.     ldr r1, .L86+4
  2165.     mov r3, r2
  2166.     lsl r3, r3, #1
  2167.     add r3, r3, r2
  2168.     lsl r3, r3, #2
  2169.     add r3, r1, r3
  2170.     add r3, r3, #8
  2171.     ldr r3, [r3]     
  2172.     str r3, [fp, #-40]   
  2173.     ldr r1, .L86
  2174.     ldr r2, [fp, #-16]
  2175.     mov r3, r2
  2176.     lsl r3, r3, #1
  2177.     add r3, r3, r2
  2178.     lsl r3, r3, #2
  2179.     add r3, r1, r3
  2180.     add r3, r3, #8
  2181.     ldr r3, [r3]
  2182.     sub r2, r3, #1
  2183.     ldr r1, .L86+4
  2184.     mov r3, r2
  2185.     lsl r3, r3, #1
  2186.     add r3, r3, r2
  2187.     lsl r3, r3, #2
  2188.     add r3, r1, r3
  2189.     ldr r3, [r3]     
  2190.     str r3, [fp, #-44]   
  2191.     ldr r1, .L86
  2192.     ldr r2, [fp, #-16]
  2193.     mov r3, r2
  2194.     lsl r3, r3, #1
  2195.     add r3, r3, r2
  2196.     lsl r3, r3, #2
  2197.     add r3, r1, r3
  2198.     add r3, r3, #8
  2199.     ldr r3, [r3]
  2200.     sub r2, r3, #1
  2201.     ldr r1, .L86+4
  2202.     mov r3, r2
  2203.     lsl r3, r3, #1
  2204.     add r3, r3, r2
  2205.     lsl r3, r3, #2
  2206.     add r3, r1, r3
  2207.     add r3, r3, #4
  2208.     ldr r3, [r3]     
  2209.     str r3, [fp, #-48]   
  2210.     ldr r1, .L86
  2211.     ldr r2, [fp, #-16]
  2212.     mov r3, r2
  2213.     lsl r3, r3, #1
  2214.     add r3, r3, r2
  2215.     lsl r3, r3, #2
  2216.     add r3, r1, r3
  2217.     add r3, r3, #8
  2218.     ldr r3, [r3]
  2219.     sub r2, r3, #1
  2220.     ldr r1, .L86+4
  2221.     mov r3, r2
  2222.     lsl r3, r3, #1
  2223.     add r3, r3, r2
  2224.     lsl r3, r3, #2
  2225.     add r3, r1, r3
  2226.     add r3, r3, #8
  2227.     ldr r3, [r3]     
  2228.     str r3, [fp, #-52]   
  2229.     ldr r1, [fp, #-24]   
  2230.     ldr r0, [fp, #-36]   
  2231.     bl  __aeabi_fsub
  2232.     mov r3, r0
  2233.     mov r4, r3
  2234.     ldr r1, [fp, #-28]   
  2235.     ldr r0, [fp, #-52]   
  2236.     bl  __aeabi_fsub
  2237.     mov r3, r0
  2238.     mov r1, r3
  2239.     mov r0, r4
  2240.     bl  __aeabi_fmul
  2241.     mov r3, r0
  2242.     mov r4, r3
  2243.     ldr r1, [fp, #-28]   
  2244.     ldr r0, [fp, #-40]   
  2245.     bl  __aeabi_fsub
  2246.     mov r3, r0
  2247.     mov r5, r3
  2248.     ldr r1, [fp, #-24]   
  2249.     ldr r0, [fp, #-48]   
  2250.     bl  __aeabi_fsub
  2251.     mov r3, r0
  2252.     mov r1, r3
  2253.     mov r0, r5
  2254.     bl  __aeabi_fmul
  2255.     mov r3, r0
  2256.     mov r1, r3
  2257.     mov r0, r4
  2258.     bl  __aeabi_fsub
  2259.     mov r3, r0
  2260.     str r3, [fp, #-64]   
  2261.     ldr r1, [fp, #-28]   
  2262.     ldr r0, [fp, #-40]   
  2263.     bl  __aeabi_fsub
  2264.     mov r3, r0
  2265.     mov r4, r3
  2266.     ldr r1, [fp, #-20]   
  2267.     ldr r0, [fp, #-44]   
  2268.     bl  __aeabi_fsub
  2269.     mov r3, r0
  2270.     mov r1, r3
  2271.     mov r0, r4
  2272.     bl  __aeabi_fmul
  2273.     mov r3, r0
  2274.     mov r4, r3
  2275.     ldr r1, [fp, #-20]   
  2276.     ldr r0, [fp, #-32]   
  2277.     bl  __aeabi_fsub
  2278.     mov r3, r0
  2279.     mov r5, r3
  2280.     ldr r1, [fp, #-28]   
  2281.     ldr r0, [fp, #-52]   
  2282.     bl  __aeabi_fsub
  2283.     mov r3, r0
  2284.     mov r1, r3
  2285.     mov r0, r5
  2286.     bl  __aeabi_fmul
  2287.     mov r3, r0
  2288.     mov r1, r3
  2289.     mov r0, r4
  2290.     bl  __aeabi_fsub
  2291.     mov r3, r0
  2292.     str r3, [fp, #-60]   
  2293.     ldr r1, [fp, #-20]   
  2294.     ldr r0, [fp, #-32]   
  2295.     bl  __aeabi_fsub
  2296.     mov r3, r0
  2297.     mov r4, r3
  2298.     ldr r1, [fp, #-24]   
  2299.     ldr r0, [fp, #-48]   
  2300.     bl  __aeabi_fsub
  2301.     mov r3, r0
  2302.     mov r1, r3
  2303.     mov r0, r4
  2304.     bl  __aeabi_fmul
  2305.     mov r3, r0
  2306.     mov r4, r3
  2307.     ldr r1, [fp, #-24]   
  2308.     ldr r0, [fp, #-36]   
  2309.     bl  __aeabi_fsub
  2310.     mov r3, r0
  2311.     mov r5, r3
  2312.     ldr r1, [fp, #-20]   
  2313.     ldr r0, [fp, #-44]   
  2314.     bl  __aeabi_fsub
  2315.     mov r3, r0
  2316.     mov r1, r3
  2317.     mov r0, r5
  2318.     bl  __aeabi_fmul
  2319.     mov r3, r0
  2320.     mov r1, r3
  2321.     mov r0, r4
  2322.     bl  __aeabi_fsub
  2323.     mov r3, r0
  2324.     str r3, [fp, #-56]   
  2325.     sub r3, fp, #64
  2326.     ldm r3, {r0, r1, r2}
  2327.     bl  absolute
  2328.     mov r2, r0
  2329.     ldr r3, [fp, #-64]   
  2330.     mov r1, r2
  2331.     mov r0, r3
  2332.     bl  __aeabi_fdiv
  2333.     mov r3, r0
  2334.     str r3, [fp, #-64]   
  2335.     sub r3, fp, #64
  2336.     ldm r3, {r0, r1, r2}
  2337.     bl  absolute
  2338.     mov r2, r0
  2339.     ldr r3, [fp, #-60]   
  2340.     mov r1, r2
  2341.     mov r0, r3
  2342.     bl  __aeabi_fdiv
  2343.     mov r3, r0
  2344.     str r3, [fp, #-60]   
  2345.     sub r3, fp, #64
  2346.     ldm r3, {r0, r1, r2}
  2347.     bl  absolute
  2348.     mov r2, r0
  2349.     ldr r3, [fp, #-56]   
  2350.     mov r1, r2
  2351.     mov r0, r3
  2352.     bl  __aeabi_fdiv
  2353.     mov r3, r0
  2354.     str r3, [fp, #-56]   
  2355.     ldr r2, [fp, #-16]
  2356.     mov r3, r2
  2357.     lsl r3, r3, #1
  2358.     add r3, r3, r2
  2359.     lsl r3, r3, #2
  2360.     mov r2, r3
  2361.     ldr r3, [fp, #-72]
  2362.     add r3, r3, r2
  2363.     mov ip, r3
  2364.     sub r3, fp, #64
  2365.     ldm r3, {r0, r1, r2}
  2366.     stm ip, {r0, r1, r2}
  2367.     ldr r3, [fp, #-16]
  2368.     add r3, r3, #1
  2369.     str r3, [fp, #-16]
  2370. .L84:
  2371.     ldr r3, .L86+8
  2372.     ldr r3, [r3]
  2373.     ldr r2, [fp, #-16]
  2374.     cmp r2, r3
  2375.     blt .L85
  2376.     nop
  2377.     sub sp, fp, #12
  2378.      
  2379.     pop {r4, r5, fp, pc}
  2380. .L87:
  2381.     .align  2
  2382. .L86:
  2383.     .word   faces
  2384.     .word   verts
  2385.     .word   numFaces
  2386.     .size   computeNormals, .-computeNormals
  2387.     .global __aeabi_fcmplt
  2388.     .align  2
  2389.     .global backfaceCull
  2390.     .syntax unified
  2391.     .arm
  2392.     .fpu softvfp
  2393.     .type   backfaceCull, %function
  2394. backfaceCull:
  2395.     sub sp, sp, #16
  2396.     push    {fp, lr}
  2397.     add fp, sp, #4
  2398.     sub sp, sp, #40
  2399.     str r0, [fp, #-32]
  2400.     add r0, fp, #8
  2401.     stm r0, {r1, r2, r3}
  2402.     mov r3, #0
  2403.     str r3, [fp, #-8]
  2404.     b   .L89
  2405. .L93:
  2406.     ldr r0, [fp, #8]     
  2407.     ldr r1, .L96
  2408.     ldr r2, [fp, #-8]
  2409.     mov r3, r2
  2410.     lsl r3, r3, #1
  2411.     add r3, r3, r2
  2412.     lsl r3, r3, #2
  2413.     add r3, r1, r3
  2414.     ldr r3, [r3]
  2415.     sub r2, r3, #1
  2416.     ldr r1, .L96+4
  2417.     mov r3, r2
  2418.     lsl r3, r3, #1
  2419.     add r3, r3, r2
  2420.     lsl r3, r3, #2
  2421.     add r3, r1, r3
  2422.     ldr r3, [r3]     
  2423.     mov r1, r3
  2424.     bl  __aeabi_fsub
  2425.     mov r3, r0
  2426.     str r3, [fp, #-28]   
  2427.     ldr r0, [fp, #12]    
  2428.     ldr r1, .L96
  2429.     ldr r2, [fp, #-8]
  2430.     mov r3, r2
  2431.     lsl r3, r3, #1
  2432.     add r3, r3, r2
  2433.     lsl r3, r3, #2
  2434.     add r3, r1, r3
  2435.     ldr r3, [r3]
  2436.     sub r2, r3, #1
  2437.     ldr r1, .L96+4
  2438.     mov r3, r2
  2439.     lsl r3, r3, #1
  2440.     add r3, r3, r2
  2441.     lsl r3, r3, #2
  2442.     add r3, r1, r3
  2443.     add r3, r3, #4
  2444.     ldr r3, [r3]     
  2445.     mov r1, r3
  2446.     bl  __aeabi_fsub
  2447.     mov r3, r0
  2448.     str r3, [fp, #-24]   
  2449.     ldr r0, [fp, #16]    
  2450.     ldr r1, .L96
  2451.     ldr r2, [fp, #-8]
  2452.     mov r3, r2
  2453.     lsl r3, r3, #1
  2454.     add r3, r3, r2
  2455.     lsl r3, r3, #2
  2456.     add r3, r1, r3
  2457.     ldr r3, [r3]
  2458.     sub r2, r3, #1
  2459.     ldr r1, .L96+4
  2460.     mov r3, r2
  2461.     lsl r3, r3, #1
  2462.     add r3, r3, r2
  2463.     lsl r3, r3, #2
  2464.     add r3, r1, r3
  2465.     add r3, r3, #8
  2466.     ldr r3, [r3]     
  2467.     mov r1, r3
  2468.     bl  __aeabi_fsub
  2469.     mov r3, r0
  2470.     str r3, [fp, #-20]   
  2471.     sub r3, fp, #28
  2472.     ldm r3, {r0, r1, r2}
  2473.     bl  absolute
  2474.     str r0, [fp, #-12]   
  2475.     ldr r3, [fp, #-28]   
  2476.     ldr r1, [fp, #-12]   
  2477.     mov r0, r3
  2478.     bl  __aeabi_fdiv
  2479.     mov r3, r0
  2480.     str r3, [fp, #-28]   
  2481.     ldr r3, [fp, #-24]   
  2482.     ldr r1, [fp, #-12]   
  2483.     mov r0, r3
  2484.     bl  __aeabi_fdiv
  2485.     mov r3, r0
  2486.     str r3, [fp, #-24]   
  2487.     ldr r3, [fp, #-20]   
  2488.     ldr r1, [fp, #-12]   
  2489.     mov r0, r3
  2490.     bl  __aeabi_fdiv
  2491.     mov r3, r0
  2492.     str r3, [fp, #-20]   
  2493.     ldr r2, [fp, #-8]
  2494.     mov r3, r2
  2495.     lsl r3, r3, #1
  2496.     add r3, r3, r2
  2497.     lsl r3, r3, #2
  2498.     mov r2, r3
  2499.     ldr r3, [fp, #-32]
  2500.     add r2, r3, r2
  2501.     mov ip, sp
  2502.     sub r3, fp, #24
  2503.     ldm r3, {r0, r1}
  2504.     stm ip, {r0, r1}
  2505.     ldr r3, [fp, #-28]
  2506.     ldm r2, {r0, r1, r2}
  2507.     bl  dot
  2508.     str r0, [fp, #-16]   
  2509.     mov r1, #0
  2510.     ldr r0, [fp, #-16]   
  2511.     bl  __aeabi_fcmplt
  2512.     mov r3, r0
  2513.     cmp r3, #0
  2514.     beq .L95
  2515.     ldr r3, [fp, #-8]
  2516.     ldr r2, [fp, #28]
  2517.     add r3, r2, r3
  2518.     mov r2, #0
  2519.     strb    r2, [r3]
  2520.     b   .L92
  2521. .L95:
  2522.     ldr r3, [fp, #-8]
  2523.     ldr r2, [fp, #28]
  2524.     add r3, r2, r3
  2525.     mov r2, #1
  2526.     strb    r2, [r3]
  2527. .L92:
  2528.     ldr r3, [fp, #-8]
  2529.     add r3, r3, #1
  2530.     str r3, [fp, #-8]
  2531. .L89:
  2532.     ldr r3, .L96+8
  2533.     ldr r3, [r3]
  2534.     ldr r2, [fp, #-8]
  2535.     cmp r2, r3
  2536.     blt .L93
  2537.     nop
  2538.     sub sp, fp, #4
  2539.      
  2540.     pop {fp, lr}
  2541.     add sp, sp, #16
  2542.     bx  lr
  2543. .L97:
  2544.     .align  2
  2545. .L96:
  2546.     .word   faces
  2547.     .word   verts
  2548.     .word   numFaces
  2549.     .size   backfaceCull, .-backfaceCull
  2550.     .global __aeabi_dmul
  2551.     .align  2
  2552.     .global lightScene
  2553.     .syntax unified
  2554.     .arm
  2555.     .fpu softvfp
  2556.     .type   lightScene, %function
  2557. lightScene:
  2558.     push    {fp, lr}
  2559.     add fp, sp, #4
  2560.     sub sp, sp, #40
  2561.     str r0, [fp, #-24]
  2562.     sub r0, fp, #36
  2563.     stm r0, {r1, r2, r3}
  2564.     ldr r0, [fp, #4]
  2565.     bl  __aeabi_i2f
  2566.     mov r3, r0
  2567.     str r3, [fp, #-16]   
  2568.     ldr r1, .L107
  2569.     ldr r0, [fp, #-16]   
  2570.     bl  __aeabi_fdiv
  2571.     mov r3, r0
  2572.     str r3, [fp, #-16]   
  2573.     mov r3, #0
  2574.     str r3, [fp, #-8]
  2575.     b   .L99
  2576. .L104:
  2577.     ldr r2, [fp, #-8]
  2578.     mov r3, r2
  2579.     lsl r3, r3, #1
  2580.     add r3, r3, r2
  2581.     lsl r3, r3, #2
  2582.     mov r2, r3
  2583.     ldr r3, [fp, #-24]
  2584.     add r2, r3, r2
  2585.     mov ip, sp
  2586.     sub r3, fp, #32
  2587.     ldm r3, {r0, r1}
  2588.     stm ip, {r0, r1}
  2589.     ldr r3, [fp, #-36]
  2590.     ldm r2, {r0, r1, r2}
  2591.     bl  dot
  2592.     mov r3, r0
  2593.     mov r0, r3
  2594.     bl  __aeabi_f2d
  2595.     ldr r2, .L107+4
  2596.     ldr r3, .L107+8
  2597.     bl  __aeabi_dmul
  2598.     mov r2, r0
  2599.     mov r3, r1
  2600.     mov r0, r2
  2601.     mov r1, r3
  2602.     bl  __aeabi_d2f
  2603.     mov r3, r0
  2604.     str r3, [fp, #-12]   
  2605.     mov r1, #0
  2606.     ldr r0, [fp, #-12]   
  2607.     bl  __aeabi_fcmplt
  2608.     mov r3, r0
  2609.     cmp r3, #0
  2610.     beq .L100
  2611.     mov r3, #0
  2612.     str r3, [fp, #-12]   
  2613. .L100:
  2614.     ldr r1, [fp, #-16]   
  2615.     ldr r0, [fp, #-12]   
  2616.     bl  __aeabi_fadd
  2617.     mov r3, r0
  2618.     str r3, [fp, #-12]   
  2619.     mov r1, #1065353216
  2620.     ldr r0, [fp, #-12]   
  2621.     bl  __aeabi_fcmpgt
  2622.     mov r3, r0
  2623.     cmp r3, #0
  2624.     beq .L102
  2625.     mov r3, #1065353216
  2626.     str r3, [fp, #-12]   
  2627. .L102:
  2628.     ldr r3, [fp, #-8]
  2629.     lsl r3, r3, #2
  2630.     ldr r2, [fp, #8]
  2631.     add r3, r2, r3
  2632.     ldr r2, [fp, #-12]   
  2633.     str r2, [r3]     
  2634.     ldr r3, [fp, #-8]
  2635.     add r3, r3, #1
  2636.     str r3, [fp, #-8]
  2637. .L99:
  2638.     ldr r3, .L107+12
  2639.     ldr r3, [r3]
  2640.     ldr r2, [fp, #-8]
  2641.     cmp r2, r3
  2642.     blt .L104
  2643.     nop
  2644.     sub sp, fp, #4
  2645.      
  2646.     pop {fp, pc}
  2647. .L108:
  2648.     .align  2
  2649. .L107:
  2650.     .word   1132396544
  2651.     .word   -1717986918
  2652.     .word   1070176665
  2653.     .word   numFaces
  2654.     .size   lightScene, .-lightScene
  2655.     .align  2
  2656.     .global drawFaces
  2657.     .syntax unified
  2658.     .arm
  2659.     .fpu softvfp
  2660.     .type   drawFaces, %function
  2661. drawFaces:
  2662.     push    {r4, r5, fp, lr}
  2663.     add fp, sp, #12
  2664.     sub sp, sp, #96
  2665.     str r0, [fp, #-80]
  2666.     str r1, [fp, #-84]
  2667.     str r2, [fp, #-88]
  2668.     str r3, [fp, #-92]
  2669.     mov r3, sp
  2670.     mov r4, r3
  2671.     ldr r3, .L114
  2672.     ldr ip, [r3]
  2673.     sub r3, ip, #1
  2674.     str r3, [fp, #-20]
  2675.     mov r3, ip
  2676.     mov r0, r3
  2677.     mov r1, #0
  2678.     mov r2, #0
  2679.     mov r3, #0
  2680.     lsl r3, r1, #5
  2681.     orr r3, r3, r0, lsr #27
  2682.     lsl r2, r0, #5
  2683.     mov r3, ip
  2684.     mov r0, r3
  2685.     mov r1, #0
  2686.     mov r2, #0
  2687.     mov r3, #0
  2688.     lsl r3, r1, #5
  2689.     orr r3, r3, r0, lsr #27
  2690.     lsl r2, r0, #5
  2691.     mov r3, ip
  2692.     lsl r3, r3, #2
  2693.     add r3, r3, #3
  2694.     add r3, r3, #7
  2695.     lsr r3, r3, #3
  2696.     lsl r3, r3, #3
  2697.     sub sp, sp, r3
  2698.     add r3, sp, #16
  2699.     add r3, r3, #3
  2700.     lsr r3, r3, #2
  2701.     lsl r3, r3, #2
  2702.     str r3, [fp, #-16]
  2703.     mov r3, #0
  2704.     str r3, [fp, #-28]
  2705.     b   .L110
  2706. .L111:
  2707.     ldr r3, [fp, #-16]
  2708.     ldr r2, [fp, #-28]
  2709.     ldr r1, [fp, #-28]
  2710.     str r1, [r3, r2, lsl #2]
  2711.     ldr r3, [fp, #-28]
  2712.     add r3, r3, #1
  2713.     str r3, [fp, #-28]
  2714. .L110:
  2715.     ldr r3, .L114
  2716.     ldr r3, [r3]
  2717.     ldr r2, [fp, #-28]
  2718.     cmp r2, r3
  2719.     blt .L111
  2720.     ldr r3, [fp, #-16]
  2721.     mov r1, r3
  2722.     ldr r0, [fp, #-88]
  2723.     bl  depthsort
  2724.     ldr r3, .L114
  2725.     ldr ip, [r3]
  2726.     mov r3, sp
  2727.     mov r5, r3
  2728.     sub r3, ip, #1
  2729.     str r3, [fp, #-32]
  2730.     mov r3, ip
  2731.     mov r0, r3
  2732.     mov r1, #0
  2733.     mov r2, #0
  2734.     mov r3, #0
  2735.     lsl r3, r1, #3
  2736.     orr r3, r3, r0, lsr #29
  2737.     lsl r2, r0, #3
  2738.     mov r3, ip
  2739.     mov r0, r3
  2740.     mov r1, #0
  2741.     mov r2, #0
  2742.     mov r3, #0
  2743.     lsl r3, r1, #3
  2744.     orr r3, r3, r0, lsr #29
  2745.     lsl r2, r0, #3
  2746.     mov r3, ip
  2747.     add r3, r3, #7
  2748.     lsr r3, r3, #3
  2749.     lsl r3, r3, #3
  2750.     sub sp, sp, r3
  2751.     add r3, sp, #16
  2752.     add r3, r3, #0
  2753.     str r3, [fp, #-36]
  2754.     ldr r3, [fp, #-36]
  2755.     str r3, [sp, #8]
  2756.     mov r2, sp
  2757.     add r3, fp, #16
  2758.     ldm r3, {r0, r1}
  2759.     stm r2, {r0, r1}
  2760.     add r3, fp, #4
  2761.     ldm r3, {r1, r2, r3}
  2762.     ldr r0, [fp, #-92]
  2763.     bl  backfaceCull
  2764.     ldr r3, .L114
  2765.     ldr ip, [r3]
  2766.     sub r3, ip, #1
  2767.     str r3, [fp, #-40]
  2768.     mov r3, ip
  2769.     mov r0, r3
  2770.     mov r1, #0
  2771.     mov r2, #0
  2772.     mov r3, #0
  2773.     lsl r3, r1, #5
  2774.     orr r3, r3, r0, lsr #27
  2775.     lsl r2, r0, #5
  2776.     mov r3, ip
  2777.     mov r0, r3
  2778.     mov r1, #0
  2779.     mov r2, #0
  2780.     mov r3, #0
  2781.     lsl r3, r1, #5
  2782.     orr r3, r3, r0, lsr #27
  2783.     lsl r2, r0, #5
  2784.     mov r3, ip
  2785.     lsl r3, r3, #2
  2786.     add r3, r3, #3
  2787.     add r3, r3, #7
  2788.     lsr r3, r3, #3
  2789.     lsl r3, r3, #3
  2790.     sub sp, sp, r3
  2791.     add r3, sp, #16
  2792.     add r3, r3, #3
  2793.     lsr r3, r3, #2
  2794.     lsl r3, r3, #2
  2795.     str r3, [fp, #-44]
  2796.     mov r3, #0
  2797.     str r3, [fp, #-24]
  2798.     b   .L112
  2799. .L113:
  2800.     ldr r3, [fp, #-16]
  2801.     ldr r2, [fp, #-24]
  2802.     ldr r3, [r3, r2, lsl #2]
  2803.     str r3, [fp, #-48]
  2804.     ldr r1, .L114+4
  2805.     ldr r2, [fp, #-48]
  2806.     mov r3, r2
  2807.     lsl r3, r3, #1
  2808.     add r3, r3, r2
  2809.     lsl r3, r3, #2
  2810.     add r3, r1, r3
  2811.     ldr r3, [r3]
  2812.     sub r3, r3, #-536870911
  2813.     lsl r3, r3, #3
  2814.     ldr r2, [fp, #-84]
  2815.     add r2, r2, r3
  2816.     sub r3, fp, #60
  2817.     ldm r2, {r0, r1}
  2818.     stm r3, {r0, r1}
  2819.     ldr r1, .L114+4
  2820.     ldr r2, [fp, #-48]
  2821.     mov r3, r2
  2822.     lsl r3, r3, #1
  2823.     add r3, r3, r2
  2824.     lsl r3, r3, #2
  2825.     add r3, r1, r3
  2826.     add r3, r3, #4
  2827.     ldr r3, [r3]
  2828.     sub r3, r3, #-536870911
  2829.     lsl r3, r3, #3
  2830.     ldr r2, [fp, #-84]
  2831.     add r2, r2, r3
  2832.     sub r3, fp, #68
  2833.     ldm r2, {r0, r1}
  2834.     stm r3, {r0, r1}
  2835.     ldr r1, .L114+4
  2836.     ldr r2, [fp, #-48]
  2837.     mov r3, r2
  2838.     lsl r3, r3, #1
  2839.     add r3, r3, r2
  2840.     lsl r3, r3, #2
  2841.     add r3, r1, r3
  2842.     add r3, r3, #8
  2843.     ldr r3, [r3]
  2844.     sub r3, r3, #-536870911
  2845.     lsl r3, r3, #3
  2846.     ldr r2, [fp, #-84]
  2847.     add r2, r2, r3
  2848.     sub r3, fp, #76
  2849.     ldm r2, {r0, r1}
  2850.     stm r3, {r0, r1}
  2851.     ldr r3, [fp, #-80]
  2852.     ldr r0, [r3, #4]
  2853.     ldr r3, [fp, #-48]
  2854.     and r3, r3, #255
  2855.     lsl r3, r3, #1
  2856.     and r3, r3, #255
  2857.     mvn r3, r3
  2858.     and r1, r3, #255
  2859.     ldr r3, [fp, #-48]
  2860.     and r3, r3, #255
  2861.     lsl r3, r3, #1
  2862.     and r2, r3, #255
  2863.     mov r3, #255
  2864.     bl  SDL_MapRGB
  2865.     mov r3, r0
  2866.     strh    r3, [fp, #-50]
  2867.     ldrh    r3, [fp, #-50]
  2868.     str r3, [sp, #12]
  2869.     add r2, sp, #4
  2870.     sub r3, fp, #76
  2871.     ldm r3, {r0, r1}
  2872.     stm r2, {r0, r1}
  2873.     ldr r3, [fp, #-64]
  2874.     str r3, [sp]
  2875.     ldr r3, [fp, #-68]
  2876.     sub r2, fp, #60
  2877.     ldm r2, {r1, r2}
  2878.     ldr r0, [fp, #-80]
  2879.     bl  stdTriangle
  2880.     ldr r3, [fp, #-24]
  2881.     add r3, r3, #1
  2882.     str r3, [fp, #-24]
  2883. .L112:
  2884.     ldr r3, .L114
  2885.     ldr r3, [r3]
  2886.     ldr r2, [fp, #-24]
  2887.     cmp r2, r3
  2888.     blt .L113
  2889.     mov sp, r5
  2890.     mov sp, r4
  2891.     nop
  2892.     sub sp, fp, #12
  2893.      
  2894.     pop {r4, r5, fp, pc}
  2895. .L115:
  2896.     .align  2
  2897. .L114:
  2898.     .word   numFaces
  2899.     .word   faces
  2900.     .size   drawFaces, .-drawFaces
  2901.     .global __aeabi_dadd
  2902.     .align  2
  2903.     .global main
  2904.     .syntax unified
  2905.     .arm
  2906.     .fpu softvfp
  2907.     .type   main, %function
  2908. main:
  2909.     push    {r4, r5, r6, r7, fp, lr}
  2910.     add fp, sp, #20
  2911.     sub sp, sp, #120
  2912.     mov r3, sp
  2913.     mov r7, r3
  2914.     mov r0, #32
  2915.     bl  SDL_Init
  2916.     bl  hwtype
  2917.     mov r3, r0
  2918.     cmp r3, #0
  2919.     beq .L117
  2920.     mov r2, #16
  2921.     b   .L118
  2922. .L117:
  2923.     mov r2, #8
  2924. .L118:
  2925.     mov r3, #0
  2926.     mov r1, #240
  2927.     mov r0, #320
  2928.     bl  SDL_SetVideoMode
  2929.     str r0, [fp, #-24]
  2930.     mov r3, #0
  2931.     str r3, [fp, #-88]   
  2932.     mov r3, #0
  2933.     str r3, [fp, #-84]   
  2934.     ldr r3, .L122
  2935.     str r3, [fp, #-80]   
  2936.     mov r3, #0
  2937.     str r3, [fp, #-76]   
  2938.     mov r3, #0
  2939.     str r3, [fp, #-72]   
  2940.     ldr r3, .L122+4
  2941.     ldr ip, [r3]
  2942.     sub r3, ip, #1
  2943.     str r3, [fp, #-32]
  2944.     mov r3, ip
  2945.     mov r0, r3
  2946.     mov r1, #0
  2947.     mov r2, #0
  2948.     mov r3, #0
  2949.     lsl r3, r1, #6
  2950.     orr r3, r3, r0, lsr #26
  2951.     lsl r2, r0, #6
  2952.     mov r3, ip
  2953.     mov r0, r3
  2954.     mov r1, #0
  2955.     mov r2, #0
  2956.     mov r3, #0
  2957.     lsl r3, r1, #6
  2958.     orr r3, r3, r0, lsr #26
  2959.     lsl r2, r0, #6
  2960.     mov r3, ip
  2961.     lsl r3, r3, #3
  2962.     add r3, r3, #3
  2963.     add r3, r3, #7
  2964.     lsr r3, r3, #3
  2965.     lsl r3, r3, #3
  2966.     sub sp, sp, r3
  2967.     add r3, sp, #40
  2968.     add r3, r3, #3
  2969.     lsr r3, r3, #2
  2970.     lsl r3, r3, #2
  2971.     str r3, [fp, #-36]
  2972.     ldr r3, .L122+4
  2973.     ldr ip, [r3]
  2974.     sub r3, ip, #1
  2975.     str r3, [fp, #-40]
  2976.     mov r3, ip
  2977.     mov r0, r3
  2978.     mov r1, #0
  2979.     mov r2, #0
  2980.     mov r3, #0
  2981.     lsl r3, r1, #5
  2982.     orr r3, r3, r0, lsr #27
  2983.     lsl r2, r0, #5
  2984.     mov r3, ip
  2985.     mov r0, r3
  2986.     mov r1, #0
  2987.     mov r2, #0
  2988.     mov r3, #0
  2989.     lsl r3, r1, #5
  2990.     orr r3, r3, r0, lsr #27
  2991.     lsl r2, r0, #5
  2992.     mov r3, ip
  2993.     lsl r3, r3, #2
  2994.     add r3, r3, #3
  2995.     add r3, r3, #7
  2996.     lsr r3, r3, #3
  2997.     lsl r3, r3, #3
  2998.     sub sp, sp, r3
  2999.     add r3, sp, #40
  3000.     add r3, r3, #3
  3001.     lsr r3, r3, #2
  3002.     lsl r3, r3, #2
  3003.     str r3, [fp, #-44]
  3004.     ldr r3, .L122+8
  3005.     ldr ip, [r3]
  3006.     sub r3, ip, #1
  3007.     str r3, [fp, #-48]
  3008.     mov r3, ip
  3009.     mov r0, r3
  3010.     mov r1, #0
  3011.     mov r4, r0
  3012.     mov r5, r1
  3013.     adds    r2, r4, r4
  3014.     adc r3, r5, r5
  3015.     mov r4, r2
  3016.     mov r5, r3
  3017.     adds    r4, r4, r0
  3018.     adc r5, r5, r1
  3019.     mov r0, #0
  3020.     mov r1, #0
  3021.     lsl r1, r5, #5
  3022.     orr r1, r1, r4, lsr #27
  3023.     lsl r0, r4, #5
  3024.     mov r4, r0
  3025.     mov r5, r1
  3026.     mov r2, ip
  3027.     mov r3, r2
  3028.     lsl r3, r3, #1
  3029.     add r3, r3, r2
  3030.     lsl r3, r3, #2
  3031.     mov r3, ip
  3032.     mov r0, r3
  3033.     mov r1, #0
  3034.     mov r4, r0
  3035.     mov r5, r1
  3036.     adds    r2, r4, r4
  3037.     adc r3, r5, r5
  3038.     mov r4, r2
  3039.     mov r5, r3
  3040.     adds    r4, r4, r0
  3041.     adc r5, r5, r1
  3042.     mov r0, #0
  3043.     mov r1, #0
  3044.     lsl r1, r5, #5
  3045.     orr r1, r1, r4, lsr #27
  3046.     lsl r0, r4, #5
  3047.     mov r4, r0
  3048.     mov r5, r1
  3049.     mov r2, ip
  3050.     mov r3, r2
  3051.     lsl r3, r3, #1
  3052.     add r3, r3, r2
  3053.     lsl r3, r3, #2
  3054.     add r3, r3, #3
  3055.     add r3, r3, #7
  3056.     lsr r3, r3, #3
  3057.     lsl r3, r3, #3
  3058.     sub sp, sp, r3
  3059.     add r3, sp, #40
  3060.     add r3, r3, #3
  3061.     lsr r3, r3, #2
  3062.     lsl r3, r3, #2
  3063.     str r3, [fp, #-52]
  3064.     ldr r3, [fp, #-52]
  3065.     mov r0, r3
  3066.     bl  computeNormals
  3067.     mov r3, #1
  3068.     strb    r3, [fp, #-25]
  3069.     ldr r3, .L122+12
  3070.     str r3, [fp, #-56]   
  3071.     mov r3, #0
  3072.     str r3, [fp, #-100]  
  3073.     mov r3, #0
  3074.     str r3, [fp, #-96]   
  3075.     ldr r3, .L122+16
  3076.     str r3, [fp, #-92]   
  3077.     mov r3, #0
  3078.     str r3, [fp, #-60]   
  3079.     mov r3, #0
  3080.     str r3, [fp, #-64]   
  3081.     sub r3, fp, #100
  3082.     mov r0, r3
  3083.     bl  normalize
  3084.     mov r3, #150
  3085.     str r3, [fp, #-68]
  3086.     b   .L119
  3087. .L120:
  3088.     ldr r3, [fp, #-24]
  3089.     ldr r0, [r3, #4]
  3090.     mov r3, #0
  3091.     mov r2, #0
  3092.     mov r1, #0
  3093.     bl  SDL_MapRGB
  3094.     mov r3, r0
  3095.     mov r2, r3
  3096.     mov r1, #0
  3097.     ldr r0, [fp, #-24]
  3098.     bl  SDL_FillRect
  3099.     ldr r3, [fp, #-36]
  3100.     ldr r2, [fp, #-44]
  3101.     str r2, [sp, #8]
  3102.     str r3, [sp, #4]
  3103.     ldr r3, [fp, #-72]
  3104.     str r3, [sp]
  3105.     sub r3, fp, #88
  3106.     ldm r3, {r0, r1, r2, r3}
  3107.     bl  calculate
  3108.     ldr r4, [fp, #-36]
  3109.     ldr r5, [fp, #-44]
  3110.     ldr r6, [fp, #-52]
  3111.     ldr r3, [fp, #-68]
  3112.     str r3, [sp, #32]
  3113.     add ip, sp, #20
  3114.     sub r3, fp, #100
  3115.     ldm r3, {r0, r1, r2}
  3116.     stm ip, {r0, r1, r2}
  3117.     mov lr, sp
  3118.     sub ip, fp, #88
  3119.     ldmia   ip!, {r0, r1, r2, r3}
  3120.     stmia   lr!, {r0, r1, r2, r3}
  3121.     ldr r3, [ip]
  3122.     str r3, [lr]
  3123.     mov r3, r6
  3124.     mov r2, r5
  3125.     mov r1, r4
  3126.     ldr r0, [fp, #-24]
  3127.     bl  drawFaces
  3128.     ldr r0, [fp, #-24]
  3129.     bl  SDL_Flip
  3130.     ldr r3, [fp, #-72]   
  3131.     mov r0, r3
  3132.     bl  __aeabi_f2d
  3133.     ldr r2, .L122+20
  3134.     ldr r3, .L122+24
  3135.     bl  __aeabi_dadd
  3136.     mov r2, r0
  3137.     mov r3, r1
  3138.     mov r0, r2
  3139.     mov r1, r3
  3140.     bl  __aeabi_d2f
  3141.     mov r3, r0
  3142.     str r3, [fp, #-72]   
  3143.     ldr r3, [fp, #-76]   
  3144.     mov r0, r3
  3145.     bl  __aeabi_f2d
  3146.     ldr r2, .L122+20
  3147.     ldr r3, .L122+28
  3148.     bl  __aeabi_dadd
  3149.     mov r2, r0
  3150.     mov r3, r1
  3151.     mov r0, r2
  3152.     mov r1, r3
  3153.     bl  __aeabi_d2f
  3154.     mov r3, r0
  3155.     str r3, [fp, #-76]   
  3156.     ldr r3, [fp, #-56]
  3157.     eor r3, r3, #-2147483648
  3158.     mov r0, r3
  3159.     bl  __aeabi_f2d
  3160.     mov r4, r0
  3161.     mov r5, r1
  3162.     ldr r3, [fp, #-72]   
  3163.     mov r0, r3
  3164.     bl  __aeabi_f2d
  3165.     mov r2, r0
  3166.     mov r3, r1
  3167.     mov r0, r2
  3168.     mov r1, r3
  3169.     bl  sin
  3170.     mov r2, r0
  3171.     mov r3, r1
  3172.     mov r0, r4
  3173.     mov r1, r5
  3174.     bl  __aeabi_dmul
  3175.     mov r2, r0
  3176.     mov r3, r1
  3177.     mov r4, r2
  3178.     mov r5, r3
  3179.     ldr r3, [fp, #-76]   
  3180.     mov r0, r3
  3181.     bl  __aeabi_f2d
  3182.     mov r2, r0
  3183.     mov r3, r1
  3184.     mov r0, r2
  3185.     mov r1, r3
  3186.     bl  cos
  3187.     mov r2, r0
  3188.     mov r3, r1
  3189.     mov r0, r4
  3190.     mov r1, r5
  3191.     bl  __aeabi_dmul
  3192.     mov r2, r0
  3193.     mov r3, r1
  3194.     mov r0, r2
  3195.     mov r1, r3
  3196.     bl  __aeabi_d2f
  3197.     mov r3, r0
  3198.     str r3, [fp, #-88]   
  3199.     ldr r3, [fp, #-56]
  3200.     eor r3, r3, #-2147483648
  3201.     mov r0, r3
  3202.     bl  __aeabi_f2d
  3203.     mov r4, r0
  3204.     mov r5, r1
  3205.     ldr r3, [fp, #-72]   
  3206.     mov r0, r3
  3207.     bl  __aeabi_f2d
  3208.     mov r2, r0
  3209.     mov r3, r1
  3210.     mov r0, r2
  3211.     mov r1, r3
  3212.     bl  cos
  3213.     mov r2, r0
  3214.     mov r3, r1
  3215.     mov r0, r4
  3216.     mov r1, r5
  3217.     bl  __aeabi_dmul
  3218.     mov r2, r0
  3219.     mov r3, r1
  3220.     mov r4, r2
  3221.     mov r5, r3
  3222.     ldr r3, [fp, #-76]   
  3223.     mov r0, r3
  3224.     bl  __aeabi_f2d
  3225.     mov r2, r0
  3226.     mov r3, r1
  3227.     mov r0, r2
  3228.     mov r1, r3
  3229.     bl  cos
  3230.     mov r2, r0
  3231.     mov r3, r1
  3232.     mov r0, r4
  3233.     mov r1, r5
  3234.     bl  __aeabi_dmul
  3235.     mov r2, r0
  3236.     mov r3, r1
  3237.     mov r0, r2
  3238.     mov r1, r3
  3239.     bl  __aeabi_d2f
  3240.     mov r3, r0
  3241.     str r3, [fp, #-80]   
  3242.     ldr r3, [fp, #-56]
  3243.     eor r3, r3, #-2147483648
  3244.     mov r0, r3
  3245.     bl  __aeabi_f2d
  3246.     mov r4, r0
  3247.     mov r5, r1
  3248.     ldr r3, [fp, #-76]   
  3249.     mov r0, r3
  3250.     bl  __aeabi_f2d
  3251.     mov r2, r0
  3252.     mov r3, r1
  3253.     mov r0, r2
  3254.     mov r1, r3
  3255.     bl  sin
  3256.     mov r2, r0
  3257.     mov r3, r1
  3258.     mov r0, r4
  3259.     mov r1, r5
  3260.     bl  __aeabi_dmul
  3261.     mov r2, r0
  3262.     mov r3, r1
  3263.     mov r0, r2
  3264.     mov r1, r3
  3265.     bl  __aeabi_d2f
  3266.     mov r3, r0
  3267.     str r3, [fp, #-84]   
  3268.     ldr r0, .L122+32
  3269.     bl  isKeyPressed
  3270.     mov r3, r0
  3271.     cmp r3, #0
  3272.     beq .L119
  3273.     mov r3, #0
  3274.     strb    r3, [fp, #-25]
  3275. .L119:
  3276.     ldrb    r3, [fp, #-25]
  3277.     cmp r3, #0
  3278.     bne .L120
  3279.     bl  SDL_Quit
  3280.     mov r3, #0
  3281.     mov sp, r7
  3282.     mov r0, r3
  3283.     sub sp, fp, #20
  3284.      
  3285.     pop {r4, r5, r6, r7, fp, pc}
  3286. .L123:
  3287.     .align  2
  3288. .L122:
  3289.     .word   -1063256064
  3290.     .word   numVerts
  3291.     .word   numFaces
  3292.     .word   1084227584
  3293.     .word   -1065353216
  3294.     .word   1202590843
  3295.     .word   1065646817
  3296.     .word   1064598241
  3297.     .word   KEY_NSPIRE_ESC
  3298.     .size   main, .-main
Advertisement
Add Comment
Please, Sign In to add comment