Function at 0x6495e0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov esi, esp
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], esp
mov dword [esi + 0x60], 0xffffffff
mov dword [esi + 0x5c], 0x706300
mov edx, ecx
lea eax, [esi + 0x58]
mov ecx, dword fs:[0]
mov dword [esi + 0x1c], edx
mov dword [esi + 0x58], ecx
mov dword fs:[0], eax
mov dword [esi + 0x30], 0
mov ecx, dword [edx + 0x130]
mov edi, dword [edx + 0x18]
and ecx, 0x1f
mov eax, edi
shr eax, cl
test eax, eax
mov dword [esi + 0xc], eax
je 0x6496ac
xor ebx, ebx
cmp eax, 0x20000000
mov ecx, eax
setb al
jae 0x649738
mov bl, al
lea edi, [ecx*4]
shl ebx, 2
test edi, edi
js 0x649738
je 0x649723
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x649687
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x64972d
mov dword [0x919820], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x64972d
mov edi, dword [esi + 0xc]
mov ecx, eax
xor eax, eax
cmp edi, 8
jae 0x6496c4
mov ebx, ecx
jmp 0x64973f
mov dword [esi + 0x18], 0
mov ebx, 4
mov dword [esi + 4], 0
jmp 0x649769
mov ebx, ecx
lea ecx, [ecx + edi*4]
lea edx, [esi + 0x30]
cmp edx, ecx
lea edx, [esi + 0x34]
setb cl
cmp ebx, edx
jae 0x6496dc
test cl, cl
jne 0x64973f
movdqa xmm0, xmmword [0x725770]
movdqa xmm1, xmmword [0x725780]
movdqa xmm2, xmmword [0x725790]
mov eax, edi
mov edx, ebx
and eax, 0xfffffffc
mov ecx, eax
nop dword [eax]
movd xmm3, dword [esi + 0x30]
movdqa xmm4, xmm0
paddd xmm0, xmm2
pand xmm3, xmm1
pslld xmm4, xmm3
movdqu xmmword [edx], xmm4
add edx, 0x10
add ecx, 0xfffffffc
jne 0x649700
jmp 0x64974b
mov eax, ebx
test eax, eax
jne 0x649699
mov ecx, ebx
mov edx, edi
call fcn.00709d20
ud2
call fcn.00425040
ud2
movzx ecx, byte [esi + 0x30]
mov edx, eax
shl edx, cl
mov dword [ebx + eax*4], edx
inc eax
cmp edi, eax
jne 0x64973f
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x1c]
mov dword [esi + 4], edi
mov ecx, dword [edx + 0x130]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x18]
and ecx, 0x1f
mov edi, eax
mov dword [esi + 0x10], ebx
mov dword [esi + 8], ecx
mov ebx, edi
shr edi, cl
test edi, edi
je 0x649c97
mov eax, dword [edx + 0x10]
and dword [esi + 0x18], 0x1f
lea ecx, [edi - 1]
mov dword [esi + 0x14], ebx
neg ebx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0x134]
mov edx, edi
mov dword [esi + 0x24], eax
mov ebx, edi
dec edx
sar ebx, 0x1f
mov dword [esi + 0x3c], edx
and ebx, edi
dec ebx
nop word [eax + eax]
sub edi, 1
jb 0x6498ef
jl 0x649c60
mov eax, dword [esi + 0x24]
mov edx, edi
mov ecx, dword [esi + 8]
shl edx, cl
lea ecx, [edx + eax]
cmp ecx, dword [esi + 0x14]
jae 0x649b7a
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + ecx*8 + 4]
shr eax, 0xa
cmp eax, 0x3ffffe
ja 0x6497b0
mov ecx, dword [esi + 0x38]
cmp ecx, edi
je 0x6498b3
mov ebx, dword [esi + 0x3c]
mov ecx, dword [esi + 8]
mov eax, edx
shl ebx, cl
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x4c], ebx
cmp ecx, edx
cmovb eax, ecx
add eax, dword [esi + 0x48]
cmp ecx, ebx
mov dword [esi + 0x28], eax
mov eax, ebx
cmovb eax, ecx
add eax, dword [esi + 0x48]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x2c]
lea ecx, [eax + edx*8]
lea eax, [eax + ebx*8]
mov dword [esi + 0x40], eax
mov eax, 1
mov dword [esi + 0x44], ecx
nop dword [eax]
mov ecx, dword [esi + 0x20]
add ecx, eax
cmp ecx, 1
je 0x649bd6
mov ecx, dword [esi + 0x28]
add ecx, eax
cmp ecx, 1
je 0x649bfd
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0x40]
movq xmm1, qword [ecx + eax*8 - 8]
movq xmm0, qword [ebx + eax*8 - 8]
movq qword [ebx + eax*8 - 8], xmm1
mov ebx, eax
movq qword [ecx + eax*8 - 8], xmm0
mov ecx, dword [esi + 8]
inc eax
shr ebx, cl
test ebx, ebx
je 0x649830
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x18]
mov edx, edi
mov ebx, dword [esi + 0x10]
shr eax, cl
shr edx, cl
mov ecx, edx
mov edx, dword [esi + 4]
cmp eax, edx
jae 0x649c21
cmp ecx, edx
jae 0x649c40
mov edx, eax
mov eax, dword [ebx + eax*4]
mov dword [esi + 0x20], eax
mov eax, ecx
mov ecx, dword [ebx + ecx*4]
mov dword [ebx + edx*4], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebx + eax*4], ecx
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x1c]
dec ecx
mov dword [esi + 0x38], ecx
test edx, edx
mov dword [eax + 0x28], edx
jne 0x64979e
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
mov ecx, 0x8c198a
mov edx, 0x34
push 0x8c19c0
call fcn.0070a3e0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 4]
test edx, edx
je 0x64995f
mov ebx, dword [esi + 0xc]
xor ecx, ecx
cmp edx, 0x20000000
setb al
jae 0x649ccb
mov cl, al
lea edi, [edx*4]
shl ecx, 2
test edi, edi
js 0x649cd9
je 0x649970
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
mov dword [esi + 8], ecx
test eax, eax
jne 0x649949
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov ecx, dword [esi + 8]
test eax, eax
je 0x649cbb
mov dword [0x919820], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [esi + 8]
test eax, eax
jne 0x64997a
jmp 0x649cbb
mov ebx, dword [esi + 0xc]
lea edi, [edx*4]
mov eax, 4
jmp 0x64997a
mov eax, ecx
test eax, eax
je 0x649cbb
push edi
push dword [esi + 0x10]
mov dword [esi + 8], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x130]
mov edx, dword [eax + 0x18]
and ecx, 0x1f
mov dword [esi + 0x28], edx
mov dword [esi + 0x44], ecx
shr edx, cl
test edx, edx
mov dword [esi + 0x24], edx
je 0x649aa7
xor edx, edx
jmp 0x6499bf
mov eax, dword [esi + 0x10]
mov dword [eax + edx*4], ebx
mov ebx, dword [esi + 0xc]
inc edx
cmp edx, dword [esi + 0x24]
je 0x6499fc
mov edi, edx
mov ecx, dword [esi + 0x18]
shl edi, cl
cmp edx, ebx
je 0x649b9a
mov eax, dword [esi + 8]
mov eax, dword [eax + edx*4]
cmp edi, eax
je 0x6499b9
nop dword [eax + eax]
mov ecx, dword [esi + 0x18]
mov ebx, eax
shr eax, cl
cmp eax, dword [esi + 4]
jae 0x649b20
mov ecx, dword [esi + 8]
mov eax, dword [ecx + eax*4]
cmp edi, eax
jne 0x6499e0
jmp 0x6499b0
cmp dword [esi + 0x24], 0
je 0x649aa7
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x12c]
test eax, eax
mov dword [esi + 0x40], eax
je 0x649aa7
mov eax, dword [esi + 0x1c]
xor edi, edi
mov ecx, dword [eax + 0x10]
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [esi + 0x28]
lea eax, [edi + 1]
mov dword [esi + 0x20], eax
mov eax, ecx
mov ecx, dword [esi + 0x44]
shl edi, cl
mov ecx, eax
mov eax, 0
sub edx, edi
cmovb edx, eax
mov eax, dword [esi + 0x40]
nop
sub edx, 1
jb 0x649b3e
mov ebx, dword [ecx + edi*8 + 4]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x14], edx
mov edx, ecx
mov ecx, dword [esi + 0x18]
mov eax, ebx
shr eax, 0xb
shr eax, cl
cmp eax, dword [esi + 4]
jae 0x649b5c
mov ecx, dword [esi + 0x10]
and ebx, 0x7ff
mov eax, dword [ecx + eax*4]
mov ecx, edx
shl eax, 0xb
or ebx, eax
mov eax, dword [edx + edi*8]
mov dword [edx + edi*8 + 4], ebx
mov dword [edx + edi*8], eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x14]
inc edi
dec eax
jne 0x649a50
mov edi, dword [esi + 0x20]
cmp edi, dword [esi + 0x24]
jne 0x649a30
mov eax, dword [esi + 0x1c]
mov edx, dword [eax + 0x24]
test edx, edx
je 0x649ae0
mov edi, dword [eax + 0x1c]
mov ebx, dword [esi + 0xc]
nop word [eax + eax]
mov eax, dword [edi]
mov ecx, dword [esi + 0x18]
shr eax, cl
cmp eax, dword [esi + 4]
jae 0x649bb8
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + eax*4]
mov dword [edi], eax
add edi, 4
dec edx
jne 0x649ac0
jmp 0x649ae9
cmp dword [esi + 4], 0
mov ebx, dword [esi + 0xc]
je 0x649afa
push dword [esi + 8]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
test ebx, ebx
je 0x649b0f
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x58]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 4]
mov dword [esi + 0x60], 2
mov ecx, eax
push 0x8c09ac
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 0x28]
mov dword [esi + 0x60], 2
mov ecx, edi
push 0x8c1bfc
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 4]
mov dword [esi + 0x60], 2
mov ecx, eax
push 0x8c1dd8
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 0x14]
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
push 0x8c1bbc
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 4]
mov dword [esi + 0x60], 2
mov ecx, ebx
push 0x8c099c
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 4]
mov dword [esi + 0x60], 2
mov ecx, eax
push 0x8c1dd8
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x14]
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
lea ecx, [ecx + eax - 1]
push 0x8c1bec
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
lea ecx, [edx + eax - 1]
mov edx, dword [esi + 0x14]
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
push 0x8c1bec
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
mov ecx, eax
push 0x8c098c
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov edx, dword [esi + 4]
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
push 0x8c098c
call fcn.00709fa0
add esp, 4
jmp 0x649ce5
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], 0
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
lea eax, [esi + 0x30]
mov ecx, str.invalid_StateID_valueC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_automata_0.3.8_srcutilprimitives.rs
mov edx, 0x15
push 0x8c1fa4
push 0x8c185c
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x649ce5
mov byte [esi + 3], 1
mov dword [esi + 0x60], 0
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x8c1bdc
call fcn.0070a0f0
add esp, 4
jmp 0x649ce5
mov edx, edi
mov dword [esi + 0x60], 1
call fcn.00709d20
jmp 0x649ce5
mov dword [esi + 0x60], 1
call fcn.00425040
jmp 0x649ce5
mov dword [esi + 0x60], 1
call fcn.00425040
ud2