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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
mov edx, ebx
lea ecx, [esp + 0x40]
push 9
push 0x5afde2
push esi
mov dword [esp + 0x20], ebx
call sym.core::str::pattern::StrSearcher::new::h0966312e43599328
add esp, 0xc
test byte [esp + 0x40], 1
mov dword [esp + 8], esi
je 0x4fb6f1
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
mov edi, esi
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
sub edi, ecx
cmp edi, eax
jae 0x4fb9ce
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp ecx, eax
cmova eax, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], esi
mov esi, 1
movzx ecx, byte [eax + edi]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x3c]
and esi, edx
or esi, eax
je 0x4fb640
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
cmp eax, esi
cmovb esi, eax
cmp dword [esp + 0x1c], 0xffffffff
cmove esi, eax
lea ecx, [esi - 1]
cmp ecx, dword [esp + 0xc]
jae 0x4fb670
nop word cs:[eax + eax]
nop
sub esi, 1
jb 0x4fb678
lea ecx, [esi + edi]
cmp ecx, dword [esp + 4]
jae 0x4fbc38
mov eax, dword [esp + 0x18]
mov edx, ebx
mov ebx, dword [esp + 0x10]
movzx eax, byte [eax + esi]
cmp al, byte [ebx + ecx]
mov ebx, edx
je 0x4fb5f0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
sub edi, dword [esp + 0x20]
add edi, esi
cmp dword [esp + 0x1c], 0xffffffff
mov edx, dword [esp + 0x30]
jne 0x4fb64b
jmp 0x4fb64f
cmp dword [esp + 0x1c], 0xffffffff
mov ecx, dword [esp + 0xc]
je 0x4fb64f
mov dword [esp + 0x28], ecx
mov esi, edi
sub edi, dword [esp + 0xc]
cmp edi, dword [esp + 4]
jb 0x4fb58f
jmp 0x4fb9ce
test esi, esi
jne 0x4fbcb3
cmp dword [esp + 0x1c], 0xffffffff
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmove ecx, dword [esp + 0xc]
lea esi, [eax + edi]
mov eax, edx
cmp ecx, edx
cmovbe ecx, edx
nop dword [eax + eax]
cmp ecx, eax
je 0x4fb7e3
cmp dword [esp + 0x24], eax
je 0x4fbc25
lea ebx, [edi + eax]
cmp ebx, dword [esp + 4]
jae 0x4fbc0f
mov edx, dword [esp + 0x18]
movzx ebx, byte [edx + eax]
cmp bl, byte [esi + eax]
mov ebx, dword [esp + 0x14]
lea eax, [eax + 1]
je 0x4fb6a0
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
sub edi, ecx
cmp dword [esp + 0x1c], 0xffffffff
mov edx, dword [esp + 0x30]
jne 0x4fb64b
jmp 0x4fb64f
cmp byte [esp + 0x4e], 0
jne 0x4fb9ce
mov edi, dword [esp + 0x48]
mov ah, byte [esp + 0x4d]
test edi, edi
je 0x4fb7e7
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov al, ah
mov dword [esp + 4], edx
mov dword [esp + 0x18], ecx
jmp 0x4fb738
mov ebx, eax
xor bl, 1
cmp al, 1
mov eax, ebx
mov ebx, dword [esp + 0x14]
setne ah
add edi, edx
je 0x4fb7e7
cmp edi, dword [esp + 4]
jae 0x4fb750
cmp byte [ecx + edi], 0xbf
jg 0x4fb756
jmp 0x4fbc5d
jne 0x4fbc5d
movsx esi, byte [ecx + edi - 1]
test esi, esi
jns 0x4fb7a9
movzx ebx, byte [ecx + edi - 2]
cmp bl, 0xc0
jge 0x4fb78d
movzx edx, byte [ecx + edi - 3]
cmp dl, 0xc0
jge 0x4fb792
mov ecx, dword [esp + 0x18]
and edx, 0x3f
movzx ecx, byte [ecx + edi - 4]
and ecx, 7
shl ecx, 6
or edx, ecx
mov ecx, dword [esp + 0x18]
jmp 0x4fb795
and ebx, 0x1f
jmp 0x4fb79d
and edx, 0xf
shl edx, 6
and ebx, 0x3f
or ebx, edx
shl ebx, 6
and esi, 0x3f
or esi, ebx
mov ebx, dword [esp + 0x14]
test ah, 1
jne 0x4fb7e3
mov edx, 0xffffffff
cmp esi, 0x80
jb 0x4fb720
mov edx, 0xfffffffe
cmp esi, 0x800
jb 0x4fb720
xor edx, edx
cmp esi, 0x10000
setb dl
or edx, 0xfffffffc
jmp 0x4fb720
mov esi, edi
jmp 0x4fb7f2
xor esi, esi
test ah, 1
je 0x4fb9ce
mov eax, esi
add eax, 9
jb 0x4fbca9
mov edi, dword [esp + 8]
mov dword [esp + 0x18], eax
nop word cs:[eax + eax]
nop
test eax, eax
je 0x4fb836
cmp eax, edi
jae 0x4fb830
cmp byte [ebx + eax], 0xbf
jg 0x4fb836
jmp 0x4fbc4f
jne 0x4fbc4f
cmp edi, eax
je 0x4fb858
movzx ecx, byte [ebx + eax]
add cl, 0xd0
cmp cl, 0xa
jae 0x4fb860
inc eax
jne 0x4fb810
mov ecx, 0x5aff18
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
jmp 0x4fbd22
mov edx, edi
test eax, eax
jne 0x4fb866
jmp 0x4fb885
mov edx, eax
test eax, eax
je 0x4fb885
cmp edi, edx
jbe 0x4fb883
cmp byte [ebx + edx], 0xbf
jg 0x4fb885
mov dword [esp + 0xc], str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.133_src_error.rsEOF_while_parsing_a_listEOF_while_parsing_an_objectEOF_while_parsing_a_stringEOF_while_parsing_a_valueexpected__:_expected_____or____expected_____or___expected_identexpected_valueexpected____invalid_escapeinvalid_numbernumber_out_of_rangeinvalid_unicode_code_pointcontrol_character__u0000_u001F__found_while_parsing_a_stringkey_must_be_a_stringinvalid_value:_expected_key_to_be_a_number_in_quotesfloat_key_must_be_finite__got_NaN_or___inf_lone_leading_surrogate_in_hex_escapetrailing_commatrailing_charactersunexpected_end_of_hex_escaperecursion_limit_exceeded_at_line__column
mov dword [esp + 4], edi
mov eax, edx
jmp 0x4fbc93
jne 0x4fb870
mov ecx, edi
sub ecx, edx
cmp ecx, 8
jb 0x4fb9d2
mov ecx, 0x6c6f6320
mov dword [esp + 0x24], esi
mov esi, edx
xor ecx, dword [ebx + edx]
mov edx, 0x206e6d75
xor edx, dword [ebx + esi + 4]
or edx, ecx
jne 0x4fb9d2
mov edi, esi
add edi, 8
jb 0x4fbccb
mov edx, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x10], edi
nop word cs:[eax + eax]
test edi, edi
je 0x4fb8f6
cmp edi, dword [esp + 8]
jae 0x4fb8f0
cmp byte [ebx + edi], 0xbf
jg 0x4fb8f6
jmp 0x4fbc7f
jne 0x4fbc7f
cmp dword [esp + 8], edi
je 0x4fb915
movzx ecx, byte [ebx + edi]
add cl, 0xd0
cmp cl, 0xa
jae 0x4fb91d
inc edi
jne 0x4fb8d0
mov ecx, 0x5aff08
jmp 0x4fb84e
mov edi, dword [esp + 8]
xor ecx, ecx
jmp 0x4fb928
cmp edi, dword [esp + 8]
mov ecx, 0
jb 0x4fb975
cmp edx, esi
mov dword [esp + 0xc], 0x5afee8
jb 0x4fbcbd
test esi, esi
je 0x4fb946
cmp byte [ebx + esi], 0xbf
jle 0x4fbcbd
test eax, eax
je 0x4fb954
cmp byte [ebx + edx], 0xc0
jl 0x4fbcbd
sub edx, esi
je 0x4fb97d
add esi, ebx
cmp edx, 1
jne 0x4fb985
movzx eax, byte [esi]
cmp eax, 0x2b
je 0x4fb975
mov edx, 1
cmp eax, 0x2d
jne 0x4fba8a
mov edi, dword [esp + 8]
xor edx, edx
jmp 0x4fb9d6
mov edi, dword [esp + 8]
mov ecx, edx
jmp 0x4fb9d6
cmp byte [esi], 0x2b
jne 0x4fba81
inc esi
cmp edx, 0xa
lea edx, [edx - 1]
jb 0x4fba8a
mov ebx, edx
xor edx, edx
sub ebx, 1
jb 0x4fbaad
mov eax, edx
mov ecx, 0xa
mul ecx
movzx edx, byte [esi]
seto cl
add edx, 0xffffffd0
cmp edx, 9
ja 0x4fb9ca
test cl, cl
jne 0x4fb9ca
inc esi
add eax, edx
mov edx, eax
jae 0x4fb99f
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 8]
xor edx, edx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
cmp dword [eax], edi
jbe 0x4fba12
mov dword [esp + 4], ecx
mov esi, edx
test edi, edi
mov eax, dword [0x5e1120]
je 0x4fba16
push edi
push ebx
push 0
push eax
call sub.kernel32.dll_HeapReAlloc
mov ecx, dword [esp + 4]
test eax, eax
mov edx, esi
jne 0x4fba2a
mov ecx, 1
mov edx, edi
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
jmp 0x4fbd22
mov eax, ebx
jmp 0x4fba2a
push ebx
push 0
push eax
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 4]
mov eax, 1
mov edx, esi
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
movzx eax, byte [0x5e1184]
xor ecx, ecx
mov edx, 0x14
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
test eax, eax
je 0x4fbc6b
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x10], ecx
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp edx, 9
jae 0x4fb99b
mov eax, edx
xor edx, edx
nop
mov ecx, edx
movzx edx, byte [esi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x4fb9ce
lea ecx, [ecx + ecx*4]
inc esi
dec eax
lea edx, [edx + ecx*2]
jne 0x4fba90
jmp 0x4fbab1
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, edi
ja 0x4fbcd5
test eax, eax
je 0x4fbae4
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x4fbaff
cmp edi, ecx
jne 0x4fbcf5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp byte [ebx + eax], 0xbf
jg 0x4fbb07
jmp 0x4fbce7
mov ecx, dword [esp + 8]
cmp edi, ecx
je 0x4fbb07
mov dword [esp + 0xc], str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.133_src_error.rsEOF_while_parsing_a_listEOF_while_parsing_an_objectEOF_while_parsing_a_stringEOF_while_parsing_a_valueexpected__:_expected_____or____expected_____or___expected_identexpected_valueexpected____invalid_escapeinvalid_numbernumber_out_of_rangeinvalid_unicode_code_pointcontrol_character__u0000_u001F__found_while_parsing_a_stringkey_must_be_a_stringinvalid_value:_expected_key_to_be_a_number_in_quotesfloat_key_must_be_finite__got_NaN_or___inf_lone_leading_surrogate_in_hex_escapetrailing_commatrailing_charactersunexpected_end_of_hex_escaperecursion_limit_exceeded_at_line__column
xor eax, eax
mov dword [esp + 4], ecx
jmp 0x4fbc93
cmp edi, ecx
jne 0x4fbce7
mov eax, dword [esp + 0x10]
mov esi, ecx
mov edi, ecx
sub esi, eax
je 0x4fbb40
add eax, ebx
cmp esi, 1
jne 0x4fbb49
mov dword [esp + 0x10], eax
movzx eax, byte [eax]
cmp eax, 0x2b
je 0x4fb9d2
mov esi, 1
cmp eax, 0x2d
mov ecx, 0
jne 0x4fbba5
xor edx, edx
jmp 0x4fb9d6
mov edx, esi
mov ecx, esi
jmp 0x4fb9d6
cmp byte [eax], 0x2b
jne 0x4fbb9c
inc eax
cmp esi, 0xa
lea esi, [esi - 1]
mov dword [esp + 0x10], eax
jb 0x4fbba5
xor ecx, ecx
mov edi, 0xa
mov dword [esp + 4], edx
sub esi, 1
jb 0x4fbbcd
mov eax, ecx
mul edi
mov edx, dword [esp + 0x10]
seto cl
movzx edx, byte [edx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x4fb9ce
test cl, cl
jne 0x4fb9ce
inc dword [esp + 0x10]
mov ecx, eax
add ecx, edx
jae 0x4fbb66
jmp 0x4fb9ce
cmp esi, 9
mov dword [esp + 0x10], eax
jae 0x4fbb5b
mov dword [esp + 4], esi
mov esi, dword [esp + 0x10]
xor ecx, ecx
movzx eax, byte [esi]
add eax, 0xffffffd0
cmp eax, 9
ja 0x4fb9d2
inc esi
dec dword [esp + 4]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
jne 0x4fbbaf
jmp 0x4fbbd5
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x24]
cmp edi, esi
jb 0x4fb9d6
test esi, esi
mov dword [esp + 4], ecx
setne al
cmp edi, esi
seta cl
test al, cl
je 0x4fbbfd
cmp byte [ebx + esi], 0xbf
jle 0x4fbd0b
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 4]
mov edi, esi
mov dword [eax + 8], esi
jmp 0x4fb9d6
add edi, dword [esp + 0x20]
mov eax, dword [esp + 4]
mov esi, 0x5af0e4
cmp eax, edi
cmova edi, eax
mov ecx, edi
jmp 0x4fbc3d
mov ecx, dword [esp + 0x24]
mov esi, 0x5af0d4
mov eax, dword [esp + 0xc]
mov dword [esp + 4], eax
jmp 0x4fbc3d
mov esi, 0x5af104
mov edx, dword [esp + 4]
push esi
call sym.core::panicking::panic_bounds_check::hf1cd1614d6353f3c
add esp, 4
jmp 0x4fbd22
mov dword [esp + 0xc], str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.133_src_error.rsEOF_while_parsing_a_listEOF_while_parsing_an_objectEOF_while_parsing_a_stringEOF_while_parsing_a_valueexpected__:_expected_____or____expected_____or___expected_identexpected_valueexpected____invalid_escapeinvalid_numbernumber_out_of_rangeinvalid_unicode_code_pointcontrol_character__u0000_u001F__found_while_parsing_a_stringkey_must_be_a_stringinvalid_value:_expected_key_to_be_a_number_in_quotesfloat_key_must_be_finite__got_NaN_or___inf_lone_leading_surrogate_in_hex_escapetrailing_commatrailing_charactersunexpected_end_of_hex_escaperecursion_limit_exceeded_at_line__column
mov dword [esp + 4], edi
jmp 0x4fbc93
mov ebx, ecx
mov dword [esp + 0xc], 0x5af198
xor eax, eax
jmp 0x4fbc93
mov ecx, 4
mov edx, 0x14
call sym.alloc::alloc::handle_alloc_error::h3ca6a9ac69c8e3db
jmp 0x4fbd22
mov ecx, dword [esp + 8]
mov eax, edi
mov dword [esp + 0xc], 0x5afed8
mov dword [esp + 4], ecx
mov edi, ecx
mov edx, dword [esp + 4]
mov ecx, ebx
push dword [esp + 0xc]
push edi
push eax
call sym.core::str::slice_error_fail::h3ba52b33a833cd0d
add esp, 0xc
jmp 0x4fbd22
mov ecx, 0x5afe98
jmp 0x4fb84e
mov esi, 0x5af0f4
jmp 0x4fbc2e
mov eax, dword [esp + 8]
mov edi, edx
mov dword [esp + 4], eax
mov eax, esi
jmp 0x4fbc93
mov ecx, 0x5afec8
jmp 0x4fb84e
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], 0x5afef8
mov dword [esp + 4], ecx
jmp 0x4fbc93
mov dword [esp + 0xc], str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.133_src_error.rsEOF_while_parsing_a_listEOF_while_parsing_an_objectEOF_while_parsing_a_stringEOF_while_parsing_a_valueexpected__:_expected_____or____expected_____or___expected_identexpected_valueexpected____invalid_escapeinvalid_numbernumber_out_of_rangeinvalid_unicode_code_pointcontrol_character__u0000_u001F__found_while_parsing_a_stringkey_must_be_a_stringinvalid_value:_expected_key_to_be_a_number_in_quotesfloat_key_must_be_finite__got_NaN_or___inf_lone_leading_surrogate_in_hex_escapetrailing_commatrailing_charactersunexpected_end_of_hex_escaperecursion_limit_exceeded_at_line__column
mov dword [esp + 4], ecx
jmp 0x4fbd05
mov eax, dword [esp + 8]
mov dword [esp + 0xc], 0x5afef8
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
jmp 0x4fbc93
mov edx, 0x30
mov ecx, str.assertion_failed:_self.is_char_boundary_new_len_Om_
push 0x5b7040
call sym.core::panicking::panic::hf6244c8fb5815825
add esp, 4
ud2