== CTOR_5a6c374_full ==
entry=0x5a6c374 end=0x5a6c3b3 size=64

undefined8 * FUN_05a6c374(undefined8 *param_1)

{
  *param_1 = &PTR_FUN_09f35488;
  param_1[1] = &DAT_0a524ad0;
  param_1[2] = &DAT_0a524ad0;
  param_1[3] = 0;
  param_1[4] = 0;
  FUN_05a6c22c();
  return param_1;
}
-- full disasm --
0x5a6c374: stp x20,x19,[sp, #-0x20]!
0x5a6c378: stp x29,x30,[sp, #0x10]
0x5a6c37c: add x29,sp,#0x10
0x5a6c380: mov x19,x0
0x5a6c384: adrp x8,0xa524000
0x5a6c388: add x8,x8,#0xad0
0x5a6c38c: adrp x9,0x9f35000
0x5a6c390: add x9,x9,#0x488
0x5a6c394: stp x9,x8,[x0]
0x5a6c398: stp x8,xzr,[x0, #0x10]
0x5a6c39c: str xzr,[x0, #0x20]
0x5a6c3a0: bl 0x05a6c22c
0x5a6c3a4: mov x0,x19
0x5a6c3a8: ldp x29,x30,[sp, #0x10]
0x5a6c3ac: ldp x20,x19,[sp], #0x20
0x5a6c3b0: ret
== INNER_5a6c22c ==
entry=0x5a6c22c end=0x5a6c373 size=328

void FUN_05a6c22c(long param_1,long param_2)

{
  undefined4 uVar1;
  byte bVar2;
  undefined8 uVar3;
  undefined8 *puVar4;
  uint uVar5;
  undefined1 uStack_61;
  undefined1 auStack_60 [48];
  
  if (param_2 == param_1) {
    FUN_05ab442c(auStack_60,3,
                 "/Users/bkdevops/.wconan2/mmnet/e27341bb_1784873910/mars-wechat/mars/mm-ext/src/protobuf/mmaction.pb.cc"
                 ,0x264);
    uVar3 = FUN_05ab4444(auStack_60,"CHECK failed: (&from) != (this): ");
    FUN_05ab4574(&uStack_61,uVar3);
    FUN_05ab457c(auStack_60);
  }
  bVar2 = *(byte *)(param_2 + 0x24);
  uVar5 = (uint)bVar2;
  if (bVar2 == 0) {
    return;
  }
  if ((bVar2 & 1) == 0) {
    if ((bVar2 >> 1 & 1) == 0) goto joined_r0x05a6c2a4;
  }
  else {
    uVar3 = *(undefined8 *)(param_2 + 8);
    *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) | 1;
    puVar4 = *(undefined8 **)(param_1 + 8);
    if (puVar4 == &DAT_0a524ad0) {
      puVar4 = (undefined8 *)__Znwm(0x18);
      puVar4[1] = 0;
      puVar4[2] = 0;
      *puVar4 = 0;
      *(undefined8 **)(param_1 + 8) = puVar4;
    }
    __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_(puVar4,uVar3);
    uVar5 = *(uint *)(param_2 + 0x24);
    if ((uVar5 >> 1 & 1) == 0) goto joined_r0x05a6c2a4;
  }
  uVar1 = *(undefined4 *)(param_2 + 0x18);
  *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) | 2;
  *(undefined4 *)(param_1 + 0x18) = uVar1;
  uVar5 = *(uint *)(param_2 + 0x24);
joined_r0x05a6c2a4:
  if ((uVar5 >> 2 & 1) != 0) {
    uVar3 = *(undefined8 *)(param_2 + 0x10);
    *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) | 4;
    puVar4 = *(undefined8 **)(param_1 + 0x10);
    if (puVar4 == &DAT_0a524ad0) {
      puVar4 = (undefined8 *)__Znwm(0x18);
      puVar4[1] = 0;
      puVar4[2] = 0;
      *puVar4 = 0;
      *(undefined8 **)(param_1 + 0x10) = puVar4;
    }
    __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_(puVar4,uVar3);
    uVar5 = *(uint *)(param_2 + 0x24);
  }
  if ((uVar5 >> 3 & 1) != 0) {
    uVar1 = *(undefined4 *)(param_2 + 0x1c);
    *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) | 8;
    *(undefined4 *)(param_1 + 0x1c) = uVar1;
  }
  return;
}
-- full disasm --
0x5a6c22c: sub sp,sp,#0x70
0x5a6c230: stp x22,x21,[sp, #0x40]
0x5a6c234: stp x20,x19,[sp, #0x50]
0x5a6c238: stp x29,x30,[sp, #0x60]
0x5a6c23c: add x29,sp,#0x60
0x5a6c240: mov x20,x1
0x5a6c244: mov x19,x0
0x5a6c248: cmp x1,x0
0x5a6c24c: b.ne 0x05a6c28c
0x5a6c250: adrp x2,0x9883000
0x5a6c254: add x2,x2,#0xa4e
0x5a6c258: add x0,sp,#0x10
0x5a6c25c: mov w1,#0x3
0x5a6c260: mov w3,#0x264
0x5a6c264: bl 0x05ab442c
0x5a6c268: adrp x1,0x9859000
0x5a6c26c: add x1,x1,#0x34f
0x5a6c270: add x0,sp,#0x10
0x5a6c274: bl 0x05ab4444
0x5a6c278: mov x1,x0
0x5a6c27c: add x0,sp,#0xf
0x5a6c280: bl 0x05ab4574
0x5a6c284: add x0,sp,#0x10
0x5a6c288: bl 0x05ab457c
0x5a6c28c: ldrb w8,[x20, #0x24]
0x5a6c290: cbz w8,0x05a6c2c0
0x5a6c294: adrp x22,0xa524000
0x5a6c298: add x22,x22,#0xad0
0x5a6c29c: tbnz w8,#0x0,0x05a6c2d4
0x5a6c2a0: tbnz w8,#0x1,0x05a6c314
0x5a6c2a4: tbnz w8,#0x2,0x05a6c330
0x5a6c2a8: tbz w8,#0x3,0x05a6c2c0
0x5a6c2ac: ldr w8,[x20, #0x1c]
0x5a6c2b0: ldr w9,[x19, #0x24]
0x5a6c2b4: orr w9,w9,#0x8
0x5a6c2b8: str w9,[x19, #0x24]
0x5a6c2bc: str w8,[x19, #0x1c]
0x5a6c2c0: ldp x29,x30,[sp, #0x60]
0x5a6c2c4: ldp x20,x19,[sp, #0x50]
0x5a6c2c8: ldp x22,x21,[sp, #0x40]
0x5a6c2cc: add sp,sp,#0x70
0x5a6c2d0: ret
0x5a6c2d4: ldr x21,[x20, #0x8]
0x5a6c2d8: ldr w8,[x19, #0x24]
0x5a6c2dc: orr w8,w8,#0x1
0x5a6c2e0: str w8,[x19, #0x24]
0x5a6c2e4: ldr x0,[x19, #0x8]
0x5a6c2e8: cmp x0,x22
0x5a6c2ec: b.ne 0x05a6c304
0x5a6c2f0: mov w0,#0x18
0x5a6c2f4: bl 0x07140030
0x5a6c2f8: stp xzr,xzr,[x0, #0x8]
0x5a6c2fc: str xzr,[x0]
0x5a6c300: str x0,[x19, #0x8]
0x5a6c304: mov x1,x21
0x5a6c308: bl 0x0713f8e0
0x5a6c30c: ldr w8,[x20, #0x24]
0x5a6c310: tbz w8,#0x1,0x05a6c2a4
0x5a6c314: ldr w8,[x20, #0x18]
0x5a6c318: ldr w9,[x19, #0x24]
0x5a6c31c: orr w9,w9,#0x2
0x5a6c320: str w9,[x19, #0x24]
0x5a6c324: str w8,[x19, #0x18]
0x5a6c328: ldr w8,[x20, #0x24]
0x5a6c32c: tbz w8,#0x2,0x05a6c2a8
0x5a6c330: ldr x21,[x20, #0x10]
0x5a6c334: ldr w8,[x19, #0x24]
0x5a6c338: orr w8,w8,#0x4
0x5a6c33c: str w8,[x19, #0x24]
0x5a6c340: ldr x0,[x19, #0x10]
0x5a6c344: cmp x0,x22
0x5a6c348: b.ne 0x05a6c360
0x5a6c34c: mov w0,#0x18
0x5a6c350: bl 0x07140030
0x5a6c354: stp xzr,xzr,[x0, #0x8]
0x5a6c358: str xzr,[x0]
0x5a6c35c: str x0,[x19, #0x10]
0x5a6c360: mov x1,x21
0x5a6c364: bl 0x0713f8e0
0x5a6c368: ldr w8,[x20, #0x24]
0x5a6c36c: tbnz w8,#0x3,0x05a6c2ac
0x5a6c370: b 0x05a6c2c0
== ABLEN_5a6c868 ==
entry=0x5a6c868 end=0x5a6c9bb size=340

int FUN_05a6c868(long param_1)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  byte bVar7;
  long lVar8;
  
  bVar7 = *(byte *)(param_1 + 0x24);
  uVar4 = (uint)bVar7;
  if (bVar7 == 0) {
    iVar2 = 0;
    goto LAB_05a6c9a4;
  }
  if ((bVar7 & 1) == 0) {
    iVar2 = 0;
    if ((bVar7 >> 1 & 1) != 0) {
LAB_05a6c8f0:
      if (*(uint *)(param_1 + 0x18) < 0x80) {
        iVar3 = 2;
      }
      else {
        iVar3 = FUN_0571a3d8();
        iVar3 = iVar3 + 1;
        uVar4 = *(uint *)(param_1 + 0x24);
      }
      iVar2 = iVar3 + iVar2;
    }
  }
  else {
    lVar8 = *(long *)(param_1 + 8);
    bVar7 = *(byte *)(lVar8 + 0x17);
    uVar5 = (uint)bVar7;
    uVar6 = (uint)*(undefined8 *)(lVar8 + 8);
    uVar1 = uVar6;
    if (-1 < (char)bVar7) {
      uVar1 = uVar5;
    }
    if (uVar1 < 0x80) {
      iVar2 = 2;
    }
    else {
      iVar2 = FUN_0571a3d8();
      bVar7 = *(byte *)(lVar8 + 0x17);
      uVar5 = (uint)bVar7;
      uVar6 = (uint)*(undefined8 *)(lVar8 + 8);
      iVar2 = iVar2 + 1;
      uVar4 = *(uint *)(param_1 + 0x24);
    }
    if (-1 < (char)bVar7) {
      uVar6 = uVar5;
    }
    iVar2 = iVar2 + uVar6;
    if ((uVar4 >> 1 & 1) != 0) goto LAB_05a6c8f0;
  }
  if ((uVar4 >> 2 & 1) != 0) {
    lVar8 = *(long *)(param_1 + 0x10);
    bVar7 = *(byte *)(lVar8 + 0x17);
    uVar5 = (uint)bVar7;
    uVar6 = (uint)*(undefined8 *)(lVar8 + 8);
    uVar1 = uVar6;
    if (-1 < (char)bVar7) {
      uVar1 = uVar5;
    }
    if (uVar1 < 0x80) {
      iVar3 = 1;
    }
    else {
      iVar3 = FUN_0571a3d8();
      bVar7 = *(byte *)(lVar8 + 0x17);
      uVar5 = (uint)bVar7;
      uVar6 = (uint)*(undefined8 *)(lVar8 + 8);
      uVar4 = *(uint *)(param_1 + 0x24);
    }
    if (-1 < (char)bVar7) {
      uVar6 = uVar5;
    }
    iVar2 = iVar2 + iVar3 + uVar6 + 1;
  }
  if ((uVar4 >> 3 & 1) != 0) {
    if ((int)*(uint *)(param_1 + 0x1c) < 0) {
      iVar3 = 0xb;
    }
    else if (*(uint *)(param_1 + 0x1c) < 0x80) {
      iVar3 = 2;
    }
    else {
      iVar3 = FUN_0571a3d8();
      iVar3 = iVar3 + 1;
    }
    iVar2 = iVar3 + iVar2;
  }
LAB_05a6c9a4:
  *(int *)(param_1 + 0x20) = iVar2;
  return iVar2;
}
-- full disasm --
0x5a6c868: stp x22,x21,[sp, #-0x30]!
0x5a6c86c: stp x20,x19,[sp, #0x10]
0x5a6c870: stp x29,x30,[sp, #0x20]
0x5a6c874: add x29,sp,#0x20
0x5a6c878: mov x19,x0
0x5a6c87c: ldrb w8,[x0, #0x24]
0x5a6c880: cbz w8,0x05a6c894
0x5a6c884: tbnz w8,#0x0,0x05a6c89c
0x5a6c888: mov w20,#0x0
0x5a6c88c: tbnz w8,#0x1,0x05a6c8f0
0x5a6c890: b 0x05a6c914
0x5a6c894: mov w20,#0x0
0x5a6c898: b 0x05a6c9a4
0x5a6c89c: ldr x20,[x19, #0x8]
0x5a6c8a0: ldrb w9,[x20, #0x17]
0x5a6c8a4: sxtb w12,w9
0x5a6c8a8: ldr x10,[x20, #0x8]
0x5a6c8ac: cmp w12,#0x0
0x5a6c8b0: csel w0,w10,w9,lt
0x5a6c8b4: cmp w0,#0x80
0x5a6c8b8: b.cs 0x05a6c8c4
0x5a6c8bc: mov w11,#0x2
0x5a6c8c0: b 0x05a6c8dc
0x5a6c8c4: bl 0x0571a3d8
0x5a6c8c8: ldrb w9,[x20, #0x17]
0x5a6c8cc: ldr x10,[x20, #0x8]
0x5a6c8d0: add w11,w0,#0x1
0x5a6c8d4: ldr w8,[x19, #0x24]
0x5a6c8d8: mov x12,x9
0x5a6c8dc: sxtb w12,w12
0x5a6c8e0: cmp w12,#0x0
0x5a6c8e4: csel w9,w10,w9,lt
0x5a6c8e8: add w20,w11,w9
0x5a6c8ec: tbz w8,#0x1,0x05a6c914
0x5a6c8f0: ldr w0,[x19, #0x18]
0x5a6c8f4: cmp w0,#0x80
0x5a6c8f8: b.cs 0x05a6c904
0x5a6c8fc: mov w9,#0x2
0x5a6c900: b 0x05a6c910
0x5a6c904: bl 0x0571a3d8
0x5a6c908: add w9,w0,#0x1
0x5a6c90c: ldr w8,[x19, #0x24]
0x5a6c910: add w20,w9,w20
0x5a6c914: tbnz w8,#0x2,0x05a6c920
0x5a6c918: tbnz w8,#0x3,0x05a6c978
0x5a6c91c: b 0x05a6c9a4
0x5a6c920: ldr x21,[x19, #0x10]
0x5a6c924: ldrb w9,[x21, #0x17]
0x5a6c928: sxtb w11,w9
0x5a6c92c: ldr x10,[x21, #0x8]
0x5a6c930: cmp w11,#0x0
0x5a6c934: csel w0,w10,w9,lt
0x5a6c938: cmp w0,#0x80
0x5a6c93c: b.cs 0x05a6c948
0x5a6c940: mov w0,#0x1
0x5a6c944: b 0x05a6c95c
0x5a6c948: bl 0x0571a3d8
0x5a6c94c: ldrb w9,[x21, #0x17]
0x5a6c950: ldr x10,[x21, #0x8]
0x5a6c954: ldr w8,[x19, #0x24]
0x5a6c958: mov x11,x9
0x5a6c95c: sxtb w11,w11
0x5a6c960: cmp w11,#0x0
0x5a6c964: csel w9,w10,w9,lt
0x5a6c968: add w10,w20,w0
0x5a6c96c: add w9,w10,w9
0x5a6c970: add w20,w9,#0x1
0x5a6c974: tbz w8,#0x3,0x05a6c9a4
0x5a6c978: ldr w0,[x19, #0x1c]
0x5a6c97c: tbnz w0,#0x1f,0x05a6c990
0x5a6c980: cmp w0,#0x80
0x5a6c984: b.cs 0x05a6c998
0x5a6c988: mov w8,#0x2
0x5a6c98c: b 0x05a6c9a0
0x5a6c990: mov w8,#0xb
0x5a6c994: b 0x05a6c9a0
0x5a6c998: bl 0x0571a3d8
0x5a6c99c: add w8,w0,#0x1
0x5a6c9a0: add w20,w8,w20
0x5a6c9a4: str w20,[x19, #0x20]
0x5a6c9a8: mov x0,x20
0x5a6c9ac: ldp x29,x30,[sp, #0x20]
0x5a6c9b0: ldp x20,x19,[sp, #0x10]
0x5a6c9b4: ldp x22,x21,[sp], #0x30
0x5a6c9b8: ret
== VT_SLOT18_5981cec ==
entry=0x5981cec end=0x5981fa7 size=700

undefined8 FUN_05981cec(long param_1,undefined8 param_2,long param_3,uint *param_4)

{
  char cVar1;
  ulong uVar2;
  int iVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  uint uVar6;
  char *pcVar7;
  char *pcVar8;
  ulong uVar9;
  char *pcVar10;
  ulong uVar11;
  int iVar12;
  undefined1 auStack_258 [144];
  undefined8 local_1c8;
  char local_1c0 [72];
  undefined1 *local_178;
  undefined1 auStack_170 [72];
  undefined8 local_128;
  char local_120 [72];
  undefined8 *local_d8;
  undefined1 **ppuStack_d0;
  undefined8 *local_c8;
  undefined8 local_c0;
  undefined8 uStack_b8;
  undefined8 local_b0;
  undefined8 uStack_a8;
  undefined8 local_a0;
  undefined8 uStack_98;
  undefined8 local_90;
  undefined8 uStack_88;
  undefined8 local_80;
  undefined8 uStack_78;
  undefined8 local_70;
  undefined8 uStack_68;
  undefined8 local_60;
  long local_58;
  
  local_58 = *(long *)PTR____stack_chk_guard_09b36c98;
  FUN_05981abc();
  uVar4 = FUN_0594c390(param_2);
  uVar5 = FUN_0597e6cc(uVar4,*(undefined8 *)(param_3 + 8),*(undefined4 *)(param_3 + 0x28),
                       *(undefined8 *)(param_3 + 0x10),*(undefined8 *)(param_3 + 0x18),
                       *(undefined8 *)(param_3 + 0x20),*param_4);
  iVar3 = thunk_FUN_05e1d97c(2);
  iVar12 = (int)uVar5;
  if (iVar3 != 0) {
    FUN_05e1d050(auStack_258,2,"mars::mmext","actiontask_mgr.cc","Execute",0x51,0,0);
    local_128 = (char *)0x0;
    uVar9 = (ulong)*(uint *)(param_3 + 0x28);
    uVar2 = 8;
    do {
      uVar11 = uVar2;
      uVar6 = (uint)uVar9;
      local_120[uVar11 - 8] =
           "ZYXWVUTSRQPONMLKJIHGFEDCBA9876543210123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
           [uVar6 + (int)(uVar9 / 10) * -10 + 0x23];
      uVar9 = uVar9 / 10;
      uVar2 = uVar11 + 1;
    } while (9 < uVar6);
    local_120[uVar11 - 7] = '\0';
    local_128 = local_120;
    if (8 < uVar11) {
      pcVar10 = local_120;
      pcVar7 = local_120 + (uVar11 - 8);
      do {
        pcVar10 = pcVar10 + 1;
        cVar1 = *pcVar7;
        pcVar8 = pcVar7 + -1;
        *pcVar7 = pcVar10[-1];
        pcVar10[-1] = cVar1;
        pcVar7 = pcVar8;
      } while (pcVar10 < pcVar8);
    }
    local_d8 = (undefined8 *)CONCAT44(local_d8._4_4_,iVar12);
    local_178 = (undefined1 *)0x0;
    FUN_003eccb4(&local_d8,auStack_170,10,1);
    local_178 = auStack_170;
    local_1c8 = (char *)0x0;
    uVar9 = (ulong)*param_4;
    uVar2 = 8;
    do {
      uVar11 = uVar2;
      uVar6 = (uint)uVar9;
      local_1c0[uVar11 - 8] =
           "ZYXWVUTSRQPONMLKJIHGFEDCBA9876543210123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
           [uVar6 + (int)(uVar9 / 10) * -10 + 0x23];
      uVar9 = uVar9 / 10;
      uVar2 = uVar11 + 1;
    } while (9 < uVar6);
    *(undefined1 *)((long)&local_1c8 + uVar11 + 1) = 0;
    local_1c8 = local_1c0;
    if (8 < uVar11) {
      pcVar10 = local_1c0;
      pcVar7 = local_1c0 + (uVar11 - 8);
      do {
        pcVar10 = pcVar10 + 1;
        cVar1 = *pcVar7;
        pcVar8 = pcVar7 + -1;
        *pcVar7 = pcVar10[-1];
        pcVar10[-1] = cVar1;
        pcVar7 = pcVar8;
      } while (pcVar10 < pcVar8);
    }
    local_d8 = &local_128;
    ppuStack_d0 = &local_178;
    uStack_b8 = 0;
    local_c0 = 0;
    uStack_a8 = 0;
    local_b0 = 0;
    uStack_98 = 0;
    local_a0 = 0;
    uStack_88 = 0;
    local_90 = 0;
    uStack_78 = 0;
    local_80 = 0;
    uStack_68 = 0;
    local_70 = 0;
    local_60 = 0;
    local_c8 = &local_1c8;
    FUN_05e1d31c(auStack_258,"action notify code %_ error %_ taskid %_",&local_d8);
    thunk_FUN_05e1d0bc(auStack_258);
  }
  FUN_0597e100(uVar4,0x11,0x25,1,0);
  if (iVar12 == 2) {
    FUN_0597e100(uVar4,0x11,0x21,1,0);
  }
  *(uint *)(param_1 + 0x2c) = *(uint *)(param_1 + 0x2c) | 8;
  *(int *)(param_1 + 0x24) = iVar12;
  if (*(long *)PTR____stack_chk_guard_09b36c98 == local_58) {
    return uVar5;
  }
                    /* WARNING: Subroutine does not return */
  ___stack_chk_fail();
}
-- full disasm --
0x5981cec: stp x26,x25,[sp, #-0x50]!
0x5981cf0: stp x24,x23,[sp, #0x10]
0x5981cf4: stp x22,x21,[sp, #0x20]
0x5981cf8: stp x20,x19,[sp, #0x30]
0x5981cfc: stp x29,x30,[sp, #0x40]
0x5981d00: add x29,sp,#0x40
0x5981d04: sub sp,sp,#0x210
0x5981d08: mov x22,x3
0x5981d0c: mov x23,x2
0x5981d10: mov x20,x1
0x5981d14: mov x19,x0
0x5981d18: adrp x8,0x9b36000
0x5981d1c: ldr x8,[x8, #0xc98]
0x5981d20: ldr x8,[x8]
0x5981d24: stur x8,[x29, #-0x48]
0x5981d28: bl 0x05981abc
0x5981d2c: mov x0,x20
0x5981d30: bl 0x0594c390
0x5981d34: mov x20,x0
0x5981d38: ldr w2,[x23, #0x28]
0x5981d3c: ldp x1,x3,[x23, #0x8]
0x5981d40: ldp x4,x5,[x23, #0x18]
0x5981d44: ldr w6,[x22]
0x5981d48: bl 0x0597e6cc
0x5981d4c: mov x21,x0
0x5981d50: mov w0,#0x2
0x5981d54: bl 0x05e1d978
0x5981d58: cbz w0,0x05981f24
0x5981d5c: sub x24,x29,#0xc8
0x5981d60: adrp x2,0x9859000
0x5981d64: add x2,x2,#0x3da
0x5981d68: adrp x3,0x9859000
0x5981d6c: add x3,x3,#0xf7b
0x5981d70: adrp x4,0x985a000
0x5981d74: add x4,x4,#0x1a6
0x5981d78: add x0,sp,#0x8
0x5981d7c: mov w1,#0x2
0x5981d80: mov w5,#0x51
0x5981d84: mov w6,#0x0
0x5981d88: mov x7,#0x0
0x5981d8c: bl 0x05e1d050
0x5981d90: ldr w8,[x23, #0x28]
0x5981d94: str xzr,[sp, #0x138]
0x5981d98: mov w11,#0x8
0x5981d9c: mov w9,#0xcccd
0x5981da0: movk w9,#0xcccc, LSL #16
0x5981da4: mov w10,#0xfffffff6
0x5981da8: add x12,sp,#0x138
0x5981dac: adrp x25,0x9856000
0x5981db0: add x25,x25,#0x2c4
0x5981db4: umull x13,w8,w9
0x5981db8: lsr x14,x13,#0x23
0x5981dbc: madd w13,w14,w10,w8
0x5981dc0: add w13,w13,#0x23
0x5981dc4: ldrb w15,[x25, w13, UXTW ]
0x5981dc8: add x13,x11,#0x1
0x5981dcc: strb w15,[x12, x11]
0x5981dd0: mov x11,x13
0x5981dd4: cmp w8,#0x9
0x5981dd8: mov x8,x14
0x5981ddc: b.hi 0x05981db4
0x5981de0: add x10,sp,#0x138
0x5981de4: add x8,x10,x13
0x5981de8: strb wzr,[x8], #-0x1
0x5981dec: add x9,x10,#0x8
0x5981df0: sub x11,x13,#0x1
0x5981df4: cmp x11,#0x9
0x5981df8: b.cc 0x05981e20
0x5981dfc: add x10,x10,#0x9
0x5981e00: ldrb w11,[x8]
0x5981e04: ldurb w12,[x10, #-0x1]
0x5981e08: strb w12,[x8], #-0x1
0x5981e0c: sturb w11,[x10, #-0x1]
0x5981e10: add x11,x10,#0x1
0x5981e14: cmp x10,x8
0x5981e18: mov x10,x11
0x5981e1c: b.cc 0x05981e00
0x5981e20: str x9,[sp, #0x138]
0x5981e24: stur w21,[x29, #-0xc8]
0x5981e28: str xzr,[sp, #0xe8]
0x5981e2c: add x8,sp,#0xe8
0x5981e30: add x23,x8,#0x8
0x5981e34: sub x0,x29,#0xc8
0x5981e38: mov x1,x23
0x5981e3c: mov w2,#0xa
0x5981e40: mov w3,#0x1
0x5981e44: bl 0x003eccb4
0x5981e48: str x23,[sp, #0xe8]
0x5981e4c: ldr w8,[x22]
0x5981e50: mov w11,#0x8
0x5981e54: mov w9,#0xcccd
0x5981e58: movk w9,#0xcccc, LSL #16
0x5981e5c: mov w10,#0xfffffff6
0x5981e60: add x12,sp,#0x98
0x5981e64: str xzr,[sp, #0x98]
0x5981e68: umull x13,w8,w9
0x5981e6c: lsr x14,x13,#0x23
0x5981e70: madd w13,w14,w10,w8
0x5981e74: add w13,w13,#0x23
0x5981e78: ldrb w15,[x25, w13, UXTW ]
0x5981e7c: add x13,x11,#0x1
0x5981e80: strb w15,[x12, x11]
0x5981e84: mov x11,x13
0x5981e88: cmp w8,#0x9
0x5981e8c: mov x8,x14
0x5981e90: b.hi 0x05981e68
0x5981e94: add x8,sp,#0x98
0x5981e98: add x9,x8,x13
0x5981e9c: strb wzr,[x9], #-0x1
0x5981ea0: add x10,x8,#0x8
0x5981ea4: sub x11,x13,#0x1
0x5981ea8: cmp x11,#0x9
0x5981eac: b.cc 0x05981ed4
0x5981eb0: add x11,x8,#0x9
0x5981eb4: ldrb w12,[x9]
0x5981eb8: ldurb w13,[x11, #-0x1]
0x5981ebc: strb w13,[x9], #-0x1
0x5981ec0: sturb w12,[x11, #-0x1]
0x5981ec4: add x12,x11,#0x1
0x5981ec8: cmp x11,x9
0x5981ecc: mov x11,x12
0x5981ed0: b.cc 0x05981eb4
0x5981ed4: str x10,[sp, #0x98]
0x5981ed8: add x9,sp,#0x138
0x5981edc: add x10,sp,#0xe8
0x5981ee0: stp x9,x10,[x29, #-0xc8]
0x5981ee4: movi v0.2D,#0x0
0x5981ee8: stur q0,[x24, #0x18]
0x5981eec: stur q0,[x24, #0x28]
0x5981ef0: stur q0,[x24, #0x38]
0x5981ef4: stur q0,[x24, #0x48]
0x5981ef8: stur q0,[x24, #0x58]
0x5981efc: stur q0,[x24, #0x68]
0x5981f00: stur x8,[x29, #-0xb8]
0x5981f04: stur xzr,[x29, #-0x50]
0x5981f08: adrp x1,0x985a000
0x5981f0c: add x1,x1,#0x1ee
0x5981f10: add x0,sp,#0x8
0x5981f14: sub x2,x29,#0xc8
0x5981f18: bl 0x05e1d31c
0x5981f1c: add x0,sp,#0x8
0x5981f20: bl 0x05e1d19c
0x5981f24: mov x0,x20
0x5981f28: mov w1,#0x11
0x5981f2c: mov w2,#0x25
0x5981f30: mov w3,#0x1
0x5981f34: mov w4,#0x0
0x5981f38: bl 0x0597e100
0x5981f3c: cmp w21,#0x2
0x5981f40: b.ne 0x05981f5c
0x5981f44: mov x0,x20
0x5981f48: mov w1,#0x11
0x5981f4c: mov w2,#0x21
0x5981f50: mov w3,#0x1
0x5981f54: mov w4,#0x0
0x5981f58: bl 0x0597e100
0x5981f5c: ldr w8,[x19, #0x2c]
0x5981f60: orr w8,w8,#0x8
0x5981f64: str w8,[x19, #0x2c]
0x5981f68: str w21,[x19, #0x24]
0x5981f6c: ldur x8,[x29, #-0x48]
0x5981f70: adrp x9,0x9b36000
0x5981f74: ldr x9,[x9, #0xc98]
0x5981f78: ldr x9,[x9]
0x5981f7c: cmp x9,x8
0x5981f80: b.ne 0x05981fa4
0x5981f84: mov x0,x21
0x5981f88: add sp,sp,#0x210
0x5981f8c: ldp x29,x30,[sp, #0x40]
0x5981f90: ldp x20,x19,[sp, #0x30]
0x5981f94: ldp x22,x21,[sp, #0x20]
0x5981f98: ldp x24,x23,[sp, #0x10]
0x5981f9c: ldp x26,x25,[sp], #0x50
0x5981fa0: ret
0x5981fa4: bl 0x071401a4
== VT_SLOT20_5981fa8 ==
entry=0x5981fa8 end=0x598201b size=116

void FUN_05981fa8(undefined8 *param_1)

{
  undefined8 *puVar1;
  undefined8 *puVar2;
  
  puVar1 = (undefined8 *)__Znwm(0x48);
  puVar1[2] = 0;
  *puVar1 = &PTR_FUN_09f2e720;
  puVar1[1] = 0;
  puVar2 = puVar1 + 3;
  *puVar2 = &PTR_FUN_09f2e6d8;
  FUN_05a6b860(puVar1 + 4);
  *puVar2 = &PTR_FUN_09f2e770;
  *param_1 = puVar2;
  param_1[1] = puVar1;
  return;
}
-- full disasm --
0x5981fa8: stp x22,x21,[sp, #-0x30]!
0x5981fac: stp x20,x19,[sp, #0x10]
0x5981fb0: stp x29,x30,[sp, #0x20]
0x5981fb4: add x29,sp,#0x20
0x5981fb8: mov x19,x8
0x5981fbc: mov w0,#0x48
0x5981fc0: bl 0x07140030
0x5981fc4: mov x20,x0
0x5981fc8: str xzr,[x0, #0x10]
0x5981fcc: adrp x8,0x9f2e000
0x5981fd0: add x8,x8,#0x710
0x5981fd4: add x8,x8,#0x10
0x5981fd8: stp x8,xzr,[x0]
0x5981fdc: adrp x8,0x9f2e000
0x5981fe0: add x8,x8,#0x6c8
0x5981fe4: add x8,x8,#0x10
0x5981fe8: mov x21,x0
0x5981fec: str x8,[x21, #0x18]!
0x5981ff0: add x0,x0,#0x20
0x5981ff4: bl 0x05a6b860
0x5981ff8: adrp x8,0x9f2e000
0x5981ffc: add x8,x8,#0x760
0x5982000: add x8,x8,#0x10
0x5982004: str x8,[x21]
0x5982008: stp x21,x20,[x19]
0x598200c: ldp x29,x30,[sp, #0x20]
0x5982010: ldp x20,x19,[sp, #0x10]
0x5982014: ldp x22,x21,[sp], #0x30
0x5982018: ret
