Function at 0x40d640
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x554e0e
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x63d20c]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x30], ebx
call fcn.0040d320
test al, al
jne 0x40d6ac
push 0x57b1d0
call dword [sym.imp.QtCore4.dll_void___cdecl_qDebug_char_const__]
or eax, 0xffffffff
add esp, 4
or edx, eax
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [esp + 0x18]
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::VideoFrame::constructor_void_]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push eax
lea esi, [ebx + 8]
push ecx
mov ecx, esi
mov dword [esp + 0x108], 0
mov dword [esp + 0x3c], 0x64
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::seek_long_long___int64__]
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_int___thiscall_QtAV::AVDemuxer::videoStream_void_const]
lea ecx, [esp + 0x54]
mov dword [esp + 0x40], eax
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::Packet::constructor_void_]
or edi, 0xffffffff
mov ecx, esi
mov byte [esp + 0x100], 1
mov dword [esp + 0x24], edi
mov byte [esp + 0x17], 1
mov byte [esp + 0x16], 1
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::atEnd_void_const]
test al, al
jne 0x40d81c
jmp 0x40d720
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::readFrame_void_]
test al, al
je 0x40d806
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_int___thiscall_QtAV::AVDemuxer::stream_void_const]
cmp eax, dword [esp + 0x40]
jne 0x40d806
lea edx, [esp + 0x94]
push edx
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::Packet___thiscall_QtAV::AVDemuxer::packet_void_]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x104], 2
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::Packet____thiscall_QtAV::Packet::operator_class_QtAV::Packet_const__]
lea ecx, [esp + 0x94]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::Packet::destructor_void_]
fld qword [esp + 0x5c]
test edi, edi
jg 0x40d79e
jl 0x40d78b
cmp dword [esp + 0x24], 0
jae 0x40d79e
fld qword [0x57b1c8]
fmul st(1)
call fcn.00551dd6
mov dword [esp + 0x24], eax
mov edi, edx
fmul qword [0x57b1c0]
call fcn.00551dd6
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
neg ecx
adc ebx, 0
neg ebx
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x50], ebx
js 0x40d7e1
jg 0x40d7c7
cmp ecx, 0x64
jbe 0x40d7e1
cmp byte [esp + 0x16], 0
je 0x40d7dc
push str.read_packet_out_of_range
call dword [sym.imp.QtCore4.dll_void___cdecl_qDebug_char_const__]
add esp, 4
mov byte [esp + 0x16], 0
cmp byte [esp + 0x54], 0
jne 0x40d818
cmp byte [esp + 0x17], 0
je 0x40d7fd
push str.Not_seek_to_key_frame___
call dword [sym.imp.QtCore4.dll_void___cdecl_qWarning_char_const__]
add esp, 4
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x17], 0
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::atEnd_void_const]
test al, al
je 0x40d720
jmp 0x40d81c
mov ebx, dword [esp + 0x30]
fld qword [esp + 0x5c]
fmul qword [0x57b1c8]
call fcn.00551dd6
test edi, edi
jl 0x40d8e7
jg 0x40d840
cmp dword [esp + 0x24], 0
jb 0x40d8e7
mov ecx, eax
sub ecx, dword [esp + 0x24]
mov esi, edx
sbb esi, edi
mov dword [esp + 0x50], esi
js 0x40d8e7
jg 0x40d85e
test ecx, ecx
jbe 0x40d8e7
sub eax, dword [ebp + 8]
mov dword [esp + 0x24], 0x64
sbb edx, dword [ebp + 0xc]
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
test edx, edx
jg 0x40d88d
jl 0x40d887
cmp eax, 0x64
jae 0x40d88d
lea eax, [esp + 0x24]
jmp 0x40d891
lea eax, [esp + 0x34]
mov edi, dword [eax]
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x38], edi
call dword [sym.imp.QtCore4.dll_class_QDebug___cdecl_qDebug_void_]
add esp, 4
push str.enlarge_range_____
mov ecx, eax
mov byte [esp + 0x104], 3
call dword [sym.imp.QtCore4.dll_public:_class_QDebug____thiscall_QDebug::operator___char_const__]
mov esi, eax
mov ecx, dword [esi]
push edi
call dword [sym.imp.QtCore4.dll_public:_class_QTextStream____thiscall_QTextStream::operator___int_]
mov ecx, dword [esi]
cmp byte [ecx + 0x14], 0
je 0x40d8d5
push 0x20
call dword [sym.imp.QtCore4.dll_public:_class_QTextStream____thiscall_QTextStream::operator___char_]
lea ecx, [esp + 0x20]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QDebug::destructor_void_]
cmp byte [esp + 0x55], 0
jne 0x40dacc
mov ecx, dword [esp + 0x58]
cmp dword [ecx + 8], 0
je 0x40dacc
fldz
fcom qword [esp + 0x5c]
fnstsw ax
test ah, 0x41
jp 0x40daca
fcomp qword [esp + 0x64]
fnstsw ax
test ah, 0x41
jp 0x40dacc
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [ebx + 0x14]
push 0x63d258
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::AVDecoder::setOptions_class_QHash_class_QString__class_QVariant__const__]
xor edi, edi
lea ebx, [ebx]
mov esi, dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::VideoFrame::isValid_void_const]
lea ecx, [esp + 0x18]
call esi
test al, al
jne 0x40d99d
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x40]
lea eax, [esp + 0x54]
push eax
call edx
test al, al
je 0x40d997
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
lea edx, [esp + 0x44]
push edx
call eax
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x104], 4
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::VideoFrame____thiscall_QtAV::VideoFrame::operator_class_QtAV::VideoFrame_const__]
lea ecx, [esp + 0x44]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
inc edi
cmp edi, 2
jl 0x40d940
lea ecx, [esp + 0x18]
call dword [sym.imp.QtAV1.dll_public:_double___thiscall_QtAV::Frame::timestamp_void_const]
fmul qword [0x57b1c0]
call fcn.00551dd6
mov edi, dword [ebp + 8]
neg edi
sub edi, eax
mov eax, edi
jns 0x40d9bf
neg eax
cmp eax, dword [esp + 0x34]
jg 0x40db26
lea ecx, [esp + 0x18]
call esi
test al, al
je 0x40db26
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::VideoFormat___thiscall_QtAV::VideoFrame::format_void_]
push eax
lea edx, [esp + 0x38]
mov bl, 5
push edx
mov byte [esp + 0x108], bl
call dword [sym.imp.QtCore4.dll_class_QDebug___cdecl_qDebug_void_]
add esp, 4
mov esi, eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x104], 6
call dword [sym.imp.QtAV1.dll_public:_double___thiscall_QtAV::Frame::timestamp_void_const]
fstp qword [esp + 0x48]
push str.VideoFrameExtractor:_key_frame_found__
mov ecx, esi
call dword [sym.imp.QtCore4.dll_public:_class_QDebug____thiscall_QDebug::operator___char_const__]
fld qword [esp + 0x48]
mov esi, eax
mov ecx, dword [esi]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.QtCore4.dll_public:_class_QTextStream____thiscall_QTextStream::operator___double_]
mov ecx, dword [esi]
cmp byte [ecx + 0x14], 0
je 0x40da47
push 0x20
call dword [sym.imp.QtCore4.dll_public:_class_QTextStream____thiscall_QTextStream::operator___char_]
push str._diff
mov ecx, esi
call dword [sym.imp.QtCore4.dll_public:_class_QDebug____thiscall_QDebug::operator___char_const__]
mov esi, eax
mov ecx, dword [esi]
push edi
call dword [sym.imp.QtCore4.dll_public:_class_QTextStream____thiscall_QTextStream::operator___int_]
mov ecx, dword [esi]
cmp byte [ecx + 0x14], 0
je 0x40da6f
push 0x20
call dword [sym.imp.QtCore4.dll_public:_class_QTextStream____thiscall_QTextStream::operator___char_]
push str.._format:
mov ecx, esi
call dword [sym.imp.QtCore4.dll_public:_class_QDebug____thiscall_QDebug::operator___char_const__]
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [ecx], eax
inc dword [eax + 0xc]
lea eax, [esp + 0x48]
mov dword [esp + 0x28], esp
push eax
call dword [sym.imp.QtAV1.dll_class_QDebug___cdecl_QtAV::operator___class_QDebug__class_QtAV::VideoFormat_const__]
add esp, 0xc
lea ecx, [esp + 0x40]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QDebug::destructor_void_]
lea ecx, [esp + 0x34]
mov byte [esp + 0x100], bl
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QDebug::destructor_void_]
lea ecx, [esp + 0x30]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::VideoFormat::destructor_void_]
jmp 0x40dd6f
fstp st(0)
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push edx
push eax
push str.FrameReader_failed_to_get_a_packet_at__lld
call dword [sym.imp.QtCore4.dll_void___cdecl_qWarning_char_const__]
add esp, 0xc
lea ecx, [esp + 0x54]
mov byte [esp + 0x100], 0
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::Packet::destructor_void_]
lea ecx, [esp + 0x18]
mov dword [esp + 0x100], 0xffffffff
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
or eax, 0xffffffff
or edx, eax
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea esi, [ebx + 8]
mov ecx, esi
mov dword [esp + 0x20], 0x63d258
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::atEnd_void_const]
test al, al
jne 0x40dd6c
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::readFrame_void_]
test al, al
je 0x40dd59
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_int___thiscall_QtAV::AVDemuxer::stream_void_const]
cmp eax, dword [esp + 0x40]
jne 0x40dd59
lea ecx, [esp + 0x94]
push ecx
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::Packet___thiscall_QtAV::AVDemuxer::packet_void_]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x104], 7
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::Packet____thiscall_QtAV::Packet::operator_class_QtAV::Packet_const__]
lea ecx, [esp + 0x94]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::Packet::destructor_void_]
fld qword [esp + 0x5c]
cmp byte [esp + 0x55], 0
fst qword [esp + 0x4c]
jne 0x40dc09
mov edx, dword [esp + 0x58]
cmp dword [edx + 8], 0
je 0x40dc09
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x40dc07
fcomp qword [esp + 0x64]
fnstsw ax
test ah, 0x41
jp 0x40dc09
fmul qword [0x57b1c0]
call fcn.00551dd6
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
neg esi
mov ecx, edi
adc ecx, 0
neg ecx
sub esi, eax
sbb ecx, edx
cmp dword [ebx + 0x50], 0
mov edx, dword [esp + 0x20]
je 0x40dc1e
test ecx, ecx
jg 0x40dc1e
jl 0x40dbfc
test esi, esi
jae 0x40dc1e
mov eax, 0x63d254
mov dword [esp + 0x20], eax
jmp 0x40dc2a
fstp st(1)
push str.invalid_packet._no_decode
fstp st(0)
call dword [sym.imp.QtCore4.dll_void___cdecl_qWarning_char_const__]
add esp, 4
jmp 0x40dd59
mov dword [esp + 0x20], 0x63d258
mov eax, dword [esp + 0x20]
cmp eax, edx
je 0x40dc38
mov ecx, dword [ebx + 0x14]
push eax
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::AVDecoder::setOptions_class_QHash_class_QString__class_QVariant__const__]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
lea edx, [esp + 0x54]
push edx
call eax
test al, al
je 0x40ddcb
mov ecx, dword [ebx + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x4c]
lea eax, [esp + 0x24]
push eax
call edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 9
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::VideoFrame::isValid_void_const]
test al, al
jne 0x40dc8b
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
jmp 0x40dd59
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::VideoFrame____thiscall_QtAV::VideoFrame::operator_class_QtAV::VideoFrame_const__]
lea ecx, [esp + 0x18]
call dword [sym.imp.QtAV1.dll_public:_double___thiscall_QtAV::Frame::timestamp_void_const]
fst qword [esp + 0x44]
fmul qword [0x57b1c8]
call fcn.00551dd6
cmp edx, edi
jg 0x40dcd5
jl 0x40dcbe
cmp eax, dword [ebp + 8]
jae 0x40dcd5
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
jmp 0x40dd59
sub eax, dword [ebp + 8]
lea ecx, [esp + 0x84]
sbb edx, edi
mov edi, eax
mov eax, dword [esp + 0x34]
mov ebx, edx
cdq
push ecx
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], eax
mov esi, edx
call fcn.0040c2d0
add esp, 4
cmp edx, esi
jl 0x40de4a
jg 0x40dd21
cmp eax, dword [esp + 0x8c]
jbe 0x40de4a
cmp ebx, esi
jl 0x40dd43
jg 0x40dd30
cmp edi, dword [esp + 0x8c]
jbe 0x40dd43
fld qword [esp + 0x44]
fcomp qword [esp + 0x4c]
fnstsw ax
test ah, 5
jnp 0x40de7f
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
mov ebx, dword [esp + 0x30]
lea esi, [ebx + 8]
mov ecx, esi
call dword [sym.imp.QtAV1.dll_public:_bool___thiscall_QtAV::AVDemuxer::atEnd_void_const]
test al, al
je 0x40db41
inc dword [ebx + 0x50]
lea ecx, [esp + 0x18]
call dword [sym.imp.QtAV1.dll_public:_double___thiscall_QtAV::Frame::timestamp_void_const]
fmul qword [0x57b1c8]
call fcn.00551dd6
lea ecx, [esp + 0x54]
mov edi, edx
mov esi, eax
mov byte [esp + 0x100], 0
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::Packet::destructor_void_]
lea ecx, [esp + 0x18]
mov dword [esp + 0x100], 0xffffffff
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
mov edx, edi
mov eax, esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str._________decode_failed____
call dword [sym.imp.QtCore4.dll_void___cdecl_qWarning_char_const__]
add esp, 4
lea ecx, [esp + 0x4c]
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::VideoFrame::constructor_void_]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x104], 8
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::VideoFrame____thiscall_QtAV::VideoFrame::operator_class_QtAV::VideoFrame_const__]
mov esi, dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x100], 1
call esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x100], 0
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::Packet::destructor_void_]
lea ecx, [esp + 0x18]
mov dword [esp + 0x100], 0xffffffff
call esi
or eax, 0xffffffff
or edx, eax
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
fld qword [esp + 0x44]
push ebx
push edi
sub esp, 8
fstp qword [esp]
push str.got_frame_at__fs__diff_lld
call dword [sym.imp.QtCore4.dll_void___cdecl_qDebug_char_const__]
add esp, 0x14
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 1
call dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
mov ebx, dword [esp + 0x30]
jmp 0x40dd6c
mov edx, dword [esp + 0x34]
push edx
push ebx
push edi
push str.out_pts_out_of_range._diff_lld__range_d
call dword [sym.imp.QtCore4.dll_void___cdecl_qWarning_char_const__]
add esp, 0x10
lea ecx, [esp + 0x44]
call dword [sym.imp.QtAV1.dll_public:_void___thiscall_QtAV::VideoFrame::constructor_void_]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x104], 0xa
call dword [sym.imp.QtAV1.dll_public:_class_QtAV::VideoFrame____thiscall_QtAV::VideoFrame::operator_class_QtAV::VideoFrame_const__]
mov esi, dword [sym.imp.QtAV1.dll_public_virtual:_void___thiscall_QtAV::VideoFrame::destructor_void_]
lea ecx, [esp + 0x44]
mov byte [esp + 0x100], 9
call esi
lea ecx, [esp + 0x24]
jmp 0x40de00