Function at 0x10001582
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 0x100019a9
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 [0x10166080]
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 [0x10166088]
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_g
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 0x101666ea
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 0x100017d3
xor esi, esi
cmp byte [esp + 0xf], 0
jne 0x100019cc
mov ah, al
xor ah, 1
test ebx, ebx
je 0x1000174e
cmp ebx, dword [esp + 0x10]
jae 0x10001759
mov ecx, dword [esp + 0x30]
cmp byte [ecx + ebx], 0xbf
jg 0x10001763
jmp 0x10001bc5
test al, al
mov al, ah
jne 0x10001718
jmp 0x100019cc
mov ecx, dword [esp + 0x30]
jne 0x10001bc5
movzx edx, byte [ecx + ebx - 1]
test dl, dl
jns 0x100017c4
mov esi, ebx
movzx ebx, byte [ecx + ebx - 2]
cmp bl, 0xc0
jge 0x100017a0
mov dword [esp + 0x2c], edx
movzx edx, byte [ecx + esi - 3]
cmp dl, 0xc0
mov dword [esp + 0x34], edx
jge 0x100017a5
movzx esi, byte [ecx + esi - 4]
mov ecx, dword [esp + 0x34]
and esi, 7
and ecx, 0x3f
shl esi, 6
or ecx, esi
jmp 0x100017ac
and ebx, 0x1f
jmp 0x100017b8
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 0x10001718
jmp 0x100019bb
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x24]
test esi, esi
mov byte [esp + 0xbd], ah
je 0x10001b3f
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 0x100019ca
cmp ecx, edi
jne 0x100019ca
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 0x100018f5
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 0x1000190c
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 4]
jae 0x10001b46
lea ecx, [edx + ebx]
cmp ecx, dword [esp + 0x10]
jae 0x10001b56
mov ecx, dword [esp + 0x44]
mov cl, byte [ecx + ebx - 1]
cmp cl, byte [esi + ebx]
mov ebx, eax
je 0x100018a8
add eax, dword [esp + 0x54]
cmp dword [esp + 0x20], 0xffffffff
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov edi, eax
je 0x1000184d
jmp 0x1000197d
cmp dword [esp + 0x20], 0xffffffff
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 8]
mov edi, esi
je 0x1000184d
jmp 0x1000196e
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 0x1000198a
cmp ecx, dword [esp + 4]
jae 0x10001b64
cmp edi, dword [esp + 0x10]
jae 0x10001b7b
mov eax, dword [esp + 0x44]
mov al, byte [eax + ecx]
inc ecx
cmp al, byte [esi + edi]
lea edi, [edi + 1]
je 0x10001920
cmp dword [esp + 0x20], 0xffffffff
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 8]
je 0x1000184d
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
jmp 0x10001820
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov eax, esi
jmp 0x10001820
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jmp 0x10001820
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 0x10001712
mov edx, str.0_B_home_lanbyshell_.cargo_registry_src_index.crates.io_6f17d22bba15001f_universal_hash_0.4.1_src_lib.rs_g
push 3
call sym.__LT_str_u20_as_u20_alloc..string..ToString_GT_::to_string::h76b562e98917fdcd
pop eax
jmp 0x10001b37
xor eax, eax
cmp edx, 0x110000
cmove ebx, eax
mov esi, ebx
jmp 0x100019cc
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.core::ptr::drop_in_place_LT_alloc..string..String_GT_::hf4d2ac98b8d711c2
movapd xmm1, xmmword [esp + 0xf0]
xorpd xmm0, xmm0
maxsd xmm1, xmm0
minsd xmm1, qword [0x10166090]
cvttsd2si eax, xmm1
subsd xmm1, qword [0x10166098]
mov edx, eax
sar edx, 0x1f
cvttsd2si ecx, xmm1
and ecx, edx
or ecx, eax
cmp ecx, 9
jae 0x10001b8b
mov edx, dword [esp + 0x50]
mov eax, dword [ecx*8 + 0x10166704]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ecx*8 + 0x10166708]
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 0x10001a76
add edi, dword [esp + eax + 0x9c]
lea eax, [eax + 8]
jae 0x10001a54
push 0x35
pop edx
mov ecx, str.attempt_to_join_into_collection_with_len___usize::MAX_rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6library_alloc_src_str.rs
push 0x101bfb64
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::h2911537994099da9
mov ecx, ebx
call sym.alloc::raw_vec::handle_reserve::h25b37d4abb8f209b
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.100e4dc4
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 0x10001b03
test esi, esi
je 0x10001b98
mov edx, dword [esp + ebx + 0x9c]
mov eax, dword [esp + ebx + 0x98]
dec esi
mov byte [ecx], 0x20
sub esi, edx
jb 0x10001b98
lea edi, [ecx + edx + 1]
inc ecx
push 0x101bfb54
push edx
push eax
call sym.core::slice::__LT_impl_u20__u5b_T_u5d__GT_::copy_from_slice::h077a5a2d401f045f
add esp, 0xc
add ebx, 8
mov ecx, edi
jmp 0x10001ac2
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.core::ptr::drop_in_place_LT_alloc..string..String_GT_::hf4d2ac98b8d711c2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
jmp 0x100019cc
mov edx, dword [esp + 4]
mov ecx, eax
push 0x101a0e0c
call dbg.panic_bounds_check
mov edx, dword [esp + 0x10]
push 0x101a0e1c
call dbg.panic_bounds_check
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
cmp ecx, edx
cmovbe ecx, edx
push 0x101a0dec
call dbg.panic_bounds_check
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0x101a0dfc
call dbg.panic_bounds_check
push 9
pop edx
push 0x1016674c
call dbg.panic_bounds_check
lea ecx, [esp + 0xb0]
mov edx, 0x101bfb54
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_g
and dword [ecx + 0xc], 0
call dbg.panic_fmt
mov edx, dword [esp + 0x10]
push 0x101a0fc4
push ebx
push 0
call dbg.slice_error_fail