Function at 0x1401a7570
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
mov r15d, dword [rdx + 0x14]
mov rax, qword [rcx + 0x20]
mov rcx, qword [rax + 8]
mov rcx, qword [rcx + 7]
sar rcx, 1
cmp qword [rsi + 0x30], rcx
jge 0x1401a762b
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
cmp eax, 0x3f
jne 0x1401a7648
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
cmp qword [rsi + 0x30], rax
jge case.0x1401a75f4.34
mov rcx, rsi
xor edx, edx
call fcn.1401a5aa0
add eax, 0xffffffdf
cmp eax, 0x1c
ja case.0x1401a75f4.34
lea rcx, [0x140318bfc]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x30]
inc rcx
mov qword [rsi + 0x30], rcx
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + 7]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a77e0
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
jmp 0x1401a77fd
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
mov rax, qword [rsi + 0x38]
cmp rax, 0xffff
jg 0x1401a79ec
inc rax
mov qword [rsi + 0x38], rax
mov ebp, 1
xor ebx, ebx
mov rdx, qword [rsi]
mov ecx, 0x28
call fcn.14010f5a0
mov r14, rax
mov rax, qword [rdi + 8]
mov r12d, dword [rax + 0xc]
mov rdx, qword [rsi]
mov rsi, qword [rsi + 0x38]
mov qword [r14], rdi
mov ecx, 0x80
call fcn.14010f5a0
mov ecx, dword [0x14039dea0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 0x18]
mov qword [rax], rdx
mov byte [rax + 8], 0
mov dword [rax + 0xc], r12d
mov qword [rax + 0x10], 0
mov word [rax + 0x18], 0
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 0x18]
xorps xmm0, xmm0
movups xmmword [rax + 0x20], xmm0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], rdx
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 0x18]
movups xmmword [rax + 0x40], xmm0
mov qword [rax + 0x50], 0
mov qword [rax + 0x58], rdx
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 0x18]
movups xmmword [rax + 0x60], xmm0
mov qword [rax + 0x70], 0
mov qword [rax + 0x78], rcx
mov qword [r14 + 8], rax
mov dword [r14 + 0x10], ebp
mov dword [r14 + 0x14], r15d
mov qword [r14 + 0x18], rsi
mov qword [r14 + 0x20], rbx
mov rax, r14
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x30]
inc rcx
mov qword [rsi + 0x30], rcx
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + 7]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a780a
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
jmp 0x1401a7827
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + 8]
mov rcx, qword [rcx + 7]
sar rcx, 1
cmp qword [rsi + 0x30], rcx
jge 0x1401a7831
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x30]
jmp 0x1401a784e
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x30]
inc rcx
mov qword [rsi + 0x30], rcx
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + 7]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a78a5
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
jmp 0x1401a78c2
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
xor r15d, r15d
mov ebp, 3
jmp 0x1401a7664
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
mov ebp, 4
jmp 0x1401a7664
mov dword [rsi + 0x28], 0x200000
mov rcx, qword [rax + 8]
mov rcx, qword [rcx + 7]
sar rcx, 1
inc rcx
mov qword [rsi + 0x30], rcx
mov byte [rsi + 0x48], 0
mov rdx, qword [rax + 8]
mov r8, qword [rdx + 7]
sar r8, 1
cmp rcx, r8
jge 0x1401a78d7
mov rcx, rsi
xor edx, edx
call fcn.1401a5aa0
mov rcx, qword [rsi + 0x30]
cmp eax, 0x3d
jne 0x1401a78cf
inc rcx
mov qword [rsi + 0x30], rcx
mov rax, qword [rsi + 0x20]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + 7]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a799c
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
mov r15d, 1
jmp 0x1401a78c5
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
xor r15d, r15d
mov ebp, 2
jmp 0x1401a7664
mov rax, qword [rsi + 0x20]
mov rdx, qword [rax + 8]
dec rdx
mov rdx, qword [rdx + 8]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a7934
mov rcx, rsi
xor edx, edx
call fcn.1401a5aa0
mov rcx, qword [rsi + 0x30]
cmp eax, 0x21
jne 0x1401a7930
inc rcx
mov qword [rsi + 0x30], rcx
mov rax, qword [rsi + 0x20]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + 7]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a79c4
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
mov r15d, 1
jmp 0x1401a7800
mov rax, qword [rsi + 0x20]
mov byte [rsi + 0x53], 1
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + 7]
sar rdx, 1
cmp rcx, rdx
jge 0x1401a7957
mov rcx, rsi
mov dl, 1
call fcn.1401a5aa0
mov dword [rsi + 0x28], eax
jmp 0x1401a7974
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
mov rax, qword [rsi + 0x38]
cmp rax, 0xffff
jg 0x1401a79ec
inc rax
mov qword [rsi + 0x38], rax
mov rcx, rsi
call fcn.1401a8f90
mov rbx, rax
mov ebp, 1
jmp 0x1401a7666
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
mov r15d, 1
jmp 0x1401a78c5
mov dword [rsi + 0x28], 0x200000
mov rax, qword [rax + 8]
mov rax, qword [rax + 7]
sar rax, 1
inc rax
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x48], 0
mov r15d, 1
jmp 0x1401a7800
lea rdx, str.Too_many_captures
mov rcx, rsi
call fcn.1401a5c80
lea rdx, str.Invalid_group
mov rcx, rsi
call fcn.1401a5c80
int3