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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r14, rdx
mov rsi, rcx
mov r15, qword [rdx]
mov rbx, qword [rdx + 8]
mov r8, qword [r15 + 0xa0]
add r15, 0xa0
mov rdi, qword [rdx + 0x10]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
cmp eax, 0x78
je 0x5180a5
mov r8, qword [r15]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
cmp eax, 0x75
je 0x5180a5
mov r8, qword [r15]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
cmp eax, 0x55
jne 0x5181f0
mov r8, qword [r15]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
cmp eax, 0x75
sete cl
mov dl, 2
sub dl, cl
xor ecx, ecx
cmp eax, 0x78
movzx ebp, dl
cmove ebp, ecx
mov rcx, r14
call fcn.0050e0a0
test al, al
je 0x5180e8
mov rcx, r14
call fcn.0050d300
mov r8, qword [r15]
cmp r8, rdi
jne 0x5181ad
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x38], xmm0
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x30], rax
test rdi, rdi
je 0x51815f
js 0x5181e9
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x51813e
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x518150
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x518165
mov ecx, 1
mov rdx, rdi
call fcn.0044dfd0
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov dword [rsi], 0xa
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rdi
mov qword [rsi + 0x48], rdi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
mov rcx, rsi
mov rdx, r14
mov r8d, ebp
cmp eax, 0x7b
jne 0x5181d7
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp 0x519cb0
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp 0x51a4b0
call fcn.0044df90
ud2
lea rcx, str.assertion_failed:_self.char____x__self.char____u__self.char____U_o
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.8.2_src_ast_parse.rs
mov edx, 0x50
call fcn.0044fe30
ud2
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 0x51a473
mov r14, rdx
mov rsi, rcx
mov qword [r12 + 0x80], 0xffffffffffffffff
lea rax, [r12 + 0x88]
mov qword [rsp + 0xa8], rax
mov qword [r12 + 0x98], 0
lea r15, [r12 + 0xa0]
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 fcn.0050dfa0
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0xd0], xmm0
mov rbx, qword [r14 + 8]
mov rdi, qword [r14 + 0x10]
mov rcx, r14
call fcn.0050e0a0
test al, al
jne 0x519e34
mov r8, qword [r15]
cmp r8, rdi
jne 0x519ffa
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [r15]
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
test rdi, rdi
je 0x51a07f
js 0x51a481
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x519de8
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x51a32c
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x51a085
jmp 0x51a32c
mov rax, qword [r12 + 0x88]
mov byte [rax + rdx], r13b
inc qword [r12 + 0x98]
mov rcx, r14
call fcn.0050e0a0
test al, al
je 0x519d6d
mov rcx, r14
call fcn.0050d300
mov r8, qword [r15]
cmp r8, rdi
je 0x519d79
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
mov r8, qword [r15]
cmp eax, 0x7d
je 0x519d70
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jb 0x519e92
add eax, 0xffffffbf
cmp eax, 0x25
ja 0x51a41f
movabs rcx, 0x3f0000003f
bt rcx, rax
jae 0x51a41f
mov r8, qword [r15]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
mov r13d, eax
cmp eax, 0x80
jae 0x519ee0
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x90]
jne 0x519e10
mov rcx, qword [rsp + 0xa8]
call fcn.005553c0
mov rdx, qword [r12 + 0x98]
jmp 0x519e10
mov dword [rsp + 0x30], 0
mov eax, r13d
cmp r13d, 0x800
jae 0x519f20
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 0x519f8d
cmp r13d, 0x10000
jae 0x519f55
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 0x519f8d
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
jb 0x519fdd
mov rcx, qword [r12 + 0x88]
add rcx, rbp
lea rdx, [rsp + 0x30]
mov r8, r13
call sub.msvcrt.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov rcx, r14
call fcn.0050e0a0
test al, al
jne 0x519e34
jmp 0x519d6d
mov rcx, qword [rsp + 0xa8]
mov rdx, rbp
mov r8, r13
call fcn.004097c0
mov rbp, qword [r12 + 0x98]
jmp 0x519fa5
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x100], rax
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0xf0], xmm0
mov r13, qword [r12 + 0x88]
mov rbp, qword [r12 + 0x98]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
mov dword [rsp + 0x70], eax
cmp eax, 0x7d
jne 0x51a488
mov rcx, r14
call fcn.0050e0a0
test al, al
je 0x51a04e
mov rcx, r14
call fcn.0050d300
test rbp, rbp
je 0x51a0e1
movzx eax, byte [r13]
cmp eax, 0x2d
je 0x51a16b
cmp eax, 0x2b
jne 0x51a175
dec rbp
je 0x51a2ab
inc r13
jmp 0x51a175
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmmword [rsi + 4], xmm0
movups xmmword [rsi + 0x14], xmm1
movups xmmword [rsi + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rsi + 0x70], xmm2
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x50], xmm0
mov dword [rsi], 0xa
jmp 0x51a3f7
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [r15]
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
test rdi, rdi
je 0x51a39a
js 0x51a481
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x51a150
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x51a32c
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x51a3a0
jmp 0x51a32c
cmp rbp, 1
je 0x51a2ab
xor ecx, ecx
mov edx, 0xffffffff
xor eax, eax
cmp rbp, 9
jb 0x51a282
nop dword [rax + rax]
cmp rbp, rcx
je 0x51a1db
movzx r8d, byte [r13 + rcx]
lea r9d, [r8 - 0x30]
cmp r9d, 0xa
jb 0x51a1c2
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, edx
mov r9d, r8d
cmp r8d, 0xf
ja 0x51a2ab
cmp eax, 0xfffffff
ja 0x51a2ab
shl eax, 4
or eax, r9d
inc rcx
cmp rbp, rcx
jne 0x51a195
cmp eax, 0x110000
je 0x51a2ab
mov ecx, eax
xor ecx, 0xd800
add ecx, 0xffef0000
cmp ecx, 0xffef07ff
jbe 0x51a2ab
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x58], rcx
movups xmm0, xmmword [r15]
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 [rsi + 8], xmm0
mov rcx, qword [rsp + 0x50]
mov qword [rsi + 0x28], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsi + 0x30], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rsi + 0x18], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rsi + 0x20], rcx
mov dword [rsi + 0x38], eax
mov byte [rsi + 0x3c], 5
movzx eax, byte [rsp + 0x2f]
mov byte [rsi + 0x3d], al
mov dword [rsi], 0x22
jmp 0x51a403
shl eax, 4
or eax, r9d
inc rcx
cmp rbp, rcx
je 0x51a1db
movzx r8d, byte [r13 + rcx]
lea r9d, [r8 - 0x30]
cmp r9d, 0xa
jb 0x51a270
or r8d, 0x20
add r8d, 0xffffff9f
add r8d, 0xa
cmovb r8d, edx
mov r9d, r8d
cmp r8d, 0xf
jbe 0x51a270
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
test rdi, rdi
je 0x51a33b
js 0x51a481
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x51a31a
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x51a32c
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x51a341
mov ecx, 1
mov rdx, rdi
call fcn.0044dfd0
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmmword [rsi + 4], xmm0
movups xmmword [rsi + 0x14], xmm1
movups xmmword [rsi + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rsi + 0x70], xmm2
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x50], xmm0
mov dword [rsi], 8
jmp 0x51a3f7
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmmword [rsi + 4], xmm0
movups xmmword [rsi + 0x14], xmm1
movups xmmword [rsi + 0x24], xmm2
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movups xmmword [rsi + 0x70], xmm2
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x50], xmm0
mov dword [rsi], 7
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rdi
mov qword [rsi + 0x48], rdi
inc qword [r12 + 0x80]
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 fcn.0050dfa0
mov rcx, rdi
call fcn.005283a0
mov r14, rax
mov r15, rdx
mov rcx, rax
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov dword [rsi], 9
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], r15
jmp 0x51a3ff
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.8.2_src_ast_parse.rs
call fcn.00450580
ud2
call fcn.0044df90
ud2
mov qword [rsp + 0x30], 0
lea rdx, [0x008c76e0]
lea r9, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.8.2_src_ast_parse.rs
lea rcx, [rsp + 0x70]
lea r8, [rsp + 0x30]
call fcn.00504f70
ud2
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x70], rcx
mov rbp, qword [rdx]
cmp qword [rbp + 0x80], 0
jne 0x51ad04
mov r14, rdx
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, [0x0094f8b0]
mov esi, dword [rcx + rax*4]
mov rbx, qword [rdx + 8]
mov rdi, qword [rdx + 0x10]
mov r8, qword [rbp + 0xa0]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jb 0x51a565
add eax, 0xffffffbf
cmp eax, 0x25
ja 0x51ac1b
movabs rcx, 0x3f0000003f
bt rcx, rax
jae 0x51ac1b
lea rax, [rbp + 0x88]
mov qword [rsp + 0x78], rax
lea r15, [rbp + 0xa0]
mov r8, qword [r15]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
mov r12d, eax
cmp eax, 0x80
jae 0x51a5c8
mov rdx, qword [rbp + 0x98]
cmp rdx, qword [rbp + 0x90]
jne 0x51a5b1
mov rcx, qword [rsp + 0x78]
call fcn.005553c0
mov rdx, qword [rbp + 0x98]
mov rax, qword [rbp + 0x88]
mov byte [rax + rdx], r12b
inc qword [rbp + 0x98]
jmp 0x51a6a2
mov dword [rsp + 0x30], 0
mov eax, r12d
cmp r12d, 0x800
jae 0x51a5fa
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 0x51a667
cmp r12d, 0x10000
jae 0x51a62f
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 0x51a667
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
jb 0x51ac7e
mov rcx, qword [rbp + 0x88]
add rcx, r13
lea rdx, [rsp + 0x30]
mov r8, r12
call sub.msvcrt.dll_memcpy
add r13, r12
mov qword [rbp + 0x98], r13
dec esi
jmp 0x51a6ca
mov rax, qword [rbp + 0x88]
mov byte [rax + rdx], r12b
inc qword [rbp + 0x98]
dec esi
je 0x51a8fb
mov rcx, r14
call fcn.0050e0a0
test al, al
je 0x51a87a
mov rcx, r14
call fcn.0050d300
mov r8, qword [r15]
cmp r8, rdi
je 0x51a87a
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
lea ecx, [rax - 0x30]
cmp ecx, 0xa
jb 0x51a721
add eax, 0xffffffbf
cmp eax, 0x25
ja 0x51ac1b
movabs rcx, 0x3f0000003f
bt rcx, rax
jae 0x51ac1b
mov r8, qword [r15]
mov rcx, rbx
mov rdx, rdi
call fcn.0050d6c0
mov r12d, eax
cmp eax, 0x80
jae 0x51a770
mov rdx, qword [rbp + 0x98]
cmp rdx, qword [rbp + 0x90]
jne 0x51a6b0
mov rcx, qword [rsp + 0x78]
call fcn.005553c0
mov rdx, qword [rbp + 0x98]
jmp 0x51a6b0
mov dword [rsp + 0x30], 0
mov eax, r12d
cmp r12d, 0x800
jae 0x51a7b0
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 0x51a81d
cmp r12d, 0x10000
jae 0x51a7e5
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 0x51a81d
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
jb 0x51a861
mov rcx, qword [rbp + 0x88]
add rcx, r13
lea rdx, [rsp + 0x30]
mov r8, r12
call sub.msvcrt.dll_memcpy
add r13, r12
mov qword [rbp + 0x98], r13
dec esi
jne 0x51a6ca
jmp 0x51a8fb
mov rcx, qword [rsp + 0x78]
mov rdx, r13
mov r8, r12
call fcn.004097c0
mov r13, qword [rbp + 0x98]
jmp 0x51a833
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0xa8], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x98], xmm0
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x80], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x90], rax
test rdi, rdi
je 0x51a949
js 0x51ad12
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x51a8e4
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x51ac6f
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x51a94f
jmp 0x51ac6f
mov rcx, r14
call fcn.0050e0a0
test al, al
je 0x51a90f
mov rcx, r14
call fcn.0050d300
mov rax, qword [rbp + 0x98]
test rax, rax
je 0x51ab0a
mov rcx, qword [rbp + 0x88]
movzx edx, byte [rcx]
cmp edx, 0x2d
je 0x51a9b3
cmp edx, 0x2b
jne 0x51a9bd
dec rax
je 0x51ab0a
inc rcx
jmp 0x51a9bd
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
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 + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0xa0]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 0xa
jmp 0x51abf4
cmp rax, 1
je 0x51ab0a
xor r8d, r8d
mov r9d, 0xffffffff
xor edx, edx
cmp rax, 9
jb 0x51aae2
nop word cs:[rax + rax]
cmp rax, r8
je 0x51aa2b
movzx r10d, byte [rcx + r8]
lea r11d, [r10 - 0x30]
cmp r11d, 0xa
jb 0x51aa11
or r10d, 0x20
add r10d, 0xffffff9f
add r10d, 0xa
cmovb r10d, r9d
mov r11d, r10d
cmp r10d, 0xf
ja 0x51ab0a
cmp edx, 0xfffffff
ja 0x51ab0a
shl edx, 4
or edx, r11d
inc r8
cmp rax, r8
jne 0x51a9e5
cmp edx, 0x110000
je 0x51ab0a
mov eax, edx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef07ff
jbe 0x51ab0a
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x40], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x30], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x58], rax
movups xmm1, xmmword [r15]
movups xmmword [rsp + 0x48], xmm1
mov rcx, qword [rsp + 0x70]
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], 0x22
jmp 0x51ac00
shl edx, 4
or edx, r11d
inc r8
cmp rax, r8
je 0x51aa2b
movzx r10d, byte [rcx + r8]
lea r11d, [r10 - 0x30]
cmp r11d, 0xa
jb 0x51aad0
or r10d, 0x20
add r10d, 0xffffff9f
add r10d, 0xa
cmovb r10d, r9d
mov r11d, r10d
cmp r10d, 0xf
jbe 0x51aad0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x90], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x98], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0xa8], rax
test rdi, rdi
je 0x51ab8f
js 0x51ad12
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x51ab78
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x51ac6f
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x51ab95
jmp 0x51ac6f
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
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 + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0xa0]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 8
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x40], rdi
mov qword [rcx + 0x48], rdi
inc qword [rbp + 0x80]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x80]
mov rdx, r14
call fcn.0050dfa0
test rdi, rdi
je 0x51ac9a
js 0x51ad12
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x51ac5d
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x51ac6f
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x51aca0
mov ecx, 1
mov rdx, rdi
call fcn.0044dfd0
ud2
mov rcx, qword [rsp + 0x78]
mov rdx, r13
mov r8, r12
call fcn.004097c0
mov r13, qword [rbp + 0x98]
jmp 0x51a681
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
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
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movups xmm2, xmmword [rsp + 0xa0]
movups xmmword [rcx + 0x70], xmm2
movups xmmword [rcx + 0x60], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx], 9
jmp 0x51abf4
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.8.2_src_ast_parse.rs
call fcn.00450580
ud2
call fcn.0044df90
ud2