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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x1c0
movaps xmmword [rsp + 0x1b0], xmm6
mov rdi, rdx
mov rsi, rcx
mov rcx, rdx
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov dword [rsp + 0xc0], eax
cmp eax, 0x5c
jne 0x5021a3
mov r15, qword [rdi]
lea r14, [r15 + 0xa0]
mov rax, qword [r15 + 0xb0]
mov qword [rsp + 0xb0], rax
movups xmm0, xmmword [r15 + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
test al, al
je 0x5018f7
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::char::he775882ffd4838f2
mov ebx, eax
and eax, 0x1ffff8
cmp eax, 0x30
jne 0x501986
cmp byte [r15 + 0xc1], 0
je 0x501acb
lea rcx, [rsp + 0x20]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::parse_octal::hd64bf620c495b5c3
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x38], rax
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x28], xmm1
movups xmmword [rsi + 8], xmm0
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x18], rax
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x20], rax
mov byte [rsi + 0x70], 2
jmp 0x501ac0
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x38], xmm0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x20], xmm0
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
test rdi, rdi
je 0x501a13
js 0x501c82
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x501961
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x501977
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x501a19
mov ecx, 1
mov rdx, rdi
call dbg.handle_alloc_error
ud2
mov eax, ebx
and eax, 0x1ffffe
cmp eax, 0x38
jne 0x501a4d
cmp byte [r15 + 0xc1], 0
je 0x501c28
mov rcx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::bump::h12d6e77a732c0d9e
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x38], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rax
mov ecx, ebx
call sym.regex_syntax::is_meta_character::h6b967c09936476d2
mov cl, 1
test al, al
je 0x501cea
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sym.memcpy
mov dword [rsi], 0xa
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rdi
lea eax, [rbx - 0x44]
cmp eax, 0x34
ja 0x5019a4
movabs rcx, 0x8800100088001
bt rcx, rax
jae 0x501b6f
lea rcx, [rsp + 0x20]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::parse_perl_class::heeb91649c9836455
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x38], rax
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x28], xmm1
movups xmmword [rsi + 8], xmm0
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x18], rax
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x20], rax
mov byte [rsi + 0x70], 5
lea rcx, [rsp + 0x20]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::span_char::h4442de9d9c629cf7
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xd0], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xe8], rax
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rsp + 0xd8], xmm0
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
test rdi, rdi
je 0x501c89
js 0x501c82
movzx eax, byte [0x006101a4]
mov rcx, qword [0x00610110]
test rcx, rcx
jne 0x501b54
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x501977
invalid
invalid
invalid
mov rcx, rax
mov qword [0x00610110], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x501c8f
jmp 0x501977
movabs rcx, 0x12000000020000
bt rcx, rax
jae 0x501d33
lea rcx, [rsp + 0x20]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::parse_hex::h900e1ff3c2fee1b9
add byte [rbx - 0x7cdfdbbc], cl
clc
invalid
jne 0x501e9c
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xf4], rcx
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmm2, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x140], xmm0
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x160], xmm2
mov qword [rsp + 0x170], rcx
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x150], rdx
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x140], xmm0
mov qword [rsi + 0x38], rcx
movups xmmword [rsi + 0x28], xmm2
mov rcx, qword [rsp + 0x150]
mov qword [rsi + 0x18], rcx
mov rcx, qword [rsp + 0x158]
mov qword [rsi + 0x20], rcx
movups xmmword [rsi + 8], xmm0
mov byte [rsi + 0x70], 2
mov dword [rsi], eax
jmp 0x501cd3
lea rcx, [rsp + 0x20]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::span_char::h4442de9d9c629cf7
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xd0], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xe8], rax
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rsp + 0xd8], xmm0
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
test rdi, rdi
je 0x501c89
jns 0x501b29
call sym.alloc::raw_vec::capacity_overflow::hb8123ef5e6b3b729
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sym.memcpy
mov dword [rsi], 0x1d
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rdi
mov qword [rsi + 0x48], rdi
movaps xmm0, xmmword [rsp + 0xc0]
add byte [rdi], cl
sub byte [rsp + 0xd0], cl
movaps xmm2, xmmword [rsp + 0xe0]
cmp ebx, 0x7f
jbe 0x501e66
movabs rcx, 0x100000001000
bt rcx, rax
jae 0x5019a4
sbb dword [rbp - 4], 0xffffffff
invalid
lea rcx, [rsp + 0x20]
mov rdx, rdi
call sym.regex_syntax::ast::parse::ParserI_P_::parse_unicode_class::h387a684bc579d274
mov eax, dword [rsp + 0x20]
cmp eax, 0x1f
jne 0x501f31
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rsp + 0x124], xmm0
movups xmm1, xmmword [rsp + 0x78]
movups xmmword [rsp + 0x114], xmm1
movups xmm2, xmmword [rsp + 0x68]
movups xmmword [rsp + 0x104], xmm2
movups xmm3, xmmword [rsp + 0x28]
movups xmm4, xmmword [rsp + 0x38]
movups xmm5, xmmword [rsp + 0x48]
movups xmm6, xmmword [rsp + 0x58]
movups xmmword [rsp + 0xf4], xmm6
movaps xmmword [rsp + 0x140], xmm3
movaps xmmword [rsp + 0x150], xmm4
movaps xmmword [rsp + 0x160], xmm5
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x190], xmm1
movaps xmmword [rsp + 0x1a0], xmm0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x188], rcx
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x178], xmm0
movaps xmm0, xmmword [rsp + 0x1a0]
movups xmmword [rsi + 0x68], xmm0
movaps xmm0, xmmword [rsp + 0x190]
and al, 0x90
add dword [rax], eax
add byte [rdi], cl
adc dword [rsi + 0x58], eax
lea eax, [rbx - 0x30]
movups xmm0, xmmword [rsp + 0x24]
movups xmm1, xmmword [rsp + 0x34]
movups xmm2, xmmword [rsp + 0x44]
movups xmm3, xmmword [rsp + 0x50]
movups xmmword [rsp + 0xec], xmm3
movaps xmmword [rsp + 0xe0], xmm2
add byte [rax], al
mov ecx, dword [rsp + 0x94]
mov dword [rsp + 0x130], ecx
movups xmm0, xmmword [rsp + 0x84]
movaps xmmword [rsp + 0x120], xmm0
movups xmm1, xmmword [rsp + 0x74]
and al, 0x74
mov qword [rsp + 0x20], 0
lea rdx, [0x005f1fe0]
lea r9, str._usr_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.7.5_src_ast_parse.rs
lea rcx, [rsp + 0xc0]
lea r8, [rsp + 0x20]
call sym.core::panicking::assert_failed::h05ae35143ac6d6b4
ud2