Function at 0x1400ae0f0
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, 0xe8
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov r15, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x150]
movzx ecx, byte [rdi + 0x15]
xor eax, eax
cmp cl, 3
cmovne eax, ecx
cmp al, 1
je 0x1400ae296
movzx eax, al
cmp eax, 2
je 0x1400ae29e
test r9, r9
je 0x1400ae2f7
mov rcx, r9
call sym.alloc::sync::Arc__T__::copy_from_slice::h2f05fbc426f1531f
mov rcx, rax
cmp qword [rdi + 0x28], 0
jne 0x1400ae304
mov qword [rdi + 0x28], 0xffffffffffffffff
cmp dword [rdi + 0x88], 0
je 0x1400ae6a1
lea r13, [rdi + 0x30]
movabs r14, 0x8000000000000008
cmp ebx, 0x7ffffffe
ja 0x1400ae2bf
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0xd8], r13
mov ebp, dword [rdi + 0x8c]
mov rdx, qword [rdi + 0x80]
mov r14, rbp
sub r14, rdx
jb 0x1400ae215
lea r13, [rdi + 0x70]
xor r12d, r12d
xor r15d, r15d
cmp r12, r14
adc r15, 0
cmp rdx, qword [r13]
jne 0x1400ae1dc
mov rcx, r13
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h49d893b5445c7f1b
mov rdx, qword [rdi + 0x80]
mov rax, qword [rdi + 0x78]
lea rcx, [rdx + rdx*2]
mov qword [rax + rcx*8], 0
mov qword [rax + rcx*8 + 8], 8
mov qword [rax + rcx*8 + 0x10], 0
inc rdx
mov qword [rdi + 0x80], rdx
cmp r12, r14
jae 0x1400ae215
mov r12, r15
cmp r15, r14
jbe 0x1400ae1c0
cmp rdx, rbp
mov r13, qword [rsp + 0xd8]
jbe 0x1400ae683
mov r8d, ebx
mov r12, qword [rdi + 0x78]
lea r15, [rbp*2]
add r15, rbp
mov rax, qword [r12 + r15*8 + 0x10]
mov rcx, rbp
mov rbp, r8
sub rbp, rax
jae 0x1400ae310
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x38], 4
lea rcx, [rsp + 0x58]
lea r8, [rsp + 0x38]
mov rdx, r13
call sym.regex_automata::nfa::thompson::builder::Builder::add::he938d7c209666eb2
mov rcx, qword [rsp + 0x28]
test rcx, rcx
movabs r14, 0x8000000000000008
mov r15, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x20]
jne 0x1400ae2d5
jmp 0x1400ae2e0
test ebx, ebx
je 0x1400ae13c
mov rcx, rsi
mov rdx, rdi
mov r8, r15
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.regex_automata::nfa::thompson::compiler::Compiler::c::h806c80ccb3bebea4
lea rax, [r14 - 2]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], ebx
test rcx, rcx
je 0x1400ae364
lock dec qword [rcx]
jne 0x1400ae2e0
call sym.alloc::sync::Arc_T_A_::drop_slow::h65ec52e26a3d1a81
mov rax, qword [rsp + 0x58]
inc qword [rdi + 0x28]
cmp rax, r14
jne 0x1400ae53b
jmp 0x1400ae415
xor ecx, ecx
cmp qword [rdi + 0x28], 0
je 0x1400ae15b
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_automata_0.4.3_src_nfa_thompson_compiler.rs
call sym.core::cell::panic_already_borrowed::hd41cbf2261710bb6
mov qword [rsp + 0xe0], rcx
lea r14, [r12 + r15*8 + 0x10]
je 0x1400ae37b
cmp rbp, 1
adc rbp, 0
lea r13, [r12 + r15*8]
jmp 0x1400ae34e
mov rcx, qword [r13 + 8]
shl rax, 4
mov qword [rcx + rax], 0
mov rax, qword [r14]
inc rax
mov qword [r14], rax
dec rbp
je 0x1400ae371
cmp rax, qword [r13]
jne 0x1400ae330
mov rcx, r13
mov rdx, rax
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h235177f0e46c1b80
mov rax, qword [r14]
jmp 0x1400ae330
mov qword [rdi + 0x28], 0
jmp 0x1400ae53f
mov rdx, qword [rdi + 0x80]
mov r8, rax
mov rbp, qword [rsp + 0xe0]
cmp rdx, rbp
jbe 0x1400ae692
lea r13, [r12 + r15*8]
cmp r8, qword [r12 + r15*8]
jne 0x1400ae3a4
mov rcx, r13
mov rdx, r8
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h235177f0e46c1b80
mov r8, qword [r14]
mov r15, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
mov rax, qword [r13 + 8]
shl r8, 4
mov qword [rax + r8], rcx
mov qword [rax + r8 + 8], rdx
add byte [rax], cl
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_automata_0.4.3_src_nfa_thompson_builder.rs