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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x104
mov edi, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ebp, edx
mov edx, dword [esp + 0x118]
mov eax, dword [ecx]
mov esi, ecx
mov ecx, ebp
push ebx
push edi
mov dword [esp + 8], eax
push eax
push dword [esp + 0x128]
call fcn.00460bda
add esp, 0x10
test al, al
je 0x46024a
xor ebx, ebx
jmp 0x460b7c
mov edx, dword [esp + 0x118]
mov dword [esp + 0x64], ebp
mov ecx, ebp
push ebx
push edi
push dword [esp + 8]
push dword [esp + 0x128]
call fcn.004e4ee0
add esp, 0x10
mov ebx, edx
mov dl, byte [esi + 0x12]
mov dword [esp + 0x14], ecx
movzx ecx, word [esi + 0x10]
mov edi, eax
mov dword [esp + 0x68], esi
test dl, dl
mov byte [esp + 0x27], dl
mov word [esp], cx
je 0x4604f6
cmp word [esp], 0
je 0x460b89
mov esi, 0x3e8
mov eax, edi
mov ecx, ebx
mov dword [esp + 0xc], ebx
mov ebp, edi
mul esi
mov dword [esp + 8], eax
mov eax, ecx
mov ebx, edx
xor ecx, ecx
mul esi
mov esi, dword [esp + 0x14]
add eax, ebx
mov edi, edx
adc edi, ecx
mov ebx, eax
xor edx, edx
mov ecx, 0xf4240
mov eax, esi
div ecx
add eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov eax, 0
adc ebx, eax
adc edi, eax
mov eax, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov edi, 0x3b9aca00
setb byte [esp + 8]
mul edi
mov ebp, eax
mov eax, dword [esp + 0xc]
mov ecx, edx
mul edi
add eax, ecx
mov ecx, 0
adc edx, ecx
add ebp, esi
mov esi, ebx
mov dword [esp + 0x30], ebp
movzx ebp, word [esp]
adc eax, ecx
adc edx, ecx
mov dword [esp + 0x34], eax
mov ecx, 0xf4240
mov dword [esp + 0x3c], edx
setb byte [esp + 0x1c]
mov eax, ebp
mov dword [esp + 0x28], ebp
mul ecx
movzx ecx, byte [esp + 8]
test ebp, ebp
mov dword [esp + 0x48], edx
mov edx, ebx
mov dword [esp + 0x4c], eax
sete al
mov ebx, dword [esp + 0x10]
mov dword [esp + 4], ecx
or edx, ecx
mov ecx, dword [esp + 0x20]
mov edi, ecx
or edi, ebx
or edi, edx
sete dl
bsr ebp, ebp
bsr edi, ebx
or dl, al
xor ebp, 0x1f
xor edi, 0x1f
mov byte [esp + 0x14], dl
mov edx, dword [esp + 4]
add ebp, 0x60
add edi, 0x20
bsr eax, edx
xor eax, 0x1f
cmp byte [esp + 8], 0
cmove eax, edi
bsr edi, ecx
bsr ebx, esi
mov ecx, 0
xor edi, 0x1f
xor ebx, 0x1f
add edi, 0x20
test esi, esi
mov esi, 0
cmovne edi, ebx
mov ebx, dword [esp + 0x10]
add edi, 0x40
or ebx, edx
mov edx, 0
cmovne edi, eax
sub ebp, edi
sbb edx, edx
sbb esi, esi
sbb ecx, ecx
push 0x7f
pop eax
cmp eax, ebp
mov ebx, 0
mov dword [esp + 0xc], ecx
mov dword [esp], ebp
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0x18]
sbb ebx, edx
mov ebx, 0
sbb ebx, esi
mov ebx, 0
sbb ebx, ecx
mov ebx, 0
setb ch
or ch, byte [esp + 0x14]
movzx ecx, byte [esp + 0x1c]
cmovne eax, ebx
cmovne edi, ebx
cmovne ebp, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], eax
mov eax, 0
cmovne ebx, eax
jne 0x46072f
mov ecx, dword [esp]
mov eax, edx
or edx, dword [esp + 0xc]
xor ecx, 0x7f
or ecx, esi
or edx, ecx
je 0x46072f
mov edx, dword [esp + 0x20]
mov ecx, esi
mov esi, eax
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 4]
and dword [esp + 0xd8], 0
and dword [esp + 0xd4], 0
and dword [esp + 0xd0], 0
and dword [esp + 0xcc], 0
mov dword [esp + 0xe8], edx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp]
xor al, 0x7f
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
neg al
mov cl, ch
movsx edx, al
mov eax, esi
mov ebx, dword [esp + edx + 0xe4]
mov esi, dword [esp + edx + 0xe8]
shld esi, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 8], esi
mov ebp, dword [esp + edx + 0xe0]
mov esi, ebp
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + edx + 0xdc]
xor edx, edx
shld ebp, ebx, cl
shl ebx, cl
add dword [esp], 1
mov ecx, dword [esp + 0xc]
adc eax, edx
adc dword [esp + 0x1c], edx
adc ecx, edx
jae 0x460551
mov ecx, dword [esp + 8]
xor eax, eax
jmp 0x460713
movzx eax, word [esp]
mov cx, 0x3e8
xor edx, edx
mov esi, ebx
xor ebx, ebx
div cx
movzx ecx, ax
movzx eax, dx
xor edx, edx
imul eax, eax, 0xf4240
push eax
call fcn.004555b8
add esp, 4
cmp edi, eax
mov dword [esp + 8], ecx
mov ecx, esi
sbb esi, edx
jb 0x460b7c
xor eax, edi
xor edx, ecx
mov ebx, ecx
mov ebp, edi
or edx, eax
jne 0x46028f
mov eax, dword [esp + 8]
cmp dword [esp + 0x14], eax
jb 0x460243
jmp 0x46028f
mov edx, dword [esp + 0x20]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 4]
and dword [esp + 0xc8], 0
and dword [esp + 0xc4], 0
and dword [esp + 0xc0], 0
and dword [esp + 0xbc], 0
mov dword [esp + 0xb8], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov eax, dword [esp]
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
movzx edi, al
mov eax, ebx
mov cl, ch
mov edx, dword [esp + edi + 0xb4]
mov esi, dword [esp + edi + 0xb8]
mov ebx, dword [esp + edi + 0xac]
mov edi, dword [esp + edi + 0xb0]
mov dword [esp + 0x40], 0
mov dword [esp + 4], 0
mov ebp, edx
mov dword [esp + 0x20], edi
shr edi, cl
add edx, edx
shrd ebp, esi, cl
not cl
shl edx, cl
mov cl, ch
or edx, edi
mov edi, dword [esp + 0x20]
shr esi, cl
shrd ebx, edi, cl
mov ecx, dword [esp + 0x28]
add ecx, 0xffffffff
mov dword [esp + 0x54], ecx
mov ecx, 0
adc ecx, 0xffffffff
mov dword [esp + 0x50], ecx
mov ecx, 0
adc ecx, 0xffffffff
mov dword [esp + 0x5c], ecx
mov ecx, 0
adc ecx, 0xffffffff
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 8]
shld esi, ebp, 1
mov edi, dword [esp + 0x14]
shld ebp, edx, 1
shld edx, ebx, 1
shld ebx, ecx, 1
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x40]
shld ecx, edi, 1
or ecx, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
shld edi, ecx, 1
shld ecx, eax, 1
add eax, eax
or ecx, esi
or edi, esi
or eax, dword [esp + 4]
cmp dword [esp + 0x54], ebx
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], edi
mov edi, dword [esp]
mov dword [esp + 0x20], eax
sbb ecx, edx
mov ecx, dword [esp + 0x5c]
sbb ecx, ebp
mov ecx, dword [esp + 0x58]
sbb ecx, esi
sar ecx, 0x1f
mov eax, ecx
and ecx, dword [esp + 0x28]
and eax, 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
sub ebx, ecx
mov ecx, dword [esp + 0x18]
sbb edx, 0
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x1c]
sbb ebp, 0
sbb esi, 0
add edi, 0xffffffff
adc ecx, 0xffffffff
mov dword [esp], edi
mov dword [esp + 0x18], ecx
adc edx, 0xffffffff
adc eax, 0xffffffff
or edi, edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
or ecx, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
or edi, ecx
mov ecx, dword [esp + 8]
jne 0x46063e
mov ebx, eax
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 4]
shld ecx, esi, 1
shld esi, ebp, 1
shld ebp, ebx, 1
add ebx, ebx
or ecx, edx
or esi, edx
or ebp, edx
or ebx, eax
mov edi, ecx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebp
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov eax, esi
or eax, edi
mov eax, dword [esp + 0x30]
sete cl
or edx, ebp
or eax, ebx
or edx, eax
sete al
or al, cl
bsr ecx, edi
mov byte [esp], al
bsr eax, esi
xor ecx, 0x1f
xor eax, 0x1f
add eax, 0x20
test edi, edi
mov edi, dword [esp + 0x34]
cmovne eax, ecx
bsr ecx, ebx
bsr edx, ebp
xor ecx, 0x1f
add eax, 0x40
xor edx, 0x1f
add ecx, 0x20
test ebp, ebp
cmovne ecx, edx
bsr edx, dword [esp + 0x30]
bsr esi, edi
xor esi, 0x1f
xor edx, 0x1f
add edx, 0x20
test edi, edi
mov edi, 0
cmovne edx, esi
add edx, 0x40
or ebx, ebp
mov ebp, 0
cmovne edx, ecx
sub eax, edx
mov edx, 0
sbb edx, edx
sbb edi, edi
sbb ebp, ebp
push 0x7f
pop ecx
cmp ecx, eax
mov ecx, 0
mov ebx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], edx
sbb ecx, edx
mov ecx, 0
mov edx, 0
sbb ecx, edi
mov ecx, 0
sbb ecx, ebp
setb cl
or cl, byte [esp]
cmovne ebx, edx
cmove edx, eax
mov dword [esp], ebx
mov ebx, eax
jne 0x460aae
mov ecx, dword [esp + 0xc]
mov eax, esi
xor eax, 0x7f
or eax, edi
or ecx, ebp
or ecx, eax
je 0x460aae
mov dword [esp + 0x9c], ebx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x38]
and dword [esp + 0x98], 0
and dword [esp + 0x94], 0
and dword [esp + 0x90], 0
and dword [esp + 0x8c], 0
mov dword [esp + 0xa8], eax
mov eax, esi
xor al, 0x7f
mov dword [esp + 0x1c], esi
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
neg al
mov cl, ch
movsx eax, al
mov ebx, dword [esp + eax + 0xa4]
mov esi, dword [esp + eax + 0xa8]
shld esi, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x60], esi
mov dword [esp + 0x28], ebx
mov esi, edi
mov ebx, dword [esp + eax + 0xa0]
mov edi, dword [esp + eax + 0x9c]
mov dword [esp + 4], 0
mov eax, ebx
shr eax, 1
shr eax, cl
mov cl, ch
shld ebx, edi, cl
shl edi, cl
xor ecx, ecx
mov dword [esp], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
add ebx, 1
adc dword [esp + 0xc], ecx
adc esi, ecx
adc ebp, ecx
mov dword [esp + 0x44], esi
jae 0x4608f6
mov ebp, dword [esp]
mov dword [esp + 0x2c], 0
jmp 0x460a95
or dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x70], edx
mov ch, bl
and ch, 7
mov cl, ch
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x38]
and dword [esp + 0x88], 0
and dword [esp + 0x84], 0
and dword [esp + 0x80], 0
and dword [esp + 0x7c], 0
mov dword [esp + 0x78], eax
mov eax, ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x1c], ebx
shr al, 3
and al, 0xf
movzx ebx, al
mov eax, dword [esp + ebx + 0x74]
mov edi, dword [esp + ebx + 0x70]
mov edx, dword [esp + ebx + 0x78]
mov ebp, dword [esp + ebx + 0x6c]
mov dword [esp + 4], 0
mov dword [esp + 0x2c], 0
mov esi, eax
mov ebx, edi
add eax, eax
shrd esi, edx, cl
shr ebx, cl
not cl
shl eax, cl
mov cl, ch
or eax, ebx
shrd ebp, edi, cl
shr edx, cl
mov edi, dword [esp + 0x44]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp]
add eax, 0xffffffff
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x48]
adc eax, 0xffffffff
mov dword [esp + 0x58], eax
mov eax, 0
adc eax, 0xffffffff
mov dword [esp + 0x3c], eax
mov eax, 0
adc eax, 0xffffffff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], edi
mov dword [esp], esi
shld edx, esi, 1
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], 0
shld dword [esp], esi, 1
shld esi, edi, 1
shld edi, eax, 1
shld eax, ecx, 1
shld ecx, ebp, 1
or ecx, ebx
or eax, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
shld ebp, ecx, 1
add ecx, ecx
or ecx, dword [esp + 4]
or ebp, ebx
cmp dword [esp + 0x5c], edi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x58]
sbb ecx, esi
mov ecx, dword [esp + 0x3c]
sbb ecx, dword [esp]
mov ecx, dword [esp + 0x38]
sbb ecx, edx
sar ecx, 0x1f
mov ebx, ecx
and ebx, 1
mov dword [esp + 4], ebx
mov ebx, ecx
and ecx, dword [esp + 0x4c]
and ebx, dword [esp + 0x48]
sub edi, ecx
mov ecx, dword [esp + 0xc]
sbb esi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x54], esi
mov esi, dword [esp]
sbb esi, 0
sbb edx, 0
add ebx, 0xffffffff
mov dword [esp], edx
mov edx, dword [esp + 0x40]
adc ecx, 0xffffffff
mov dword [esp + 0x1c], ebx
adc edi, 0xffffffff
mov dword [esp + 0xc], ecx
adc edx, 0xffffffff
or ebx, edi
or ecx, edx
mov dword [esp + 0x40], edx
mov edx, dword [esp]
or ebx, ecx
jne 0x4609c5
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
shld ebp, edx, 1
add edx, edx
or ebp, dword [esp + 0x2c]
or edx, dword [esp + 4]
mov dword [esp], ebp
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov esi, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x10]
mov eax, ecx
imul ecx, dword [esp]
imul edi, edx
mul edx
add edi, edx
mov edx, dword [esp + 8]
add ecx, edi
sub esi, eax
movzx eax, byte [esp + 0x27]
mov edi, dword [esp + 0x14]
sbb ebx, ecx
add eax, dword [esp + 0x20]
adc ebp, 0
adc edi, 0
adc edx, 0
add eax, 0xffffffff
adc ebp, 0xffffffff
adc edi, 0xffffffff
adc edx, 0xffffffff
push 0x14
pop ecx
cmp eax, ecx
cmovae eax, ecx
test ebp, ebp
cmovne eax, ecx
or edx, edi
mov edi, dword [esp + 0x68]
cmovne eax, ecx
mov byte [edi + 0x12], al
push 0
push 0x3b9aca00
push ebx
push esi
call fcn.005269b0
imul ecx, eax, 0x3b9aca00
sub esi, ecx
mov ecx, eax
push esi
mov esi, dword [esp + 0x11c]
call fcn.004555b8
add esp, 4
mov ebx, dword [esp + 0x64]
sub ebx, eax
mov eax, dword [esp + 0x11c]
sbb esi, edx
jb 0x460b9b
cmp ecx, eax
jbe 0x460b60
mov edx, ebx
or edx, esi
je 0x460b9b
add ebx, 0xffffffff
adc esi, 0xffffffff
add eax, 0x3b9aca00
sub eax, ecx
mov ecx, 0x3b9aca00
xor edx, edx
div ecx
add eax, ebx
adc esi, 0
jb 0x460bad
mov bl, 1
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], edx
mov eax, ebx
add esp, 0x104
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x19
pop edx
mov ecx, str.attempt_to_divide_by_zeroC:Usersdanya.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
push 0x584750
call fcn.005360b0
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__value
push 0x584760
call fcn.005360b0
lea ecx, [esp + 0xec]
mov edx, 0x58d54c
mov dword [ecx], str.overflow_in_Duration::new
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x5b8dd0
and dword [ecx + 0xc], 0
call fcn.00535f60