File 8base_80736669542d3727c77ccda1589f9d7c17568a1d97d98ffae84afbbbf081be67.elf
Function:
Loading..
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
00406cf8
00406cf8file_ext_get:
00406cf8stp x29, x30, [sp-48]!
00406cfcadd x29, sp, 0
00406d00str x0, [sp+24]
00406d04ldr x0, [sp+24]
00406d08bl strlen@plt
00406d0cmov x1, x0
00406d10ldr x0, [sp+24]
00406d14add x0, x0, x1
00406d18str x0, [sp+40]
00406d1c
00406d1cloc_406d1c:
00406d1cldr x0, [sp+40]
00406d20sub x0, x0, 1
00406d24str x0, [sp+40]
00406d28ldr x0, [sp+40]
00406d2cldrb w0, [x0]
00406d30subs wzr, w0, 46
00406d34b.eq 0x406d60
00406d38ldr x1, [sp+40]
00406d3cldr x0, [sp+24]
00406d40subs xzr, x1, x0
00406d44b.ls 0x406d58
00406d48ldr x0, [sp+40]
00406d4cldrb w0, [x0]
00406d50subs wzr, w0, 47
00406d54b.ne 0x406d1c
00406d58
00406d58loc_406d58:
00406d58movz x0, 0
00406d5cb 0x406d68
00406d60
00406d60loc_406d60:
00406d60hint
00406d64ldr x0, [sp+40]
00406d68
00406d68loc_406d68:
00406d68ldp x29, x30, [sp], 48
00406d6cret x30
00406cf8
00406cf8file_ext_get:
00406cf8stp x29, x30, [sp-48]!
00406cfcadd x29, sp, 0
00406d00str x0, [sp+24]
00406d04ldr x0, [sp+24]
00406d08bl strlen@plt
00406d0cmov x1, x0
00406d10ldr x0, [sp+24]
00406d14add x0, x0, x1
00406d18str x0, [sp+40]
00406d1c
00406d1cloc_406d1c:
00406d1cldr x0, [sp+40]
00406d20sub x0, x0, 1
00406d24str x0, [sp+40]
00406d28ldr x0, [sp+40]
00406d2cldrb w0, [x0]
00406d30subs wzr, w0, 46
00406d34b.eq 0x406d60
00406d38ldr x1, [sp+40]
00406d3cldr x0, [sp+24]
00406d40subs xzr, x1, x0
00406d44b.ls 0x406d58
00406d48ldr x0, [sp+40]
00406d4cldrb w0, [x0]
00406d50subs wzr, w0, 47
00406d54b.ne 0x406d1c
00406d58
00406d58loc_406d58:
00406d58movz x0, 0
00406d5cb 0x406d68
00406d60
00406d60loc_406d60:
00406d60hint
00406d64ldr x0, [sp+40]
00406d68
00406d68loc_406d68:
00406d68ldp x29, x30, [sp], 48
00406d6cret x30
00406cf8
00406d70
00406d70file_ext_find:
00406d70stp x29, x30, [sp-64]!
00406d74add x29, sp, 0
00406d78str x19, [sp+16]
00406d7cstr x0, [sp+40]
00406d80str x1, [sp+32]
00406d84adrp x0, 0x14000
00406d88add x0, x0, 536
00406d8cldr x19, [x0]
00406d90adrp x0, 0x14000
00406d94add x0, x0, 536
00406d98ldr x0, [x0]
00406d9cbl strlen@plt
00406da0mov x2, x0
00406da4mov x1, x19
00406da8ldr x0, [sp+40]
00406dacbl strncmp@plt
00406db0subs wzr, w0, 0
00406db4b.ne 0x406dc0
00406db8movz w0, 2
00406dbcb 0x406e78
00406dc0
00406dc0loc_406dc0:
00406dc0ldr x0, [sp+40]
00406dc4bl file_ext_get
00406dc8str x0, [sp+48]
00406dccldr x0, [sp+48]
00406dd0subs xzr, x0, 0
00406dd4b.eq 0x406e74
00406dd8adrp x0, 0x14000
00406ddcadd x0, x0, 544
00406de0ldr x0, [x0]
00406de4mov x1, x0
00406de8ldr x0, [sp+48]
00406decbl strcmp@plt
00406df0subs wzr, w0, 0
00406df4b.ne 0x406e00
00406df8movz w0, 2
00406dfcb 0x406e78
00406e00
00406e00loc_406e00:
00406e00adrp x0, 0x14000
00406e04add x0, x0, 528
00406e08ldr x0, [x0]
00406e0cadd x0, x0, 1
00406e10ldrb w0, [x0]
00406e14subs wzr, w0, 42
00406e18b.ne 0x406e24
00406e1cmovz w0, 0
00406e20b 0x406e78
00406e24
00406e24loc_406e24:
00406e24str wzr, [sp+60]
00406e28b 0x406e60
00406e2c
00406e2cloc_406e2c:
00406e2cadrp x0, 0x14000
00406e30add x0, x0, 528
00406e34ldrsw x1, [sp+60]
00406e38ldr x0, [x0+3*x1]
00406e3cldr x1, [sp+48]
00406e40bl strcasecmp@plt
00406e44subs wzr, w0, 0
00406e48b.ne 0x406e54
00406e4cmovz w0, 0
00406e50b 0x406e78
00406e54
00406e54loc_406e54:
00406e54ldr w0, [sp+60]
00406e58add w0, w0, 1
00406e5cstr w0, [sp+60]
00406e60
00406e60loc_406e60:
00406e60ldr w0, [sp+60]
00406e64subs wzr, w0, 0
00406e68b.eq 0x406e2c
00406e6cmovz w0, 2
00406e70b 0x406e78
00406e74
00406e74loc_406e74:
00406e74movz w0, 1
00406e78
00406e78loc_406e78:
00406e78ldr x19, [sp+16]
00406e7cldp x29, x30, [sp], 64
00406e80ret x30
00406d70
00406d70file_ext_find:
00406d70stp x29, x30, [sp-64]!
00406d74add x29, sp, 0
00406d78str x19, [sp+16]
00406d7cstr x0, [sp+40]
00406d80str x1, [sp+32]
00406d84adrp x0, 0x14000
00406d88add x0, x0, 536
00406d8cldr x19, [x0]
00406d90adrp x0, 0x14000
00406d94add x0, x0, 536
00406d98ldr x0, [x0]
00406d9cbl strlen@plt
00406da0mov x2, x0
00406da4mov x1, x19
00406da8ldr x0, [sp+40]
00406dacbl strncmp@plt
00406db0subs wzr, w0, 0
00406db4b.ne 0x406dc0
00406db8movz w0, 2
00406dbcb 0x406e78
00406dc0
00406dc0loc_406dc0:
00406dc0ldr x0, [sp+40]
00406dc4bl file_ext_get
00406dc8str x0, [sp+48]
00406dccldr x0, [sp+48]
00406dd0subs xzr, x0, 0
00406dd4b.eq 0x406e74
00406dd8adrp x0, 0x14000
00406ddcadd x0, x0, 544
00406de0ldr x0, [x0]
00406de4mov x1, x0
00406de8ldr x0, [sp+48]
00406decbl strcmp@plt
00406df0subs wzr, w0, 0
00406df4b.ne 0x406e00
00406df8movz w0, 2
00406dfcb 0x406e78
00406e00
00406e00loc_406e00:
00406e00adrp x0, 0x14000
00406e04add x0, x0, 528
00406e08ldr x0, [x0]
00406e0cadd x0, x0, 1
00406e10ldrb w0, [x0]
00406e14subs wzr, w0, 42
00406e18b.ne 0x406e24
00406e1cmovz w0, 0
00406e20b 0x406e78
00406e24
00406e24loc_406e24:
00406e24str wzr, [sp+60]
00406e28b 0x406e60
00406e2c
00406e2cloc_406e2c:
00406e2cadrp x0, 0x14000
00406e30add x0, x0, 528
00406e34ldrsw x1, [sp+60]
00406e38ldr x0, [x0+3*x1]
00406e3cldr x1, [sp+48]
00406e40bl strcasecmp@plt
00406e44subs wzr, w0, 0
00406e48b.ne 0x406e54
00406e4cmovz w0, 0
00406e50b 0x406e78
00406e54
00406e54loc_406e54:
00406e54ldr w0, [sp+60]
00406e58add w0, w0, 1
00406e5cstr w0, [sp+60]
00406e60
00406e60loc_406e60:
00406e60ldr w0, [sp+60]
00406e64subs wzr, w0, 0
00406e68b.eq 0x406e2c
00406e6cmovz w0, 2
00406e70b 0x406e78
00406e74
00406e74loc_406e74:
00406e74movz w0, 1
00406e78
00406e78loc_406e78:
00406e78ldr x19, [sp+16]
00406e7cldp x29, x30, [sp], 64
00406e80ret x30
00406d70
00406e84
00406e84file_rename:
00406e84stp x29, x30, [sp-64]!
00406e88add x29, sp, 0
00406e8cstr x19, [sp+16]
00406e90str x0, [sp+40]
00406e94str xzr, [sp+56]
00406e98ldr x0, [sp+40]
00406e9cbl strlen@plt
00406ea0mov x19, x0
00406ea4adrp x0, 0x14000
00406ea8add x0, x0, 544
00406eacldr x0, [x0]
00406eb0bl strlen@plt
00406eb4add x0, x19, x0
00406eb8add x0, x0, 1
00406ebcbl malloc@plt
00406ec0str x0, [sp+56]
00406ec4ldr x0, [sp+56]
00406ec8subs xzr, x0, 0
00406eccb.eq 0x406f08
00406ed0ldr x1, [sp+40]
00406ed4ldr x0, [sp+56]
00406ed8bl strcpy@plt
00406edcadrp x0, 0x14000
00406ee0add x0, x0, 544
00406ee4ldr x0, [x0]
00406ee8mov x1, x0
00406eecldr x0, [sp+56]
00406ef0bl strcat@plt
00406ef4ldr x1, [sp+56]
00406ef8ldr x0, [sp+40]
00406efcbl rename@plt
00406f00ldr x0, [sp+40]
00406f04bl free@plt
00406f08
00406f08loc_406f08:
00406f08ldr x0, [sp+56]
00406f0cldr x19, [sp+16]
00406f10ldp x29, x30, [sp], 64
00406f14ret x30
00406e84
00406e84file_rename:
00406e84stp x29, x30, [sp-64]!
00406e88add x29, sp, 0
00406e8cstr x19, [sp+16]
00406e90str x0, [sp+40]
00406e94str xzr, [sp+56]
00406e98ldr x0, [sp+40]
00406e9cbl strlen@plt
00406ea0mov x19, x0
00406ea4adrp x0, 0x14000
00406ea8add x0, x0, 544
00406eacldr x0, [x0]
00406eb0bl strlen@plt
00406eb4add x0, x19, x0
00406eb8add x0, x0, 1
00406ebcbl malloc@plt
00406ec0str x0, [sp+56]
00406ec4ldr x0, [sp+56]
00406ec8subs xzr, x0, 0
00406eccb.eq 0x406f08
00406ed0ldr x1, [sp+40]
00406ed4ldr x0, [sp+56]
00406ed8bl strcpy@plt
00406edcadrp x0, 0x14000
00406ee0add x0, x0, 544
00406ee4ldr x0, [x0]
00406ee8mov x1, x0
00406eecldr x0, [sp+56]
00406ef0bl strcat@plt
00406ef4ldr x1, [sp+56]
00406ef8ldr x0, [sp+40]
00406efcbl rename@plt
00406f00ldr x0, [sp+40]
00406f04bl free@plt
00406f08
00406f08loc_406f08:
00406f08ldr x0, [sp+56]
00406f0cldr x19, [sp+16]
00406f10ldp x29, x30, [sp], 64
00406f14ret x30
00406e84
00406f18
00406f18file_get_meta_data:
00406f18stp x29, x30, [sp-208]!
00406f1cadd x29, sp, 0
00406f20str x0, [sp+40]
00406f24str x1, [sp+32]
00406f28str w2, [sp+28]
00406f2cmovz w0, 1
00406f30str w0, [sp+204]
00406f34str xzr, [sp+192]
00406f38add x0, sp, 56
00406f3cmov x1, x0
00406f40ldr x0, [sp+40]
00406f44bl stat@plt
00406f48subs wzr, w0, 0
00406f4cb.ne 0x407008
00406f50ldr x0, [sp+104]
00406f54subs xzr, x0, 35
00406f58b.ls 0x407008
00406f5cadrp x0, 8192
00406f60add x1, x0, 560
00406f64ldr x0, [sp+40]
00406f68bl fopen@plt
00406f6cstr x0, [sp+184]
00406f70ldr x0, [sp+184]
00406f74subs xzr, x0, 0
00406f78b.eq 0x407008
00406f7cmovz w2, 2
00406f80movn x1, 35
00406f84ldr x0, [sp+184]
00406f88bl fseek@plt
00406f8csubs wzr, w0, 0
00406f90b.ne 0x406fd4
00406f94ldr x3, [sp+184]
00406f98movz x2, 36
00406f9cmovz x1, 1
00406fa0ldr x0, [sp+32]
00406fa4bl fread@plt
00406fa8str x0, [sp+192]
00406facldr x0, [sp+192]
00406fb0subs xzr, x0, 36
00406fb4b.ne 0x406fd4
00406fb8ldr x0, [sp+32]
00406fbcldr w1, [x0+32]
00406fc0movz w0, 50198
00406fc4movk w0, 0x6c890000
00406fc8subs wzr, w1, w0
00406fccb.ne 0x406fd4
00406fd0str wzr, [sp+204]
00406fd4
00406fd4loc_406fd4:
00406fd4ldr x0, [sp+184]
00406fd8bl fclose@plt
00406fdcldr w0, [sp+28]
00406fe0subs wzr, w0, 0
00406fe4b.eq 0x407008
00406fe8ldr w0, [sp+204]
00406fecsubs wzr, w0, 0
00406ff0b.ne 0x407008
00406ff4ldr x0, [sp+104]
00406ff8sub x0, x0, 36
00406ffcmov x1, x0
00407000ldr x0, [sp+40]
00407004bl truncate@plt
00407008
00407008loc_407008:
00407008ldr w0, [sp+204]
0040700cldp x29, x30, [sp], 208
00407010ret x30
00406f18
00406f18file_get_meta_data:
00406f18stp x29, x30, [sp-208]!
00406f1cadd x29, sp, 0
00406f20str x0, [sp+40]
00406f24str x1, [sp+32]
00406f28str w2, [sp+28]
00406f2cmovz w0, 1
00406f30str w0, [sp+204]
00406f34str xzr, [sp+192]
00406f38add x0, sp, 56
00406f3cmov x1, x0
00406f40ldr x0, [sp+40]
00406f44bl stat@plt
00406f48subs wzr, w0, 0
00406f4cb.ne 0x407008
00406f50ldr x0, [sp+104]
00406f54subs xzr, x0, 35
00406f58b.ls 0x407008
00406f5cadrp x0, 8192
00406f60add x1, x0, 560
00406f64ldr x0, [sp+40]
00406f68bl fopen@plt
00406f6cstr x0, [sp+184]
00406f70ldr x0, [sp+184]
00406f74subs xzr, x0, 0
00406f78b.eq 0x407008
00406f7cmovz w2, 2
00406f80movn x1, 35
00406f84ldr x0, [sp+184]
00406f88bl fseek@plt
00406f8csubs wzr, w0, 0
00406f90b.ne 0x406fd4
00406f94ldr x3, [sp+184]
00406f98movz x2, 36
00406f9cmovz x1, 1
00406fa0ldr x0, [sp+32]
00406fa4bl fread@plt
00406fa8str x0, [sp+192]
00406facldr x0, [sp+192]
00406fb0subs xzr, x0, 36
00406fb4b.ne 0x406fd4
00406fb8ldr x0, [sp+32]
00406fbcldr w1, [x0+32]
00406fc0movz w0, 50198
00406fc4movk w0, 0x6c890000
00406fc8subs wzr, w1, w0
00406fccb.ne 0x406fd4
00406fd0str wzr, [sp+204]
00406fd4
00406fd4loc_406fd4:
00406fd4ldr x0, [sp+184]
00406fd8bl fclose@plt
00406fdcldr w0, [sp+28]
00406fe0subs wzr, w0, 0
00406fe4b.eq 0x407008
00406fe8ldr w0, [sp+204]
00406fecsubs wzr, w0, 0
00406ff0b.ne 0x407008
00406ff4ldr x0, [sp+104]
00406ff8sub x0, x0, 36
00406ffcmov x1, x0
00407000ldr x0, [sp+40]
00407004bl truncate@plt
00407008
00407008loc_407008:
00407008ldr w0, [sp+204]
0040700cldp x29, x30, [sp], 208
00407010ret x30
00406f18
00407014
00407014file_process:
00407014stp x29, x30, [sp-336]!
00407018add x29, sp, 0
0040701cstr x0, [sp+24]
00407020str xzr, [sp+320]
00407024str xzr, [sp+328]
00407028add x0, sp, 136
0040702cmovz w2, 0
00407030mov x1, x0
00407034ldr x0, [sp+24]
00407038bl file_get_meta_data
0040703csubs wzr, w0, 0
00407040b.eq 0x4071c8
00407044add x0, sp, 176
00407048mov x1, x0
0040704cldr x0, [sp+24]
00407050bl stat@plt
00407054subs wzr, w0, 0
00407058b.ne 0x4071cc
0040705cldr x0, [sp+224]
00407060subs xzr, x0, 15
00407064b.le 0x4071cc
00407068ldr x1, [sp+24]
0040706cadrp x0, 4096
00407070add x0, x0, 568
00407074bl printf@plt
00407078adrp x0, 4096
0040707cadd x1, x0, 560
00407080ldr x0, [sp+24]
00407084bl fopen@plt
00407088str x0, [sp+312]
0040708cldr x0, [sp+312]
00407090subs xzr, x0, 0
00407094b.eq 0x4071cc
00407098movz x0, 0x100000
0040709cbl malloc@plt
004070a0str x0, [sp+304]
004070a4ldr x0, [sp+304]
004070a8subs xzr, x0, 0
004070acb.eq 0x4071bc
004070b0add x1, sp, 136
004070b4add x0, sp, 40
004070b8mov x2, x1
004070bcmov x1, x0
004070c0adrp x0, 0x13000
004070c4add x0, x0, 496
004070c8bl session_key_get
004070ccadd x1, sp, 40
004070d0add x0, sp, 72
004070d4bl crypto_session_init
004070d8
004070d8loc_4070d8:
004070d8ldr x3, [sp+312]
004070dcmovz x2, 0x100000
004070e0movz x1, 1
004070e4ldr x0, [sp+304]
004070e8bl fread@plt
004070ecstr x0, [sp+320]
004070f0ldr x0, [sp+320]
004070f4subs xzr, x0, 16
004070f8b.ls 0x407178
004070fcldr x0, [sp+320]
00407100mov w1, w0
00407104add x0, sp, 72
00407108mov x2, x0
0040710cldr x0, [sp+304]
00407110bl buffer_crypt
00407114ldr x0, [sp+320]
00407118sub x0, xzr, x0
0040711cmovz w2, 1
00407120mov x1, x0
00407124ldr x0, [sp+312]
00407128bl fseek@plt
0040712cldr x3, [sp+312]
00407130ldr x2, [sp+320]
00407134movz x1, 1
00407138ldr x0, [sp+304]
0040713cbl fwrite@plt
00407140movz w2, 1
00407144movz x1, 0x3100000
00407148ldr x0, [sp+312]
0040714cbl fseek@plt
00407150ldr x1, [sp+328]
00407154movz x0, 0x3200000
00407158add x0, x1, x0
0040715cstr x0, [sp+328]
00407160ldr x0, [sp+224]
00407164mov x1, x0
00407168ldr x0, [sp+328]
0040716csubs xzr, x0, x1
00407170b.lo 0x4070d8
00407174b 0x40717c
00407178
00407178loc_407178:
00407178hint
0040717c
0040717cloc_40717c:
0040717cadd x0, sp, 72
00407180bl crypto_session_close
00407184ldr x0, [sp+304]
00407188bl free@plt
0040718cmovz w0, 50198
00407190movk w0, 0x6c890000
00407194str w0, [sp+168]
00407198movz w2, 2
0040719cmovz x1, 0
004071a0ldr x0, [sp+312]
004071a4bl fseek@plt
004071a8add x0, sp, 136
004071acldr x3, [sp+312]
004071b0movz x2, 36
004071b4movz x1, 1
004071b8bl fwrite@plt
004071bc
004071bcloc_4071bc:
004071bcldr x0, [sp+312]
004071c0bl fclose@plt
004071c4b 0x4071cc
004071c8
004071c8loc_4071c8:
004071c8hint
004071cc
004071ccloc_4071cc:
004071ccldp x29, x30, [sp], 336
004071d0ret x30
00407014
00407014file_process:
00407014stp x29, x30, [sp-336]!
00407018add x29, sp, 0
0040701cstr x0, [sp+24]
00407020str xzr, [sp+320]
00407024str xzr, [sp+328]
00407028add x0, sp, 136
0040702cmovz w2, 0
00407030mov x1, x0
00407034ldr x0, [sp+24]
00407038bl file_get_meta_data
0040703csubs wzr, w0, 0
00407040b.eq 0x4071c8
00407044add x0, sp, 176
00407048mov x1, x0
0040704cldr x0, [sp+24]
00407050bl stat@plt
00407054subs wzr, w0, 0
00407058b.ne 0x4071cc
0040705cldr x0, [sp+224]
00407060subs xzr, x0, 15
00407064b.le 0x4071cc
00407068ldr x1, [sp+24]
0040706cadrp x0, 4096
00407070add x0, x0, 568
00407074bl printf@plt
00407078adrp x0, 4096
0040707cadd x1, x0, 560
00407080ldr x0, [sp+24]
00407084bl fopen@plt
00407088str x0, [sp+312]
0040708cldr x0, [sp+312]
00407090subs xzr, x0, 0
00407094b.eq 0x4071cc
00407098movz x0, 0x100000
0040709cbl malloc@plt
004070a0str x0, [sp+304]
004070a4ldr x0, [sp+304]
004070a8subs xzr, x0, 0
004070acb.eq 0x4071bc
004070b0add x1, sp, 136
004070b4add x0, sp, 40
004070b8mov x2, x1
004070bcmov x1, x0
004070c0adrp x0, 0x13000
004070c4add x0, x0, 496
004070c8bl session_key_get
004070ccadd x1, sp, 40
004070d0add x0, sp, 72
004070d4bl crypto_session_init
004070d8
004070d8loc_4070d8:
004070d8ldr x3, [sp+312]
004070dcmovz x2, 0x100000
004070e0movz x1, 1
004070e4ldr x0, [sp+304]
004070e8bl fread@plt
004070ecstr x0, [sp+320]
004070f0ldr x0, [sp+320]
004070f4subs xzr, x0, 16
004070f8b.ls 0x407178
004070fcldr x0, [sp+320]
00407100mov w1, w0
00407104add x0, sp, 72
00407108mov x2, x0
0040710cldr x0, [sp+304]
00407110bl buffer_crypt
00407114ldr x0, [sp+320]
00407118sub x0, xzr, x0
0040711cmovz w2, 1
00407120mov x1, x0
00407124ldr x0, [sp+312]
00407128bl fseek@plt
0040712cldr x3, [sp+312]
00407130ldr x2, [sp+320]
00407134movz x1, 1
00407138ldr x0, [sp+304]
0040713cbl fwrite@plt
00407140movz w2, 1
00407144movz x1, 0x3100000
00407148ldr x0, [sp+312]
0040714cbl fseek@plt
00407150ldr x1, [sp+328]
00407154movz x0, 0x3200000
00407158add x0, x1, x0
0040715cstr x0, [sp+328]
00407160ldr x0, [sp+224]
00407164mov x1, x0
00407168ldr x0, [sp+328]
0040716csubs xzr, x0, x1
00407170b.lo 0x4070d8
00407174b 0x40717c
00407178
00407178loc_407178:
00407178hint
0040717c
0040717cloc_40717c:
0040717cadd x0, sp, 72
00407180bl crypto_session_close
00407184ldr x0, [sp+304]
00407188bl free@plt
0040718cmovz w0, 50198
00407190movk w0, 0x6c890000
00407194str w0, [sp+168]
00407198movz w2, 2
0040719cmovz x1, 0
004071a0ldr x0, [sp+312]
004071a4bl fseek@plt
004071a8add x0, sp, 136
004071acldr x3, [sp+312]
004071b0movz x2, 36
004071b4movz x1, 1
004071b8bl fwrite@plt
004071bc
004071bcloc_4071bc:
004071bcldr x0, [sp+312]
004071c0bl fclose@plt
004071c4b 0x4071cc
004071c8
004071c8loc_4071c8:
004071c8hint
004071cc
004071ccloc_4071cc:
004071ccldp x29, x30, [sp], 336
004071d0ret x30
00407014
004071d4
004071d4files_find_recursive:
004071d4stp x29, x30, [sp-96]!
004071d8add x29, sp, 0
004071dcstr x0, [sp+40]
004071e0str x1, [sp+32]
004071e4str w2, [sp+28]
004071e8movz x0, 4097
004071ecbl malloc@plt
004071f0str x0, [sp+88]
004071f4ldr x0, [sp+88]
004071f8subs xzr, x0, 0
004071fcb.eq 0x40742c
00407200ldr x1, [sp+40]
00407204ldr x0, [sp+88]
00407208bl strcpy@plt
0040720cldr x1, [sp+40]
00407210adrp x0, 4096
00407214add x0, x0, 576
00407218bl printf@plt
0040721cldr x0, [sp+88]
00407220bl opendir@plt
00407224str x0, [sp+80]
00407228ldr x0, [sp+80]
0040722csubs xzr, x0, 0
00407230b.eq 0x4073c4
00407234str xzr, [sp+72]
00407238b 0x4073a4
0040723c
0040723cloc_40723c:
0040723cldr x0, [sp+72]
00407240add x2, x0, 19
00407244adrp x0, 4096
00407248add x1, x0, 600
0040724cmov x0, x2
00407250bl strcmp@plt
00407254subs wzr, w0, 0
00407258b.eq 0x4073a4
0040725cldr x0, [sp+72]
00407260add x2, x0, 19
00407264adrp x0, 4096
00407268add x1, x0, 608
0040726cmov x0, x2
00407270bl strcmp@plt
00407274subs wzr, w0, 0
00407278b.eq 0x4073a4
0040727cldr x0, [sp+72]
00407280ldrb w0, [x0+18]
00407284subs wzr, w0, 4
00407288b.ne 0x4072f4
0040728cldr x1, [sp+40]
00407290ldr x0, [sp+88]
00407294bl strcpy@plt
00407298ldr x0, [sp+88]
0040729cbl strlen@plt
004072a0mov x1, x0
004072a4ldr x0, [sp+88]
004072a8add x0, x0, x1
004072acmovz w1, 47
004072b0strh w1, [x0]
004072b4ldr x0, [sp+72]
004072b8add x0, x0, 19
004072bcmov x1, x0
004072c0ldr x0, [sp+88]
004072c4bl strcat@plt
004072c8ldr x0, [sp+88]
004072ccbl copy_path
004072d0str x0, [sp+48]
004072d4ldr x0, [sp+48]
004072d8subs xzr, x0, 0
004072dcb.eq 0x4073a4
004072e0movz w2, 0
004072e4ldr x1, [sp+32]
004072e8ldr x0, [sp+48]
004072ecbl files_find_recursive
004072f0b 0x4073a4
004072f4
004072f4loc_4072f4:
004072f4ldr x0, [sp+72]
004072f8ldrb w0, [x0+18]
004072fcsubs wzr, w0, 8
00407300b.ne 0x4073a4
00407304ldr x1, [sp+40]
00407308ldr x0, [sp+88]
0040730cbl strcpy@plt
00407310ldr x0, [sp+88]
00407314bl strlen@plt
00407318mov x1, x0
0040731cldr x0, [sp+88]
00407320add x0, x0, x1
00407324movz w1, 47
00407328strh w1, [x0]
0040732cldr x0, [sp+72]
00407330add x0, x0, 19
00407334mov x1, x0
00407338ldr x0, [sp+88]
0040733cbl strcat@plt
00407340ldr x0, [sp+72]
00407344add x2, x0, 19
00407348adrp x0, 0x13000
0040734cadd x1, x0, 528
00407350mov x0, x2
00407354bl file_ext_find
00407358str w0, [sp+68]
0040735cldr w0, [sp+68]
00407360subs wzr, w0, 0
00407364b.ne 0x4073a0
00407368ldr x0, [sp+88]
0040736cbl copy_path
00407370str x0, [sp+56]
00407374ldr x0, [sp+56]
00407378subs xzr, x0, 0
0040737cb.eq 0x4073a0
00407380ldr x0, [sp+56]
00407384bl file_rename
00407388str x0, [sp+56]
0040738cldr x2, [sp+56]
00407390adrp x0, 0
00407394add x1, x0, 20
00407398ldr x0, [sp+32]
0040739cbl thpool_add_work
004073a0
004073a0loc_4073a0:
004073a0hint
004073a4
004073a4loc_4073a4:
004073a4ldr x0, [sp+80]
004073a8bl readdir@plt
004073acstr x0, [sp+72]
004073b0ldr x0, [sp+72]
004073b4subs xzr, x0, 0
004073b8b.ne 0x40723c
004073bcldr x0, [sp+80]
004073c0bl closedir@plt
004073c4
004073c4loc_4073c4:
004073c4adrp x0, 0x13000
004073c8add x0, x0, 536
004073ccldr x1, [x0]
004073d0adrp x0, 4096
004073d4add x3, x0, 616
004073d8adrp x0, 4096
004073dcadd x2, x0, 248
004073e0ldr x0, [sp+40]
004073e4bl file_write_message
004073e8adrp x0, 0x13000
004073ecadd x0, x0, 536
004073f0ldr x1, [x0]
004073f4adrp x0, 4096
004073f8add x3, x0, 624
004073fcadrp x0, 4096
00407400add x2, x0, 368
00407404ldr x0, [sp+40]
00407408bl file_write_message
0040740cldr w0, [sp+28]
00407410subs wzr, w0, 0
00407414b.ne 0x407420
00407418ldr x0, [sp+40]
0040741cbl free@plt
00407420
00407420loc_407420:
00407420ldr x0, [sp+88]
00407424bl free@plt
00407428b 0x407430
0040742c
0040742cloc_40742c:
0040742chint
00407430
00407430loc_407430:
00407430ldp x29, x30, [sp], 96
00407434ret x30
004071d4
004071d4files_find_recursive:
004071d4stp x29, x30, [sp-96]!
004071d8add x29, sp, 0
004071dcstr x0, [sp+40]
004071e0str x1, [sp+32]
004071e4str w2, [sp+28]
004071e8movz x0, 4097
004071ecbl malloc@plt
004071f0str x0, [sp+88]
004071f4ldr x0, [sp+88]
004071f8subs xzr, x0, 0
004071fcb.eq 0x40742c
00407200ldr x1, [sp+40]
00407204ldr x0, [sp+88]
00407208bl strcpy@plt
0040720cldr x1, [sp+40]
00407210adrp x0, 4096
00407214add x0, x0, 576
00407218bl printf@plt
0040721cldr x0, [sp+88]
00407220bl opendir@plt
00407224str x0, [sp+80]
00407228ldr x0, [sp+80]
0040722csubs xzr, x0, 0
00407230b.eq 0x4073c4
00407234str xzr, [sp+72]
00407238b 0x4073a4
0040723c
0040723cloc_40723c:
0040723cldr x0, [sp+72]
00407240add x2, x0, 19
00407244adrp x0, 4096
00407248add x1, x0, 600
0040724cmov x0, x2
00407250bl strcmp@plt
00407254subs wzr, w0, 0
00407258b.eq 0x4073a4
0040725cldr x0, [sp+72]
00407260add x2, x0, 19
00407264adrp x0, 4096
00407268add x1, x0, 608
0040726cmov x0, x2
00407270bl strcmp@plt
00407274subs wzr, w0, 0
00407278b.eq 0x4073a4
0040727cldr x0, [sp+72]
00407280ldrb w0, [x0+18]
00407284subs wzr, w0, 4
00407288b.ne 0x4072f4
0040728cldr x1, [sp+40]
00407290ldr x0, [sp+88]
00407294bl strcpy@plt
00407298ldr x0, [sp+88]
0040729cbl strlen@plt
004072a0mov x1, x0
004072a4ldr x0, [sp+88]
004072a8add x0, x0, x1
004072acmovz w1, 47
004072b0strh w1, [x0]
004072b4ldr x0, [sp+72]
004072b8add x0, x0, 19
004072bcmov x1, x0
004072c0ldr x0, [sp+88]
004072c4bl strcat@plt
004072c8ldr x0, [sp+88]
004072ccbl copy_path
004072d0str x0, [sp+48]
004072d4ldr x0, [sp+48]
004072d8subs xzr, x0, 0
004072dcb.eq 0x4073a4
004072e0movz w2, 0
004072e4ldr x1, [sp+32]
004072e8ldr x0, [sp+48]
004072ecbl files_find_recursive
004072f0b 0x4073a4
004072f4
004072f4loc_4072f4:
004072f4ldr x0, [sp+72]
004072f8ldrb w0, [x0+18]
004072fcsubs wzr, w0, 8
00407300b.ne 0x4073a4
00407304ldr x1, [sp+40]
00407308ldr x0, [sp+88]
0040730cbl strcpy@plt
00407310ldr x0, [sp+88]
00407314bl strlen@plt
00407318mov x1, x0
0040731cldr x0, [sp+88]
00407320add x0, x0, x1
00407324movz w1, 47
00407328strh w1, [x0]
0040732cldr x0, [sp+72]
00407330add x0, x0, 19
00407334mov x1, x0
00407338ldr x0, [sp+88]
0040733cbl strcat@plt
00407340ldr x0, [sp+72]
00407344add x2, x0, 19
00407348adrp x0, 0x13000
0040734cadd x1, x0, 528
00407350mov x0, x2
00407354bl file_ext_find
00407358str w0, [sp+68]
0040735cldr w0, [sp+68]
00407360subs wzr, w0, 0
00407364b.ne 0x4073a0
00407368ldr x0, [sp+88]
0040736cbl copy_path
00407370str x0, [sp+56]
00407374ldr x0, [sp+56]
00407378subs xzr, x0, 0
0040737cb.eq 0x4073a0
00407380ldr x0, [sp+56]
00407384bl file_rename
00407388str x0, [sp+56]
0040738cldr x2, [sp+56]
00407390adrp x0, 0
00407394add x1, x0, 20
00407398ldr x0, [sp+32]
0040739cbl thpool_add_work
004073a0
004073a0loc_4073a0:
004073a0hint
004073a4
004073a4loc_4073a4:
004073a4ldr x0, [sp+80]
004073a8bl readdir@plt
004073acstr x0, [sp+72]
004073b0ldr x0, [sp+72]
004073b4subs xzr, x0, 0
004073b8b.ne 0x40723c
004073bcldr x0, [sp+80]
004073c0bl closedir@plt
004073c4
004073c4loc_4073c4:
004073c4adrp x0, 0x13000
004073c8add x0, x0, 536
004073ccldr x1, [x0]
004073d0adrp x0, 4096
004073d4add x3, x0, 616
004073d8adrp x0, 4096
004073dcadd x2, x0, 248
004073e0ldr x0, [sp+40]
004073e4bl file_write_message
004073e8adrp x0, 0x13000
004073ecadd x0, x0, 536
004073f0ldr x1, [x0]
004073f4adrp x0, 4096
004073f8add x3, x0, 624
004073fcadrp x0, 4096
00407400add x2, x0, 368
00407404ldr x0, [sp+40]
00407408bl file_write_message
0040740cldr w0, [sp+28]
00407410subs wzr, w0, 0
00407414b.ne 0x407420
00407418ldr x0, [sp+40]
0040741cbl free@plt
00407420
00407420loc_407420:
00407420ldr x0, [sp+88]
00407424bl free@plt
00407428b 0x407430
0040742c
0040742cloc_40742c:
0040742chint
00407430
00407430loc_407430:
00407430ldp x29, x30, [sp], 96
00407434ret x30
004071d4
00407438
00407438csprng:
00407438stp x29, x30, [sp-48]!
0040743cadd x29, sp, 0
00407440str x0, [sp+24]
00407444str w1, [sp+20]
00407448adrp x0, 4096
0040744cadd x1, x0, 952
00407450adrp x0, 4096
00407454add x0, x0, 960
00407458bl fopen@plt
0040745cstr x0, [sp+40]
00407460ldr x0, [sp+40]
00407464subs xzr, x0, 0
00407468b.eq 0x40748c
0040746cldrsw x0, [sp+20]
00407470ldr x3, [sp+40]
00407474mov x2, x0
00407478movz x1, 1
0040747cldr x0, [sp+24]
00407480bl fread@plt
00407484ldr x0, [sp+40]
00407488bl fclose@plt
0040748c
0040748cloc_40748c:
0040748chint
00407490ldp x29, x30, [sp], 48
00407494ret x30
00407438
00407438csprng:
00407438stp x29, x30, [sp-48]!
0040743cadd x29, sp, 0
00407440str x0, [sp+24]
00407444str w1, [sp+20]
00407448adrp x0, 4096
0040744cadd x1, x0, 952
00407450adrp x0, 4096
00407454add x0, x0, 960
00407458bl fopen@plt
0040745cstr x0, [sp+40]
00407460ldr x0, [sp+40]
00407464subs xzr, x0, 0
00407468b.eq 0x40748c
0040746cldrsw x0, [sp+20]
00407470ldr x3, [sp+40]
00407474mov x2, x0
00407478movz x1, 1
0040747cldr x0, [sp+24]
00407480bl fread@plt
00407484ldr x0, [sp+40]
00407488bl fclose@plt
0040748c
0040748cloc_40748c:
0040748chint
00407490ldp x29, x30, [sp], 48
00407494ret x30
00407438
Loading..