add ct_eq disassembly listings so we can discuss in issue #416

This commit is contained in:
bunnie 2023-09-19 01:00:51 +08:00
parent 43b0beecd4
commit d94ceb8115

841
ct_eq.txt Normal file
View file

@ -0,0 +1,841 @@
################# This routine works.
000aa104 <vault::ctap::client_pin::ClientPin::verify_pin_hash_enc>:
aa104: 7171 addi sp,sp,-176
aa106: d706 sw ra,172(sp)
aa108: d522 sw s0,168(sp)
aa10a: d326 sw s1,164(sp)
aa10c: d14a sw s2,160(sp)
aa10e: cf4e sw s3,156(sp)
aa110: cd52 sw s4,152(sp)
aa112: cb56 sw s5,148(sp)
aa114: c95a sw s6,144(sp)
aa116: c75e sw s7,140(sp)
aa118: c562 sw s8,136(sp)
aa11a: c366 sw s9,132(sp)
aa11c: c16a sw s10,128(sp)
aa11e: deee sw s11,124(sp)
aa120: 8b3e mv s6,a5
aa122: 8bba mv s7,a4
aa124: 8a36 mv s4,a3
aa126: 89b2 mv s3,a2
aa128: 8aae mv s5,a1
aa12a: 892a mv s2,a0
aa12c: 04058493 addi s1,a1,64
aa130: 08a8 addi a0,sp,88
aa132: 7fd00613 li a2,2045
aa136: 85a6 mv a1,s1
aa138: fffe3097 auipc ra,0xfffe3
aa13c: 2d4080e7 jalr 724(ra) # 8d40c <persistent_store::store::Store<S>::find>
aa140: 05814503 lbu a0,88(sp)
aa144: c905 beqz a0,aa174 <.LBB549_2+0x1c>
aa146: 05914503 lbu a0,89(sp)
aa14a: 0002f5b7 lui a1,0x2f
aa14e: fbd58593 addi a1,a1,-67 # 2efbd <.Lswitch.table.vault::ctap::client_pin::ClientPin::verify_pin_hash_enc>
aa152: 952e add a0,a0,a1
aa154: 00050403 lb s0,0(a0)
000aa158 <.LBB549_2>:
aa158: 004b2503 lw a0,4(s6)
aa15c: c149 beqz a0,aa1de <.LBB549_2+0x86>
aa15e: 000b2c03 lw s8,0(s6)
aa162: 4485 li s1,1
aa164: 4585 li a1,1
aa166: 8562 mv a0,s8
aa168: fff8b097 auipc ra,0xfff8b
aa16c: 1aa080e7 jalr 426(ra) # 35312 <__rust_dealloc>
aa170: 8526 mv a0,s1
aa172: a0bd j aa1e0 <.LBB549_2+0x88>
aa174: 4576 lw a0,92(sp)
aa176: c549 beqz a0,aa200 <.LBB549_2+0xa8>
aa178: 5416 lw s0,100(sp)
aa17a: 5586 lw a1,96(sp)
aa17c: 4645 li a2,17
aa17e: 08c41463 bne s0,a2,aa206 <.LBB549_2+0xae>
aa182: 01050c03 lb s8,16(a0)
aa186: 00f50603 lb a2,15(a0)
aa18a: de32 sw a2,60(sp)
aa18c: 00e50603 lb a2,14(a0)
aa190: dc32 sw a2,56(sp)
aa192: 00d50603 lb a2,13(a0)
aa196: da32 sw a2,52(sp)
aa198: 00c50603 lb a2,12(a0)
aa19c: d832 sw a2,48(sp)
aa19e: 00b50603 lb a2,11(a0)
aa1a2: d632 sw a2,44(sp)
aa1a4: 00a50603 lb a2,10(a0)
aa1a8: d432 sw a2,40(sp)
aa1aa: 00950603 lb a2,9(a0)
aa1ae: d232 sw a2,36(sp)
aa1b0: 00850603 lb a2,8(a0)
aa1b4: d032 sw a2,32(sp)
aa1b6: 00750603 lb a2,7(a0)
aa1ba: ce32 sw a2,28(sp)
aa1bc: 00650603 lb a2,6(a0)
aa1c0: cc32 sw a2,24(sp)
aa1c2: 00550603 lb a2,5(a0)
aa1c6: ca32 sw a2,20(sp)
aa1c8: 00450603 lb a2,4(a0)
aa1cc: c832 sw a2,16(sp)
aa1ce: 00350c83 lb s9,3(a0)
aa1d2: 00250d83 lb s11,2(a0)
aa1d6: 00150d03 lb s10,1(a0)
aa1da: e98d bnez a1,aa20c <.LBB549_2+0xb4>
aa1dc: a82d j aa216 <.LBB549_2+0xbe>
aa1de: 4505 li a0,1
aa1e0: 85a2 mv a1,s0
aa1e2: 50ba lw ra,172(sp)
aa1e4: 542a lw s0,168(sp)
aa1e6: 549a lw s1,164(sp)
aa1e8: 590a lw s2,160(sp)
aa1ea: 49fa lw s3,156(sp)
aa1ec: 4a6a lw s4,152(sp)
aa1ee: 4ada lw s5,148(sp)
aa1f0: 4b4a lw s6,144(sp)
aa1f2: 4bba lw s7,140(sp)
aa1f4: 4c2a lw s8,136(sp)
aa1f6: 4c9a lw s9,132(sp)
aa1f8: 4d0a lw s10,128(sp)
aa1fa: 5df6 lw s11,124(sp)
aa1fc: 614d addi sp,sp,176
aa1fe: 8082 ret
aa200: 03600413 li s0,54
aa204: bf91 j aa158 <.LBB549_2>
aa206: 0f200d13 li s10,242
aa20a: c591 beqz a1,aa216 <.LBB549_2+0xbe>
aa20c: 4585 li a1,1
aa20e: fff8b097 auipc ra,0xfff8b
aa212: 104080e7 jalr 260(ra) # 35312 <__rust_dealloc>
aa216: 4545 li a0,17
aa218: 08a41a63 bne s0,a0,aa2ac <.LBB549_2+0x154>
aa21c: 05a10023 sb s10,64(sp)
aa220: 05b100a3 sb s11,65(sp)
aa224: 05910123 sb s9,66(sp)
aa228: 4542 lw a0,16(sp)
aa22a: 04a101a3 sb a0,67(sp)
aa22e: 4552 lw a0,20(sp)
aa230: 04a10223 sb a0,68(sp)
aa234: 4562 lw a0,24(sp)
aa236: 04a102a3 sb a0,69(sp)
aa23a: 4572 lw a0,28(sp)
aa23c: 04a10323 sb a0,70(sp)
aa240: 5502 lw a0,32(sp)
aa242: 04a103a3 sb a0,71(sp)
aa246: 5512 lw a0,36(sp)
aa248: 04a10423 sb a0,72(sp)
aa24c: 5522 lw a0,40(sp)
aa24e: 04a104a3 sb a0,73(sp)
aa252: 5532 lw a0,44(sp)
aa254: 04a10523 sb a0,74(sp)
aa258: 5542 lw a0,48(sp)
aa25a: 04a105a3 sb a0,75(sp)
aa25e: 5552 lw a0,52(sp)
aa260: 04a10623 sb a0,76(sp)
aa264: 5562 lw a0,56(sp)
aa266: 04a106a3 sb a0,77(sp)
aa26a: 0a094503 lbu a0,160(s2)
aa26e: 55f2 lw a1,60(sp)
aa270: 04b10723 sb a1,78(sp)
aa274: 058107a3 sb s8,79(sp)
aa278: 4589 li a1,2
aa27a: 03400413 li s0,52
aa27e: eca5ede3 bltu a1,a0,aa158 <.LBB549_2>
aa282: 08a8 addi a0,sp,88
aa284: 7fc00613 li a2,2044
aa288: 85a6 mv a1,s1
aa28a: fffe3097 auipc ra,0xfffe3
aa28e: 182080e7 jalr 386(ra) # 8d40c <persistent_store::store::Store<S>::find>
aa292: 05814503 lbu a0,88(sp)
aa296: cd09 beqz a0,aa2b0 <.LBB549_2+0x158>
aa298: 05914503 lbu a0,89(sp)
aa29c: 0002f5b7 lui a1,0x2f
aa2a0: fc258593 addi a1,a1,-62 # 2efc2 <.Lswitch.table.vault::ctap::client_pin::ClientPin::verify_pin_hash_enc.2445>
aa2a4: 952e add a0,a0,a1
aa2a6: 00054403 lbu s0,0(a0)
aa2aa: b57d j aa158 <.LBB549_2>
aa2ac: 846a mv s0,s10
aa2ae: b56d j aa158 <.LBB549_2>
aa2b0: 4576 lw a0,92(sp)
aa2b2: cd19 beqz a0,aa2d0 <.LBB549_2+0x178>
aa2b4: 5616 lw a2,100(sp)
aa2b6: 5586 lw a1,96(sp)
aa2b8: 4685 li a3,1
aa2ba: 22d61363 bne a2,a3,aa4e0 <.LBB549_30+0x6>
aa2be: 00054403 lbu s0,0(a0)
aa2c2: c981 beqz a1,aa2d2 <.LBB549_2+0x17a>
aa2c4: 4585 li a1,1
aa2c6: fff8b097 auipc ra,0xfff8b
aa2ca: 04c080e7 jalr 76(ra) # 35312 <__rust_dealloc>
aa2ce: a011 j aa2d2 <.LBB549_2+0x17a>
aa2d0: 4421 li s0,8
aa2d2: fff40513 addi a0,s0,-1
aa2d6: 00a435b3 sltu a1,s0,a0
aa2da: 15fd addi a1,a1,-1
aa2dc: 8d6d and a0,a0,a1
aa2de: 1c851263 bne a0,s0,aa4a2 <.LBB549_24+0x1c0>
000aa2e2 <.LBB549_24>:
aa2e2: c662 sw s8,12(sp)
aa2e4: 008b2683 lw a3,8(s6)
aa2e8: 3206c363 bltz a3,aa60e <.LBB549_50+0x1c>
aa2ec: 000b2c03 lw s8,0(s6)
aa2f0: 010ba703 lw a4,16(s7)
aa2f4: 08a8 addi a0,sp,88
aa2f6: 85d2 mv a1,s4
aa2f8: 8662 mv a2,s8
aa2fa: 9702 jalr a4
aa2fc: 4a66 lw s4,88(sp)
aa2fe: 1e0a0b63 beqz s4,aa4f4 <.LBB549_30+0x1a>
aa302: 5b86 lw s7,96(sp)
aa304: 300bc563 bltz s7,aa60e <.LBB549_50+0x1c>
aa308: 44f6 lw s1,92(sp)
aa30a: 4541 li a0,16
aa30c: 1eab9763 bne s7,a0,aa4fa <.LBB549_30+0x20>
aa310: 000a4503 lbu a0,0(s4)
aa314: 0ffd7593 zext.b a1,s10
aa318: 8d2d xor a0,a0,a1
aa31a: 00153513 seqz a0,a0
aa31e: 00044097 auipc ra,0x44
aa322: 7e2080e7 jalr 2018(ra) # eeb00 <subtle::black_box>
aa326: 001a4583 lbu a1,1(s4)
aa32a: 842a mv s0,a0
aa32c: 0ffdf513 zext.b a0,s11
aa330: 8d2d xor a0,a0,a1
aa332: 00153513 seqz a0,a0
aa336: 00044097 auipc ra,0x44
aa33a: 7ca080e7 jalr 1994(ra) # eeb00 <subtle::black_box>
aa33e: 002a4583 lbu a1,2(s4)
aa342: 8d26 mv s10,s1
aa344: 00a474b3 and s1,s0,a0
aa348: 0ffcf513 zext.b a0,s9
aa34c: 8d2d xor a0,a0,a1
aa34e: 00153513 seqz a0,a0
aa352: 00044097 auipc ra,0x44
aa356: 7ae080e7 jalr 1966(ra) # eeb00 <subtle::black_box>
aa35a: 003a4583 lbu a1,3(s4)
aa35e: 842a mv s0,a0
aa360: 01014503 lbu a0,16(sp)
aa364: 8d2d xor a0,a0,a1
aa366: 00153513 seqz a0,a0
aa36a: 00044097 auipc ra,0x44
aa36e: 796080e7 jalr 1942(ra) # eeb00 <subtle::black_box>
aa372: 004a4583 lbu a1,4(s4)
aa376: 8d61 and a0,a0,s0
aa378: 8ce9 and s1,s1,a0
aa37a: 01414503 lbu a0,20(sp)
aa37e: 8d2d xor a0,a0,a1
aa380: 00153513 seqz a0,a0
aa384: 00044097 auipc ra,0x44
aa388: 77c080e7 jalr 1916(ra) # eeb00 <subtle::black_box>
aa38c: 005a4583 lbu a1,5(s4)
aa390: 842a mv s0,a0
aa392: 01814503 lbu a0,24(sp)
aa396: 8d2d xor a0,a0,a1
aa398: 00153513 seqz a0,a0
aa39c: 00044097 auipc ra,0x44
aa3a0: 764080e7 jalr 1892(ra) # eeb00 <subtle::black_box>
aa3a4: 006a4583 lbu a1,6(s4)
aa3a8: 8c69 and s0,s0,a0
aa3aa: 01c14503 lbu a0,28(sp)
aa3ae: 8d2d xor a0,a0,a1
aa3b0: 00153513 seqz a0,a0
aa3b4: 00044097 auipc ra,0x44
aa3b8: 74c080e7 jalr 1868(ra) # eeb00 <subtle::black_box>
aa3bc: 007a4583 lbu a1,7(s4)
aa3c0: 8d61 and a0,a0,s0
aa3c2: 8ce9 and s1,s1,a0
aa3c4: 02014503 lbu a0,32(sp)
aa3c8: 8d2d xor a0,a0,a1
aa3ca: 00153513 seqz a0,a0
aa3ce: 00044097 auipc ra,0x44
aa3d2: 732080e7 jalr 1842(ra) # eeb00 <subtle::black_box>
aa3d6: 008a4583 lbu a1,8(s4)
aa3da: 842a mv s0,a0
aa3dc: 02414503 lbu a0,36(sp)
aa3e0: 8d2d xor a0,a0,a1
aa3e2: 00153513 seqz a0,a0
aa3e6: 00044097 auipc ra,0x44
aa3ea: 71a080e7 jalr 1818(ra) # eeb00 <subtle::black_box>
aa3ee: 009a4583 lbu a1,9(s4)
aa3f2: 8c69 and s0,s0,a0
aa3f4: 02814503 lbu a0,40(sp)
aa3f8: 8d2d xor a0,a0,a1
aa3fa: 00153513 seqz a0,a0
aa3fe: 00044097 auipc ra,0x44
aa402: 702080e7 jalr 1794(ra) # eeb00 <subtle::black_box>
aa406: 00aa4583 lbu a1,10(s4)
aa40a: 8c69 and s0,s0,a0
aa40c: 02c14503 lbu a0,44(sp)
aa410: 8d2d xor a0,a0,a1
aa412: 00153513 seqz a0,a0
aa416: 00044097 auipc ra,0x44
aa41a: 6ea080e7 jalr 1770(ra) # eeb00 <subtle::black_box>
aa41e: 00ba4583 lbu a1,11(s4)
aa422: 8d61 and a0,a0,s0
aa424: 8ce9 and s1,s1,a0
aa426: 03014503 lbu a0,48(sp)
aa42a: 8d2d xor a0,a0,a1
aa42c: 00153513 seqz a0,a0
aa430: 00044097 auipc ra,0x44
aa434: 6d0080e7 jalr 1744(ra) # eeb00 <subtle::black_box>
aa438: 00ca4583 lbu a1,12(s4)
aa43c: 842a mv s0,a0
aa43e: 03414503 lbu a0,52(sp)
aa442: 8d2d xor a0,a0,a1
aa444: 00153513 seqz a0,a0
aa448: 00044097 auipc ra,0x44
aa44c: 6b8080e7 jalr 1720(ra) # eeb00 <subtle::black_box>
aa450: 00da4583 lbu a1,13(s4)
aa454: 8c69 and s0,s0,a0
aa456: 03814503 lbu a0,56(sp)
aa45a: 8d2d xor a0,a0,a1
aa45c: 00153513 seqz a0,a0
aa460: 00044097 auipc ra,0x44
aa464: 6a0080e7 jalr 1696(ra) # eeb00 <subtle::black_box>
aa468: 00ea4583 lbu a1,14(s4)
aa46c: 8c69 and s0,s0,a0
aa46e: 03c14503 lbu a0,60(sp)
aa472: 8d2d xor a0,a0,a1
aa474: 00153513 seqz a0,a0
aa478: 00044097 auipc ra,0x44
aa47c: 688080e7 jalr 1672(ra) # eeb00 <subtle::black_box>
aa480: 00fa4583 lbu a1,15(s4)
aa484: 8c69 and s0,s0,a0
aa486: 00c14503 lbu a0,12(sp)
aa48a: 8d2d xor a0,a0,a1
aa48c: 00153513 seqz a0,a0
aa490: 00044097 auipc ra,0x44
aa494: 670080e7 jalr 1648(ra) # eeb00 <subtle::black_box>
aa498: 8d61 and a0,a0,s0
aa49a: 8d65 and a0,a0,s1
aa49c: 84ea mv s1,s10
aa49e: 8905 andi a0,a0,1
aa4a0: a8b1 j aa4fc <.LBB549_30+0x22>
aa4a2: 06a10823 sb a0,112(sp)
aa4a6: 1888 addi a0,sp,112
aa4a8: ccaa sw a0,88(sp)
aa4aa: 4505 li a0,1
aa4ac: ceaa sw a0,92(sp)
aa4ae: 7fc00513 li a0,2044
aa4b2: d0aa sw a0,96(sp)
aa4b4: 08ac addi a1,sp,88
aa4b6: 4605 li a2,1
aa4b8: 8526 mv a0,s1
aa4ba: 00000097 auipc ra,0x0
aa4be: 5c8080e7 jalr 1480(ra) # aaa82 <persistent_store::store::Store<S>::transaction>
aa4c2: 0ff57513 zext.b a0,a0
aa4c6: 050a slli a0,a0,0x2
aa4c8: 000115b7 lui a1,0x11
aa4cc: 49058593 addi a1,a1,1168 # 11490 <.LJTI549_0>
aa4d0: 952e add a0,a0,a1
aa4d2: 4108 lw a0,0(a0)
aa4d4: 0f200413 li s0,242
aa4d8: 8502 jr a0
000aa4da <.LBB549_30>:
aa4da: 02800413 li s0,40
aa4de: b9ad j aa158 <.LBB549_2>
aa4e0: 0f200413 li s0,242
aa4e4: c6058ae3 beqz a1,aa158 <.LBB549_2>
aa4e8: 4585 li a1,1
aa4ea: fff8b097 auipc ra,0xfff8b
aa4ee: e28080e7 jalr -472(ra) # 35312 <__rust_dealloc>
aa4f2: b19d j aa158 <.LBB549_2>
aa4f4: 03100413 li s0,49
aa4f8: b185 j aa158 <.LBB549_2>
aa4fa: 4501 li a0,0
aa4fc: 00044097 auipc ra,0x44
aa500: 604080e7 jalr 1540(ra) # eeb00 <subtle::black_box>
aa504: 0ff57513 zext.b a0,a0
aa508: c51d beqz a0,aa536 <.LBB549_30+0x5c>
aa50a: c499 beqz s1,aa518 <.LBB549_30+0x3e>
aa50c: 4585 li a1,1
aa50e: 8552 mv a0,s4
aa510: fff8b097 auipc ra,0xfff8b
aa514: e02080e7 jalr -510(ra) # 35312 <__rust_dealloc>
aa518: 8556 mv a0,s5
aa51a: 00000097 auipc ra,0x0
aa51e: b50080e7 jalr -1200(ra) # aa06a <vault::ctap::storage::reset_pin_retries>
aa522: 8905 andi a0,a0,1
aa524: e171 bnez a0,aa5e8 <.LBB549_30+0x10e>
aa526: 004b2583 lw a1,4(s6)
aa52a: 4481 li s1,0
aa52c: 0a090023 sb zero,160(s2)
aa530: c2059ae3 bnez a1,aa164 <.LBB549_2+0xc>
aa534: b175 j aa1e0 <.LBB549_2+0x88>
# begin ct_eq eval & debug print
aa536: 0011d537 lui a0,0x11d
aa53a: cd452503 lw a0,-812(a0) # 11ccd4 <log::MAX_LOG_LEVEL_FILTER.0>
aa53e: 4591 li a1,4
aa540: 04a5fc63 bgeu a1,a0,aa598 <.LBB549_30+0xbe>
aa544: 0088 addi a0,sp,64
aa546: 85d2 mv a1,s4
aa548: 865e mv a2,s7
aa54a: 00004097 auipc ra,0x4
aa54e: 494080e7 jalr 1172(ra) # ae9de <<[T] as subtle::ConstantTimeEq>::ct_eq>
aa552: 0ff57513 zext.b a0,a0
aa556: 00a03533 snez a0,a0
aa55a: 06a10da3 sb a0,123(sp)
aa55e: 07b10513 addi a0,sp,123
aa562: d8aa sw a0,112(sp)
aa564: 00111537 lui a0,0x111
aa568: f5250513 addi a0,a0,-174 # 110f52 <<bool as core::fmt::Debug>::fmt.2128>
aa56c: daaa sw a0,116(sp)
aa56e: 00020537 lui a0,0x20
aa572: 4cc50513 addi a0,a0,1228 # 204cc <.Lanon.2a07d538331e3edaa7271c55a21c2770.308>
aa576: ccaa sw a0,88(sp)
aa578: 4505 li a0,1
aa57a: ceaa sw a0,92(sp)
aa57c: d482 sw zero,104(sp)
aa57e: 188c addi a1,sp,112
aa580: d0ae sw a1,96(sp)
aa582: d2aa sw a0,100(sp)
aa584: 00020537 lui a0,0x20
aa588: 50c50613 addi a2,a0,1292 # 2050c <.Lanon.2a07d538331e3edaa7271c55a21c2770.311>
aa58c: 08a8 addi a0,sp,88
aa58e: 4595 li a1,5
aa590: fffb6097 auipc ra,0xfffb6
aa594: 0c2080e7 jalr 194(ra) # 60652 <log::__private_api_log>
# end ct_eq eval & debug print
aa598: 0ff9f593 zext.b a1,s3
aa59c: 4605 li a2,1
aa59e: 02000513 li a0,32
aa5a2: 00c58463 beq a1,a2,aa5aa <.LBB549_30+0xd0>
aa5a6: 06000513 li a0,96
aa5aa: 954a add a0,a0,s2
aa5ac: 00004097 auipc ra,0x4
aa5b0: 2d6080e7 jalr 726(ra) # ae882 <vault::ctap::pin_protocol::PinProtocol::regenerate>
aa5b4: 8556 mv a0,s5
aa5b6: fffff097 auipc ra,0xfffff
aa5ba: 5fe080e7 jalr 1534(ra) # a9bb4 <vault::ctap::storage::pin_retries>
aa5be: 8905 andi a0,a0,1
aa5c0: 842e mv s0,a1
aa5c2: ed0d bnez a0,aa5fc <.LBB549_50+0xa>
aa5c4: 0ff47513 zext.b a0,s0
aa5c8: c905 beqz a0,aa5f8 <.LBB549_50+0x6>
aa5ca: 0a090503 lb a0,160(s2)
aa5ce: 0505 addi a0,a0,1
aa5d0: 0ff57593 zext.b a1,a0
aa5d4: 0aa90023 sb a0,160(s2)
aa5d8: 4509 li a0,2
aa5da: 03400413 li s0,52
aa5de: 00b56f63 bltu a0,a1,aa5fc <.LBB549_50+0xa>
aa5e2: 03100413 li s0,49
aa5e6: a819 j aa5fc <.LBB549_50+0xa>
aa5e8: 842e mv s0,a1
aa5ea: b6bd j aa158 <.LBB549_2>
000aa5ec <.LBB549_49>:
aa5ec: 07f00413 li s0,127
aa5f0: b6a5 j aa158 <.LBB549_2>
000aa5f2 <.LBB549_50>:
aa5f2: 0f300413 li s0,243
aa5f6: b68d j aa158 <.LBB549_2>
aa5f8: 03200413 li s0,50
aa5fc: b4048ee3 beqz s1,aa158 <.LBB549_2>
aa600: 4585 li a1,1
aa602: 8552 mv a0,s4
aa604: fff8b097 auipc ra,0xfff8b
aa608: d0e080e7 jalr -754(ra) # 35312 <__rust_dealloc>
aa60c: b6b1 j aa158 <.LBB549_2>
aa60e: 0002b537 lui a0,0x2b
aa612: b8450513 addi a0,a0,-1148 # 2ab84 <.Lanon.77d58145572983627de21c6b4eb0fd6d.105>
aa616: 0a200593 li a1,162
aa61a: fff95097 auipc ra,0xfff95
aa61e: 78a080e7 jalr 1930(ra) # 3fda4 <core::panicking::panic_nounwind>
...
000aa624 <vault::ctap::client_pin::ClientPin::process_get_pin_token>:
############ This routine fails
000aa094 <vault::ctap::client_pin::ClientPin::verify_pin_hash_enc>:
aa094: 7119 addi sp,sp,-128
aa096: de86 sw ra,124(sp)
aa098: dca2 sw s0,120(sp)
aa09a: daa6 sw s1,116(sp)
aa09c: d8ca sw s2,112(sp)
aa09e: d6ce sw s3,108(sp)
aa0a0: d4d2 sw s4,104(sp)
aa0a2: d2d6 sw s5,100(sp)
aa0a4: d0da sw s6,96(sp)
aa0a6: cede sw s7,92(sp)
aa0a8: cce2 sw s8,88(sp)
aa0aa: cae6 sw s9,84(sp)
aa0ac: c8ea sw s10,80(sp)
aa0ae: c6ee sw s11,76(sp)
aa0b0: 8b3e mv s6,a5
aa0b2: 8bba mv s7,a4
aa0b4: 8a36 mv s4,a3
aa0b6: 89b2 mv s3,a2
aa0b8: 8aae mv s5,a1
aa0ba: 892a mv s2,a0
aa0bc: 04058493 addi s1,a1,64
aa0c0: 1828 addi a0,sp,56
aa0c2: 7fd00613 li a2,2045
aa0c6: 85a6 mv a1,s1
aa0c8: fffe3097 auipc ra,0xfffe3
aa0cc: 2d4080e7 jalr 724(ra) # 8d39c <persistent_store::store::Store<S>::find>
aa0d0: 03814503 lbu a0,56(sp)
aa0d4: c905 beqz a0,aa104 <.LBB549_2+0x1c>
aa0d6: 03914503 lbu a0,57(sp)
aa0da: 0002f5b7 lui a1,0x2f
aa0de: f4d58593 addi a1,a1,-179 # 2ef4d <.Lswitch.table.vault::ctap::client_pin::ClientPin::verify_pin_hash_enc>
aa0e2: 952e add a0,a0,a1
aa0e4: 00050403 lb s0,0(a0)
000aa0e8 <.LBB549_2>:
aa0e8: 004b2503 lw a0,4(s6)
aa0ec: c149 beqz a0,aa16e <.LBB549_2+0x86>
aa0ee: 000b2c83 lw s9,0(s6)
aa0f2: 4485 li s1,1
aa0f4: 4585 li a1,1
aa0f6: 8566 mv a0,s9
aa0f8: fff8b097 auipc ra,0xfff8b
aa0fc: 1aa080e7 jalr 426(ra) # 352a2 <__rust_dealloc>
aa100: 8526 mv a0,s1
aa102: a0bd j aa170 <.LBB549_2+0x88>
aa104: 5572 lw a0,60(sp)
aa106: c549 beqz a0,aa190 <.LBB549_2+0xa8>
aa108: 4416 lw s0,68(sp)
aa10a: 4586 lw a1,64(sp)
aa10c: 4645 li a2,17
aa10e: 08c41463 bne s0,a2,aa196 <.LBB549_2+0xae>
aa112: 01050d83 lb s11,16(a0)
aa116: 00f50603 lb a2,15(a0)
aa11a: c232 sw a2,4(sp)
aa11c: 00e50603 lb a2,14(a0)
aa120: c432 sw a2,8(sp)
aa122: 00d50603 lb a2,13(a0)
aa126: c632 sw a2,12(sp)
aa128: 00c50603 lb a2,12(a0)
aa12c: c832 sw a2,16(sp)
aa12e: 00b50603 lb a2,11(a0)
aa132: ca32 sw a2,20(sp)
aa134: 00a50603 lb a2,10(a0)
aa138: cc32 sw a2,24(sp)
aa13a: 00950603 lb a2,9(a0)
aa13e: ce32 sw a2,28(sp)
aa140: 00850603 lb a2,8(a0)
aa144: d032 sw a2,32(sp)
aa146: 00750603 lb a2,7(a0)
aa14a: d232 sw a2,36(sp)
aa14c: 00650603 lb a2,6(a0)
aa150: d432 sw a2,40(sp)
aa152: 00550603 lb a2,5(a0)
aa156: d632 sw a2,44(sp)
aa158: 00450d03 lb s10,4(a0)
aa15c: 00350603 lb a2,3(a0)
aa160: d832 sw a2,48(sp)
aa162: 00250c83 lb s9,2(a0)
aa166: 00150c03 lb s8,1(a0)
aa16a: e98d bnez a1,aa19c <.LBB549_2+0xb4>
aa16c: a82d j aa1a6 <.LBB549_2+0xbe>
aa16e: 4505 li a0,1
aa170: 85a2 mv a1,s0
aa172: 50f6 lw ra,124(sp)
aa174: 5466 lw s0,120(sp)
aa176: 54d6 lw s1,116(sp)
aa178: 5946 lw s2,112(sp)
aa17a: 59b6 lw s3,108(sp)
aa17c: 5a26 lw s4,104(sp)
aa17e: 5a96 lw s5,100(sp)
aa180: 5b06 lw s6,96(sp)
aa182: 4bf6 lw s7,92(sp)
aa184: 4c66 lw s8,88(sp)
aa186: 4cd6 lw s9,84(sp)
aa188: 4d46 lw s10,80(sp)
aa18a: 4db6 lw s11,76(sp)
aa18c: 6109 addi sp,sp,128
aa18e: 8082 ret
aa190: 03600413 li s0,54
aa194: bf91 j aa0e8 <.LBB549_2>
aa196: 0f200c13 li s8,242
aa19a: c591 beqz a1,aa1a6 <.LBB549_2+0xbe>
aa19c: 4585 li a1,1
aa19e: fff8b097 auipc ra,0xfff8b
aa1a2: 104080e7 jalr 260(ra) # 352a2 <__rust_dealloc>
aa1a6: 4545 li a0,17
aa1a8: 02a41e63 bne s0,a0,aa1e4 <.LBB549_2+0xfc>
aa1ac: 0a094503 lbu a0,160(s2)
aa1b0: 4589 li a1,2
aa1b2: 03400413 li s0,52
aa1b6: f2a5e9e3 bltu a1,a0,aa0e8 <.LBB549_2>
aa1ba: 1828 addi a0,sp,56
aa1bc: 7fc00613 li a2,2044
aa1c0: 85a6 mv a1,s1
aa1c2: fffe3097 auipc ra,0xfffe3
aa1c6: 1da080e7 jalr 474(ra) # 8d39c <persistent_store::store::Store<S>::find>
aa1ca: 03814503 lbu a0,56(sp)
aa1ce: cd09 beqz a0,aa1e8 <.LBB549_2+0x100>
aa1d0: 03914503 lbu a0,57(sp)
aa1d4: 0002f5b7 lui a1,0x2f
aa1d8: f5258593 addi a1,a1,-174 # 2ef52 <.Lswitch.table.vault::ctap::client_pin::ClientPin::verify_pin_hash_enc.2445>
aa1dc: 952e add a0,a0,a1
aa1de: 00054403 lbu s0,0(a0)
aa1e2: b719 j aa0e8 <.LBB549_2>
aa1e4: 8462 mv s0,s8
aa1e6: b709 j aa0e8 <.LBB549_2>
aa1e8: 5572 lw a0,60(sp)
aa1ea: cd19 beqz a0,aa208 <.LBB549_2+0x120>
aa1ec: 4616 lw a2,68(sp)
aa1ee: 4586 lw a1,64(sp)
aa1f0: 4685 li a3,1
aa1f2: 22d61163 bne a2,a3,aa414 <.LBB549_30+0x6>
aa1f6: 00054403 lbu s0,0(a0)
aa1fa: c981 beqz a1,aa20a <.LBB549_2+0x122>
aa1fc: 4585 li a1,1
aa1fe: fff8b097 auipc ra,0xfff8b
aa202: 0a4080e7 jalr 164(ra) # 352a2 <__rust_dealloc>
aa206: a011 j aa20a <.LBB549_2+0x122>
aa208: 4421 li s0,8
aa20a: fff40513 addi a0,s0,-1
aa20e: 00a435b3 sltu a1,s0,a0
aa212: 15fd addi a1,a1,-1
aa214: 8d6d and a0,a0,a1
aa216: 1a851f63 bne a0,s0,aa3d4 <.LBB549_24+0x1ba>
000aa21a <.LBB549_24>:
aa21a: 008b2683 lw a3,8(s6)
aa21e: 2c06c163 bltz a3,aa4e0 <.LBB549_48+0x1c>
aa222: 8466 mv s0,s9
aa224: 000b2c83 lw s9,0(s6)
aa228: 010ba703 lw a4,16(s7)
aa22c: 1828 addi a0,sp,56
aa22e: 85d2 mv a1,s4
aa230: 8666 mv a2,s9
aa232: 9702 jalr a4
aa234: 5a62 lw s4,56(sp)
aa236: 1e0a0963 beqz s4,aa428 <.LBB549_30+0x1a>
aa23a: 4506 lw a0,64(sp)
aa23c: 2a054263 bltz a0,aa4e0 <.LBB549_48+0x1c>
aa240: 54f2 lw s1,60(sp)
aa242: 45c1 li a1,16
aa244: 1eb51563 bne a0,a1,aa42e <.LBB549_30+0x20>
aa248: 866a mv a2,s10
aa24a: 0ffdf513 zext.b a0,s11
aa24e: c02a sw a0,0(sp)
aa250: 02c14d03 lbu s10,44(sp)
aa254: 0ff67b93 zext.b s7,a2
aa258: 000a4503 lbu a0,0(s4)
aa25c: d626 sw s1,44(sp)
aa25e: 03014483 lbu s1,48(sp)
aa262: 0ff47d93 zext.b s11,s0
aa266: 0ffc7593 zext.b a1,s8
aa26a: 8d2d xor a0,a0,a1
aa26c: 00153513 seqz a0,a0
aa270: 00044097 auipc ra,0x44
aa274: 588080e7 jalr 1416(ra) # ee7f8 <subtle::black_box>
aa278: 001a4583 lbu a1,1(s4)
aa27c: 842a mv s0,a0
aa27e: 00bdc533 xor a0,s11,a1
aa282: 00153513 seqz a0,a0
aa286: 00044097 auipc ra,0x44
aa28a: 572080e7 jalr 1394(ra) # ee7f8 <subtle::black_box>
aa28e: 002a4583 lbu a1,2(s4)
aa292: 00a47c33 and s8,s0,a0
aa296: 8da5 xor a1,a1,s1
aa298: 0015b513 seqz a0,a1
aa29c: 00044097 auipc ra,0x44
aa2a0: 55c080e7 jalr 1372(ra) # ee7f8 <subtle::black_box>
aa2a4: 003a4583 lbu a1,3(s4)
aa2a8: 842a mv s0,a0
aa2aa: 00bbc533 xor a0,s7,a1
aa2ae: 00153513 seqz a0,a0
aa2b2: 00044097 auipc ra,0x44
aa2b6: 546080e7 jalr 1350(ra) # ee7f8 <subtle::black_box>
aa2ba: 004a4583 lbu a1,4(s4)
aa2be: 8d61 and a0,a0,s0
aa2c0: 00ac74b3 and s1,s8,a0
aa2c4: 00bd4533 xor a0,s10,a1
aa2c8: 00153513 seqz a0,a0
aa2cc: 00044097 auipc ra,0x44
aa2d0: 52c080e7 jalr 1324(ra) # ee7f8 <subtle::black_box>
aa2d4: 005a4583 lbu a1,5(s4)
aa2d8: 842a mv s0,a0
aa2da: 5522 lw a0,40(sp)
aa2dc: 8d2d xor a0,a0,a1
aa2de: 00153513 seqz a0,a0
aa2e2: 00044097 auipc ra,0x44
aa2e6: 516080e7 jalr 1302(ra) # ee7f8 <subtle::black_box>
aa2ea: 006a4583 lbu a1,6(s4)
aa2ee: 8c69 and s0,s0,a0
aa2f0: 5512 lw a0,36(sp)
aa2f2: 8d2d xor a0,a0,a1
aa2f4: 00153513 seqz a0,a0
aa2f8: 00044097 auipc ra,0x44
aa2fc: 500080e7 jalr 1280(ra) # ee7f8 <subtle::black_box>
aa300: 007a4583 lbu a1,7(s4)
aa304: 8d61 and a0,a0,s0
aa306: 8ce9 and s1,s1,a0
aa308: 5502 lw a0,32(sp)
aa30a: 8d2d xor a0,a0,a1
aa30c: 00153513 seqz a0,a0
aa310: 00044097 auipc ra,0x44
aa314: 4e8080e7 jalr 1256(ra) # ee7f8 <subtle::black_box>
aa318: 008a4583 lbu a1,8(s4)
aa31c: 842a mv s0,a0
aa31e: 4572 lw a0,28(sp)
aa320: 8d2d xor a0,a0,a1
aa322: 00153513 seqz a0,a0
aa326: 00044097 auipc ra,0x44
aa32a: 4d2080e7 jalr 1234(ra) # ee7f8 <subtle::black_box>
aa32e: 009a4583 lbu a1,9(s4)
aa332: 8c69 and s0,s0,a0
aa334: 4562 lw a0,24(sp)
aa336: 8d2d xor a0,a0,a1
aa338: 00153513 seqz a0,a0
aa33c: 00044097 auipc ra,0x44
aa340: 4bc080e7 jalr 1212(ra) # ee7f8 <subtle::black_box>
aa344: 00aa4583 lbu a1,10(s4)
aa348: 8c69 and s0,s0,a0
aa34a: 4552 lw a0,20(sp)
aa34c: 8d2d xor a0,a0,a1
aa34e: 00153513 seqz a0,a0
aa352: 00044097 auipc ra,0x44
aa356: 4a6080e7 jalr 1190(ra) # ee7f8 <subtle::black_box>
aa35a: 00ba4583 lbu a1,11(s4)
aa35e: 8d61 and a0,a0,s0
aa360: 8ce9 and s1,s1,a0
aa362: 4542 lw a0,16(sp)
aa364: 8d2d xor a0,a0,a1
aa366: 00153513 seqz a0,a0
aa36a: 00044097 auipc ra,0x44
aa36e: 48e080e7 jalr 1166(ra) # ee7f8 <subtle::black_box>
aa372: 00ca4583 lbu a1,12(s4)
aa376: 842a mv s0,a0
aa378: 4532 lw a0,12(sp)
aa37a: 8d2d xor a0,a0,a1
aa37c: 00153513 seqz a0,a0
aa380: 00044097 auipc ra,0x44
aa384: 478080e7 jalr 1144(ra) # ee7f8 <subtle::black_box>
aa388: 00da4583 lbu a1,13(s4)
aa38c: 8c69 and s0,s0,a0
aa38e: 4522 lw a0,8(sp)
aa390: 8d2d xor a0,a0,a1
aa392: 00153513 seqz a0,a0
aa396: 00044097 auipc ra,0x44
aa39a: 462080e7 jalr 1122(ra) # ee7f8 <subtle::black_box>
aa39e: 00ea4583 lbu a1,14(s4)
aa3a2: 8c69 and s0,s0,a0
aa3a4: 4512 lw a0,4(sp)
aa3a6: 8d2d xor a0,a0,a1
aa3a8: 00153513 seqz a0,a0
aa3ac: 00044097 auipc ra,0x44
aa3b0: 44c080e7 jalr 1100(ra) # ee7f8 <subtle::black_box>
aa3b4: 00fa4583 lbu a1,15(s4)
aa3b8: 8c69 and s0,s0,a0
aa3ba: 4502 lw a0,0(sp)
aa3bc: 8d2d xor a0,a0,a1
aa3be: 00153513 seqz a0,a0
aa3c2: 00044097 auipc ra,0x44
aa3c6: 436080e7 jalr 1078(ra) # ee7f8 <subtle::black_box>
aa3ca: 8d61 and a0,a0,s0
aa3cc: 8d65 and a0,a0,s1
aa3ce: 54b2 lw s1,44(sp)
aa3d0: 8905 andi a0,a0,1
aa3d2: a8b9 j aa430 <.LBB549_30+0x22>
aa3d4: 02a10ba3 sb a0,55(sp)
aa3d8: 03710513 addi a0,sp,55
aa3dc: dc2a sw a0,56(sp)
aa3de: 4505 li a0,1
aa3e0: de2a sw a0,60(sp)
aa3e2: 7fc00513 li a0,2044
aa3e6: c0aa sw a0,64(sp)
aa3e8: 182c addi a1,sp,56
aa3ea: 4605 li a2,1
aa3ec: 8526 mv a0,s1
aa3ee: 00000097 auipc ra,0x0
aa3f2: 566080e7 jalr 1382(ra) # aa954 <persistent_store::store::Store<S>::transaction>
aa3f6: 0ff57513 zext.b a0,a0
aa3fa: 050a slli a0,a0,0x2
aa3fc: 000115b7 lui a1,0x11
aa400: 49058593 addi a1,a1,1168 # 11490 <.LJTI549_0>
aa404: 952e add a0,a0,a1
aa406: 4108 lw a0,0(a0)
aa408: 0f200413 li s0,242
aa40c: 8502 jr a0
000aa40e <.LBB549_30>:
aa40e: 02800413 li s0,40
aa412: b9d9 j aa0e8 <.LBB549_2>
aa414: 0f200413 li s0,242
aa418: cc0588e3 beqz a1,aa0e8 <.LBB549_2>
aa41c: 4585 li a1,1
aa41e: fff8b097 auipc ra,0xfff8b
aa422: e84080e7 jalr -380(ra) # 352a2 <__rust_dealloc>
aa426: b1c9 j aa0e8 <.LBB549_2>
aa428: 03100413 li s0,49
aa42c: b975 j aa0e8 <.LBB549_2>
aa42e: 4501 li a0,0
aa430: 00044097 auipc ra,0x44
aa434: 3c8080e7 jalr 968(ra) # ee7f8 <subtle::black_box>
aa438: 0ff57513 zext.b a0,a0
aa43c: c51d beqz a0,aa46a <.LBB549_30+0x5c>
aa43e: c499 beqz s1,aa44c <.LBB549_30+0x3e>
aa440: 4585 li a1,1
aa442: 8552 mv a0,s4
aa444: fff8b097 auipc ra,0xfff8b
aa448: e5e080e7 jalr -418(ra) # 352a2 <__rust_dealloc>
aa44c: 8556 mv a0,s5
aa44e: 00000097 auipc ra,0x0
aa452: bac080e7 jalr -1108(ra) # a9ffa <vault::ctap::storage::reset_pin_retries>
aa456: 8905 andi a0,a0,1
aa458: e12d bnez a0,aa4ba <.LBB549_30+0xac>
aa45a: 004b2583 lw a1,4(s6)
aa45e: 4481 li s1,0
aa460: 0a090023 sb zero,160(s2)
aa464: c80598e3 bnez a1,aa0f4 <.LBB549_2+0xc>
aa468: b321 j aa170 <.LBB549_2+0x88>
# begin missing ct_eq routine
# end missing ct_eq routine
aa46a: 0ff9f593 zext.b a1,s3
aa46e: 4605 li a2,1
aa470: 02000513 li a0,32
aa474: 00c58463 beq a1,a2,aa47c <.LBB549_30+0x6e>
aa478: 06000513 li a0,96
aa47c: 954a add a0,a0,s2
aa47e: 00004097 auipc ra,0x4
aa482: 2d6080e7 jalr 726(ra) # ae754 <vault::ctap::pin_protocol::PinProtocol::regenerate>
aa486: 8556 mv a0,s5
aa488: fffff097 auipc ra,0xfffff
aa48c: 6bc080e7 jalr 1724(ra) # a9b44 <vault::ctap::storage::pin_retries>
aa490: 8905 andi a0,a0,1
aa492: 842e mv s0,a1
aa494: ed0d bnez a0,aa4ce <.LBB549_48+0xa>
aa496: 0ff47513 zext.b a0,s0
aa49a: c905 beqz a0,aa4ca <.LBB549_48+0x6>
aa49c: 0a090503 lb a0,160(s2)
aa4a0: 0505 addi a0,a0,1
aa4a2: 0ff57593 zext.b a1,a0
aa4a6: 0aa90023 sb a0,160(s2)
aa4aa: 4509 li a0,2
aa4ac: 03400413 li s0,52
aa4b0: 00b56f63 bltu a0,a1,aa4ce <.LBB549_48+0xa>
aa4b4: 03100413 li s0,49
aa4b8: a819 j aa4ce <.LBB549_48+0xa>
aa4ba: 842e mv s0,a1
aa4bc: b135 j aa0e8 <.LBB549_2>
000aa4be <.LBB549_47>:
aa4be: 07f00413 li s0,127
aa4c2: b11d j aa0e8 <.LBB549_2>
000aa4c4 <.LBB549_48>:
aa4c4: 0f300413 li s0,243
aa4c8: b105 j aa0e8 <.LBB549_2>
aa4ca: 03200413 li s0,50
aa4ce: c0048de3 beqz s1,aa0e8 <.LBB549_2>
aa4d2: 4585 li a1,1
aa4d4: 8552 mv a0,s4
aa4d6: fff8b097 auipc ra,0xfff8b
aa4da: dcc080e7 jalr -564(ra) # 352a2 <__rust_dealloc>
aa4de: b129 j aa0e8 <.LBB549_2>
aa4e0: 0002b537 lui a0,0x2b
aa4e4: b1450513 addi a0,a0,-1260 # 2ab14 <.Lanon.77d58145572983627de21c6b4eb0fd6d.105>
aa4e8: 0a200593 li a1,162
aa4ec: fff96097 auipc ra,0xfff96
aa4f0: 848080e7 jalr -1976(ra) # 3fd34 <core::panicking::panic_nounwind>
...
000aa4f6 <vault::ctap::client_pin::ClientPin::process_get_pin_token>: