SHARE
TWEET

swshcrypto.s

a guest Dec 10th, 2019 149 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .cpu arm7tdmi
  2.     .eabi_attribute 20, 1   @ Tag_ABI_FP_denormal
  3.     .eabi_attribute 21, 1   @ Tag_ABI_FP_exceptions
  4.     .eabi_attribute 23, 3   @ Tag_ABI_FP_number_model
  5.     .eabi_attribute 24, 1   @ Tag_ABI_align8_needed
  6.     .eabi_attribute 25, 1   @ Tag_ABI_align8_preserved
  7.     .eabi_attribute 26, 1   @ Tag_ABI_enum_size
  8.     .eabi_attribute 30, 6   @ Tag_ABI_optimization_goals
  9.     .eabi_attribute 34, 0   @ Tag_CPU_unaligned_access
  10.     .eabi_attribute 18, 4   @ Tag_ABI_PCS_wchar_t
  11.     .file   "swshcrypto.cpp"
  12. @ GNU C++17 (devkitARM release 53) version 9.1.0 (arm-none-eabi)
  13. @   compiled by GNU C version 4.9.2, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version isl-0.15-GMP
  14.  
  15. @ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  16. @ options passed:  -I ../include/utils -D__USES_INITFINI__ swshcrypto.cpp
  17. @ -mcpu=arm7tdmi -marm -march=armv4t -std=gnu++17 -fverbose-asm
  18. @ options enabled:  -faggressive-loop-optimizations -fassume-phsa
  19. @ -fauto-inc-dec -fcommon -fdelete-null-pointer-checks -fdwarf2-cfi-asm
  20. @ -fearly-inlining -feliminate-unused-debug-types -fexceptions
  21. @ -ffp-int-builtin-inexact -ffunction-cse -fgcse-lm -fgnu-runtime
  22. @ -fgnu-unique -fident -finline-atomics -fipa-stack-alignment
  23. @ -fira-hoist-pressure -fira-share-save-slots -fira-share-spill-slots
  24. @ -fivopts -fkeep-static-consts -fleading-underscore -flifetime-dse
  25. @ -flto-odr-type-merging -fmath-errno -fmerge-debug-strings -fpeephole
  26. @ -fplt -fprefetch-loop-arrays -freg-struct-return
  27. @ -fsched-critical-path-heuristic -fsched-dep-count-heuristic
  28. @ -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
  29. @ -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
  30. @ -fsched-stalled-insns-dep -fsemantic-interposition -fshow-column
  31. @ -fshrink-wrap-separate -fsigned-zeros -fsplit-ivs-in-unroller
  32. @ -fssa-backprop -fstdarg-opt -fstrict-volatile-bitfields -fsync-libcalls
  33. @ -ftrapping-math -ftree-cselim -ftree-forwprop -ftree-loop-if-convert
  34. @ -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
  35. @ -ftree-parallelize-loops= -ftree-phiprop -ftree-reassoc -ftree-scev-cprop
  36. @ -funit-at-a-time -fverbose-asm -fzero-initialized-in-bss -marm -mbe32
  37. @ -mlittle-endian -mpic-data-is-text-relative -msched-prolog
  38. @ -mthumb-interwork -mvectorize-with-neon-quad
  39.  
  40.     .text
  41.     .section    .text._ZnwjPv,"axG",%progbits,_ZnwjPv,comdat
  42.     .align  2
  43.     .weak   _ZnwjPv
  44.     .arch armv4t
  45.     .syntax unified
  46.     .arm
  47.     .fpu softvfp
  48.     .type   _ZnwjPv, %function
  49. _ZnwjPv:
  50.     .fnstart
  51. .LFB362:
  52.     @ Function supports interworking.
  53.     @ args = 0, pretend = 0, frame = 8
  54.     @ frame_needed = 1, uses_anonymous_args = 0
  55.     @ link register save eliminated.
  56.     str fp, [sp, #-4]!  @,
  57.     add fp, sp, #0  @,,
  58.     sub sp, sp, #12 @,,
  59.     str r0, [fp, #-8]   @ D.13384, D.13384
  60.     str r1, [fp, #-12]  @ __p, __p
  61. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/new:174: { return __p; }
  62.     ldr r3, [fp, #-12]  @ _2, __p
  63. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/new:174: { return __p; }
  64.     mov r0, r3  @, <retval>
  65.     add sp, fp, #0  @,,
  66.     @ sp needed @
  67.     ldr fp, [sp], #4    @,
  68.     bx  lr  @
  69.     .cantunwind
  70.     .fnend
  71.     .size   _ZnwjPv, .-_ZnwjPv
  72.     .text
  73.     .align  2
  74.     .syntax unified
  75.     .arm
  76.     .fpu softvfp
  77.     .type   _ZL20__gthread_key_deletei, %function
  78. _ZL20__gthread_key_deletei:
  79.     .fnstart
  80. .LFB581:
  81.     @ Function supports interworking.
  82.     @ args = 0, pretend = 0, frame = 8
  83.     @ frame_needed = 1, uses_anonymous_args = 0
  84.     @ link register save eliminated.
  85.     str fp, [sp, #-4]!  @,
  86.     add fp, sp, #0  @,,
  87.     sub sp, sp, #12 @,,
  88.     str r0, [fp, #-8]   @ __key, __key
  89. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/arm-none-eabi/bits/gthr-default.h:231:   return 0;
  90.     mov r3, #0  @ _1,
  91. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/arm-none-eabi/bits/gthr-default.h:232: }
  92.     mov r0, r3  @, <retval>
  93.     add sp, fp, #0  @,,
  94.     @ sp needed @
  95.     ldr fp, [sp], #4    @,
  96.     bx  lr  @
  97.     .cantunwind
  98.     .fnend
  99.     .size   _ZL20__gthread_key_deletei, .-_ZL20__gthread_key_deletei
  100.     .section    .rodata
  101.     .type   _ZN9__gnu_cxxL21__default_lock_policyE, %object
  102.     .size   _ZN9__gnu_cxxL21__default_lock_policyE, 1
  103. _ZN9__gnu_cxxL21__default_lock_policyE:
  104.     .space  1
  105.     .section    .text._ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv,"axG",%progbits,_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv,comdat
  106.     .align  2
  107.     .weak   _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv
  108.     .syntax unified
  109.     .arm
  110.     .fpu softvfp
  111.     .type   _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv, %function
  112. _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv:
  113.     .fnstart
  114. .LFB1775:
  115.     @ Function supports interworking.
  116.     @ args = 0, pretend = 0, frame = 8
  117.     @ frame_needed = 1, uses_anonymous_args = 0
  118.     @ link register save eliminated.
  119.     str fp, [sp, #-4]!  @,
  120.     add fp, sp, #0  @,,
  121.     sub sp, sp, #12 @,,
  122.     str r0, [fp, #-8]   @ this, this
  123. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:304:     { ++_M_use_count; }
  124.     ldr r3, [fp, #-8]   @ tmp112, this
  125.     ldr r3, [r3, #4]    @ _1, this_4(D)->_M_use_count
  126. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:304:     { ++_M_use_count; }
  127.     add r2, r3, #1  @ _2, _1,
  128.     ldr r3, [fp, #-8]   @ tmp113, this
  129.     str r2, [r3, #4]    @ _2, this_4(D)->_M_use_count
  130. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:304:     { ++_M_use_count; }
  131.     nop
  132.     add sp, fp, #0  @,,
  133.     @ sp needed @
  134.     ldr fp, [sp], #4    @,
  135.     bx  lr  @
  136.     .cantunwind
  137.     .fnend
  138.     .size   _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv, .-_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv
  139.     .section    .text._ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv,"axG",%progbits,_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv,comdat
  140.     .align  2
  141.     .weak   _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv
  142.     .syntax unified
  143.     .arm
  144.     .fpu softvfp
  145.     .type   _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv, %function
  146. _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv:
  147.     .fnstart
  148. .LFB1776:
  149.     @ Function supports interworking.
  150.     @ args = 0, pretend = 0, frame = 8
  151.     @ frame_needed = 1, uses_anonymous_args = 0
  152.     push    {fp, lr}    @
  153.     add fp, sp, #4  @,,
  154.     sub sp, sp, #8  @,,
  155.     str r0, [fp, #-8]   @ this, this
  156. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:310:       if (--_M_use_count == 0)
  157.     ldr r3, [fp, #-8]   @ tmp124, this
  158.     ldr r3, [r3, #4]    @ _1, this_15(D)->_M_use_count
  159. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:310:       if (--_M_use_count == 0)
  160.     sub r2, r3, #1  @ _2, _1,
  161. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:310:       if (--_M_use_count == 0)
  162.     ldr r3, [fp, #-8]   @ tmp125, this
  163.     str r2, [r3, #4]    @ _2, this_15(D)->_M_use_count
  164. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:310:       if (--_M_use_count == 0)
  165.     ldr r3, [fp, #-8]   @ tmp126, this
  166.     ldr r3, [r3, #4]    @ _3, this_15(D)->_M_use_count
  167. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:310:       if (--_M_use_count == 0)
  168.     cmp r3, #0  @ _3,
  169.     moveq   r3, #1  @ tmp128,
  170.     movne   r3, #0  @ tmp128,
  171.     and r3, r3, #255    @ retval.11_17, tmp127,
  172. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:310:       if (--_M_use_count == 0)
  173.     cmp r3, #0  @ retval.11_17,
  174.     beq .L8     @,
  175. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:312:           _M_dispose();
  176.     ldr r3, [fp, #-8]   @ tmp129, this
  177.     ldr r3, [r3]    @ _4, this_15(D)->_vptr._Sp_counted_base
  178.     add r3, r3, #8  @ _5, _4,
  179.     ldr r3, [r3]    @ _6, *_5
  180. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:312:           _M_dispose();
  181.     ldr r0, [fp, #-8]   @, this
  182.     mov lr, pc
  183.     bx  r3      @ _6
  184. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:313:           if (--_M_weak_count == 0)
  185.     ldr r3, [fp, #-8]   @ tmp130, this
  186.     ldr r3, [r3, #8]    @ _7, this_15(D)->_M_weak_count
  187. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:313:           if (--_M_weak_count == 0)
  188.     sub r2, r3, #1  @ _8, _7,
  189. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:313:           if (--_M_weak_count == 0)
  190.     ldr r3, [fp, #-8]   @ tmp131, this
  191.     str r2, [r3, #8]    @ _8, this_15(D)->_M_weak_count
  192. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:313:           if (--_M_weak_count == 0)
  193.     ldr r3, [fp, #-8]   @ tmp132, this
  194.     ldr r3, [r3, #8]    @ _9, this_15(D)->_M_weak_count
  195. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:313:           if (--_M_weak_count == 0)
  196.     cmp r3, #0  @ _9,
  197.     moveq   r3, #1  @ tmp134,
  198.     movne   r3, #0  @ tmp134,
  199.     and r3, r3, #255    @ retval.12_20, tmp133,
  200. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:313:           if (--_M_weak_count == 0)
  201.     cmp r3, #0  @ retval.12_20,
  202.     beq .L8     @,
  203. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:314:             _M_destroy();
  204.     ldr r3, [fp, #-8]   @ tmp135, this
  205.     ldr r3, [r3]    @ _10, this_15(D)->_vptr._Sp_counted_base
  206.     add r3, r3, #12 @ _11, _10,
  207.     ldr r3, [r3]    @ _12, *_11
  208. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:314:             _M_destroy();
  209.     ldr r0, [fp, #-8]   @, this
  210.     mov lr, pc
  211.     bx  r3      @ _12
  212. .L8:
  213. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:316:     }
  214.     nop
  215.     sub sp, fp, #4  @,,
  216.     @ sp needed @
  217.     pop {fp, lr}    @
  218.     bx  lr  @
  219.     .cantunwind
  220.     .fnend
  221.     .size   _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv, .-_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv
  222.     .section    .rodata
  223.     .align  2
  224.     .type   _ZN6__pstl9execution2v1L3seqE, %object
  225.     .size   _ZN6__pstl9execution2v1L3seqE, 1
  226. _ZN6__pstl9execution2v1L3seqE:
  227.     .space  1
  228.     .align  2
  229.     .type   _ZN6__pstl9execution2v1L3parE, %object
  230.     .size   _ZN6__pstl9execution2v1L3parE, 1
  231. _ZN6__pstl9execution2v1L3parE:
  232.     .space  1
  233.     .align  2
  234.     .type   _ZN6__pstl9execution2v1L9par_unseqE, %object
  235.     .size   _ZN6__pstl9execution2v1L9par_unseqE, 1
  236. _ZN6__pstl9execution2v1L9par_unseqE:
  237.     .space  1
  238.     .align  2
  239.     .type   _ZN6__pstl9execution2v1L5unseqE, %object
  240.     .size   _ZN6__pstl9execution2v1L5unseqE, 1
  241. _ZN6__pstl9execution2v1L5unseqE:
  242.     .space  1
  243.     .section    .text._ZN7SCBlockC2EPh,"axG",%progbits,_ZN7SCBlockC5EPh,comdat
  244.     .align  2
  245.     .weak   _ZN7SCBlockC2EPh
  246.     .syntax unified
  247.     .arm
  248.     .fpu softvfp
  249.     .type   _ZN7SCBlockC2EPh, %function
  250. _ZN7SCBlockC2EPh:
  251.     .fnstart
  252. .LFB2473:
  253.     @ Function supports interworking.
  254.     @ args = 0, pretend = 0, frame = 8
  255.     @ frame_needed = 1, uses_anonymous_args = 0
  256.     @ link register save eliminated.
  257.     str fp, [sp, #-4]!  @,
  258.     add fp, sp, #0  @,,
  259.     sub sp, sp, #12 @,,
  260.     str r0, [fp, #-8]   @ this, this
  261.     str r1, [fp, #-12]  @ data, data
  262. @ swshcrypto.hpp:71:     SCBlock(u8* data) : data(data) {}
  263.     ldr r3, [fp, #-8]   @ tmp112, this
  264.     ldr r2, [fp, #-12]  @ tmp113, data
  265.     str r2, [r3]    @ tmp113, this_2(D)->data
  266. @ swshcrypto.hpp:71:     SCBlock(u8* data) : data(data) {}
  267.     ldr r3, [fp, #-8]   @ _6, this
  268.     mov r0, r3  @, <retval>
  269.     add sp, fp, #0  @,,
  270.     @ sp needed @
  271.     ldr fp, [sp], #4    @,
  272.     bx  lr  @
  273.     .cantunwind
  274.     .fnend
  275.     .size   _ZN7SCBlockC2EPh, .-_ZN7SCBlockC2EPh
  276.     .weak   _ZN7SCBlockC1EPh
  277.     .set    _ZN7SCBlockC1EPh,_ZN7SCBlockC2EPh
  278.     .section    .text._ZN7SCBlock17encryptedDataSizeEv,"axG",%progbits,_ZN7SCBlock17encryptedDataSizeEv,comdat
  279.     .align  2
  280.     .weak   _ZN7SCBlock17encryptedDataSizeEv
  281.     .syntax unified
  282.     .arm
  283.     .fpu softvfp
  284.     .type   _ZN7SCBlock17encryptedDataSizeEv, %function
  285. _ZN7SCBlock17encryptedDataSizeEv:
  286.     .fnstart
  287. .LFB2475:
  288.     @ Function supports interworking.
  289.     @ args = 0, pretend = 0, frame = 16
  290.     @ frame_needed = 1, uses_anonymous_args = 0
  291.     push    {r4, fp, lr}    @
  292.     .save {r4, fp, lr}
  293.     .setfp fp, sp, #8
  294.     add fp, sp, #8  @,,
  295.     .pad #20
  296.     sub sp, sp, #20 @,,
  297.     str r0, [fp, #-24]  @ this, this
  298. @ swshcrypto.hpp:85:         constexpr int baseSize = 4 + 1; // key + type
  299.     mov r3, #5  @ tmp120,
  300.     str r3, [fp, #-16]  @ tmp120, baseSize
  301. @ swshcrypto.hpp:86:         switch (type)
  302.     ldr r3, [fp, #-24]  @ tmp121, this
  303.     ldrb    r3, [r3, #8]    @ zero_extendqisi2  @ _1, this_13(D)->type
  304.     sub r3, r3, #1  @ tmp122, _1,
  305.     cmp r3, #16 @ tmp122,
  306.     ldrls   pc, [pc, r3, asl #2]    @ tmp122
  307.     b   .L12    @
  308. .L14:
  309.     .word   .L17
  310.     .word   .L17
  311.     .word   .L17
  312.     .word   .L16
  313.     .word   .L15
  314.     .word   .L12
  315.     .word   .L12
  316.     .word   .L13
  317.     .word   .L13
  318.     .word   .L13
  319.     .word   .L13
  320.     .word   .L13
  321.     .word   .L13
  322.     .word   .L13
  323.     .word   .L13
  324.     .word   .L13
  325.     .word   .L13
  326. .L17:
  327. @ swshcrypto.hpp:91:                 return baseSize;
  328.     mov r3, #5  @ _9,
  329.     b   .L18        @
  330. .L16:
  331. @ swshcrypto.hpp:93:                 return baseSize + 4 + dataLength;
  332.     ldr r3, [fp, #-24]  @ tmp123, this
  333.     ldr r3, [r3, #4]    @ _2, this_13(D)->dataLength
  334.     add r3, r3, #9  @ _9, _2,
  335.     b   .L18        @
  336. .L15:
  337. @ swshcrypto.hpp:95:                 return baseSize + 5 + dataLength * arrayEntrySize(subtype);
  338.     ldr r3, [fp, #-24]  @ tmp124, this
  339.     ldr r4, [r3, #4]    @ _3, this_13(D)->dataLength
  340. @ swshcrypto.hpp:95:                 return baseSize + 5 + dataLength * arrayEntrySize(subtype);
  341.     ldr r3, [fp, #-24]  @ tmp125, this
  342.     ldrb    r3, [r3, #9]    @ zero_extendqisi2  @ _4, this_13(D)->subtype
  343.     mov r0, r3  @, _4
  344.     bl  _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE       @
  345.     mov r3, r0  @ _5,
  346. @ swshcrypto.hpp:95:                 return baseSize + 5 + dataLength * arrayEntrySize(subtype);
  347.     mul r3, r4, r3  @ _6, _3, _6
  348. @ swshcrypto.hpp:95:                 return baseSize + 5 + dataLength * arrayEntrySize(subtype);
  349.     add r3, r3, #10 @ _9, _6,
  350.     b   .L18        @
  351. .L13:
  352. @ swshcrypto.hpp:106:                 return baseSize + arrayEntrySize(type);
  353.     ldr r3, [fp, #-24]  @ tmp126, this
  354.     ldrb    r3, [r3, #8]    @ zero_extendqisi2  @ _7, this_13(D)->type
  355.     mov r0, r3  @, _7
  356.     bl  _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE       @
  357.     mov r3, r0  @ _8,
  358. @ swshcrypto.hpp:106:                 return baseSize + arrayEntrySize(type);
  359.     add r3, r3, #5  @ _9, _8,
  360.     b   .L18        @
  361. .L12:
  362. @ swshcrypto.hpp:109:                 std::abort();
  363.     bl  abort       @
  364. .L18:
  365. @ swshcrypto.hpp:111:     }
  366.     mov r0, r3  @, <retval>
  367.     sub sp, fp, #8  @,,
  368.     @ sp needed @
  369.     pop {r4, fp, lr}    @
  370.     bx  lr  @
  371.     .fnend
  372.     .size   _ZN7SCBlock17encryptedDataSizeEv, .-_ZN7SCBlock17encryptedDataSizeEv
  373.     .section    .text._ZN7SCBlock15xorshiftAdvanceERm,"axG",%progbits,_ZN7SCBlock15xorshiftAdvanceERm,comdat
  374.     .align  2
  375.     .weak   _ZN7SCBlock15xorshiftAdvanceERm
  376.     .syntax unified
  377.     .arm
  378.     .fpu softvfp
  379.     .type   _ZN7SCBlock15xorshiftAdvanceERm, %function
  380. _ZN7SCBlock15xorshiftAdvanceERm:
  381.     .fnstart
  382. .LFB2476:
  383.     @ Function supports interworking.
  384.     @ args = 0, pretend = 0, frame = 8
  385.     @ frame_needed = 1, uses_anonymous_args = 0
  386.     @ link register save eliminated.
  387.     str fp, [sp, #-4]!  @,
  388.     add fp, sp, #0  @,,
  389.     sub sp, sp, #12 @,,
  390.     str r0, [fp, #-8]   @ key, key
  391. @ swshcrypto.hpp:115:         key ^= (key << 2);
  392.     ldr r3, [fp, #-8]   @ tmp122, key
  393.     ldr r2, [r3]    @ _1, *key_14(D)
  394. @ swshcrypto.hpp:115:         key ^= (key << 2);
  395.     ldr r3, [fp, #-8]   @ tmp123, key
  396.     ldr r3, [r3]    @ _2, *key_14(D)
  397. @ swshcrypto.hpp:115:         key ^= (key << 2);
  398.     lsl r3, r3, #2  @ _3, _2,
  399. @ swshcrypto.hpp:115:         key ^= (key << 2);
  400.     eor r2, r2, r3  @ _4, _1, _3
  401.     ldr r3, [fp, #-8]   @ tmp124, key
  402.     str r2, [r3]    @ _4, *key_14(D)
  403. @ swshcrypto.hpp:116:         key ^= (key >> 16);
  404.     ldr r3, [fp, #-8]   @ tmp125, key
  405.     ldr r2, [r3]    @ _5, *key_14(D)
  406. @ swshcrypto.hpp:116:         key ^= (key >> 16);
  407.     ldr r3, [fp, #-8]   @ tmp126, key
  408.     ldr r3, [r3]    @ _6, *key_14(D)
  409. @ swshcrypto.hpp:116:         key ^= (key >> 16);
  410.     lsr r3, r3, #16 @ _7, _6,
  411. @ swshcrypto.hpp:116:         key ^= (key >> 16);
  412.     eor r2, r2, r3  @ _8, _5, _7
  413.     ldr r3, [fp, #-8]   @ tmp127, key
  414.     str r2, [r3]    @ _8, *key_14(D)
  415. @ swshcrypto.hpp:117:         key ^= (key << 13);
  416.     ldr r3, [fp, #-8]   @ tmp128, key
  417.     ldr r2, [r3]    @ _9, *key_14(D)
  418. @ swshcrypto.hpp:117:         key ^= (key << 13);
  419.     ldr r3, [fp, #-8]   @ tmp129, key
  420.     ldr r3, [r3]    @ _10, *key_14(D)
  421. @ swshcrypto.hpp:117:         key ^= (key << 13);
  422.     lsl r3, r3, #13 @ _11, _10,
  423. @ swshcrypto.hpp:117:         key ^= (key << 13);
  424.     eor r2, r2, r3  @ _12, _9, _11
  425.     ldr r3, [fp, #-8]   @ tmp130, key
  426.     str r2, [r3]    @ _12, *key_14(D)
  427. @ swshcrypto.hpp:118:     }
  428.     nop
  429.     add sp, fp, #0  @,,
  430.     @ sp needed @
  431.     ldr fp, [sp], #4    @,
  432.     bx  lr  @
  433.     .cantunwind
  434.     .fnend
  435.     .size   _ZN7SCBlock15xorshiftAdvanceERm, .-_ZN7SCBlock15xorshiftAdvanceERm
  436.     .section    .text._ZN7SCBlock8popcountEy,"axG",%progbits,_ZN7SCBlock8popcountEy,comdat
  437.     .align  2
  438.     .weak   _ZN7SCBlock8popcountEy
  439.     .syntax unified
  440.     .arm
  441.     .fpu softvfp
  442.     .type   _ZN7SCBlock8popcountEy, %function
  443. _ZN7SCBlock8popcountEy:
  444.     .fnstart
  445. .LFB2477:
  446.     @ Function supports interworking.
  447.     @ args = 0, pretend = 0, frame = 80
  448.     @ frame_needed = 1, uses_anonymous_args = 0
  449.     @ link register save eliminated.
  450.     push    {r4, r5, r6, r7, r8, r9, fp}    @
  451.     add fp, sp, #24 @,,
  452.     sub sp, sp, #84 @,,
  453.     str r0, [fp, #-68]  @ key, key
  454.     str r1, [fp, #-64]  @ key, key
  455. @ swshcrypto.hpp:123:         constexpr u64 m1 = 0x5555555555555555;
  456.     adr r3, .L22    @,
  457.     ldmia   r3, {r2-r3} @, tmp121
  458.     str r2, [fp, #-36]  @ tmp121, m1
  459.     str r3, [fp, #-32]  @ tmp121, m1
  460. @ swshcrypto.hpp:124:         constexpr u64 m2 = 0x3333333333333333;
  461.     adr r3, .L22+8  @,
  462.     ldmia   r3, {r2-r3} @, tmp122
  463.     str r2, [fp, #-44]  @ tmp122, m2
  464.     str r3, [fp, #-40]  @ tmp122, m2
  465. @ swshcrypto.hpp:125:         constexpr u64 m4 = 0x0f0f0f0f0f0f0f0f;
  466.     adr r3, .L22+16 @,
  467.     ldmia   r3, {r2-r3} @, tmp123
  468.     str r2, [fp, #-52]  @ tmp123, m4
  469.     str r3, [fp, #-48]  @ tmp123, m4
  470. @ swshcrypto.hpp:129:         constexpr u64 h01 = 0x0101010101010101;
  471.     adr r3, .L22+24 @,
  472.     ldmia   r3, {r2-r3} @, tmp124
  473.     str r2, [fp, #-60]  @ tmp124, h01
  474.     str r3, [fp, #-56]  @ tmp124, h01
  475. @ swshcrypto.hpp:130:         key -= (key >> 1) & m1;
  476.     sub r3, fp, #68 @,,
  477.     ldmia   r3, {r2-r3} @, tmp125
  478.     mov r0, #0  @ _1,
  479.     mov r1, #0  @ _1,
  480.     lsr r0, r2, #1  @ _1, tmp125,
  481.     orr r0, r0, r3, lsl #31 @ _1, _1,,
  482.     lsr r1, r3, #1  @ _1,,
  483. @ swshcrypto.hpp:130:         key -= (key >> 1) & m1;
  484.     adr r3, .L22    @,
  485.     ldmia   r3, {r2-r3} @, tmp128
  486.     and r4, r0, r2  @ _2, _1, tmp128
  487.     and r5, r1, r3  @ _2, _1,
  488. @ swshcrypto.hpp:130:         key -= (key >> 1) & m1;
  489.     sub r3, fp, #68 @,,
  490.     ldmia   r3, {r2-r3} @, tmp130
  491.     subs    r1, r2, r4  @ tmp161, tmp130, _2
  492.     str r1, [fp, #-92]  @ tmp161, %sfp
  493.     sbc r3, r3, r5  @ tmp162,, _2
  494.     str r3, [fp, #-88]  @ tmp162, %sfp
  495.     sub r4, fp, #92 @,,
  496.     ldmia   r4, {r3-r4} @, tmp129
  497.     str r3, [fp, #-68]  @ tmp129, key
  498.     str r4, [fp, #-64]  @ tmp129, key
  499. @ swshcrypto.hpp:131:         key = (key & m2) + ((key >> 2) & m2);
  500.     sub r1, fp, #68 @,,
  501.     ldmia   r1, {r0-r1} @, tmp131
  502.     adr r3, .L22+8  @,
  503.     ldmia   r3, {r2-r3} @, tmp132
  504.     and ip, r0, r2  @ tmp164, tmp131, tmp132
  505.     str ip, [fp, #-76]  @ tmp164, %sfp
  506.     and r3, r1, r3  @ tmp165,,
  507.     str r3, [fp, #-72]  @ tmp165, %sfp
  508. @ swshcrypto.hpp:131:         key = (key & m2) + ((key >> 2) & m2);
  509.     sub r3, fp, #68 @,,
  510.     ldmia   r3, {r2-r3} @, tmp133
  511.     mov r0, #0  @ _4,
  512.     mov r1, #0  @ _4,
  513.     lsr r0, r2, #2  @ _4, tmp133,
  514.     orr r0, r0, r3, lsl #30 @ _4, _4,,
  515.     lsr r1, r3, #2  @ _4,,
  516. @ swshcrypto.hpp:131:         key = (key & m2) + ((key >> 2) & m2);
  517.     adr r3, .L22+8  @,
  518.     ldmia   r3, {r2-r3} @, tmp136
  519.     and r8, r0, r2  @ _5, _4, tmp136
  520.     and r9, r1, r3  @ _5, _4,
  521. @ swshcrypto.hpp:131:         key = (key & m2) + ((key >> 2) & m2);
  522.     sub r4, fp, #76 @,,
  523.     ldmia   r4, {r3-r4} @, _3
  524.     mov r2, r3  @ tmp167, _3
  525.     adds    r2, r2, r8  @ tmp166, tmp167, _5
  526.     str r2, [fp, #-100] @ tmp166, %sfp
  527.     mov r3, r4  @ tmp169, _3
  528.     adc r3, r3, r9  @ tmp168, tmp169, _5
  529.     str r3, [fp, #-96]  @ tmp168, %sfp
  530.     sub r4, fp, #100    @,,
  531.     ldmia   r4, {r3-r4} @, tmp137
  532.     str r3, [fp, #-68]  @ tmp137, key
  533.     str r4, [fp, #-64]  @ tmp137, key
  534. @ swshcrypto.hpp:132:         key = (key + (key >> 4)) & m4;
  535.     sub r1, fp, #68 @,,
  536.     ldmia   r1, {r0-r1} @, tmp138
  537.     mov r2, #0  @ _6,
  538.     mov r3, #0  @ _6,
  539.     lsr r2, r0, #4  @ _6, tmp138,
  540.     orr r2, r2, r1, lsl #28 @ _6, _6,,
  541.     lsr r3, r1, #4  @ _6,,
  542. @ swshcrypto.hpp:132:         key = (key + (key >> 4)) & m4;
  543.     sub r1, fp, #68 @,,
  544.     ldmia   r1, {r0-r1} @, tmp141
  545.     adds    r6, r2, r0  @ _7, _6, tmp141
  546.     adc r7, r3, r1  @ _7, _6,
  547. @ swshcrypto.hpp:132:         key = (key + (key >> 4)) & m4;
  548.     adr r3, .L22+16 @,
  549.     ldmia   r3, {r2-r3} @, tmp143
  550.     and r1, r6, r2  @ tmp171, _7, tmp143
  551.     str r1, [fp, #-108] @ tmp171, %sfp
  552.     and r3, r7, r3  @ tmp172, _7,
  553.     str r3, [fp, #-104] @ tmp172, %sfp
  554.     sub r4, fp, #108    @,,
  555.     ldmia   r4, {r3-r4} @, tmp142
  556.     str r3, [fp, #-68]  @ tmp142, key
  557.     str r4, [fp, #-64]  @ tmp142, key
  558. @ swshcrypto.hpp:133:         return (u32)((key * h01) >> 56);
  559.     sub r1, fp, #68 @,,
  560.     ldmia   r1, {r0-r1} @, tmp144
  561.     mov r2, r0  @ tmp145, tmp144
  562.     mov r3, r1  @,
  563.     mov r4, #0  @ tmp146,
  564.     mov r5, #0  @,
  565.     lsl r5, r3, #8  @,,
  566.     orr r5, r5, r2, lsr #24 @,, tmp145,
  567.     lsl r4, r2, #8  @ tmp146, tmp145,
  568.     mov r2, r4  @ tmp145, tmp146
  569.     mov r3, r5  @,
  570.     adds    r2, r2, r0  @ tmp145, tmp145, tmp144
  571.     adc r3, r3, r1  @,,
  572.     mov r4, #0  @ tmp149,
  573.     mov r5, #0  @,
  574.     lsl r5, r3, #24 @,,
  575.     orr r5, r5, r2, lsr #8  @,, tmp145,
  576.     lsl r4, r2, #24 @ tmp149, tmp145,
  577.     mov r2, r4  @ tmp145, tmp149
  578.     mov r3, r5  @,
  579.     adds    r2, r2, r0  @ tmp145, tmp145, tmp144
  580.     adc r3, r3, r1  @,,
  581.     mov r4, #0  @ tmp152,
  582.     mov r5, #0  @,
  583.     lsl r5, r3, #8  @,,
  584.     orr r5, r5, r2, lsr #24 @,, tmp145,
  585.     lsl r4, r2, #8  @ tmp152, tmp145,
  586.     mov r2, r4  @ tmp145, tmp152
  587.     mov r3, r5  @,
  588.     adds    r2, r2, r0  @ tmp145, tmp145, tmp144
  589.     adc r3, r3, r1  @,,
  590.     mov r0, #0  @ tmp155,
  591.     mov r1, #0  @,
  592.     lsl r1, r3, #16 @,,
  593.     orr r1, r1, r2, lsr #16 @,, tmp145,
  594.     lsl r0, r2, #16 @ tmp155, tmp145,
  595.     adds    ip, r2, r0  @ tmp174, tmp145, tmp155
  596.     str ip, [fp, #-84]  @ tmp174, %sfp
  597.     adc r3, r3, r1  @ tmp175,,
  598.     str r3, [fp, #-80]  @ tmp175, %sfp
  599. @ swshcrypto.hpp:133:         return (u32)((key * h01) >> 56);
  600.     mov r2, #0  @ _9,
  601.     mov r3, #0  @ _9,
  602.     ldr r1, [fp, #-80]  @ tmp176, %sfp
  603.     lsr r2, r1, #24 @ _9, tmp176,
  604.     mov r3, #0  @ _9,
  605. @ swshcrypto.hpp:133:         return (u32)((key * h01) >> 56);
  606.     mov r3, r2  @ _18, _9
  607. @ swshcrypto.hpp:134:     }
  608.     mov r0, r3  @, <retval>
  609.     sub sp, fp, #24 @,,
  610.     @ sp needed @
  611.     pop {r4, r5, r6, r7, r8, r9, fp}    @
  612.     bx  lr  @
  613. .L23:
  614.     .align  3
  615. .L22:
  616.     .word   1431655765
  617.     .word   1431655765
  618.     .word   858993459
  619.     .word   858993459
  620.     .word   252645135
  621.     .word   252645135
  622.     .word   16843009
  623.     .word   16843009
  624.     .cantunwind
  625.     .fnend
  626.     .size   _ZN7SCBlock8popcountEy, .-_ZN7SCBlock8popcountEy
  627.     .section    .text._ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE,"axG",%progbits,_ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE,comdat
  628.     .align  2
  629.     .weak   _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE
  630.     .syntax unified
  631.     .arm
  632.     .fpu softvfp
  633.     .type   _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE, %function
  634. _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE:
  635.     .fnstart
  636. .LFB2478:
  637.     @ Function supports interworking.
  638.     @ args = 0, pretend = 0, frame = 8
  639.     @ frame_needed = 1, uses_anonymous_args = 0
  640.     push    {fp, lr}    @
  641.     .save {fp, lr}
  642.     .setfp fp, sp, #4
  643.     add fp, sp, #4  @,,
  644.     .pad #8
  645.     sub sp, sp, #8  @,,
  646.     mov r3, r0  @ tmp112, type
  647.     strb    r3, [fp, #-5]   @ tmp113, type
  648.     ldrb    r3, [fp, #-5]   @ zero_extendqisi2  @ tmp114, type
  649.     sub r3, r3, #3  @ tmp115, tmp114,
  650.     cmp r3, #14 @ tmp115,
  651.     ldrls   pc, [pc, r3, asl #2]    @ tmp115
  652.     b   .L25    @
  653. .L27:
  654.     .word   .L30
  655.     .word   .L25
  656.     .word   .L25
  657.     .word   .L25
  658.     .word   .L25
  659.     .word   .L30
  660.     .word   .L29
  661.     .word   .L28
  662.     .word   .L26
  663.     .word   .L30
  664.     .word   .L29
  665.     .word   .L28
  666.     .word   .L26
  667.     .word   .L28
  668.     .word   .L26
  669. .L30:
  670. @ swshcrypto.hpp:143:                 return 1;
  671.     mov r3, #1  @ _1,
  672.     b   .L31        @
  673. .L29:
  674. @ swshcrypto.hpp:146:                 return 2;
  675.     mov r3, #2  @ _1,
  676.     b   .L31        @
  677. .L28:
  678. @ swshcrypto.hpp:150:                 return 4;
  679.     mov r3, #4  @ _1,
  680.     b   .L31        @
  681. .L26:
  682. @ swshcrypto.hpp:154:                 return 8;
  683.     mov r3, #8  @ _1,
  684.     b   .L31        @
  685. .L25:
  686. @ swshcrypto.hpp:157:                 std::abort();
  687.     bl  abort       @
  688. .L31:
  689. @ swshcrypto.hpp:159:     }
  690.     mov r0, r3  @, <retval>
  691.     sub sp, fp, #4  @,,
  692.     @ sp needed @
  693.     pop {fp, lr}    @
  694.     bx  lr  @
  695.     .fnend
  696.     .size   _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE, .-_ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE
  697.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD5Ev,comdat
  698.     .align  2
  699.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev
  700.     .syntax unified
  701.     .arm
  702.     .fpu softvfp
  703.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev, %function
  704. _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev:
  705.     .fnstart
  706. .LFB2484:
  707.     @ Function supports interworking.
  708.     @ args = 0, pretend = 0, frame = 8
  709.     @ frame_needed = 1, uses_anonymous_args = 0
  710.     push    {fp, lr}    @
  711.     add fp, sp, #4  @,,
  712.     sub sp, sp, #8  @,,
  713.     str r0, [fp, #-8]   @ this, this
  714. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:125:       struct _Vector_impl
  715.     ldr r0, [fp, #-8]   @, this
  716.     bl  _ZNSaI7SCBlockED2Ev     @
  717.     ldr r3, [fp, #-8]   @ _5, this
  718.     mov r0, r3  @, <retval>
  719.     sub sp, fp, #4  @,,
  720.     @ sp needed @
  721.     pop {fp, lr}    @
  722.     bx  lr  @
  723.     .cantunwind
  724.     .fnend
  725.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev
  726.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD1Ev
  727.     .set    _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD1Ev,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD2Ev
  728.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EEC5Ev,comdat
  729.     .align  2
  730.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev
  731.     .syntax unified
  732.     .arm
  733.     .fpu softvfp
  734.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev, %function
  735. _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev:
  736.     .fnstart
  737. .LFB2486:
  738.     @ Function supports interworking.
  739.     @ args = 0, pretend = 0, frame = 8
  740.     @ frame_needed = 1, uses_anonymous_args = 0
  741.     push    {fp, lr}    @
  742.     add fp, sp, #4  @,,
  743.     sub sp, sp, #8  @,,
  744.     str r0, [fp, #-8]   @ this, this
  745. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:285:       _Vector_base() = default;
  746.     ldr r3, [fp, #-8]   @ _1, this
  747.     mov r0, r3  @, _1
  748.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC1Ev      @
  749.     ldr r3, [fp, #-8]   @ _6, this
  750.     mov r0, r3  @, <retval>
  751.     sub sp, fp, #4  @,,
  752.     @ sp needed @
  753.     pop {fp, lr}    @
  754.     bx  lr  @
  755.     .cantunwind
  756.     .fnend
  757.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev
  758.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC1Ev
  759.     .set    _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC1Ev,_ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev
  760.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EEC2Ev,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EEC5Ev,comdat
  761.     .align  2
  762.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EEC2Ev
  763.     .syntax unified
  764.     .arm
  765.     .fpu softvfp
  766.     .type   _ZNSt6vectorI7SCBlockSaIS0_EEC2Ev, %function
  767. _ZNSt6vectorI7SCBlockSaIS0_EEC2Ev:
  768.     .fnstart
  769. .LFB2488:
  770.     @ Function supports interworking.
  771.     @ args = 0, pretend = 0, frame = 8
  772.     @ frame_needed = 1, uses_anonymous_args = 0
  773.     push    {fp, lr}    @
  774.     add fp, sp, #4  @,,
  775.     sub sp, sp, #8  @,,
  776.     str r0, [fp, #-8]   @ this, this
  777. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:484:       vector() = default;
  778.     ldr r3, [fp, #-8]   @ _1, this
  779.     mov r0, r3  @, _1
  780.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EEC2Ev        @
  781.     ldr r3, [fp, #-8]   @ _6, this
  782.     mov r0, r3  @, <retval>
  783.     sub sp, fp, #4  @,,
  784.     @ sp needed @
  785.     pop {fp, lr}    @
  786.     bx  lr  @
  787.     .cantunwind
  788.     .fnend
  789.     .size   _ZNSt6vectorI7SCBlockSaIS0_EEC2Ev, .-_ZNSt6vectorI7SCBlockSaIS0_EEC2Ev
  790.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EEC1Ev
  791.     .set    _ZNSt6vectorI7SCBlockSaIS0_EEC1Ev,_ZNSt6vectorI7SCBlockSaIS0_EEC2Ev
  792.     .section    .text._ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_,"axG",%progbits,_ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC5ERKS3_,comdat
  793.     .align  2
  794.     .weak   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_
  795.     .syntax unified
  796.     .arm
  797.     .fpu softvfp
  798.     .type   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_, %function
  799. _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_:
  800.     .fnstart
  801. .LFB2492:
  802.     @ Function supports interworking.
  803.     @ args = 0, pretend = 0, frame = 8
  804.     @ frame_needed = 1, uses_anonymous_args = 0
  805.     push    {fp, lr}    @
  806.     add fp, sp, #4  @,,
  807.     sub sp, sp, #8  @,,
  808.     str r0, [fp, #-8]   @ this, this
  809.     str r1, [fp, #-12]  @ D.49743, D.49743
  810. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1167:       __shared_ptr(const __shared_ptr&) noexcept = default;
  811.     ldr r3, [fp, #-12]  @ tmp116, D.49743
  812.     ldr r2, [r3]    @ _1, _8(D)->_M_ptr
  813.     ldr r3, [fp, #-8]   @ tmp117, this
  814.     str r2, [r3]    @ _1, this_6(D)->_M_ptr
  815.     ldr r3, [fp, #-8]   @ tmp118, this
  816.     add r2, r3, #4  @ _2, tmp118,
  817.     ldr r3, [fp, #-12]  @ tmp119, D.49743
  818.     add r3, r3, #4  @ _3, tmp119,
  819.     mov r1, r3  @, _3
  820.     mov r0, r2  @, _2
  821.     bl  _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC1ERKS2_        @
  822.     ldr r3, [fp, #-8]   @ _11, this
  823.     mov r0, r3  @, <retval>
  824.     sub sp, fp, #4  @,,
  825.     @ sp needed @
  826.     pop {fp, lr}    @
  827.     bx  lr  @
  828.     .cantunwind
  829.     .fnend
  830.     .size   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_, .-_ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_
  831.     .weak   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC1ERKS3_
  832.     .set    _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC1ERKS3_,_ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_
  833.     .section    .text._ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev,"axG",%progbits,_ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED5Ev,comdat
  834.     .align  2
  835.     .weak   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev
  836.     .syntax unified
  837.     .arm
  838.     .fpu softvfp
  839.     .type   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev, %function
  840. _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev:
  841.     .fnstart
  842. .LFB2495:
  843.     @ Function supports interworking.
  844.     @ args = 0, pretend = 0, frame = 8
  845.     @ frame_needed = 1, uses_anonymous_args = 0
  846.     push    {fp, lr}    @
  847.     add fp, sp, #4  @,,
  848.     sub sp, sp, #8  @,,
  849.     str r0, [fp, #-8]   @ this, this
  850. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1169:       ~__shared_ptr() = default;
  851.     ldr r3, [fp, #-8]   @ tmp113, this
  852.     add r3, r3, #4  @ _1, tmp113,
  853.     mov r0, r3  @, _1
  854.     bl  _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED1Ev        @
  855.     ldr r3, [fp, #-8]   @ _6, this
  856.     mov r0, r3  @, <retval>
  857.     sub sp, fp, #4  @,,
  858.     @ sp needed @
  859.     pop {fp, lr}    @
  860.     bx  lr  @
  861.     .cantunwind
  862.     .fnend
  863.     .size   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev, .-_ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev
  864.     .weak   _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED1Ev
  865.     .set    _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED1Ev,_ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev
  866.     .section    .text._ZNSt10shared_ptrIA_hEC2ERKS1_,"axG",%progbits,_ZNSt10shared_ptrIA_hEC5ERKS1_,comdat
  867.     .align  2
  868.     .weak   _ZNSt10shared_ptrIA_hEC2ERKS1_
  869.     .syntax unified
  870.     .arm
  871.     .fpu softvfp
  872.     .type   _ZNSt10shared_ptrIA_hEC2ERKS1_, %function
  873. _ZNSt10shared_ptrIA_hEC2ERKS1_:
  874.     .fnstart
  875. .LFB2497:
  876.     @ Function supports interworking.
  877.     @ args = 0, pretend = 0, frame = 8
  878.     @ frame_needed = 1, uses_anonymous_args = 0
  879.     push    {fp, lr}    @
  880.     add fp, sp, #4  @,,
  881.     sub sp, sp, #8  @,,
  882.     str r0, [fp, #-8]   @ this, this
  883.     str r1, [fp, #-12]  @ D.50345, D.50345
  884. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr.h:129:       shared_ptr(const shared_ptr&) noexcept = default;
  885.     ldr r3, [fp, #-8]   @ _1, this
  886.     ldr r2, [fp, #-12]  @ _2, D.50345
  887.     mov r1, r2  @, _2
  888.     mov r0, r3  @, _1
  889.     bl  _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EEC2ERKS3_       @
  890.     ldr r3, [fp, #-8]   @ _9, this
  891.     mov r0, r3  @, <retval>
  892.     sub sp, fp, #4  @,,
  893.     @ sp needed @
  894.     pop {fp, lr}    @
  895.     bx  lr  @
  896.     .cantunwind
  897.     .fnend
  898.     .size   _ZNSt10shared_ptrIA_hEC2ERKS1_, .-_ZNSt10shared_ptrIA_hEC2ERKS1_
  899.     .weak   _ZNSt10shared_ptrIA_hEC1ERKS1_
  900.     .set    _ZNSt10shared_ptrIA_hEC1ERKS1_,_ZNSt10shared_ptrIA_hEC2ERKS1_
  901.     .section    .text._ZNSt10shared_ptrIA_hED2Ev,"axG",%progbits,_ZNSt10shared_ptrIA_hED5Ev,comdat
  902.     .align  2
  903.     .weak   _ZNSt10shared_ptrIA_hED2Ev
  904.     .syntax unified
  905.     .arm
  906.     .fpu softvfp
  907.     .type   _ZNSt10shared_ptrIA_hED2Ev, %function
  908. _ZNSt10shared_ptrIA_hED2Ev:
  909.     .fnstart
  910. .LFB2500:
  911.     @ Function supports interworking.
  912.     @ args = 0, pretend = 0, frame = 8
  913.     @ frame_needed = 1, uses_anonymous_args = 0
  914.     push    {fp, lr}    @
  915.     add fp, sp, #4  @,,
  916.     sub sp, sp, #8  @,,
  917.     str r0, [fp, #-8]   @ this, this
  918. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr.h:103:     class shared_ptr : public __shared_ptr<_Tp>
  919.     ldr r3, [fp, #-8]   @ _1, this
  920.     mov r0, r3  @, _1
  921.     bl  _ZNSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EED2Ev       @
  922.     ldr r3, [fp, #-8]   @ _6, this
  923.     mov r0, r3  @, <retval>
  924.     sub sp, fp, #4  @,,
  925.     @ sp needed @
  926.     pop {fp, lr}    @
  927.     bx  lr  @
  928.     .cantunwind
  929.     .fnend
  930.     .size   _ZNSt10shared_ptrIA_hED2Ev, .-_ZNSt10shared_ptrIA_hED2Ev
  931.     .weak   _ZNSt10shared_ptrIA_hED1Ev
  932.     .set    _ZNSt10shared_ptrIA_hED1Ev,_ZNSt10shared_ptrIA_hED2Ev
  933.     .section    .text._ZN11SCBlockListC2ESt10shared_ptrIA_hEj,"axG",%progbits,_ZN11SCBlockListC5ESt10shared_ptrIA_hEj,comdat
  934.     .align  2
  935.     .weak   _ZN11SCBlockListC2ESt10shared_ptrIA_hEj
  936.     .syntax unified
  937.     .arm
  938.     .fpu softvfp
  939.     .type   _ZN11SCBlockListC2ESt10shared_ptrIA_hEj, %function
  940. _ZN11SCBlockListC2ESt10shared_ptrIA_hEj:
  941.     .fnstart
  942. .LFB2502:
  943.     @ Function supports interworking.
  944.     @ args = 0, pretend = 0, frame = 16
  945.     @ frame_needed = 1, uses_anonymous_args = 0
  946.     push    {fp, lr}    @
  947.     add fp, sp, #4  @,,
  948.     sub sp, sp, #16 @,,
  949.     str r0, [fp, #-8]   @ this, this
  950.     str r1, [fp, #-12]  @ data, data
  951.     str r2, [fp, #-16]  @ length, length
  952. @ swshcrypto.hpp:197:     SCBlockList(std::shared_ptr<u8[]> data, size_t length) : associatedData(data), length(length) {}
  953.     ldr r3, [fp, #-8]   @ _1, this
  954.     mov r0, r3  @, _1
  955.     bl  _ZNSt6vectorI7SCBlockSaIS0_EEC2Ev       @
  956.     ldr r3, [fp, #-8]   @ tmp116, this
  957.     add r3, r3, #12 @ _2, tmp116,
  958.     ldr r1, [fp, #-12]  @, data
  959.     mov r0, r3  @, _2
  960.     bl  _ZNSt10shared_ptrIA_hEC1ERKS1_      @
  961.     ldr r3, [fp, #-8]   @ tmp117, this
  962.     ldr r2, [fp, #-16]  @ tmp118, length
  963.     str r2, [r3, #20]   @ tmp118, this_6(D)->length
  964. @ swshcrypto.hpp:197:     SCBlockList(std::shared_ptr<u8[]> data, size_t length) : associatedData(data), length(length) {}
  965.     ldr r3, [fp, #-8]   @ _13, this
  966.     mov r0, r3  @, <retval>
  967.     sub sp, fp, #4  @,,
  968.     @ sp needed @
  969.     pop {fp, lr}    @
  970.     bx  lr  @
  971.     .cantunwind
  972.     .fnend
  973.     .size   _ZN11SCBlockListC2ESt10shared_ptrIA_hEj, .-_ZN11SCBlockListC2ESt10shared_ptrIA_hEj
  974.     .weak   _ZN11SCBlockListC1ESt10shared_ptrIA_hEj
  975.     .set    _ZN11SCBlockListC1ESt10shared_ptrIA_hEj,_ZN11SCBlockListC2ESt10shared_ptrIA_hEj
  976.     .section    .rodata
  977.     .align  2
  978.     .type   _ZL6xorpad, %object
  979.     .size   _ZL6xorpad, 127
  980. _ZL6xorpad:
  981.     .ascii  "\240\222\321\006\007\3332\241\256\001\365\305\036\204"
  982.     .ascii  "O\343S\3127\364\247\260M\240\030\267\302\227\332_S+"
  983.     .ascii  "u\372H\026\370\324\212oa\005\364\342\375\004\265\243"
  984.     .ascii  "\017\374D\222\3132\346\033\271\261.\001\260VS6\322\321"
  985.     .ascii  "P=\336[.\016R\375\337/{\312cP\244g]#\027\300R\341\246"
  986.     .ascii  "0|+\266p6[*'i3\365c{6?&\233\243\355zS\000\244H\263P"
  987.     .ascii  "\236\024\240R\336~\020+\033wn"
  988.     .align  2
  989.     .type   _ZL9hashBegin, %object
  990.     .size   _ZL9hashBegin, 64
  991. _ZL9hashBegin:
  992.     .ascii  "\236\311\234\327\016\323<D\373\223\003\334\3539\264"
  993.     .ascii  "*\031G\351cK\2423D\026\277\202\242\272cU\266=\235\362"
  994.     .ascii  "K_{j\262b\035\302\033h\345\310\265:\005\220\000\350"
  995.     .ascii  "\250\020=\342\354\360\014\262\355Om"
  996.     .align  2
  997.     .type   _ZL7hashEnd, %object
  998.     .size   _ZL7hashEnd, 64
  999. _ZL7hashEnd:
  1000.     .ascii  "\326\300\034Y\213\310\270\313F\341S\374\202\214uu\023"
  1001.     .ascii  "\340E\3372i<u\360Y\370\331\242_\262\027\340\200R\333"
  1002.     .ascii  "\352\211s\231uy\257\313.\200\007\346\361&\340\003\012"
  1003.     .ascii  "\346o\366A\277~Y\302\256U\375"
  1004.     .text
  1005.     .align  2
  1006.     .syntax unified
  1007.     .arm
  1008.     .fpu softvfp
  1009.     .type   _ZL17applyStaticXorpadSt10shared_ptrIA_hEj, %function
  1010. _ZL17applyStaticXorpadSt10shared_ptrIA_hEj:
  1011.     .fnstart
  1012. .LFB2506:
  1013.     @ Function supports interworking.
  1014.     @ args = 0, pretend = 0, frame = 16
  1015.     @ frame_needed = 1, uses_anonymous_args = 0
  1016.     push    {fp, lr}    @
  1017.     add fp, sp, #4  @,,
  1018.     sub sp, sp, #16 @,,
  1019.     str r0, [fp, #-16]  @ data, data
  1020.     str r1, [fp, #-20]  @ length, length
  1021. @ swshcrypto.cpp:64:     for (size_t i = 0; i < length - SHA256_BLOCK_SIZE; i++)
  1022.     mov r3, #0  @ tmp117,
  1023.     str r3, [fp, #-8]   @ tmp117, i
  1024. .L50:
  1025. @ swshcrypto.cpp:64:     for (size_t i = 0; i < length - SHA256_BLOCK_SIZE; i++)
  1026.     ldr r3, [fp, #-20]  @ tmp118, length
  1027.     sub r3, r3, #32 @ _1, tmp118,
  1028. @ swshcrypto.cpp:64:     for (size_t i = 0; i < length - SHA256_BLOCK_SIZE; i++)
  1029.     ldr r2, [fp, #-8]   @ tmp119, i
  1030.     cmp r2, r3  @ tmp119, _1
  1031.     bcs .L51        @,
  1032. @ swshcrypto.cpp:66:         data[i] ^= xorpad[i % XORPAD_LENGTH];
  1033.     ldr r3, [fp, #-8]   @ i.0_2, i
  1034.     mov r1, r3  @, i.0_2
  1035.     ldr r0, [fp, #-16]  @, data
  1036.     bl  _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi       @
  1037. @ swshcrypto.cpp:66:         data[i] ^= xorpad[i % XORPAD_LENGTH];
  1038.     ldrb    ip, [r0]    @ zero_extendqisi2  @ _3, *_14
  1039. @ swshcrypto.cpp:66:         data[i] ^= xorpad[i % XORPAD_LENGTH];
  1040.     ldr r1, [fp, #-8]   @ tmp120, i
  1041.     ldr r3, .L52    @ tmp122,
  1042.     umull   r2, r3, r1, r3  @ tmp132, tmp121, tmp120, tmp121
  1043.     sub r2, r1, r3  @ tmp123, tmp120, tmp121
  1044.     lsr r2, r2, #1  @ tmp124, tmp123,
  1045.     add r3, r3, r2  @ tmp125, tmp121, tmp124
  1046.     lsr r2, r3, #6  @ _4, tmp125,
  1047.     mov r3, r2  @ tmp126, _4
  1048.     lsl r3, r3, #7  @ tmp126, tmp126,
  1049.     sub r3, r3, r2  @ tmp126, tmp126, _4
  1050.     sub r2, r1, r3  @ _4, tmp120, tmp126
  1051. @ swshcrypto.cpp:66:         data[i] ^= xorpad[i % XORPAD_LENGTH];
  1052.     ldr r3, .L52+4  @ tmp127,
  1053.     ldrb    r3, [r3, r2]    @ zero_extendqisi2  @ _5, xorpad
  1054. @ swshcrypto.cpp:66:         data[i] ^= xorpad[i % XORPAD_LENGTH];
  1055.     eor r3, r3, ip  @ tmp128, _5, _3
  1056.     and r3, r3, #255    @ _6, tmp128,
  1057.     strb    r3, [r0]    @ tmp129, *_14
  1058. @ swshcrypto.cpp:64:     for (size_t i = 0; i < length - SHA256_BLOCK_SIZE; i++)
  1059.     ldr r3, [fp, #-8]   @ tmp131, i
  1060.     add r3, r3, #1  @ tmp130, tmp131,
  1061.     str r3, [fp, #-8]   @ tmp130, i
  1062.     b   .L50        @
  1063. .L51:
  1064. @ swshcrypto.cpp:68: }
  1065.     nop
  1066.     sub sp, fp, #4  @,,
  1067.     @ sp needed @
  1068.     pop {fp, lr}    @
  1069.     bx  lr  @
  1070. .L53:
  1071.     .align  2
  1072. .L52:
  1073.     .word   33818641
  1074.     .word   _ZL6xorpad
  1075.     .cantunwind
  1076.     .fnend
  1077.     .size   _ZL17applyStaticXorpadSt10shared_ptrIA_hEj, .-_ZL17applyStaticXorpadSt10shared_ptrIA_hEj
  1078.     .align  2
  1079.     .syntax unified
  1080.     .arm
  1081.     .fpu softvfp
  1082.     .type   _ZL11computeHashPhS_j, %function
  1083. _ZL11computeHashPhS_j:
  1084.     .fnstart
  1085. .LFB2507:
  1086.     @ Function supports interworking.
  1087.     @ args = 0, pretend = 0, frame = 128
  1088.     @ frame_needed = 1, uses_anonymous_args = 0
  1089.     push    {fp, lr}    @
  1090.     .save {fp, lr}
  1091.     .setfp fp, sp, #4
  1092.     add fp, sp, #4  @,,
  1093.     .pad #128
  1094.     sub sp, sp, #128    @,,
  1095.     str r0, [fp, #-120] @ hash, hash
  1096.     str r1, [fp, #-124] @ data, data
  1097.     str r2, [fp, #-128] @ length, length
  1098. @ swshcrypto.cpp:73:     sha256_init(&ctx);
  1099.     sub r3, fp, #116    @ tmp110,,
  1100.     mov r0, r3  @, tmp110
  1101.     bl  sha256_init     @
  1102. @ swshcrypto.cpp:74:     sha256_update(&ctx, hashBegin, HASH_PAD_LENGTH);
  1103.     sub r3, fp, #116    @ tmp111,,
  1104.     mov r2, #64 @,
  1105.     ldr r1, .L55    @,
  1106.     mov r0, r3  @, tmp111
  1107.     bl  sha256_update       @
  1108. @ swshcrypto.cpp:75:     sha256_update(&ctx, data, length);
  1109.     sub r3, fp, #116    @ tmp112,,
  1110.     ldr r2, [fp, #-128] @, length
  1111.     ldr r1, [fp, #-124] @, data
  1112.     mov r0, r3  @, tmp112
  1113.     bl  sha256_update       @
  1114. @ swshcrypto.cpp:76:     sha256_update(&ctx, hashEnd, HASH_PAD_LENGTH);
  1115.     sub r3, fp, #116    @ tmp113,,
  1116.     mov r2, #64 @,
  1117.     ldr r1, .L55+4  @,
  1118.     mov r0, r3  @, tmp113
  1119.     bl  sha256_update       @
  1120. @ swshcrypto.cpp:77:     sha256_final(&ctx, hash);
  1121.     sub r3, fp, #116    @ tmp114,,
  1122.     ldr r1, [fp, #-120] @, hash
  1123.     mov r0, r3  @, tmp114
  1124.     bl  sha256_final        @
  1125. @ swshcrypto.cpp:78: }
  1126.     nop
  1127.     sub sp, fp, #4  @,,
  1128.     @ sp needed @
  1129.     pop {fp, lr}    @
  1130.     bx  lr  @
  1131. .L56:
  1132.     .align  2
  1133. .L55:
  1134.     .word   _ZL9hashBegin
  1135.     .word   _ZL7hashEnd
  1136.     .fnend
  1137.     .size   _ZL11computeHashPhS_j, .-_ZL11computeHashPhS_j
  1138.     .align  2
  1139.     .global _Z20swshcrypto_hashValidPhj
  1140.     .syntax unified
  1141.     .arm
  1142.     .fpu softvfp
  1143.     .type   _Z20swshcrypto_hashValidPhj, %function
  1144. _Z20swshcrypto_hashValidPhj:
  1145.     .fnstart
  1146. .LFB2508:
  1147.     @ Function supports interworking.
  1148.     @ args = 0, pretend = 0, frame = 48
  1149.     @ frame_needed = 1, uses_anonymous_args = 0
  1150.     push    {fp, lr}    @
  1151.     .save {fp, lr}
  1152.     .setfp fp, sp, #4
  1153.     add fp, sp, #4  @,,
  1154.     .pad #48
  1155.     sub sp, sp, #48 @,,
  1156.     str r0, [fp, #-48]  @ data, data
  1157.     str r1, [fp, #-52]  @ length, length
  1158. @ swshcrypto.cpp:83:     computeHash(hash, data, length - SHA256_BLOCK_SIZE);
  1159.     ldr r3, [fp, #-52]  @ tmp118, length
  1160.     sub r2, r3, #32 @ _1, tmp118,
  1161.     sub r3, fp, #40 @ tmp119,,
  1162.     ldr r1, [fp, #-48]  @, data
  1163.     mov r0, r3  @, tmp119
  1164.     bl  _ZL11computeHashPhS_j       @
  1165. @ swshcrypto.cpp:84:     for (size_t i = 0; i < SHA256_BLOCK_SIZE; i++)
  1166.     mov r3, #0  @ tmp120,
  1167.     str r3, [fp, #-8]   @ tmp120, i
  1168. .L61:
  1169. @ swshcrypto.cpp:84:     for (size_t i = 0; i < SHA256_BLOCK_SIZE; i++)
  1170.     ldr r3, [fp, #-8]   @ tmp121, i
  1171.     cmp r3, #31 @ tmp121,
  1172.     bhi .L58        @,
  1173. @ swshcrypto.cpp:86:         if (hash[i] != data[length - SHA256_BLOCK_SIZE + i])
  1174.     sub r2, fp, #40 @ tmp122,,
  1175.     ldr r3, [fp, #-8]   @ tmp124, i
  1176.     add r3, r2, r3  @ tmp123, tmp122, tmp124
  1177.     ldrb    r2, [r3]    @ zero_extendqisi2  @ _2, hash
  1178. @ swshcrypto.cpp:86:         if (hash[i] != data[length - SHA256_BLOCK_SIZE + i])
  1179.     ldr r1, [fp, #-52]  @ tmp125, length
  1180.     ldr r3, [fp, #-8]   @ tmp126, i
  1181.     add r3, r1, r3  @ _3, tmp125, tmp126
  1182.     sub r3, r3, #32 @ _4, _3,
  1183. @ swshcrypto.cpp:86:         if (hash[i] != data[length - SHA256_BLOCK_SIZE + i])
  1184.     ldr r1, [fp, #-48]  @ tmp127, data
  1185.     add r3, r1, r3  @ _5, tmp127, _4
  1186.     ldrb    r3, [r3]    @ zero_extendqisi2  @ _6, *_5
  1187. @ swshcrypto.cpp:86:         if (hash[i] != data[length - SHA256_BLOCK_SIZE + i])
  1188.     cmp r2, r3  @ _2, _6
  1189.     beq .L59        @,
  1190. @ swshcrypto.cpp:88:             return false;
  1191.     mov r3, #0  @ _8,
  1192.     b   .L62        @
  1193. .L59:
  1194. @ swshcrypto.cpp:84:     for (size_t i = 0; i < SHA256_BLOCK_SIZE; i++)
  1195.     ldr r3, [fp, #-8]   @ tmp129, i
  1196.     add r3, r3, #1  @ tmp128, tmp129,
  1197.     str r3, [fp, #-8]   @ tmp128, i
  1198.     b   .L61        @
  1199. .L58:
  1200. @ swshcrypto.cpp:91:     return true;
  1201.     mov r3, #1  @ _8,
  1202. .L62:
  1203. @ swshcrypto.cpp:92: }
  1204.     mov r0, r3  @, <retval>
  1205.     sub sp, fp, #4  @,,
  1206.     @ sp needed @
  1207.     pop {fp, lr}    @
  1208.     bx  lr  @
  1209.     .fnend
  1210.     .size   _Z20swshcrypto_hashValidPhj, .-_Z20swshcrypto_hashValidPhj
  1211.     .section    .text._ZN11SCBlockListD2Ev,"axG",%progbits,_ZN11SCBlockListD5Ev,comdat
  1212.     .align  2
  1213.     .weak   _ZN11SCBlockListD2Ev
  1214.     .syntax unified
  1215.     .arm
  1216.     .fpu softvfp
  1217.     .type   _ZN11SCBlockListD2Ev, %function
  1218. _ZN11SCBlockListD2Ev:
  1219.     .fnstart
  1220. .LFB2511:
  1221.     @ Function supports interworking.
  1222.     @ args = 0, pretend = 0, frame = 8
  1223.     @ frame_needed = 1, uses_anonymous_args = 0
  1224.     push    {fp, lr}    @
  1225.     add fp, sp, #4  @,,
  1226.     sub sp, sp, #8  @,,
  1227.     str r0, [fp, #-8]   @ this, this
  1228. @ swshcrypto.hpp:189: class SCBlockList : public std::vector<SCBlock>
  1229.     ldr r3, [fp, #-8]   @ tmp114, this
  1230.     add r3, r3, #12 @ _1, tmp114,
  1231.     mov r0, r3  @, _1
  1232.     bl  _ZNSt10shared_ptrIA_hED1Ev      @
  1233.     ldr r3, [fp, #-8]   @ _2, this
  1234.     mov r0, r3  @, _2
  1235.     bl  _ZNSt6vectorI7SCBlockSaIS0_EED2Ev       @
  1236.     ldr r3, [fp, #-8]   @ _8, this
  1237.     mov r0, r3  @, <retval>
  1238.     sub sp, fp, #4  @,,
  1239.     @ sp needed @
  1240.     pop {fp, lr}    @
  1241.     bx  lr  @
  1242.     .cantunwind
  1243.     .fnend
  1244.     .size   _ZN11SCBlockListD2Ev, .-_ZN11SCBlockListD2Ev
  1245.     .weak   _ZN11SCBlockListD1Ev
  1246.     .set    _ZN11SCBlockListD1Ev,_ZN11SCBlockListD2Ev
  1247.     .text
  1248.     .align  2
  1249.     .global _ZN11SCBlockList4initESt10shared_ptrIA_hEj
  1250.     .syntax unified
  1251.     .arm
  1252.     .fpu softvfp
  1253.     .type   _ZN11SCBlockList4initESt10shared_ptrIA_hEj, %function
  1254. _ZN11SCBlockList4initESt10shared_ptrIA_hEj:
  1255.     .fnstart
  1256. .LFB2509:
  1257.     @ Function supports interworking.
  1258.     @ args = 0, pretend = 0, frame = 48
  1259.     @ frame_needed = 1, uses_anonymous_args = 0
  1260.     push    {r4, fp, lr}    @
  1261.     .save {r4, fp, lr}
  1262.     .setfp fp, sp, #8
  1263.     add fp, sp, #8  @,,
  1264.     .pad #52
  1265.     sub sp, sp, #52 @,,
  1266.     str r0, [fp, #-48]  @ .result_ptr, .result_ptr
  1267.     str r1, [fp, #-52]  @ dataIn, dataIn
  1268.     str r2, [fp, #-56]  @ length, length
  1269. @ swshcrypto.cpp:97:     SCBlockList blocks{dataIn, length};
  1270.     sub r3, fp, #40 @ tmp116,,
  1271.     ldr r1, [fp, #-52]  @, dataIn
  1272.     mov r0, r3  @, tmp116
  1273.     bl  _ZNSt10shared_ptrIA_hEC1ERKS1_      @
  1274.     sub r3, fp, #40 @ tmp117,,
  1275.     ldr r2, [fp, #-56]  @, length
  1276.     mov r1, r3  @, tmp117
  1277.     ldr r0, [fp, #-48]  @, <retval>
  1278.     bl  _ZN11SCBlockListC1ESt10shared_ptrIA_hEj     @
  1279.     sub r3, fp, #40 @ tmp118,,
  1280.     mov r0, r3  @, tmp118
  1281.     bl  _ZNSt10shared_ptrIA_hED1Ev      @
  1282. @ swshcrypto.cpp:98:     blocks.reserve(3000);
  1283.     ldr r3, [fp, #-48]  @ _1, <retval>
  1284.     ldr r1, .L72    @,
  1285.     mov r0, r3  @, _1
  1286. .LEHB0:
  1287.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj     @
  1288. @ swshcrypto.cpp:99:     applyStaticXorpad(dataIn, length);
  1289.     sub r3, fp, #32 @ tmp119,,
  1290.     ldr r1, [fp, #-52]  @, dataIn
  1291.     mov r0, r3  @, tmp119
  1292.     bl  _ZNSt10shared_ptrIA_hEC1ERKS1_      @
  1293.     sub r3, fp, #32 @ tmp120,,
  1294.     ldr r1, [fp, #-56]  @, length
  1295.     mov r0, r3  @, tmp120
  1296.     bl  _ZL17applyStaticXorpadSt10shared_ptrIA_hEj      @
  1297. @ swshcrypto.cpp:99:     applyStaticXorpad(dataIn, length);
  1298.     sub r3, fp, #32 @ tmp121,,
  1299.     mov r0, r3  @, tmp121
  1300.     bl  _ZNSt10shared_ptrIA_hED1Ev      @
  1301. @ swshcrypto.cpp:100:     size_t offset = 0;
  1302.     mov r3, #0  @ tmp122,
  1303.     str r3, [fp, #-44]  @ tmp122, offset
  1304. .L67:
  1305. @ swshcrypto.cpp:101:     while (offset < length - SHA256_BLOCK_SIZE)
  1306.     ldr r3, [fp, #-56]  @ tmp123, length
  1307.     sub r2, r3, #32 @ _2, tmp123,
  1308. @ swshcrypto.cpp:101:     while (offset < length - SHA256_BLOCK_SIZE)
  1309.     ldr r3, [fp, #-44]  @ offset.2_3, offset
  1310.     cmp r2, r3  @ _2, offset.2_3
  1311.     bls .L71        @,
  1312. @ swshcrypto.cpp:103:         blocks.emplace_back(SCBlock::decryptFromOffset(dataIn.get(), offset));
  1313.     ldr r4, [fp, #-48]  @ _4, <retval>
  1314. @ swshcrypto.cpp:103:         blocks.emplace_back(SCBlock::decryptFromOffset(dataIn.get(), offset));
  1315.     ldr r3, [fp, #-52]  @ _5, dataIn
  1316.     mov r0, r3  @, _5
  1317.     bl  _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv        @
  1318.     mov r1, r0  @ _6,
  1319.     sub r3, fp, #24 @ tmp124,,
  1320.     sub r2, fp, #44 @ tmp125,,
  1321.     mov r0, r3  @, tmp124
  1322.     bl  _ZN7SCBlock17decryptFromOffsetEPhRj     @
  1323. @ swshcrypto.cpp:103:         blocks.emplace_back(SCBlock::decryptFromOffset(dataIn.get(), offset));
  1324.     sub r3, fp, #24 @ tmp126,,
  1325.     mov r1, r3  @, tmp126
  1326.     mov r0, r4  @, _4
  1327.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_        @
  1328. .LEHE0:
  1329. @ swshcrypto.cpp:101:     while (offset < length - SHA256_BLOCK_SIZE)
  1330.     b   .L67        @
  1331. .L70:
  1332. @ swshcrypto.cpp:97:     SCBlockList blocks{dataIn, length};
  1333.     ldr r0, [fp, #-48]  @, <retval>
  1334.     bl  _ZN11SCBlockListD1Ev        @
  1335. .LEHB1:
  1336.     bl  __cxa_end_cleanup       @
  1337. .LEHE1:
  1338. .L71:
  1339. @ swshcrypto.cpp:105:     return blocks;
  1340.     nop
  1341. @ swshcrypto.cpp:106: }
  1342.     ldr r0, [fp, #-48]  @, <retval>
  1343.     sub sp, fp, #8  @,,
  1344.     @ sp needed @
  1345.     pop {r4, fp, lr}    @
  1346.     bx  lr  @
  1347. .L73:
  1348.     .align  2
  1349. .L72:
  1350.     .word   3000
  1351.     .global __gxx_personality_v0
  1352.     .personality    __gxx_personality_v0
  1353.     .handlerdata
  1354. .LLSDA2509:
  1355.     .byte   0xff
  1356.     .byte   0xff
  1357.     .byte   0x1
  1358.     .uleb128 .LLSDACSE2509-.LLSDACSB2509
  1359. .LLSDACSB2509:
  1360.     .uleb128 .LEHB0-.LFB2509
  1361.     .uleb128 .LEHE0-.LEHB0
  1362.     .uleb128 .L70-.LFB2509
  1363.     .uleb128 0
  1364.     .uleb128 .LEHB1-.LFB2509
  1365.     .uleb128 .LEHE1-.LEHB1
  1366.     .uleb128 0
  1367.     .uleb128 0
  1368. .LLSDACSE2509:
  1369.     .text
  1370.     .fnend
  1371.     .size   _ZN11SCBlockList4initESt10shared_ptrIA_hEj, .-_ZN11SCBlockList4initESt10shared_ptrIA_hEj
  1372.     .align  2
  1373.     .global _ZN11SCBlockList7encryptEv
  1374.     .syntax unified
  1375.     .arm
  1376.     .fpu softvfp
  1377.     .type   _ZN11SCBlockList7encryptEv, %function
  1378. _ZN11SCBlockList7encryptEv:
  1379.     .fnstart
  1380. .LFB2522:
  1381.     @ Function supports interworking.
  1382.     @ args = 0, pretend = 0, frame = 32
  1383.     @ frame_needed = 1, uses_anonymous_args = 0
  1384.     push    {r4, fp, lr}    @
  1385.     .save {r4, fp, lr}
  1386.     .setfp fp, sp, #8
  1387.     add fp, sp, #8  @,,
  1388.     .pad #36
  1389.     sub sp, sp, #36 @,,
  1390.     str r0, [fp, #-40]  @ this, this
  1391. @ swshcrypto.cpp:110:     for (auto& block : *this)
  1392.     ldr r3, [fp, #-40]  @ tmp124, this
  1393.     str r3, [fp, #-16]  @ tmp124, __for_range
  1394.     ldr r3, [fp, #-16]  @ _1, __for_range
  1395.     mov r0, r3  @, _1
  1396.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE5beginEv       @
  1397.     mov r3, r0  @ tmp125,
  1398.     str r3, [fp, #-32]  @ tmp125, __for_begin
  1399.     ldr r3, [fp, #-16]  @ _2, __for_range
  1400.     mov r0, r3  @, _2
  1401.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE3endEv     @
  1402.     mov r3, r0  @ tmp126,
  1403.     str r3, [fp, #-36]  @ tmp126, __for_end
  1404. .L76:
  1405. @ swshcrypto.cpp:110:     for (auto& block : *this)
  1406.     sub r2, fp, #36 @ tmp127,,
  1407.     sub r3, fp, #32 @ tmp128,,
  1408.     mov r1, r2  @, tmp127
  1409.     mov r0, r3  @, tmp128
  1410.     bl  _ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_        @
  1411.     mov r3, r0  @ tmp129,
  1412.     cmp r3, #0  @ retval.13_21,
  1413.     beq .L75        @,
  1414. @ swshcrypto.cpp:110:     for (auto& block : *this)
  1415.     sub r3, fp, #32 @ tmp130,,
  1416.     mov r0, r3  @, tmp130
  1417.     bl  _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv       @
  1418.     str r0, [fp, #-20]  @, block
  1419. @ swshcrypto.cpp:112:         block.encrypt();
  1420.     ldr r0, [fp, #-20]  @, block
  1421.     bl  _ZN7SCBlock7encryptEv       @
  1422. @ swshcrypto.cpp:110:     for (auto& block : *this)
  1423.     sub r3, fp, #32 @ tmp131,,
  1424.     mov r0, r3  @, tmp131
  1425.     bl  _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv        @
  1426. @ swshcrypto.cpp:110:     for (auto& block : *this)
  1427.     b   .L76        @
  1428. .L75:
  1429. @ swshcrypto.cpp:115:     applyStaticXorpad(associatedData, length);
  1430.     ldr r3, [fp, #-40]  @ tmp132, this
  1431.     add r2, r3, #12 @ _3, tmp132,
  1432. @ swshcrypto.cpp:115:     applyStaticXorpad(associatedData, length);
  1433.     sub r3, fp, #28 @ tmp133,,
  1434.     mov r1, r2  @, _3
  1435.     mov r0, r3  @, tmp133
  1436.     bl  _ZNSt10shared_ptrIA_hEC1ERKS1_      @
  1437.     ldr r3, [fp, #-40]  @ tmp134, this
  1438.     ldr r2, [r3, #20]   @ _4, this_15(D)->length
  1439.     sub r3, fp, #28 @ tmp135,,
  1440.     mov r1, r2  @, _4
  1441.     mov r0, r3  @, tmp135
  1442.     bl  _ZL17applyStaticXorpadSt10shared_ptrIA_hEj      @
  1443. @ swshcrypto.cpp:115:     applyStaticXorpad(associatedData, length);
  1444.     sub r3, fp, #28 @ tmp136,,
  1445.     mov r0, r3  @, tmp136
  1446.     bl  _ZNSt10shared_ptrIA_hED1Ev      @
  1447. @ swshcrypto.cpp:117:     computeHash(associatedData.get() + length - SHA256_BLOCK_SIZE, associatedData.get(), length - SHA256_BLOCK_SIZE);
  1448.     ldr r3, [fp, #-40]  @ tmp137, this
  1449.     add r3, r3, #12 @ _5, tmp137,
  1450.     mov r0, r3  @, _5
  1451.     bl  _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv        @
  1452.     mov r2, r0  @ _6,
  1453. @ swshcrypto.cpp:117:     computeHash(associatedData.get() + length - SHA256_BLOCK_SIZE, associatedData.get(), length - SHA256_BLOCK_SIZE);
  1454.     ldr r3, [fp, #-40]  @ tmp138, this
  1455.     ldr r3, [r3, #20]   @ _7, this_15(D)->length
  1456. @ swshcrypto.cpp:117:     computeHash(associatedData.get() + length - SHA256_BLOCK_SIZE, associatedData.get(), length - SHA256_BLOCK_SIZE);
  1457.     sub r3, r3, #32 @ _8, _7,
  1458. @ swshcrypto.cpp:117:     computeHash(associatedData.get() + length - SHA256_BLOCK_SIZE, associatedData.get(), length - SHA256_BLOCK_SIZE);
  1459.     add r4, r2, r3  @ _9, _6, _8
  1460.     ldr r3, [fp, #-40]  @ tmp139, this
  1461.     add r3, r3, #12 @ _10, tmp139,
  1462.     mov r0, r3  @, _10
  1463.     bl  _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv        @
  1464.     mov r1, r0  @ _11,
  1465. @ swshcrypto.cpp:117:     computeHash(associatedData.get() + length - SHA256_BLOCK_SIZE, associatedData.get(), length - SHA256_BLOCK_SIZE);
  1466.     ldr r3, [fp, #-40]  @ tmp140, this
  1467.     ldr r3, [r3, #20]   @ _12, this_15(D)->length
  1468. @ swshcrypto.cpp:117:     computeHash(associatedData.get() + length - SHA256_BLOCK_SIZE, associatedData.get(), length - SHA256_BLOCK_SIZE);
  1469.     sub r3, r3, #32 @ _13, _12,
  1470.     mov r2, r3  @, _13
  1471.     mov r0, r4  @, _9
  1472.     bl  _ZL11computeHashPhS_j       @
  1473. @ swshcrypto.cpp:118: }
  1474.     nop
  1475.     sub sp, fp, #8  @,,
  1476.     @ sp needed @
  1477.     pop {r4, fp, lr}    @
  1478.     bx  lr  @
  1479.     .fnend
  1480.     .size   _ZN11SCBlockList7encryptEv, .-_ZN11SCBlockList7encryptEv
  1481.     .align  2
  1482.     .global _ZN11SCBlockList7decryptEv
  1483.     .syntax unified
  1484.     .arm
  1485.     .fpu softvfp
  1486.     .type   _ZN11SCBlockList7decryptEv, %function
  1487. _ZN11SCBlockList7decryptEv:
  1488.     .fnstart
  1489. .LFB2523:
  1490.     @ Function supports interworking.
  1491.     @ args = 0, pretend = 0, frame = 32
  1492.     @ frame_needed = 1, uses_anonymous_args = 0
  1493.     push    {fp, lr}    @
  1494.     .save {fp, lr}
  1495.     .setfp fp, sp, #4
  1496.     add fp, sp, #4  @,,
  1497.     .pad #32
  1498.     sub sp, sp, #32 @,,
  1499.     str r0, [fp, #-32]  @ this, this
  1500. @ swshcrypto.cpp:122:     applyStaticXorpad(associatedData, length);
  1501.     ldr r3, [fp, #-32]  @ tmp115, this
  1502.     add r2, r3, #12 @ _1, tmp115,
  1503. @ swshcrypto.cpp:122:     applyStaticXorpad(associatedData, length);
  1504.     sub r3, fp, #20 @ tmp116,,
  1505.     mov r1, r2  @, _1
  1506.     mov r0, r3  @, tmp116
  1507.     bl  _ZNSt10shared_ptrIA_hEC1ERKS1_      @
  1508.     ldr r3, [fp, #-32]  @ tmp117, this
  1509.     ldr r2, [r3, #20]   @ _2, this_6(D)->length
  1510.     sub r3, fp, #20 @ tmp118,,
  1511.     mov r1, r2  @, _2
  1512.     mov r0, r3  @, tmp118
  1513.     bl  _ZL17applyStaticXorpadSt10shared_ptrIA_hEj      @
  1514. @ swshcrypto.cpp:122:     applyStaticXorpad(associatedData, length);
  1515.     sub r3, fp, #20 @ tmp119,,
  1516.     mov r0, r3  @, tmp119
  1517.     bl  _ZNSt10shared_ptrIA_hED1Ev      @
  1518. @ swshcrypto.cpp:124:     for (auto& block : *this)
  1519.     ldr r3, [fp, #-32]  @ tmp120, this
  1520.     str r3, [fp, #-8]   @ tmp120, __for_range
  1521.     ldr r3, [fp, #-8]   @ _3, __for_range
  1522.     mov r0, r3  @, _3
  1523.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE5beginEv       @
  1524.     mov r3, r0  @ tmp121,
  1525.     str r3, [fp, #-24]  @ tmp121, __for_begin
  1526.     ldr r3, [fp, #-8]   @ _4, __for_range
  1527.     mov r0, r3  @, _4
  1528.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE3endEv     @
  1529.     mov r3, r0  @ tmp122,
  1530.     str r3, [fp, #-28]  @ tmp122, __for_end
  1531. .L79:
  1532. @ swshcrypto.cpp:124:     for (auto& block : *this)
  1533.     sub r2, fp, #28 @ tmp123,,
  1534.     sub r3, fp, #24 @ tmp124,,
  1535.     mov r1, r2  @, tmp123
  1536.     mov r0, r3  @, tmp124
  1537.     bl  _ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_        @
  1538.     mov r3, r0  @ tmp125,
  1539.     cmp r3, #0  @ retval.14_16,
  1540.     beq .L80        @,
  1541. @ swshcrypto.cpp:124:     for (auto& block : *this)
  1542.     sub r3, fp, #24 @ tmp126,,
  1543.     mov r0, r3  @, tmp126
  1544.     bl  _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv       @
  1545.     str r0, [fp, #-12]  @, block
  1546. @ swshcrypto.cpp:126:         block.decrypt();
  1547.     ldr r0, [fp, #-12]  @, block
  1548.     bl  _ZN7SCBlock7decryptEv       @
  1549. @ swshcrypto.cpp:124:     for (auto& block : *this)
  1550.     sub r3, fp, #24 @ tmp127,,
  1551.     mov r0, r3  @, tmp127
  1552.     bl  _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv        @
  1553. @ swshcrypto.cpp:124:     for (auto& block : *this)
  1554.     b   .L79        @
  1555. .L80:
  1556. @ swshcrypto.cpp:128: }
  1557.     nop
  1558.     sub sp, fp, #4  @,,
  1559.     @ sp needed @
  1560.     pop {fp, lr}    @
  1561.     bx  lr  @
  1562.     .fnend
  1563.     .size   _ZN11SCBlockList7decryptEv, .-_ZN11SCBlockList7decryptEv
  1564.     .align  2
  1565.     .global _ZN7SCBlock10cryptBytesEPhjjj
  1566.     .syntax unified
  1567.     .arm
  1568.     .fpu softvfp
  1569.     .type   _ZN7SCBlock10cryptBytesEPhjjj, %function
  1570. _ZN7SCBlock10cryptBytesEPhjjj:
  1571.     .fnstart
  1572. .LFB2524:
  1573.     @ Function supports interworking.
  1574.     @ args = 4, pretend = 0, frame = 32
  1575.     @ frame_needed = 1, uses_anonymous_args = 0
  1576.     push    {fp, lr}    @
  1577.     .save {fp, lr}
  1578.     .setfp fp, sp, #4
  1579.     add fp, sp, #4  @,,
  1580.     .pad #32
  1581.     sub sp, sp, #32 @,,
  1582.     str r0, [fp, #-24]  @ this, this
  1583.     str r1, [fp, #-28]  @ data, data
  1584.     str r2, [fp, #-32]  @ inputOffset, inputOffset
  1585.     str r3, [fp, #-36]  @ start, start
  1586. @ swshcrypto.cpp:132:     auto keyStream = getKeyStream(start, size);
  1587.     sub r0, fp, #20 @ tmp118,,
  1588.     ldr r3, [fp, #4]    @, size
  1589.     ldr r2, [fp, #-36]  @, start
  1590.     ldr r1, [fp, #-24]  @, this
  1591.     bl  _ZN7SCBlock12getKeyStreamEjj        @
  1592. @ swshcrypto.cpp:133:     for (size_t i = 0; i < size; i++)
  1593.     mov r3, #0  @ tmp119,
  1594.     str r3, [fp, #-8]   @ tmp119, i
  1595. .L83:
  1596. @ swshcrypto.cpp:133:     for (size_t i = 0; i < size; i++)
  1597.     ldr r2, [fp, #-8]   @ tmp120, i
  1598.     ldr r3, [fp, #4]    @ tmp121, size
  1599.     cmp r2, r3  @ tmp120, tmp121
  1600.     bcs .L82        @,
  1601. @ swshcrypto.cpp:135:         data[inputOffset + i] ^= keyStream[i];
  1602.     sub r3, fp, #20 @ tmp122,,
  1603.     ldr r1, [fp, #-8]   @, i
  1604.     mov r0, r3  @, tmp122
  1605.     bl  _ZNSt6vectorIhSaIhEEixEj        @
  1606.     mov r3, r0  @ _1,
  1607. @ swshcrypto.cpp:135:         data[inputOffset + i] ^= keyStream[i];
  1608.     ldrb    r1, [r3]    @ zero_extendqisi2  @ _17, *_1
  1609.     ldr r2, [fp, #-32]  @ tmp123, inputOffset
  1610.     ldr r3, [fp, #-8]   @ tmp124, i
  1611.     add r3, r2, r3  @ _2, tmp123, tmp124
  1612.     ldr r2, [fp, #-28]  @ tmp125, data
  1613.     add r3, r2, r3  @ _3, tmp125, _2
  1614.     ldrb    r2, [r3]    @ zero_extendqisi2  @ _4, *_3
  1615.     ldr r0, [fp, #-32]  @ tmp126, inputOffset
  1616.     ldr r3, [fp, #-8]   @ tmp127, i
  1617.     add r3, r0, r3  @ _5, tmp126, tmp127
  1618.     ldr r0, [fp, #-28]  @ tmp128, data
  1619.     add r3, r0, r3  @ _6, tmp128, _5
  1620.     eor r2, r2, r1  @ tmp129, _4, _17
  1621.     and r2, r2, #255    @ _7, tmp129,
  1622.     strb    r2, [r3]    @ tmp130, *_6
  1623. @ swshcrypto.cpp:133:     for (size_t i = 0; i < size; i++)
  1624.     ldr r3, [fp, #-8]   @ tmp132, i
  1625.     add r3, r3, #1  @ tmp131, tmp132,
  1626.     str r3, [fp, #-8]   @ tmp131, i
  1627.     b   .L83        @
  1628. .L82:
  1629. @ swshcrypto.cpp:132:     auto keyStream = getKeyStream(start, size);
  1630.     sub r3, fp, #20 @ tmp133,,
  1631.     mov r0, r3  @, tmp133
  1632.     bl  _ZNSt6vectorIhSaIhEED1Ev        @
  1633. @ swshcrypto.cpp:137: }
  1634.     nop
  1635.     sub sp, fp, #4  @,,
  1636.     @ sp needed @
  1637.     pop {fp, lr}    @
  1638.     bx  lr  @
  1639.     .fnend
  1640.     .size   _ZN7SCBlock10cryptBytesEPhjjj, .-_ZN7SCBlock10cryptBytesEPhjjj
  1641.     .section    .text._ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev,"axG",%progbits,_ZNSt12_Vector_baseIhSaIhEE12_Vector_implD5Ev,comdat
  1642.     .align  2
  1643.     .weak   _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev
  1644.     .syntax unified
  1645.     .arm
  1646.     .fpu softvfp
  1647.     .type   _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev, %function
  1648. _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev:
  1649.     .fnstart
  1650. .LFB2529:
  1651.     @ Function supports interworking.
  1652.     @ args = 0, pretend = 0, frame = 8
  1653.     @ frame_needed = 1, uses_anonymous_args = 0
  1654.     push    {fp, lr}    @
  1655.     add fp, sp, #4  @,,
  1656.     sub sp, sp, #8  @,,
  1657.     str r0, [fp, #-8]   @ this, this
  1658. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:125:       struct _Vector_impl
  1659.     ldr r0, [fp, #-8]   @, this
  1660.     bl  _ZNSaIhED2Ev        @
  1661.     ldr r3, [fp, #-8]   @ _5, this
  1662.     mov r0, r3  @, <retval>
  1663.     sub sp, fp, #4  @,,
  1664.     @ sp needed @
  1665.     pop {fp, lr}    @
  1666.     bx  lr  @
  1667.     .cantunwind
  1668.     .fnend
  1669.     .size   _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev, .-_ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev
  1670.     .weak   _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD1Ev
  1671.     .set    _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD1Ev,_ZNSt12_Vector_baseIhSaIhEE12_Vector_implD2Ev
  1672.     .text
  1673.     .align  2
  1674.     .global _ZN7SCBlock12getKeyStreamEjj
  1675.     .syntax unified
  1676.     .arm
  1677.     .fpu softvfp
  1678.     .type   _ZN7SCBlock12getKeyStreamEjj, %function
  1679. _ZN7SCBlock12getKeyStreamEjj:
  1680.     .fnstart
  1681. .LFB2525:
  1682.     @ Function supports interworking.
  1683.     @ args = 0, pretend = 0, frame = 72
  1684.     @ frame_needed = 1, uses_anonymous_args = 0
  1685.     push    {r4, r5, fp, lr}    @
  1686.     .save {r4, r5, fp, lr}
  1687.     .setfp fp, sp, #12
  1688.     add fp, sp, #12 @,,
  1689.     .pad #72
  1690.     sub sp, sp, #72 @,,
  1691.     str r0, [fp, #-72]  @ .result_ptr, .result_ptr
  1692.     str r1, [fp, #-76]  @ this, this
  1693.     str r2, [fp, #-80]  @ start, start
  1694.     str r3, [fp, #-84]  @ size, size
  1695. @ swshcrypto.cpp:141:     std::vector<u8> ret = std::vector<u8>(size, 0);
  1696.     ldr r4, [fp, #-84]  @ size.15_1, size
  1697. @ swshcrypto.cpp:141:     std::vector<u8> ret = std::vector<u8>(size, 0);
  1698.     mov r3, #0  @ tmp135,
  1699.     strb    r3, [fp, #-53]  @ tmp136, D.52168
  1700. @ swshcrypto.cpp:141:     std::vector<u8> ret = std::vector<u8>(size, 0);
  1701.     sub r3, fp, #52 @ tmp137,,
  1702.     mov r0, r3  @, tmp137
  1703.     bl  _ZNSaIhEC1Ev        @
  1704.     sub r3, fp, #52 @ tmp138,,
  1705.     sub r2, fp, #53 @ tmp139,,
  1706.     mov r1, r4  @, size.15_1
  1707.     ldr r0, [fp, #-72]  @, <retval>
  1708. .LEHB2:
  1709.     bl  _ZNSt6vectorIhSaIhEEC1EjRKhRKS0_        @
  1710. .LEHE2:
  1711. @ swshcrypto.cpp:141:     std::vector<u8> ret = std::vector<u8>(size, 0);
  1712.     sub r3, fp, #52 @ tmp140,,
  1713.     mov r0, r3  @, tmp140
  1714.     bl  _ZNSaIhED1Ev        @
  1715. @ swshcrypto.cpp:142:     u32 key             = this->key();
  1716.     ldr r0, [fp, #-76]  @, this
  1717. .LEHB3:
  1718.     bl  _ZNK7SCBlock3keyEv      @
  1719.     mov r3, r0  @ _2,
  1720. @ swshcrypto.cpp:142:     u32 key             = this->key();
  1721.     str r3, [fp, #-60]  @ _2, key
  1722. @ swshcrypto.cpp:143:     u32 popCount        = popcount(key);
  1723.     ldr r3, [fp, #-60]  @ key.16_3, key
  1724.     mov r2, r3  @ _4, key.16_3
  1725.     mov r3, #0  @ _4,
  1726.     mov r0, r2  @, _4
  1727.     mov r1, r3  @, _4
  1728.     bl  _ZN7SCBlock8popcountEy      @
  1729.     str r0, [fp, #-24]  @, popCount
  1730. @ swshcrypto.cpp:144:     for (u32 i = 0; i < popCount; i++)
  1731.     mov r3, #0  @ tmp141,
  1732.     str r3, [fp, #-16]  @ tmp141, i
  1733. .L88:
  1734. @ swshcrypto.cpp:144:     for (u32 i = 0; i < popCount; i++)
  1735.     ldr r2, [fp, #-16]  @ tmp142, i
  1736.     ldr r3, [fp, #-24]  @ tmp143, popCount
  1737.     cmp r2, r3  @ tmp142, tmp143
  1738.     bcs .L87        @,
  1739. @ swshcrypto.cpp:146:         xorshiftAdvance(key);
  1740.     sub r3, fp, #60 @ tmp144,,
  1741.     mov r0, r3  @, tmp144
  1742.     bl  _ZN7SCBlock15xorshiftAdvanceERm     @
  1743. @ swshcrypto.cpp:144:     for (u32 i = 0; i < popCount; i++)
  1744.     ldr r3, [fp, #-16]  @ tmp146, i
  1745.     add r3, r3, #1  @ tmp145, tmp146,
  1746.     str r3, [fp, #-16]  @ tmp145, i
  1747.     b   .L88        @
  1748. .L87:
  1749. @ swshcrypto.cpp:149:     size_t ofs = 0;
  1750.     mov r3, #0  @ tmp147,
  1751.     str r3, [fp, #-20]  @ tmp147, ofs
  1752. .L90:
  1753. @ swshcrypto.cpp:150:     while (ofs + 4 < start)
  1754.     ldr r3, [fp, #-20]  @ tmp148, ofs
  1755.     add r3, r3, #4  @ _5, tmp148,
  1756. @ swshcrypto.cpp:150:     while (ofs + 4 < start)
  1757.     ldr r2, [fp, #-80]  @ tmp149, start
  1758.     cmp r2, r3  @ tmp149, _5
  1759.     bls .L89        @,
  1760. @ swshcrypto.cpp:152:         xorshiftAdvance(key);
  1761.     sub r3, fp, #60 @ tmp150,,
  1762.     mov r0, r3  @, tmp150
  1763.     bl  _ZN7SCBlock15xorshiftAdvanceERm     @
  1764. @ swshcrypto.cpp:153:         ofs += 4;
  1765.     ldr r3, [fp, #-20]  @ tmp152, ofs
  1766.     add r3, r3, #4  @ tmp151, tmp152,
  1767.     str r3, [fp, #-20]  @ tmp151, ofs
  1768. @ swshcrypto.cpp:150:     while (ofs + 4 < start)
  1769.     b   .L90        @
  1770. .L89:
  1771. @ swshcrypto.cpp:156:     if (ofs < start)
  1772.     ldr r2, [fp, #-20]  @ tmp153, ofs
  1773.     ldr r3, [fp, #-80]  @ tmp154, start
  1774.     cmp r2, r3  @ tmp153, tmp154
  1775.     bcs .L93        @,
  1776. @ swshcrypto.cpp:158:         int cur_size = std::min(size, 4 - (start - ofs));
  1777.     ldr r2, [fp, #-20]  @ tmp155, ofs
  1778.     ldr r3, [fp, #-80]  @ tmp156, start
  1779.     sub r3, r2, r3  @ _6, tmp155, tmp156
  1780.     add r3, r3, #4  @ _7, _6,
  1781.     str r3, [fp, #-48]  @ _7, D.52177
  1782. @ swshcrypto.cpp:158:         int cur_size = std::min(size, 4 - (start - ofs));
  1783.     sub r2, fp, #48 @ tmp157,,
  1784.     sub r3, fp, #84 @ tmp158,,
  1785.     mov r1, r2  @, tmp157
  1786.     mov r0, r3  @, tmp158
  1787.     bl  _ZSt3minIjERKT_S2_S2_       @
  1788.     mov r3, r0  @ _8,
  1789. @ swshcrypto.cpp:158:         int cur_size = std::min(size, 4 - (start - ofs));
  1790.     ldr r3, [r3]    @ _9, *_8
  1791. @ swshcrypto.cpp:158:         int cur_size = std::min(size, 4 - (start - ofs));
  1792.     str r3, [fp, #-28]  @ _9, cur_size
  1793. @ swshcrypto.cpp:160:         Endian::convertFrom<u32>(leKeyData, key);
  1794.     sub r2, fp, #60 @ tmp159,,
  1795.     sub r3, fp, #64 @ tmp160,,
  1796.     mov r1, r2  @, tmp159
  1797.     mov r0, r3  @, tmp160
  1798.     bl  _ZN6Endian11convertFromImEEvPhRKT_      @
  1799. @ swshcrypto.cpp:161:         std::copy(leKeyData + start - ofs, leKeyData + 4, ret.begin());
  1800.     ldr r2, [fp, #-80]  @ tmp161, start
  1801.     ldr r3, [fp, #-20]  @ tmp162, ofs
  1802.     sub r3, r2, r3  @ _10, tmp161, tmp162
  1803. @ swshcrypto.cpp:161:         std::copy(leKeyData + start - ofs, leKeyData + 4, ret.begin());
  1804.     sub r2, fp, #64 @ tmp163,,
  1805.     add r5, r2, r3  @ _11, tmp163, _10
  1806.     sub r4, fp, #64 @ _12,,
  1807.     add r4, r4, #4  @ _12, _12,
  1808.     ldr r0, [fp, #-72]  @, <retval>
  1809.     bl  _ZNSt6vectorIhSaIhEE5beginEv        @
  1810.     mov r3, r0  @ D.58261,
  1811.     mov r2, r3  @, D.58261
  1812.     mov r1, r4  @, _12
  1813.     mov r0, r5  @, _11
  1814.     bl  _ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_       @
  1815. @ swshcrypto.cpp:162:         ofs = cur_size;
  1816.     ldr r3, [fp, #-28]  @ tmp164, cur_size
  1817.     str r3, [fp, #-20]  @ tmp164, ofs
  1818. @ swshcrypto.cpp:163:         xorshiftAdvance(key);
  1819.     sub r3, fp, #60 @ tmp165,,
  1820.     mov r0, r3  @, tmp165
  1821.     bl  _ZN7SCBlock15xorshiftAdvanceERm     @
  1822. .L93:
  1823. @ swshcrypto.cpp:166:     while (ofs < size)
  1824.     ldr r3, [fp, #-84]  @ size.17_13, size
  1825.     ldr r2, [fp, #-20]  @ tmp166, ofs
  1826.     cmp r2, r3  @ tmp166, size.17_13
  1827.     bcs .L99        @,
  1828. @ swshcrypto.cpp:168:         int cur_size = std::min(size - ofs, (size_t)4);
  1829.     ldr r2, [fp, #-84]  @ size.18_14, size
  1830.     ldr r3, [fp, #-20]  @ tmp167, ofs
  1831.     sub r3, r2, r3  @ _15, size.18_14, tmp167
  1832.     str r3, [fp, #-44]  @ _15, D.52284
  1833. @ swshcrypto.cpp:168:         int cur_size = std::min(size - ofs, (size_t)4);
  1834.     mov r3, #4  @ tmp168,
  1835.     str r3, [fp, #-40]  @ tmp168, D.52285
  1836. @ swshcrypto.cpp:168:         int cur_size = std::min(size - ofs, (size_t)4);
  1837.     sub r2, fp, #40 @ tmp169,,
  1838.     sub r3, fp, #44 @ tmp170,,
  1839.     mov r1, r2  @, tmp169
  1840.     mov r0, r3  @, tmp170
  1841.     bl  _ZSt3minIjERKT_S2_S2_       @
  1842.     mov r3, r0  @ _16,
  1843. @ swshcrypto.cpp:168:         int cur_size = std::min(size - ofs, (size_t)4);
  1844.     ldr r3, [r3]    @ _17, *_16
  1845. @ swshcrypto.cpp:168:         int cur_size = std::min(size - ofs, (size_t)4);
  1846.     str r3, [fp, #-32]  @ _17, cur_size
  1847. @ swshcrypto.cpp:170:         Endian::convertFrom<u32>(leKeyData, key);
  1848.     sub r2, fp, #60 @ tmp171,,
  1849.     sub r3, fp, #68 @ tmp172,,
  1850.     mov r1, r2  @, tmp171
  1851.     mov r0, r3  @, tmp172
  1852.     bl  _ZN6Endian11convertFromImEEvPhRKT_      @
  1853. @ swshcrypto.cpp:171:         std::copy(leKeyData, leKeyData + cur_size, ret.begin() + ofs);
  1854.     ldr r3, [fp, #-32]  @ cur_size.19_18, cur_size
  1855. @ swshcrypto.cpp:171:         std::copy(leKeyData, leKeyData + cur_size, ret.begin() + ofs);
  1856.     sub r2, fp, #68 @ tmp173,,
  1857.     add r4, r2, r3  @ _19, tmp173, cur_size.19_18
  1858. @ swshcrypto.cpp:171:         std::copy(leKeyData, leKeyData + cur_size, ret.begin() + ofs);
  1859.     ldr r0, [fp, #-72]  @, <retval>
  1860.     bl  _ZNSt6vectorIhSaIhEE5beginEv        @
  1861.     mov r3, r0  @ tmp174,
  1862.     str r3, [fp, #-36]  @ tmp174, D.52287
  1863. @ swshcrypto.cpp:171:         std::copy(leKeyData, leKeyData + cur_size, ret.begin() + ofs);
  1864.     ldr r2, [fp, #-20]  @ ofs.20_20, ofs
  1865.     sub r3, fp, #36 @ tmp175,,
  1866.     mov r1, r2  @, ofs.20_20
  1867.     mov r0, r3  @, tmp175
  1868.     bl  _ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi      @
  1869.     mov r2, r0  @ D.58265,
  1870.     sub r3, fp, #68 @ tmp176,,
  1871.     mov r1, r4  @, _19
  1872.     mov r0, r3  @, tmp176
  1873.     bl  _ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_       @
  1874. .LEHE3:
  1875. @ swshcrypto.cpp:172:         ofs += cur_size;
  1876.     ldr r3, [fp, #-32]  @ cur_size.21_21, cur_size
  1877. @ swshcrypto.cpp:172:         ofs += cur_size;
  1878.     ldr r2, [fp, #-20]  @ tmp178, ofs
  1879.     add r3, r2, r3  @ tmp177, tmp178, cur_size.21_21
  1880.     str r3, [fp, #-20]  @ tmp177, ofs
  1881. @ swshcrypto.cpp:173:         xorshiftAdvance(key);
  1882.     sub r3, fp, #60 @ tmp179,,
  1883.     mov r0, r3  @, tmp179
  1884.     bl  _ZN7SCBlock15xorshiftAdvanceERm     @
  1885. @ swshcrypto.cpp:166:     while (ofs < size)
  1886.     b   .L93        @
  1887. .L97:
  1888. @ swshcrypto.cpp:141:     std::vector<u8> ret = std::vector<u8>(size, 0);
  1889.     sub r3, fp, #52 @ tmp180,,
  1890.     mov r0, r3  @, tmp180
  1891.     bl  _ZNSaIhED1Ev        @
  1892. .LEHB4:
  1893.     bl  __cxa_end_cleanup       @
  1894. .L98:
  1895.     ldr r0, [fp, #-72]  @, <retval>
  1896.     bl  _ZNSt6vectorIhSaIhEED1Ev        @
  1897.     bl  __cxa_end_cleanup       @
  1898. .LEHE4:
  1899. .L99:
  1900. @ swshcrypto.cpp:176:     return ret;
  1901.     nop
  1902. @ swshcrypto.cpp:177: }
  1903.     ldr r0, [fp, #-72]  @, <retval>
  1904.     sub sp, fp, #12 @,,
  1905.     @ sp needed @
  1906.     pop {r4, r5, fp, lr}    @
  1907.     bx  lr  @
  1908.     .personality    __gxx_personality_v0
  1909.     .handlerdata
  1910. .LLSDA2525:
  1911.     .byte   0xff
  1912.     .byte   0xff
  1913.     .byte   0x1
  1914.     .uleb128 .LLSDACSE2525-.LLSDACSB2525
  1915. .LLSDACSB2525:
  1916.     .uleb128 .LEHB2-.LFB2525
  1917.     .uleb128 .LEHE2-.LEHB2
  1918.     .uleb128 .L97-.LFB2525
  1919.     .uleb128 0
  1920.     .uleb128 .LEHB3-.LFB2525
  1921.     .uleb128 .LEHE3-.LEHB3
  1922.     .uleb128 .L98-.LFB2525
  1923.     .uleb128 0
  1924.     .uleb128 .LEHB4-.LFB2525
  1925.     .uleb128 .LEHE4-.LEHB4
  1926.     .uleb128 0
  1927.     .uleb128 0
  1928. .LLSDACSE2525:
  1929.     .text
  1930.     .fnend
  1931.     .size   _ZN7SCBlock12getKeyStreamEjj, .-_ZN7SCBlock12getKeyStreamEjj
  1932.     .align  2
  1933.     .global _ZN7SCBlock17decryptFromOffsetEPhRj
  1934.     .syntax unified
  1935.     .arm
  1936.     .fpu softvfp
  1937.     .type   _ZN7SCBlock17decryptFromOffsetEPhRj, %function
  1938. _ZN7SCBlock17decryptFromOffsetEPhRj:
  1939.     .fnstart
  1940. .LFB2535:
  1941.     @ Function supports interworking.
  1942.     @ args = 0, pretend = 0, frame = 24
  1943.     @ frame_needed = 1, uses_anonymous_args = 0
  1944.     push    {fp, lr}    @
  1945.     .save {fp, lr}
  1946.     .setfp fp, sp, #4
  1947.     add fp, sp, #4  @,,
  1948.     .pad #32
  1949.     sub sp, sp, #32 @,,
  1950.     str r0, [fp, #-16]  @ .result_ptr, .result_ptr
  1951.     str r1, [fp, #-20]  @ data, data
  1952.     str r2, [fp, #-24]  @ offset, offset
  1953. @ swshcrypto.cpp:181:     SCBlock block{data + offset};
  1954.     ldr r3, [fp, #-24]  @ tmp166, offset
  1955.     ldr r3, [r3]    @ _1, *offset_57(D)
  1956. @ swshcrypto.cpp:181:     SCBlock block{data + offset};
  1957.     ldr r2, [fp, #-20]  @ tmp167, data
  1958.     add r3, r2, r3  @ _2, tmp167, _1
  1959.     mov r1, r3  @, _2
  1960.     ldr r0, [fp, #-16]  @, .result_ptr
  1961.     bl  _ZN7SCBlockC1EPh        @
  1962. @ swshcrypto.cpp:183:     offset += 4;
  1963.     ldr r3, [fp, #-24]  @ tmp168, offset
  1964.     ldr r3, [r3]    @ _3, *offset_57(D)
  1965.     add r2, r3, #4  @ _4, _3,
  1966.     ldr r3, [fp, #-24]  @ tmp169, offset
  1967.     str r2, [r3]    @ _4, *offset_57(D)
  1968. @ swshcrypto.cpp:185:     block.cryptBytes(data, offset, 0, 1);
  1969.     ldr r3, [fp, #-24]  @ tmp170, offset
  1970.     ldr r2, [r3]    @ _5, *offset_57(D)
  1971.     mov r3, #1  @ tmp171,
  1972.     str r3, [sp]    @ tmp171,
  1973.     mov r3, #0  @,
  1974.     ldr r1, [fp, #-20]  @, data
  1975.     ldr r0, [fp, #-16]  @, .result_ptr
  1976.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  1977. @ swshcrypto.cpp:187:     block.type = SCBlockType(*(data + offset));
  1978.     ldr r3, [fp, #-24]  @ tmp172, offset
  1979.     ldr r3, [r3]    @ _6, *offset_57(D)
  1980.     ldr r2, [fp, #-20]  @ tmp173, data
  1981.     add r3, r2, r3  @ _7, tmp173, _6
  1982. @ swshcrypto.cpp:187:     block.type = SCBlockType(*(data + offset));
  1983.     ldrb    r2, [r3]    @ zero_extendqisi2  @ _8, *_7
  1984. @ swshcrypto.cpp:187:     block.type = SCBlockType(*(data + offset));
  1985.     ldr r3, [fp, #-16]  @ tmp174, .result_ptr
  1986.     strb    r2, [r3, #8]    @ tmp175, <retval>.type
  1987. @ swshcrypto.cpp:189:     switch (block.type)
  1988.     ldr r3, [fp, #-16]  @ tmp176, .result_ptr
  1989.     ldrb    r3, [r3, #8]    @ zero_extendqisi2  @ _9, <retval>.type
  1990.     sub r3, r3, #1  @ tmp177, _9,
  1991.     cmp r3, #16 @ tmp177,
  1992.     ldrls   pc, [pc, r3, asl #2]    @ tmp177
  1993.     b   .L101   @
  1994. .L103:
  1995.     .word   .L106
  1996.     .word   .L106
  1997.     .word   .L106
  1998.     .word   .L105
  1999.     .word   .L104
  2000.     .word   .L101
  2001.     .word   .L101
  2002.     .word   .L102
  2003.     .word   .L102
  2004.     .word   .L102
  2005.     .word   .L102
  2006.     .word   .L102
  2007.     .word   .L102
  2008.     .word   .L102
  2009.     .word   .L102
  2010.     .word   .L102
  2011.     .word   .L102
  2012. .L106:
  2013. @ swshcrypto.cpp:195:             offset++;
  2014.     ldr r3, [fp, #-24]  @ tmp178, offset
  2015.     ldr r3, [r3]    @ _10, *offset_57(D)
  2016. @ swshcrypto.cpp:195:             offset++;
  2017.     add r2, r3, #1  @ _11, _10,
  2018.     ldr r3, [fp, #-24]  @ tmp179, offset
  2019.     str r2, [r3]    @ _11, *offset_57(D)
  2020. @ swshcrypto.cpp:196:             break;
  2021.     b   .L107       @
  2022. .L105:
  2023. @ swshcrypto.cpp:199:             block.cryptBytes(data, offset, 1, 4);
  2024.     ldr r3, [fp, #-24]  @ tmp180, offset
  2025.     ldr r2, [r3]    @ _12, *offset_57(D)
  2026.     mov r3, #4  @ tmp181,
  2027.     str r3, [sp]    @ tmp181,
  2028.     mov r3, #1  @,
  2029.     ldr r1, [fp, #-20]  @, data
  2030.     ldr r0, [fp, #-16]  @, .result_ptr
  2031.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2032. @ swshcrypto.cpp:200:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2033.     ldr r3, [fp, #-24]  @ tmp182, offset
  2034.     ldr r3, [r3]    @ _13, *offset_57(D)
  2035. @ swshcrypto.cpp:200:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2036.     add r3, r3, #1  @ _14, _13,
  2037.     ldr r2, [fp, #-20]  @ tmp183, data
  2038.     add r3, r2, r3  @ _15, tmp183, _14
  2039. @ swshcrypto.cpp:200:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2040.     mov r0, r3  @, _15
  2041.     bl  _ZN6Endian9convertToImEET_PKh       @
  2042.     mov r2, r0  @ _16,
  2043. @ swshcrypto.cpp:200:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2044.     ldr r3, [fp, #-16]  @ tmp184, .result_ptr
  2045.     str r2, [r3, #4]    @ _16, <retval>.dataLength
  2046. @ swshcrypto.cpp:201:             block.cryptBytes(data, offset, 5, block.dataLength);
  2047.     ldr r3, [fp, #-24]  @ tmp185, offset
  2048.     ldr r2, [r3]    @ _17, *offset_57(D)
  2049. @ swshcrypto.cpp:201:             block.cryptBytes(data, offset, 5, block.dataLength);
  2050.     ldr r3, [fp, #-16]  @ tmp186, .result_ptr
  2051.     ldr r3, [r3, #4]    @ _18, <retval>.dataLength
  2052. @ swshcrypto.cpp:201:             block.cryptBytes(data, offset, 5, block.dataLength);
  2053.     str r3, [sp]    @ _18,
  2054.     mov r3, #5  @,
  2055.     ldr r1, [fp, #-20]  @, data
  2056.     ldr r0, [fp, #-16]  @, .result_ptr
  2057.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2058. @ swshcrypto.cpp:202:             offset += 5 + block.dataLength;
  2059.     ldr r3, [fp, #-24]  @ tmp187, offset
  2060.     ldr r2, [r3]    @ _19, *offset_57(D)
  2061. @ swshcrypto.cpp:202:             offset += 5 + block.dataLength;
  2062.     ldr r3, [fp, #-16]  @ tmp188, .result_ptr
  2063.     ldr r3, [r3, #4]    @ _20, <retval>.dataLength
  2064. @ swshcrypto.cpp:202:             offset += 5 + block.dataLength;
  2065.     add r3, r2, r3  @ _21, _19, _20
  2066.     add r2, r3, #5  @ _22, _21,
  2067.     ldr r3, [fp, #-24]  @ tmp189, offset
  2068.     str r2, [r3]    @ _22, *offset_57(D)
  2069. @ swshcrypto.cpp:204:         break;
  2070.     b   .L107       @
  2071. .L104:
  2072. @ swshcrypto.cpp:207:             block.cryptBytes(data, offset, 1, 4);
  2073.     ldr r3, [fp, #-24]  @ tmp190, offset
  2074.     ldr r2, [r3]    @ _23, *offset_57(D)
  2075.     mov r3, #4  @ tmp191,
  2076.     str r3, [sp]    @ tmp191,
  2077.     mov r3, #1  @,
  2078.     ldr r1, [fp, #-20]  @, data
  2079.     ldr r0, [fp, #-16]  @, .result_ptr
  2080.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2081. @ swshcrypto.cpp:208:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2082.     ldr r3, [fp, #-24]  @ tmp192, offset
  2083.     ldr r3, [r3]    @ _24, *offset_57(D)
  2084. @ swshcrypto.cpp:208:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2085.     add r3, r3, #1  @ _25, _24,
  2086.     ldr r2, [fp, #-20]  @ tmp193, data
  2087.     add r3, r2, r3  @ _26, tmp193, _25
  2088. @ swshcrypto.cpp:208:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2089.     mov r0, r3  @, _26
  2090.     bl  _ZN6Endian9convertToImEET_PKh       @
  2091.     mov r2, r0  @ _27,
  2092. @ swshcrypto.cpp:208:             block.dataLength = Endian::convertTo<u32>(data + offset + 1);
  2093.     ldr r3, [fp, #-16]  @ tmp194, .result_ptr
  2094.     str r2, [r3, #4]    @ _27, <retval>.dataLength
  2095. @ swshcrypto.cpp:209:             block.cryptBytes(data, offset, 5, 1);
  2096.     ldr r3, [fp, #-24]  @ tmp195, offset
  2097.     ldr r2, [r3]    @ _28, *offset_57(D)
  2098.     mov r3, #1  @ tmp196,
  2099.     str r3, [sp]    @ tmp196,
  2100.     mov r3, #5  @,
  2101.     ldr r1, [fp, #-20]  @, data
  2102.     ldr r0, [fp, #-16]  @, .result_ptr
  2103.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2104. @ swshcrypto.cpp:210:             block.subtype = SCBlockType(*(data + offset + 5));
  2105.     ldr r3, [fp, #-24]  @ tmp197, offset
  2106.     ldr r3, [r3]    @ _29, *offset_57(D)
  2107. @ swshcrypto.cpp:210:             block.subtype = SCBlockType(*(data + offset + 5));
  2108.     add r3, r3, #5  @ _30, _29,
  2109.     ldr r2, [fp, #-20]  @ tmp198, data
  2110.     add r3, r2, r3  @ _31, tmp198, _30
  2111. @ swshcrypto.cpp:210:             block.subtype = SCBlockType(*(data + offset + 5));
  2112.     ldrb    r2, [r3]    @ zero_extendqisi2  @ _32, *_31
  2113. @ swshcrypto.cpp:210:             block.subtype = SCBlockType(*(data + offset + 5));
  2114.     ldr r3, [fp, #-16]  @ tmp199, .result_ptr
  2115.     strb    r2, [r3, #9]    @ tmp200, <retval>.subtype
  2116. @ swshcrypto.cpp:211:             switch (block.subtype)
  2117.     ldr r3, [fp, #-16]  @ tmp201, .result_ptr
  2118.     ldrb    r3, [r3, #9]    @ zero_extendqisi2  @ _33, <retval>.subtype
  2119.     cmp r3, #3  @ _33,
  2120.     beq .L108       @,
  2121.     cmp r3, #3  @ _33,
  2122.     bcc .L109       @,
  2123.     sub r3, r3, #8  @ tmp204, _33,
  2124.     and r3, r3, #255    @ _88, tmp204,
  2125.     cmp r3, #9  @ _88,
  2126.     bhi .L109       @,
  2127.     b   .L113       @
  2128. .L108:
  2129. @ swshcrypto.cpp:215:                     block.cryptBytes(data, offset, 6, block.dataLength);
  2130.     ldr r3, [fp, #-24]  @ tmp207, offset
  2131.     ldr r2, [r3]    @ _34, *offset_57(D)
  2132. @ swshcrypto.cpp:215:                     block.cryptBytes(data, offset, 6, block.dataLength);
  2133.     ldr r3, [fp, #-16]  @ tmp208, .result_ptr
  2134.     ldr r3, [r3, #4]    @ _35, <retval>.dataLength
  2135. @ swshcrypto.cpp:215:                     block.cryptBytes(data, offset, 6, block.dataLength);
  2136.     str r3, [sp]    @ _35,
  2137.     mov r3, #6  @,
  2138.     ldr r1, [fp, #-20]  @, data
  2139.     ldr r0, [fp, #-16]  @, .result_ptr
  2140.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2141. @ swshcrypto.cpp:216:                     offset += 6 + block.dataLength;
  2142.     ldr r3, [fp, #-24]  @ tmp209, offset
  2143.     ldr r2, [r3]    @ _36, *offset_57(D)
  2144. @ swshcrypto.cpp:216:                     offset += 6 + block.dataLength;
  2145.     ldr r3, [fp, #-16]  @ tmp210, .result_ptr
  2146.     ldr r3, [r3, #4]    @ _37, <retval>.dataLength
  2147. @ swshcrypto.cpp:216:                     offset += 6 + block.dataLength;
  2148.     add r3, r2, r3  @ _38, _36, _37
  2149.     add r2, r3, #6  @ _39, _38,
  2150.     ldr r3, [fp, #-24]  @ tmp211, offset
  2151.     str r2, [r3]    @ _39, *offset_57(D)
  2152. @ swshcrypto.cpp:217:                     break;
  2153.     b   .L111       @
  2154. .L113:
  2155. @ swshcrypto.cpp:229:                     size_t entrySize = arrayEntrySize(block.subtype);
  2156.     ldr r3, [fp, #-16]  @ tmp212, .result_ptr
  2157.     ldrb    r3, [r3, #9]    @ zero_extendqisi2  @ _40, <retval>.subtype
  2158.     mov r0, r3  @, _40
  2159.     bl  _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE       @
  2160.     mov r3, r0  @ _74,
  2161.     str r3, [fp, #-12]  @ _74, entrySize
  2162. @ swshcrypto.cpp:230:                     block.cryptBytes(data, offset, 6, block.dataLength * entrySize);
  2163.     ldr r3, [fp, #-24]  @ tmp213, offset
  2164.     ldr r1, [r3]    @ _41, *offset_57(D)
  2165. @ swshcrypto.cpp:230:                     block.cryptBytes(data, offset, 6, block.dataLength * entrySize);
  2166.     ldr r3, [fp, #-16]  @ tmp214, .result_ptr
  2167.     ldr r3, [r3, #4]    @ _42, <retval>.dataLength
  2168. @ swshcrypto.cpp:230:                     block.cryptBytes(data, offset, 6, block.dataLength * entrySize);
  2169.     ldr r2, [fp, #-12]  @ tmp215, entrySize
  2170.     mul r3, r2, r3  @ _43, tmp215, _43
  2171. @ swshcrypto.cpp:230:                     block.cryptBytes(data, offset, 6, block.dataLength * entrySize);
  2172.     str r3, [sp]    @ _43,
  2173.     mov r3, #6  @,
  2174.     mov r2, r1  @, _41
  2175.     ldr r1, [fp, #-20]  @, data
  2176.     ldr r0, [fp, #-16]  @, .result_ptr
  2177.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2178. @ swshcrypto.cpp:231:                     offset += 6 + (block.dataLength * entrySize);
  2179.     ldr r3, [fp, #-24]  @ tmp216, offset
  2180.     ldr r2, [r3]    @ _44, *offset_57(D)
  2181. @ swshcrypto.cpp:231:                     offset += 6 + (block.dataLength * entrySize);
  2182.     ldr r3, [fp, #-16]  @ tmp217, .result_ptr
  2183.     ldr r3, [r3, #4]    @ _45, <retval>.dataLength
  2184. @ swshcrypto.cpp:231:                     offset += 6 + (block.dataLength * entrySize);
  2185.     ldr r1, [fp, #-12]  @ tmp218, entrySize
  2186.     mul r3, r1, r3  @ _46, tmp218, _46
  2187. @ swshcrypto.cpp:231:                     offset += 6 + (block.dataLength * entrySize);
  2188.     add r3, r2, r3  @ _47, _44, _46
  2189.     add r2, r3, #6  @ _48, _47,
  2190.     ldr r3, [fp, #-24]  @ tmp219, offset
  2191.     str r2, [r3]    @ _48, *offset_57(D)
  2192. @ swshcrypto.cpp:233:                 break;
  2193.     b   .L111       @
  2194. .L109:
  2195. @ swshcrypto.cpp:236:                     std::abort();
  2196.     bl  abort       @
  2197. .L111:
  2198. @ swshcrypto.cpp:239:         break;
  2199.     b   .L107       @
  2200. .L102:
  2201. @ swshcrypto.cpp:251:             size_t entrySize = arrayEntrySize(block.type);
  2202.     ldr r3, [fp, #-16]  @ tmp220, .result_ptr
  2203.     ldrb    r3, [r3, #8]    @ zero_extendqisi2  @ _49, <retval>.type
  2204.     mov r0, r3  @, _49
  2205.     bl  _ZN7SCBlock14arrayEntrySizeENS_11SCBlockTypeE       @
  2206.     mov r3, r0  @ _64,
  2207.     str r3, [fp, #-8]   @ _64, entrySize
  2208. @ swshcrypto.cpp:252:             block.cryptBytes(data, offset, 1, entrySize);
  2209.     ldr r3, [fp, #-24]  @ tmp221, offset
  2210.     ldr r2, [r3]    @ _50, *offset_57(D)
  2211.     ldr r3, [fp, #-8]   @ tmp222, entrySize
  2212.     str r3, [sp]    @ tmp222,
  2213.     mov r3, #1  @,
  2214.     ldr r1, [fp, #-20]  @, data
  2215.     ldr r0, [fp, #-16]  @, .result_ptr
  2216.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2217. @ swshcrypto.cpp:253:             offset += 1 + entrySize;
  2218.     ldr r3, [fp, #-24]  @ tmp223, offset
  2219.     ldr r2, [r3]    @ _51, *offset_57(D)
  2220.     ldr r3, [fp, #-8]   @ tmp224, entrySize
  2221.     add r3, r2, r3  @ _52, _51, tmp224
  2222.     add r2, r3, #1  @ _53, _52,
  2223.     ldr r3, [fp, #-24]  @ tmp225, offset
  2224.     str r2, [r3]    @ _53, *offset_57(D)
  2225. @ swshcrypto.cpp:255:         break;
  2226.     b   .L107       @
  2227. .L101:
  2228. @ swshcrypto.cpp:258:             std::abort();
  2229.     bl  abort       @
  2230. .L107:
  2231. @ swshcrypto.cpp:261:     return block;
  2232.     nop
  2233. @ swshcrypto.cpp:262: }
  2234.     ldr r0, [fp, #-16]  @, .result_ptr
  2235.     sub sp, fp, #4  @,,
  2236.     @ sp needed @
  2237.     pop {fp, lr}    @
  2238.     bx  lr  @
  2239.     .fnend
  2240.     .size   _ZN7SCBlock17decryptFromOffsetEPhRj, .-_ZN7SCBlock17decryptFromOffsetEPhRj
  2241.     .align  2
  2242.     .global _ZN7SCBlock7encryptEv
  2243.     .syntax unified
  2244.     .arm
  2245.     .fpu softvfp
  2246.     .type   _ZN7SCBlock7encryptEv, %function
  2247. _ZN7SCBlock7encryptEv:
  2248.     .fnstart
  2249. .LFB2536:
  2250.     @ Function supports interworking.
  2251.     @ args = 0, pretend = 0, frame = 16
  2252.     @ frame_needed = 1, uses_anonymous_args = 0
  2253.     push    {r4, fp, lr}    @
  2254.     .save {r4, fp, lr}
  2255.     .setfp fp, sp, #8
  2256.     add fp, sp, #8  @,,
  2257.     .pad #28
  2258.     sub sp, sp, #28 @,,
  2259.     str r0, [fp, #-24]  @ this, this
  2260. @ swshcrypto.cpp:266:     data[4]       = u8(type);
  2261.     ldr r3, [fp, #-24]  @ tmp128, this
  2262.     ldr r3, [r3]    @ _1, this_21(D)->data
  2263. @ swshcrypto.cpp:266:     data[4]       = u8(type);
  2264.     add r3, r3, #4  @ _2, _1,
  2265. @ swshcrypto.cpp:266:     data[4]       = u8(type);
  2266.     ldr r2, [fp, #-24]  @ tmp129, this
  2267.     ldrb    r2, [r2, #8]    @ zero_extendqisi2  @ _3, this_21(D)->type
  2268. @ swshcrypto.cpp:266:     data[4]       = u8(type);
  2269.     strb    r2, [r3]    @ tmp130, *_2
  2270. @ swshcrypto.cpp:267:     size_t outOfs = 5;
  2271.     mov r3, #5  @ tmp131,
  2272.     str r3, [fp, #-16]  @ tmp131, outOfs
  2273. @ swshcrypto.cpp:269:     if (type == SCBlockType::Data)
  2274.     ldr r3, [fp, #-24]  @ tmp132, this
  2275.     ldrb    r3, [r3, #8]    @ zero_extendqisi2  @ _4, this_21(D)->type
  2276. @ swshcrypto.cpp:269:     if (type == SCBlockType::Data)
  2277.     cmp r3, #4  @ _4,
  2278.     bne .L115       @,
  2279. @ swshcrypto.cpp:271:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2280.     ldr r3, [fp, #-24]  @ tmp133, this
  2281.     ldr r2, [r3]    @ _5, this_21(D)->data
  2282. @ swshcrypto.cpp:271:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2283.     ldr r3, [fp, #-16]  @ tmp134, outOfs
  2284.     add r2, r2, r3  @ _6, _5, tmp134
  2285. @ swshcrypto.cpp:271:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2286.     ldr r3, [fp, #-24]  @ tmp135, this
  2287.     add r3, r3, #4  @ _7, tmp135,
  2288. @ swshcrypto.cpp:271:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2289.     mov r1, r3  @, _7
  2290.     mov r0, r2  @, _6
  2291.     bl  _ZN6Endian11convertFromImEEvPhRKT_      @
  2292. @ swshcrypto.cpp:272:         outOfs += 4;
  2293.     ldr r3, [fp, #-16]  @ tmp137, outOfs
  2294.     add r3, r3, #4  @ tmp136, tmp137,
  2295.     str r3, [fp, #-16]  @ tmp136, outOfs
  2296.     b   .L116       @
  2297. .L115:
  2298. @ swshcrypto.cpp:274:     else if (type == SCBlockType::Array)
  2299.     ldr r3, [fp, #-24]  @ tmp138, this
  2300.     ldrb    r3, [r3, #8]    @ zero_extendqisi2  @ _8, this_21(D)->type
  2301. @ swshcrypto.cpp:274:     else if (type == SCBlockType::Array)
  2302.     cmp r3, #5  @ _8,
  2303.     bne .L116       @,
  2304. @ swshcrypto.cpp:276:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2305.     ldr r3, [fp, #-24]  @ tmp139, this
  2306.     ldr r2, [r3]    @ _9, this_21(D)->data
  2307. @ swshcrypto.cpp:276:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2308.     ldr r3, [fp, #-16]  @ tmp140, outOfs
  2309.     add r2, r2, r3  @ _10, _9, tmp140
  2310. @ swshcrypto.cpp:276:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2311.     ldr r3, [fp, #-24]  @ tmp141, this
  2312.     add r3, r3, #4  @ _11, tmp141,
  2313. @ swshcrypto.cpp:276:         Endian::convertFrom<u32>(data + outOfs, dataLength);
  2314.     mov r1, r3  @, _11
  2315.     mov r0, r2  @, _10
  2316.     bl  _ZN6Endian11convertFromImEEvPhRKT_      @
  2317. @ swshcrypto.cpp:277:         data[outOfs + 4] = u8(subtype);
  2318.     ldr r3, [fp, #-24]  @ tmp142, this
  2319.     ldr r2, [r3]    @ _12, this_21(D)->data
  2320. @ swshcrypto.cpp:277:         data[outOfs + 4] = u8(subtype);
  2321.     ldr r3, [fp, #-16]  @ tmp143, outOfs
  2322.     add r3, r3, #4  @ _13, tmp143,
  2323.     add r3, r2, r3  @ _14, _12, _13
  2324. @ swshcrypto.cpp:277:         data[outOfs + 4] = u8(subtype);
  2325.     ldr r2, [fp, #-24]  @ tmp144, this
  2326.     ldrb    r2, [r2, #9]    @ zero_extendqisi2  @ _15, this_21(D)->subtype
  2327. @ swshcrypto.cpp:277:         data[outOfs + 4] = u8(subtype);
  2328.     strb    r2, [r3]    @ tmp145, *_14
  2329. @ swshcrypto.cpp:278:         outOfs += 5;
  2330.     ldr r3, [fp, #-16]  @ tmp147, outOfs
  2331.     add r3, r3, #5  @ tmp146, tmp147,
  2332.     str r3, [fp, #-16]  @ tmp146, outOfs
  2333. .L116:
  2334. @ swshcrypto.cpp:281:     cryptBytes(data, 4, 0, encryptedDataSize() - 4);
  2335.     ldr r3, [fp, #-24]  @ tmp148, this
  2336.     ldr r4, [r3]    @ _16, this_21(D)->data
  2337. @ swshcrypto.cpp:281:     cryptBytes(data, 4, 0, encryptedDataSize() - 4);
  2338.     ldr r0, [fp, #-24]  @, this
  2339.     bl  _ZN7SCBlock17encryptedDataSizeEv        @
  2340.     mov r3, r0  @ _17,
  2341. @ swshcrypto.cpp:281:     cryptBytes(data, 4, 0, encryptedDataSize() - 4);
  2342.     sub r3, r3, #4  @ _18, _17,
  2343.     str r3, [sp]    @ _18,
  2344.     mov r3, #0  @,
  2345.     mov r2, #4  @,
  2346.     mov r1, r4  @, _16
  2347.     ldr r0, [fp, #-24]  @, this
  2348.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2349. @ swshcrypto.cpp:282: }
  2350.     nop
  2351.     sub sp, fp, #8  @,,
  2352.     @ sp needed @
  2353.     pop {r4, fp, lr}    @
  2354.     bx  lr  @
  2355.     .fnend
  2356.     .size   _ZN7SCBlock7encryptEv, .-_ZN7SCBlock7encryptEv
  2357.     .align  2
  2358.     .global _ZN7SCBlock7decryptEv
  2359.     .syntax unified
  2360.     .arm
  2361.     .fpu softvfp
  2362.     .type   _ZN7SCBlock7decryptEv, %function
  2363. _ZN7SCBlock7decryptEv:
  2364.     .fnstart
  2365. .LFB2537:
  2366.     @ Function supports interworking.
  2367.     @ args = 0, pretend = 0, frame = 8
  2368.     @ frame_needed = 1, uses_anonymous_args = 0
  2369.     push    {r4, fp, lr}    @
  2370.     .save {r4, fp, lr}
  2371.     .setfp fp, sp, #8
  2372.     add fp, sp, #8  @,,
  2373.     .pad #20
  2374.     sub sp, sp, #20 @,,
  2375.     str r0, [fp, #-16]  @ this, this
  2376. @ swshcrypto.cpp:286:     cryptBytes(data, 4, 0, encryptedDataSize() - 4);
  2377.     ldr r3, [fp, #-16]  @ tmp113, this
  2378.     ldr r4, [r3]    @ _1, this_5(D)->data
  2379. @ swshcrypto.cpp:286:     cryptBytes(data, 4, 0, encryptedDataSize() - 4);
  2380.     ldr r0, [fp, #-16]  @, this
  2381.     bl  _ZN7SCBlock17encryptedDataSizeEv        @
  2382.     mov r3, r0  @ _2,
  2383. @ swshcrypto.cpp:286:     cryptBytes(data, 4, 0, encryptedDataSize() - 4);
  2384.     sub r3, r3, #4  @ _3, _2,
  2385.     str r3, [sp]    @ _3,
  2386.     mov r3, #0  @,
  2387.     mov r2, #4  @,
  2388.     mov r1, r4  @, _1
  2389.     ldr r0, [fp, #-16]  @, this
  2390.     bl  _ZN7SCBlock10cryptBytesEPhjjj       @
  2391. @ swshcrypto.cpp:287: }
  2392.     nop
  2393.     sub sp, fp, #8  @,,
  2394.     @ sp needed @
  2395.     pop {r4, fp, lr}    @
  2396.     bx  lr  @
  2397.     .fnend
  2398.     .size   _ZN7SCBlock7decryptEv, .-_ZN7SCBlock7decryptEv
  2399.     .align  2
  2400.     .global _ZNK7SCBlock3keyEv
  2401.     .syntax unified
  2402.     .arm
  2403.     .fpu softvfp
  2404.     .type   _ZNK7SCBlock3keyEv, %function
  2405. _ZNK7SCBlock3keyEv:
  2406.     .fnstart
  2407. .LFB2538:
  2408.     @ Function supports interworking.
  2409.     @ args = 0, pretend = 0, frame = 8
  2410.     @ frame_needed = 1, uses_anonymous_args = 0
  2411.     push    {fp, lr}    @
  2412.     add fp, sp, #4  @,,
  2413.     sub sp, sp, #8  @,,
  2414.     str r0, [fp, #-8]   @ this, this
  2415. @ swshcrypto.cpp:291:     return Endian::convertTo<u32>(data);
  2416.     ldr r3, [fp, #-8]   @ tmp113, this
  2417.     ldr r3, [r3]    @ _1, this_3(D)->data
  2418. @ swshcrypto.cpp:291:     return Endian::convertTo<u32>(data);
  2419.     mov r0, r3  @, _1
  2420.     bl  _ZN6Endian9convertToImEET_PKh       @
  2421.     mov r3, r0  @ _5,
  2422. @ swshcrypto.cpp:292: }
  2423.     mov r0, r3  @, <retval>
  2424.     sub sp, fp, #4  @,,
  2425.     @ sp needed @
  2426.     pop {fp, lr}    @
  2427.     bx  lr  @
  2428.     .cantunwind
  2429.     .fnend
  2430.     .size   _ZNK7SCBlock3keyEv, .-_ZNK7SCBlock3keyEv
  2431.     .align  2
  2432.     .global _ZN7SCBlock3keyEm
  2433.     .syntax unified
  2434.     .arm
  2435.     .fpu softvfp
  2436.     .type   _ZN7SCBlock3keyEm, %function
  2437. _ZN7SCBlock3keyEm:
  2438.     .fnstart
  2439. .LFB2539:
  2440.     @ Function supports interworking.
  2441.     @ args = 0, pretend = 0, frame = 8
  2442.     @ frame_needed = 1, uses_anonymous_args = 0
  2443.     push    {fp, lr}    @
  2444.     add fp, sp, #4  @,,
  2445.     sub sp, sp, #8  @,,
  2446.     str r0, [fp, #-8]   @ this, this
  2447.     str r1, [fp, #-12]  @ v, v
  2448. @ swshcrypto.cpp:295:     Endian::convertFrom<u32>(data, v);
  2449.     ldr r3, [fp, #-8]   @ tmp111, this
  2450.     ldr r3, [r3]    @ _1, this_3(D)->data
  2451.     sub r2, fp, #12 @ tmp112,,
  2452.     mov r1, r2  @, tmp112
  2453.     mov r0, r3  @, _1
  2454.     bl  _ZN6Endian11convertFromImEEvPhRKT_      @
  2455. @ swshcrypto.cpp:296: }
  2456.     nop
  2457.     sub sp, fp, #4  @,,
  2458.     @ sp needed @
  2459.     pop {fp, lr}    @
  2460.     bx  lr  @
  2461.     .cantunwind
  2462.     .fnend
  2463.     .size   _ZN7SCBlock3keyEm, .-_ZN7SCBlock3keyEm
  2464.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC5Ev,comdat
  2465.     .align  2
  2466.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev
  2467.     .syntax unified
  2468.     .arm
  2469.     .fpu softvfp
  2470.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev, %function
  2471. _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev:
  2472.     .fnstart
  2473. .LFB2788:
  2474.     @ Function supports interworking.
  2475.     @ args = 0, pretend = 0, frame = 8
  2476.     @ frame_needed = 1, uses_anonymous_args = 0
  2477.     push    {fp, lr}    @
  2478.     add fp, sp, #4  @,,
  2479.     sub sp, sp, #8  @,,
  2480.     str r0, [fp, #-8]   @ this, this
  2481. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:130:   : _Tp_alloc_type()
  2482.     ldr r0, [fp, #-8]   @, this
  2483.     bl  _ZNSaI7SCBlockEC2Ev     @
  2484.     ldr r3, [fp, #-8]   @ _1, this
  2485.     mov r0, r3  @, _1
  2486.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev     @
  2487. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:131:   { }
  2488.     ldr r3, [fp, #-8]   @ _7, this
  2489.     mov r0, r3  @, <retval>
  2490.     sub sp, fp, #4  @,,
  2491.     @ sp needed @
  2492.     pop {fp, lr}    @
  2493.     bx  lr  @
  2494.     .cantunwind
  2495.     .fnend
  2496.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev
  2497.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC1Ev
  2498.     .set    _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC1Ev,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implC2Ev
  2499.     .section    .text._ZNSaI7SCBlockED2Ev,"axG",%progbits,_ZNSaI7SCBlockED5Ev,comdat
  2500.     .align  2
  2501.     .weak   _ZNSaI7SCBlockED2Ev
  2502.     .syntax unified
  2503.     .arm
  2504.     .fpu softvfp
  2505.     .type   _ZNSaI7SCBlockED2Ev, %function
  2506. _ZNSaI7SCBlockED2Ev:
  2507.     .fnstart
  2508. .LFB2791:
  2509.     @ Function supports interworking.
  2510.     @ args = 0, pretend = 0, frame = 8
  2511.     @ frame_needed = 1, uses_anonymous_args = 0
  2512.     push    {fp, lr}    @
  2513.     add fp, sp, #4  @,,
  2514.     sub sp, sp, #8  @,,
  2515.     str r0, [fp, #-8]   @ this, this
  2516. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/allocator.h:153:       ~allocator() _GLIBCXX_NOTHROW { }
  2517.     ldr r0, [fp, #-8]   @, this
  2518.     bl  _ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev      @
  2519.     ldr r3, [fp, #-8]   @ _4, this
  2520.     mov r0, r3  @, <retval>
  2521.     sub sp, fp, #4  @,,
  2522.     @ sp needed @
  2523.     pop {fp, lr}    @
  2524.     bx  lr  @
  2525.     .cantunwind
  2526.     .fnend
  2527.     .size   _ZNSaI7SCBlockED2Ev, .-_ZNSaI7SCBlockED2Ev
  2528.     .weak   _ZNSaI7SCBlockED1Ev
  2529.     .set    _ZNSaI7SCBlockED1Ev,_ZNSaI7SCBlockED2Ev
  2530.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EED5Ev,comdat
  2531.     .align  2
  2532.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev
  2533.     .syntax unified
  2534.     .arm
  2535.     .fpu softvfp
  2536.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev, %function
  2537. _ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev:
  2538.     .fnstart
  2539. .LFB2794:
  2540.     @ Function supports interworking.
  2541.     @ args = 0, pretend = 0, frame = 8
  2542.     @ frame_needed = 1, uses_anonymous_args = 0
  2543.     push    {fp, lr}    @
  2544.     .save {fp, lr}
  2545.     .setfp fp, sp, #4
  2546.     add fp, sp, #4  @,,
  2547.     .pad #8
  2548.     sub sp, sp, #8  @,,
  2549.     str r0, [fp, #-8]   @ this, this
  2550. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:332:   _M_deallocate(_M_impl._M_start,
  2551.     ldr r3, [fp, #-8]   @ tmp119, this
  2552.     ldr r0, [r3]    @ _1, this_9(D)->_M_impl.D.48217._M_start
  2553. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:333:             _M_impl._M_end_of_storage - _M_impl._M_start);
  2554.     ldr r3, [fp, #-8]   @ tmp120, this
  2555.     ldr r2, [r3, #8]    @ _2, this_9(D)->_M_impl.D.48217._M_end_of_storage
  2556. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:333:             _M_impl._M_end_of_storage - _M_impl._M_start);
  2557.     ldr r3, [fp, #-8]   @ tmp121, this
  2558.     ldr r3, [r3]    @ _3, this_9(D)->_M_impl.D.48217._M_start
  2559. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:333:             _M_impl._M_end_of_storage - _M_impl._M_start);
  2560.     sub r3, r2, r3  @ _4, _2, _3
  2561.     asr r2, r3, #2  @ tmp122, _4,
  2562.     mov r3, r2  @ tmp123, tmp122
  2563.     lsl r3, r3, #2  @ tmp123, tmp123,
  2564.     add r3, r3, r2  @ tmp123, tmp123, tmp122
  2565.     lsl r1, r3, #4  @ tmp124, tmp123,
  2566.     add r3, r3, r1  @ tmp123, tmp123, tmp124
  2567.     lsl r1, r3, #8  @ tmp125, tmp123,
  2568.     add r3, r3, r1  @ tmp123, tmp123, tmp125
  2569.     lsl r1, r3, #16 @ tmp126, tmp123,
  2570.     add r3, r3, r1  @ tmp123, tmp123, tmp126
  2571.     lsl r3, r3, #1  @ tmp123, tmp123,
  2572.     add r3, r3, r2  @ tmp123, tmp123, tmp122
  2573. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:332:   _M_deallocate(_M_impl._M_start,
  2574.     mov r2, r3  @, _6
  2575.     mov r1, r0  @, _1
  2576.     ldr r0, [fp, #-8]   @, this
  2577.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j       @
  2578. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:334:       }
  2579.     ldr r3, [fp, #-8]   @ _7, this
  2580.     mov r0, r3  @, _7
  2581.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE12_Vector_implD1Ev      @
  2582.     ldr r3, [fp, #-8]   @ _13, this
  2583.     mov r0, r3  @, <retval>
  2584.     sub sp, fp, #4  @,,
  2585.     @ sp needed @
  2586.     pop {fp, lr}    @
  2587.     bx  lr  @
  2588.     .personality    __gxx_personality_v0
  2589.     .handlerdata
  2590. .LLSDA2794:
  2591.     .byte   0xff
  2592.     .byte   0xff
  2593.     .byte   0x1
  2594.     .uleb128 .LLSDACSE2794-.LLSDACSB2794
  2595. .LLSDACSB2794:
  2596. .LLSDACSE2794:
  2597.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EED5Ev,comdat
  2598.     .fnend
  2599.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev
  2600.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EED1Ev
  2601.     .set    _ZNSt12_Vector_baseI7SCBlockSaIS0_EED1Ev,_ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev
  2602.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EED2Ev,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EED5Ev,comdat
  2603.     .align  2
  2604.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EED2Ev
  2605.     .syntax unified
  2606.     .arm
  2607.     .fpu softvfp
  2608.     .type   _ZNSt6vectorI7SCBlockSaIS0_EED2Ev, %function
  2609. _ZNSt6vectorI7SCBlockSaIS0_EED2Ev:
  2610.     .fnstart
  2611. .LFB2797:
  2612.     @ Function supports interworking.
  2613.     @ args = 0, pretend = 0, frame = 8
  2614.     @ frame_needed = 1, uses_anonymous_args = 0
  2615.     push    {r4, r5, fp, lr}    @
  2616.     .save {r4, r5, fp, lr}
  2617.     .setfp fp, sp, #12
  2618.     add fp, sp, #12 @,,
  2619.     .pad #8
  2620.     sub sp, sp, #8  @,,
  2621.     str r0, [fp, #-16]  @ this, this
  2622. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:677:   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
  2623.     ldr r3, [fp, #-16]  @ tmp117, this
  2624.     ldr r4, [r3]    @ _1, this_7(D)->D.48917._M_impl.D.48217._M_start
  2625.     ldr r3, [fp, #-16]  @ tmp118, this
  2626.     ldr r5, [r3, #4]    @ _2, this_7(D)->D.48917._M_impl.D.48217._M_finish
  2627. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:678:             _M_get_Tp_allocator());
  2628.     ldr r3, [fp, #-16]  @ _3, this
  2629.     mov r0, r3  @, _3
  2630.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv     @
  2631.     mov r3, r0  @ _4,
  2632. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:677:   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
  2633.     mov r2, r3  @, _4
  2634.     mov r1, r5  @, _2
  2635.     mov r0, r4  @, _1
  2636.     bl  _ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E       @
  2637. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:680:       }
  2638.     ldr r3, [fp, #-16]  @ _5, this
  2639.     mov r0, r3  @, _5
  2640.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EED2Ev        @
  2641.     ldr r3, [fp, #-16]  @ _12, this
  2642.     mov r0, r3  @, <retval>
  2643.     sub sp, fp, #12 @,,
  2644.     @ sp needed @
  2645.     pop {r4, r5, fp, lr}    @
  2646.     bx  lr  @
  2647.     .personality    __gxx_personality_v0
  2648.     .handlerdata
  2649. .LLSDA2797:
  2650.     .byte   0xff
  2651.     .byte   0xff
  2652.     .byte   0x1
  2653.     .uleb128 .LLSDACSE2797-.LLSDACSB2797
  2654. .LLSDACSB2797:
  2655. .LLSDACSE2797:
  2656.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EED2Ev,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EED5Ev,comdat
  2657.     .fnend
  2658.     .size   _ZNSt6vectorI7SCBlockSaIS0_EED2Ev, .-_ZNSt6vectorI7SCBlockSaIS0_EED2Ev
  2659.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EED1Ev
  2660.     .set    _ZNSt6vectorI7SCBlockSaIS0_EED1Ev,_ZNSt6vectorI7SCBlockSaIS0_EED2Ev
  2661.     .section    .text._ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_,"axG",%progbits,_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC5ERKS2_,comdat
  2662.     .align  2
  2663.     .weak   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_
  2664.     .syntax unified
  2665.     .arm
  2666.     .fpu softvfp
  2667.     .type   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_, %function
  2668. _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_:
  2669.     .fnstart
  2670. .LFB2800:
  2671.     @ Function supports interworking.
  2672.     @ args = 0, pretend = 0, frame = 8
  2673.     @ frame_needed = 1, uses_anonymous_args = 0
  2674.     push    {fp, lr}    @
  2675.     add fp, sp, #4  @,,
  2676.     sub sp, sp, #8  @,,
  2677.     str r0, [fp, #-8]   @ this, this
  2678.     str r1, [fp, #-12]  @ __r, __r
  2679. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:734:       : _M_pi(__r._M_pi)
  2680.     ldr r3, [fp, #-12]  @ tmp115, __r
  2681.     ldr r2, [r3]    @ _1, __r_8(D)->_M_pi
  2682. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:734:       : _M_pi(__r._M_pi)
  2683.     ldr r3, [fp, #-8]   @ tmp116, this
  2684.     str r2, [r3]    @ _1, this_6(D)->_M_pi
  2685. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:736:  if (_M_pi != 0)
  2686.     ldr r3, [fp, #-8]   @ tmp117, this
  2687.     ldr r3, [r3]    @ _2, this_6(D)->_M_pi
  2688. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:736:  if (_M_pi != 0)
  2689.     cmp r3, #0  @ _2,
  2690.     beq .L130       @,
  2691. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:737:    _M_pi->_M_add_ref_copy();
  2692.     ldr r3, [fp, #-8]   @ tmp118, this
  2693.     ldr r3, [r3]    @ _3, this_6(D)->_M_pi
  2694.     mov r0, r3  @, _3
  2695.     bl  _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE15_M_add_ref_copyEv       @
  2696. .L130:
  2697. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:738:       }
  2698.     ldr r3, [fp, #-8]   @ _11, this
  2699.     mov r0, r3  @, <retval>
  2700.     sub sp, fp, #4  @,,
  2701.     @ sp needed @
  2702.     pop {fp, lr}    @
  2703.     bx  lr  @
  2704.     .cantunwind
  2705.     .fnend
  2706.     .size   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_, .-_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_
  2707.     .weak   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC1ERKS2_
  2708.     .set    _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC1ERKS2_,_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EEC2ERKS2_
  2709.     .section    .text._ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev,"axG",%progbits,_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED5Ev,comdat
  2710.     .align  2
  2711.     .weak   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev
  2712.     .syntax unified
  2713.     .arm
  2714.     .fpu softvfp
  2715.     .type   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev, %function
  2716. _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev:
  2717.     .fnstart
  2718. .LFB2803:
  2719.     @ Function supports interworking.
  2720.     @ args = 0, pretend = 0, frame = 8
  2721.     @ frame_needed = 1, uses_anonymous_args = 0
  2722.     push    {fp, lr}    @
  2723.     add fp, sp, #4  @,,
  2724.     sub sp, sp, #8  @,,
  2725.     str r0, [fp, #-8]   @ this, this
  2726. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:729:  if (_M_pi != nullptr)
  2727.     ldr r3, [fp, #-8]   @ tmp114, this
  2728.     ldr r3, [r3]    @ _1, this_5(D)->_M_pi
  2729. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:729:  if (_M_pi != nullptr)
  2730.     cmp r3, #0  @ _1,
  2731.     beq .L133       @,
  2732. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:730:    _M_pi->_M_release();
  2733.     ldr r3, [fp, #-8]   @ tmp115, this
  2734.     ldr r3, [r3]    @ _2, this_5(D)->_M_pi
  2735.     mov r0, r3  @, _2
  2736.     bl  _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE0EE10_M_releaseEv        @
  2737. .L133:
  2738. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:731:       }
  2739.     ldr r3, [fp, #-8]   @ _8, this
  2740.     mov r0, r3  @, <retval>
  2741.     sub sp, fp, #4  @,,
  2742.     @ sp needed @
  2743.     pop {fp, lr}    @
  2744.     bx  lr  @
  2745.     .cantunwind
  2746.     .fnend
  2747.     .size   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev, .-_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev
  2748.     .weak   _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED1Ev
  2749.     .set    _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED1Ev,_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE0EED2Ev
  2750.     .section    .text._ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi,"axG",%progbits,_ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi,comdat
  2751.     .align  2
  2752.     .weak   _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi
  2753.     .syntax unified
  2754.     .arm
  2755.     .fpu softvfp
  2756.     .type   _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi, %function
  2757. _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi:
  2758.     .fnstart
  2759. .LFB2805:
  2760.     @ Function supports interworking.
  2761.     @ args = 0, pretend = 0, frame = 8
  2762.     @ frame_needed = 1, uses_anonymous_args = 0
  2763.     push    {fp, lr}    @
  2764.     add fp, sp, #4  @,,
  2765.     sub sp, sp, #8  @,,
  2766.     str r0, [fp, #-8]   @ this, this
  2767.     str r1, [fp, #-12]  @ __i, __i
  2768. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1070:     return _M_get()[__i];
  2769.     ldr r0, [fp, #-8]   @, this
  2770.     bl  _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv      @
  2771.     mov r2, r0  @ _1,
  2772. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1070:     return _M_get()[__i];
  2773.     ldr r3, [fp, #-12]  @ __i.1_2, __i
  2774. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1070:     return _M_get()[__i];
  2775.     add r3, r2, r3  @ _7, _1, __i.1_2
  2776. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1071:       }
  2777.     mov r0, r3  @, <retval>
  2778.     sub sp, fp, #4  @,,
  2779.     @ sp needed @
  2780.     pop {fp, lr}    @
  2781.     bx  lr  @
  2782.     .cantunwind
  2783.     .fnend
  2784.     .size   _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi, .-_ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EEixEi
  2785.     .section    .rodata
  2786.     .align  2
  2787. .LC0:
  2788.     .ascii  "vector::reserve\000"
  2789.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj,comdat
  2790.     .align  2
  2791.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj
  2792.     .syntax unified
  2793.     .arm
  2794.     .fpu softvfp
  2795.     .type   _ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj, %function
  2796. _ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj:
  2797.     .fnstart
  2798. .LFB2806:
  2799.     @ Function supports interworking.
  2800.     @ args = 0, pretend = 0, frame = 16
  2801.     @ frame_needed = 1, uses_anonymous_args = 0
  2802.     push    {r4, r5, fp, lr}    @
  2803.     .save {r4, r5, fp, lr}
  2804.     .setfp fp, sp, #12
  2805.     add fp, sp, #12 @,,
  2806.     .pad #16
  2807.     sub sp, sp, #16 @,,
  2808.     str r0, [fp, #-24]  @ this, this
  2809.     str r1, [fp, #-28]  @ __n, __n
  2810. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:69:       if (__n > this->max_size())
  2811.     ldr r0, [fp, #-24]  @, this
  2812.     bl  _ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv       @
  2813.     mov r2, r0  @ _1,
  2814.     ldr r3, [fp, #-28]  @ tmp133, __n
  2815.     cmp r3, r2  @ tmp133, _1
  2816.     movhi   r3, #1  @ tmp134,
  2817.     movls   r3, #0  @ tmp134,
  2818.     and r3, r3, #255    @ retval.3_25, tmp132,
  2819. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:69:       if (__n > this->max_size())
  2820.     cmp r3, #0  @ retval.3_25,
  2821.     beq .L138       @,
  2822. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:70:  __throw_length_error(__N("vector::reserve"));
  2823.     ldr r0, .L141   @,
  2824.     bl  _ZSt20__throw_length_errorPKc       @
  2825. .L138:
  2826. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:71:       if (this->capacity() < __n)
  2827.     ldr r0, [fp, #-24]  @, this
  2828.     bl  _ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv       @
  2829.     mov r2, r0  @ _2,
  2830.     ldr r3, [fp, #-28]  @ tmp136, __n
  2831.     cmp r3, r2  @ tmp136, _2
  2832.     movhi   r3, #1  @ tmp137,
  2833.     movls   r3, #0  @ tmp137,
  2834.     and r3, r3, #255    @ retval.4_27, tmp135,
  2835. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:71:       if (this->capacity() < __n)
  2836.     cmp r3, #0  @ retval.4_27,
  2837.     beq .L140       @,
  2838. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:73:    const size_type __old_size = size();
  2839.     ldr r0, [fp, #-24]  @, this
  2840.     bl  _ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv       @
  2841.     str r0, [fp, #-16]  @, __old_size
  2842. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:78:        __tmp = this->_M_allocate(__n);
  2843.     ldr r3, [fp, #-24]  @ _3, this
  2844.     ldr r1, [fp, #-28]  @, __n
  2845.     mov r0, r3  @, _3
  2846.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE11_M_allocateEj     @
  2847.     mov r3, r0  @ _31,
  2848.     str r3, [fp, #-20]  @ _31, __tmp
  2849. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:79:        _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish,
  2850.     ldr r3, [fp, #-24]  @ tmp138, this
  2851.     ldr r4, [r3]    @ _4, this_22(D)->D.48917._M_impl.D.48217._M_start
  2852.     ldr r3, [fp, #-24]  @ tmp139, this
  2853.     ldr r5, [r3, #4]    @ _5, this_22(D)->D.48917._M_impl.D.48217._M_finish
  2854. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:80:            __tmp, _M_get_Tp_allocator());
  2855.     ldr r3, [fp, #-24]  @ _6, this
  2856.     mov r0, r3  @, _6
  2857.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv     @
  2858.     mov r3, r0  @ _7,
  2859. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:79:        _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish,
  2860.     ldr r2, [fp, #-20]  @, __tmp
  2861.     mov r1, r5  @, _5
  2862.     mov r0, r4  @, _4
  2863.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE11_S_relocateEPS0_S3_S3_RS1_       @
  2864. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:92:    _M_deallocate(this->_M_impl._M_start,
  2865.     ldr r0, [fp, #-24]  @ _8, this
  2866.     ldr r3, [fp, #-24]  @ tmp140, this
  2867.     ldr ip, [r3]    @ _9, this_22(D)->D.48917._M_impl.D.48217._M_start
  2868. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:93:          this->_M_impl._M_end_of_storage
  2869.     ldr r3, [fp, #-24]  @ tmp141, this
  2870.     ldr r2, [r3, #8]    @ _10, this_22(D)->D.48917._M_impl.D.48217._M_end_of_storage
  2871. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:94:          - this->_M_impl._M_start);
  2872.     ldr r3, [fp, #-24]  @ tmp142, this
  2873.     ldr r3, [r3]    @ _11, this_22(D)->D.48917._M_impl.D.48217._M_start
  2874. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:94:          - this->_M_impl._M_start);
  2875.     sub r3, r2, r3  @ _12, _10, _11
  2876.     asr r2, r3, #2  @ tmp143, _12,
  2877.     mov r3, r2  @ tmp144, tmp143
  2878.     lsl r3, r3, #2  @ tmp144, tmp144,
  2879.     add r3, r3, r2  @ tmp144, tmp144, tmp143
  2880.     lsl r1, r3, #4  @ tmp145, tmp144,
  2881.     add r3, r3, r1  @ tmp144, tmp144, tmp145
  2882.     lsl r1, r3, #8  @ tmp146, tmp144,
  2883.     add r3, r3, r1  @ tmp144, tmp144, tmp146
  2884.     lsl r1, r3, #16 @ tmp147, tmp144,
  2885.     add r3, r3, r1  @ tmp144, tmp144, tmp147
  2886.     lsl r3, r3, #1  @ tmp144, tmp144,
  2887.     add r3, r3, r2  @ tmp144, tmp144, tmp143
  2888. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:92:    _M_deallocate(this->_M_impl._M_start,
  2889.     mov r2, r3  @, _14
  2890.     mov r1, ip  @, _9
  2891.     bl  _ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j       @
  2892. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:95:    this->_M_impl._M_start = __tmp;
  2893.     ldr r3, [fp, #-24]  @ tmp148, this
  2894.     ldr r2, [fp, #-20]  @ tmp149, __tmp
  2895.     str r2, [r3]    @ tmp149, this_22(D)->D.48917._M_impl.D.48217._M_start
  2896. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:96:    this->_M_impl._M_finish = __tmp + __old_size;
  2897.     ldr r2, [fp, #-16]  @ tmp150, __old_size
  2898.     mov r3, r2  @ tmp151, tmp150
  2899.     lsl r3, r3, #1  @ tmp151, tmp151,
  2900.     add r3, r3, r2  @ tmp151, tmp151, tmp150
  2901.     lsl r3, r3, #2  @ tmp152, tmp151,
  2902.     mov r2, r3  @ _15, tmp151
  2903.     ldr r3, [fp, #-20]  @ tmp153, __tmp
  2904.     add r2, r3, r2  @ _16, tmp153, _15
  2905. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:96:    this->_M_impl._M_finish = __tmp + __old_size;
  2906.     ldr r3, [fp, #-24]  @ tmp154, this
  2907.     str r2, [r3, #4]    @ _16, this_22(D)->D.48917._M_impl.D.48217._M_finish
  2908. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:97:    this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
  2909.     ldr r3, [fp, #-24]  @ tmp155, this
  2910.     ldr r1, [r3]    @ _17, this_22(D)->D.48917._M_impl.D.48217._M_start
  2911. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:97:    this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
  2912.     ldr r2, [fp, #-28]  @ tmp156, __n
  2913.     mov r3, r2  @ tmp157, tmp156
  2914.     lsl r3, r3, #1  @ tmp157, tmp157,
  2915.     add r3, r3, r2  @ tmp157, tmp157, tmp156
  2916.     lsl r3, r3, #2  @ tmp158, tmp157,
  2917.     add r2, r1, r3  @ _19, _17, _18
  2918. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:97:    this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
  2919.     ldr r3, [fp, #-24]  @ tmp159, this
  2920.     str r2, [r3, #8]    @ _19, this_22(D)->D.48917._M_impl.D.48217._M_end_of_storage
  2921. .L140:
  2922. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:99:     }
  2923.     nop
  2924.     sub sp, fp, #12 @,,
  2925.     @ sp needed @
  2926.     pop {r4, r5, fp, lr}    @
  2927.     bx  lr  @
  2928. .L142:
  2929.     .align  2
  2930. .L141:
  2931.     .word   .LC0
  2932.     .fnend
  2933.     .size   _ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj, .-_ZNSt6vectorI7SCBlockSaIS0_EE7reserveEj
  2934.     .section    .text._ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv,"axG",%progbits,_ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv,comdat
  2935.     .align  2
  2936.     .weak   _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv
  2937.     .syntax unified
  2938.     .arm
  2939.     .fpu softvfp
  2940.     .type   _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv, %function
  2941. _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv:
  2942.     .fnstart
  2943. .LFB2809:
  2944.     @ Function supports interworking.
  2945.     @ args = 0, pretend = 0, frame = 8
  2946.     @ frame_needed = 1, uses_anonymous_args = 0
  2947.     @ link register save eliminated.
  2948.     str fp, [sp, #-4]!  @,
  2949.     add fp, sp, #0  @,,
  2950.     sub sp, sp, #12 @,,
  2951.     str r0, [fp, #-8]   @ this, this
  2952. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1310:       { return _M_ptr; }
  2953.     ldr r3, [fp, #-8]   @ tmp112, this
  2954.     ldr r3, [r3]    @ _3, this_2(D)->_M_ptr
  2955. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1310:       { return _M_ptr; }
  2956.     mov r0, r3  @, <retval>
  2957.     add sp, fp, #0  @,,
  2958.     @ sp needed @
  2959.     ldr fp, [sp], #4    @,
  2960.     bx  lr  @
  2961.     .cantunwind
  2962.     .fnend
  2963.     .size   _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv, .-_ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv
  2964.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_,comdat
  2965.     .align  2
  2966.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_
  2967.     .syntax unified
  2968.     .arm
  2969.     .fpu softvfp
  2970.     .type   _ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_, %function
  2971. _ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_:
  2972.     .fnstart
  2973. .LFB2810:
  2974.     @ Function supports interworking.
  2975.     @ args = 0, pretend = 0, frame = 8
  2976.     @ frame_needed = 1, uses_anonymous_args = 0
  2977.     push    {r4, r5, fp, lr}    @
  2978.     .save {r4, r5, fp, lr}
  2979.     .setfp fp, sp, #12
  2980.     add fp, sp, #12 @,,
  2981.     .pad #8
  2982.     sub sp, sp, #8  @,,
  2983.     str r0, [fp, #-16]  @ this, this
  2984.     str r1, [fp, #-20]  @ __args#0, __args#0
  2985. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:112:     if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
  2986.     ldr r3, [fp, #-16]  @ tmp121, this
  2987.     ldr r2, [r3, #4]    @ _1, this_11(D)->D.48917._M_impl.D.48217._M_finish
  2988. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:112:     if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
  2989.     ldr r3, [fp, #-16]  @ tmp122, this
  2990.     ldr r3, [r3, #8]    @ _2, this_11(D)->D.48917._M_impl.D.48217._M_end_of_storage
  2991. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:112:     if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
  2992.     cmp r2, r3  @ _1, _2
  2993.     beq .L146       @,
  2994. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:115:         _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
  2995.     ldr r4, [fp, #-16]  @ _3, this
  2996. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:115:         _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
  2997.     ldr r3, [fp, #-16]  @ tmp123, this
  2998.     ldr r5, [r3, #4]    @ _4, this_11(D)->D.48917._M_impl.D.48217._M_finish
  2999.     ldr r0, [fp, #-20]  @, __args#0
  3000.     bl  _ZSt7forwardI7SCBlockEOT_RNSt16remove_referenceIS1_E4typeE      @
  3001.     mov r3, r0  @ _5,
  3002.     mov r2, r3  @, _5
  3003.     mov r1, r5  @, _4
  3004.     mov r0, r4  @, _3
  3005.     bl  _ZNSt16allocator_traitsISaI7SCBlockEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_        @
  3006. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:117:         ++this->_M_impl._M_finish;
  3007.     ldr r3, [fp, #-16]  @ tmp124, this
  3008.     ldr r3, [r3, #4]    @ _6, this_11(D)->D.48917._M_impl.D.48217._M_finish
  3009. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:117:         ++this->_M_impl._M_finish;
  3010.     add r2, r3, #12 @ _7, _6,
  3011.     ldr r3, [fp, #-16]  @ tmp125, this
  3012.     str r2, [r3, #4]    @ _7, this_11(D)->D.48917._M_impl.D.48217._M_finish
  3013.     b   .L147       @
  3014. .L146:
  3015. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:121:       _M_realloc_insert(end(), std::forward<_Args>(__args)...);
  3016.     ldr r0, [fp, #-16]  @, this
  3017.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE3endEv     @
  3018.     mov r4, r0  @ D.58142,
  3019.     ldr r0, [fp, #-20]  @, __args#0
  3020.     bl  _ZSt7forwardI7SCBlockEOT_RNSt16remove_referenceIS1_E4typeE      @
  3021.     mov r3, r0  @ _8,
  3022.     mov r2, r3  @, _8
  3023.     mov r1, r4  @, D.58142
  3024.     ldr r0, [fp, #-16]  @, this
  3025.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE17_M_realloc_insertIJS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_      @
  3026. .L147:
  3027. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:123:     return back();
  3028.     ldr r0, [fp, #-16]  @, this
  3029.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE4backEv        @
  3030.     mov r3, r0  @ _20,
  3031. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/vector.tcc:125:       }
  3032.     mov r0, r3  @, <retval>
  3033.     sub sp, fp, #12 @,,
  3034.     @ sp needed @
  3035.     pop {r4, r5, fp, lr}    @
  3036.     bx  lr  @
  3037.     .fnend
  3038.     .size   _ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_, .-_ZNSt6vectorI7SCBlockSaIS0_EE12emplace_backIJS0_EEERS0_DpOT_
  3039.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EE5beginEv,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EE5beginEv,comdat
  3040.     .align  2
  3041.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EE5beginEv
  3042.     .syntax unified
  3043.     .arm
  3044.     .fpu softvfp
  3045.     .type   _ZNSt6vectorI7SCBlockSaIS0_EE5beginEv, %function
  3046. _ZNSt6vectorI7SCBlockSaIS0_EE5beginEv:
  3047.     .fnstart
  3048. .LFB2817:
  3049.     @ Function supports interworking.
  3050.     @ args = 0, pretend = 0, frame = 16
  3051.     @ frame_needed = 1, uses_anonymous_args = 0
  3052.     push    {fp, lr}    @
  3053.     add fp, sp, #4  @,,
  3054.     sub sp, sp, #16 @,,
  3055.     str r0, [fp, #-16]  @ this, this
  3056. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:809:       { return iterator(this->_M_impl._M_start); }
  3057.     ldr r2, [fp, #-16]  @ _1, this
  3058. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:809:       { return iterator(this->_M_impl._M_start); }
  3059.     sub r3, fp, #8  @ tmp113,,
  3060.     mov r1, r2  @, _1
  3061.     mov r0, r3  @, tmp113
  3062.     bl  _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEC1ERKS2_        @
  3063.     ldr r3, [fp, #-8]   @ D.58169, D.54943
  3064. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:809:       { return iterator(this->_M_impl._M_start); }
  3065.     mov r0, r3  @, <retval>
  3066.     sub sp, fp, #4  @,,
  3067.     @ sp needed @
  3068.     pop {fp, lr}    @
  3069.     bx  lr  @
  3070.     .cantunwind
  3071.     .fnend
  3072.     .size   _ZNSt6vectorI7SCBlockSaIS0_EE5beginEv, .-_ZNSt6vectorI7SCBlockSaIS0_EE5beginEv
  3073.     .section    .text._ZNSt6vectorI7SCBlockSaIS0_EE3endEv,"axG",%progbits,_ZNSt6vectorI7SCBlockSaIS0_EE3endEv,comdat
  3074.     .align  2
  3075.     .weak   _ZNSt6vectorI7SCBlockSaIS0_EE3endEv
  3076.     .syntax unified
  3077.     .arm
  3078.     .fpu softvfp
  3079.     .type   _ZNSt6vectorI7SCBlockSaIS0_EE3endEv, %function
  3080. _ZNSt6vectorI7SCBlockSaIS0_EE3endEv:
  3081.     .fnstart
  3082. .LFB2818:
  3083.     @ Function supports interworking.
  3084.     @ args = 0, pretend = 0, frame = 16
  3085.     @ frame_needed = 1, uses_anonymous_args = 0
  3086.     push    {fp, lr}    @
  3087.     add fp, sp, #4  @,,
  3088.     sub sp, sp, #16 @,,
  3089.     str r0, [fp, #-16]  @ this, this
  3090. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:827:       { return iterator(this->_M_impl._M_finish); }
  3091.     ldr r3, [fp, #-16]  @ tmp113, this
  3092.     add r2, r3, #4  @ _1, tmp113,
  3093. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:827:       { return iterator(this->_M_impl._M_finish); }
  3094.     sub r3, fp, #8  @ tmp114,,
  3095.     mov r1, r2  @, _1
  3096.     mov r0, r3  @, tmp114
  3097.     bl  _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEC1ERKS2_        @
  3098.     ldr r3, [fp, #-8]   @ D.58145, D.54945
  3099. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:827:       { return iterator(this->_M_impl._M_finish); }
  3100.     mov r0, r3  @, <retval>
  3101.     sub sp, fp, #4  @,,
  3102.     @ sp needed @
  3103.     pop {fp, lr}    @
  3104.     bx  lr  @
  3105.     .cantunwind
  3106.     .fnend
  3107.     .size   _ZNSt6vectorI7SCBlockSaIS0_EE3endEv, .-_ZNSt6vectorI7SCBlockSaIS0_EE3endEv
  3108.     .section    .text._ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_,"axG",%progbits,_ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_,comdat
  3109.     .align  2
  3110.     .weak   _ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_
  3111.     .syntax unified
  3112.     .arm
  3113.     .fpu softvfp
  3114.     .type   _ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_, %function
  3115. _ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_:
  3116.     .fnstart
  3117. .LFB2819:
  3118.     @ Function supports interworking.
  3119.     @ args = 0, pretend = 0, frame = 8
  3120.     @ frame_needed = 1, uses_anonymous_args = 0
  3121.     push    {r4, fp, lr}    @
  3122.     add fp, sp, #8  @,,
  3123.     sub sp, sp, #12 @,,
  3124.     str r0, [fp, #-16]  @ __lhs, __lhs
  3125.     str r1, [fp, #-20]  @ __rhs, __rhs
  3126. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:910:     { return __lhs.base() != __rhs.base(); }
  3127.     ldr r0, [fp, #-16]  @, __lhs
  3128.     bl  _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEE4baseEv        @
  3129.     mov r3, r0  @ _1,
  3130.     ldr r4, [r3]    @ _2, *_1
  3131.     ldr r0, [fp, #-20]  @, __rhs
  3132.     bl  _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEE4baseEv        @
  3133.     mov r3, r0  @ _3,
  3134.     ldr r3, [r3]    @ _4, *_3
  3135. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:910:     { return __lhs.base() != __rhs.base(); }
  3136.     cmp r4, r3  @ _2, _4
  3137.     movne   r3, #1  @ tmp117,
  3138.     moveq   r3, #0  @ tmp117,
  3139.     and r3, r3, #255    @ _10, tmp116,
  3140. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:910:     { return __lhs.base() != __rhs.base(); }
  3141.     mov r0, r3  @, <retval>
  3142.     sub sp, fp, #8  @,,
  3143.     @ sp needed @
  3144.     pop {r4, fp, lr}    @
  3145.     bx  lr  @
  3146.     .cantunwind
  3147.     .fnend
  3148.     .size   _ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_, .-_ZN9__gnu_cxxneIP7SCBlockSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_
  3149.     .section    .text._ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv,"axG",%progbits,_ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv,comdat
  3150.     .align  2
  3151.     .weak   _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv
  3152.     .syntax unified
  3153.     .arm
  3154.     .fpu softvfp
  3155.     .type   _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv, %function
  3156. _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv:
  3157.     .fnstart
  3158. .LFB2820:
  3159.     @ Function supports interworking.
  3160.     @ args = 0, pretend = 0, frame = 8
  3161.     @ frame_needed = 1, uses_anonymous_args = 0
  3162.     @ link register save eliminated.
  3163.     str fp, [sp, #-4]!  @,
  3164.     add fp, sp, #0  @,,
  3165.     sub sp, sp, #12 @,,
  3166.     str r0, [fp, #-8]   @ this, this
  3167. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:829:     ++_M_current;
  3168.     ldr r3, [fp, #-8]   @ tmp114, this
  3169.     ldr r3, [r3]    @ _1, this_4(D)->_M_current
  3170. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:829:     ++_M_current;
  3171.     add r2, r3, #12 @ _2, _1,
  3172.     ldr r3, [fp, #-8]   @ tmp115, this
  3173.     str r2, [r3]    @ _2, this_4(D)->_M_current
  3174. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:830:     return *this;
  3175.     ldr r3, [fp, #-8]   @ _6, this
  3176. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:831:       }
  3177.     mov r0, r3  @, <retval>
  3178.     add sp, fp, #0  @,,
  3179.     @ sp needed @
  3180.     ldr fp, [sp], #4    @,
  3181.     bx  lr  @
  3182.     .cantunwind
  3183.     .fnend
  3184.     .size   _ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv, .-_ZN9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEppEv
  3185.     .section    .text._ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv,"axG",%progbits,_ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv,comdat
  3186.     .align  2
  3187.     .weak   _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv
  3188.     .syntax unified
  3189.     .arm
  3190.     .fpu softvfp
  3191.     .type   _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv, %function
  3192. _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv:
  3193.     .fnstart
  3194. .LFB2821:
  3195.     @ Function supports interworking.
  3196.     @ args = 0, pretend = 0, frame = 8
  3197.     @ frame_needed = 1, uses_anonymous_args = 0
  3198.     @ link register save eliminated.
  3199.     str fp, [sp, #-4]!  @,
  3200.     add fp, sp, #0  @,,
  3201.     sub sp, sp, #12 @,,
  3202.     str r0, [fp, #-8]   @ this, this
  3203. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:820:       { return *_M_current; }
  3204.     ldr r3, [fp, #-8]   @ tmp112, this
  3205.     ldr r3, [r3]    @ _3, this_2(D)->_M_current
  3206. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:820:       { return *_M_current; }
  3207.     mov r0, r3  @, <retval>
  3208.     add sp, fp, #0  @,,
  3209.     @ sp needed @
  3210.     ldr fp, [sp], #4    @,
  3211.     bx  lr  @
  3212.     .cantunwind
  3213.     .fnend
  3214.     .size   _ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv, .-_ZNK9__gnu_cxx17__normal_iteratorIP7SCBlockSt6vectorIS1_SaIS1_EEEdeEv
  3215.     .section    .text._ZNSt6vectorIhSaIhEED2Ev,"axG",%progbits,_ZNSt6vectorIhSaIhEED5Ev,comdat
  3216.     .align  2
  3217.     .weak   _ZNSt6vectorIhSaIhEED2Ev
  3218.     .syntax unified
  3219.     .arm
  3220.     .fpu softvfp
  3221.     .type   _ZNSt6vectorIhSaIhEED2Ev, %function
  3222. _ZNSt6vectorIhSaIhEED2Ev:
  3223.     .fnstart
  3224. .LFB2823:
  3225.     @ Function supports interworking.
  3226.     @ args = 0, pretend = 0, frame = 8
  3227.     @ frame_needed = 1, uses_anonymous_args = 0
  3228.     push    {r4, r5, fp, lr}    @
  3229.     .save {r4, r5, fp, lr}
  3230.     .setfp fp, sp, #12
  3231.     add fp, sp, #12 @,,
  3232.     .pad #8
  3233.     sub sp, sp, #8  @,,
  3234.     str r0, [fp, #-16]  @ this, this
  3235. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:677:   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
  3236.     ldr r3, [fp, #-16]  @ tmp117, this
  3237.     ldr r4, [r3]    @ _1, this_7(D)->D.52102._M_impl.D.51434._M_start
  3238.     ldr r3, [fp, #-16]  @ tmp118, this
  3239.     ldr r5, [r3, #4]    @ _2, this_7(D)->D.52102._M_impl.D.51434._M_finish
  3240. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:678:             _M_get_Tp_allocator());
  3241.     ldr r3, [fp, #-16]  @ _3, this
  3242.     mov r0, r3  @, _3
  3243.     bl  _ZNSt12_Vector_baseIhSaIhEE19_M_get_Tp_allocatorEv      @
  3244.     mov r3, r0  @ _4,
  3245. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:677:   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
  3246.     mov r2, r3  @, _4
  3247.     mov r1, r5  @, _2
  3248.     mov r0, r4  @, _1
  3249.     bl  _ZSt8_DestroyIPhhEvT_S1_RSaIT0_E        @
  3250. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:680:       }
  3251.     ldr r3, [fp, #-16]  @ _5, this
  3252.     mov r0, r3  @, _5
  3253.     bl  _ZNSt12_Vector_baseIhSaIhEED2Ev     @
  3254.     ldr r3, [fp, #-16]  @ _12, this
  3255.     mov r0, r3  @, <retval>
  3256.     sub sp, fp, #12 @,,
  3257.     @ sp needed @
  3258.     pop {r4, r5, fp, lr}    @
  3259.     bx  lr  @
  3260.     .personality    __gxx_personality_v0
  3261.     .handlerdata
  3262. .LLSDA2823:
  3263.     .byte   0xff
  3264.     .byte   0xff
  3265.     .byte   0x1
  3266.     .uleb128 .LLSDACSE2823-.LLSDACSB2823
  3267. .LLSDACSB2823:
  3268. .LLSDACSE2823:
  3269.     .section    .text._ZNSt6vectorIhSaIhEED2Ev,"axG",%progbits,_ZNSt6vectorIhSaIhEED5Ev,comdat
  3270.     .fnend
  3271.     .size   _ZNSt6vectorIhSaIhEED2Ev, .-_ZNSt6vectorIhSaIhEED2Ev
  3272.     .weak   _ZNSt6vectorIhSaIhEED1Ev
  3273.     .set    _ZNSt6vectorIhSaIhEED1Ev,_ZNSt6vectorIhSaIhEED2Ev
  3274.     .section    .text._ZNSt6vectorIhSaIhEEixEj,"axG",%progbits,_ZNSt6vectorIhSaIhEEixEj,comdat
  3275.     .align  2
  3276.     .weak   _ZNSt6vectorIhSaIhEEixEj
  3277.     .syntax unified
  3278.     .arm
  3279.     .fpu softvfp
  3280.     .type   _ZNSt6vectorIhSaIhEEixEj, %function
  3281. _ZNSt6vectorIhSaIhEEixEj:
  3282.     .fnstart
  3283. .LFB2825:
  3284.     @ Function supports interworking.
  3285.     @ args = 0, pretend = 0, frame = 8
  3286.     @ frame_needed = 1, uses_anonymous_args = 0
  3287.     @ link register save eliminated.
  3288.     str fp, [sp, #-4]!  @,
  3289.     add fp, sp, #0  @,,
  3290.     sub sp, sp, #12 @,,
  3291.     str r0, [fp, #-8]   @ this, this
  3292.     str r1, [fp, #-12]  @ __n, __n
  3293. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:1043:  return *(this->_M_impl._M_start + __n);
  3294.     ldr r3, [fp, #-8]   @ tmp113, this
  3295.     ldr r2, [r3]    @ _1, this_3(D)->D.52102._M_impl.D.51434._M_start
  3296. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:1043:  return *(this->_M_impl._M_start + __n);
  3297.     ldr r3, [fp, #-12]  @ tmp114, __n
  3298.     add r3, r2, r3  @ _5, _1, tmp114
  3299. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:1044:       }
  3300.     mov r0, r3  @, <retval>
  3301.     add sp, fp, #0  @,,
  3302.     @ sp needed @
  3303.     ldr fp, [sp], #4    @,
  3304.     bx  lr  @
  3305.     .cantunwind
  3306.     .fnend
  3307.     .size   _ZNSt6vectorIhSaIhEEixEj, .-_ZNSt6vectorIhSaIhEEixEj
  3308.     .section    .text._ZNSaIhEC2Ev,"axG",%progbits,_ZNSaIhEC5Ev,comdat
  3309.     .align  2
  3310.     .weak   _ZNSaIhEC2Ev
  3311.     .syntax unified
  3312.     .arm
  3313.     .fpu softvfp
  3314.     .type   _ZNSaIhEC2Ev, %function
  3315. _ZNSaIhEC2Ev:
  3316.     .fnstart
  3317. .LFB2827:
  3318.     @ Function supports interworking.
  3319.     @ args = 0, pretend = 0, frame = 8
  3320.     @ frame_needed = 1, uses_anonymous_args = 0
  3321.     push    {fp, lr}    @
  3322.     add fp, sp, #4  @,,
  3323.     sub sp, sp, #8  @,,
  3324.     str r0, [fp, #-8]   @ this, this
  3325. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/allocator.h:138:       allocator() _GLIBCXX_NOTHROW { }
  3326.     ldr r0, [fp, #-8]   @, this
  3327.     bl  _ZN9__gnu_cxx13new_allocatorIhEC2Ev     @
  3328. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/allocator.h:138:       allocator() _GLIBCXX_NOTHROW { }
  3329.     ldr r3, [fp, #-8]   @ _4, this
  3330.     mov r0, r3  @, <retval>
  3331.     sub sp, fp, #4  @,,
  3332.     @ sp needed @
  3333.     pop {fp, lr}    @
  3334.     bx  lr  @
  3335.     .cantunwind
  3336.     .fnend
  3337.     .size   _ZNSaIhEC2Ev, .-_ZNSaIhEC2Ev
  3338.     .weak   _ZNSaIhEC1Ev
  3339.     .set    _ZNSaIhEC1Ev,_ZNSaIhEC2Ev
  3340.     .section    .text._ZNSaIhED2Ev,"axG",%progbits,_ZNSaIhED5Ev,comdat
  3341.     .align  2
  3342.     .weak   _ZNSaIhED2Ev
  3343.     .syntax unified
  3344.     .arm
  3345.     .fpu softvfp
  3346.     .type   _ZNSaIhED2Ev, %function
  3347. _ZNSaIhED2Ev:
  3348.     .fnstart
  3349. .LFB2830:
  3350.     @ Function supports interworking.
  3351.     @ args = 0, pretend = 0, frame = 8
  3352.     @ frame_needed = 1, uses_anonymous_args = 0
  3353.     push    {fp, lr}    @
  3354.     add fp, sp, #4  @,,
  3355.     sub sp, sp, #8  @,,
  3356.     str r0, [fp, #-8]   @ this, this
  3357. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/allocator.h:153:       ~allocator() _GLIBCXX_NOTHROW { }
  3358.     ldr r0, [fp, #-8]   @, this
  3359.     bl  _ZN9__gnu_cxx13new_allocatorIhED2Ev     @
  3360.     ldr r3, [fp, #-8]   @ _4, this
  3361.     mov r0, r3  @, <retval>
  3362.     sub sp, fp, #4  @,,
  3363.     @ sp needed @
  3364.     pop {fp, lr}    @
  3365.     bx  lr  @
  3366.     .cantunwind
  3367.     .fnend
  3368.     .size   _ZNSaIhED2Ev, .-_ZNSaIhED2Ev
  3369.     .weak   _ZNSaIhED1Ev
  3370.     .set    _ZNSaIhED1Ev,_ZNSaIhED2Ev
  3371.     .section    .text._ZNSt6vectorIhSaIhEEC2EjRKhRKS0_,"axG",%progbits,_ZNSt6vectorIhSaIhEEC5EjRKhRKS0_,comdat
  3372.     .align  2
  3373.     .weak   _ZNSt6vectorIhSaIhEEC2EjRKhRKS0_
  3374.     .syntax unified
  3375.     .arm
  3376.     .fpu softvfp
  3377.     .type   _ZNSt6vectorIhSaIhEEC2EjRKhRKS0_, %function
  3378. _ZNSt6vectorIhSaIhEEC2EjRKhRKS0_:
  3379.     .fnstart
  3380. .LFB2833:
  3381.     @ Function supports interworking.
  3382.     @ args = 0, pretend = 0, frame = 16
  3383.     @ frame_needed = 1, uses_anonymous_args = 0
  3384.     push    {r4, fp, lr}    @
  3385.     .save {r4, fp, lr}
  3386.     .setfp fp, sp, #8
  3387.     add fp, sp, #8  @,,
  3388.     .pad #20
  3389.     sub sp, sp, #20 @,,
  3390.     str r0, [fp, #-16]  @ this, this
  3391.     str r1, [fp, #-20]  @ __n, __n
  3392.     str r2, [fp, #-24]  @ __value, __value
  3393.     str r3, [fp, #-28]  @ __a, __a
  3394. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:521:       : _Base(_S_check_init_len(__n, __a), __a)
  3395.     ldr r4, [fp, #-16]  @ _1, this
  3396.     ldr r1, [fp, #-28]  @, __a
  3397.     ldr r0, [fp, #-20]  @, __n
  3398. .LEHB5:
  3399.     bl  _ZNSt6vectorIhSaIhEE17_S_check_init_lenEjRKS0_      @
  3400.     mov r3, r0  @ _2,
  3401.     ldr r2, [fp, #-28]  @, __a
  3402.     mov r1, r3  @, _2
  3403.     mov r0, r4  @, _1
  3404.     bl  _ZNSt12_Vector_baseIhSaIhEEC2EjRKS0_        @
  3405. .LEHE5:
  3406. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:522:       { _M_fill_initialize(__n, __value); }
  3407.     ldr r2, [fp, #-24]  @, __value
  3408.     ldr r1, [fp, #-20]  @, __n
  3409.     ldr r0, [fp, #-16]  @, this
  3410. .LEHB6:
  3411.     bl  _ZNSt6vectorIhSaIhEE18_M_fill_initializeEjRKh       @
  3412. .LEHE6:
  3413. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:522:       { _M_fill_initialize(__n, __value); }
  3414.     ldr r3, [fp, #-16]  @ _14, this
  3415.     b   .L171       @
  3416. .L170:
  3417. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:521:       : _Base(_S_check_init_len(__n, __a), __a)
  3418.     ldr r3, [fp, #-16]  @ _3, this
  3419.     mov r0, r3  @, _3
  3420.     bl  _ZNSt12_Vector_baseIhSaIhEED2Ev     @
  3421. .LEHB7:
  3422.     bl  __cxa_end_cleanup       @
  3423. .LEHE7:
  3424. .L171:
  3425. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:522:       { _M_fill_initialize(__n, __value); }
  3426.     mov r0, r3  @, <retval>
  3427.     sub sp, fp, #8  @,,
  3428.     @ sp needed @
  3429.     pop {r4, fp, lr}    @
  3430.     bx  lr  @
  3431.     .personality    __gxx_personality_v0
  3432.     .handlerdata
  3433. .LLSDA2833:
  3434.     .byte   0xff
  3435.     .byte   0xff
  3436.     .byte   0x1
  3437.     .uleb128 .LLSDACSE2833-.LLSDACSB2833
  3438. .LLSDACSB2833:
  3439.     .uleb128 .LEHB5-.LFB2833
  3440.     .uleb128 .LEHE5-.LEHB5
  3441.     .uleb128 0
  3442.     .uleb128 0
  3443.     .uleb128 .LEHB6-.LFB2833
  3444.     .uleb128 .LEHE6-.LEHB6
  3445.     .uleb128 .L170-.LFB2833
  3446.     .uleb128 0
  3447.     .uleb128 .LEHB7-.LFB2833
  3448.     .uleb128 .LEHE7-.LEHB7
  3449.     .uleb128 0
  3450.     .uleb128 0
  3451. .LLSDACSE2833:
  3452.     .section    .text._ZNSt6vectorIhSaIhEEC2EjRKhRKS0_,"axG",%progbits,_ZNSt6vectorIhSaIhEEC5EjRKhRKS0_,comdat
  3453.     .fnend
  3454.     .size   _ZNSt6vectorIhSaIhEEC2EjRKhRKS0_, .-_ZNSt6vectorIhSaIhEEC2EjRKhRKS0_
  3455.     .weak   _ZNSt6vectorIhSaIhEEC1EjRKhRKS0_
  3456.     .set    _ZNSt6vectorIhSaIhEEC1EjRKhRKS0_,_ZNSt6vectorIhSaIhEEC2EjRKhRKS0_
  3457.     .section    .text._ZSt3minIjERKT_S2_S2_,"axG",%progbits,_ZSt3minIjERKT_S2_S2_,comdat
  3458.     .align  2
  3459.     .weak   _ZSt3minIjERKT_S2_S2_
  3460.     .syntax unified
  3461.     .arm
  3462.     .fpu softvfp
  3463.     .type   _ZSt3minIjERKT_S2_S2_, %function
  3464. _ZSt3minIjERKT_S2_S2_:
  3465.     .fnstart
  3466. .LFB2835:
  3467.     @ Function supports interworking.
  3468.     @ args = 0, pretend = 0, frame = 8
  3469.     @ frame_needed = 1, uses_anonymous_args = 0
  3470.     @ link register save eliminated.
  3471.     str fp, [sp, #-4]!  @,
  3472.     add fp, sp, #0  @,,
  3473.     sub sp, sp, #12 @,,
  3474.     str r0, [fp, #-8]   @ __a, __a
  3475.     str r1, [fp, #-12]  @ __b, __b
  3476. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:203:       if (__b < __a)
  3477.     ldr r3, [fp, #-12]  @ tmp114, __b
  3478.     ldr r2, [r3]    @ _1, *__b_5(D)
  3479.     ldr r3, [fp, #-8]   @ tmp115, __a
  3480.     ldr r3, [r3]    @ _2, *__a_6(D)
  3481. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:203:       if (__b < __a)
  3482.     cmp r2, r3  @ _1, _2
  3483.     bcs .L173       @,
  3484. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:204:     return __b;
  3485.     ldr r3, [fp, #-12]  @ _3, __b
  3486.     b   .L174       @
  3487. .L173:
  3488. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:205:       return __a;
  3489.     ldr r3, [fp, #-8]   @ _3, __a
  3490. .L174:
  3491. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:206:     }
  3492.     mov r0, r3  @, <retval>
  3493.     add sp, fp, #0  @,,
  3494.     @ sp needed @
  3495.     ldr fp, [sp], #4    @,
  3496.     bx  lr  @
  3497.     .cantunwind
  3498.     .fnend
  3499.     .size   _ZSt3minIjERKT_S2_S2_, .-_ZSt3minIjERKT_S2_S2_
  3500.     .section    .text._ZN6Endian11convertFromImEEvPhRKT_,"axG",%progbits,_ZN6Endian11convertFromImEEvPhRKT_,comdat
  3501.     .align  2
  3502.     .weak   _ZN6Endian11convertFromImEEvPhRKT_
  3503.     .syntax unified
  3504.     .arm
  3505.     .fpu softvfp
  3506.     .type   _ZN6Endian11convertFromImEEvPhRKT_, %function
  3507. _ZN6Endian11convertFromImEEvPhRKT_:
  3508.     .fnstart
  3509. .LFB2836:
  3510.     @ Function supports interworking.
  3511.     @ args = 0, pretend = 0, frame = 8
  3512.     @ frame_needed = 1, uses_anonymous_args = 0
  3513.     push    {fp, lr}    @
  3514.     add fp, sp, #4  @,,
  3515.     sub sp, sp, #8  @,,
  3516.     str r0, [fp, #-8]   @ dest, dest
  3517.     str r1, [fp, #-12]  @ orig, orig
  3518. @ ../include/utils/endian.hpp:56:         memcpy(dest, &orig, sizeof(T));
  3519.     mov r2, #4  @,
  3520.     ldr r1, [fp, #-12]  @, orig
  3521.     ldr r0, [fp, #-8]   @, dest
  3522.     bl  memcpy      @
  3523. @ ../include/utils/endian.hpp:60:     }
  3524.     nop
  3525.     sub sp, fp, #4  @,,
  3526.     @ sp needed @
  3527.     pop {fp, lr}    @
  3528.     bx  lr  @
  3529.     .cantunwind
  3530.     .fnend
  3531.     .size   _ZN6Endian11convertFromImEEvPhRKT_, .-_ZN6Endian11convertFromImEEvPhRKT_
  3532.     .section    .text._ZNSt6vectorIhSaIhEE5beginEv,"axG",%progbits,_ZNSt6vectorIhSaIhEE5beginEv,comdat
  3533.     .align  2
  3534.     .weak   _ZNSt6vectorIhSaIhEE5beginEv
  3535.     .syntax unified
  3536.     .arm
  3537.     .fpu softvfp
  3538.     .type   _ZNSt6vectorIhSaIhEE5beginEv, %function
  3539. _ZNSt6vectorIhSaIhEE5beginEv:
  3540.     .fnstart
  3541. .LFB2837:
  3542.     @ Function supports interworking.
  3543.     @ args = 0, pretend = 0, frame = 16
  3544.     @ frame_needed = 1, uses_anonymous_args = 0
  3545.     push    {fp, lr}    @
  3546.     add fp, sp, #4  @,,
  3547.     sub sp, sp, #16 @,,
  3548.     str r0, [fp, #-16]  @ this, this
  3549. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:809:       { return iterator(this->_M_impl._M_start); }
  3550.     ldr r2, [fp, #-16]  @ _1, this
  3551. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:809:       { return iterator(this->_M_impl._M_start); }
  3552.     sub r3, fp, #8  @ tmp113,,
  3553.     mov r1, r2  @, _1
  3554.     mov r0, r3  @, tmp113
  3555.     bl  _ZN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEC1ERKS1_       @
  3556.     ldr r3, [fp, #-8]   @ D.58353, D.55040
  3557. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:809:       { return iterator(this->_M_impl._M_start); }
  3558.     mov r0, r3  @, <retval>
  3559.     sub sp, fp, #4  @,,
  3560.     @ sp needed @
  3561.     pop {fp, lr}    @
  3562.     bx  lr  @
  3563.     .cantunwind
  3564.     .fnend
  3565.     .size   _ZNSt6vectorIhSaIhEE5beginEv, .-_ZNSt6vectorIhSaIhEE5beginEv
  3566.     .section    .text._ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_,"axG",%progbits,_ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_,comdat
  3567.     .align  2
  3568.     .weak   _ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_
  3569.     .syntax unified
  3570.     .arm
  3571.     .fpu softvfp
  3572.     .type   _ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_, %function
  3573. _ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_:
  3574.     .fnstart
  3575. .LFB2838:
  3576.     @ Function supports interworking.
  3577.     @ args = 0, pretend = 0, frame = 16
  3578.     @ frame_needed = 1, uses_anonymous_args = 0
  3579.     push    {r4, fp, lr}    @
  3580.     .save {r4, fp, lr}
  3581.     .setfp fp, sp, #8
  3582.     add fp, sp, #8  @,,
  3583.     .pad #20
  3584.     sub sp, sp, #20 @,,
  3585.     str r0, [fp, #-16]  @ __first, __first
  3586.     str r1, [fp, #-20]  @ __last, __last
  3587.     str r2, [fp, #-24]  @ __result, __result
  3588. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:474:          (std::__miter_base(__first), std::__miter_base(__last), __result);
  3589.     ldr r0, [fp, #-16]  @, __first
  3590.     bl  _ZSt12__miter_baseIPhET_S1_     @
  3591.     mov r4, r0  @ _1,
  3592.     ldr r0, [fp, #-20]  @, __last
  3593.     bl  _ZSt12__miter_baseIPhET_S1_     @
  3594.     mov r3, r0  @ _2,
  3595.     ldr r2, [fp, #-24]  @, __result
  3596.     mov r1, r3  @, _2
  3597.     mov r0, r4  @, _1
  3598.     bl  _ZSt14__copy_move_a2ILb0EPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET1_T0_S8_S7_       @
  3599.     mov r3, r0  @ D.58362,
  3600. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_algobase.h:475:     }
  3601.     mov r0, r3  @, <retval>
  3602.     sub sp, fp, #8  @,,
  3603.     @ sp needed @
  3604.     pop {r4, fp, lr}    @
  3605.     bx  lr  @
  3606.     .fnend
  3607.     .size   _ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_, .-_ZSt4copyIPhN9__gnu_cxx17__normal_iteratorIS0_St6vectorIhSaIhEEEEET0_T_S8_S7_
  3608.     .section    .text._ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi,"axG",%progbits,_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi,comdat
  3609.     .align  2
  3610.     .weak   _ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi
  3611.     .syntax unified
  3612.     .arm
  3613.     .fpu softvfp
  3614.     .type   _ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi, %function
  3615. _ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi:
  3616.     .fnstart
  3617. .LFB2839:
  3618.     @ Function supports interworking.
  3619.     @ args = 0, pretend = 0, frame = 16
  3620.     @ frame_needed = 1, uses_anonymous_args = 0
  3621.     push    {fp, lr}    @
  3622.     add fp, sp, #4  @,,
  3623.     sub sp, sp, #16 @,,
  3624.     str r0, [fp, #-16]  @ this, this
  3625.     str r1, [fp, #-20]  @ __n, __n
  3626. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:860:       { return __normal_iterator(_M_current + __n); }
  3627.     ldr r3, [fp, #-16]  @ tmp115, this
  3628.     ldr r2, [r3]    @ _1, this_5(D)->_M_current
  3629. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:860:       { return __normal_iterator(_M_current + __n); }
  3630.     ldr r3, [fp, #-20]  @ __n.26_2, __n
  3631. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:860:       { return __normal_iterator(_M_current + __n); }
  3632.     add r3, r2, r3  @ _3, _1, __n.26_2
  3633.     str r3, [fp, #-8]   @ _3, D.55076
  3634. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:860:       { return __normal_iterator(_M_current + __n); }
  3635.     sub r2, fp, #8  @ tmp116,,
  3636.     sub r3, fp, #12 @ tmp117,,
  3637.     mov r1, r2  @, tmp116
  3638.     mov r0, r3  @, tmp117
  3639.     bl  _ZN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEC1ERKS1_       @
  3640.     ldr r3, [fp, #-12]  @ D.58358, D.55077
  3641. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_iterator.h:860:       { return __normal_iterator(_M_current + __n); }
  3642.     mov r0, r3  @, <retval>
  3643.     sub sp, fp, #4  @,,
  3644.     @ sp needed @
  3645.     pop {fp, lr}    @
  3646.     bx  lr  @
  3647.     .cantunwind
  3648.     .fnend
  3649.     .size   _ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi, .-_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEi
  3650.     .section    .text._ZNSt12_Vector_baseIhSaIhEED2Ev,"axG",%progbits,_ZNSt12_Vector_baseIhSaIhEED5Ev,comdat
  3651.     .align  2
  3652.     .weak   _ZNSt12_Vector_baseIhSaIhEED2Ev
  3653.     .syntax unified
  3654.     .arm
  3655.     .fpu softvfp
  3656.     .type   _ZNSt12_Vector_baseIhSaIhEED2Ev, %function
  3657. _ZNSt12_Vector_baseIhSaIhEED2Ev:
  3658.     .fnstart
  3659. .LFB2844:
  3660.     @ Function supports interworking.
  3661.     @ args = 0, pretend = 0, frame = 8
  3662.     @ frame_needed = 1, uses_anonymous_args = 0
  3663.     push    {fp, lr}    @
  3664.     .save {fp, lr}
  3665.     .setfp fp, sp, #4
  3666.     add fp, sp, #4  @,,
  3667.     .pad #8
  3668.     sub sp, sp, #8  @,,
  3669.     str r0, [fp, #-8]   @ this, this
  3670. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:332:   _M_deallocate(_M_impl._M_start,
  3671.     ldr r3, [fp, #-8]   @ tmp118, this
  3672.     ldr r1, [r3]    @ _1, this_8(D)->_M_impl.D.51434._M_start
  3673. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:333:             _M_impl._M_end_of_storage - _M_impl._M_start);
  3674.     ldr r3, [fp, #-8]   @ tmp119, this
  3675.     ldr r2, [r3, #8]    @ _2, this_8(D)->_M_impl.D.51434._M_end_of_storage
  3676. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:333:             _M_impl._M_end_of_storage - _M_impl._M_start);
  3677.     ldr r3, [fp, #-8]   @ tmp120, this
  3678.     ldr r3, [r3]    @ _3, this_8(D)->_M_impl.D.51434._M_start
  3679. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:333:             _M_impl._M_end_of_storage - _M_impl._M_start);
  3680.     sub r3, r2, r3  @ _4, _2, _3
  3681. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:332:   _M_deallocate(_M_impl._M_start,
  3682.     mov r2, r3  @, _5
  3683.     ldr r0, [fp, #-8]   @, this
  3684.     bl  _ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhj      @
  3685. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:334:       }
  3686.     ldr r3, [fp, #-8]   @ _6, this
  3687.     mov r0, r3  @, _6
  3688.     bl  _ZNSt12_Vector_baseIhSaIhEE12_Vector_implD1Ev       @
  3689.     ldr r3, [fp, #-8]   @ _12, this
  3690.     mov r0, r3  @, <retval>
  3691.     sub sp, fp, #4  @,,
  3692.     @ sp needed @
  3693.     pop {fp, lr}    @
  3694.     bx  lr  @
  3695.     .personality    __gxx_personality_v0
  3696.     .handlerdata
  3697. .LLSDA2844:
  3698.     .byte   0xff
  3699.     .byte   0xff
  3700.     .byte   0x1
  3701.     .uleb128 .LLSDACSE2844-.LLSDACSB2844
  3702. .LLSDACSB2844:
  3703. .LLSDACSE2844:
  3704.     .section    .text._ZNSt12_Vector_baseIhSaIhEED2Ev,"axG",%progbits,_ZNSt12_Vector_baseIhSaIhEED5Ev,comdat
  3705.     .fnend
  3706.     .size   _ZNSt12_Vector_baseIhSaIhEED2Ev, .-_ZNSt12_Vector_baseIhSaIhEED2Ev
  3707.     .weak   _ZNSt12_Vector_baseIhSaIhEED1Ev
  3708.     .set    _ZNSt12_Vector_baseIhSaIhEED1Ev,_ZNSt12_Vector_baseIhSaIhEED2Ev
  3709.     .section    .text._ZN6Endian9convertToImEET_PKh,"axG",%progbits,_ZN6Endian9convertToImEET_PKh,comdat
  3710.     .align  2
  3711.     .weak   _ZN6Endian9convertToImEET_PKh
  3712.     .syntax unified
  3713.     .arm
  3714.     .fpu softvfp
  3715.     .type   _ZN6Endian9convertToImEET_PKh, %function
  3716. _ZN6Endian9convertToImEET_PKh:
  3717.     .fnstart
  3718. .LFB2846:
  3719.     @ Function supports interworking.
  3720.     @ args = 0, pretend = 0, frame = 16
  3721.     @ frame_needed = 1, uses_anonymous_args = 0
  3722.     push    {fp, lr}    @
  3723.     add fp, sp, #4  @,,
  3724.     sub sp, sp, #16 @,,
  3725.     str r0, [fp, #-16]  @ from, from
  3726. @ ../include/utils/endian.hpp:80:         memcpy(&dest, from, sizeof(T));
  3727.     sub r3, fp, #8  @ tmp112,,
  3728.     mov r2, #4  @,
  3729.     ldr r1, [fp, #-16]  @, from
  3730.     mov r0, r3  @, tmp112
  3731.     bl  memcpy      @
  3732. @ ../include/utils/endian.hpp:84:         return dest;
  3733.     ldr r3, [fp, #-8]   @ _4, dest
  3734. @ ../include/utils/endian.hpp:85:     }
  3735.     mov r0, r3  @, <retval>
  3736.     sub sp, fp, #4  @,,
  3737.     @ sp needed @
  3738.     pop {fp, lr}    @
  3739.     bx  lr  @
  3740.     .cantunwind
  3741.     .fnend
  3742.     .size   _ZN6Endian9convertToImEET_PKh, .-_ZN6Endian9convertToImEET_PKh
  3743.     .section    .text._ZNSaI7SCBlockEC2Ev,"axG",%progbits,_ZNSaI7SCBlockEC5Ev,comdat
  3744.     .align  2
  3745.     .weak   _ZNSaI7SCBlockEC2Ev
  3746.     .syntax unified
  3747.     .arm
  3748.     .fpu softvfp
  3749.     .type   _ZNSaI7SCBlockEC2Ev, %function
  3750. _ZNSaI7SCBlockEC2Ev:
  3751.     .fnstart
  3752. .LFB2910:
  3753.     @ Function supports interworking.
  3754.     @ args = 0, pretend = 0, frame = 8
  3755.     @ frame_needed = 1, uses_anonymous_args = 0
  3756.     push    {fp, lr}    @
  3757.     add fp, sp, #4  @,,
  3758.     sub sp, sp, #8  @,,
  3759.     str r0, [fp, #-8]   @ this, this
  3760. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/allocator.h:138:       allocator() _GLIBCXX_NOTHROW { }
  3761.     ldr r0, [fp, #-8]   @, this
  3762.     bl  _ZN9__gnu_cxx13new_allocatorI7SCBlockEC2Ev      @
  3763. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/allocator.h:138:       allocator() _GLIBCXX_NOTHROW { }
  3764.     ldr r3, [fp, #-8]   @ _4, this
  3765.     mov r0, r3  @, <retval>
  3766.     sub sp, fp, #4  @,,
  3767.     @ sp needed @
  3768.     pop {fp, lr}    @
  3769.     bx  lr  @
  3770.     .cantunwind
  3771.     .fnend
  3772.     .size   _ZNSaI7SCBlockEC2Ev, .-_ZNSaI7SCBlockEC2Ev
  3773.     .weak   _ZNSaI7SCBlockEC1Ev
  3774.     .set    _ZNSaI7SCBlockEC1Ev,_ZNSaI7SCBlockEC2Ev
  3775.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC5Ev,comdat
  3776.     .align  2
  3777.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev
  3778.     .syntax unified
  3779.     .arm
  3780.     .fpu softvfp
  3781.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev, %function
  3782. _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev:
  3783.     .fnstart
  3784. .LFB2913:
  3785.     @ Function supports interworking.
  3786.     @ args = 0, pretend = 0, frame = 8
  3787.     @ frame_needed = 1, uses_anonymous_args = 0
  3788.     @ link register save eliminated.
  3789.     str fp, [sp, #-4]!  @,
  3790.     add fp, sp, #0  @,,
  3791.     sub sp, sp, #12 @,,
  3792.     str r0, [fp, #-8]   @ this, this
  3793. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:95:    : _M_start(), _M_finish(), _M_end_of_storage()
  3794.     ldr r3, [fp, #-8]   @ tmp112, this
  3795.     mov r2, #0  @ tmp113,
  3796.     str r2, [r3]    @ tmp113, this_2(D)->_M_start
  3797.     ldr r3, [fp, #-8]   @ tmp114, this
  3798.     mov r2, #0  @ tmp115,
  3799.     str r2, [r3, #4]    @ tmp115, this_2(D)->_M_finish
  3800.     ldr r3, [fp, #-8]   @ tmp116, this
  3801.     mov r2, #0  @ tmp117,
  3802.     str r2, [r3, #8]    @ tmp117, this_2(D)->_M_end_of_storage
  3803. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:96:    { }
  3804.     ldr r3, [fp, #-8]   @ _7, this
  3805.     mov r0, r3  @, <retval>
  3806.     add sp, fp, #0  @,,
  3807.     @ sp needed @
  3808.     ldr fp, [sp], #4    @,
  3809.     bx  lr  @
  3810.     .cantunwind
  3811.     .fnend
  3812.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev
  3813.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC1Ev
  3814.     .set    _ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC1Ev,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE17_Vector_impl_dataC2Ev
  3815.     .section    .text._ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev,"axG",%progbits,_ZN9__gnu_cxx13new_allocatorI7SCBlockED5Ev,comdat
  3816.     .align  2
  3817.     .weak   _ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev
  3818.     .syntax unified
  3819.     .arm
  3820.     .fpu softvfp
  3821.     .type   _ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev, %function
  3822. _ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev:
  3823.     .fnstart
  3824. .LFB2916:
  3825.     @ Function supports interworking.
  3826.     @ args = 0, pretend = 0, frame = 8
  3827.     @ frame_needed = 1, uses_anonymous_args = 0
  3828.     @ link register save eliminated.
  3829.     str fp, [sp, #-4]!  @,
  3830.     add fp, sp, #0  @,,
  3831.     sub sp, sp, #12 @,,
  3832.     str r0, [fp, #-8]   @ this, this
  3833. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/ext/new_allocator.h:89:       ~new_allocator() _GLIBCXX_USE_NOEXCEPT { }
  3834.     ldr r3, [fp, #-8]   @ _2, this
  3835.     mov r0, r3  @, <retval>
  3836.     add sp, fp, #0  @,,
  3837.     @ sp needed @
  3838.     ldr fp, [sp], #4    @,
  3839.     bx  lr  @
  3840.     .cantunwind
  3841.     .fnend
  3842.     .size   _ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev, .-_ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev
  3843.     .weak   _ZN9__gnu_cxx13new_allocatorI7SCBlockED1Ev
  3844.     .set    _ZN9__gnu_cxx13new_allocatorI7SCBlockED1Ev,_ZN9__gnu_cxx13new_allocatorI7SCBlockED2Ev
  3845.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j,comdat
  3846.     .align  2
  3847.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j
  3848.     .syntax unified
  3849.     .arm
  3850.     .fpu softvfp
  3851.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j, %function
  3852. _ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j:
  3853.     .fnstart
  3854. .LFB2918:
  3855.     @ Function supports interworking.
  3856.     @ args = 0, pretend = 0, frame = 16
  3857.     @ frame_needed = 1, uses_anonymous_args = 0
  3858.     push    {fp, lr}    @
  3859.     .save {fp, lr}
  3860.     .setfp fp, sp, #4
  3861.     add fp, sp, #4  @,,
  3862.     .pad #16
  3863.     sub sp, sp, #16 @,,
  3864.     str r0, [fp, #-8]   @ this, this
  3865.     str r1, [fp, #-12]  @ __p, __p
  3866.     str r2, [fp, #-16]  @ __n, __n
  3867. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:350:   if (__p)
  3868.     ldr r3, [fp, #-12]  @ tmp111, __p
  3869.     cmp r3, #0  @ tmp111,
  3870.     beq .L194       @,
  3871. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:351:     _Tr::deallocate(_M_impl, __p, __n);
  3872.     ldr r3, [fp, #-8]   @ _1, this
  3873. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:351:     _Tr::deallocate(_M_impl, __p, __n);
  3874.     ldr r2, [fp, #-16]  @, __n
  3875.     ldr r1, [fp, #-12]  @, __p
  3876.     mov r0, r3  @, _1
  3877.     bl  _ZNSt16allocator_traitsISaI7SCBlockEE10deallocateERS1_PS0_j     @
  3878. .L194:
  3879. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:352:       }
  3880.     nop
  3881.     sub sp, fp, #4  @,,
  3882.     @ sp needed @
  3883.     pop {fp, lr}    @
  3884.     bx  lr  @
  3885.     .fnend
  3886.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EE13_M_deallocateEPS0_j
  3887.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv,comdat
  3888.     .align  2
  3889.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv
  3890.     .syntax unified
  3891.     .arm
  3892.     .fpu softvfp
  3893.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv, %function
  3894. _ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv:
  3895.     .fnstart
  3896. .LFB2919:
  3897.     @ Function supports interworking.
  3898.     @ args = 0, pretend = 0, frame = 8
  3899.     @ frame_needed = 1, uses_anonymous_args = 0
  3900.     @ link register save eliminated.
  3901.     str fp, [sp, #-4]!  @,
  3902.     add fp, sp, #0  @,,
  3903.     sub sp, sp, #12 @,,
  3904.     str r0, [fp, #-8]   @ this, this
  3905. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:274:       { return this->_M_impl; }
  3906.     ldr r3, [fp, #-8]   @ _2, this
  3907. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:274:       { return this->_M_impl; }
  3908.     mov r0, r3  @, <retval>
  3909.     add sp, fp, #0  @,,
  3910.     @ sp needed @
  3911.     ldr fp, [sp], #4    @,
  3912.     bx  lr  @
  3913.     .cantunwind
  3914.     .fnend
  3915.     .size   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv, .-_ZNSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv
  3916.     .section    .text._ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E,"axG",%progbits,_ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E,comdat
  3917.     .align  2
  3918.     .weak   _ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E
  3919.     .syntax unified
  3920.     .arm
  3921.     .fpu softvfp
  3922.     .type   _ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E, %function
  3923. _ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E:
  3924.     .fnstart
  3925. .LFB2920:
  3926.     @ Function supports interworking.
  3927.     @ args = 0, pretend = 0, frame = 16
  3928.     @ frame_needed = 1, uses_anonymous_args = 0
  3929.     push    {fp, lr}    @
  3930.     .save {fp, lr}
  3931.     .setfp fp, sp, #4
  3932.     add fp, sp, #4  @,,
  3933.     .pad #16
  3934.     sub sp, sp, #16 @,,
  3935.     str r0, [fp, #-8]   @ __first, __first
  3936.     str r1, [fp, #-12]  @ __last, __last
  3937.     str r2, [fp, #-16]  @ D.54430, D.54430
  3938. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_construct.h:206:       _Destroy(__first, __last);
  3939.     ldr r1, [fp, #-12]  @, __last
  3940.     ldr r0, [fp, #-8]   @, __first
  3941.     bl  _ZSt8_DestroyIP7SCBlockEvT_S2_      @
  3942. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_construct.h:207:     }
  3943.     nop
  3944.     sub sp, fp, #4  @,,
  3945.     @ sp needed @
  3946.     pop {fp, lr}    @
  3947.     bx  lr  @
  3948.     .fnend
  3949.     .size   _ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E, .-_ZSt8_DestroyIP7SCBlockS0_EvT_S2_RSaIT0_E
  3950.     .section    .text._ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv,"axG",%progbits,_ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv,comdat
  3951.     .align  2
  3952.     .weak   _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv
  3953.     .syntax unified
  3954.     .arm
  3955.     .fpu softvfp
  3956.     .type   _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv, %function
  3957. _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv:
  3958.     .fnstart
  3959. .LFB2921:
  3960.     @ Function supports interworking.
  3961.     @ args = 0, pretend = 0, frame = 8
  3962.     @ frame_needed = 1, uses_anonymous_args = 0
  3963.     push    {fp, lr}    @
  3964.     add fp, sp, #4  @,,
  3965.     sub sp, sp, #8  @,,
  3966.     str r0, [fp, #-8]   @ this, this
  3967. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1076:       { return static_cast<const __shared_ptr<_Tp, _Lp>*>(this)->get(); }
  3968.     ldr r0, [fp, #-8]   @, this
  3969.     bl  _ZNKSt12__shared_ptrIA_hLN9__gnu_cxx12_Lock_policyE0EE3getEv        @
  3970.     mov r3, r0  @ _4,
  3971. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/shared_ptr_base.h:1076:       { return static_cast<const __shared_ptr<_Tp, _Lp>*>(this)->get(); }
  3972.     mov r0, r3  @, <retval>
  3973.     sub sp, fp, #4  @,,
  3974.     @ sp needed @
  3975.     pop {fp, lr}    @
  3976.     bx  lr  @
  3977.     .cantunwind
  3978.     .fnend
  3979.     .size   _ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv, .-_ZNKSt19__shared_ptr_accessIA_hLN9__gnu_cxx12_Lock_policyE0ELb1ELb0EE6_M_getEv
  3980.     .section    .text._ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv,"axG",%progbits,_ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv,comdat
  3981.     .align  2
  3982.     .weak   _ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv
  3983.     .syntax unified
  3984.     .arm
  3985.     .fpu softvfp
  3986.     .type   _ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv, %function
  3987. _ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv:
  3988.     .fnstart
  3989. .LFB2922:
  3990.     @ Function supports interworking.
  3991.     @ args = 0, pretend = 0, frame = 8
  3992.     @ frame_needed = 1, uses_anonymous_args = 0
  3993.     push    {fp, lr}    @
  3994.     add fp, sp, #4  @,,
  3995.     sub sp, sp, #8  @,,
  3996.     str r0, [fp, #-8]   @ this, this
  3997. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:921:       { return _S_max_size(_M_get_Tp_allocator()); }
  3998.     ldr r3, [fp, #-8]   @ _1, this
  3999.     mov r0, r3  @, _1
  4000.     bl  _ZNKSt12_Vector_baseI7SCBlockSaIS0_EE19_M_get_Tp_allocatorEv        @
  4001.     mov r3, r0  @ _2,
  4002. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:921:       { return _S_max_size(_M_get_Tp_allocator()); }
  4003.     mov r0, r3  @, _2
  4004.     bl  _ZNSt6vectorI7SCBlockSaIS0_EE11_S_max_sizeERKS1_        @
  4005.     mov r3, r0  @ _7,
  4006. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:921:       { return _S_max_size(_M_get_Tp_allocator()); }
  4007.     mov r0, r3  @, <retval>
  4008.     sub sp, fp, #4  @,,
  4009.     @ sp needed @
  4010.     pop {fp, lr}    @
  4011.     bx  lr  @
  4012.     .cantunwind
  4013.     .fnend
  4014.     .size   _ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv, .-_ZNKSt6vectorI7SCBlockSaIS0_EE8max_sizeEv
  4015.     .section    .text._ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv,"axG",%progbits,_ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv,comdat
  4016.     .align  2
  4017.     .weak   _ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv
  4018.     .syntax unified
  4019.     .arm
  4020.     .fpu softvfp
  4021.     .type   _ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv, %function
  4022. _ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv:
  4023.     .fnstart
  4024. .LFB2923:
  4025.     @ Function supports interworking.
  4026.     @ args = 0, pretend = 0, frame = 8
  4027.     @ frame_needed = 1, uses_anonymous_args = 0
  4028.     @ link register save eliminated.
  4029.     str fp, [sp, #-4]!  @,
  4030.     add fp, sp, #0  @,,
  4031.     sub sp, sp, #12 @,,
  4032.     str r0, [fp, #-8]   @ this, this
  4033. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:996:       { return size_type(this->_M_impl._M_end_of_storage
  4034.     ldr r3, [fp, #-8]   @ tmp116, this
  4035.     ldr r2, [r3, #8]    @ _1, this_6(D)->D.48917._M_impl.D.48217._M_end_of_storage
  4036. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:997:            - this->_M_impl._M_start); }
  4037.     ldr r3, [fp, #-8]   @ tmp117, this
  4038.     ldr r3, [r3]    @ _2, this_6(D)->D.48917._M_impl.D.48217._M_start
  4039. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:997:            - this->_M_impl._M_start); }
  4040.     sub r3, r2, r3  @ _3, _1, _2
  4041.     asr r2, r3, #2  @ tmp118, _3,
  4042.     mov r3, r2  @ tmp119, tmp118
  4043.     lsl r3, r3, #2  @ tmp119, tmp119,
  4044.     add r3, r3, r2  @ tmp119, tmp119, tmp118
  4045.     lsl r1, r3, #4  @ tmp120, tmp119,
  4046.     add r3, r3, r1  @ tmp119, tmp119, tmp120
  4047.     lsl r1, r3, #8  @ tmp121, tmp119,
  4048.     add r3, r3, r1  @ tmp119, tmp119, tmp121
  4049.     lsl r1, r3, #16 @ tmp122, tmp119,
  4050.     add r3, r3, r1  @ tmp119, tmp119, tmp122
  4051.     lsl r3, r3, #1  @ tmp119, tmp119,
  4052.     add r3, r3, r2  @ tmp119, tmp119, tmp118
  4053. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:997:            - this->_M_impl._M_start); }
  4054.     mov r0, r3  @, <retval>
  4055.     add sp, fp, #0  @,,
  4056.     @ sp needed @
  4057.     ldr fp, [sp], #4    @,
  4058.     bx  lr  @
  4059.     .cantunwind
  4060.     .fnend
  4061.     .size   _ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv, .-_ZNKSt6vectorI7SCBlockSaIS0_EE8capacityEv
  4062.     .section    .text._ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv,"axG",%progbits,_ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv,comdat
  4063.     .align  2
  4064.     .weak   _ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv
  4065.     .syntax unified
  4066.     .arm
  4067.     .fpu softvfp
  4068.     .type   _ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv, %function
  4069. _ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv:
  4070.     .fnstart
  4071. .LFB2924:
  4072.     @ Function supports interworking.
  4073.     @ args = 0, pretend = 0, frame = 8
  4074.     @ frame_needed = 1, uses_anonymous_args = 0
  4075.     @ link register save eliminated.
  4076.     str fp, [sp, #-4]!  @,
  4077.     add fp, sp, #0  @,,
  4078.     sub sp, sp, #12 @,,
  4079.     str r0, [fp, #-8]   @ this, this
  4080. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:916:       { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
  4081.     ldr r3, [fp, #-8]   @ tmp116, this
  4082.     ldr r2, [r3, #4]    @ _1, this_6(D)->D.48917._M_impl.D.48217._M_finish
  4083. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:916:       { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
  4084.     ldr r3, [fp, #-8]   @ tmp117, this
  4085.     ldr r3, [r3]    @ _2, this_6(D)->D.48917._M_impl.D.48217._M_start
  4086. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:916:       { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
  4087.     sub r3, r2, r3  @ _3, _1, _2
  4088.     asr r2, r3, #2  @ tmp118, _3,
  4089.     mov r3, r2  @ tmp119, tmp118
  4090.     lsl r3, r3, #2  @ tmp119, tmp119,
  4091.     add r3, r3, r2  @ tmp119, tmp119, tmp118
  4092.     lsl r1, r3, #4  @ tmp120, tmp119,
  4093.     add r3, r3, r1  @ tmp119, tmp119, tmp120
  4094.     lsl r1, r3, #8  @ tmp121, tmp119,
  4095.     add r3, r3, r1  @ tmp119, tmp119, tmp121
  4096.     lsl r1, r3, #16 @ tmp122, tmp119,
  4097.     add r3, r3, r1  @ tmp119, tmp119, tmp122
  4098.     lsl r3, r3, #1  @ tmp119, tmp119,
  4099.     add r3, r3, r2  @ tmp119, tmp119, tmp118
  4100. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:916:       { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
  4101.     mov r0, r3  @, <retval>
  4102.     add sp, fp, #0  @,,
  4103.     @ sp needed @
  4104.     ldr fp, [sp], #4    @,
  4105.     bx  lr  @
  4106.     .cantunwind
  4107.     .fnend
  4108.     .size   _ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv, .-_ZNKSt6vectorI7SCBlockSaIS0_EE4sizeEv
  4109.     .section    .text._ZNSt12_Vector_baseI7SCBlockSaIS0_EE11_M_allocateEj,"axG",%progbits,_ZNSt12_Vector_baseI7SCBlockSaIS0_EE11_M_allocateEj,comdat
  4110.     .align  2
  4111.     .weak   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE11_M_allocateEj
  4112.     .syntax unified
  4113.     .arm
  4114.     .fpu softvfp
  4115.     .type   _ZNSt12_Vector_baseI7SCBlockSaIS0_EE11_M_allocateEj, %function
  4116. _ZNSt12_Vector_baseI7SCBlockSaIS0_EE11_M_allocateEj:
  4117.     .fnstart
  4118. .LFB2925:
  4119.     @ Function supports interworking.
  4120.     @ args = 0, pretend = 0, frame = 8
  4121.     @ frame_needed = 1, uses_anonymous_args = 0
  4122.     push    {fp, lr}    @
  4123.     .save {fp, lr}
  4124.     .setfp fp, sp, #4
  4125.     add fp, sp, #4  @,,
  4126.     .pad #8
  4127.     sub sp, sp, #8  @,,
  4128.     str r0, [fp, #-8]   @ this, this
  4129.     str r1, [fp, #-12]  @ __n, __n
  4130. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:343:   return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer();
  4131.     ldr r3, [fp, #-12]  @ tmp113, __n
  4132.     cmp r3, #0  @ tmp113,
  4133.     beq .L207       @,
  4134. @ /opt/devkitpro/devkitARM/arm-none-eabi/include/c++/9.1.0/bits/stl_vector.h:343:   ret