Function at 0x14004db72
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
mov rax, qword [rsp + 0x208]
mov esi, dword [rsp + 0x220]
mov rbp, qword [rsp + 0x200]
mov rbx, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x218]
mov dword [rsp + 0xe8], esi
mov rsi, qword [rax]
mov r12, r8
mov r15, rcx
mov qword [rsp + 0x1f8], r9
mov r14, rdx
or r8, 0xffffffffffffffff
mov qword [rsp + 0x70], rsi
mov rsi, qword [rax + 8]
mov dword [rsp + 0x14c], 0xffffffff
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xc8], rax
mov al, byte [rsp + 0xe8]
and eax, 0x10
mov byte [rsp + 0xee], al
test rbp, rbp
je 0x14004dc11
mov rax, qword [rbp]
lea r8, [rax - 1]
lea rcx, [rsp + 0x130]
xor edx, edx
call sym.dotdot___pureZunicode_840_3
mov rax, qword [rsp + 0x138]
lea r8, [rdi - 1]
mov dword [rsp + 0x80], 0xffffffff
cmp r8, qword [rsp + 0x130]
jl 0x14004dc62
cmp r8, rax
jg 0x14004dc62
mov rdx, r8
mov rcx, rbp
mov qword [rsp + 0x68], r8
call sym.bwRuneAt__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZcommon_42
mov r8, qword [rsp + 0x68]
mov dword [rsp + 0x80], eax
mov rax, qword [r15]
mov rdx, rdi
lea rcx, [rsp + 0x168]
mov word [rsp + 0x160], 0
mov word [rax + 0x10], 0
mov rax, qword [rsp + 0x1f8]
mov eax, dword [rax]
mov dword [rsp + 0x164], eax
call sym.dotdot___pureZunicode_840_3
movaps xmm1, xmmword [rsp + 0x160]
mov rax, qword [rsp + 0x170]
mov rcx, r15
lea rdx, [rsp + 0x110]
mov qword [rsp + 0x120], rax
movaps xmmword [rsp + 0x110], xmm1
call sym.add__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_851
xor eax, eax
test rbp, rbp
je 0x14004dcd1
mov rax, qword [rbp]
cmp rdi, rax
jge 0x14004e739
mov al, byte [rbp + rdi + 0x10]
lea rsi, [rdi + 1]
mov qword [rsp + 0x68], rsi
movsx esi, al
test al, al
jns 0x14004decb
mov edx, eax
shr dl, 5
cmp dl, 6
je 0x14004dd08
mov edx, eax
shr dl, 4
cmp dl, 0xe
jne 0x14004dd3e
jmp 0x14004dd4a
mov rsi, qword [rbp]
lea rdx, [rsi - 2]
mov esi, 0xfffd
cmp rdi, rdx
jg 0x14004decb
mov rsi, qword [rsp + 0x68]
shl eax, 6
and eax, 0x7c0
mov sil, byte [rbp + rsi + 0x10]
and esi, 0x3f
or esi, eax
lea rax, [rdi + 2]
jmp 0x14004dec6
mov edx, eax
shr dl, 3
cmp dl, 0x1e
jne 0x14004dd90
jmp 0x14004dd9c
mov rsi, qword [rbp]
lea rdx, [rsi - 3]
mov esi, 0xfffd
cmp rdi, rdx
jg 0x14004decb
mov sil, byte [rbp + rdi + 0x12]
shl eax, 0xc
and eax, 0xf000
and esi, 0x3f
or esi, eax
mov rax, qword [rsp + 0x68]
movzx edx, byte [rbp + rax + 0x10]
lea rax, [rdi + 3]
shl edx, 6
and edx, 0xfc0
or esi, edx
jmp 0x14004dec6
mov edx, eax
shr dl, 2
cmp dl, 0x3e
jne 0x14004ddf0
jmp 0x14004de02
mov rsi, qword [rbp]
lea rdx, [rsi - 4]
mov esi, 0xfffd
cmp rdi, rdx
jg 0x14004decb
mov sil, byte [rbp + rdi + 0x13]
shl eax, 0x12
and eax, 0x1c0000
and esi, 0x3f
or esi, eax
mov rax, qword [rsp + 0x68]
movzx eax, byte [rbp + rax + 0x10]
shl eax, 0xc
and eax, 0x3f000
or esi, eax
movzx eax, byte [rbp + rdi + 0x12]
shl eax, 6
and eax, 0xfc0
or esi, eax
lea rax, [rdi + 4]
jmp 0x14004dec6
mov edx, eax
movzx esi, al
shr dl, 1
cmp dl, 0x7e
jne 0x14004decb
jmp 0x14004de62
mov rsi, qword [rbp]
lea rdx, [rsi - 5]
mov esi, 0xfffd
cmp rdi, rdx
jg 0x14004decb
mov sil, byte [rbp + rdi + 0x14]
shl eax, 0x18
and eax, 0x3000000
and esi, 0x3f
or esi, eax
mov rax, qword [rsp + 0x68]
movzx eax, byte [rbp + rax + 0x10]
shl eax, 0x12
and eax, 0xfc0000
or esi, eax
movzx eax, byte [rbp + rdi + 0x12]
shl eax, 0xc
and eax, 0x3f000
or esi, eax
movzx eax, byte [rbp + rdi + 0x13]
shl eax, 6
and eax, 0xfc0
or esi, eax
lea rax, [rdi + 5]
jmp 0x14004dec6
mov rsi, qword [rbp]
lea rdx, [rsi - 6]
mov esi, 0xfffd
cmp rdi, rdx
jg 0x14004decb
mov sil, byte [rbp + rdi + 0x15]
shl eax, 0x1e
and esi, 0x3f
or esi, eax
mov rax, qword [rsp + 0x68]
movzx eax, byte [rbp + rax + 0x10]
shl eax, 0x18
and eax, 0x3f000000
or esi, eax
movzx eax, byte [rbp + rdi + 0x12]
shl eax, 0x12
and eax, 0xfc0000
or esi, eax
movzx eax, byte [rbp + rdi + 0x13]
shl eax, 0xc
and eax, 0x3f000
or esi, eax
movzx eax, byte [rbp + rdi + 0x14]
shl eax, 6
and eax, 0xfc0
or esi, eax
lea rax, [rdi + 6]
mov qword [rsp + 0x68], rax
mov rax, qword [r14]
lea rcx, [rsp + 0x150]
mov edx, 0x10
mov word [rax + 0x10], 0
call sym.nimZeroMem_8
mov rax, qword [r15]
mov qword [rsp + 0x98], 0
movsx rax, word [rax + 0x10]
mov qword [rsp + 0xd0], rax
mov rdx, qword [r15]
mov rcx, qword [rsp + 0xd0]
cmp qword [rsp + 0x98], rcx
jge 0x14004e6d1
imul rax, qword [rsp + 0x98], 0x18
add rax, qword [rdx]
mov edx, dword [rax + 0x14]
mov r9d, dword [rax + 0x10]
cmp byte [rsp + 0xee], 0
mov dword [rsp + 0x90], edx
mov rdx, qword [rax + 0x18]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x150], rdx
movsx rdx, r9w
mov qword [rsp + 0x158], rax
je 0x14004df76
mov rcx, qword [rsp + 0x70]
movsxd rax, edx
shl rax, 7
cmp byte [rcx + rax + 0x10], 0x2d
je 0x14004dfa1
mov rcx, qword [rsp + 0x70]
mov rax, rdx
shl rax, 7
mov rax, qword [rcx + rax + 0x18]
mov qword [rsp + 0xa0], rax
test rax, rax
jne 0x14004e00d
inc qword [rsp + 0x98]
jmp 0x14004df02
mov rcx, qword [r14]
call sym.hasState__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_847
test al, al
jne 0x14004e6d1
mov eax, dword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0x150]
mov rcx, r14
mov word [rsp + 0x178], r9w
lea rdx, [rsp + 0x110]
mov dword [rsp + 0x17c], eax
movups xmmword [rsp + 0x180], xmm2
movups xmm3, xmmword [rsp + 0x178]
mov rax, qword [rsp + 0x188]
movaps xmmword [rsp + 0x110], xmm3
mov qword [rsp + 0x120], rax
call sym.add__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_851
jmp 0x14004e6d1
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x78], 0
mov rax, qword [rax]
mov qword [rsp + 0xd8], rax
lea rax, [rdx + 2]
mov qword [rsp + 0xe0], rax
mov rcx, qword [r14]
mov rdx, qword [rsp + 0xd8]
cmp qword [rsp + 0x78], rdx
jge 0x14004df94
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0xa0]
movsx r13d, word [rax + rdx*2 + 0x10]
mov word [rsp + 0x84], r13w
mov edx, r13d
call sym.hasState__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_847
test al, al
jne 0x14004e6c7
movsx rax, word [rsp + 0x84]
mov rdx, qword [rsp + 0x70]
shl rax, 7
lea rcx, [rdx + rax + 0x10]
mov edx, esi
call sym.match__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnodematch_129
test al, al
jne 0x14004e0bf
cmp byte [rsp + 0xee], 0
je 0x14004e6c7
mov rax, qword [rsp + 0x70]
movsxd r13, r13d
shl r13, 7
cmp byte [rax + r13 + 0x10], 0x2d
jne 0x14004e6c7
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x78]
mov rax, qword [rax + rcx*8]
movsx rax, word [rax + rdx*2 + 0x10]
cmp ax, 0xffff
je 0x14004e112
mov rdx, qword [rsp + 0xc8]
mov ecx, dword [rsp + 0x90]
mov r13, qword [rdx + rax*8 + 0x10]
mov dword [rsp + 0x14c], ecx
test r13, r13
jne 0x14004e15d
mov qword [rsp + 0xb8], 0
jmp 0x14004e169
mov eax, dword [rsp + 0x84]
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x180]
lea r8, [rdi - 1]
mov word [rsp + 0x178], ax
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x17c], eax
call sym.dotdot___pureZunicode_840_3
movups xmm4, xmmword [rsp + 0x178]
movaps xmmword [rsp + 0x110], xmm4
jmp 0x14004e6a7
mov rax, qword [r13]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xb0], 0
add r13, 0x10
mov r8b, 1
mov rcx, qword [rsp + 0xb8]
cmp qword [rsp + 0xb0], rcx
jge 0x14004e65c
test r8b, r8b
je 0x14004e6c7
mov cl, byte [r13]
cmp cl, 0x1d
ja 0x14004e261
cmp cl, 0x1b
ja 0x14004e26e
cmp cl, 4
ja 0x14004e255
cmp cl, 2
jbe 0x14004e62f
lea rcx, [rsp + 0x178]
mov edx, 0x18
mov byte [rsp + 0xa8], r8b
call sym.nimZeroMem_8
mov eax, dword [rsp + 0x14c]
mov rdx, qword [0x140179500]
mov qword [rsp + 0x180], rdi
mov rcx, qword [r12]
mov dword [rsp + 0x178], eax
mov eax, dword [r13 + 0x14]
mov word [rsp + 0x188], ax
call sym.incrSeqV3
mov rcx, r12
mov rdx, rax
call sym.unsureAsgnRef
mov rax, qword [r12]
movups xmm5, xmmword [rsp + 0x178]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
imul rcx, rcx, 0x18
mov qword [rax], rdx
dec edx
mov dword [rsp + 0x14c], edx
add rax, rcx
mov rcx, qword [rsp + 0x188]
movups xmmword [rax + 0x10], xmm5
mov qword [rax + 0x20], rcx
jmp 0x14004e643
lea eax, [rcx - 0xa]
cmp al, 7
jbe 0x14004e26e
jmp 0x14004e62f
sub ecx, 0x28
cmp cl, 3
jbe 0x14004e285
jmp 0x14004e62f
mov edx, dword [rsp + 0x80]
mov r8d, esi
call sym.match__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnodematch_49.isra.0
mov r8d, eax
jmp 0x14004e64b
cmp byte [r13 + 0x78], 1
sbb eax, eax
and eax, 0xffffffc0
add eax, 0x50
mov byte [rsp + 0xef], al
lea rax, [rbx + 0x20]
mov rcx, rax
mov qword [rsp + 0xa8], rax
call sym.grow__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_940
mov rcx, qword [r13 + 0x58]
xor edx, edx
mov al, byte [rsp + 0xef]
test rcx, rcx
je 0x14004e2c2
mov rdx, qword [rcx]
mov rcx, qword [rbx + 0x28]
mov byte [rsp + 0xef], al
shl rcx, 4
add rcx, qword [rbx + 0x20]
call sym.setLen__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_909
mov dl, byte [r13]
movzx eax, byte [rsp + 0xef]
cmp dl, 0x2a
je 0x14004e3c2
ja 0x14004e304
cmp dl, 0x28
je 0x14004e312
cmp dl, 0x29
je 0x14004e476
jmp 0x14004e601
cmp dl, 0x2b
je 0x14004e53d
jmp 0x14004e601
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
mov r8, qword [rbx + 8]
movups xmm0, xmmword [r13 + 0x58]
shl r9, 4
mov r10, qword [rbx]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004e380
mov r9, qword [r13 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004e3ba
mov r8, qword [r13 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
mov r8d, eax
jmp 0x14004e610
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
mov r8, qword [rbx + 8]
movups xmm0, xmmword [r13 + 0x58]
shl r9, 4
mov r10, qword [rbx]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004e430
mov r9, qword [r13 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004e46a
mov r8, qword [r13 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
mov r8d, eax
xor r8d, 1
jmp 0x14004e610
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
mov r8, qword [rbx + 0x18]
movups xmm0, xmmword [r13 + 0x58]
shl r9, 4
mov r10, qword [rbx + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004e4ee
mov r9, qword [r13 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x50], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004e531
mov r8, qword [r13 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
inc rax
setne r8b
jmp 0x14004e610
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
mov r8, qword [rbx + 0x18]
movups xmm0, xmmword [r13 + 0x58]
shl r9, 4
mov r10, qword [rbx + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004e5b5
mov r9, qword [r13 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x50], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004e5f8
mov r8, qword [r13 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
inc rax
sete r8b
jmp 0x14004e610
lea rcx, [0x140160100]
call sym.failedAssertImpl__systemZassertions_56
xor r8d, r8d
mov rcx, qword [rsp + 0xa8]
mov byte [rsp + 0xef], r8b
call sym.removeLast__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_965
mov r8b, byte [rsp + 0xef]
jmp 0x14004e64b
lea rcx, [0x140160080]
mov byte [rsp + 0xa8], r8b
call sym.failedAssertImpl__systemZassertions_56
mov r8b, byte [rsp + 0xa8]
inc qword [rsp + 0xb0]
sub r13, 0xffffffffffffff80
jmp 0x14004e17c
test r8b, r8b
je 0x14004e6c7
mov eax, dword [rsp + 0x84]
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x180]
lea r8, [rdi - 1]
mov word [rsp + 0x178], ax
mov eax, dword [rsp + 0x14c]
mov dword [rsp + 0x17c], eax
call sym.dotdot___pureZunicode_840_3
movups xmm1, xmmword [rsp + 0x178]
movaps xmmword [rsp + 0x110], xmm1
mov rax, qword [rsp + 0x188]
lea rdx, [rsp + 0x110]
mov rcx, r14
mov qword [rsp + 0x120], rax
call sym.add__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_851
inc qword [rsp + 0x78]
jmp 0x14004e035
mov r13, qword [r15]
mov rdx, qword [r14]
mov rcx, r15
call sym.unsureAsgnRef
mov rdx, r13
mov rcx, r14
call sym.unsureAsgnRef
mov rdx, qword [r15]
cmp word [rdx + 0x10], 0
je 0x14004ef3b
cmp byte [rsp + 0xee], 0
jne 0x14004e713
mov dword [rsp + 0x80], esi
mov rdi, qword [rsp + 0x68]
jmp 0x14004dcc6
lea rcx, [rsp + 0x178]
call sym.X5BX5D___OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_840.constprop.0
mov rdx, qword [rsp + 0x70]
movsx rax, word [rsp + 0x178]
shl rax, 7
cmp byte [rdx + rax + 0x10], 0x2d
jne 0x14004e702
mov rax, qword [r14]
lea rcx, [rsp + 0x150]
mov edx, 0x10
mov word [rax + 0x10], 0
call sym.nimZeroMem_8
mov rax, qword [r15]
mov qword [rsp + 0x78], 0
movsx rax, word [rax + 0x10]
mov qword [rsp + 0xd0], rax
mov rdx, qword [r15]
mov rsi, qword [rsp + 0xd0]
cmp qword [rsp + 0x78], rsi
jge 0x14004eec2
imul rax, qword [rsp + 0x78], 0x18
add rax, qword [rdx]
mov esi, dword [rax + 0x14]
movsx edx, word [rax + 0x10]
cmp byte [rsp + 0xee], 0
mov dword [rsp + 0x84], esi
mov rsi, qword [rax + 0x18]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x150], rsi
mov qword [rsp + 0x158], rax
je 0x14004e7d7
mov rsi, qword [rsp + 0x70]
movsxd rax, edx
shl rax, 7
cmp byte [rsi + rax + 0x10], 0x2d
je 0x14004e802
movsxd rdx, edx
mov rsi, qword [rsp + 0x70]
mov rax, rdx
shl rax, 7
mov rax, qword [rsi + rax + 0x18]
mov qword [rsp + 0x90], rax
test rax, rax
jne 0x14004e86d
inc qword [rsp + 0x78]
jmp 0x14004e76d
mov rcx, qword [r14]
call sym.hasState__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_847
test al, al
jne 0x14004eec2
mov eax, dword [rsp + 0x84]
movaps xmm2, xmmword [rsp + 0x150]
mov word [rsp + 0x178], dx
mov rcx, r14
lea rdx, [rsp + 0x110]
mov dword [rsp + 0x17c], eax
movups xmmword [rsp + 0x180], xmm2
movups xmm3, xmmword [rsp + 0x178]
mov rax, qword [rsp + 0x188]
movaps xmmword [rsp + 0x110], xmm3
mov qword [rsp + 0x120], rax
call sym.add__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_851
jmp 0x14004eec2
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x68], 0
mov rax, qword [rax]
mov qword [rsp + 0xb8], rax
lea rax, [rdx + 2]
mov qword [rsp + 0xd8], rax
mov rcx, qword [r14]
mov rsi, qword [rsp + 0xb8]
cmp qword [rsp + 0x68], rsi
jge 0x14004e7f8
mov rax, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x68]
movsx edx, word [rax + rsi*2 + 0x10]
mov word [rsp + 0x98], dx
call sym.hasState__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_847
test al, al
jne 0x14004eeb8
mov rax, qword [rsp + 0x70]
movsxd rdx, edx
shl rdx, 7
cmp byte [rax + rdx + 0x10], 0x2d
jne 0x14004eeb8
mov rsi, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + rsi*8]
mov rsi, qword [rsp + 0x68]
movsx rax, word [rax + rsi*2 + 0x10]
cmp ax, 0xffff
je 0x14004e93c
mov esi, dword [rsp + 0x84]
mov dword [rsp + 0x14c], esi
mov rsi, qword [rsp + 0xc8]
mov rsi, qword [rsi + rax*8 + 0x10]
test rsi, rsi
jne 0x14004e987
mov qword [rsp + 0xb0], 0
jmp 0x14004e992
mov eax, dword [rsp + 0x98]
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x180]
lea r8, [rdi - 1]
mov word [rsp + 0x178], ax
mov eax, dword [rsp + 0x84]
mov dword [rsp + 0x17c], eax
call sym.dotdot___pureZunicode_840_3
movups xmm4, xmmword [rsp + 0x178]
movaps xmmword [rsp + 0x110], xmm4
jmp 0x14004ee98
mov rax, qword [rsi]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xa8], 0
add rsi, 0x10
mov r13b, 1
mov rcx, qword [rsp + 0xb0]
cmp qword [rsp + 0xa8], rcx
jge 0x14004ee4d
test r13b, r13b
je 0x14004eeb8
mov cl, byte [rsi]
cmp cl, 0x1d
ja 0x14004ea7f
cmp cl, 0x1b
ja 0x14004ea8c
cmp cl, 4
ja 0x14004ea73
cmp cl, 2
jbe 0x14004ee30
lea rcx, [rsp + 0x178]
mov edx, 0x18
call sym.nimZeroMem_8
mov eax, dword [rsp + 0x14c]
mov rdx, qword [0x140179500]
mov qword [rsp + 0x180], rdi
mov rcx, qword [r12]
mov dword [rsp + 0x178], eax
mov eax, dword [rsi + 0x14]
mov word [rsp + 0x188], ax
call sym.incrSeqV3
mov rcx, r12
mov rdx, rax
call sym.unsureAsgnRef
mov rax, qword [r12]
movups xmm5, xmmword [rsp + 0x178]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
imul rcx, rcx, 0x18
mov qword [rax], rdx
dec edx
mov dword [rsp + 0x14c], edx
add rax, rcx
mov rcx, qword [rsp + 0x188]
movups xmmword [rax + 0x10], xmm5
mov qword [rax + 0x20], rcx
jmp 0x14004ee3c
lea eax, [rcx - 0xa]
cmp al, 7
jbe 0x14004ea8c
jmp 0x14004ee30
sub ecx, 0x28
cmp cl, 3
jbe 0x14004eaa4
jmp 0x14004ee30
mov edx, dword [rsp + 0x80]
or r8d, 0xffffffff
call sym.match__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnodematch_49.isra.0
mov r13d, eax
jmp 0x14004ee3c
lea rax, [rbx + 0x20]
cmp byte [rsi + 0x78], 1
mov rcx, rax
sbb r13d, r13d
mov qword [rsp + 0xa0], rax
call sym.grow__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_940
mov rcx, qword [rsi + 0x58]
and r13d, 0xffffffc0
xor edx, edx
add r13d, 0x50
test rcx, rcx
je 0x14004ead5
mov rdx, qword [rcx]
mov rcx, qword [rbx + 0x28]
shl rcx, 4
add rcx, qword [rbx + 0x20]
call sym.setLen__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_909
mov dl, byte [rsi]
cmp dl, 0x2a
je 0x14004ebc7
ja 0x14004eb06
cmp dl, 0x28
je 0x14004eb14
cmp dl, 0x29
je 0x14004ec81
jmp 0x14004ee12
cmp dl, 0x2b
je 0x14004ed4b
jmp 0x14004ee12
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
movzx eax, r13b
mov r8, qword [rbx + 8]
movups xmm0, xmmword [rsi + 0x58]
shl r9, 4
mov r10, qword [rbx]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004eb85
mov r9, qword [rsi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004ebbf
mov r8, qword [rsi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
mov r13d, eax
jmp 0x14004ee21
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
movzx eax, r13b
mov r8, qword [rbx + 8]
movups xmm0, xmmword [rsi + 0x58]
shl r9, 4
mov r10, qword [rbx]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004ec38
mov r9, qword [rsi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004ec72
mov r8, qword [rsi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
mov r8d, eax
xor r8d, 1
mov r13d, r8d
jmp 0x14004ee21
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
movzx eax, r13b
mov r8, qword [rbx + 0x18]
movups xmm0, xmmword [rsi + 0x58]
shl r9, 4
mov r10, qword [rbx + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004ecfc
mov r9, qword [rsi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x50], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004ed3f
mov r8, qword [rsi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
inc rax
setne r13b
jmp 0x14004ee21
mov r9, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
movzx eax, r13b
mov r8, qword [rbx + 0x18]
movups xmm0, xmmword [rsi + 0x58]
shl r9, 4
mov r10, qword [rbx + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xf0], xmm0
je 0x14004edc6
mov r9, qword [rsi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x50], r8
mov r8, r12
mov qword [rsp + 0x100], r9
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
jmp 0x14004ee09
mov r8, qword [rsi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xf0]
lea r9, [rsp + 0x14c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x100], r8
mov r8, r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call r10
inc rax
sete r13b
jmp 0x14004ee21
lea rcx, [0x140160100]
xor r13d, r13d
call sym.failedAssertImpl__systemZassertions_56
mov rcx, qword [rsp + 0xa0]
call sym.removeLast__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_965
jmp 0x14004ee3c
lea rcx, [0x140160080]
call sym.failedAssertImpl__systemZassertions_56
inc qword [rsp + 0xa8]
sub rsi, 0xffffffffffffff80
jmp 0x14004e9a5
test r13b, r13b
je 0x14004eeb8
mov eax, dword [rsp + 0x98]
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x180]
lea r8, [rdi - 1]
mov word [rsp + 0x178], ax
mov eax, dword [rsp + 0x14c]
mov dword [rsp + 0x17c], eax
call sym.dotdot___pureZunicode_840_3
movups xmm1, xmmword [rsp + 0x178]
movaps xmmword [rsp + 0x110], xmm1
mov rax, qword [rsp + 0x188]
lea rdx, [rsp + 0x110]
mov rcx, r14
mov qword [rsp + 0x120], rax
call sym.add__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_851
inc qword [rsp + 0x68]
jmp 0x14004e895
mov r13, qword [r15]
mov rdx, qword [r14]
mov rcx, r15
call sym.unsureAsgnRef
mov rdx, r13
mov rcx, r14
call sym.unsureAsgnRef
mov rdx, qword [r15]
cmp word [rdx + 0x10], 0
jle 0x14004ef2e
test byte [rsp + 0xe8], 0x40
lea rcx, [rsp + 0x178]
jne 0x14004ef05
call sym.X5BX5D___OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_840.constprop.0
mov eax, dword [rsp + 0x17c]
jmp 0x14004ef24
call sym.X5BX5D___OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_840.constprop.0
mov rax, qword [rsp + 0x1f8]
mov edx, dword [rsp + 0x17c]
mov rcx, r12
mov r8d, dword [rax]
call sym.reverse__OOZOOZOOZOnimbleZpkgsZregex4548O4957O48ZregexZnfatype_175
mov rdi, qword [rsp + 0x1f8]
mov dword [rdi], eax
mov rax, qword [r15]
cmp word [rax + 0x10], 0
setg al
jmp 0x14004ef3d
xor eax, eax
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret