Function at 0x50f300
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x68], rcx
mov rbp, qword [rdx]
cmp qword [rbp + 0x80], 0
jne 0x50fb0a
mov r14, rdx
lea rax, [rbp + 0x80]
mov qword [rsp + 0xa8], rax
mov qword [rbp + 0x80], 0xffffffffffffffff
mov qword [rbp + 0x98], 0
mov rax, qword [rbp + 0xb0]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rbp + 0xa0]
movaps xmmword [rsp + 0xb0], xmm0
mov byte [rsp + 0x2f], r8b
movsx rax, r8b
lea rcx, [0x005f74a8]
mov edi, dword [rcx + rax*4]
mov rbx, qword [rdx + 0x10]
mov rcx, rdx
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jb 0x50f3b6
add eax, 0xffffffbf
cmp eax, 0x25
ja 0x50fa45
movabs rcx, 0x3f0000003f
bt rcx, rax
jae 0x50fa45
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov r12d, eax
lea r15, [rbp + 0x88]
lea rsi, [rbp + 0xa0]
cmp eax, 0x80
jae 0x50f40c
mov rdx, qword [rbp + 0x98]
cmp rdx, qword [rbp + 0x90]
jne 0x50f3f5
mov rcx, r15
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h01b523edbfaf953b
mov rdx, qword [rbp + 0x98]
mov rax, qword [rbp + 0x88]
mov byte [rax + rdx], r12b
inc qword [rbp + 0x98]
jmp 0x50f4f7
mov dword [rsp + 0x30], 0
mov eax, r12d
cmp r12d, 0x800
jae 0x50f43e
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x30], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x31], r12b
mov r12d, 2
jmp 0x50f4ab
cmp r12d, 0x10000
jae 0x50f473
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x30], al
mov eax, r12d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x32], r12b
mov r12d, 3
jmp 0x50f4ab
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x30], al
mov eax, r12d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
mov eax, r12d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x32], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x33], r12b
mov r12d, 4
mov rax, qword [rbp + 0x90]
mov r13, qword [rbp + 0x98]
sub rax, r13
cmp rax, r12
jae 0x50f4d6
mov rcx, r15
mov rdx, r13
mov r8, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h08610b1eeaeac787
mov r13, qword [rbp + 0x98]
mov rcx, qword [rbp + 0x88]
add rcx, r13
lea rdx, [rsp + 0x30]
mov r8, r12
call sym.memcpy
add r13, r12
mov qword [rbp + 0x98], r13
dec edi
jmp 0x50f51a
mov rax, qword [rbp + 0x88]
mov byte [rax + rdx], r12b
inc qword [rbp + 0x98]
dec edi
je 0x50f6b1
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
test al, al
je 0x50f702
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump_space::h9fd4d579196de4c5
cmp qword [rsi], rbx
je 0x50f702
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jb 0x50f56b
add eax, 0xffffffbf
cmp eax, 0x25
ja 0x50fa45
movabs rcx, 0x3f0000003f
bt rcx, rax
jae 0x50fa45
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov r12d, eax
cmp eax, 0x80
jae 0x50f5b0
mov rdx, qword [rbp + 0x98]
cmp rdx, qword [rbp + 0x90]
jne 0x50f500
mov rcx, r15
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h01b523edbfaf953b
mov rdx, qword [rbp + 0x98]
jmp 0x50f500
mov dword [rsp + 0x30], 0
mov eax, r12d
cmp r12d, 0x800
jae 0x50f5f0
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x30], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x31], r12b
mov r12d, 2
jmp 0x50f65d
cmp r12d, 0x10000
jae 0x50f625
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x30], al
mov eax, r12d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x32], r12b
mov r12d, 3
jmp 0x50f65d
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x30], al
mov eax, r12d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
mov eax, r12d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x32], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x33], r12b
mov r12d, 4
mov rax, qword [rbp + 0x90]
mov r13, qword [rbp + 0x98]
sub rax, r13
cmp rax, r12
jae 0x50f688
mov rcx, r15
mov rdx, r13
mov r8, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h08610b1eeaeac787
mov r13, qword [rbp + 0x98]
mov rcx, qword [rbp + 0x88]
add rcx, r13
lea rdx, [rsp + 0x30]
mov r8, r12
call sym.memcpy
add r13, r12
mov qword [rbp + 0x98], r13
dec edi
jne 0x50f51a
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
test al, al
je 0x50f6c5
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump_space::h9fd4d579196de4c5
mov rax, qword [rbp + 0x98]
test rax, rax
je 0x50f92a
add al, byte [rax]
invalid
mov rcx, qword [rbp + 0x88]
movzx edx, byte [rcx]
cmp edx, 0x2d
je 0x50f7e5
cmp edx, 0x2b
jne 0x50f7ef
dec rax
je 0x50f92a
inc rcx
jmp 0x50f7ef
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x88], xmm0
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x80], rax
mov r14, qword [r14 + 8]
test rbx, rbx
je 0x50f77e
js 0x50fb35
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50f767
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50f9a6
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapAlloc
mov r15, rax
test rax, rax
jne 0x50f784
invalid
jmp 0x50f9a6
mov r15d, 1
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sym.memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
and al, 0x70
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 0xa
jmp 0x50fa1a
cmp rax, 1
je 0x50f92a
xor r8d, r8d
mov r9d, 0xffffffff
xor edx, edx
cmp rax, 9
jb 0x50f902
inc byte [rax]
add byte [rax], al
nop word cs:[rax + rax]
cmp rax, r8
je 0x50f85b
movzx r10d, byte [rcx + r8]
lea r11d, [r10 - 0x30]
cmp r11d, 0xa
jb case.0x4f729a.325
or r10d, 0x20
add r10d, 0xffffff9f
add r10d, 0xa
cmovb r10d, r9d
mov r11d, r10d
cmp r10d, 0xf
ja 0x50f92a
cmp edx, 0xfffffff
ja 0x50f92a
shl edx, 4
or edx, r11d
inc r8
cmp rax, r8
jne 0x50f815
mov eax, edx
xor eax, 0xd800
add byte [0x003ff867], al
cmp eax, 0xffef0800
jb 0x50f92a
cmp edx, 0x110000
je 0x50f92a
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x40], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x30], xmm0
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x58], rax
movups xmm1, xmmword [rsi]
movups xmmword [rsp + 0x48], xmm1
mov rcx, qword [rsp + 0x68]
movups xmmword [rcx + 8], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rcx + 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rcx + 0x30], rax
mov rax, qword [rsp + 0x40]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x20], rax
mov dword [rcx + 0x38], edx
mov byte [rcx + 0x3c], 4
movzx eax, byte [rsp + 0x2f]
mov byte [rcx + 0x3d], al
mov dword [rcx], 0x1f
jmp 0x50fa26
shl edx, 4
or edx, r11d
inc r8
cmp rax, r8
je 0x50f85b
movzx r10d, byte [rcx + r8]
lea r11d, [r10 - 0x30]
cmp r11d, 0xa
jb 0x50f8f0
or r10d, 0x20
add r10d, 0xffffff9f
add r10d, 0xa
cmovb r10d, r9d
mov r11d, r10d
cmp r10d, 0xf
jbe 0x50f8f0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x80], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x88], xmm0
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x98], rax
mov r14, qword [r14 + 8]
test rbx, rbx
je 0x50f9b8
js 0x50fb35
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50f994
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50f9a6
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapAlloc
mov r15, rax
test rax, rax
jne 0x50f9be
mov ecx, 1
mov rdx, rbx
call dbg.handle_alloc_error
jmp 0x50fb3a
mov r15d, 1
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sym.memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rcx + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 8
mov qword [rcx + 0x38], r15
mov qword [rcx + 0x40], rbx
mov qword [rcx + 0x48], rbx
mov rax, qword [rsp + 0xa8]
inc qword [rax]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x70]
mov rdx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::span_char::h4442de9d9c629cf7
invalid
dec dword [rbp - 0x75]
jbe 0x50fa5e
test rbx, rbx
je 0x50faa3
js 0x50fb35
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50fa8c
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50f9a6
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapAlloc
invalid
add byte [rcx - 0x77], cl
invalid
test rax, rax
jne 0x50faa9
jmp 0x50f9a6
mov r15d, 1
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sym.memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
movups xmmword [rcx + 4], xmm0
movups xmmword [rcx + 0x14], xmm1
movups xmmword [rcx + 0x24], xmm2
mov eax, dword [rsp + 0x60]
and al, 0x60
mov dword [rcx + 0x34], eax
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movups xmm2, xmmword [rsp + 0x90]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 9
jmp 0x50fa1a
lea rax, str._usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.7.5_src_ast_parse.rs
mov qword [rsp + 0x20], rax
lea rcx, str.already_borrowedlibrary_std_srcio_stdio.rs
push rbx
sbb al, 0xe
add byte [rbp + rcx*4 + 0xd], cl
xor al, 0x83
or byte [rax], al
lea r8, [rsp + 0x30]
mov edx, 0x10
call dbg.unwrap_failed
ud2
call sym.alloc::raw_vec::capacity_overflow::hb8123ef5e6b3b729
ud2