Function at 0x50eaf0
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, 0x108
mov byte [rsp + 0x2f], r8b
mov r12, qword [rdx]
cmp qword [r12 + 0x80], 0
jne 0x50f280
mov r14, rdx
mov rdi, rcx
lea rax, [r12 + 0x80]
mov qword [rsp + 0xa8], rax
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [r12 + 0xa0]
movaps xmmword [rsp + 0xb0], xmm0
lea rcx, [rsp + 0x30]
call sym.regex_syntax::ast::parse::ParserI_P_::span_char::h4442de9d9c629cf7
lea r15, [r12 + 0x88]
lea rsi, [r12 + 0xa0]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0xd0], xmm0
mov rbx, qword [r14 + 0x10]
jmp 0x50ebdb
mov rbp, qword [r12 + 0x98]
mov rcx, qword [r12 + 0x88]
add rcx, rbp
lea rdx, [rsp + 0x30]
mov r8, r13
call sym.memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
test al, al
je 0x50ed6c
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump_space::h9fd4d579196de4c5
cmp qword [rsi], rbx
je 0x50ed6c
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
cmp eax, 0x7d
je 0x50ed6c
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jb 0x50ec3d
add eax, 0xffffffbf
cmp eax, 0x25
ja 0x50f228
movabs rcx, 0x3f0000003f
bt rcx, rax
jae 0x50f228
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov r13d, eax
cmp eax, 0x80
jae 0x50ec90
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x90]
jne 0x50ec71
mov rcx, r15
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h01b523edbfaf953b
mov rdx, qword [r12 + 0x98]
mov rax, qword [r12 + 0x88]
mov byte [rax + rdx], r13b
inc qword [r12 + 0x98]
jmp 0x50ebdb
mov dword [rsp + 0x30], 0
mov eax, r13d
cmp r13d, 0x800
jae 0x50ecd0
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x30], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x31], r13b
mov r13d, 2
jmp 0x50ed3d
cmp r13d, 0x10000
jae 0x50ed05
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x30], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x32], r13b
mov r13d, 3
jmp 0x50ed3d
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x30], al
mov eax, r13d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x32], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x33], r13b
mov r13d, 4
mov rax, qword [r12 + 0x90]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jae 0x50ebb8
mov rcx, r15
mov rdx, rbp
mov r8, r13
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h08610b1eeaeac787
jmp 0x50ebb0
cmp qword [rsi], rbx
jne 0x50ee02
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x88], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x80], rax
mov r14, qword [r14 + 8]
test rbx, rbx
je 0x50ee82
js 0x50f2ab
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50ede7
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50f12f
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 0x50ee88
jmp 0x50f12f
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x100], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0xf0], xmm0
mov r15, qword [r12 + 0x88]
mov r12, qword [r12 + 0x98]
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov dword [rsp + 0x70], eax
cmp eax, 0x7d
jne 0x50f2b2
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
test al, al
je 0x50ee52
mov rcx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::bump_space::h9fd4d579196de4c5
test r12, r12
je 0x50eee4
movzx eax, byte [r15]
cmp eax, 0x2d
je 0x50ef71
cmp eax, 0x2b
jne 0x50ef7b
dec r12
je 0x50f0aa
inc r15
jmp 0x50ef7b
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]
movups xmmword [rdi + 4], xmm0
movups xmmword [rdi + 0x14], xmm1
movups xmmword [rdi + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rdi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x70], xmm2
movups xmmword [rdi + 0x60], xmm1
movups xmmword [rdi + 0x50], xmm0
mov dword [rdi], 0xa
jmp 0x50f1fd
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x88], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x80], rax
mov r14, qword [r14 + 8]
test rbx, rbx
je 0x50f1a0
js 0x50f2ab
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50ef56
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50f12f
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 0x50f1a6
jmp 0x50f12f
cmp r12, 1
je 0x50f0aa
xor ecx, ecx
mov edx, 0xffffffff
xor eax, eax
cmp r12, 9
jb 0x50f082
nop
cmp r12, rcx
je 0x50efda
movzx r8d, byte [r15 + rcx]
lea r9d, [r8 - 0x30]
cmp r9d, 0xa
jb 0x50efc1
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, edx
mov r9d, r8d
cmp r8d, 0xf
ja 0x50f0aa
cmp eax, 0xfffffff
ja 0x50f0aa
shl eax, 4
or eax, r9d
inc rcx
cmp r12, rcx
jne 0x50ef95
mov ecx, eax
xor ecx, 0xd800
add ecx, 0xffef0000
cmp ecx, 0xffef0800
jb 0x50f0aa
cmp eax, 0x110000
je 0x50f0aa
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x58], rcx
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x48], xmm0
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0x40], rcx
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x30], xmm0
movups xmmword [rdi + 8], xmm0
mov rcx, qword [rsp + 0x50]
mov qword [rdi + 0x28], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rdi + 0x30], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rdi + 0x18], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rdi + 0x20], rcx
mov dword [rdi + 0x38], eax
mov byte [rdi + 0x3c], 5
movzx eax, byte [rsp + 0x2f]
mov byte [rdi + 0x3d], al
mov dword [rdi], 0x1f
jmp 0x50f209
shl eax, 4
or eax, r9d
inc rcx
cmp r12, rcx
je 0x50efda
movzx r8d, byte [r15 + rcx]
lea r9d, [r8 - 0x30]
cmp r9d, 0xa
jb 0x50f070
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, edx
mov r9d, r8d
cmp r8d, 0xf
jbe 0x50f070
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x80], rax
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x88], xmm0
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x98], rax
mov r14, qword [r14 + 8]
test rbx, rbx
je 0x50f141
js 0x50f2ab
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x50f11d
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x50f12f
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 0x50f147
mov ecx, 1
mov rdx, rbx
call dbg.handle_alloc_error
jmp 0x50f2d8
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]
movups xmmword [rdi + 4], xmm0
movups xmmword [rdi + 0x14], xmm1
movups xmmword [rdi + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rdi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x70], xmm2
movups xmmword [rdi + 0x60], xmm1
movups xmmword [rdi + 0x50], xmm0
mov dword [rdi], 8
jmp 0x50f1fd
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]
movups xmmword [rdi + 4], xmm0
movups xmmword [rdi + 0x14], xmm1
movups xmmword [rdi + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rdi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x70], xmm2
movups xmmword [rdi + 0x60], xmm1
movups xmmword [rdi + 0x50], xmm0
mov dword [rdi], 7
mov qword [rdi + 0x38], r15
mov qword [rdi + 0x40], rbx
mov qword [rdi + 0x48], rbx
mov rax, qword [rsp + 0xa8]
inc qword [rax]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x30]
mov rdx, r14
call sym.regex_syntax::ast::parse::ParserI_P_::span_char::h4442de9d9c629cf7
mov r12, qword [r14 + 8]
mov rcx, rbx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h3de7286e9c671466
mov r14, rax
mov r15, rdx
mov rcx, rax
mov rdx, r12
mov r8, rbx
call sym.memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x60], xmm1
movups xmmword [rdi + 0x70], xmm2
mov dword [rdi], 9
mov qword [rdi + 0x38], r14
mov qword [rdi + 0x40], r15
jmp 0x50f205
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
lea r9, dbg.drop_in_place____
lea r8, [rsp + 0x30]
mov edx, 0x10
call dbg.unwrap_failed
ud2
call sym.alloc::raw_vec::capacity_overflow::hb8123ef5e6b3b729
jmp 0x50f2d8
mov qword [rsp + 0x30], 0
lea rdx, [0x00598680]
lea r9, str._usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.7.5_src_ast_parse.rs
lea rcx, [rsp + 0x70]
lea r8, [rsp + 0x30]
call sym.core::panicking::assert_failed::h05ae35143ac6d6b4
ud2