Function at 0x45f8ba
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x8c
lea eax, [ebp - 0x18]
mov esi, edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x504300
mov edx, dword fs:[0]
mov dword [eax], edx
mov dword fs:[0], eax
mov edi, dword [esi + 0x20]
test edi, edi
je 0x45fafb
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [ebp - 0x40], ecx
xor ebx, ebx
div edi
mov dword [ebp - 0x2c], 0
movd xmm1, eax
mov dword [ebp - 0x3c], eax
por xmm1, xmmword [0x53b570]
subsd xmm1, qword [0x53b500]
cvtsd2ss xmm1, xmm1
mulss xmm1, xmm0
movaps xmm0, xmm1
cvttss2si edx, xmm1
subss xmm0, dword [0x53b5d0]
mov ecx, edx
sar ecx, 0x1f
cvttss2si edi, xmm0
xorps xmm0, xmm0
and edi, ecx
or edi, edx
ucomiss xmm1, xmm0
cmovb edi, ebx
seta cl
xor edx, edx
dec edx
ucomiss xmm1, dword [0x53b5d4]
cmova edi, edx
mov edx, dword [esi + 0x3c]
cmp edi, eax
mov dword [ebp - 0x38], edi
mov edi, dword [ebp + 0xc]
setb al
and al, cl
mov byte [ebp - 0x1d], al
mov dword [ebp - 0x28], edx
je 0x45fa0f
mov ebx, edx
xor eax, eax
sub ebx, 2
cmovb ebx, eax
xor eax, eax
inc eax
cmp ebx, 2
mov dword [ebp - 0x2c], eax
jae 0x45f990
mov dword [ebp - 0x24], eax
jmp 0x45fa0f
movss dword [esp], xmm1
movups xmmword [ebp - 0x68], xmm1
call fcn.0052bdb6
movd xmm0, ebx
fstp dword [ebp - 0x44]
por xmm0, xmmword [0x53b570]
movups xmm1, xmmword [ebp - 0x68]
subsd xmm0, qword [0x53b500]
subss xmm1, dword [ebp - 0x44]
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm1
movaps xmm1, xmm0
cvttss2si ecx, xmm0
subss xmm1, dword [0x53b5d0]
mov edx, ecx
sar edx, 0x1f
cvttss2si eax, xmm1
xorps xmm1, xmm1
and eax, edx
mov edx, dword [ebp - 0x28]
or eax, ecx
ucomiss xmm0, xmm1
mov ecx, 0
cmovb eax, ecx
ucomiss xmm0, dword [0x53b5d4]
mov ecx, 0xffffffff
cmova eax, ecx
mov ecx, 0
sub ebx, eax
cmovb ebx, ecx
mov dword [ebp - 0x24], ebx
mov ecx, dword [esi + 0x38]
lea eax, [edx - 1]
mov dword [esp + 4], 0x585d04
mov dword [esp], eax
mov dword [ebp - 0x68], ecx
call fcn.004608e7
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov al, 9
lea ecx, [ebp - 0x90]
mov byte [ecx + 0xc], al
mov byte [ecx + 0xe], al
and dword [ecx], 0
and dword [ecx + 8], 0
test edi, edi
mov dword [ecx + 0x10], 2
cmove edi, ecx
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x7c]
mov edx, edi
call fcn.00460685
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
movzx ecx, byte [ebp - 0x1d]
xor eax, eax
mov edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x28]
movsd xmm0, qword [ebp - 0x7c]
movsd xmm1, qword [ebp - 0x74]
sub edx, esi
movsd qword [ebp - 0x50], xmm1
movsd qword [ebp - 0x58], xmm0
cmovb edx, eax
movsd xmm0, qword [ebp - 0x58]
movsd xmm1, qword [ebp - 0x50]
sub edx, ecx
mov ecx, dword [ebp - 0x6c]
cmovb edx, eax
or dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], ebx
mov dword [ecx + 0x30], esi
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x24]
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x10], edx
mov edx, dword [ebp - 0x48]
movsd qword [ecx + 0x1c], xmm1
movsd qword [ecx + 0x14], xmm0
mov dword [ecx + 0x24], edx
lea ecx, [ebp - 0x90]
call fcn.00427334
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], str.C:UsersMark.cargo_registry_srcindex.crates.io_6f17d22bba15001findicatif_0.17.6_src_style.rsT_X
push 0x19
pop edx
mov ecx, str.attempt_to_divide_by_zeroC:UsersMark.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
call fcn.005373b0
push ebp
sub esp, 8
add ebp, 0xc
lea ecx, [ebp - 0x90]
call fcn.00427334
add esp, 8
pop ebp
ret