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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jae 0x100019f7
mov dword [esp + 0x64], ecx
sub esp, 8
movsd qword [esp], xmm0
call sub.msvcrt.dll_log10
pop eax
pop ecx
fstp qword [esp + 0xa0]
movsd xmm0, qword [esp + 0xa0]
divsd xmm0, qword [0x10172080]
movsd qword [esp + 0x10], xmm0
sub esp, 8
movsd qword [esp], xmm0
call sym._floor
pop eax
pop ecx
fstp qword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0x10]
subsd xmm1, xmm0
movapd xmmword [esp + 0xf0], xmm0
mulsd xmm1, qword [0x10172088]
sub esp, 8
movsd qword [esp], xmm1
call sym._exp2
pop eax
pop ecx
lea ecx, [esp + 0x48]
lea eax, [esp + 0x104]
fstp qword [esp + 0x48]
mov dword [eax], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 4], sym.core::fmt::float::__LT_impl_u20_core..fmt..Display_u20_for_u20_f64_GT_::fmt::h054bbdf29e818624
and dword [ecx], 0
xor esi, esi
inc esi
mov dword [ecx + 4], esi
push 2
pop edi
mov dword [ecx + 8], edi
mov dword [ecx + 0x10], 0x20
and dword [ecx + 0x14], 0
and dword [ecx + 0x18], 0
lea edx, [esp + 0x88]
mov byte [ecx + 0x1c], 3
mov dword [edx], str._rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6librarycore_srccharmethods.rs__
mov dword [edx + 4], esi
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], esi
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
lea esi, [esp + 0x7c]
mov ecx, esi
call sym.alloc::fmt::format::h28429d8526483b61
mov edx, dword [esi + 4]
lea ebx, [esp + 0xb0]
mov ecx, ebx
mov dword [esp + 0x68], edx
push edi
push 0x1017277a
push dword [esi + 8]
call sym.core::str::pattern::StrSearcher::new::h31365d9c89f7e80a
add esp, 0xc
mov ecx, dword [ebx + 0x24]
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx]
mov edx, dword [ebx + 0x30]
mov esi, dword [ebx + 0x14]
mov dword [esp + 0x20], ecx
mov cl, byte [ebx + 0xe]
mov dword [esp + 0x3c], edi
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], edx
mov byte [esp + 0xf], cl
mov ecx, dword [ebx + 0x34]
mov dword [esp + 8], edi
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], ecx
mov ecx, dword [ebx + 0x3c]
mov bh, byte [ebx + 0xd]
mov edi, ebx
mov ebx, eax
mov eax, ecx
sub esi, ecx
mov dword [esp + 4], ecx
not eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x70], eax
add eax, edx
mov edx, edi
mov dword [esp + 0x6c], eax
mov al, dh
mov dword [esp + 0x24], edx
cmp dword [esp + 0x78], 0
jne 0x10001821
xor esi, esi
cmp byte [esp + 0xf], 0
jne 0x10001a1a
mov ah, al
xor ah, 1
test ebx, ebx
je 0x1000179c
cmp ebx, dword [esp + 0x10]
jae 0x100017a7
mov ecx, dword [esp + 0x30]
cmp byte [ecx + ebx], 0xbf
jg 0x100017b1
jmp 0x10001c13
test al, al
mov al, ah
jne 0x10001766
jmp 0x10001a1a
mov ecx, dword [esp + 0x30]
jne 0x10001c13
movzx edx, byte [ecx + ebx - 1]
test dl, dl
jns 0x10001812
mov esi, ebx
movzx ebx, byte [ecx + ebx - 2]
cmp bl, 0xc0
jge 0x100017ee
mov dword [esp + 0x2c], edx
movzx edx, byte [ecx + esi - 3]
cmp dl, 0xc0
mov dword [esp + 0x34], edx
jge 0x100017f3
movzx esi, byte [ecx + esi - 4]
mov ecx, dword [esp + 0x34]
and esi, 7
and ecx, 0x3f
shl esi, 6
or ecx, esi
jmp 0x100017fa
and ebx, 0x1f
jmp 0x10001806
mov ecx, dword [esp + 0x34]
and ecx, 0xf
mov edx, dword [esp + 0x2c]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
shl ebx, 6
and edx, 0x3f
or edx, ebx
mov ebx, dword [esp + 0x40]
test al, al
mov al, ah
jne 0x10001766
jmp 0x10001a09
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x24]
test esi, esi
mov byte [esp + 0xbd], ah
je 0x10001b8d
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0x74], eax
mov eax, esi
mov dword [esp + 0x24], edx
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0x54], eax
mov eax, esi
cmp ecx, edi
mov ebx, edi
mov dword [esp + 0x28], edi
cmovb ebx, ecx
cmp dword [esp + 0x20], 0xffffffff
cmove ebx, ecx
cmove edi, dword [esp + 4]
lea ecx, [ebx - 1]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], edi
mov edi, eax
mov esi, edi
sub esi, dword [esp + 4]
cmp esi, dword [esp + 0x10]
jae 0x10001a18
cmp ecx, edi
jne 0x10001a18
mov eax, dword [esp + 0x30]
mov ebx, edx
mov cl, byte [eax + esi]
xor eax, eax
xor edx, edx
inc edx
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and edx, dword [esp + 0x74]
and eax, ebx
or edx, eax
je 0x10001943
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x5c], esi
lea edx, [eax + edi]
mov eax, dword [esp + 0x6c]
lea esi, [eax + edi]
mov eax, ebx
sub eax, 1
jb 0x1000195a
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 4]
jae 0x10001b94
lea ecx, [edx + ebx]
cmp ecx, dword [esp + 0x10]
jae 0x10001ba4
mov ecx, dword [esp + 0x44]
mov cl, byte [ecx + ebx - 1]
cmp cl, byte [esi + ebx]
mov ebx, eax
je 0x100018f6
add eax, dword [esp + 0x54]
cmp dword [esp + 0x20], 0xffffffff
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov edi, eax
je 0x1000189b
jmp 0x100019cb
cmp dword [esp + 0x20], 0xffffffff
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 8]
mov edi, esi
je 0x1000189b
jmp 0x100019bc
add edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x2c]
jae 0x100019d8
cmp ecx, dword [esp + 4]
jae 0x10001bb2
cmp edi, dword [esp + 0x10]
jae 0x10001bc9
mov eax, dword [esp + 0x44]
mov al, byte [eax + ecx]
inc ecx
cmp al, byte [esi + edi]
lea edi, [edi + 1]
je 0x1000196e
cmp dword [esp + 0x20], 0xffffffff
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 8]
je 0x1000189b
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
jmp 0x1000186e
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov eax, esi
jmp 0x1000186e
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jmp 0x1000186e
cmp dword [esp + 0x20], 0xffffffff
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
cmovne eax, dword [esp + 4]
mov dword [esp + 8], ecx
mov dword [esp + 0x28], eax
jmp 0x10001760
mov edx, str.0_B_home_lanbyshell_.cargo_registry_src_index.crates.io_6f17d22bba15001f_universal_hash_0.4.1_src_lib.rs
push 3
call sym.__LT_str_u20_as_u20_alloc..string..ToString_GT_::to_string::h76b562e98917fdcd
pop eax
jmp 0x10001b85
xor eax, eax
cmp edx, 0x110000
cmove ebx, eax
mov esi, ebx
jmp 0x10001a1a
mov esi, ecx
mov edi, dword [esp + 0x68]
lea ecx, [esp + 0x48]
mov edx, edi
push esi
call sym.__LT_str_u20_as_u20_alloc..string..ToString_GT_::to_string::h76b562e98917fdcd
pop eax
mov ecx, dword [esp + 0x7c]
mov edx, edi
call sym.__LT_alloc..raw_vec..RawVec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h1d621a182bf039a7
movapd xmm1, xmmword [esp + 0xf0]
xorpd xmm0, xmm0
maxsd xmm1, xmm0
minsd xmm1, qword [0x10172090]
cvttsd2si eax, xmm1
subsd xmm1, qword [0x10172098]
mov edx, eax
sar edx, 0x1f
cvttsd2si ecx, xmm1
and ecx, edx
or ecx, eax
cmp ecx, 9
jae 0x10001bd9
mov edx, dword [esp + 0x50]
mov eax, dword [ecx*8 + 0x10172794]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ecx*8 + 0x10172798]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
push 0xfffffffffffffff0
pop eax
xor edi, edi
inc edi
test eax, eax
je 0x10001ac4
add edi, dword [esp + eax + 0x9c]
lea eax, [eax + 8]
jae 0x10001aa2
push 0x35
pop edx
mov ecx, 0x101cf3d4
push 0x101cf464
call dbg.expect_failed
lea ebx, [esp + 0xb0]
mov dword [esp + 0x10], esi
mov esi, edx
mov edx, edi
mov ecx, ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::try_allocate_in::h59895ded45902fe8
mov ecx, ebx
call sym.alloc::raw_vec::handle_reserve::h0810750adb436351
lea ebx, [esp + 0x7c]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x10]
and dword [ebx + 8], 0
mov ecx, ebx
add esi, edx
push esi
call fcn.100e20ad
pop eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov esi, edi
mov dword [esp + 0x10], edi
add ecx, eax
sub esi, eax
push 0xfffffffffffffff8
pop ebx
test ebx, ebx
je 0x10001b51
test esi, esi
je 0x10001be6
mov edx, dword [esp + ebx + 0x9c]
mov eax, dword [esp + ebx + 0x98]
dec esi
mov byte [ecx], 0x20
sub esi, edx
jb 0x10001be6
lea edi, [ecx + edx + 1]
inc ecx
push 0x101cf454
push edx
push eax
call sym.core::slice::__LT_impl_u20__u5b_T_u5d__GT_::copy_from_slice::h0a985cd3f796db8f
add esp, 0xc
add ebx, 8
mov ecx, edi
jmp 0x10001b10
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x64]
movsd xmm0, qword [esp + 0x7c]
mov edx, dword [esp + 0x4c]
sub ecx, esi
movsd qword [esp + 0xb0], xmm0
movsd qword [eax], xmm0
mov dword [esp + 0xb8], ecx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x48]
call sym.__LT_alloc..raw_vec..RawVec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h1d621a182bf039a7
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
jmp 0x10001a1a
mov edx, dword [esp + 4]
mov ecx, eax
push 0x101b010c
call dbg.panic_bounds_check
mov edx, dword [esp + 0x10]
push 0x101b011c
call dbg.panic_bounds_check
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
cmp ecx, edx
cmovbe ecx, edx
push 0x101b00ec
call dbg.panic_bounds_check
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0x101b00fc
call dbg.panic_bounds_check
push 9
pop edx
push 0x101727dc
call dbg.panic_bounds_check
lea ecx, [esp + 0xb0]
mov edx, 0x101cf454
mov dword [ecx], str.mid___len
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6librarycore_srccharmethods.rs__
and dword [ecx + 0xc], 0
call dbg.panic_fmt
mov edx, dword [esp + 0x10]
push 0x101b02c4
push ebx
push 0
call dbg.slice_error_fail