Function at 0x14003f500
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov r13, rdx
mov rdi, rcx
cmp qword [0x1400e1690], 0
je 0x14003ff59
cmp qword [rcx + 0x358], 0
je 0x14003ff7f
xor r14d, r14d
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x28], r14
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r14
add rcx, 0x378
call fcn.140052ae4
test eax, eax
jne 0x14003ffa5
mov eax, dword [rdi + 0x3c4]
cmp eax, 0x7fffffff
je 0x14003ffb0
mov rbx, qword [rdi + 0x3c8]
test rbx, rbx
je 0x14003fed5
rdtsc
shl rdx, 0x20
or rax, rdx
mov qword [rdi + 0x3e0], rax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rdi + 0x3c8]
test rcx, rcx
je 0x14003f5b2
mov qword [rdi + 0x3c8], r14
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x88]
test eax, eax
jne 0x14003ff33
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x68]
cmp eax, 1
jne 0x140040081
mov rax, qword [rbx]
mov qword [rbp - 0x38], r14
mov dword [rbp - 0x10], 0xb04b7248
mov dword [rbp - 0xc], 0x4321b6f0
mov dword [rbp - 8], 0xa4ba91b6
mov dword [rbp - 4], 0xcb9f0f74
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x10]
mov rcx, rbx
call qword [rax + 0x10]
mov ecx, eax
call fcn.1400419e0
mov esi, eax
test eax, eax
js 0x14003fe70
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14004005b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SetErrorInfo]
mov r15, rax
test rax, rax
je 0x140040035
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rcx]
call qword [rdx + 0xc0]
mov r14, rax
lea rcx, [rax - 1]
mov eax, 0xfffffffe
cmp rcx, rax
ja 0x14004000f
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rcx]
call qword [rdx + 0xa0]
mov r12, rax
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rcx]
call qword [rdx + 0xb0]
mov qword [rbp - 0x10], rax
lea r8, [rbp - 0x28]
lea rdx, str.HevcOutputDataType
mov rcx, qword [rbp - 0x38]
call fcn.14002de70
mov ecx, eax
call fcn.1400419e0
mov esi, eax
test eax, eax
js 0x14003fe04
lea r8, [rbp + 0x50]
lea rdx, str.HevcOutputBufferType
mov rcx, qword [rbp - 0x38]
call fcn.14002de70
mov ecx, eax
call fcn.1400419e0
mov esi, eax
test eax, eax
js 0x14003fd98
lea r8, [rbp - 0x20]
lea rdx, str.DteStreamNum
mov rcx, qword [rbp - 0x38]
call fcn.14002de70
mov ecx, eax
call fcn.1400419e0
mov esi, eax
test eax, eax
js 0x14003fd2c
lea r8, [rbp - 0x18]
lea rdx, str.DteFrameNum
mov rcx, qword [rbp - 0x38]
call fcn.14002de70
mov ecx, eax
call fcn.1400419e0
mov esi, eax
test eax, eax
js 0x14003fcc0
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003f72b
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rdx, [rbp - 0x40]
mov ecx, r14d
call qword [sym.imp.MFPlat.DLL_MFCreateMemoryBuffer]
mov esi, eax
test eax, eax
js 0x14003fc54
xor eax, eax
mov qword [rbp - 0x30], rax
mov dword [rbp + 0x50], eax
mov dword [rbp + 0x58], eax
mov rcx, qword [rbp - 0x40]
mov rax, qword [rcx]
lea r9, [rbp + 0x58]
lea r8, [rbp + 0x50]
lea rdx, [rbp - 0x30]
call qword [rax + 0x18]
mov esi, eax
test eax, eax
js 0x14003fbe8
mov eax, dword [rbp + 0x50]
cmp rax, r14
jne 0x14003ffe9
cmp dword [rbp + 0x58], 0
jne 0x14003ffc3
mov r8, r14
mov rdx, r15
mov rcx, qword [rbp - 0x30]
call fcn.140082f10
mov rcx, qword [rbp - 0x40]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov esi, eax
test eax, eax
js 0x14003fb7c
mov rcx, qword [rbp - 0x40]
mov rax, qword [rcx]
mov edx, r14d
call qword [rax + 0x30]
mov esi, eax
test eax, eax
js 0x14003fb10
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003f7ce
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
lea rcx, [r13 + 8]
call qword [sym.imp.MFPlat.DLL_MFCreateSample]
mov esi, eax
test eax, eax
jns 0x14003f839
mov dword [rsp + 0x20], 0x167
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.::MFCreateSample__dataBuffer.pSample__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003f832
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x40]
call qword [rax + 0x150]
mov esi, eax
test eax, eax
jns 0x14003f895
mov dword [rsp + 0x20], 0x168
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.dataBuffer.pSample__AddBuffer__outBuffer.Get____
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003f88e
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x120]
mov esi, eax
test eax, eax
jns 0x14003f8f0
mov dword [rsp + 0x20], 0x169
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.dataBuffer.pSample__SetSampleTime__bitstreamTimestamp__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003f8e9
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x10]
call qword [rax + 0x130]
mov esi, eax
test eax, eax
jns 0x14003f94c
mov dword [rsp + 0x20], 0x16a
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.dataBuffer.pSample__SetSampleDuration__bitstreamDuration__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003f945
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
cmp qword [rbp - 0x28], 0
jne 0x14003f9b8
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
mov r8d, 1
lea rdx, [0x140087830]
call qword [rax + 0xa8]
mov esi, eax
test eax, eax
jns 0x14003f9b8
mov dword [rsp + 0x20], 0x16c
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.dataBuffer.pSample__SetUINT32__MFSampleExtension_CleanPoint__TRUE__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003f9b1
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov r8, qword [rbp - 0x20]
mov r14d, 0xfffffffe
cmp r8, r14
ja 0x14003fa26
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
lea rdx, [0x1400b1810]
call qword [rax + 0xa8]
mov esi, eax
test eax, eax
jns 0x14003fa26
mov dword [rsp + 0x20], 0x16f
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.dataBuffer.pSample__SetUINT32__DTE_GUID_STREAMNUM__UINT32__bitstreamStreamNum____
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fa1f
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov r8, qword [rbp - 0x18]
cmp r8, r14
ja 0x14003fa8e
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
lea rdx, [0x1400b1858]
call qword [rax + 0xa8]
mov ebx, eax
test eax, eax
jns 0x14003fa8e
mov dword [rsp + 0x20], 0x172
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.dataBuffer.pSample__SetUINT32__DTE_GUID_FRAMENUM__UINT32__bitstreamFrameNum____
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fa87
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, ebx
jmp 0x14003ff1b
rdtsc
shl rdx, 0x20
or rax, rdx
mov qword [rdi + 0x3e8], rax
mov rcx, rdi
call fcn.140046630
mov ebx, eax
test eax, eax
jns 0x14003faf1
mov dword [rsp + 0x20], 0x186
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, eax
lea rdx, str.signalNeedInput__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003faea
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, ebx
jmp 0x14003ff1b
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fb09
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
xor eax, eax
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x151
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.outBuffer__SetCurrentLength__DWORD__bitstreamSize____
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fb46
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fb75
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x150
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.outBuffer__Unlock__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fbb2
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fbe1
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x14c
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.outBuffer__Lock__outPtr__outPtrMaxLen__outPtrCurLen__
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fc1e
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fc4d
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x149
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.::MFCreateMemoryBuffer__DWORD__bitstreamSize____outBuffer.ReleaseAndGetAddressOf____
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fc8a
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fcb9
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x145
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.::dte::amd::ToHresult_amfBuffer__GetProperty__DTE_STR_FRAMENUM__bitstreamFrameNum___
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fcf6
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fd25
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x144
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.::dte::amd::ToHresult_amfBuffer__GetProperty__DTE_STR_STREAMNUM__bitstreamStreamNum___
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fd62
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fd91
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x143
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.::dte::amd::ToHresult_amfBuffer__GetProperty__L_HevcOutputBufferType___bitstreamBufferType___
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fdce
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fdfd
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x142
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.::dte::amd::ToHresult_amfBuffer__GetProperty__L_HevcOutputDataType___bitstreamDataType___
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fe3a
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fe69
mov qword [rbp - 0x40], 0
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov dword [rsp + 0x20], 0x138
lea r9, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
mov r8d, esi
lea rdx, str.::dte::amd::ToHresult_amfData__QueryInterface__amfBuffer__IID_____void_amfBuffer___
lea rcx, str._s____0x_08X___s__d_
call fcn.140011520
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14003fea6
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003fed1
mov qword [rbp - 0x40], r14
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x14003ff1b
mov r9d, 0x12d
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.m_output
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
lea rcx, [rdi + 0x378]
call fcn.140052aec
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14003ff16
mov qword [rbp - 0x40], r14
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, 0xc00d6d72
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r9d, 0x135
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.amfData__GetDataType____amf::AMF_DATA_BUFFER
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x122
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.Amf.isLoaded___
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x123
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.m_encoder
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov ecx, 5
call fcn.140052320
int3
dec eax
mov dword [rdi + 0x3c4], eax
mov ecx, 6
call fcn.140052320
int3
mov r9d, 0x14e
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.outPtrCurLen__0
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x14d
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.outPtrMaxLen__bitstreamSize
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x13f
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.0___bitstreamSize__bitstreamSize___UINT32_MAX
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x13d
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.nullptr___bitstreamPtr
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x139
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.nullptr___amfBuffer.GetPtr__
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3
mov r9d, 0x136
lea r8, str.dte::mfcodec::EncoderAmdHevc::onOutputRequested
lea rdx, str.amfData__GetMemoryType____amf::AMF_MEMORY_HOST
lea rcx, str.ASSERTION_FAILED:__s___s__d_
call fcn.140011520
call fcn.14005e1c0
int3