File 8base_80736669542d3727c77ccda1589f9d7c17568a1d97d98ffae84afbbbf081be67.elf
Function:
Loading..
00404c04
00404c04swap_conditional:
00404c04sub sp, sp, 48
00404c08str x0, [sp+24]
00404c0cstr x1, [sp+16]
00404c10str x2, [sp+8]
00404c14ldr x0, [sp+8]
00404c18sub w0, wzr, w0
00404c1cstr w0, [sp+40]
00404c20str wzr, [sp+44]
00404c24b 0x404ce0
00404c28
00404c28loc_404c28:
00404c28ldr w0, [sp+44]
00404c2cubfm x0, x0, 61, 60
00404c30ldr x1, [sp+24]
00404c34add x0, x1, x0
00404c38ldr x0, [x0]
00404c3cmov w2, w0
00404c40ldr w0, [sp+44]
00404c44ubfm x0, x0, 61, 60
00404c48ldr x1, [sp+16]
00404c4cadd x0, x1, x0
00404c50ldr x0, [x0]
00404c54eor w0, w2, w0
00404c58ldr w1, [sp+40]
00404c5cand w0, w1, w0
00404c60str w0, [sp+36]
00404c64ldr w0, [sp+44]
00404c68ubfm x0, x0, 61, 60
00404c6cldr x1, [sp+24]
00404c70add x0, x1, x0
00404c74ldr x0, [x0]
00404c78mov w1, w0
00404c7cldr w0, [sp+36]
00404c80eor w2, w1, w0
00404c84ldr w0, [sp+44]
00404c88ubfm x0, x0, 61, 60
00404c8cldr x1, [sp+24]
00404c90add x0, x1, x0
00404c94sbfm x1, x2, 0, 31
00404c98str x1, [x0]
00404c9cldr w0, [sp+44]
00404ca0ubfm x0, x0, 61, 60
00404ca4ldr x1, [sp+16]
00404ca8add x0, x1, x0
00404cacldr x0, [x0]
00404cb0mov w1, w0
00404cb4ldr w0, [sp+36]
00404cb8eor w2, w1, w0
00404cbcldr w0, [sp+44]
00404cc0ubfm x0, x0, 61, 60
00404cc4ldr x1, [sp+16]
00404cc8add x0, x1, x0
00404cccsbfm x1, x2, 0, 31
00404cd0str x1, [x0]
00404cd4ldr w0, [sp+44]
00404cd8add w0, w0, 1
00404cdcstr w0, [sp+44]
00404ce0
00404ce0loc_404ce0:
00404ce0ldr w0, [sp+44]
00404ce4subs wzr, w0, 9
00404ce8b.ls 0x404c28
00404cechint
00404cf0hint
00404cf4add sp, sp, 48
00404cf8ret x30
00404c04
00404c04swap_conditional:
00404c04sub sp, sp, 48
00404c08str x0, [sp+24]
00404c0cstr x1, [sp+16]
00404c10str x2, [sp+8]
00404c14ldr x0, [sp+8]
00404c18sub w0, wzr, w0
00404c1cstr w0, [sp+40]
00404c20str wzr, [sp+44]
00404c24b 0x404ce0
00404c28
00404c28loc_404c28:
00404c28ldr w0, [sp+44]
00404c2cubfm x0, x0, 61, 60
00404c30ldr x1, [sp+24]
00404c34add x0, x1, x0
00404c38ldr x0, [x0]
00404c3cmov w2, w0
00404c40ldr w0, [sp+44]
00404c44ubfm x0, x0, 61, 60
00404c48ldr x1, [sp+16]
00404c4cadd x0, x1, x0
00404c50ldr x0, [x0]
00404c54eor w0, w2, w0
00404c58ldr w1, [sp+40]
00404c5cand w0, w1, w0
00404c60str w0, [sp+36]
00404c64ldr w0, [sp+44]
00404c68ubfm x0, x0, 61, 60
00404c6cldr x1, [sp+24]
00404c70add x0, x1, x0
00404c74ldr x0, [x0]
00404c78mov w1, w0
00404c7cldr w0, [sp+36]
00404c80eor w2, w1, w0
00404c84ldr w0, [sp+44]
00404c88ubfm x0, x0, 61, 60
00404c8cldr x1, [sp+24]
00404c90add x0, x1, x0
00404c94sbfm x1, x2, 0, 31
00404c98str x1, [x0]
00404c9cldr w0, [sp+44]
00404ca0ubfm x0, x0, 61, 60
00404ca4ldr x1, [sp+16]
00404ca8add x0, x1, x0
00404cacldr x0, [x0]
00404cb0mov w1, w0
00404cb4ldr w0, [sp+36]
00404cb8eor w2, w1, w0
00404cbcldr w0, [sp+44]
00404cc0ubfm x0, x0, 61, 60
00404cc4ldr x1, [sp+16]
00404cc8add x0, x1, x0
00404cccsbfm x1, x2, 0, 31
00404cd0str x1, [x0]
00404cd4ldr w0, [sp+44]
00404cd8add w0, w0, 1
00404cdcstr w0, [sp+44]
00404ce0
00404ce0loc_404ce0:
00404ce0ldr w0, [sp+44]
00404ce4subs wzr, w0, 9
00404ce8b.ls 0x404c28
00404cechint
00404cf0hint
00404cf4add sp, sp, 48
00404cf8ret x30
00404c04
00404cfc
00404cfccmult:
00404cfcsub sp, sp, 1376
00404d00stp x29, x30, [sp+16]
00404d04add x29, sp, 16
00404d08str x0, [sp+56]
00404d0cstr x1, [sp+48]
00404d10str x2, [sp+40]
00404d14str x3, [sp+32]
00404d18add x0, sp, 1128
00404d1cstr x0, [sp+1368]
00404d20add x0, sp, 976
00404d24str x0, [sp+1360]
00404d28add x0, sp, 824
00404d2cstr x0, [sp+1352]
00404d30add x0, sp, 672
00404d34str x0, [sp+1344]
00404d38add x0, sp, 520
00404d3cstr x0, [sp+1336]
00404d40add x0, sp, 368
00404d44str x0, [sp+1328]
00404d48add x0, sp, 216
00404d4cstr x0, [sp+1320]
00404d50add x0, sp, 64
00404d54str x0, [sp+1312]
00404d58str wzr, [sp+1308]
00404d5cb 0x404dec
00404d60
00404d60loc_404d60:
00404d60ldrsw x0, [sp+1308]
00404d64ubfm x0, x0, 61, 60
00404d68add x1, sp, 1128
00404d6cstr xzr, [x1+x0]
00404d70ldrsw x0, [sp+1308]
00404d74ubfm x0, x0, 61, 60
00404d78add x1, sp, 976
00404d7cstr xzr, [x1+x0]
00404d80ldrsw x0, [sp+1308]
00404d84ubfm x0, x0, 61, 60
00404d88add x1, sp, 824
00404d8cstr xzr, [x1+x0]
00404d90ldrsw x0, [sp+1308]
00404d94ubfm x0, x0, 61, 60
00404d98add x1, sp, 672
00404d9cstr xzr, [x1+x0]
00404da0ldrsw x0, [sp+1308]
00404da4ubfm x0, x0, 61, 60
00404da8add x1, sp, 520
00404dacstr xzr, [x1+x0]
00404db0ldrsw x0, [sp+1308]
00404db4ubfm x0, x0, 61, 60
00404db8add x1, sp, 368
00404dbcstr xzr, [x1+x0]
00404dc0ldrsw x0, [sp+1308]
00404dc4ubfm x0, x0, 61, 60
00404dc8add x1, sp, 216
00404dccstr xzr, [x1+x0]
00404dd0ldrsw x0, [sp+1308]
00404dd4ubfm x0, x0, 61, 60
00404dd8add x1, sp, 64
00404ddcstr xzr, [x1+x0]
00404de0ldr w0, [sp+1308]
00404de4add w0, w0, 1
00404de8str w0, [sp+1308]
00404dec
00404decloc_404dec:
00404decldr w0, [sp+1308]
00404df0subs wzr, w0, 18
00404df4b.le 0x404d60
00404df8movz x0, 1
00404dfcstr x0, [sp+976]
00404e00movz x0, 1
00404e04str x0, [sp+824]
00404e08movz x0, 1
00404e0cstr x0, [sp+368]
00404e10movz x0, 1
00404e14str x0, [sp+64]
00404e18movz x2, 80
00404e1cldr x1, [sp+32]
00404e20ldr x0, [sp+1368]
00404e24bl memcpy@plt
00404e28str wzr, [sp+1304]
00404e2cb 0x404f68
00404e30
00404e30loc_404e30:
00404e30movz w1, 31
00404e34ldr w0, [sp+1304]
00404e38sub w0, w1, w0
00404e3cmov w0, w0
00404e40ldr x1, [sp+40]
00404e44add x0, x1, x0
00404e48ldrb w0, [x0]
00404e4cstrb w0, [sp+1299]
00404e50str wzr, [sp+1300]
00404e54b 0x404f50
00404e58
00404e58loc_404e58:
00404e58ldrb w0, [sp+1299]
00404e5cubfm w0, w0, 7, 31
00404e60and w0, w0, 255
00404e64and x0, x0, 255
00404e68str x0, [sp+1288]
00404e6cldr x2, [sp+1288]
00404e70ldr x1, [sp+1368]
00404e74ldr x0, [sp+1352]
00404e78bl swap_conditional
00404e7cldr x2, [sp+1288]
00404e80ldr x1, [sp+1360]
00404e84ldr x0, [sp+1344]
00404e88bl swap_conditional
00404e8cldr x0, [sp+32]
00404e90str x0, [sp]
00404e94ldr x7, [sp+1360]
00404e98ldr x6, [sp+1368]
00404e9cldr x5, [sp+1344]
00404ea0ldr x4, [sp+1352]
00404ea4ldr x3, [sp+1328]
00404ea8ldr x2, [sp+1336]
00404eacldr x1, [sp+1312]
00404eb0ldr x0, [sp+1320]
00404eb4bl fmonty
00404eb8ldr x2, [sp+1288]
00404ebcldr x1, [sp+1336]
00404ec0ldr x0, [sp+1320]
00404ec4bl swap_conditional
00404ec8ldr x2, [sp+1288]
00404eccldr x1, [sp+1328]
00404ed0ldr x0, [sp+1312]
00404ed4bl swap_conditional
00404ed8ldr x0, [sp+1352]
00404edcstr x0, [sp+1280]
00404ee0ldr x0, [sp+1320]
00404ee4str x0, [sp+1352]
00404ee8ldr x0, [sp+1280]
00404eecstr x0, [sp+1320]
00404ef0ldr x0, [sp+1344]
00404ef4str x0, [sp+1280]
00404ef8ldr x0, [sp+1312]
00404efcstr x0, [sp+1344]
00404f00ldr x0, [sp+1280]
00404f04str x0, [sp+1312]
00404f08ldr x0, [sp+1368]
00404f0cstr x0, [sp+1280]
00404f10ldr x0, [sp+1336]
00404f14str x0, [sp+1368]
00404f18ldr x0, [sp+1280]
00404f1cstr x0, [sp+1336]
00404f20ldr x0, [sp+1360]
00404f24str x0, [sp+1280]
00404f28ldr x0, [sp+1328]
00404f2cstr x0, [sp+1360]
00404f30ldr x0, [sp+1280]
00404f34str x0, [sp+1328]
00404f38ldrb w0, [sp+1299]
00404f3cubfm w0, w0, 31, 6
00404f40strb w0, [sp+1299]
00404f44ldr w0, [sp+1300]
00404f48add w0, w0, 1
00404f4cstr w0, [sp+1300]
00404f50
00404f50loc_404f50:
00404f50ldr w0, [sp+1300]
00404f54subs wzr, w0, 7
00404f58b.ls 0x404e58
00404f5cldr w0, [sp+1304]
00404f60add w0, w0, 1
00404f64str w0, [sp+1304]
00404f68
00404f68loc_404f68:
00404f68ldr w0, [sp+1304]
00404f6csubs wzr, w0, 31
00404f70b.ls 0x404e30
00404f74movz x2, 80
00404f78ldr x1, [sp+1352]
00404f7cldr x0, [sp+56]
00404f80bl memcpy@plt
00404f84movz x2, 80
00404f88ldr x1, [sp+1344]
00404f8cldr x0, [sp+48]
00404f90bl memcpy@plt
00404f94hint
00404f98ldp x29, x30, [sp+16]
00404f9cadd sp, sp, 1376
00404fa0ret x30
00404cfc
00404cfccmult:
00404cfcsub sp, sp, 1376
00404d00stp x29, x30, [sp+16]
00404d04add x29, sp, 16
00404d08str x0, [sp+56]
00404d0cstr x1, [sp+48]
00404d10str x2, [sp+40]
00404d14str x3, [sp+32]
00404d18add x0, sp, 1128
00404d1cstr x0, [sp+1368]
00404d20add x0, sp, 976
00404d24str x0, [sp+1360]
00404d28add x0, sp, 824
00404d2cstr x0, [sp+1352]
00404d30add x0, sp, 672
00404d34str x0, [sp+1344]
00404d38add x0, sp, 520
00404d3cstr x0, [sp+1336]
00404d40add x0, sp, 368
00404d44str x0, [sp+1328]
00404d48add x0, sp, 216
00404d4cstr x0, [sp+1320]
00404d50add x0, sp, 64
00404d54str x0, [sp+1312]
00404d58str wzr, [sp+1308]
00404d5cb 0x404dec
00404d60
00404d60loc_404d60:
00404d60ldrsw x0, [sp+1308]
00404d64ubfm x0, x0, 61, 60
00404d68add x1, sp, 1128
00404d6cstr xzr, [x1+x0]
00404d70ldrsw x0, [sp+1308]
00404d74ubfm x0, x0, 61, 60
00404d78add x1, sp, 976
00404d7cstr xzr, [x1+x0]
00404d80ldrsw x0, [sp+1308]
00404d84ubfm x0, x0, 61, 60
00404d88add x1, sp, 824
00404d8cstr xzr, [x1+x0]
00404d90ldrsw x0, [sp+1308]
00404d94ubfm x0, x0, 61, 60
00404d98add x1, sp, 672
00404d9cstr xzr, [x1+x0]
00404da0ldrsw x0, [sp+1308]
00404da4ubfm x0, x0, 61, 60
00404da8add x1, sp, 520
00404dacstr xzr, [x1+x0]
00404db0ldrsw x0, [sp+1308]
00404db4ubfm x0, x0, 61, 60
00404db8add x1, sp, 368
00404dbcstr xzr, [x1+x0]
00404dc0ldrsw x0, [sp+1308]
00404dc4ubfm x0, x0, 61, 60
00404dc8add x1, sp, 216
00404dccstr xzr, [x1+x0]
00404dd0ldrsw x0, [sp+1308]
00404dd4ubfm x0, x0, 61, 60
00404dd8add x1, sp, 64
00404ddcstr xzr, [x1+x0]
00404de0ldr w0, [sp+1308]
00404de4add w0, w0, 1
00404de8str w0, [sp+1308]
00404dec
00404decloc_404dec:
00404decldr w0, [sp+1308]
00404df0subs wzr, w0, 18
00404df4b.le 0x404d60
00404df8movz x0, 1
00404dfcstr x0, [sp+976]
00404e00movz x0, 1
00404e04str x0, [sp+824]
00404e08movz x0, 1
00404e0cstr x0, [sp+368]
00404e10movz x0, 1
00404e14str x0, [sp+64]
00404e18movz x2, 80
00404e1cldr x1, [sp+32]
00404e20ldr x0, [sp+1368]
00404e24bl memcpy@plt
00404e28str wzr, [sp+1304]
00404e2cb 0x404f68
00404e30
00404e30loc_404e30:
00404e30movz w1, 31
00404e34ldr w0, [sp+1304]
00404e38sub w0, w1, w0
00404e3cmov w0, w0
00404e40ldr x1, [sp+40]
00404e44add x0, x1, x0
00404e48ldrb w0, [x0]
00404e4cstrb w0, [sp+1299]
00404e50str wzr, [sp+1300]
00404e54b 0x404f50
00404e58
00404e58loc_404e58:
00404e58ldrb w0, [sp+1299]
00404e5cubfm w0, w0, 7, 31
00404e60and w0, w0, 255
00404e64and x0, x0, 255
00404e68str x0, [sp+1288]
00404e6cldr x2, [sp+1288]
00404e70ldr x1, [sp+1368]
00404e74ldr x0, [sp+1352]
00404e78bl swap_conditional
00404e7cldr x2, [sp+1288]
00404e80ldr x1, [sp+1360]
00404e84ldr x0, [sp+1344]
00404e88bl swap_conditional
00404e8cldr x0, [sp+32]
00404e90str x0, [sp]
00404e94ldr x7, [sp+1360]
00404e98ldr x6, [sp+1368]
00404e9cldr x5, [sp+1344]
00404ea0ldr x4, [sp+1352]
00404ea4ldr x3, [sp+1328]
00404ea8ldr x2, [sp+1336]
00404eacldr x1, [sp+1312]
00404eb0ldr x0, [sp+1320]
00404eb4bl fmonty
00404eb8ldr x2, [sp+1288]
00404ebcldr x1, [sp+1336]
00404ec0ldr x0, [sp+1320]
00404ec4bl swap_conditional
00404ec8ldr x2, [sp+1288]
00404eccldr x1, [sp+1328]
00404ed0ldr x0, [sp+1312]
00404ed4bl swap_conditional
00404ed8ldr x0, [sp+1352]
00404edcstr x0, [sp+1280]
00404ee0ldr x0, [sp+1320]
00404ee4str x0, [sp+1352]
00404ee8ldr x0, [sp+1280]
00404eecstr x0, [sp+1320]
00404ef0ldr x0, [sp+1344]
00404ef4str x0, [sp+1280]
00404ef8ldr x0, [sp+1312]
00404efcstr x0, [sp+1344]
00404f00ldr x0, [sp+1280]
00404f04str x0, [sp+1312]
00404f08ldr x0, [sp+1368]
00404f0cstr x0, [sp+1280]
00404f10ldr x0, [sp+1336]
00404f14str x0, [sp+1368]
00404f18ldr x0, [sp+1280]
00404f1cstr x0, [sp+1336]
00404f20ldr x0, [sp+1360]
00404f24str x0, [sp+1280]
00404f28ldr x0, [sp+1328]
00404f2cstr x0, [sp+1360]
00404f30ldr x0, [sp+1280]
00404f34str x0, [sp+1328]
00404f38ldrb w0, [sp+1299]
00404f3cubfm w0, w0, 31, 6
00404f40strb w0, [sp+1299]
00404f44ldr w0, [sp+1300]
00404f48add w0, w0, 1
00404f4cstr w0, [sp+1300]
00404f50
00404f50loc_404f50:
00404f50ldr w0, [sp+1300]
00404f54subs wzr, w0, 7
00404f58b.ls 0x404e58
00404f5cldr w0, [sp+1304]
00404f60add w0, w0, 1
00404f64str w0, [sp+1304]
00404f68
00404f68loc_404f68:
00404f68ldr w0, [sp+1304]
00404f6csubs wzr, w0, 31
00404f70b.ls 0x404e30
00404f74movz x2, 80
00404f78ldr x1, [sp+1352]
00404f7cldr x0, [sp+56]
00404f80bl memcpy@plt
00404f84movz x2, 80
00404f88ldr x1, [sp+1344]
00404f8cldr x0, [sp+48]
00404f90bl memcpy@plt
00404f94hint
00404f98ldp x29, x30, [sp+16]
00404f9cadd sp, sp, 1376
00404fa0ret x30
00404cfc
00404fa4
00404fa4crecip:
00404fa4sub sp, sp, 848
00404fa8stp x29, x30, [sp]
00404facadd x29, sp, 0
00404fb0str x0, [sp+24]
00404fb4str x1, [sp+16]
00404fb8add x0, sp, 760
00404fbcldr x1, [sp+16]
00404fc0bl fsquare
00404fc4add x1, sp, 760
00404fc8add x0, sp, 40
00404fccbl fsquare
00404fd0add x1, sp, 40
00404fd4add x0, sp, 120
00404fd8bl fsquare
00404fdcadd x1, sp, 120
00404fe0add x0, sp, 680
00404fe4ldr x2, [sp+16]
00404fe8bl fmul
00404fecadd x2, sp, 760
00404ff0add x1, sp, 680
00404ff4add x0, sp, 600
00404ff8bl fmul
00404ffcadd x1, sp, 600
00405000add x0, sp, 120
00405004bl fsquare
00405008add x2, sp, 680
0040500cadd x1, sp, 120
00405010add x0, sp, 520
00405014bl fmul
00405018add x1, sp, 520
0040501cadd x0, sp, 120
00405020bl fsquare
00405024add x1, sp, 120
00405028add x0, sp, 40
0040502cbl fsquare
00405030add x1, sp, 40
00405034add x0, sp, 120
00405038bl fsquare
0040503cadd x1, sp, 120
00405040add x0, sp, 40
00405044bl fsquare
00405048add x1, sp, 40
0040504cadd x0, sp, 120
00405050bl fsquare
00405054add x2, sp, 520
00405058add x1, sp, 120
0040505cadd x0, sp, 440
00405060bl fmul
00405064add x1, sp, 440
00405068add x0, sp, 120
0040506cbl fsquare
00405070add x1, sp, 120
00405074add x0, sp, 40
00405078bl fsquare
0040507cmovz w0, 2
00405080str w0, [sp+844]
00405084b 0x4050ac
00405088
00405088loc_405088:
00405088add x1, sp, 40
0040508cadd x0, sp, 120
00405090bl fsquare
00405094add x1, sp, 120
00405098add x0, sp, 40
0040509cbl fsquare
004050a0ldr w0, [sp+844]
004050a4add w0, w0, 2
004050a8str w0, [sp+844]
004050ac
004050acloc_4050ac:
004050acldr w0, [sp+844]
004050b0subs wzr, w0, 9
004050b4b.le 0x405088
004050b8add x2, sp, 440
004050bcadd x1, sp, 40
004050c0add x0, sp, 360
004050c4bl fmul
004050c8add x1, sp, 360
004050ccadd x0, sp, 120
004050d0bl fsquare
004050d4add x1, sp, 120
004050d8add x0, sp, 40
004050dcbl fsquare
004050e0movz w0, 2
004050e4str w0, [sp+844]
004050e8b 0x405110
004050ec
004050ecloc_4050ec:
004050ecadd x1, sp, 40
004050f0add x0, sp, 120
004050f4bl fsquare
004050f8add x1, sp, 120
004050fcadd x0, sp, 40
00405100bl fsquare
00405104ldr w0, [sp+844]
00405108add w0, w0, 2
0040510cstr w0, [sp+844]
00405110
00405110loc_405110:
00405110ldr w0, [sp+844]
00405114subs wzr, w0, 19
00405118b.le 0x4050ec
0040511cadd x2, sp, 360
00405120add x1, sp, 40
00405124add x0, sp, 120
00405128bl fmul
0040512cadd x1, sp, 120
00405130add x0, sp, 40
00405134bl fsquare
00405138add x1, sp, 40
0040513cadd x0, sp, 120
00405140bl fsquare
00405144movz w0, 2
00405148str w0, [sp+844]
0040514cb 0x405174
00405150
00405150loc_405150:
00405150add x1, sp, 120
00405154add x0, sp, 40
00405158bl fsquare
0040515cadd x1, sp, 40
00405160add x0, sp, 120
00405164bl fsquare
00405168ldr w0, [sp+844]
0040516cadd w0, w0, 2
00405170str w0, [sp+844]
00405174
00405174loc_405174:
00405174ldr w0, [sp+844]
00405178subs wzr, w0, 9
0040517cb.le 0x405150
00405180add x2, sp, 440
00405184add x1, sp, 120
00405188add x0, sp, 280
0040518cbl fmul
00405190add x1, sp, 280
00405194add x0, sp, 120
00405198bl fsquare
0040519cadd x1, sp, 120
004051a0add x0, sp, 40
004051a4bl fsquare
004051a8movz w0, 2
004051acstr w0, [sp+844]
004051b0b 0x4051d8
004051b4
004051b4loc_4051b4:
004051b4add x1, sp, 40
004051b8add x0, sp, 120
004051bcbl fsquare
004051c0add x1, sp, 120
004051c4add x0, sp, 40
004051c8bl fsquare
004051ccldr w0, [sp+844]
004051d0add w0, w0, 2
004051d4str w0, [sp+844]
004051d8
004051d8loc_4051d8:
004051d8ldr w0, [sp+844]
004051dcsubs wzr, w0, 49
004051e0b.le 0x4051b4
004051e4add x2, sp, 280
004051e8add x1, sp, 40
004051ecadd x0, sp, 200
004051f0bl fmul
004051f4add x1, sp, 200
004051f8add x0, sp, 40
004051fcbl fsquare
00405200add x1, sp, 40
00405204add x0, sp, 120
00405208bl fsquare
0040520cmovz w0, 2
00405210str w0, [sp+844]
00405214b 0x40523c
00405218
00405218loc_405218:
00405218add x1, sp, 120
0040521cadd x0, sp, 40
00405220bl fsquare
00405224add x1, sp, 40
00405228add x0, sp, 120
0040522cbl fsquare
00405230ldr w0, [sp+844]
00405234add w0, w0, 2
00405238str w0, [sp+844]
0040523c
0040523cloc_40523c:
0040523cldr w0, [sp+844]
00405240subs wzr, w0, 99
00405244b.le 0x405218
00405248add x2, sp, 200
0040524cadd x1, sp, 120
00405250add x0, sp, 40
00405254bl fmul
00405258add x1, sp, 40
0040525cadd x0, sp, 120
00405260bl fsquare
00405264add x1, sp, 120
00405268add x0, sp, 40
0040526cbl fsquare
00405270movz w0, 2
00405274str w0, [sp+844]
00405278b 0x4052a0
0040527c
0040527cloc_40527c:
0040527cadd x1, sp, 40
00405280add x0, sp, 120
00405284bl fsquare
00405288add x1, sp, 120
0040528cadd x0, sp, 40
00405290bl fsquare
00405294ldr w0, [sp+844]
00405298add w0, w0, 2
0040529cstr w0, [sp+844]
004052a0
004052a0loc_4052a0:
004052a0ldr w0, [sp+844]
004052a4subs wzr, w0, 49
004052a8b.le 0x40527c
004052acadd x2, sp, 280
004052b0add x1, sp, 40
004052b4add x0, sp, 120
004052b8bl fmul
004052bcadd x1, sp, 120
004052c0add x0, sp, 40
004052c4bl fsquare
004052c8add x1, sp, 40
004052ccadd x0, sp, 120
004052d0bl fsquare
004052d4add x1, sp, 120
004052d8add x0, sp, 40
004052dcbl fsquare
004052e0add x1, sp, 40
004052e4add x0, sp, 120
004052e8bl fsquare
004052ecadd x1, sp, 120
004052f0add x0, sp, 40
004052f4bl fsquare
004052f8add x1, sp, 600
004052fcadd x0, sp, 40
00405300mov x2, x1
00405304mov x1, x0
00405308ldr x0, [sp+24]
0040530cbl fmul
00405310hint
00405314ldp x29, x30, [sp]
00405318add sp, sp, 848
0040531cret x30
00404fa4
00404fa4crecip:
00404fa4sub sp, sp, 848
00404fa8stp x29, x30, [sp]
00404facadd x29, sp, 0
00404fb0str x0, [sp+24]
00404fb4str x1, [sp+16]
00404fb8add x0, sp, 760
00404fbcldr x1, [sp+16]
00404fc0bl fsquare
00404fc4add x1, sp, 760
00404fc8add x0, sp, 40
00404fccbl fsquare
00404fd0add x1, sp, 40
00404fd4add x0, sp, 120
00404fd8bl fsquare
00404fdcadd x1, sp, 120
00404fe0add x0, sp, 680
00404fe4ldr x2, [sp+16]
00404fe8bl fmul
00404fecadd x2, sp, 760
00404ff0add x1, sp, 680
00404ff4add x0, sp, 600
00404ff8bl fmul
00404ffcadd x1, sp, 600
00405000add x0, sp, 120
00405004bl fsquare
00405008add x2, sp, 680
0040500cadd x1, sp, 120
00405010add x0, sp, 520
00405014bl fmul
00405018add x1, sp, 520
0040501cadd x0, sp, 120
00405020bl fsquare
00405024add x1, sp, 120
00405028add x0, sp, 40
0040502cbl fsquare
00405030add x1, sp, 40
00405034add x0, sp, 120
00405038bl fsquare
0040503cadd x1, sp, 120
00405040add x0, sp, 40
00405044bl fsquare
00405048add x1, sp, 40
0040504cadd x0, sp, 120
00405050bl fsquare
00405054add x2, sp, 520
00405058add x1, sp, 120
0040505cadd x0, sp, 440
00405060bl fmul
00405064add x1, sp, 440
00405068add x0, sp, 120
0040506cbl fsquare
00405070add x1, sp, 120
00405074add x0, sp, 40
00405078bl fsquare
0040507cmovz w0, 2
00405080str w0, [sp+844]
00405084b 0x4050ac
00405088
00405088loc_405088:
00405088add x1, sp, 40
0040508cadd x0, sp, 120
00405090bl fsquare
00405094add x1, sp, 120
00405098add x0, sp, 40
0040509cbl fsquare
004050a0ldr w0, [sp+844]
004050a4add w0, w0, 2
004050a8str w0, [sp+844]
004050ac
004050acloc_4050ac:
004050acldr w0, [sp+844]
004050b0subs wzr, w0, 9
004050b4b.le 0x405088
004050b8add x2, sp, 440
004050bcadd x1, sp, 40
004050c0add x0, sp, 360
004050c4bl fmul
004050c8add x1, sp, 360
004050ccadd x0, sp, 120
004050d0bl fsquare
004050d4add x1, sp, 120
004050d8add x0, sp, 40
004050dcbl fsquare
004050e0movz w0, 2
004050e4str w0, [sp+844]
004050e8b 0x405110
004050ec
004050ecloc_4050ec:
004050ecadd x1, sp, 40
004050f0add x0, sp, 120
004050f4bl fsquare
004050f8add x1, sp, 120
004050fcadd x0, sp, 40
00405100bl fsquare
00405104ldr w0, [sp+844]
00405108add w0, w0, 2
0040510cstr w0, [sp+844]
00405110
00405110loc_405110:
00405110ldr w0, [sp+844]
00405114subs wzr, w0, 19
00405118b.le 0x4050ec
0040511cadd x2, sp, 360
00405120add x1, sp, 40
00405124add x0, sp, 120
00405128bl fmul
0040512cadd x1, sp, 120
00405130add x0, sp, 40
00405134bl fsquare
00405138add x1, sp, 40
0040513cadd x0, sp, 120
00405140bl fsquare
00405144movz w0, 2
00405148str w0, [sp+844]
0040514cb 0x405174
00405150
00405150loc_405150:
00405150add x1, sp, 120
00405154add x0, sp, 40
00405158bl fsquare
0040515cadd x1, sp, 40
00405160add x0, sp, 120
00405164bl fsquare
00405168ldr w0, [sp+844]
0040516cadd w0, w0, 2
00405170str w0, [sp+844]
00405174
00405174loc_405174:
00405174ldr w0, [sp+844]
00405178subs wzr, w0, 9
0040517cb.le 0x405150
00405180add x2, sp, 440
00405184add x1, sp, 120
00405188add x0, sp, 280
0040518cbl fmul
00405190add x1, sp, 280
00405194add x0, sp, 120
00405198bl fsquare
0040519cadd x1, sp, 120
004051a0add x0, sp, 40
004051a4bl fsquare
004051a8movz w0, 2
004051acstr w0, [sp+844]
004051b0b 0x4051d8
004051b4
004051b4loc_4051b4:
004051b4add x1, sp, 40
004051b8add x0, sp, 120
004051bcbl fsquare
004051c0add x1, sp, 120
004051c4add x0, sp, 40
004051c8bl fsquare
004051ccldr w0, [sp+844]
004051d0add w0, w0, 2
004051d4str w0, [sp+844]
004051d8
004051d8loc_4051d8:
004051d8ldr w0, [sp+844]
004051dcsubs wzr, w0, 49
004051e0b.le 0x4051b4
004051e4add x2, sp, 280
004051e8add x1, sp, 40
004051ecadd x0, sp, 200
004051f0bl fmul
004051f4add x1, sp, 200
004051f8add x0, sp, 40
004051fcbl fsquare
00405200add x1, sp, 40
00405204add x0, sp, 120
00405208bl fsquare
0040520cmovz w0, 2
00405210str w0, [sp+844]
00405214b 0x40523c
00405218
00405218loc_405218:
00405218add x1, sp, 120
0040521cadd x0, sp, 40
00405220bl fsquare
00405224add x1, sp, 40
00405228add x0, sp, 120
0040522cbl fsquare
00405230ldr w0, [sp+844]
00405234add w0, w0, 2
00405238str w0, [sp+844]
0040523c
0040523cloc_40523c:
0040523cldr w0, [sp+844]
00405240subs wzr, w0, 99
00405244b.le 0x405218
00405248add x2, sp, 200
0040524cadd x1, sp, 120
00405250add x0, sp, 40
00405254bl fmul
00405258add x1, sp, 40
0040525cadd x0, sp, 120
00405260bl fsquare
00405264add x1, sp, 120
00405268add x0, sp, 40
0040526cbl fsquare
00405270movz w0, 2
00405274str w0, [sp+844]
00405278b 0x4052a0
0040527c
0040527cloc_40527c:
0040527cadd x1, sp, 40
00405280add x0, sp, 120
00405284bl fsquare
00405288add x1, sp, 120
0040528cadd x0, sp, 40
00405290bl fsquare
00405294ldr w0, [sp+844]
00405298add w0, w0, 2
0040529cstr w0, [sp+844]
004052a0
004052a0loc_4052a0:
004052a0ldr w0, [sp+844]
004052a4subs wzr, w0, 49
004052a8b.le 0x40527c
004052acadd x2, sp, 280
004052b0add x1, sp, 40
004052b4add x0, sp, 120
004052b8bl fmul
004052bcadd x1, sp, 120
004052c0add x0, sp, 40
004052c4bl fsquare
004052c8add x1, sp, 40
004052ccadd x0, sp, 120
004052d0bl fsquare
004052d4add x1, sp, 120
004052d8add x0, sp, 40
004052dcbl fsquare
004052e0add x1, sp, 40
004052e4add x0, sp, 120
004052e8bl fsquare
004052ecadd x1, sp, 120
004052f0add x0, sp, 40
004052f4bl fsquare
004052f8add x1, sp, 600
004052fcadd x0, sp, 40
00405300mov x2, x1
00405304mov x1, x0
00405308ldr x0, [sp+24]
0040530cbl fmul
00405310hint
00405314ldp x29, x30, [sp]
00405318add sp, sp, 848
0040531cret x30
00404fa4
00405320
00405320curve25519_donna:
00405320stp x29, x30, [sp-416]!
00405324add x29, sp, 0
00405328str x0, [sp+40]
0040532cstr x1, [sp+32]
00405330str x2, [sp+24]
00405334str wzr, [sp+412]
00405338b 0x405364
0040533c
0040533cloc_40533c:
0040533cldrsw x0, [sp+412]
00405340ldr x1, [sp+32]
00405344add x0, x1, x0
00405348ldrb w2, [x0]
0040534cldrsw x0, [sp+412]
00405350add x1, sp, 48
00405354strb w2, [x1+x0]
00405358ldr w0, [sp+412]
0040535cadd w0, w0, 1
00405360str w0, [sp+412]
00405364
00405364loc_405364:
00405364ldr w0, [sp+412]
00405368subs wzr, w0, 31
0040536cb.le 0x40533c
00405370ldrb w0, [sp+48]
00405374and w0, w0, 0xfffffff8
00405378and w0, w0, 255
0040537cstrb w0, [sp+48]
00405380ldrb w0, [sp+79]
00405384and w0, w0, 127
00405388and w0, w0, 255
0040538cstrb w0, [sp+79]
00405390ldrb w0, [sp+79]
00405394orr w0, w0, 64
00405398and w0, w0, 255
0040539cstrb w0, [sp+79]
004053a0add x0, sp, 328
004053a4ldr x1, [sp+24]
004053a8bl fexpand
004053acadd x3, sp, 328
004053b0add x2, sp, 48
004053b4add x1, sp, 160
004053b8add x0, sp, 248
004053bcbl cmult
004053c0add x1, sp, 160
004053c4add x0, sp, 80
004053c8bl crecip
004053ccadd x2, sp, 80
004053d0add x1, sp, 248
004053d4add x0, sp, 160
004053d8bl fmul
004053dcadd x0, sp, 160
004053e0mov x1, x0
004053e4ldr x0, [sp+40]
004053e8bl fcontract
004053ecmovz w0, 0
004053f0ldp x29, x30, [sp], 416
004053f4ret x30
00405320
00405320curve25519_donna:
00405320stp x29, x30, [sp-416]!
00405324add x29, sp, 0
00405328str x0, [sp+40]
0040532cstr x1, [sp+32]
00405330str x2, [sp+24]
00405334str wzr, [sp+412]
00405338b 0x405364
0040533c
0040533cloc_40533c:
0040533cldrsw x0, [sp+412]
00405340ldr x1, [sp+32]
00405344add x0, x1, x0
00405348ldrb w2, [x0]
0040534cldrsw x0, [sp+412]
00405350add x1, sp, 48
00405354strb w2, [x1+x0]
00405358ldr w0, [sp+412]
0040535cadd w0, w0, 1
00405360str w0, [sp+412]
00405364
00405364loc_405364:
00405364ldr w0, [sp+412]
00405368subs wzr, w0, 31
0040536cb.le 0x40533c
00405370ldrb w0, [sp+48]
00405374and w0, w0, 0xfffffff8
00405378and w0, w0, 255
0040537cstrb w0, [sp+48]
00405380ldrb w0, [sp+79]
00405384and w0, w0, 127
00405388and w0, w0, 255
0040538cstrb w0, [sp+79]
00405390ldrb w0, [sp+79]
00405394orr w0, w0, 64
00405398and w0, w0, 255
0040539cstrb w0, [sp+79]
004053a0add x0, sp, 328
004053a4ldr x1, [sp+24]
004053a8bl fexpand
004053acadd x3, sp, 328
004053b0add x2, sp, 48
004053b4add x1, sp, 160
004053b8add x0, sp, 248
004053bcbl cmult
004053c0add x1, sp, 160
004053c4add x0, sp, 80
004053c8bl crecip
004053ccadd x2, sp, 80
004053d0add x1, sp, 248
004053d4add x0, sp, 160
004053d8bl fmul
004053dcadd x0, sp, 160
004053e0mov x1, x0
004053e4ldr x0, [sp+40]
004053e8bl fcontract
004053ecmovz w0, 0
004053f0ldp x29, x30, [sp], 416
004053f4ret x30
00405320
004053f8
004053f8_bswapw:
004053f8sub sp, sp, 16
004053fcstr x0, [sp+8]
00405400str w1, [sp+4]
00405404b 0x405458
00405408
00405408loc_405408:
00405408ldr w0, [sp+4]
0040540cubfm x0, x0, 62, 61
00405410ldr x1, [sp+8]
00405414add x0, x1, x0
00405418ldr w0, [x0]
0040541cextr w0, w0, w0, 24
00405420and w2, w0, 0xff00ff
00405424ldr w0, [sp+4]
00405428ubfm x0, x0, 62, 61
0040542cldr x1, [sp+8]
00405430add x0, x1, x0
00405434ldr w0, [x0]
00405438extr w0, w0, w0, 8
0040543cand w1, w0, 0xff00ff00
00405440ldr w0, [sp+4]
00405444ubfm x0, x0, 62, 61
00405448ldr x3, [sp+8]
0040544cadd x0, x3, x0
00405450orr w1, w2, w1
00405454str w1, [x0]
00405458
00405458loc_405458:
00405458ldr w0, [sp+4]
0040545csub w1, w0, 1
00405460str w1, [sp+4]
00405464subs wzr, w0, 0
00405468b.ne 0x405408
0040546chint
00405470hint
00405474add sp, sp, 16
00405478ret x30
004053f8
004053f8_bswapw:
004053f8sub sp, sp, 16
004053fcstr x0, [sp+8]
00405400str w1, [sp+4]
00405404b 0x405458
00405408
00405408loc_405408:
00405408ldr w0, [sp+4]
0040540cubfm x0, x0, 62, 61
00405410ldr x1, [sp+8]
00405414add x0, x1, x0
00405418ldr w0, [x0]
0040541cextr w0, w0, w0, 24
00405420and w2, w0, 0xff00ff
00405424ldr w0, [sp+4]
00405428ubfm x0, x0, 62, 61
0040542cldr x1, [sp+8]
00405430add x0, x1, x0
00405434ldr w0, [x0]
00405438extr w0, w0, w0, 8
0040543cand w1, w0, 0xff00ff00
00405440ldr w0, [sp+4]
00405444ubfm x0, x0, 62, 61
00405448ldr x3, [sp+8]
0040544cadd x0, x3, x0
00405450orr w1, w2, w1
00405454str w1, [x0]
00405458
00405458loc_405458:
00405458ldr w0, [sp+4]
0040545csub w1, w0, 1
00405460str w1, [sp+4]
00405464subs wzr, w0, 0
00405468b.ne 0x405408
0040546chint
00405470hint
00405474add sp, sp, 16
00405478ret x30
004053f8
0040547c
0040547c_memcp:
0040547csub sp, sp, 48
00405480str x0, [sp+24]
00405484str x1, [sp+16]
00405488str w2, [sp+12]
0040548cldr x0, [sp+24]
00405490str x0, [sp+40]
00405494b 0x4054c0
00405498
00405498loc_405498:
00405498ldr x0, [sp+16]
0040549cldrb w1, [x0]
004054a0ldr x0, [sp+24]
004054a4strb w1, [x0]
004054a8ldr x0, [sp+24]
004054acadd x0, x0, 1
004054b0str x0, [sp+24]
004054b4ldr x0, [sp+16]
004054b8add x0, x0, 1
004054bcstr x0, [sp+16]
004054c0
004054c0loc_4054c0:
004054c0ldr w0, [sp+12]
004054c4sub w1, w0, 1
004054c8str w1, [sp+12]
004054ccsubs wzr, w0, 0
004054d0b.ne 0x405498
004054d4ldr x0, [sp+40]
004054d8add sp, sp, 48
004054dcret x30
0040547c
0040547c_memcp:
0040547csub sp, sp, 48
00405480str x0, [sp+24]
00405484str x1, [sp+16]
00405488str w2, [sp+12]
0040548cldr x0, [sp+24]
00405490str x0, [sp+40]
00405494b 0x4054c0
00405498
00405498loc_405498:
00405498ldr x0, [sp+16]
0040549cldrb w1, [x0]
004054a0ldr x0, [sp+24]
004054a4strb w1, [x0]
004054a8ldr x0, [sp+24]
004054acadd x0, x0, 1
004054b0str x0, [sp+24]
004054b4ldr x0, [sp+16]
004054b8add x0, x0, 1
004054bcstr x0, [sp+16]
004054c0
004054c0loc_4054c0:
004054c0ldr w0, [sp+12]
004054c4sub w1, w0, 1
004054c8str w1, [sp+12]
004054ccsubs wzr, w0, 0
004054d0b.ne 0x405498
004054d4ldr x0, [sp+40]
004054d8add sp, sp, 48
004054dcret x30
0040547c
004054e0
004054e0_rtrf:
004054e0sub sp, sp, 32
004054e4str x0, [sp+24]
004054e8str x1, [sp+16]
004054ecstr w2, [sp+12]
004054f0str w3, [sp+8]
004054f4ldr w0, [sp+8]
004054f8subs wzr, w0, 0
004054fcb.eq 0x40564c
00405500ldr w0, [sp+12]
00405504and x0, x0, 15
00405508ubfm x0, x0, 62, 61
0040550cldr x1, [sp+16]
00405510add x0, x1, x0
00405514ldr w2, [x0]
00405518ldr w0, [sp+12]
0040551cadd w0, w0, 14
00405520mov w0, w0
00405524and x0, x0, 15
00405528ubfm x0, x0, 62, 61
0040552cldr x1, [sp+16]
00405530add x0, x1, x0
00405534ldr w0, [x0]
00405538extr w1, w0, w0, 17
0040553cldr w0, [sp+12]
00405540add w0, w0, 14
00405544mov w0, w0
00405548and x0, x0, 15
0040554cubfm x0, x0, 62, 61
00405550ldr x3, [sp+16]
00405554add x0, x3, x0
00405558ldr w0, [x0]
0040555cextr w0, w0, w0, 19
00405560eor w1, w1, w0
00405564ldr w0, [sp+12]
00405568add w0, w0, 14
0040556cmov w0, w0
00405570and x0, x0, 15
00405574ubfm x0, x0, 62, 61
00405578ldr x3, [sp+16]
0040557cadd x0, x3, x0
00405580ldr w0, [x0]
00405584ubfm w0, w0, 10, 31
00405588eor w1, w1, w0
0040558cldr w0, [sp+12]
00405590add w0, w0, 9
00405594mov w0, w0
00405598and x0, x0, 15
0040559cubfm x0, x0, 62, 61
004055a0ldr x3, [sp+16]
004055a4add x0, x3, x0
004055a8ldr w0, [x0]
004055acadd w1, w1, w0
004055b0ldr w0, [sp+12]
004055b4add w0, w0, 1
004055b8mov w0, w0
004055bcand x0, x0, 15
004055c0ubfm x0, x0, 62, 61
004055c4ldr x3, [sp+16]
004055c8add x0, x3, x0
004055ccldr w0, [x0]
004055d0extr w3, w0, w0, 7
004055d4ldr w0, [sp+12]
004055d8add w0, w0, 1
004055dcmov w0, w0
004055e0and x0, x0, 15
004055e4ubfm x0, x0, 62, 61
004055e8ldr x4, [sp+16]
004055ecadd x0, x4, x0
004055f0ldr w0, [x0]
004055f4extr w0, w0, w0, 18
004055f8eor w3, w3, w0
004055fcldr w0, [sp+12]
00405600add w0, w0, 1
00405604mov w0, w0
00405608and x0, x0, 15
0040560cubfm x0, x0, 62, 61
00405610ldr x4, [sp+16]
00405614add x0, x4, x0
00405618ldr w0, [x0]
0040561cubfm w0, w0, 3, 31
00405620eor w0, w3, w0
00405624add w1, w1, w0
00405628ldr w0, [sp+12]
0040562cand x0, x0, 15
00405630ubfm x0, x0, 62, 61
00405634ldr x3, [sp+16]
00405638add x0, x3, x0
0040563cadd w1, w2, w1
00405640str w1, [x0]
00405644ldr w0, [x0]
00405648b 0x405664
0040564c
0040564cloc_40564c:
0040564cldr w0, [sp+12]
00405650and x0, x0, 15
00405654ubfm x0, x0, 62, 61
00405658ldr x1, [sp+16]
0040565cadd x0, x1, x0
00405660ldr w0, [x0]
00405664
00405664loc_405664:
00405664ldr w2, [sp+12]
00405668ldr w1, [sp+8]
0040566cadd w2, w2, w1
00405670adrp x1, 8192
00405674add x1, x1, 3656
00405678mov w2, w2
0040567cldr w1, [x1+2*x2]
00405680add w1, w0, w1
00405684movz w2, 4
00405688ldr w0, [sp+12]
0040568csub w0, w2, w0
00405690mov w0, w0
00405694and x0, x0, 7
00405698ubfm x0, x0, 62, 61
0040569cldr x2, [sp+24]
004056a0add x0, x2, x0
004056a4ldr w0, [x0]
004056a8extr w2, w0, w0, 6
004056acmovz w3, 4
004056b0ldr w0, [sp+12]
004056b4sub w0, w3, w0
004056b8mov w0, w0
004056bcand x0, x0, 7
004056c0ubfm x0, x0, 62, 61
004056c4ldr x3, [sp+24]
004056c8add x0, x3, x0
004056ccldr w0, [x0]
004056d0extr w0, w0, w0, 11
004056d4eor w2, w2, w0
004056d8movz w3, 4
004056dcldr w0, [sp+12]
004056e0sub w0, w3, w0
004056e4mov w0, w0
004056e8and x0, x0, 7
004056ecubfm x0, x0, 62, 61
004056f0ldr x3, [sp+24]
004056f4add x0, x3, x0
004056f8ldr w0, [x0]
004056fcextr w0, w0, w0, 25
00405700eor w0, w2, w0
00405704add w1, w1, w0
00405708movz w2, 6
0040570cldr w0, [sp+12]
00405710sub w0, w2, w0
00405714mov w0, w0
00405718and x0, x0, 7
0040571cubfm x0, x0, 62, 61
00405720ldr x2, [sp+24]
00405724add x0, x2, x0
00405728ldr w2, [x0]
0040572cmovz w3, 4
00405730ldr w0, [sp+12]
00405734sub w0, w3, w0
00405738mov w0, w0
0040573cand x0, x0, 7
00405740ubfm x0, x0, 62, 61
00405744ldr x3, [sp+24]
00405748add x0, x3, x0
0040574cldr w3, [x0]
00405750movz w4, 5
00405754ldr w0, [sp+12]
00405758sub w0, w4, w0
0040575cmov w0, w0
00405760and x0, x0, 7
00405764ubfm x0, x0, 62, 61
00405768ldr x4, [sp+24]
0040576cadd x0, x4, x0
00405770ldr w4, [x0]
00405774movz w5, 6
00405778ldr w0, [sp+12]
0040577csub w0, w5, w0
00405780mov w0, w0
00405784and x0, x0, 7
00405788ubfm x0, x0, 62, 61
0040578cldr x5, [sp+24]
00405790add x0, x5, x0
00405794ldr w0, [x0]
00405798eor w0, w4, w0
0040579cand w0, w3, w0
004057a0eor w0, w2, w0
004057a4add w2, w1, w0
004057a8movz w1, 7
004057acldr w0, [sp+12]
004057b0sub w0, w1, w0
004057b4mov w0, w0
004057b8and x0, x0, 7
004057bcubfm x0, x0, 62, 61
004057c0ldr x1, [sp+24]
004057c4add x0, x1, x0
004057c8ldr w1, [x0]
004057ccmovz w3, 7
004057d0ldr w0, [sp+12]
004057d4sub w0, w3, w0
004057d8mov w0, w0
004057dcand x0, x0, 7
004057e0ubfm x0, x0, 62, 61
004057e4ldr x3, [sp+24]
004057e8add x0, x3, x0
004057ecadd w1, w2, w1
004057f0str w1, [x0]
004057f4movz w1, 3
004057f8ldr w0, [sp+12]
004057fcsub w0, w1, w0
00405800mov w0, w0
00405804and x0, x0, 7
00405808ubfm x0, x0, 62, 61
0040580cldr x1, [sp+24]
00405810add x0, x1, x0
00405814ldr w2, [x0]
00405818movz w1, 7
0040581cldr w0, [sp+12]
00405820sub w0, w1, w0
00405824mov w0, w0
00405828and x0, x0, 7
0040582cubfm x0, x0, 62, 61
00405830ldr x1, [sp+24]
00405834add x0, x1, x0
00405838ldr w1, [x0]
0040583cmovz w3, 3
00405840ldr w0, [sp+12]
00405844sub w0, w3, w0
00405848mov w0, w0
0040584cand x0, x0, 7
00405850ubfm x0, x0, 62, 61
00405854ldr x3, [sp+24]
00405858add x0, x3, x0
0040585cadd w1, w2, w1
00405860str w1, [x0]
00405864movz w1, 7
00405868ldr w0, [sp+12]
0040586csub w0, w1, w0
00405870mov w0, w0
00405874and x0, x0, 7
00405878ubfm x0, x0, 62, 61
0040587cldr x1, [sp+24]
00405880add x0, x1, x0
00405884ldr w2, [x0]
00405888ldr w0, [sp+12]
0040588csub w0, wzr, w0
00405890mov w0, w0
00405894and x0, x0, 7
00405898ubfm x0, x0, 62, 61
0040589cldr x1, [sp+24]
004058a0add x0, x1, x0
004058a4ldr w0, [x0]
004058a8extr w1, w0, w0, 2
004058acldr w0, [sp+12]
004058b0sub w0, wzr, w0
004058b4mov w0, w0
004058b8and x0, x0, 7
004058bcubfm x0, x0, 62, 61
004058c0ldr x3, [sp+24]
004058c4add x0, x3, x0
004058c8ldr w0, [x0]
004058ccextr w0, w0, w0, 13
004058d0eor w1, w1, w0
004058d4ldr w0, [sp+12]
004058d8sub w0, wzr, w0
004058dcmov w0, w0
004058e0and x0, x0, 7
004058e4ubfm x0, x0, 62, 61
004058e8ldr x3, [sp+24]
004058ecadd x0, x3, x0
004058f0ldr w0, [x0]
004058f4extr w0, w0, w0, 22
004058f8eor w1, w1, w0
004058fcldr w0, [sp+12]
00405900sub w0, wzr, w0
00405904mov w0, w0
00405908and x0, x0, 7
0040590cubfm x0, x0, 62, 61
00405910ldr x3, [sp+24]
00405914add x0, x3, x0
00405918ldr w3, [x0]
0040591cmovz w4, 1
00405920ldr w0, [sp+12]
00405924sub w0, w4, w0
00405928mov w0, w0
0040592cand x0, x0, 7
00405930ubfm x0, x0, 62, 61
00405934ldr x4, [sp+24]
00405938add x0, x4, x0
0040593cldr w0, [x0]
00405940and w3, w3, w0
00405944movz w4, 2
00405948ldr w0, [sp+12]
0040594csub w0, w4, w0
00405950mov w0, w0
00405954and x0, x0, 7
00405958ubfm x0, x0, 62, 61
0040595cldr x4, [sp+24]
00405960add x0, x4, x0
00405964ldr w4, [x0]
00405968ldr w0, [sp+12]
0040596csub w0, wzr, w0
00405970mov w0, w0
00405974and x0, x0, 7
00405978ubfm x0, x0, 62, 61
0040597cldr x5, [sp+24]
00405980add x0, x5, x0
00405984ldr w5, [x0]
00405988movz w6, 1
0040598cldr w0, [sp+12]
00405990sub w0, w6, w0
00405994mov w0, w0
00405998and x0, x0, 7
0040599cubfm x0, x0, 62, 61
004059a0ldr x6, [sp+24]
004059a4add x0, x6, x0
004059a8ldr w0, [x0]
004059aceor w0, w5, w0
004059b0and w0, w4, w0
004059b4orr w0, w3, w0
004059b8add w1, w1, w0
004059bcmovz w3, 7
004059c0ldr w0, [sp+12]
004059c4sub w0, w3, w0
004059c8mov w0, w0
004059ccand x0, x0, 7
004059d0ubfm x0, x0, 62, 61
004059d4ldr x3, [sp+24]
004059d8add x0, x3, x0
004059dcadd w1, w2, w1
004059e0str w1, [x0]
004059e4hint
004059e8add sp, sp, 32
004059ecret x30
004054e0
004054e0_rtrf:
004054e0sub sp, sp, 32
004054e4str x0, [sp+24]
004054e8str x1, [sp+16]
004054ecstr w2, [sp+12]
004054f0str w3, [sp+8]
004054f4ldr w0, [sp+8]
004054f8subs wzr, w0, 0
004054fcb.eq 0x40564c
00405500ldr w0, [sp+12]
00405504and x0, x0, 15
00405508ubfm x0, x0, 62, 61
0040550cldr x1, [sp+16]
00405510add x0, x1, x0
00405514ldr w2, [x0]
00405518ldr w0, [sp+12]
0040551cadd w0, w0, 14
00405520mov w0, w0
00405524and x0, x0, 15
00405528ubfm x0, x0, 62, 61
0040552cldr x1, [sp+16]
00405530add x0, x1, x0
00405534ldr w0, [x0]
00405538extr w1, w0, w0, 17
0040553cldr w0, [sp+12]
00405540add w0, w0, 14
00405544mov w0, w0
00405548and x0, x0, 15
0040554cubfm x0, x0, 62, 61
00405550ldr x3, [sp+16]
00405554add x0, x3, x0
00405558ldr w0, [x0]
0040555cextr w0, w0, w0, 19
00405560eor w1, w1, w0
00405564ldr w0, [sp+12]
00405568add w0, w0, 14
0040556cmov w0, w0
00405570and x0, x0, 15
00405574ubfm x0, x0, 62, 61
00405578ldr x3, [sp+16]
0040557cadd x0, x3, x0
00405580ldr w0, [x0]
00405584ubfm w0, w0, 10, 31
00405588eor w1, w1, w0
0040558cldr w0, [sp+12]
00405590add w0, w0, 9
00405594mov w0, w0
00405598and x0, x0, 15
0040559cubfm x0, x0, 62, 61
004055a0ldr x3, [sp+16]
004055a4add x0, x3, x0
004055a8ldr w0, [x0]
004055acadd w1, w1, w0
004055b0ldr w0, [sp+12]
004055b4add w0, w0, 1
004055b8mov w0, w0
004055bcand x0, x0, 15
004055c0ubfm x0, x0, 62, 61
004055c4ldr x3, [sp+16]
004055c8add x0, x3, x0
004055ccldr w0, [x0]
004055d0extr w3, w0, w0, 7
004055d4ldr w0, [sp+12]
004055d8add w0, w0, 1
004055dcmov w0, w0
004055e0and x0, x0, 15
004055e4ubfm x0, x0, 62, 61
004055e8ldr x4, [sp+16]
004055ecadd x0, x4, x0
004055f0ldr w0, [x0]
004055f4extr w0, w0, w0, 18
004055f8eor w3, w3, w0
004055fcldr w0, [sp+12]
00405600add w0, w0, 1
00405604mov w0, w0
00405608and x0, x0, 15
0040560cubfm x0, x0, 62, 61
00405610ldr x4, [sp+16]
00405614add x0, x4, x0
00405618ldr w0, [x0]
0040561cubfm w0, w0, 3, 31
00405620eor w0, w3, w0
00405624add w1, w1, w0
00405628ldr w0, [sp+12]
0040562cand x0, x0, 15
00405630ubfm x0, x0, 62, 61
00405634ldr x3, [sp+16]
00405638add x0, x3, x0
0040563cadd w1, w2, w1
00405640str w1, [x0]
00405644ldr w0, [x0]
00405648b 0x405664
0040564c
0040564cloc_40564c:
0040564cldr w0, [sp+12]
00405650and x0, x0, 15
00405654ubfm x0, x0, 62, 61
00405658ldr x1, [sp+16]
0040565cadd x0, x1, x0
00405660ldr w0, [x0]
00405664
00405664loc_405664:
00405664ldr w2, [sp+12]
00405668ldr w1, [sp+8]
0040566cadd w2, w2, w1
00405670adrp x1, 8192
00405674add x1, x1, 3656
00405678mov w2, w2
0040567cldr w1, [x1+2*x2]
00405680add w1, w0, w1
00405684movz w2, 4
00405688ldr w0, [sp+12]
0040568csub w0, w2, w0
00405690mov w0, w0
00405694and x0, x0, 7
00405698ubfm x0, x0, 62, 61
0040569cldr x2, [sp+24]
004056a0add x0, x2, x0
004056a4ldr w0, [x0]
004056a8extr w2, w0, w0, 6
004056acmovz w3, 4
004056b0ldr w0, [sp+12]
004056b4sub w0, w3, w0
004056b8mov w0, w0
004056bcand x0, x0, 7
004056c0ubfm x0, x0, 62, 61
004056c4ldr x3, [sp+24]
004056c8add x0, x3, x0
004056ccldr w0, [x0]
004056d0extr w0, w0, w0, 11
004056d4eor w2, w2, w0
004056d8movz w3, 4
004056dcldr w0, [sp+12]
004056e0sub w0, w3, w0
004056e4mov w0, w0
004056e8and x0, x0, 7
004056ecubfm x0, x0, 62, 61
004056f0ldr x3, [sp+24]
004056f4add x0, x3, x0
004056f8ldr w0, [x0]
004056fcextr w0, w0, w0, 25
00405700eor w0, w2, w0
00405704add w1, w1, w0
00405708movz w2, 6
0040570cldr w0, [sp+12]
00405710sub w0, w2, w0
00405714mov w0, w0
00405718and x0, x0, 7
0040571cubfm x0, x0, 62, 61
00405720ldr x2, [sp+24]
00405724add x0, x2, x0
00405728ldr w2, [x0]
0040572cmovz w3, 4
00405730ldr w0, [sp+12]
00405734sub w0, w3, w0
00405738mov w0, w0
0040573cand x0, x0, 7
00405740ubfm x0, x0, 62, 61
00405744ldr x3, [sp+24]
00405748add x0, x3, x0
0040574cldr w3, [x0]
00405750movz w4, 5
00405754ldr w0, [sp+12]
00405758sub w0, w4, w0
0040575cmov w0, w0
00405760and x0, x0, 7
00405764ubfm x0, x0, 62, 61
00405768ldr x4, [sp+24]
0040576cadd x0, x4, x0
00405770ldr w4, [x0]
00405774movz w5, 6
00405778ldr w0, [sp+12]
0040577csub w0, w5, w0
00405780mov w0, w0
00405784and x0, x0, 7
00405788ubfm x0, x0, 62, 61
0040578cldr x5, [sp+24]
00405790add x0, x5, x0
00405794ldr w0, [x0]
00405798eor w0, w4, w0
0040579cand w0, w3, w0
004057a0eor w0, w2, w0
004057a4add w2, w1, w0
004057a8movz w1, 7
004057acldr w0, [sp+12]
004057b0sub w0, w1, w0
004057b4mov w0, w0
004057b8and x0, x0, 7
004057bcubfm x0, x0, 62, 61
004057c0ldr x1, [sp+24]
004057c4add x0, x1, x0
004057c8ldr w1, [x0]
004057ccmovz w3, 7
004057d0ldr w0, [sp+12]
004057d4sub w0, w3, w0
004057d8mov w0, w0
004057dcand x0, x0, 7
004057e0ubfm x0, x0, 62, 61
004057e4ldr x3, [sp+24]
004057e8add x0, x3, x0
004057ecadd w1, w2, w1
004057f0str w1, [x0]
004057f4movz w1, 3
004057f8ldr w0, [sp+12]
004057fcsub w0, w1, w0
00405800mov w0, w0
00405804and x0, x0, 7
00405808ubfm x0, x0, 62, 61
0040580cldr x1, [sp+24]
00405810add x0, x1, x0
00405814ldr w2, [x0]
00405818movz w1, 7
0040581cldr w0, [sp+12]
00405820sub w0, w1, w0
00405824mov w0, w0
00405828and x0, x0, 7
0040582cubfm x0, x0, 62, 61
00405830ldr x1, [sp+24]
00405834add x0, x1, x0
00405838ldr w1, [x0]
0040583cmovz w3, 3
00405840ldr w0, [sp+12]
00405844sub w0, w3, w0
00405848mov w0, w0
0040584cand x0, x0, 7
00405850ubfm x0, x0, 62, 61
00405854ldr x3, [sp+24]
00405858add x0, x3, x0
0040585cadd w1, w2, w1
00405860str w1, [x0]
00405864movz w1, 7
00405868ldr w0, [sp+12]
0040586csub w0, w1, w0
00405870mov w0, w0
00405874and x0, x0, 7
00405878ubfm x0, x0, 62, 61
0040587cldr x1, [sp+24]
00405880add x0, x1, x0
00405884ldr w2, [x0]
00405888ldr w0, [sp+12]
0040588csub w0, wzr, w0
00405890mov w0, w0
00405894and x0, x0, 7
00405898ubfm x0, x0, 62, 61
0040589cldr x1, [sp+24]
004058a0add x0, x1, x0
004058a4ldr w0, [x0]
004058a8extr w1, w0, w0, 2
004058acldr w0, [sp+12]
004058b0sub w0, wzr, w0
004058b4mov w0, w0
004058b8and x0, x0, 7
004058bcubfm x0, x0, 62, 61
004058c0ldr x3, [sp+24]
004058c4add x0, x3, x0
004058c8ldr w0, [x0]
004058ccextr w0, w0, w0, 13
004058d0eor w1, w1, w0
004058d4ldr w0, [sp+12]
004058d8sub w0, wzr, w0
004058dcmov w0, w0
004058e0and x0, x0, 7
004058e4ubfm x0, x0, 62, 61
004058e8ldr x3, [sp+24]
004058ecadd x0, x3, x0
004058f0ldr w0, [x0]
004058f4extr w0, w0, w0, 22
004058f8eor w1, w1, w0
004058fcldr w0, [sp+12]
00405900sub w0, wzr, w0
00405904mov w0, w0
00405908and x0, x0, 7
0040590cubfm x0, x0, 62, 61
00405910ldr x3, [sp+24]
00405914add x0, x3, x0
00405918ldr w3, [x0]
0040591cmovz w4, 1
00405920ldr w0, [sp+12]
00405924sub w0, w4, w0
00405928mov w0, w0
0040592cand x0, x0, 7
00405930ubfm x0, x0, 62, 61
00405934ldr x4, [sp+24]
00405938add x0, x4, x0
0040593cldr w0, [x0]
00405940and w3, w3, w0
00405944movz w4, 2
00405948ldr w0, [sp+12]
0040594csub w0, w4, w0
00405950mov w0, w0
00405954and x0, x0, 7
00405958ubfm x0, x0, 62, 61
0040595cldr x4, [sp+24]
00405960add x0, x4, x0
00405964ldr w4, [x0]
00405968ldr w0, [sp+12]
0040596csub w0, wzr, w0
00405970mov w0, w0
00405974and x0, x0, 7
00405978ubfm x0, x0, 62, 61
0040597cldr x5, [sp+24]
00405980add x0, x5, x0
00405984ldr w5, [x0]
00405988movz w6, 1
0040598cldr w0, [sp+12]
00405990sub w0, w6, w0
00405994mov w0, w0
00405998and x0, x0, 7
0040599cubfm x0, x0, 62, 61
004059a0ldr x6, [sp+24]
004059a4add x0, x6, x0
004059a8ldr w0, [x0]
004059aceor w0, w5, w0
004059b0and w0, w4, w0
004059b4orr w0, w3, w0
004059b8add w1, w1, w0
004059bcmovz w3, 7
004059c0ldr w0, [sp+12]
004059c4sub w0, w3, w0
004059c8mov w0, w0
004059ccand x0, x0, 7
004059d0ubfm x0, x0, 62, 61
004059d4ldr x3, [sp+24]
004059d8add x0, x3, x0
004059dcadd w1, w2, w1
004059e0str w1, [x0]
004059e4hint
004059e8add sp, sp, 32
004059ecret x30
004054e0
004059f0
004059f0_hash:
004059f0stp x29, x30, [sp-80]!
004059f4add x29, sp, 0
004059f8str x0, [sp+24]
004059fcldr x0, [sp+24]
00405a00ldr w0, [x0+64]
00405a04str w0, [sp+32]
00405a08ldr x0, [sp+24]
00405a0cldr w0, [x0+68]
00405a10str w0, [sp+36]
00405a14ldr x0, [sp+24]
00405a18ldr w0, [x0+72]
00405a1cstr w0, [sp+40]
00405a20ldr x0, [sp+24]
00405a24ldr w0, [x0+76]
00405a28str w0, [sp+44]
00405a2cldr x0, [sp+24]
00405a30ldr w0, [x0+80]
00405a34str w0, [sp+48]
00405a38ldr x0, [sp+24]
00405a3cldr w0, [x0+84]
00405a40str w0, [sp+52]
00405a44ldr x0, [sp+24]
00405a48ldr w0, [x0+88]
00405a4cstr w0, [sp+56]
00405a50ldr x0, [sp+24]
00405a54ldr w0, [x0+92]
00405a58str w0, [sp+60]
00405a5cldr x0, [sp+24]
00405a60str x0, [sp+64]
00405a64str wzr, [sp+76]
00405a68b 0x405bb8
00405a6c
00405a6cloc_405a6c:
00405a6cadd x0, sp, 32
00405a70ldr w3, [sp+76]
00405a74movz w2, 0
00405a78ldr x1, [sp+64]
00405a7cbl _rtrf
00405a80add x0, sp, 32
00405a84ldr w3, [sp+76]
00405a88movz w2, 1
00405a8cldr x1, [sp+64]
00405a90bl _rtrf
00405a94add x0, sp, 32
00405a98ldr w3, [sp+76]
00405a9cmovz w2, 2
00405aa0ldr x1, [sp+64]
00405aa4bl _rtrf
00405aa8add x0, sp, 32
00405aacldr w3, [sp+76]
00405ab0movz w2, 3
00405ab4ldr x1, [sp+64]
00405ab8bl _rtrf
00405abcadd x0, sp, 32
00405ac0ldr w3, [sp+76]
00405ac4movz w2, 4
00405ac8ldr x1, [sp+64]
00405accbl _rtrf
00405ad0add x0, sp, 32
00405ad4ldr w3, [sp+76]
00405ad8movz w2, 5
00405adcldr x1, [sp+64]
00405ae0bl _rtrf
00405ae4add x0, sp, 32
00405ae8ldr w3, [sp+76]
00405aecmovz w2, 6
00405af0ldr x1, [sp+64]
00405af4bl _rtrf
00405af8add x0, sp, 32
00405afcldr w3, [sp+76]
00405b00movz w2, 7
00405b04ldr x1, [sp+64]
00405b08bl _rtrf
00405b0cadd x0, sp, 32
00405b10ldr w3, [sp+76]
00405b14movz w2, 8
00405b18ldr x1, [sp+64]
00405b1cbl _rtrf
00405b20add x0, sp, 32
00405b24ldr w3, [sp+76]
00405b28movz w2, 9
00405b2cldr x1, [sp+64]
00405b30bl _rtrf
00405b34add x0, sp, 32
00405b38ldr w3, [sp+76]
00405b3cmovz w2, 10
00405b40ldr x1, [sp+64]
00405b44bl _rtrf
00405b48add x0, sp, 32
00405b4cldr w3, [sp+76]
00405b50movz w2, 11
00405b54ldr x1, [sp+64]
00405b58bl _rtrf
00405b5cadd x0, sp, 32
00405b60ldr w3, [sp+76]
00405b64movz w2, 12
00405b68ldr x1, [sp+64]
00405b6cbl _rtrf
00405b70add x0, sp, 32
00405b74ldr w3, [sp+76]
00405b78movz w2, 13
00405b7cldr x1, [sp+64]
00405b80bl _rtrf
00405b84add x0, sp, 32
00405b88ldr w3, [sp+76]
00405b8cmovz w2, 14
00405b90ldr x1, [sp+64]
00405b94bl _rtrf
00405b98add x0, sp, 32
00405b9cldr w3, [sp+76]
00405ba0movz w2, 15
00405ba4ldr x1, [sp+64]
00405ba8bl _rtrf
00405bacldr w0, [sp+76]
00405bb0add w0, w0, 16
00405bb4str w0, [sp+76]
00405bb8
00405bb8loc_405bb8:
00405bb8ldr w0, [sp+76]
00405bbcsubs wzr, w0, 63
00405bc0b.ls 0x405a6c
00405bc4ldr x0, [sp+24]
00405bc8ldr w1, [x0+64]
00405bccldr w0, [sp+32]
00405bd0add w1, w1, w0
00405bd4ldr x0, [sp+24]
00405bd8str w1, [x0+64]
00405bdcldr x0, [sp+24]
00405be0ldr w1, [x0+68]
00405be4ldr w0, [sp+36]
00405be8add w1, w1, w0
00405becldr x0, [sp+24]
00405bf0str w1, [x0+68]
00405bf4ldr x0, [sp+24]
00405bf8ldr w1, [x0+72]
00405bfcldr w0, [sp+40]
00405c00add w1, w1, w0
00405c04ldr x0, [sp+24]
00405c08str w1, [x0+72]
00405c0cldr x0, [sp+24]
00405c10ldr w1, [x0+76]
00405c14ldr w0, [sp+44]
00405c18add w1, w1, w0
00405c1cldr x0, [sp+24]
00405c20str w1, [x0+76]
00405c24ldr x0, [sp+24]
00405c28ldr w1, [x0+80]
00405c2cldr w0, [sp+48]
00405c30add w1, w1, w0
00405c34ldr x0, [sp+24]
00405c38str w1, [x0+80]
00405c3cldr x0, [sp+24]
00405c40ldr w1, [x0+84]
00405c44ldr w0, [sp+52]
00405c48add w1, w1, w0
00405c4cldr x0, [sp+24]
00405c50str w1, [x0+84]
00405c54ldr x0, [sp+24]
00405c58ldr w1, [x0+88]
00405c5cldr w0, [sp+56]
00405c60add w1, w1, w0
00405c64ldr x0, [sp+24]
00405c68str w1, [x0+88]
00405c6cldr x0, [sp+24]
00405c70ldr w1, [x0+92]
00405c74ldr w0, [sp+60]
00405c78add w1, w1, w0
00405c7cldr x0, [sp+24]
00405c80str w1, [x0+92]
00405c84hint
00405c88ldp x29, x30, [sp], 80
00405c8cret x30
004059f0
004059f0_hash:
004059f0stp x29, x30, [sp-80]!
004059f4add x29, sp, 0
004059f8str x0, [sp+24]
004059fcldr x0, [sp+24]
00405a00ldr w0, [x0+64]
00405a04str w0, [sp+32]
00405a08ldr x0, [sp+24]
00405a0cldr w0, [x0+68]
00405a10str w0, [sp+36]
00405a14ldr x0, [sp+24]
00405a18ldr w0, [x0+72]
00405a1cstr w0, [sp+40]
00405a20ldr x0, [sp+24]
00405a24ldr w0, [x0+76]
00405a28str w0, [sp+44]
00405a2cldr x0, [sp+24]
00405a30ldr w0, [x0+80]
00405a34str w0, [sp+48]
00405a38ldr x0, [sp+24]
00405a3cldr w0, [x0+84]
00405a40str w0, [sp+52]
00405a44ldr x0, [sp+24]
00405a48ldr w0, [x0+88]
00405a4cstr w0, [sp+56]
00405a50ldr x0, [sp+24]
00405a54ldr w0, [x0+92]
00405a58str w0, [sp+60]
00405a5cldr x0, [sp+24]
00405a60str x0, [sp+64]
00405a64str wzr, [sp+76]
00405a68b 0x405bb8
00405a6c
00405a6cloc_405a6c:
00405a6cadd x0, sp, 32
00405a70ldr w3, [sp+76]
00405a74movz w2, 0
00405a78ldr x1, [sp+64]
00405a7cbl _rtrf
00405a80add x0, sp, 32
00405a84ldr w3, [sp+76]
00405a88movz w2, 1
00405a8cldr x1, [sp+64]
00405a90bl _rtrf
00405a94add x0, sp, 32
00405a98ldr w3, [sp+76]
00405a9cmovz w2, 2
00405aa0ldr x1, [sp+64]
00405aa4bl _rtrf
00405aa8add x0, sp, 32
00405aacldr w3, [sp+76]
00405ab0movz w2, 3
00405ab4ldr x1, [sp+64]
00405ab8bl _rtrf
00405abcadd x0, sp, 32
00405ac0ldr w3, [sp+76]
00405ac4movz w2, 4
00405ac8ldr x1, [sp+64]
00405accbl _rtrf
00405ad0add x0, sp, 32
00405ad4ldr w3, [sp+76]
00405ad8movz w2, 5
00405adcldr x1, [sp+64]
00405ae0bl _rtrf
00405ae4add x0, sp, 32
00405ae8ldr w3, [sp+76]
00405aecmovz w2, 6
00405af0ldr x1, [sp+64]
00405af4bl _rtrf
00405af8add x0, sp, 32
00405afcldr w3, [sp+76]
00405b00movz w2, 7
00405b04ldr x1, [sp+64]
00405b08bl _rtrf
00405b0cadd x0, sp, 32
00405b10ldr w3, [sp+76]
00405b14movz w2, 8
00405b18ldr x1, [sp+64]
00405b1cbl _rtrf
00405b20add x0, sp, 32
00405b24ldr w3, [sp+76]
00405b28movz w2, 9
00405b2cldr x1, [sp+64]
00405b30bl _rtrf
00405b34add x0, sp, 32
00405b38ldr w3, [sp+76]
00405b3cmovz w2, 10
00405b40ldr x1, [sp+64]
00405b44bl _rtrf
00405b48add x0, sp, 32
00405b4cldr w3, [sp+76]
00405b50movz w2, 11
00405b54ldr x1, [sp+64]
00405b58bl _rtrf
00405b5cadd x0, sp, 32
00405b60ldr w3, [sp+76]
00405b64movz w2, 12
00405b68ldr x1, [sp+64]
00405b6cbl _rtrf
00405b70add x0, sp, 32
00405b74ldr w3, [sp+76]
00405b78movz w2, 13
00405b7cldr x1, [sp+64]
00405b80bl _rtrf
00405b84add x0, sp, 32
00405b88ldr w3, [sp+76]
00405b8cmovz w2, 14
00405b90ldr x1, [sp+64]
00405b94bl _rtrf
00405b98add x0, sp, 32
00405b9cldr w3, [sp+76]
00405ba0movz w2, 15
00405ba4ldr x1, [sp+64]
00405ba8bl _rtrf
00405bacldr w0, [sp+76]
00405bb0add w0, w0, 16
00405bb4str w0, [sp+76]
00405bb8
00405bb8loc_405bb8:
00405bb8ldr w0, [sp+76]
00405bbcsubs wzr, w0, 63
00405bc0b.ls 0x405a6c
00405bc4ldr x0, [sp+24]
00405bc8ldr w1, [x0+64]
00405bccldr w0, [sp+32]
00405bd0add w1, w1, w0
00405bd4ldr x0, [sp+24]
00405bd8str w1, [x0+64]
00405bdcldr x0, [sp+24]
00405be0ldr w1, [x0+68]
00405be4ldr w0, [sp+36]
00405be8add w1, w1, w0
00405becldr x0, [sp+24]
00405bf0str w1, [x0+68]
00405bf4ldr x0, [sp+24]
00405bf8ldr w1, [x0+72]
00405bfcldr w0, [sp+40]
00405c00add w1, w1, w0
00405c04ldr x0, [sp+24]
00405c08str w1, [x0+72]
00405c0cldr x0, [sp+24]
00405c10ldr w1, [x0+76]
00405c14ldr w0, [sp+44]
00405c18add w1, w1, w0
00405c1cldr x0, [sp+24]
00405c20str w1, [x0+76]
00405c24ldr x0, [sp+24]
00405c28ldr w1, [x0+80]
00405c2cldr w0, [sp+48]
00405c30add w1, w1, w0
00405c34ldr x0, [sp+24]
00405c38str w1, [x0+80]
00405c3cldr x0, [sp+24]
00405c40ldr w1, [x0+84]
00405c44ldr w0, [sp+52]
00405c48add w1, w1, w0
00405c4cldr x0, [sp+24]
00405c50str w1, [x0+84]
00405c54ldr x0, [sp+24]
00405c58ldr w1, [x0+88]
00405c5cldr w0, [sp+56]
00405c60add w1, w1, w0
00405c64ldr x0, [sp+24]
00405c68str w1, [x0+88]
00405c6cldr x0, [sp+24]
00405c70ldr w1, [x0+92]
00405c74ldr w0, [sp+60]
00405c78add w1, w1, w0
00405c7cldr x0, [sp+24]
00405c80str w1, [x0+92]
00405c84hint
00405c88ldp x29, x30, [sp], 80
00405c8cret x30
004059f0
00405c90
00405c90sha256_init:
00405c90sub sp, sp, 16
00405c94str x0, [sp+8]
00405c98ldr x0, [sp+8]
00405c9cstr wzr, [x0+100]
00405ca0ldr x0, [sp+8]
00405ca4ldr w1, [x0+100]
00405ca8ldr x0, [sp+8]
00405cacstr w1, [x0+96]
00405cb0ldr x0, [sp+8]
00405cb4movz w1, 58983
00405cb8movk w1, 0x6a090000
00405cbcstr w1, [x0+64]
00405cc0ldr x0, [sp+8]
00405cc4movz w1, 44677
00405cc8movk w1, 0xbb670000
00405cccstr w1, [x0+68]
00405cd0ldr x0, [sp+8]
00405cd4movz w1, 62322
00405cd8movk w1, 0x3c6e0000
00405cdcstr w1, [x0+72]
00405ce0ldr x0, [sp+8]
00405ce4movz w1, 62778
00405ce8movk w1, 0xa54f0000
00405cecstr w1, [x0+76]
00405cf0ldr x0, [sp+8]
00405cf4movz w1, 21119
00405cf8movk w1, 0x510e0000
00405cfcstr w1, [x0+80]
00405d00ldr x0, [sp+8]
00405d04movz w1, 26764
00405d08movk w1, 0x9b050000
00405d0cstr w1, [x0+84]
00405d10ldr x0, [sp+8]
00405d14movz w1, 55723
00405d18movk w1, 0x1f830000
00405d1cstr w1, [x0+88]
00405d20ldr x0, [sp+8]
00405d24movz w1, 52505
00405d28movk w1, 0x5be00000
00405d2cstr w1, [x0+92]
00405d30hint
00405d34add sp, sp, 16
00405d38ret x30
00405c90
00405c90sha256_init:
00405c90sub sp, sp, 16
00405c94str x0, [sp+8]
00405c98ldr x0, [sp+8]
00405c9cstr wzr, [x0+100]
00405ca0ldr x0, [sp+8]
00405ca4ldr w1, [x0+100]
00405ca8ldr x0, [sp+8]
00405cacstr w1, [x0+96]
00405cb0ldr x0, [sp+8]
00405cb4movz w1, 58983
00405cb8movk w1, 0x6a090000
00405cbcstr w1, [x0+64]
00405cc0ldr x0, [sp+8]
00405cc4movz w1, 44677
00405cc8movk w1, 0xbb670000
00405cccstr w1, [x0+68]
00405cd0ldr x0, [sp+8]
00405cd4movz w1, 62322
00405cd8movk w1, 0x3c6e0000
00405cdcstr w1, [x0+72]
00405ce0ldr x0, [sp+8]
00405ce4movz w1, 62778
00405ce8movk w1, 0xa54f0000
00405cecstr w1, [x0+76]
00405cf0ldr x0, [sp+8]
00405cf4movz w1, 21119
00405cf8movk w1, 0x510e0000
00405cfcstr w1, [x0+80]
00405d00ldr x0, [sp+8]
00405d04movz w1, 26764
00405d08movk w1, 0x9b050000
00405d0cstr w1, [x0+84]
00405d10ldr x0, [sp+8]
00405d14movz w1, 55723
00405d18movk w1, 0x1f830000
00405d1cstr w1, [x0+88]
00405d20ldr x0, [sp+8]
00405d24movz w1, 52505
00405d28movk w1, 0x5be00000
00405d2cstr w1, [x0+92]
00405d30hint
00405d34add sp, sp, 16
00405d38ret x30
00405c90
00405d3c
00405d3csha256_hash:
00405d3cstp x29, x30, [sp-80]!
00405d40add x29, sp, 0
00405d44stp x19, x20, [sp+16]
00405d48str x21, [sp+32]
00405d4cstr x0, [sp+72]
00405d50str x1, [sp+64]
00405d54str w2, [sp+60]
00405d58ldr x0, [sp+72]
00405d5cldr w0, [x0+96]
00405d60and w21, w0, 63
00405d64ldr x0, [sp+72]
00405d68ldr w1, [x0+96]
00405d6cldr w0, [sp+60]
00405d70add w1, w1, w0
00405d74ldr x0, [sp+72]
00405d78str w1, [x0+96]
00405d7cldr x0, [sp+72]
00405d80ldr w0, [x0+96]
00405d84ldr w1, [sp+60]
00405d88subs wzr, w1, w0
00405d8cb.ls 0x405da4
00405d90ldr x0, [sp+72]
00405d94ldr w0, [x0+100]
00405d98add w1, w0, 1
00405d9cldr x0, [sp+72]
00405da0str w1, [x0+100]
00405da4
00405da4loc_405da4:
00405da4movz w20, 0
00405da8movz w0, 64
00405dacsub w19, w0, w21
00405db0b 0x405e08
00405db4
00405db4loc_405db4:
00405db4ldr x1, [sp+72]
00405db8mov w0, w21
00405dbcadd x3, x1, x0
00405dc0mov w0, w20
00405dc4ldr x1, [sp+64]
00405dc8add x0, x1, x0
00405dccmov w2, w19
00405dd0mov x1, x0
00405dd4mov x0, x3
00405dd8bl _memcp
00405ddcldr x0, [sp+72]
00405de0movz w1, 16
00405de4bl _bswapw
00405de8ldr x0, [sp+72]
00405decbl _hash
00405df0add w20, w20, w19
00405df4ldr w0, [sp+60]
00405df8sub w0, w0, w19
00405dfcstr w0, [sp+60]
00405e00movz w19, 64
00405e04movz w21, 0
00405e08
00405e08loc_405e08:
00405e08ldr w0, [sp+60]
00405e0csubs wzr, w0, w19
00405e10b.hs 0x405db4
00405e14ldr x1, [sp+72]
00405e18mov w0, w21
00405e1cadd x3, x1, x0
00405e20mov w0, w20
00405e24ldr x1, [sp+64]
00405e28add x0, x1, x0
00405e2cldr w2, [sp+60]
00405e30mov x1, x0
00405e34mov x0, x3
00405e38bl _memcp
00405e3chint
00405e40ldp x19, x20, [sp+16]
00405e44ldr x21, [sp+32]
00405e48ldp x29, x30, [sp], 80
00405e4cret x30
00405d3c
00405d3csha256_hash:
00405d3cstp x29, x30, [sp-80]!
00405d40add x29, sp, 0
00405d44stp x19, x20, [sp+16]
00405d48str x21, [sp+32]
00405d4cstr x0, [sp+72]
00405d50str x1, [sp+64]
00405d54str w2, [sp+60]
00405d58ldr x0, [sp+72]
00405d5cldr w0, [x0+96]
00405d60and w21, w0, 63
00405d64ldr x0, [sp+72]
00405d68ldr w1, [x0+96]
00405d6cldr w0, [sp+60]
00405d70add w1, w1, w0
00405d74ldr x0, [sp+72]
00405d78str w1, [x0+96]
00405d7cldr x0, [sp+72]
00405d80ldr w0, [x0+96]
00405d84ldr w1, [sp+60]
00405d88subs wzr, w1, w0
00405d8cb.ls 0x405da4
00405d90ldr x0, [sp+72]
00405d94ldr w0, [x0+100]
00405d98add w1, w0, 1
00405d9cldr x0, [sp+72]
00405da0str w1, [x0+100]
00405da4
00405da4loc_405da4:
00405da4movz w20, 0
00405da8movz w0, 64
00405dacsub w19, w0, w21
00405db0b 0x405e08
00405db4
00405db4loc_405db4:
00405db4ldr x1, [sp+72]
00405db8mov w0, w21
00405dbcadd x3, x1, x0
00405dc0mov w0, w20
00405dc4ldr x1, [sp+64]
00405dc8add x0, x1, x0
00405dccmov w2, w19
00405dd0mov x1, x0
00405dd4mov x0, x3
00405dd8bl _memcp
00405ddcldr x0, [sp+72]
00405de0movz w1, 16
00405de4bl _bswapw
00405de8ldr x0, [sp+72]
00405decbl _hash
00405df0add w20, w20, w19
00405df4ldr w0, [sp+60]
00405df8sub w0, w0, w19
00405dfcstr w0, [sp+60]
00405e00movz w19, 64
00405e04movz w21, 0
00405e08
00405e08loc_405e08:
00405e08ldr w0, [sp+60]
00405e0csubs wzr, w0, w19
00405e10b.hs 0x405db4
00405e14ldr x1, [sp+72]
00405e18mov w0, w21
00405e1cadd x3, x1, x0
00405e20mov w0, w20
00405e24ldr x1, [sp+64]
00405e28add x0, x1, x0
00405e2cldr w2, [sp+60]
00405e30mov x1, x0
00405e34mov x0, x3
00405e38bl _memcp
00405e3chint
00405e40ldp x19, x20, [sp+16]
00405e44ldr x21, [sp+32]
00405e48ldp x29, x30, [sp], 80
00405e4cret x30
00405d3c
00405e50
00405e50sha256_done:
00405e50stp x29, x30, [sp-48]!
00405e54add x29, sp, 0
00405e58str x0, [sp+24]
00405e5cstr x1, [sp+16]
00405e60ldr x0, [sp+24]
00405e64ldr w0, [x0+96]
00405e68and w0, w0, 63
00405e6cstr w0, [sp+44]
00405e70ldr w0, [sp+44]
00405e74orn w0, wzr, w0
00405e78ubfm w0, w0, 29, 28
00405e7cand w0, w0, 24
00405e80str w0, [sp+40]
00405e84ldr x2, [sp+24]
00405e88ldr w0, [sp+44]
00405e8cadd w0, w0, 3
00405e90ubfm w0, w0, 2, 31
00405e94mov w1, w0
00405e98mov x0, x2
00405e9cbl _bswapw
00405ea0ldr w0, [sp+44]
00405ea4ubfm w1, w0, 2, 31
00405ea8ldr x0, [sp+24]
00405eacmov w1, w1
00405eb0ldr w1, [x0+2*x1]
00405eb4ldr w0, [sp+40]
00405eb8movn w2, 127
00405ebclslv w0, w2, w0
00405ec0ldr w2, [sp+44]
00405ec4ubfm w3, w2, 2, 31
00405ec8and w2, w1, w0
00405eccldr x0, [sp+24]
00405ed0mov w1, w3
00405ed4str w2, [x0+2*x1]
00405ed8ldr w0, [sp+44]
00405edcubfm w1, w0, 2, 31
00405ee0ldr x0, [sp+24]
00405ee4mov w1, w1
00405ee8ldr w0, [x0+2*x1]
00405eecldr w1, [sp+40]
00405ef0movz w2, 128
00405ef4lslv w1, w2, w1
00405ef8mov w2, w1
00405efcldr w1, [sp+44]
00405f00ubfm w1, w1, 2, 31
00405f04orr w2, w0, w2
00405f08ldr x0, [sp+24]
00405f0cmov w1, w1
00405f10str w2, [x0+2*x1]
00405f14ldr w0, [sp+44]
00405f18subs wzr, w0, 55
00405f1cb.hi 0x405f34
00405f20ldr w0, [sp+44]
00405f24ubfm w0, w0, 2, 31
00405f28add w0, w0, 1
00405f2cstr w0, [sp+44]
00405f30b 0x405f8c
00405f34
00405f34loc_405f34:
00405f34ldr x0, [sp+24]
00405f38ldr w1, [x0+60]
00405f3cldr w0, [sp+44]
00405f40subs wzr, w0, 59
00405f44b.hi 0x405f54
00405f48ldr x0, [sp+24]
00405f4cldr w0, [x0+60]
00405f50b 0x405f58
00405f54
00405f54loc_405f54:
00405f54movz w0, 0
00405f58
00405f58loc_405f58:
00405f58eor w1, w0, w1
00405f5cldr x0, [sp+24]
00405f60str w1, [x0+60]
00405f64ldr x0, [sp+24]
00405f68bl _hash
00405f6cstr wzr, [sp+44]
00405f70b 0x405f8c
00405f74
00405f74loc_405f74:
00405f74ldr w0, [sp+44]
00405f78add w1, w0, 1
00405f7cstr w1, [sp+44]
00405f80ldr x1, [sp+24]
00405f84mov w0, w0
00405f88str wzr, [x1+2*x0]
00405f8c
00405f8cloc_405f8c:
00405f8cldr w0, [sp+44]
00405f90subs wzr, w0, 13
00405f94b.ls 0x405f74
00405f98ldr x0, [sp+24]
00405f9cldr w0, [x0+100]
00405fa0ubfm w1, w0, 29, 28
00405fa4ldr x0, [sp+24]
00405fa8ldr w0, [x0+96]
00405facubfm w0, w0, 29, 31
00405fb0orr w1, w1, w0
00405fb4ldr x0, [sp+24]
00405fb8str w1, [x0+56]
00405fbcldr x0, [sp+24]
00405fc0ldr w0, [x0+96]
00405fc4ubfm w1, w0, 29, 28
00405fc8ldr x0, [sp+24]
00405fccstr w1, [x0+60]
00405fd0ldr x0, [sp+24]
00405fd4bl _hash
00405fd8str wzr, [sp+44]
00405fdcb 0x406040
00405fe0
00405fe0loc_405fe0:
00405fe0ldr w0, [sp+44]
00405fe4and w1, w0, 15
00405fe8ldr x0, [sp+24]
00405fecmov w1, w1
00405ff0str wzr, [x0+2*x1]
00405ff4ldr w0, [sp+44]
00405ff8ubfm w1, w0, 2, 31
00405ffcldr x0, [sp+24]
00406000mov w1, w1
00406004add x1, x1, 16
00406008ldr w1, [x0+2*x1]
0040600cldr w0, [sp+44]
00406010orn w0, wzr, w0
00406014ubfm w0, w0, 29, 28
00406018and w0, w0, 24
0040601clsrv w2, w1, w0
00406020ldr w0, [sp+44]
00406024ldr x1, [sp+16]
00406028add x0, x1, x0
0040602cand w1, w2, 255
00406030strb w1, [x0]
00406034ldr w0, [sp+44]
00406038add w0, w0, 1
0040603cstr w0, [sp+44]
00406040
00406040loc_406040:
00406040ldr w0, [sp+44]
00406044subs wzr, w0, 31
00406048b.ls 0x405fe0
0040604chint
00406050hint
00406054ldp x29, x30, [sp], 48
00406058ret x30
00405e50
00405e50sha256_done:
00405e50stp x29, x30, [sp-48]!
00405e54add x29, sp, 0
00405e58str x0, [sp+24]
00405e5cstr x1, [sp+16]
00405e60ldr x0, [sp+24]
00405e64ldr w0, [x0+96]
00405e68and w0, w0, 63
00405e6cstr w0, [sp+44]
00405e70ldr w0, [sp+44]
00405e74orn w0, wzr, w0
00405e78ubfm w0, w0, 29, 28
00405e7cand w0, w0, 24
00405e80str w0, [sp+40]
00405e84ldr x2, [sp+24]
00405e88ldr w0, [sp+44]
00405e8cadd w0, w0, 3
00405e90ubfm w0, w0, 2, 31
00405e94mov w1, w0
00405e98mov x0, x2
00405e9cbl _bswapw
00405ea0ldr w0, [sp+44]
00405ea4ubfm w1, w0, 2, 31
00405ea8ldr x0, [sp+24]
00405eacmov w1, w1
00405eb0ldr w1, [x0+2*x1]
00405eb4ldr w0, [sp+40]
00405eb8movn w2, 127
00405ebclslv w0, w2, w0
00405ec0ldr w2, [sp+44]
00405ec4ubfm w3, w2, 2, 31
00405ec8and w2, w1, w0
00405eccldr x0, [sp+24]
00405ed0mov w1, w3
00405ed4str w2, [x0+2*x1]
00405ed8ldr w0, [sp+44]
00405edcubfm w1, w0, 2, 31
00405ee0ldr x0, [sp+24]
00405ee4mov w1, w1
00405ee8ldr w0, [x0+2*x1]
00405eecldr w1, [sp+40]
00405ef0movz w2, 128
00405ef4lslv w1, w2, w1
00405ef8mov w2, w1
00405efcldr w1, [sp+44]
00405f00ubfm w1, w1, 2, 31
00405f04orr w2, w0, w2
00405f08ldr x0, [sp+24]
00405f0cmov w1, w1
00405f10str w2, [x0+2*x1]
00405f14ldr w0, [sp+44]
00405f18subs wzr, w0, 55
00405f1cb.hi 0x405f34
00405f20ldr w0, [sp+44]
00405f24ubfm w0, w0, 2, 31
00405f28add w0, w0, 1
00405f2cstr w0, [sp+44]
00405f30b 0x405f8c
00405f34
00405f34loc_405f34:
00405f34ldr x0, [sp+24]
00405f38ldr w1, [x0+60]
00405f3cldr w0, [sp+44]
00405f40subs wzr, w0, 59
00405f44b.hi 0x405f54
00405f48ldr x0, [sp+24]
00405f4cldr w0, [x0+60]
00405f50b 0x405f58
00405f54
00405f54loc_405f54:
00405f54movz w0, 0
00405f58
00405f58loc_405f58:
00405f58eor w1, w0, w1
00405f5cldr x0, [sp+24]
00405f60str w1, [x0+60]
00405f64ldr x0, [sp+24]
00405f68bl _hash
00405f6cstr wzr, [sp+44]
00405f70b 0x405f8c
00405f74
00405f74loc_405f74:
00405f74ldr w0, [sp+44]
00405f78add w1, w0, 1
00405f7cstr w1, [sp+44]
00405f80ldr x1, [sp+24]
00405f84mov w0, w0
00405f88str wzr, [x1+2*x0]
00405f8c
00405f8cloc_405f8c:
00405f8cldr w0, [sp+44]
00405f90subs wzr, w0, 13
00405f94b.ls 0x405f74
00405f98ldr x0, [sp+24]
00405f9cldr w0, [x0+100]
00405fa0ubfm w1, w0, 29, 28
00405fa4ldr x0, [sp+24]
00405fa8ldr w0, [x0+96]
00405facubfm w0, w0, 29, 31
00405fb0orr w1, w1, w0
00405fb4ldr x0, [sp+24]
00405fb8str w1, [x0+56]
00405fbcldr x0, [sp+24]
00405fc0ldr w0, [x0+96]
00405fc4ubfm w1, w0, 29, 28
00405fc8ldr x0, [sp+24]
00405fccstr w1, [x0+60]
00405fd0ldr x0, [sp+24]
00405fd4bl _hash
00405fd8str wzr, [sp+44]
00405fdcb 0x406040
00405fe0
00405fe0loc_405fe0:
00405fe0ldr w0, [sp+44]
00405fe4and w1, w0, 15
00405fe8ldr x0, [sp+24]
00405fecmov w1, w1
00405ff0str wzr, [x0+2*x1]
00405ff4ldr w0, [sp+44]
00405ff8ubfm w1, w0, 2, 31
00405ffcldr x0, [sp+24]
00406000mov w1, w1
00406004add x1, x1, 16
00406008ldr w1, [x0+2*x1]
0040600cldr w0, [sp+44]
00406010orn w0, wzr, w0
00406014ubfm w0, w0, 29, 28
00406018and w0, w0, 24
0040601clsrv w2, w1, w0
00406020ldr w0, [sp+44]
00406024ldr x1, [sp+16]
00406028add x0, x1, x0
0040602cand w1, w2, 255
00406030strb w1, [x0]
00406034ldr w0, [sp+44]
00406038add w0, w0, 1
0040603cstr w0, [sp+44]
00406040
00406040loc_406040:
00406040ldr w0, [sp+44]
00406044subs wzr, w0, 31
00406048b.ls 0x405fe0
0040604chint
00406050hint
00406054ldp x29, x30, [sp], 48
00406058ret x30
00405e50
0040605c
0040605cthpool_init:
0040605cstp x29, x30, [sp-48]!
00406060add x29, sp, 0
00406064str w0, [sp+28]
00406068adrp x0, 0x14000
0040606cadd x0, x0, 692
00406070str wzr, [x0]
00406074adrp x0, 0x14000
00406078add x0, x0, 688
0040607cmovz w1, 1
00406080str w1, [x0]
00406084ldr w0, [sp+28]
00406088subs wzr, w0, 0
0040608cb.ge 0x406094
00406090str wzr, [sp+28]
00406094
00406094loc_406094:
00406094movz x0, 192
00406098bl malloc@plt
0040609cstr x0, [sp+32]
004060a0ldr x0, [sp+32]
004060a4subs xzr, x0, 0
004060a8b.ne 0x4060d8
004060acadrp x0, 0x14000
004060b0add x0, x0, 648
004060b4ldr x0, [x0]
004060b8mov x3, x0
004060bcmovz x2, 57
004060c0movz x1, 1
004060c4adrp x0, 4096
004060c8add x0, x0, 3912
004060ccbl fwrite@plt
004060d0movz x0, 0
004060d4b 0x40621c
004060d8
004060d8loc_4060d8:
004060d8ldr x0, [sp+32]
004060dcstr wzr, [x0+8]
004060e0ldr x0, [sp+32]
004060e4str wzr, [x0+12]
004060e8ldr x0, [sp+32]
004060ecadd x0, x0, 112
004060f0bl jobqueue_init
004060f4adds wzr, w0, 1
004060f8b.ne 0x406130
004060fcadrp x0, 0x14000
00406100add x0, x0, 648
00406104ldr x0, [x0]
00406108mov x3, x0
0040610cmovz x2, 55
00406110movz x1, 1
00406114adrp x0, 4096
00406118add x0, x0, 3976
0040611cbl fwrite@plt
00406120ldr x0, [sp+32]
00406124bl free@plt
00406128movz x0, 0
0040612cb 0x40621c
00406130
00406130loc_406130:
00406130ldrsw x0, [sp+28]
00406134ubfm x0, x0, 61, 60
00406138bl malloc@plt
0040613cmov x1, x0
00406140ldr x0, [sp+32]
00406144str x1, [x0]
00406148ldr x0, [sp+32]
0040614cldr x0, [x0]
00406150subs xzr, x0, 0
00406154b.ne 0x406198
00406158adrp x0, 0x14000
0040615cadd x0, x0, 648
00406160ldr x0, [x0]
00406164mov x3, x0
00406168movz x2, 53
0040616cmovz x1, 1
00406170adrp x0, 4096
00406174add x0, x0, 4032
00406178bl fwrite@plt
0040617cldr x0, [sp+32]
00406180add x0, x0, 112
00406184bl jobqueue_destroy
00406188ldr x0, [sp+32]
0040618cbl free@plt
00406190movz x0, 0
00406194b 0x40621c
00406198
00406198loc_406198:
00406198ldr x0, [sp+32]
0040619cadd x0, x0, 16
004061a0movz x1, 0
004061a4bl pthread_mutex_init@plt
004061a8ldr x0, [sp+32]
004061acadd x0, x0, 64
004061b0movz x1, 0
004061b4bl pthread_cond_init@plt
004061b8str wzr, [sp+44]
004061bcb 0x4061f0
004061c0
004061c0loc_4061c0:
004061c0ldr x0, [sp+32]
004061c4ldr x1, [x0]
004061c8ldrsw x0, [sp+44]
004061ccubfm x0, x0, 61, 60
004061d0add x0, x1, x0
004061d4ldr w2, [sp+44]
004061d8mov x1, x0
004061dcldr x0, [sp+32]
004061e0bl thread_init
004061e4ldr w0, [sp+44]
004061e8add w0, w0, 1
004061ecstr w0, [sp+44]
004061f0
004061f0loc_4061f0:
004061f0ldr w1, [sp+44]
004061f4ldr w0, [sp+28]
004061f8subs wzr, w1, w0
004061fcb.lt 0x4061c0
00406200hint
00406204
00406204loc_406204:
00406204ldr x0, [sp+32]
00406208ldr w0, [x0+8]
0040620cldr w1, [sp+28]
00406210subs wzr, w1, w0
00406214b.ne 0x406204
00406218ldr x0, [sp+32]
0040621c
0040621cloc_40621c:
0040621cldp x29, x30, [sp], 48
00406220ret x30
0040605c
0040605cthpool_init:
0040605cstp x29, x30, [sp-48]!
00406060add x29, sp, 0
00406064str w0, [sp+28]
00406068adrp x0, 0x14000
0040606cadd x0, x0, 692
00406070str wzr, [x0]
00406074adrp x0, 0x14000
00406078add x0, x0, 688
0040607cmovz w1, 1
00406080str w1, [x0]
00406084ldr w0, [sp+28]
00406088subs wzr, w0, 0
0040608cb.ge 0x406094
00406090str wzr, [sp+28]
00406094
00406094loc_406094:
00406094movz x0, 192
00406098bl malloc@plt
0040609cstr x0, [sp+32]
004060a0ldr x0, [sp+32]
004060a4subs xzr, x0, 0
004060a8b.ne 0x4060d8
004060acadrp x0, 0x14000
004060b0add x0, x0, 648
004060b4ldr x0, [x0]
004060b8mov x3, x0
004060bcmovz x2, 57
004060c0movz x1, 1
004060c4adrp x0, 4096
004060c8add x0, x0, 3912
004060ccbl fwrite@plt
004060d0movz x0, 0
004060d4b 0x40621c
004060d8
004060d8loc_4060d8:
004060d8ldr x0, [sp+32]
004060dcstr wzr, [x0+8]
004060e0ldr x0, [sp+32]
004060e4str wzr, [x0+12]
004060e8ldr x0, [sp+32]
004060ecadd x0, x0, 112
004060f0bl jobqueue_init
004060f4adds wzr, w0, 1
004060f8b.ne 0x406130
004060fcadrp x0, 0x14000
00406100add x0, x0, 648
00406104ldr x0, [x0]
00406108mov x3, x0
0040610cmovz x2, 55
00406110movz x1, 1
00406114adrp x0, 4096
00406118add x0, x0, 3976
0040611cbl fwrite@plt
00406120ldr x0, [sp+32]
00406124bl free@plt
00406128movz x0, 0
0040612cb 0x40621c
00406130
00406130loc_406130:
00406130ldrsw x0, [sp+28]
00406134ubfm x0, x0, 61, 60
00406138bl malloc@plt
0040613cmov x1, x0
00406140ldr x0, [sp+32]
00406144str x1, [x0]
00406148ldr x0, [sp+32]
0040614cldr x0, [x0]
00406150subs xzr, x0, 0
00406154b.ne 0x406198
00406158adrp x0, 0x14000
0040615cadd x0, x0, 648
00406160ldr x0, [x0]
00406164mov x3, x0
00406168movz x2, 53
0040616cmovz x1, 1
00406170adrp x0, 4096
00406174add x0, x0, 4032
00406178bl fwrite@plt
0040617cldr x0, [sp+32]
00406180add x0, x0, 112
00406184bl jobqueue_destroy
00406188ldr x0, [sp+32]
0040618cbl free@plt
00406190movz x0, 0
00406194b 0x40621c
00406198
00406198loc_406198:
00406198ldr x0, [sp+32]
0040619cadd x0, x0, 16
004061a0movz x1, 0
004061a4bl pthread_mutex_init@plt
004061a8ldr x0, [sp+32]
004061acadd x0, x0, 64
004061b0movz x1, 0
004061b4bl pthread_cond_init@plt
004061b8str wzr, [sp+44]
004061bcb 0x4061f0
004061c0
004061c0loc_4061c0:
004061c0ldr x0, [sp+32]
004061c4ldr x1, [x0]
004061c8ldrsw x0, [sp+44]
004061ccubfm x0, x0, 61, 60
004061d0add x0, x1, x0
004061d4ldr w2, [sp+44]
004061d8mov x1, x0
004061dcldr x0, [sp+32]
004061e0bl thread_init
004061e4ldr w0, [sp+44]
004061e8add w0, w0, 1
004061ecstr w0, [sp+44]
004061f0
004061f0loc_4061f0:
004061f0ldr w1, [sp+44]
004061f4ldr w0, [sp+28]
004061f8subs wzr, w1, w0
004061fcb.lt 0x4061c0
00406200hint
00406204
00406204loc_406204:
00406204ldr x0, [sp+32]
00406208ldr w0, [x0+8]
0040620cldr w1, [sp+28]
00406210subs wzr, w1, w0
00406214b.ne 0x406204
00406218ldr x0, [sp+32]
0040621c
0040621cloc_40621c:
0040621cldp x29, x30, [sp], 48
00406220ret x30
0040605c
00406224
00406224thpool_add_work:
00406224stp x29, x30, [sp-64]!
00406228add x29, sp, 0
0040622cstr x0, [sp+40]
00406230str x1, [sp+32]
00406234str x2, [sp+24]
00406238movz x0, 24
0040623cbl malloc@plt
00406240str x0, [sp+56]
00406244ldr x0, [sp+56]
00406248subs xzr, x0, 0
0040624cb.ne 0x40627c
00406250adrp x0, 0x14000
00406254add x0, x0, 648
00406258ldr x0, [x0]
0040625cmov x3, x0
00406260movz x2, 57
00406264movz x1, 1
00406268adrp x0, 4096
0040626cadd x0, x0, 4088
00406270bl fwrite@plt
00406274movn w0, 0
00406278b 0x4062a8
0040627c
0040627cloc_40627c:
0040627cldr x0, [sp+56]
00406280ldr x1, [sp+32]
00406284str x1, [x0+8]
00406288ldr x0, [sp+56]
0040628cldr x1, [sp+24]
00406290str x1, [x0+16]
00406294ldr x0, [sp+40]
00406298add x0, x0, 112
0040629cldr x1, [sp+56]
004062a0bl jobqueue_push
004062a4movz w0, 0
004062a8
004062a8loc_4062a8:
004062a8ldp x29, x30, [sp], 64
004062acret x30
00406224
00406224thpool_add_work:
00406224stp x29, x30, [sp-64]!
00406228add x29, sp, 0
0040622cstr x0, [sp+40]
00406230str x1, [sp+32]
00406234str x2, [sp+24]
00406238movz x0, 24
0040623cbl malloc@plt
00406240str x0, [sp+56]
00406244ldr x0, [sp+56]
00406248subs xzr, x0, 0
0040624cb.ne 0x40627c
00406250adrp x0, 0x14000
00406254add x0, x0, 648
00406258ldr x0, [x0]
0040625cmov x3, x0
00406260movz x2, 57
00406264movz x1, 1
00406268adrp x0, 4096
0040626cadd x0, x0, 4088
00406270bl fwrite@plt
00406274movn w0, 0
00406278b 0x4062a8
0040627c
0040627cloc_40627c:
0040627cldr x0, [sp+56]
00406280ldr x1, [sp+32]
00406284str x1, [x0+8]
00406288ldr x0, [sp+56]
0040628cldr x1, [sp+24]
00406290str x1, [x0+16]
00406294ldr x0, [sp+40]
00406298add x0, x0, 112
0040629cldr x1, [sp+56]
004062a0bl jobqueue_push
004062a4movz w0, 0
004062a8
004062a8loc_4062a8:
004062a8ldp x29, x30, [sp], 64
004062acret x30
00406224
004062b0
004062b0thpool_wait:
004062b0stp x29, x30, [sp-32]!
004062b4add x29, sp, 0
004062b8str x0, [sp+24]
004062bcldr x0, [sp+24]
004062c0add x0, x0, 16
004062c4bl pthread_mutex_lock@plt
004062c8b 0x4062e8
004062cc
004062ccloc_4062cc:
004062ccldr x0, [sp+24]
004062d0add x2, x0, 64
004062d4ldr x0, [sp+24]
004062d8add x0, x0, 16
004062dcmov x1, x0
004062e0mov x0, x2
004062e4bl pthread_cond_wait@plt
004062e8
004062e8loc_4062e8:
004062e8ldr x0, [sp+24]
004062ecldr w0, [x0+184]
004062f0subs wzr, w0, 0
004062f4b.ne 0x4062cc
004062f8ldr x0, [sp+24]
004062fcldr w0, [x0+12]
00406300subs wzr, w0, 0
00406304b.ne 0x4062cc
00406308ldr x0, [sp+24]
0040630cadd x0, x0, 16
00406310bl pthread_mutex_unlock@plt
00406314hint
00406318ldp x29, x30, [sp], 32
0040631cret x30
004062b0
004062b0thpool_wait:
004062b0stp x29, x30, [sp-32]!
004062b4add x29, sp, 0
004062b8str x0, [sp+24]
004062bcldr x0, [sp+24]
004062c0add x0, x0, 16
004062c4bl pthread_mutex_lock@plt
004062c8b 0x4062e8
004062cc
004062ccloc_4062cc:
004062ccldr x0, [sp+24]
004062d0add x2, x0, 64
004062d4ldr x0, [sp+24]
004062d8add x0, x0, 16
004062dcmov x1, x0
004062e0mov x0, x2
004062e4bl pthread_cond_wait@plt
004062e8
004062e8loc_4062e8:
004062e8ldr x0, [sp+24]
004062ecldr w0, [x0+184]
004062f0subs wzr, w0, 0
004062f4b.ne 0x4062cc
004062f8ldr x0, [sp+24]
004062fcldr w0, [x0+12]
00406300subs wzr, w0, 0
00406304b.ne 0x4062cc
00406308ldr x0, [sp+24]
0040630cadd x0, x0, 16
00406310bl pthread_mutex_unlock@plt
00406314hint
00406318ldp x29, x30, [sp], 32
0040631cret x30
004062b0
00406320
00406320thpool_destroy:
00406320stp x29, x30, [sp-80]!
00406324add x29, sp, 0
00406328str x0, [sp+24]
0040632cldr x0, [sp+24]
00406330subs xzr, x0, 0
00406334b.eq 0x40643c
00406338ldr x0, [sp+24]
0040633cldr w0, [x0+8]
00406340str w0, [sp+52]
00406344adrp x0, 0x14000
00406348add x0, x0, 688
0040634cstr wzr, [x0]
00406350fmov d0
00406354str d0, [sp+56]
00406358str xzr, [sp+72]
0040635cadd x0, sp, 40
00406360bl time@plt
00406364b 0x40638c
00406368
00406368loc_406368:
00406368ldr x0, [sp+24]
0040636cldr x0, [x0+176]
00406370bl bsem_post_all
00406374add x0, sp, 32
00406378bl time@plt
0040637cldr x0, [sp+32]
00406380ldr x1, [sp+40]
00406384bl difftime@plt
00406388str d0, [sp+72]
0040638c
0040638cloc_40638c:
0040638cldr d1, [sp+72]
00406390ldr d0, [sp+56]
00406394fcmpe d1, d0
00406398b.mi 0x4063a0
0040639cb 0x4063b0
004063a0
004063a0loc_4063a0:
004063a0ldr x0, [sp+24]
004063a4ldr w0, [x0+8]
004063a8subs wzr, w0, 0
004063acb.ne 0x406368
004063b0
004063b0loc_4063b0:
004063b0b 0x4063c8
004063b4
004063b4loc_4063b4:
004063b4ldr x0, [sp+24]
004063b8ldr x0, [x0+176]
004063bcbl bsem_post_all
004063c0movz w0, 1
004063c4bl sleep@plt
004063c8
004063c8loc_4063c8:
004063c8ldr x0, [sp+24]
004063ccldr w0, [x0+8]
004063d0subs wzr, w0, 0
004063d4b.ne 0x4063b4
004063d8ldr x0, [sp+24]
004063dcadd x0, x0, 112
004063e0bl jobqueue_destroy
004063e4str wzr, [sp+68]
004063e8b 0x406414
004063ec
004063ecloc_4063ec:
004063ecldr x0, [sp+24]
004063f0ldr x1, [x0]
004063f4ldrsw x0, [sp+68]
004063f8ubfm x0, x0, 61, 60
004063fcadd x0, x1, x0
00406400ldr x0, [x0]
00406404bl thread_destroy
00406408ldr w0, [sp+68]
0040640cadd w0, w0, 1
00406410str w0, [sp+68]
00406414
00406414loc_406414:
00406414ldr w0, [sp+52]
00406418ldr w1, [sp+68]
0040641csubs wzr, w1, w0
00406420b.lt 0x4063ec
00406424ldr x0, [sp+24]
00406428ldr x0, [x0]
0040642cbl free@plt
00406430ldr x0, [sp+24]
00406434bl free@plt
00406438b 0x406440
0040643c
0040643cloc_40643c:
0040643chint
00406440
00406440loc_406440:
00406440ldp x29, x30, [sp], 80
00406444ret x30
00406320
00406320thpool_destroy:
00406320stp x29, x30, [sp-80]!
00406324add x29, sp, 0
00406328str x0, [sp+24]
0040632cldr x0, [sp+24]
00406330subs xzr, x0, 0
00406334b.eq 0x40643c
00406338ldr x0, [sp+24]
0040633cldr w0, [x0+8]
00406340str w0, [sp+52]
00406344adrp x0, 0x14000
00406348add x0, x0, 688
0040634cstr wzr, [x0]
00406350fmov d0
00406354str d0, [sp+56]
00406358str xzr, [sp+72]
0040635cadd x0, sp, 40
00406360bl time@plt
00406364b 0x40638c
00406368
00406368loc_406368:
00406368ldr x0, [sp+24]
0040636cldr x0, [x0+176]
00406370bl bsem_post_all
00406374add x0, sp, 32
00406378bl time@plt
0040637cldr x0, [sp+32]
00406380ldr x1, [sp+40]
00406384bl difftime@plt
00406388str d0, [sp+72]
0040638c
0040638cloc_40638c:
0040638cldr d1, [sp+72]
00406390ldr d0, [sp+56]
00406394fcmpe d1, d0
00406398b.mi 0x4063a0
0040639cb 0x4063b0
004063a0
004063a0loc_4063a0:
004063a0ldr x0, [sp+24]
004063a4ldr w0, [x0+8]
004063a8subs wzr, w0, 0
004063acb.ne 0x406368
004063b0
004063b0loc_4063b0:
004063b0b 0x4063c8
004063b4
004063b4loc_4063b4:
004063b4ldr x0, [sp+24]
004063b8ldr x0, [x0+176]
004063bcbl bsem_post_all
004063c0movz w0, 1
004063c4bl sleep@plt
004063c8
004063c8loc_4063c8:
004063c8ldr x0, [sp+24]
004063ccldr w0, [x0+8]
004063d0subs wzr, w0, 0
004063d4b.ne 0x4063b4
004063d8ldr x0, [sp+24]
004063dcadd x0, x0, 112
004063e0bl jobqueue_destroy
004063e4str wzr, [sp+68]
004063e8b 0x406414
004063ec
004063ecloc_4063ec:
004063ecldr x0, [sp+24]
004063f0ldr x1, [x0]
004063f4ldrsw x0, [sp+68]
004063f8ubfm x0, x0, 61, 60
004063fcadd x0, x1, x0
00406400ldr x0, [x0]
00406404bl thread_destroy
00406408ldr w0, [sp+68]
0040640cadd w0, w0, 1
00406410str w0, [sp+68]
00406414
00406414loc_406414:
00406414ldr w0, [sp+52]
00406418ldr w1, [sp+68]
0040641csubs wzr, w1, w0
00406420b.lt 0x4063ec
00406424ldr x0, [sp+24]
00406428ldr x0, [x0]
0040642cbl free@plt
00406430ldr x0, [sp+24]
00406434bl free@plt
00406438b 0x406440
0040643c
0040643cloc_40643c:
0040643chint
00406440
00406440loc_406440:
00406440ldp x29, x30, [sp], 80
00406444ret x30
00406320
00406448
00406448thpool_pause:
00406448stp x29, x30, [sp-48]!
0040644cadd x29, sp, 0
00406450str x0, [sp+24]
00406454str wzr, [sp+44]
00406458b 0x40648c
0040645c
0040645cloc_40645c:
0040645cldr x0, [sp+24]
00406460ldr x1, [x0]
00406464ldrsw x0, [sp+44]
00406468ubfm x0, x0, 61, 60
0040646cadd x0, x1, x0
00406470ldr x0, [x0]
00406474ldr x0, [x0+8]
00406478movz w1, 10
0040647cbl pthread_kill@plt
00406480ldr w0, [sp+44]
00406484add w0, w0, 1
00406488str w0, [sp+44]
0040648c
0040648cloc_40648c:
0040648cldr x0, [sp+24]
00406490ldr w0, [x0+8]
00406494ldr w1, [sp+44]
00406498subs wzr, w1, w0
0040649cb.lt 0x40645c
004064a0hint
004064a4hint
004064a8ldp x29, x30, [sp], 48
004064acret x30
00406448
00406448thpool_pause:
00406448stp x29, x30, [sp-48]!
0040644cadd x29, sp, 0
00406450str x0, [sp+24]
00406454str wzr, [sp+44]
00406458b 0x40648c
0040645c
0040645cloc_40645c:
0040645cldr x0, [sp+24]
00406460ldr x1, [x0]
00406464ldrsw x0, [sp+44]
00406468ubfm x0, x0, 61, 60
0040646cadd x0, x1, x0
00406470ldr x0, [x0]
00406474ldr x0, [x0+8]
00406478movz w1, 10
0040647cbl pthread_kill@plt
00406480ldr w0, [sp+44]
00406484add w0, w0, 1
00406488str w0, [sp+44]
0040648c
0040648cloc_40648c:
0040648cldr x0, [sp+24]
00406490ldr w0, [x0+8]
00406494ldr w1, [sp+44]
00406498subs wzr, w1, w0
0040649cb.lt 0x40645c
004064a0hint
004064a4hint
004064a8ldp x29, x30, [sp], 48
004064acret x30
00406448
004064b0
004064b0thpool_resume:
004064b0sub sp, sp, 16
004064b4str x0, [sp+8]
004064b8adrp x0, 0x14000
004064bcadd x0, x0, 692
004064c0str wzr, [x0]
004064c4hint
004064c8add sp, sp, 16
004064ccret x30
004064b0
004064b0thpool_resume:
004064b0sub sp, sp, 16
004064b4str x0, [sp+8]
004064b8adrp x0, 0x14000
004064bcadd x0, x0, 692
004064c0str wzr, [x0]
004064c4hint
004064c8add sp, sp, 16
004064ccret x30
004064b0
004064d0
004064d0thpool_num_threads_working:
004064d0sub sp, sp, 16
004064d4str x0, [sp+8]
004064d8ldr x0, [sp+8]
004064dcldr w0, [x0+12]
004064e0add sp, sp, 16
004064e4ret x30
004064d0
004064d0thpool_num_threads_working:
004064d0sub sp, sp, 16
004064d4str x0, [sp+8]
004064d8ldr x0, [sp+8]
004064dcldr w0, [x0+12]
004064e0add sp, sp, 16
004064e4ret x30
004064d0
004064e8
004064e8thread_init:
004064e8stp x29, x30, [sp-48]!
004064ecadd x29, sp, 0
004064f0str x0, [sp+40]
004064f4str x1, [sp+32]
004064f8str w2, [sp+28]
004064fcmovz x0, 24
00406500bl malloc@plt
00406504mov x1, x0
00406508ldr x0, [sp+32]
0040650cstr x1, [x0]
00406510ldr x0, [sp+32]
00406514ldr x0, [x0]
00406518subs xzr, x0, 0
0040651cb.ne 0x40654c
00406520adrp x0, 0x14000
00406524add x0, x0, 648
00406528ldr x0, [x0]
0040652cmov x3, x0
00406530movz x2, 52
00406534movz x1, 1
00406538adrp x0, 8192
0040653cadd x0, x0, 56
00406540bl fwrite@plt
00406544movn w0, 0
00406548b 0x4065ac
0040654c
0040654cloc_40654c:
0040654cldr x0, [sp+32]
00406550ldr x0, [x0]
00406554ldr x1, [sp+40]
00406558str x1, [x0+16]
0040655cldr x0, [sp+32]
00406560ldr x0, [x0]
00406564ldr w1, [sp+28]
00406568str w1, [x0]
0040656cldr x0, [sp+32]
00406570ldr x0, [x0]
00406574add x4, x0, 8
00406578ldr x0, [sp+32]
0040657cldr x0, [x0]
00406580mov x3, x0
00406584adrp x0, 0
00406588add x2, x0, 1536
0040658cmovz x1, 0
00406590mov x0, x4
00406594bl pthread_create@plt
00406598ldr x0, [sp+32]
0040659cldr x0, [x0]
004065a0ldr x0, [x0+8]
004065a4bl pthread_detach@plt
004065a8movz w0, 0
004065ac
004065acloc_4065ac:
004065acldp x29, x30, [sp], 48
004065b0ret x30
004064e8
004064e8thread_init:
004064e8stp x29, x30, [sp-48]!
004064ecadd x29, sp, 0
004064f0str x0, [sp+40]
004064f4str x1, [sp+32]
004064f8str w2, [sp+28]
004064fcmovz x0, 24
00406500bl malloc@plt
00406504mov x1, x0
00406508ldr x0, [sp+32]
0040650cstr x1, [x0]
00406510ldr x0, [sp+32]
00406514ldr x0, [x0]
00406518subs xzr, x0, 0
0040651cb.ne 0x40654c
00406520adrp x0, 0x14000
00406524add x0, x0, 648
00406528ldr x0, [x0]
0040652cmov x3, x0
00406530movz x2, 52
00406534movz x1, 1
00406538adrp x0, 8192
0040653cadd x0, x0, 56
00406540bl fwrite@plt
00406544movn w0, 0
00406548b 0x4065ac
0040654c
0040654cloc_40654c:
0040654cldr x0, [sp+32]
00406550ldr x0, [x0]
00406554ldr x1, [sp+40]
00406558str x1, [x0+16]
0040655cldr x0, [sp+32]
00406560ldr x0, [x0]
00406564ldr w1, [sp+28]
00406568str w1, [x0]
0040656cldr x0, [sp+32]
00406570ldr x0, [x0]
00406574add x4, x0, 8
00406578ldr x0, [sp+32]
0040657cldr x0, [x0]
00406580mov x3, x0
00406584adrp x0, 0
00406588add x2, x0, 1536
0040658cmovz x1, 0
00406590mov x0, x4
00406594bl pthread_create@plt
00406598ldr x0, [sp+32]
0040659cldr x0, [x0]
004065a0ldr x0, [x0+8]
004065a4bl pthread_detach@plt
004065a8movz w0, 0
004065ac
004065acloc_4065ac:
004065acldp x29, x30, [sp], 48
004065b0ret x30
004064e8
004065b4
004065b4thread_hold:
004065b4stp x29, x30, [sp-32]!
004065b8add x29, sp, 0
004065bcstr w0, [sp+28]
004065c0adrp x0, 0x14000
004065c4add x0, x0, 692
004065c8movz w1, 1
004065ccstr w1, [x0]
004065d0b 0x4065dc
004065d4
004065d4loc_4065d4:
004065d4movz w0, 1
004065d8bl sleep@plt
004065dc
004065dcloc_4065dc:
004065dcadrp x0, 0x14000
004065e0add x0, x0, 692
004065e4ldr w0, [x0]
004065e8subs wzr, w0, 0
004065ecb.ne 0x4065d4
004065f0hint
004065f4hint
004065f8ldp x29, x30, [sp], 32
004065fcret x30
004065b4
004065b4thread_hold:
004065b4stp x29, x30, [sp-32]!
004065b8add x29, sp, 0
004065bcstr w0, [sp+28]
004065c0adrp x0, 0x14000
004065c4add x0, x0, 692
004065c8movz w1, 1
004065ccstr w1, [x0]
004065d0b 0x4065dc
004065d4
004065d4loc_4065d4:
004065d4movz w0, 1
004065d8bl sleep@plt
004065dc
004065dcloc_4065dc:
004065dcadrp x0, 0x14000
004065e0add x0, x0, 692
004065e4ldr w0, [x0]
004065e8subs wzr, w0, 0
004065ecb.ne 0x4065d4
004065f0hint
004065f4hint
004065f8ldp x29, x30, [sp], 32
004065fcret x30
004065b4
00406600
00406600thread_do:
00406600stp x29, x30, [sp-256]!
00406604add x29, sp, 0
00406608str x0, [sp+24]
0040660cstp xzr, xzr, [sp+192]
00406610stp xzr, xzr, [sp+208]
00406614ldr x0, [sp+24]
00406618ldr w0, [x0]
0040661cadd x4, sp, 192
00406620mov w3, w0
00406624adrp x0, 8192
00406628add x2, x0, 112
0040662cmovz x1, 32
00406630mov x0, x4
00406634bl snprintf@plt
00406638add x0, sp, 192
0040663cmov x1, x0
00406640movz w0, 15
00406644bl prctl@plt
00406648ldr x0, [sp+24]
0040664cldr x0, [x0+16]
00406650str x0, [sp+248]
00406654add x0, sp, 40
00406658add x0, x0, 8
0040665cbl sigemptyset@plt
00406660str wzr, [sp+176]
00406664adrp x0, 0
00406668add x0, x0, 1460
0040666cstr x0, [sp+40]
00406670add x0, sp, 40
00406674movz x2, 0
00406678mov x1, x0
0040667cmovz w0, 10
00406680bl sigaction@plt
00406684adds wzr, w0, 1
00406688b.ne 0x4066b0
0040668cadrp x0, 0x14000
00406690add x0, x0, 648
00406694ldr x0, [x0]
00406698mov x3, x0
0040669cmovz x2, 34
004066a0movz x1, 1
004066a4adrp x0, 8192
004066a8add x0, x0, 128
004066acbl fwrite@plt
004066b0
004066b0loc_4066b0:
004066b0ldr x0, [sp+248]
004066b4add x0, x0, 16
004066b8bl pthread_mutex_lock@plt
004066bcldr x0, [sp+248]
004066c0ldr w0, [x0+8]
004066c4add w1, w0, 1
004066c8ldr x0, [sp+248]
004066ccstr w1, [x0+8]
004066d0ldr x0, [sp+248]
004066d4add x0, x0, 16
004066d8bl pthread_mutex_unlock@plt
004066dcb 0x4067bc
004066e0
004066e0loc_4066e0:
004066e0ldr x0, [sp+248]
004066e4ldr x0, [x0+176]
004066e8bl bsem_wait
004066ecadrp x0, 0x14000
004066f0add x0, x0, 688
004066f4ldr w0, [x0]
004066f8subs wzr, w0, 0
004066fcb.eq 0x4067bc
00406700ldr x0, [sp+248]
00406704add x0, x0, 16
00406708bl pthread_mutex_lock@plt
0040670cldr x0, [sp+248]
00406710ldr w0, [x0+12]
00406714add w1, w0, 1
00406718ldr x0, [sp+248]
0040671cstr w1, [x0+12]
00406720ldr x0, [sp+248]
00406724add x0, x0, 16
00406728bl pthread_mutex_unlock@plt
0040672cldr x0, [sp+248]
00406730add x0, x0, 112
00406734bl jobqueue_pull
00406738str x0, [sp+240]
0040673cldr x0, [sp+240]
00406740subs xzr, x0, 0
00406744b.eq 0x406774
00406748ldr x0, [sp+240]
0040674cldr x0, [x0+8]
00406750str x0, [sp+232]
00406754ldr x0, [sp+240]
00406758ldr x0, [x0+16]
0040675cstr x0, [sp+224]
00406760ldr x1, [sp+232]
00406764ldr x0, [sp+224]
00406768blr x1
0040676cldr x0, [sp+240]
00406770bl free@plt
00406774
00406774loc_406774:
00406774ldr x0, [sp+248]
00406778add x0, x0, 16
0040677cbl pthread_mutex_lock@plt
00406780ldr x0, [sp+248]
00406784ldr w0, [x0+12]
00406788sub w1, w0, 1
0040678cldr x0, [sp+248]
00406790str w1, [x0+12]
00406794ldr x0, [sp+248]
00406798ldr w0, [x0+12]
0040679csubs wzr, w0, 0
004067a0b.ne 0x4067b0
004067a4ldr x0, [sp+248]
004067a8add x0, x0, 64
004067acbl pthread_cond_signal@plt
004067b0
004067b0loc_4067b0:
004067b0ldr x0, [sp+248]
004067b4add x0, x0, 16
004067b8bl pthread_mutex_unlock@plt
004067bc
004067bcloc_4067bc:
004067bcadrp x0, 0x14000
004067c0add x0, x0, 688
004067c4ldr w0, [x0]
004067c8subs wzr, w0, 0
004067ccb.ne 0x4066e0
004067d0ldr x0, [sp+248]
004067d4add x0, x0, 16
004067d8bl pthread_mutex_lock@plt
004067dcldr x0, [sp+248]
004067e0ldr w0, [x0+8]
004067e4sub w1, w0, 1
004067e8ldr x0, [sp+248]
004067ecstr w1, [x0+8]
004067f0ldr x0, [sp+248]
004067f4add x0, x0, 16
004067f8bl pthread_mutex_unlock@plt
004067fcmovz x0, 0
00406800ldp x29, x30, [sp], 256
00406804ret x30
00406600
00406600thread_do:
00406600stp x29, x30, [sp-256]!
00406604add x29, sp, 0
00406608str x0, [sp+24]
0040660cstp xzr, xzr, [sp+192]
00406610stp xzr, xzr, [sp+208]
00406614ldr x0, [sp+24]
00406618ldr w0, [x0]
0040661cadd x4, sp, 192
00406620mov w3, w0
00406624adrp x0, 8192
00406628add x2, x0, 112
0040662cmovz x1, 32
00406630mov x0, x4
00406634bl snprintf@plt
00406638add x0, sp, 192
0040663cmov x1, x0
00406640movz w0, 15
00406644bl prctl@plt
00406648ldr x0, [sp+24]
0040664cldr x0, [x0+16]
00406650str x0, [sp+248]
00406654add x0, sp, 40
00406658add x0, x0, 8
0040665cbl sigemptyset@plt
00406660str wzr, [sp+176]
00406664adrp x0, 0
00406668add x0, x0, 1460
0040666cstr x0, [sp+40]
00406670add x0, sp, 40
00406674movz x2, 0
00406678mov x1, x0
0040667cmovz w0, 10
00406680bl sigaction@plt
00406684adds wzr, w0, 1
00406688b.ne 0x4066b0
0040668cadrp x0, 0x14000
00406690add x0, x0, 648
00406694ldr x0, [x0]
00406698mov x3, x0
0040669cmovz x2, 34
004066a0movz x1, 1
004066a4adrp x0, 8192
004066a8add x0, x0, 128
004066acbl fwrite@plt
004066b0
004066b0loc_4066b0:
004066b0ldr x0, [sp+248]
004066b4add x0, x0, 16
004066b8bl pthread_mutex_lock@plt
004066bcldr x0, [sp+248]
004066c0ldr w0, [x0+8]
004066c4add w1, w0, 1
004066c8ldr x0, [sp+248]
004066ccstr w1, [x0+8]
004066d0ldr x0, [sp+248]
004066d4add x0, x0, 16
004066d8bl pthread_mutex_unlock@plt
004066dcb 0x4067bc
004066e0
004066e0loc_4066e0:
004066e0ldr x0, [sp+248]
004066e4ldr x0, [x0+176]
004066e8bl bsem_wait
004066ecadrp x0, 0x14000
004066f0add x0, x0, 688
004066f4ldr w0, [x0]
004066f8subs wzr, w0, 0
004066fcb.eq 0x4067bc
00406700ldr x0, [sp+248]
00406704add x0, x0, 16
00406708bl pthread_mutex_lock@plt
0040670cldr x0, [sp+248]
00406710ldr w0, [x0+12]
00406714add w1, w0, 1
00406718ldr x0, [sp+248]
0040671cstr w1, [x0+12]
00406720ldr x0, [sp+248]
00406724add x0, x0, 16
00406728bl pthread_mutex_unlock@plt
0040672cldr x0, [sp+248]
00406730add x0, x0, 112
00406734bl jobqueue_pull
00406738str x0, [sp+240]
0040673cldr x0, [sp+240]
00406740subs xzr, x0, 0
00406744b.eq 0x406774
00406748ldr x0, [sp+240]
0040674cldr x0, [x0+8]
00406750str x0, [sp+232]
00406754ldr x0, [sp+240]
00406758ldr x0, [x0+16]
0040675cstr x0, [sp+224]
00406760ldr x1, [sp+232]
00406764ldr x0, [sp+224]
00406768blr x1
0040676cldr x0, [sp+240]
00406770bl free@plt
00406774
00406774loc_406774:
00406774ldr x0, [sp+248]
00406778add x0, x0, 16
0040677cbl pthread_mutex_lock@plt
00406780ldr x0, [sp+248]
00406784ldr w0, [x0+12]
00406788sub w1, w0, 1
0040678cldr x0, [sp+248]
00406790str w1, [x0+12]
00406794ldr x0, [sp+248]
00406798ldr w0, [x0+12]
0040679csubs wzr, w0, 0
004067a0b.ne 0x4067b0
004067a4ldr x0, [sp+248]
004067a8add x0, x0, 64
004067acbl pthread_cond_signal@plt
004067b0
004067b0loc_4067b0:
004067b0ldr x0, [sp+248]
004067b4add x0, x0, 16
004067b8bl pthread_mutex_unlock@plt
004067bc
004067bcloc_4067bc:
004067bcadrp x0, 0x14000
004067c0add x0, x0, 688
004067c4ldr w0, [x0]
004067c8subs wzr, w0, 0
004067ccb.ne 0x4066e0
004067d0ldr x0, [sp+248]
004067d4add x0, x0, 16
004067d8bl pthread_mutex_lock@plt
004067dcldr x0, [sp+248]
004067e0ldr w0, [x0+8]
004067e4sub w1, w0, 1
004067e8ldr x0, [sp+248]
004067ecstr w1, [x0+8]
004067f0ldr x0, [sp+248]
004067f4add x0, x0, 16
004067f8bl pthread_mutex_unlock@plt
004067fcmovz x0, 0
00406800ldp x29, x30, [sp], 256
00406804ret x30
00406600
00406808
00406808thread_destroy:
00406808stp x29, x30, [sp-32]!
0040680cadd x29, sp, 0
00406810str x0, [sp+24]
00406814ldr x0, [sp+24]
00406818bl free@plt
0040681chint
00406820ldp x29, x30, [sp], 32
00406824ret x30
00406808
00406808thread_destroy:
00406808stp x29, x30, [sp-32]!
0040680cadd x29, sp, 0
00406810str x0, [sp+24]
00406814ldr x0, [sp+24]
00406818bl free@plt
0040681chint
00406820ldp x29, x30, [sp], 32
00406824ret x30
00406808
00406828
00406828jobqueue_init:
00406828stp x29, x30, [sp-32]!
0040682cadd x29, sp, 0
00406830str x0, [sp+24]
00406834ldr x0, [sp+24]
00406838str wzr, [x0+72]
0040683cldr x0, [sp+24]
00406840str xzr, [x0+48]
00406844ldr x0, [sp+24]
00406848str xzr, [x0+56]
0040684cmovz x0, 104
00406850bl malloc@plt
00406854mov x1, x0
00406858ldr x0, [sp+24]
0040685cstr x1, [x0+64]
00406860ldr x0, [sp+24]
00406864ldr x0, [x0+64]
00406868subs xzr, x0, 0
0040686cb.ne 0x406878
00406870movn w0, 0
00406874b 0x406898
00406878
00406878loc_406878:
00406878ldr x0, [sp+24]
0040687cmovz x1, 0
00406880bl pthread_mutex_init@plt
00406884ldr x0, [sp+24]
00406888ldr x0, [x0+64]
0040688cmovz w1, 0
00406890bl bsem_init
00406894movz w0, 0
00406898
00406898loc_406898:
00406898ldp x29, x30, [sp], 32
0040689cret x30
00406828
00406828jobqueue_init:
00406828stp x29, x30, [sp-32]!
0040682cadd x29, sp, 0
00406830str x0, [sp+24]
00406834ldr x0, [sp+24]
00406838str wzr, [x0+72]
0040683cldr x0, [sp+24]
00406840str xzr, [x0+48]
00406844ldr x0, [sp+24]
00406848str xzr, [x0+56]
0040684cmovz x0, 104
00406850bl malloc@plt
00406854mov x1, x0
00406858ldr x0, [sp+24]
0040685cstr x1, [x0+64]
00406860ldr x0, [sp+24]
00406864ldr x0, [x0+64]
00406868subs xzr, x0, 0
0040686cb.ne 0x406878
00406870movn w0, 0
00406874b 0x406898
00406878
00406878loc_406878:
00406878ldr x0, [sp+24]
0040687cmovz x1, 0
00406880bl pthread_mutex_init@plt
00406884ldr x0, [sp+24]
00406888ldr x0, [x0+64]
0040688cmovz w1, 0
00406890bl bsem_init
00406894movz w0, 0
00406898
00406898loc_406898:
00406898ldp x29, x30, [sp], 32
0040689cret x30
00406828
004068a0
004068a0jobqueue_clear:
004068a0stp x29, x30, [sp-32]!
004068a4add x29, sp, 0
004068a8str x0, [sp+24]
004068acb 0x4068bc
004068b0
004068b0loc_4068b0:
004068b0ldr x0, [sp+24]
004068b4bl jobqueue_pull
004068b8bl free@plt
004068bc
004068bcloc_4068bc:
004068bcldr x0, [sp+24]
004068c0ldr w0, [x0+72]
004068c4subs wzr, w0, 0
004068c8b.ne 0x4068b0
004068ccldr x0, [sp+24]
004068d0str xzr, [x0+48]
004068d4ldr x0, [sp+24]
004068d8str xzr, [x0+56]
004068dcldr x0, [sp+24]
004068e0ldr x0, [x0+64]
004068e4bl bsem_reset
004068e8ldr x0, [sp+24]
004068ecstr wzr, [x0+72]
004068f0hint
004068f4ldp x29, x30, [sp], 32
004068f8ret x30
004068a0
004068a0jobqueue_clear:
004068a0stp x29, x30, [sp-32]!
004068a4add x29, sp, 0
004068a8str x0, [sp+24]
004068acb 0x4068bc
004068b0
004068b0loc_4068b0:
004068b0ldr x0, [sp+24]
004068b4bl jobqueue_pull
004068b8bl free@plt
004068bc
004068bcloc_4068bc:
004068bcldr x0, [sp+24]
004068c0ldr w0, [x0+72]
004068c4subs wzr, w0, 0
004068c8b.ne 0x4068b0
004068ccldr x0, [sp+24]
004068d0str xzr, [x0+48]
004068d4ldr x0, [sp+24]
004068d8str xzr, [x0+56]
004068dcldr x0, [sp+24]
004068e0ldr x0, [x0+64]
004068e4bl bsem_reset
004068e8ldr x0, [sp+24]
004068ecstr wzr, [x0+72]
004068f0hint
004068f4ldp x29, x30, [sp], 32
004068f8ret x30
004068a0
004068fc
004068fcjobqueue_push:
004068fcstp x29, x30, [sp-32]!
00406900add x29, sp, 0
00406904str x0, [sp+24]
00406908str x1, [sp+16]
0040690cldr x0, [sp+24]
00406910bl pthread_mutex_lock@plt
00406914ldr x0, [sp+16]
00406918str xzr, [x0]
0040691cldr x0, [sp+24]
00406920ldr w0, [x0+72]
00406924subs wzr, w0, 0
00406928b.ne 0x406948
0040692cldr x0, [sp+24]
00406930ldr x1, [sp+16]
00406934str x1, [x0+48]
00406938ldr x0, [sp+24]
0040693cldr x1, [sp+16]
00406940str x1, [x0+56]
00406944b 0x406964
00406948
00406948loc_406948:
00406948ldr x0, [sp+24]
0040694cldr x0, [x0+56]
00406950ldr x1, [sp+16]
00406954str x1, [x0]
00406958ldr x0, [sp+24]
0040695cldr x1, [sp+16]
00406960str x1, [x0+56]
00406964
00406964loc_406964:
00406964ldr x0, [sp+24]
00406968ldr w0, [x0+72]
0040696cadd w1, w0, 1
00406970ldr x0, [sp+24]
00406974str w1, [x0+72]
00406978ldr x0, [sp+24]
0040697cldr x0, [x0+64]
00406980bl bsem_post
00406984ldr x0, [sp+24]
00406988bl pthread_mutex_unlock@plt
0040698chint
00406990ldp x29, x30, [sp], 32
00406994ret x30
004068fc
004068fcjobqueue_push:
004068fcstp x29, x30, [sp-32]!
00406900add x29, sp, 0
00406904str x0, [sp+24]
00406908str x1, [sp+16]
0040690cldr x0, [sp+24]
00406910bl pthread_mutex_lock@plt
00406914ldr x0, [sp+16]
00406918str xzr, [x0]
0040691cldr x0, [sp+24]
00406920ldr w0, [x0+72]
00406924subs wzr, w0, 0
00406928b.ne 0x406948
0040692cldr x0, [sp+24]
00406930ldr x1, [sp+16]
00406934str x1, [x0+48]
00406938ldr x0, [sp+24]
0040693cldr x1, [sp+16]
00406940str x1, [x0+56]
00406944b 0x406964
00406948
00406948loc_406948:
00406948ldr x0, [sp+24]
0040694cldr x0, [x0+56]
00406950ldr x1, [sp+16]
00406954str x1, [x0]
00406958ldr x0, [sp+24]
0040695cldr x1, [sp+16]
00406960str x1, [x0+56]
00406964
00406964loc_406964:
00406964ldr x0, [sp+24]
00406968ldr w0, [x0+72]
0040696cadd w1, w0, 1
00406970ldr x0, [sp+24]
00406974str w1, [x0+72]
00406978ldr x0, [sp+24]
0040697cldr x0, [x0+64]
00406980bl bsem_post
00406984ldr x0, [sp+24]
00406988bl pthread_mutex_unlock@plt
0040698chint
00406990ldp x29, x30, [sp], 32
00406994ret x30
004068fc
00406998
00406998jobqueue_pull:
00406998stp x29, x30, [sp-48]!
0040699cadd x29, sp, 0
004069a0str x0, [sp+24]
004069a4ldr x0, [sp+24]
004069a8bl pthread_mutex_lock@plt
004069acldr x0, [sp+24]
004069b0ldr x0, [x0+48]
004069b4str x0, [sp+40]
004069b8ldr x0, [sp+24]
004069bcldr w0, [x0+72]
004069c0subs wzr, w0, 0
004069c4b.eq 0x406a20
004069c8subs wzr, w0, 1
004069ccb.ne 0x4069ec
004069d0ldr x0, [sp+24]
004069d4str xzr, [x0+48]
004069d8ldr x0, [sp+24]
004069dcstr xzr, [x0+56]
004069e0ldr x0, [sp+24]
004069e4str wzr, [x0+72]
004069e8b 0x406a24
004069ec
004069ecloc_4069ec:
004069ecldr x0, [sp+40]
004069f0ldr x1, [x0]
004069f4ldr x0, [sp+24]
004069f8str x1, [x0+48]
004069fcldr x0, [sp+24]
00406a00ldr w0, [x0+72]
00406a04sub w1, w0, 1
00406a08ldr x0, [sp+24]
00406a0cstr w1, [x0+72]
00406a10ldr x0, [sp+24]
00406a14ldr x0, [x0+64]
00406a18bl bsem_post
00406a1cb 0x406a24
00406a20
00406a20loc_406a20:
00406a20hint
00406a24
00406a24loc_406a24:
00406a24ldr x0, [sp+24]
00406a28bl pthread_mutex_unlock@plt
00406a2cldr x0, [sp+40]
00406a30ldp x29, x30, [sp], 48
00406a34ret x30
00406998
00406998jobqueue_pull:
00406998stp x29, x30, [sp-48]!
0040699cadd x29, sp, 0
004069a0str x0, [sp+24]
004069a4ldr x0, [sp+24]
004069a8bl pthread_mutex_lock@plt
004069acldr x0, [sp+24]
004069b0ldr x0, [x0+48]
004069b4str x0, [sp+40]
004069b8ldr x0, [sp+24]
004069bcldr w0, [x0+72]
004069c0subs wzr, w0, 0
004069c4b.eq 0x406a20
004069c8subs wzr, w0, 1
004069ccb.ne 0x4069ec
004069d0ldr x0, [sp+24]
004069d4str xzr, [x0+48]
004069d8ldr x0, [sp+24]
004069dcstr xzr, [x0+56]
004069e0ldr x0, [sp+24]
004069e4str wzr, [x0+72]
004069e8b 0x406a24
004069ec
004069ecloc_4069ec:
004069ecldr x0, [sp+40]
004069f0ldr x1, [x0]
004069f4ldr x0, [sp+24]
004069f8str x1, [x0+48]
004069fcldr x0, [sp+24]
00406a00ldr w0, [x0+72]
00406a04sub w1, w0, 1
00406a08ldr x0, [sp+24]
00406a0cstr w1, [x0+72]
00406a10ldr x0, [sp+24]
00406a14ldr x0, [x0+64]
00406a18bl bsem_post
00406a1cb 0x406a24
00406a20
00406a20loc_406a20:
00406a20hint
00406a24
00406a24loc_406a24:
00406a24ldr x0, [sp+24]
00406a28bl pthread_mutex_unlock@plt
00406a2cldr x0, [sp+40]
00406a30ldp x29, x30, [sp], 48
00406a34ret x30
00406998
00406a38
00406a38jobqueue_destroy:
00406a38stp x29, x30, [sp-32]!
00406a3cadd x29, sp, 0
00406a40str x0, [sp+24]
00406a44ldr x0, [sp+24]
00406a48bl jobqueue_clear
00406a4cldr x0, [sp+24]
00406a50ldr x0, [x0+64]
00406a54bl free@plt
00406a58hint
00406a5cldp x29, x30, [sp], 32
00406a60ret x30
00406a38
00406a38jobqueue_destroy:
00406a38stp x29, x30, [sp-32]!
00406a3cadd x29, sp, 0
00406a40str x0, [sp+24]
00406a44ldr x0, [sp+24]
00406a48bl jobqueue_clear
00406a4cldr x0, [sp+24]
00406a50ldr x0, [x0+64]
00406a54bl free@plt
00406a58hint
00406a5cldp x29, x30, [sp], 32
00406a60ret x30
00406a38
00406a64
00406a64bsem_init:
00406a64stp x29, x30, [sp-32]!
00406a68add x29, sp, 0
00406a6cstr x0, [sp+24]
00406a70str w1, [sp+20]
00406a74ldr w0, [sp+20]
00406a78subs wzr, w0, 0
00406a7cb.lt 0x406a8c
00406a80ldr w0, [sp+20]
00406a84subs wzr, w0, 1
00406a88b.le 0x406ab8
00406a8c
00406a8cloc_406a8c:
00406a8cadrp x0, 0x14000
00406a90add x0, x0, 648
00406a94ldr x0, [x0]
00406a98mov x3, x0
00406a9cmovz x2, 57
00406aa0movz x1, 1
00406aa4adrp x0, 8192
00406aa8add x0, x0, 168
00406aacbl fwrite@plt
00406ab0movz w0, 1
00406ab4bl exit@plt
00406ab8
00406ab8loc_406ab8:
00406ab8ldr x0, [sp+24]
00406abcmovz x1, 0
00406ac0bl pthread_mutex_init@plt
00406ac4ldr x0, [sp+24]
00406ac8add x0, x0, 48
00406accmovz x1, 0
00406ad0bl pthread_cond_init@plt
00406ad4ldr x0, [sp+24]
00406ad8ldr w1, [sp+20]
00406adcstr w1, [x0+96]
00406ae0hint
00406ae4ldp x29, x30, [sp], 32
00406ae8ret x30
00406a64
00406a64bsem_init:
00406a64stp x29, x30, [sp-32]!
00406a68add x29, sp, 0
00406a6cstr x0, [sp+24]
00406a70str w1, [sp+20]
00406a74ldr w0, [sp+20]
00406a78subs wzr, w0, 0
00406a7cb.lt 0x406a8c
00406a80ldr w0, [sp+20]
00406a84subs wzr, w0, 1
00406a88b.le 0x406ab8
00406a8c
00406a8cloc_406a8c:
00406a8cadrp x0, 0x14000
00406a90add x0, x0, 648
00406a94ldr x0, [x0]
00406a98mov x3, x0
00406a9cmovz x2, 57
00406aa0movz x1, 1
00406aa4adrp x0, 8192
00406aa8add x0, x0, 168
00406aacbl fwrite@plt
00406ab0movz w0, 1
00406ab4bl exit@plt
00406ab8
00406ab8loc_406ab8:
00406ab8ldr x0, [sp+24]
00406abcmovz x1, 0
00406ac0bl pthread_mutex_init@plt
00406ac4ldr x0, [sp+24]
00406ac8add x0, x0, 48
00406accmovz x1, 0
00406ad0bl pthread_cond_init@plt
00406ad4ldr x0, [sp+24]
00406ad8ldr w1, [sp+20]
00406adcstr w1, [x0+96]
00406ae0hint
00406ae4ldp x29, x30, [sp], 32
00406ae8ret x30
00406a64
00406aec
00406aecbsem_reset:
00406aecstp x29, x30, [sp-32]!
00406af0add x29, sp, 0
00406af4str x0, [sp+24]
00406af8movz w1, 0
00406afcldr x0, [sp+24]
00406b00bl bsem_init
00406b04hint
00406b08ldp x29, x30, [sp], 32
00406b0cret x30
00406aec
00406aecbsem_reset:
00406aecstp x29, x30, [sp-32]!
00406af0add x29, sp, 0
00406af4str x0, [sp+24]
00406af8movz w1, 0
00406afcldr x0, [sp+24]
00406b00bl bsem_init
00406b04hint
00406b08ldp x29, x30, [sp], 32
00406b0cret x30
00406aec
00406b10
00406b10bsem_post:
00406b10stp x29, x30, [sp-32]!
00406b14add x29, sp, 0
00406b18str x0, [sp+24]
00406b1cldr x0, [sp+24]
00406b20bl pthread_mutex_lock@plt
00406b24ldr x0, [sp+24]
00406b28movz w1, 1
00406b2cstr w1, [x0+96]
00406b30ldr x0, [sp+24]
00406b34add x0, x0, 48
00406b38bl pthread_cond_signal@plt
00406b3cldr x0, [sp+24]
00406b40bl pthread_mutex_unlock@plt
00406b44hint
00406b48ldp x29, x30, [sp], 32
00406b4cret x30
00406b10
00406b10bsem_post:
00406b10stp x29, x30, [sp-32]!
00406b14add x29, sp, 0
00406b18str x0, [sp+24]
00406b1cldr x0, [sp+24]
00406b20bl pthread_mutex_lock@plt
00406b24ldr x0, [sp+24]
00406b28movz w1, 1
00406b2cstr w1, [x0+96]
00406b30ldr x0, [sp+24]
00406b34add x0, x0, 48
00406b38bl pthread_cond_signal@plt
00406b3cldr x0, [sp+24]
00406b40bl pthread_mutex_unlock@plt
00406b44hint
00406b48ldp x29, x30, [sp], 32
00406b4cret x30
00406b10
00406b50
00406b50bsem_post_all:
00406b50stp x29, x30, [sp-32]!
00406b54add x29, sp, 0
00406b58str x0, [sp+24]
00406b5cldr x0, [sp+24]
00406b60bl pthread_mutex_lock@plt
00406b64ldr x0, [sp+24]
00406b68movz w1, 1
00406b6cstr w1, [x0+96]
00406b70ldr x0, [sp+24]
00406b74add x0, x0, 48
00406b78bl pthread_cond_broadcast@plt
00406b7cldr x0, [sp+24]
00406b80bl pthread_mutex_unlock@plt
00406b84hint
00406b88ldp x29, x30, [sp], 32
00406b8cret x30
00406b50
00406b50bsem_post_all:
00406b50stp x29, x30, [sp-32]!
00406b54add x29, sp, 0
00406b58str x0, [sp+24]
00406b5cldr x0, [sp+24]
00406b60bl pthread_mutex_lock@plt
00406b64ldr x0, [sp+24]
00406b68movz w1, 1
00406b6cstr w1, [x0+96]
00406b70ldr x0, [sp+24]
00406b74add x0, x0, 48
00406b78bl pthread_cond_broadcast@plt
00406b7cldr x0, [sp+24]
00406b80bl pthread_mutex_unlock@plt
00406b84hint
00406b88ldp x29, x30, [sp], 32
00406b8cret x30
00406b50
00406b90
00406b90bsem_wait:
00406b90stp x29, x30, [sp-32]!
00406b94add x29, sp, 0
00406b98str x0, [sp+24]
00406b9cldr x0, [sp+24]
00406ba0bl pthread_mutex_lock@plt
00406ba4b 0x406bb8
00406ba8
00406ba8loc_406ba8:
00406ba8ldr x0, [sp+24]
00406bacadd x0, x0, 48
00406bb0ldr x1, [sp+24]
00406bb4bl pthread_cond_wait@plt
00406bb8
00406bb8loc_406bb8:
00406bb8ldr x0, [sp+24]
00406bbcldr w0, [x0+96]
00406bc0subs wzr, w0, 1
00406bc4b.ne 0x406ba8
00406bc8ldr x0, [sp+24]
00406bccstr wzr, [x0+96]
00406bd0ldr x0, [sp+24]
00406bd4bl pthread_mutex_unlock@plt
00406bd8hint
00406bdcldp x29, x30, [sp], 32
00406be0ret x30
00406b90
00406b90bsem_wait:
00406b90stp x29, x30, [sp-32]!
00406b94add x29, sp, 0
00406b98str x0, [sp+24]
00406b9cldr x0, [sp+24]
00406ba0bl pthread_mutex_lock@plt
00406ba4b 0x406bb8
00406ba8
00406ba8loc_406ba8:
00406ba8ldr x0, [sp+24]
00406bacadd x0, x0, 48
00406bb0ldr x1, [sp+24]
00406bb4bl pthread_cond_wait@plt
00406bb8
00406bb8loc_406bb8:
00406bb8ldr x0, [sp+24]
00406bbcldr w0, [x0+96]
00406bc0subs wzr, w0, 1
00406bc4b.ne 0x406ba8
00406bc8ldr x0, [sp+24]
00406bccstr wzr, [x0+96]
00406bd0ldr x0, [sp+24]
00406bd4bl pthread_mutex_unlock@plt
00406bd8hint
00406bdcldp x29, x30, [sp], 32
00406be0ret x30
00406b90
00406be4
00406be4copy_path:
00406be4stp x29, x30, [sp-48]!
00406be8add x29, sp, 0
00406becstr x0, [sp+24]
00406bf0ldr x0, [sp+24]
00406bf4bl strlen@plt
00406bf8add x0, x0, 1
00406bfcbl malloc@plt
00406c00str x0, [sp+40]
00406c04ldr x0, [sp+40]
00406c08subs xzr, x0, 0
00406c0cb.ne 0x406c18
00406c10movz x0, 0
00406c14b 0x406c28
00406c18
00406c18loc_406c18:
00406c18ldr x1, [sp+24]
00406c1cldr x0, [sp+40]
00406c20bl strcpy@plt
00406c24ldr x0, [sp+40]
00406c28
00406c28loc_406c28:
00406c28ldp x29, x30, [sp], 48
00406c2cret x30
00406be4
00406be4copy_path:
00406be4stp x29, x30, [sp-48]!
00406be8add x29, sp, 0
00406becstr x0, [sp+24]
00406bf0ldr x0, [sp+24]
00406bf4bl strlen@plt
00406bf8add x0, x0, 1
00406bfcbl malloc@plt
00406c00str x0, [sp+40]
00406c04ldr x0, [sp+40]
00406c08subs xzr, x0, 0
00406c0cb.ne 0x406c18
00406c10movz x0, 0
00406c14b 0x406c28
00406c18
00406c18loc_406c18:
00406c18ldr x1, [sp+24]
00406c1cldr x0, [sp+40]
00406c20bl strcpy@plt
00406c24ldr x0, [sp+40]
00406c28
00406c28loc_406c28:
00406c28ldp x29, x30, [sp], 48
00406c2cret x30
00406be4
00406c30
00406c30file_write_message:
00406c30stp x29, x30, [sp-64]!
00406c34add x29, sp, 0
00406c38str x0, [sp+40]
00406c3cstr x1, [sp+32]
00406c40str x2, [sp+24]
00406c44str x3, [sp+16]
00406c48movz x0, 4097
00406c4cbl malloc@plt
00406c50str x0, [sp+56]
00406c54ldr x0, [sp+56]
00406c58subs xzr, x0, 0
00406c5cb.eq 0x406cec
00406c60ldr x1, [sp+40]
00406c64ldr x0, [sp+56]
00406c68bl strcpy@plt
00406c6cldr x0, [sp+56]
00406c70bl strlen@plt
00406c74mov x1, x0
00406c78ldr x0, [sp+56]
00406c7cadd x0, x0, x1
00406c80movz w1, 47
00406c84strh w1, [x0]
00406c88ldr x1, [sp+32]
00406c8cldr x0, [sp+56]
00406c90bl strcat@plt
00406c94ldr x1, [sp+16]
00406c98ldr x0, [sp+56]
00406c9cbl strcat@plt
00406ca0adrp x0, 8192
00406ca4add x1, x0, 552
00406ca8ldr x0, [sp+56]
00406cacbl fopen@plt
00406cb0str x0, [sp+48]
00406cb4ldr x0, [sp+48]
00406cb8subs xzr, x0, 0
00406cbcb.eq 0x406ce4
00406cc0ldr x0, [sp+24]
00406cc4bl strlen@plt
00406cc8ldr x3, [sp+48]
00406cccmov x2, x0
00406cd0movz x1, 1
00406cd4ldr x0, [sp+24]
00406cd8bl fwrite@plt
00406cdcldr x0, [sp+48]
00406ce0bl fclose@plt
00406ce4
00406ce4loc_406ce4:
00406ce4ldr x0, [sp+56]
00406ce8bl free@plt
00406cec
00406cecloc_406cec:
00406cechint
00406cf0ldp x29, x30, [sp], 64
00406cf4ret x30
00406c30
00406c30file_write_message:
00406c30stp x29, x30, [sp-64]!
00406c34add x29, sp, 0
00406c38str x0, [sp+40]
00406c3cstr x1, [sp+32]
00406c40str x2, [sp+24]
00406c44str x3, [sp+16]
00406c48movz x0, 4097
00406c4cbl malloc@plt
00406c50str x0, [sp+56]
00406c54ldr x0, [sp+56]
00406c58subs xzr, x0, 0
00406c5cb.eq 0x406cec
00406c60ldr x1, [sp+40]
00406c64ldr x0, [sp+56]
00406c68bl strcpy@plt
00406c6cldr x0, [sp+56]
00406c70bl strlen@plt
00406c74mov x1, x0
00406c78ldr x0, [sp+56]
00406c7cadd x0, x0, x1
00406c80movz w1, 47
00406c84strh w1, [x0]
00406c88ldr x1, [sp+32]
00406c8cldr x0, [sp+56]
00406c90bl strcat@plt
00406c94ldr x1, [sp+16]
00406c98ldr x0, [sp+56]
00406c9cbl strcat@plt
00406ca0adrp x0, 8192
00406ca4add x1, x0, 552
00406ca8ldr x0, [sp+56]
00406cacbl fopen@plt
00406cb0str x0, [sp+48]
00406cb4ldr x0, [sp+48]
00406cb8subs xzr, x0, 0
00406cbcb.eq 0x406ce4
00406cc0ldr x0, [sp+24]
00406cc4bl strlen@plt
00406cc8ldr x3, [sp+48]
00406cccmov x2, x0
00406cd0movz x1, 1
00406cd4ldr x0, [sp+24]
00406cd8bl fwrite@plt
00406cdcldr x0, [sp+48]
00406ce0bl fclose@plt
00406ce4
00406ce4loc_406ce4:
00406ce4ldr x0, [sp+56]
00406ce8bl free@plt
00406cec
00406cecloc_406cec:
00406cechint
00406cf0ldp x29, x30, [sp], 64
00406cf4ret x30
00406c30
Loading..