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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
call 0x555dba
pop eax
mov dword [esp + 8], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov eax, 0x2600
mov dword [esp + 0x74], esi
jmp 0x555e04
inc edi
cmp ecx, 0xd
ja 0x555e90
mov edx, 0x110000
bt eax, ecx
jae 0x555e90
cmp edx, 0x110000
jne 0x555e9e
cmp edi, esi
je 0x556190
movzx ecx, byte [edi]
test cl, cl
jns 0x555de0
movzx ebx, byte [edi + 1]
mov edx, ecx
and edx, 0x1f
and ebx, 0x3f
cmp cl, 0xdf
jbe 0x555e62
movzx esi, byte [edi + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp cl, 0xf0
jb 0x555e77
movzx ecx, byte [edi + 3]
shl esi, 6
and edx, 7
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
mov esi, dword [ebp + 0xc]
or ecx, edx
cmp ecx, 0x110000
je 0x556190
add edi, 4
cmp ecx, 0xd
jbe 0x555dea
jmp 0x555e90
shl edx, 6
add edi, 2
or edx, ebx
mov ecx, edx
cmp ecx, 0xd
jbe 0x555dea
jmp 0x555e90
shl edx, 0xc
add edi, 3
or esi, edx
mov ecx, esi
mov esi, dword [ebp + 0xc]
cmp ecx, 0xd
jbe 0x555dea
nop dword [eax]
mov edx, ecx
cmp edx, 0x110000
je 0x555e04
cmp edx, 0x2f
je 0x555eac
cmp edx, 0x5c
jne 0x556249
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0x18]
test eax, eax
je 0x555ed4
cmp dword [esp + 0xc], 0x5c
jne 0x555ed4
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x14]
push 0
push eax
call ecx
add esp, 8
mov esi, dword [ebp + 0xc]
mov eax, 0x2600
mov dword [esp + 0x10], edi
jmp 0x555efe
mov edx, ecx
cmp edx, 0x110000
jne 0x555fe3
mov ebx, dword [esp + 0x10]
cmp ebx, esi
je 0x5561d5
movzx ecx, byte [ebx]
test cl, cl
js 0x555f30
inc ebx
mov dword [esp + 0x10], ebx
cmp ecx, 0xd
jbe 0x555fd0
jmp 0x555ef0
movzx eax, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and eax, 0x3f
cmp cl, 0xdf
jbe 0x555f8b
movzx esi, byte [ebx + 2]
shl eax, 6
and esi, 0x3f
or esi, eax
cmp cl, 0xf0
jb 0x555fa8
movzx ecx, byte [ebx + 3]
shl esi, 6
and edx, 7
mov eax, 0x2600
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
mov esi, dword [ebp + 0xc]
or ecx, edx
cmp ecx, 0x110000
je 0x5561d5
add ebx, 4
mov dword [esp + 0x10], ebx
cmp ecx, 0xd
jbe 0x555fd0
jmp 0x555ef0
shl edx, 6
add ebx, 2
or edx, eax
mov dword [esp + 0x10], ebx
mov eax, 0x2600
mov ecx, edx
cmp ecx, 0xd
jbe 0x555fd0
jmp 0x555ef0
shl edx, 0xc
add ebx, 3
mov eax, 0x2600
or esi, edx
mov dword [esp + 0x10], ebx
mov ecx, esi
mov esi, dword [ebp + 0xc]
cmp ecx, 0xd
ja 0x555ef0
nop word [eax + eax]
mov edx, 0x110000
bt eax, ecx
jb 0x555ef2
jmp 0x555ef0
cmp edx, 0x5c
je 0x555ff1
cmp edx, 0x2f
jne 0x5561d5
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x556013
cmp edx, 0x5c
jne 0x556013
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x14]
push 0
push eax
call ecx
add esp, 8
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
sub eax, edx
cmp eax, 6
ja 0x556038
push 1
push 1
push 7
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov esi, dword [esp + 0x10]
mov dword [eax + edx + 3], 0x2f2f3a65
mov dword [eax + edx], 0x656c6966
mov eax, dword [ebp + 0xc]
add edx, 7
mov dword [ecx + 8], edx
mov edx, eax
sub edx, esi
je 0x556466
mov dword [esp + 0x18], edx
xor edx, edx
mov ecx, esi
mov dword [esp + 0x20], 0
mov dword [esp + 0xc], 0
nop dword [eax]
movzx eax, byte [ecx]
test al, al
js 0x5560c0
inc ecx
mov edi, eax
lea esi, [edi - 9]
mov ebx, 1
cmp esi, 0x36
ja 0x556123
mov esi, dword [esi*4 + 0x557378]
mov al, 1
add esi, dword [esp + 0x14]
jmp esi
movzx esi, byte [ecx + 1]
mov edi, eax
and edi, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x55610a
movzx ebx, byte [ecx + 2]
shl esi, 6
and ebx, 0x3f
or ebx, esi
cmp al, 0xf0
jb 0x556175
movzx eax, byte [ecx + 3]
and edi, 7
shl ebx, 6
add ecx, 4
shl edi, 0x12
and eax, 0x3f
or eax, ebx
or edi, eax
lea esi, [edi - 9]
mov ebx, 1
cmp esi, 0x36
jbe 0x55609b
jmp 0x556123
shl edi, 6
add ecx, 2
or edi, esi
lea esi, [edi - 9]
mov ebx, 1
cmp esi, 0x36
jbe 0x55609b
cmp edi, 0x5c
je 0x5563c5
inc dword [esp + 0x20]
je 0x5571dc
cmp edi, 0x80
jb 0x556159
mov ebx, 2
cmp edi, 0x800
jb 0x556159
cmp edi, 0x10000
mov ebx, 4
sbb ebx, 0
mov eax, edx
add dword [esp + 0xc], ebx
jb 0x5571d5
cmp ecx, dword [ebp + 0xc]
mov edx, eax
jne 0x556080
jmp 0x5563c5
shl edi, 0xc
add ecx, 3
or edi, ebx
lea esi, [edi - 9]
mov ebx, 1
cmp esi, 0x36
jbe 0x55609b
jmp 0x556123
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x5562fa
test byte [eax + 8], 1
je 0x556457
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
mov esi, dword [esp + 8]
test ebx, ebx
je 0x5565fb
mov eax, dword [eax + 0x18]
cmp ebx, eax
mov dword [esp + 0x18], eax
jae 0x55666e
cmp byte [ecx + ebx], 0xbf
jg 0x556674
jmp 0x557227
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
sub eax, edx
cmp eax, 6
ja 0x5561fd
push 1
push 1
push 7
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ecx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov dword [eax + edx + 3], 0x2f2f3a65
mov dword [eax + edx], 0x656c6966
add edx, 7
mov dword [ecx + 8], edx
mov ecx, edi
mov edx, esi
call sym.url::parser::starts_with_windows_drive_letter_segment::h667e2c6aa2dbe5a5
cmp dword [ebp + 0x10], 0
mov ecx, 7
je 0x556d94
test al, al
jne 0x556d94
mov ecx, dword [ebp + 0x10]
test byte [ecx], 1
je 0x5565a2
lea eax, [ecx + 4]
jmp 0x5565af
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x5562fa
cmp edx, 0x23
je 0x55661c
mov ecx, edx
cmp edx, 0x3f
je 0x556605
cmp ecx, 0x110000
je 0x55619b
mov ecx, dword [ebp + 8]
mov edx, esi
call sym.url::parser::starts_with_windows_drive_letter_segment::h667e2c6aa2dbe5a5
test al, al
je 0x556b32
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
sub eax, edx
cmp eax, 7
ja 0x5562ae
push 1
push 1
push 8
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ecx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov dword [eax + edx + 4], 0x2f2f2f3a
mov dword [eax + edx], 0x656c6966
add edx, 8
mov byte [esp + 0x34], 0
mov dword [ecx + 8], edx
lea eax, [esp + 0x34]
xor edx, edx
push esi
push dword [ebp + 8]
push 7
push eax
call sym.url::parser::Parser::parse_path::h0abd459ae205c86a
add esp, 0x10
mov esi, edx
mov edx, dword [esp + 8]
lea ecx, [esp + 0x34]
push esi
push eax
push 4
push 0
call sym.url::parser::Parser::parse_query_and_fragment::h1d73ee2dad6d5ed1
add esp, 0x10
jmp 0x55636c
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
sub eax, edx
cmp eax, 7
ja 0x556322
push 1
push 1
push 8
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ecx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov dword [eax + edx + 4], 0x2f2f2f3a
mov dword [eax + edx], 0x656c6966
add edx, 8
mov byte [esp + 0x34], 0
mov dword [ecx + 8], edx
lea eax, [esp + 0x34]
xor edx, edx
push esi
push dword [ebp + 8]
push 7
push eax
call sym.url::parser::Parser::parse_path::h0abd459ae205c86a
add esp, 0x10
mov esi, edx
mov edx, dword [esp + 8]
lea ecx, [esp + 0x34]
push esi
push eax
push 4
push 0
call sym.url::parser::Parser::parse_query_and_fragment::h1d73ee2dad6d5ed1
add esp, 0x10
mov eax, dword [esp + 0x34]
cmp eax, 2
je 0x556e90
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
movq xmm0, qword [esp + 0x38]
mov edx, dword [esi + 8]
movsd xmm1, qword [esi]
mov dword [edi + 0x18], edx
movsd qword [edi + 0x10], xmm1
movaps xmm1, xmmword [0x576ed0]
mov dword [edi], eax
movq qword [edi + 4], xmm0
mov dword [edi + 0xc], ecx
mov word [edi + 0x1c], 0
movups xmmword [edi + 0x20], xmm1
mov dword [edi + 0x30], 7
mov byte [edi + 0x34], 0
jmp 0x556f26
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
test dl, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], esi
je 0x556473
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x34]
push dword [esp + 0x20]
call sym.__ZN95__LT_alloc..string..String_u20_as_u20_core..iter..traits..collect..FromIterator_LT_char_GT__GT_9from_iter17h53919761f04d
add esp, 4
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov cl, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
cmp eax, 2
jne 0x5567b0
movzx eax, byte [ebx]
mov edi, 2
and al, 0xdf
add al, 0xbf
cmp al, 0x19
ja 0x5567bc
movzx eax, byte [ebx + 1]
cmp eax, 0x3a
je 0x556436
cmp eax, 0x7c
jne 0x5567bc
cmp dword [esp + 0x20], 0
setne al
test byte [esp + 0x14], al
je 0x556f2e
xor edi, edi
mov dword [esp + 0xc], 1
jmp 0x556808
mov ecx, dword [eax + 0x14]
mov ebx, dword [eax + 0x18]
mov esi, dword [esp + 8]
jmp 0x556674
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], esi
jmp 0x55658d
cmp dword [esp + 0x20], 0
je 0x556549
mov ecx, dword [esp + 0x10]
mov edx, 0x2600
cmp ecx, esi
je 0x556549
dec dword [esp + 0x20]
jmp 0x5564c2
shl edi, 6
add ecx, 2
or edi, esi
mov esi, dword [ebp + 0xc]
mov ebx, edi
nop word cs:[eax + eax]
nop dword [eax]
cmp ebx, 0xd
ja 0x5564cf
bt edx, ebx
jae 0x5564cf
cmp ecx, esi
je 0x556549
movzx ebx, byte [ecx]
test bl, bl
js 0x5564e0
inc ecx
cmp ebx, 0xd
jbe 0x5564b5
cmp ebx, 0x110000
je 0x5564ba
jmp 0x55653e
movzx esi, byte [ecx + 1]
mov edi, ebx
and edi, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x556495
movzx eax, byte [ecx + 2]
shl esi, 6
and eax, 0x3f
or eax, esi
cmp bl, 0xf0
jb 0x556526
movzx ebx, byte [ecx + 3]
and edi, 7
shl eax, 6
mov esi, dword [ebp + 0xc]
add ecx, 4
shl edi, 0x12
and ebx, 0x3f
or ebx, eax
or ebx, edi
cmp ebx, 0x110000
jne 0x5564b0
jmp 0x556549
mov esi, dword [ebp + 0xc]
shl edi, 0xc
add ecx, 3
or eax, edi
mov ebx, eax
cmp ebx, 0xd
jbe 0x5564b5
jmp 0x5564cf
cmp dword [esp + 0x20], 0
jne 0x556487
mov eax, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 8]
test eax, eax
je 0x55658d
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jae 0x556791
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], 0
cmp byte [ebx + eax], 0xbf
jle 0x557275
mov eax, dword [esp + 0xc]
cmp eax, 2
je 0x556410
jmp 0x5567b0
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x10], eax
mov dword [esp + 0x74], edx
jmp 0x556867
test byte [ecx + 8], 1
je 0x55670a
lea eax, [ecx + 0xc]
mov esi, dword [eax]
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x30]
mov dword [esp + 0x20], 0x5b793c
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x18]
mov edx, esi
mov dword [esp + 0x14], ebx
sub edx, ebx
jb 0x5565f2
test ebx, ebx
je 0x556754
mov ebx, dword [esp + 0x14]
cmp ebx, eax
jae 0x55674e
mov ecx, dword [esp + 0x10]
cmp byte [ecx + ebx], 0xbf
jg 0x556754
mov dword [esp + 0x18], eax
jmp 0x55676c
mov edi, dword [esi + 8]
xor ebx, ebx
jmp 0x55669f
test byte [eax], 1
je 0x556aec
mov ebx, dword [esp + 8]
mov ecx, eax
add eax, 4
jmp 0x556aff
mov ecx, dword [esp + 8]
mov edi, eax
movsd xmm1, qword [ecx + 0x10]
mov eax, dword [ecx + 0x20]
movq xmm0, qword [ecx + 0x18]
movsd xmm2, qword [ecx]
movsd qword [esp + 0x44], xmm1
movsd xmm1, qword [ecx + 8]
mov dword [esp + 0x54], eax
movq qword [esp + 0x4c], xmm0
movsd qword [esp + 0x34], xmm2
movsd qword [esp + 0x3c], xmm1
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x34]
push esi
push dword [ebp + 8]
push edi
call sym.url::parser::Parser::fragment_only::h534dbe7f576a41a1
add esp, 0xc
jmp 0x556f26
jne 0x557227
mov eax, dword [esi]
mov edi, dword [esi + 8]
sub eax, edi
cmp eax, ebx
jae 0x55669f
mov dword [esp + 0x10], ecx
mov edx, edi
mov ecx, esi
push 1
push 1
push ebx
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
add eax, edi
push ebx
push ecx
push eax
call sym._memcpy
add esp, 0xc
add edi, ebx
mov edx, dword [esp + 0x1c]
mov dword [esi + 8], edi
movq xmm0, qword [esi]
mov esi, dword [ebp + 0x10]
mov dword [edx + 0x18], edi
movzx eax, byte [esi + 0x44]
movsd xmm1, qword [esi + 0x3c]
movq qword [edx + 0x10], xmm0
movsd xmm3, qword [esi + 0x34]
movsd xmm2, qword [esi]
mov ecx, dword [esi + 0x1c]
mov byte [edx + 0x44], al
movsd qword [edx + 0x3c], xmm1
mov eax, dword [esi + 0x30]
movups xmm1, xmmword [esi + 0x20]
movsd qword [edx + 0x34], xmm3
movsd qword [edx], xmm2
mov dword [edx + 8], 0
mov dword [edx + 0x1c], ecx
movups xmmword [edx + 0x20], xmm1
mov dword [edx + 0x30], eax
jmp 0x556f26
mov esi, dword [ecx + 0x30]
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
test esi, esi
mov dword [esp + 0x10], eax
je 0x556bfa
cmp ebx, esi
jbe 0x556bf0
mov eax, dword [esp + 0x10]
cmp byte [eax + esi], 0xbf
jg 0x556bfa
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], 0x5b794c
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], ebx
jmp 0x5572cc
jne 0x5565f2
test esi, esi
mov ebx, eax
je 0x556777
cmp esi, ebx
jae 0x556775
mov ecx, dword [esp + 0x10]
cmp byte [ecx + esi], 0xbf
jg 0x556777
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], esi
jmp 0x5572cc
jne 0x556768
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x10]
mov ecx, 0x5b7340
test edx, edx
jne 0x556c0d
jmp 0x55721d
mov ebx, dword [esp + 0x10]
cmp eax, ecx
mov dword [esp + 0x14], 0
jne 0x557275
mov eax, ecx
cmp eax, 2
je 0x556410
mov edi, eax
test eax, eax
js 0x55723c
je 0x5567da
movzx eax, byte [0x5e1184]
xor ecx, ecx
mov edx, edi
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
test eax, eax
jne 0x5567df
mov ecx, 1
jmp 0x55723e
mov eax, 1
push edi
push ebx
mov dword [esp + 0x14], eax
push eax
call sym._memcpy
add esp, 0xc
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
setne cl
mov dword [esp + 0x10], eax
test byte [esp + 0x14], cl
je 0x556816
push ebx
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
test edi, edi
je 0x55685f
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x34]
push edi
call sym.url::host::Host::parse::h6936036e2a074e14
add esp, 4
mov bh, byte [esp + 0x34]
mov bl, byte [esp + 0x35]
cmp bh, 3
jne 0x5569da
push dword [esp + 0xc]
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x1c]
mov byte [eax + 4], bl
mov dword [eax], 2
jmp 0x556ea2
mov ecx, dword [esp + 8]
mov dword [esp + 0x74], esi
mov esi, dword [ecx + 8]
xor ebx, ebx
mov byte [esp + 0x5c], 0
mov dword [esp + 0x14], eax
cmp esi, dword [ecx]
jne 0x556882
mov ecx, dword [esp + 8]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::grow_one::h2320c82b5ce9c4d5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov byte [eax + esi], 0x2f
lea eax, [esi + 1]
mov dword [ecx + 8], eax
lea eax, [esp + 0x5c]
xor edx, edx
push dword [esp + 0x74]
push dword [esp + 0x14]
push esi
push eax
call sym.url::parser::Parser::parse_path::h0abd459ae205c86a
add esp, 0x10
mov dword [esp + 0x10], eax
cmp byte [esp + 0x5c], 0
mov edi, edx
jne 0x556933
cmp esi, 7
jb 0x5571eb
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 8]
cmp edx, esi
jb 0x557204
mov eax, dword [ecx + 4]
cmp edx, 7
jbe 0x5568e2
cmp byte [eax + 7], 0xbf
jle 0x55724a
mov ebx, edx
mov ecx, edi
sub ebx, esi
jbe 0x5568f4
cmp byte [eax + esi], 0xbf
jle 0x55725b
mov edi, dword [esp + 8]
cmp esi, 7
mov dword [edi + 8], 7
jne 0x55690c
cmp edx, esi
mov edi, ecx
jne 0x556922
jmp 0x55692c
cmp edx, esi
mov edi, ecx
je 0x55692c
lea edx, [eax + 7]
add esi, eax
push ebx
push esi
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 8]
add ebx, 7
mov dword [ecx + 8], ebx
mov esi, 7
xor ebx, ebx
mov edx, dword [esp + 8]
lea ecx, [esp + 0x34]
push edi
push dword [esp + 0x14]
push 4
push 0
call sym.url::parser::Parser::parse_query_and_fragment::h1d73ee2dad6d5ed1
add esp, 0x10
mov eax, dword [esp + 0x34]
cmp eax, 2
je 0x556e90
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov ecx, dword [edx + 8]
movsd xmm0, qword [edx]
movzx edx, byte [esp + 0x7a]
mov dword [edi + 0x18], ecx
movzx ecx, word [esp + 0x78]
movsd qword [edi + 0x10], xmm0
mov byte [edi + 0x3b], dl
movq xmm0, qword [esp + 0x38]
mov word [edi + 0x39], cx
mov dword [edi], eax
mov eax, dword [esp + 0x40]
movq qword [edi + 4], xmm0
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x70]
mov word [edi + 0x1c], 0
mov dword [edi + 0x20], 4
mov dword [edi + 0x24], 7
mov dword [edi + 0x28], 7
mov dword [edi + 0x2c], esi
mov dword [edi + 0x30], esi
mov byte [edi + 0x34], bl
mov dword [edi + 0x35], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x14]
mov byte [edi + 0x44], al
jmp 0x556f26
mov dword [esp + 0x74], esi
movzx ecx, word [esp + 0x36]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
movq xmm0, qword [esp + 0x40]
test bh, bh
jne 0x556a2c
movd eax, xmm0
cmp eax, 9
jne 0x556a2c
push 9
push str.localhost
push esi
mov word [esp + 0x20], cx
movdqa xmmword [esp + 0x2c], xmm0
call sub.msvcrt.dll_memcmp
movdqa xmm0, xmmword [esp + 0x2c]
movzx ecx, word [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x5571ac
lea eax, [esp + 0x5c]
mov byte [esp + 0x5c], bh
mov byte [esp + 0x5d], bl
mov word [esp + 0x5e], cx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x34], 0x5b7cfc
mov dword [esp + 0x38], 1
movq qword [esp + 0x68], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x80], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x84], sym.__LT_url..host..Host_LT_S_GT__u20_as_u20_core..fmt..Display_GT_::fmt::h1d5f451c5ec3b7f0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 1
mov ecx, dword [esp + 8]
mov edx, 0x5b6d00
lea esi, [esp + 0x34]
push esi
call sym.core::fmt::write::h6d9651045a265294
add esp, 4
test al, al
jne 0x55727f
lea ecx, [esp + 0x5d]
movzx eax, byte [esp + 0x5c]
mov edx, dword [ecx]
mov ecx, dword [ecx + 3]
test eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x37], ecx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
je 0x556b5a
cmp eax, 1
jne 0x556b7a
mov eax, dword [esp + 0x34]
mov bl, 2
mov dword [esp + 0x70], eax
jmp 0x556b74
test byte [eax + 8], 1
mov ebx, dword [esp + 8]
mov ecx, eax
je 0x556f37
add eax, 0xc
mov edx, dword [eax]
mov esi, dword [ecx + 0x14]
test edx, edx
mov dword [esp + 0x10], esi
je 0x556b4a
mov eax, dword [ecx + 0x18]
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 0x18], eax
jae 0x556f7b
mov eax, dword [esp + 0x10]
cmp byte [eax + edx], 0xbf
jg 0x556f81
jmp 0x5572bc
mov edx, dword [ebp + 0x10]
mov esi, dword [esp + 8]
test byte [edx], 1
je 0x556f43
lea eax, [edx + 4]
jmp 0x556f50
mov edi, dword [ebx + 8]
mov dword [esp + 0xc], 0
jmp 0x556fac
test edx, edx
setne bl
cmp dword [esp + 0x37], 0
je 0x556b74
push ecx
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
mov dword [esp + 0x14], eax
jmp 0x556b9f
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
movzx edx, word [esp + 0x61]
movzx ecx, byte [esp + 0x63]
mov bl, 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x70], esi
mov word [esp + 0x78], dx
mov byte [esp + 0x7a], cl
mov eax, dword [esp + 0xc]
mov cl, 1
mov dword [esp + 0x7c], ecx
push eax
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 8]
test bl, bl
setne byte [esp + 0x5c]
cmp byte [esp + 0x7c], 0
mov esi, dword [ecx + 8]
je 0x556875
lea eax, [esp + 0x5c]
xor edx, edx
push dword [esp + 0x74]
push dword [esp + 0x14]
push eax
call sym.url::parser::Parser::parse_path_start::h5fefb4f3c89991f9
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x5568af
mov eax, dword [esp + 0x10]
jne 0x556735
mov edx, ebx
sub edx, esi
add esi, eax
mov ecx, 0x5b7340
test edx, edx
je 0x55721d
cmp byte [esi], 0x2f
jne 0x55721d
mov eax, esi
dec edx
mov dword [esp + 0x34], 0x2f
inc eax
mov esi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], 0x2f
mov byte [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], edx
mov word [esp + 0x58], 1
lea ecx, [esp + 0x80]
lea edx, [esp + 0x34]
call sym.__LT_core..str..pattern..CharSearcher_u20_as_u20_core..str..pattern..Searcher_GT_::next_match::he5c0d753791708cd
test byte [esp + 0x80], 1
mov dword [esp + 0x18], ebx
je 0x556c99
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x50]
mov ebx, esi
mov esi, dword [ebp + 0xc]
sub eax, ecx
add ebx, ecx
mov ecx, 7
cmp eax, 2
je 0x556cd8
jmp 0x556d55
cmp byte [esp + 0x59], 0
mov esi, dword [ebp + 0xc]
mov ecx, 7
jne 0x557218
cmp byte [esp + 0x58], 1
jne 0x556cbd
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
jmp 0x556ccd
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x557218
sub eax, ebx
add ebx, dword [esp + 0x38]
cmp eax, 2
jne 0x556d55
movzx eax, byte [ebx]
and al, 0xdf
add al, 0xbf
cmp al, 0x19
ja 0x556d55
cmp byte [ebx + 1], 0x3a
jne 0x556d55
mov eax, dword [esp + 8]
mov esi, dword [eax + 8]
cmp esi, dword [eax]
jne 0x556cfd
mov ecx, dword [esp + 8]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::grow_one::h2320c82b5ce9c4d5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov byte [eax + esi], 0x2f
inc esi
mov dword [ecx + 8], esi
mov eax, dword [ecx]
sub eax, esi
cmp eax, 1
ja 0x556d2c
mov edx, esi
push 1
push 1
push 2
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 8]
mov eax, dword [ecx + 4]
movzx edx, word [ebx]
mov dword [esp + 0x20], 0
mov word [eax + esi], dx
add esi, 2
mov eax, dword [esp + 0xc]
mov dword [ecx + 8], esi
mov esi, dword [ebp + 0xc]
mov ecx, 7
jmp 0x556e36
mov eax, dword [ebp + 0x10]
movzx edx, byte [eax + 0x34]
test dl, dl
je 0x556d94
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x2c]
mov ecx, dword [eax + 0x28]
mov eax, edx
mov dword [esp + 0x14], ecx
sub eax, ecx
mov dword [esp + 0x70], eax
jb 0x556db5
mov ebx, dword [esp + 0x18]
test ecx, ecx
je 0x556da3
mov esi, dword [esp + 0x14]
cmp esi, ebx
jae 0x556da1
mov ecx, dword [esp + 0x10]
cmp byte [ecx + esi], 0xbf
jg 0x556da3
jmp 0x556db5
mov dword [esp + 0x20], 0
jmp 0x556e32
jne 0x556db5
test edx, edx
je 0x556dc8
cmp edx, ebx
jae 0x556dc6
mov ecx, dword [esp + 0x10]
cmp byte [ecx + edx], 0xbf
jg 0x556dc8
mov dword [esp + 0x20], 0x5b793c
mov dword [esp + 0xc], edx
jmp 0x5572cc
jne 0x556db5
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x70]
mov eax, dword [esi]
mov edx, dword [esi + 8]
sub eax, edx
cmp eax, ebx
jae 0x556df1
mov ecx, esi
push 1
push 1
push ebx
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov esi, dword [esp + 8]
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esi + 4]
add eax, edx
push ebx
push ecx
push eax
mov ebx, edx
call sym._memcpy
mov ecx, ebx
add esp, 0xc
mov eax, dword [ebp + 0x10]
add ecx, dword [esp + 0x70]
mov dword [esi + 8], ecx
movq xmm0, qword [eax + 0x35]
movsd xmm1, qword [eax + 0x3d]
mov esi, dword [ebp + 0xc]
movq qword [esp + 0x5c], xmm0
movsd qword [esp + 0x64], xmm1
mov eax, dword [esp + 0xc]
add eax, 0xffffffdd
mov ebx, ecx
cmp eax, 0x1c
ja 0x556e4a
mov ecx, 0x10001001
bt ecx, eax
jb 0x556e51
cmp dword [esp + 0xc], 0x5c
jne 0x556e54
mov edi, dword [ebp + 8]
mov byte [esp + 0x34], 0
mov ecx, dword [esp + 8]
lea eax, [esp + 0x34]
xor edx, edx
push esi
push edi
push ebx
push eax
call sym.url::parser::Parser::parse_path::h0abd459ae205c86a
add esp, 0x10
mov esi, edx
mov edx, dword [esp + 8]
lea ecx, [esp + 0x34]
push esi
push eax
push 4
push 0
call sym.url::parser::Parser::parse_query_and_fragment::h1d73ee2dad6d5ed1
add esp, 0x10
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x556ebd
movzx eax, byte [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 4], al
mov dword [ecx], 2
mov eax, dword [esp + 8]
cmp dword [eax], 0
je 0x556f26
push dword [eax + 4]
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
jmp 0x556f26
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x1c]
movsd xmm2, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x64]
mov ecx, dword [edx + 8]
movq xmm0, qword [edx]
mov dword [esi + 0x18], ecx
movq qword [esi + 0x10], xmm0
movsd qword [esi + 0x3d], xmm1
movsd qword [esi + 0x35], xmm2
mov dword [esi], eax
movsd xmm1, qword [esp + 0x38]
mov eax, dword [esp + 0x40]
movsd qword [esi + 4], xmm1
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x20]
mov word [esi + 0x1c], 0
mov dword [esi + 0x20], 4
mov dword [esi + 0x24], 7
mov dword [esi + 0x28], 7
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov byte [esi + 0x34], al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 8]
jmp 0x556867
mov eax, dword [eax + 0x14]
mov esi, dword [ecx + 0x18]
mov dword [esp + 0x10], eax
jmp 0x556f85
test byte [edx + 8], 1
je 0x55705a
lea eax, [edx + 0xc]
mov ebx, dword [eax]
mov ecx, dword [edx + 0x14]
test ebx, ebx
je 0x557053
mov eax, dword [edx + 0x18]
cmp ebx, eax
mov dword [esp + 0x18], eax
jae 0x557062
cmp byte [ecx + ebx], 0xbf
jg 0x557068
jmp 0x5572b4
jne 0x5572bc
mov esi, dword [esp + 0xc]
mov eax, dword [ebx]
mov edi, dword [ebx + 8]
mov dword [esp + 0xc], esi
sub eax, edi
cmp eax, esi
jae 0x556fac
mov edx, edi
mov ecx, ebx
push 1
push 1
push esi
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov ebx, dword [esp + 8]
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 4]
add eax, edi
mov esi, dword [esp + 0xc]
push esi
push dword [esp + 0x14]
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [ebp + 0x10]
add edi, esi
mov dword [ebx + 8], edi
mov esi, dword [eax + 0x20]
mov edx, ebx
lea ecx, [esp + 0x34]
push dword [ebp + 0xc]
push dword [ebp + 8]
push esi
push 0
call sym.url::parser::Parser::parse_query_and_fragment::h1d73ee2dad6d5ed1
add esp, 0x10
mov eax, dword [esp + 0x34]
cmp eax, 2
je 0x556e90
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov ecx, dword [edx + 8]
movsd xmm0, qword [edx]
mov edx, dword [ebp + 0x10]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [edx + 0x34]
mov dword [edi + 0x18], ecx
movzx ecx, byte [edx + 0x44]
movsd xmm1, qword [edx + 0x3c]
movsd qword [edi + 0x34], xmm0
movsd xmm0, qword [esp + 0x38]
mov byte [edi + 0x44], cl
movsd qword [edi + 0x3c], xmm1
mov dword [edi], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [edx + 0x1c]
movsd qword [edi + 4], xmm0
movdqu xmm0, xmmword [edx + 0x24]
mov dword [edi + 0xc], eax
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], esi
movdqu xmmword [edi + 0x24], xmm0
jmp 0x556f26
mov edi, dword [esi + 8]
xor ebx, ebx
jmp 0x55709b
mov ecx, dword [edx + 0x14]
mov ebx, dword [edx + 0x18]
jmp 0x557068
jne 0x5572b4
mov eax, dword [esi]
mov edi, dword [esi + 8]
sub eax, edi
cmp eax, ebx
jae 0x55709b
mov dword [esp + 0x10], ecx
mov edx, edi
mov ecx, esi
push 1
push 1
mov dword [esp + 0x14], ebx
push ebx
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
add esp, 0xc
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
add eax, edi
push ebx
push ecx
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [ebp + 0x10]
add edi, ebx
mov ecx, edi
mov dword [esi + 8], edi
mov edx, dword [eax + 0x30]
sub ecx, edx
mov dword [esp + 0x14], edx
je 0x557113
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [eax + 4]
test esi, esi
je 0x5570e1
cmp edi, esi
jbe 0x55729e
cmp byte [edx + esi], 0xc0
jl 0x55729e
cmp ecx, 2
jne 0x557101
mov eax, dword [esp + 0x14]
movzx eax, byte [edx + eax]
and al, 0xdf
add al, 0xbf
cmp al, 0x19
ja 0x557101
mov eax, dword [esp + 0x14]
cmp byte [edx + eax + 1], 0x3a
je 0x557113
mov ecx, dword [esp + 8]
xor edx, edx
push dword [esp + 0x14]
call sym.url::parser::Parser::pop_path::h0e647443dca47df6
add esp, 4
mov byte [esp + 0x34], 1
mov ecx, dword [esp + 8]
lea eax, [esp + 0x34]
xor edx, edx
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esp + 0x1c]
push eax
call sym.url::parser::Parser::parse_path::h0abd459ae205c86a
add esp, 0x10
mov dword [esp + 0x10], eax
mov eax, edx
mov edx, dword [esp + 8]
mov esi, dword [ebp + 0x10]
movsd xmm1, qword [edx + 0x10]
mov ecx, dword [edx + 0x20]
movq xmm0, qword [edx + 0x18]
movsd xmm2, qword [edx]
movzx ebx, word [esi + 0x1e]
lea edi, [esi + 0x34]
movsd qword [esp + 0x44], xmm1
movsd xmm1, qword [edx + 8]
mov dword [esp + 0x54], ecx
movq qword [esp + 0x4c], xmm0
movsd qword [esp + 0x34], xmm2
movsd qword [esp + 0x3c], xmm1
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x34]
push eax
push dword [esp + 0x14]
push dword [esp + 0x1c]
push ebx
push dword [esi + 0x1c]
push edi
push dword [esi + 0x2c]
push dword [esi + 0x28]
push dword [esi + 0x24]
push dword [esi + 0x20]
push 0
call sym.url::parser::Parser::with_query_and_fragment::h84611c0db4025261
add esp, 0x2c
jmp 0x556f26
test edi, edi
je 0x5571be
push esi
push 0
push dword [0x5e1120]
call sub.kernel32.dll_HeapFree
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
xor ebx, ebx
mov dword [esp + 0x7c], 0
jmp 0x556ba9
mov ecx, 0x5b7484
jmp 0x5571e1
mov ecx, 0x5b7474
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
jmp 0x5572e8
mov edx, esi
mov ecx, 7
push 0x5b6f84
call sym.core::slice::index::slice_index_order_fail::hcb31333d79b0be37
add esp, 4
jmp 0x5572e8
mov ecx, esi
push 0x5b6f84
call sym.core::slice::index::slice_end_index_len_fail::h31017dc9c470f2c8
add esp, 4
jmp 0x5572e8
mov ecx, 0x5b7350
call sym.core::option::unwrap_failed::h4002a2165d665d64
jmp 0x5572e8
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 0x5b7360
jmp 0x5572c4
xor ecx, ecx
mov edx, edi
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
jmp 0x5572e8
mov eax, 0x5b6fc4
mov edx, 0x2e
mov ecx, str.assertion_failed:_self.is_char_boundary_start_
jmp 0x55726a
mov eax, 0x5b7000
mov edx, 0x2c
mov ecx, str.assertion_failed:_self.is_char_boundary_end_Om_
push eax
call sym.core::panicking::panic::hf6244c8fb5815825
add esp, 4
jmp 0x5572e8
mov dword [esp + 0x20], 0x5b7464
jmp 0x5572cc
mov edx, 0x2b
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x5b7454
push 0x5b6e14
push esi
call sym.core::result::unwrap_failed::h534a40e08cfe968a
add esp, 0xc
jmp 0x5572e8
mov dword [esp + 0x20], 0x5b7564
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], edi
jmp 0x5572cc
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 0x5b795c
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push dword [esp + 0x20]
push dword [esp + 0x10]
push dword [esp + 0x1c]
call sym.core::str::slice_error_fail::h3ba52b33a833cd0d
add esp, 0xc
ud2