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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x64], edx
mov edx, 1
xor ecx, ecx
mov dword [esp + 0x24], 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 8
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], 0
cmp edx, ecx
je 0x47d854
lea edx, [ecx + 1]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x74]
mov esi, dword [esp + ecx*8 + 0x64]
mov edi, dword [esp + ecx*8 + 0x68]
lea ecx, [edx + 1]
cmp edx, 0x7fffffff
mov dword [esp + 0x74], ecx
jae 0x47daf3
test esi, esi
jne 0x47db0f
lea ecx, [esp + 0x24]
mov dword [esp + 4], edx
call sym.regex_automata::util::captures::GroupInfoInner::add_first_group::h4406a1aaab8b22fd
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 1
nop dword [eax + eax]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x5c], eax
je 0x47d840
lea ecx, [eax + 1]
mov dword [esp + 0x58], ecx
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + eax*8 + 0x50]
mov edx, dword [esp + eax*8 + 0x54]
lea eax, [esi + 1]
cmp esi, 0x7ffffffe
mov dword [esp + 0x1c], eax
mov dword [esp + 0x60], eax
ja 0x47d953
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 4]
cmp esi, edi
jbe 0x47db4f
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + edi*8 + 4]
add eax, 2
cmp eax, 0x7ffffffe
ja 0x47d96c
test ecx, ecx
mov dword [esp + 0x14], ebx
mov dword [ebx + edi*8 + 4], eax
je 0x47d790
call sym.alloc::sync::Arc_LT__u5b_T_u5d__GT_::copy_from_slice::h1abaae4487cddc9e
mov ebx, eax
mov eax, edx
mov edx, dword [esp + 0x38]
cmp edx, edi
jbe 0x47db61
shl edi, 5
mov esi, ebx
mov dword [esp + 8], eax
add edi, dword [esp + 0x30]
add esi, 8
mov edx, esi
mov ecx, edi
push eax
call sym.hashbrown::map::HashMap_LT_K_C_V_C_S_C_A_GT_::contains_key::hbb6d5a2c3e1fd59f
add esp, 4
test al, al
jne 0x47d977
lock inc dword [ebx]
jle 0x47dbc7
mov ecx, edi
mov edx, ebx
push dword [esp + 0x10]
push dword [esp + 0xc]
call sym.hashbrown::map::HashMap_LT_K_C_V_C_S_C_A_GT_::insert::h0513f5d56d9376fc
add esp, 8
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 4]
cmp edx, ecx
jbe 0x47db6a
mov edi, dword [esp + 0x3c]
lea eax, [ecx + ecx*2]
mov dword [esp + 0x10], edx
mov edx, dword [edi + eax*4 + 8]
lea esi, [edi + eax*4]
mov dword [esp + 0x4c], edi
cmp edx, dword [edi + eax*4 + 4]
jne 0x47d753
mov ecx, esi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov ecx, dword [esp + 4]
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov dword [eax + edx*8], ebx
mov ebx, dword [esp + 8]
mov dword [eax + edx*8 + 4], ebx
inc dword [esi + 8]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
lea eax, [eax + ebx*2 + 0x14]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov edi, dword [esp + 0x1c]
cmp esi, ecx
mov dword [esp + 0x20], edi
ja 0x47d7ef
jmp 0x47db80
mov edx, dword [esp + 0x44]
mov ecx, edi
cmp edx, edi
jbe 0x47db71
mov edi, dword [esp + 0x3c]
lea eax, [ecx + ecx*2]
mov dword [esp + 0x10], edx
mov edx, dword [edi + eax*4 + 8]
lea ebx, [edi + eax*4]
mov dword [esp + 0x4c], edi
cmp edx, dword [edi + eax*4 + 4]
jne 0x47d7c8
mov ecx, ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov ecx, dword [esp + 4]
mov edx, dword [ebx + 8]
mov edi, ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [edi]
mov dword [eax + edx*8], 0
inc dword [edi + 8]
add dword [esp + 0x48], 8
mov edi, dword [esp + 0x1c]
cmp esi, ecx
mov dword [esp + 0x20], edi
jbe 0x47db80
mov eax, dword [ebx + ecx*8 + 4]
sub eax, dword [ebx + ecx*8]
shr eax, 1
inc eax
cmp edi, eax
mov dword [esp + 0x18], eax
jne 0x47db88
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], edi
cmp edx, ecx
jbe 0x47db5a
mov edx, dword [esp + 0x4c]
lea eax, [ecx + ecx*2]
mov eax, dword [edx + eax*4 + 8]
cmp edi, eax
mov dword [esp + 0x18], eax
je 0x47d650
jmp 0x47dba3
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 4]
cmp edx, ecx
jne 0x47d5ed
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x78]
push dword [esp + 0x2c]
call sym.regex_automata::util::captures::GroupInfoInner::fixup_slot_ranges::h204eefa3d0f97d8b
add esp, 4
mov eax, dword [esp + 0x78]
cmp eax, 5
jne 0x47db21
movsd xmm2, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x34]
movsd xmm0, qword [esp + 0x44]
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x88], xmm1
movsd xmm2, qword [esp + 0x24]
movsd xmm1, qword [esp + 0x2c]
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0x80], xmm1
movsd qword [esp + 0x78], xmm2
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x47d8df
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x47dbd2
mov dword [0x5da100], eax
push 0x30
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x47dbd2
mov dword [eax], 1
mov dword [eax + 4], 1
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
movsd qword [eax + 8], xmm0
movsd qword [eax + 0x10], xmm1
movsd xmm0, qword [esp + 0x88]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x90]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x98]
movsd qword [eax + 0x28], xmm0
mov dword [ecx + 4], eax
mov dword [ecx], 5
jmp 0x47daeb
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [eax], 1
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
jmp 0x47da06
mov edi, dword [esp + 0x10]
mov eax, 1
jmp 0x47d9f0
cmp dword [esp + 8], 0
je 0x47d9c4
js 0x47dbcb
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x47d9a2
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x47d9b4
mov dword [0x5da100], eax
push dword [esp + 8]
push 0
push eax
call sub.kernel32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x47d9c9
mov edx, dword [esp + 8]
mov ecx, 1
call dbg.handle_alloc_error
ud2
mov edi, 1
push dword [esp + 8]
push esi
push edi
call sym._memcpy
add esp, 0xc
lock dec dword [ebx]
jne 0x47d9e7
mov edx, dword [esp + 8]
mov ecx, ebx
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h03747aea754929d2
mov esi, dword [esp + 8]
mov eax, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov dword [ecx + 4], edx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x10], esi
mov dword [ecx], eax
cmp dword [esp + 0x28], 0
je 0x47da1e
push dword [esp + 0x24]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ecx, esi
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::hfeae50be3a15c44d
cmp dword [esp + 0x34], 0
je 0x47da42
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x44]
test eax, eax
mov dword [esp + 0x14], eax
je 0x47dad3
mov eax, dword [esp + 0x3c]
xor esi, esi
mov dword [esp + 4], eax
jmp 0x47da66
cmp esi, dword [esp + 0x14]
je 0x47dad3
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], esi
lea esi, [esi + esi*2]
mov edi, dword [eax + esi*4 + 8]
test edi, edi
je 0x47dab0
mov eax, dword [esp + 4]
mov ebx, dword [eax + esi*4]
jmp 0x47da96
add ebx, 8
dec edi
je 0x47dab0
mov eax, dword [ebx]
test eax, eax
je 0x47da90
lock dec dword [eax]
jne 0x47da90
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h03747aea754929d2
jmp 0x47da90
mov eax, dword [esp + 4]
lea eax, [eax + esi*4]
mov esi, dword [esp + 0x1c]
inc esi
cmp dword [eax + 4], 0
je 0x47da60
push dword [eax]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
jmp 0x47da60
cmp dword [esp + 0x40], 0
je 0x47daeb
push dword [esp + 0x3c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov dword [ecx], 0
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], 0
jmp 0x47da06
mov eax, dword [esp + 0xc]
mov dword [eax], 3
mov dword [eax + 4], edx
jmp 0x47da06
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x7c]
movsd xmm1, qword [esp + 0x84]
mov dword [edx + 0x14], ecx
movsd qword [edx + 0xc], xmm1
movsd qword [edx + 4], xmm0
mov dword [edx], eax
jmp 0x47da06
mov ecx, edi
mov edx, esi
push 0x56a758
jmp 0x47db76
push 0x56a7a8
jmp 0x47db76
mov ecx, edi
push 0x56a778
jmp 0x47db76
push 0x56a788
jmp 0x47db76
push 0x56a768
call dbg.panic_bounds_check
add esp, 4
ud2
mov dword [esp + 0x18], 0
lea eax, [esp + 0x78]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x18]
mov dword [esp + 0x78], 0
push 0x56a798
jmp 0x47dbbc
lea eax, [esp + 0x78]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x18]
mov dword [esp + 0x78], 0
push 0x56a7b8
push eax
call sym.core::panicking::assert_failed::h9b15bbfd35e45a95
add esp, 8
ud2
ud2
call sym.alloc::raw_vec::capacity_overflow::h894971bc65aab54c
ud2
mov ecx, 4
mov edx, 0x30
call dbg.handle_alloc_error
ud2