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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x10]
mov ecx, esi
call fcn.10023360
mov dword [ebp - 0x10], esi
mov eax, dword [esi + 4]
test eax, eax
je 0x10023113
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + 0x3c]
mov edx, dword [eax + 0x2c]
mov eax, dword [edx + 0x1c]
cmp ecx, dword [eax + 0x3c]
je 0x100230b4
mov ecx, esi
push 1
call fcn.10022c20
add esp, 4
test eax, eax
jns 0x100230b4
push str.Failed_to_update_user_thread._n
push 0x10
push esi
call fcn.1006fc50
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x10023113
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x10023113
mov edx, dword [eax + 0x2c]
mov ecx, dword [ecx + 0x2c]
push 0
call fcn.10022c20
add esp, 4
test eax, eax
jns 0x10023113
push str.Final_thread_update_failed_n
push 0x10
push dword [ebp + 8]
call fcn.1006fc50
add esp, 0xc
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x1c]
mov dword [ecx], eax
mov eax, dword [edx]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x1c]
mov dword [eax], 1
cmp dword [ebp + 0xc], 0
jle 0x10023303
xor edi, edi
mov eax, dword [ebp + 0xc]
jmp 0x10023158
mov ecx, ebx
call fcn.100234c0
lea eax, [esi + edi]
add eax, 0x78
push eax
call sym.ffmpeg.dll_av_frame_free
add esp, 4
add edi, 0xb8
mov eax, dword [ebp - 0x14]
add eax, 0xffffffff
je 0x100231dd
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
lea ebx, [esi + edi]
add ebx, 0x24
push ebx
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov dword [esi + edi + 0xa4], 1
lea eax, [esi + edi]
add eax, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_WakeConditionVariable]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [esi + edi + 0x14], 0
je 0x100231ad
mov ebx, dword [esi + edi + 4]
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
jne 0x100231ad
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ebx, [esi + edi]
mov dword [esi + edi + 0x14], 0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x10023130
mov ecx, dword [esi + edi + 0x2c]
test ecx, ecx
je 0x10023130
push ecx
call eax
add esp, 4
jmp 0x10023130
cmp dword [ebp + 0xc], 0
jle 0x10023303
xor ecx, ecx
jmp 0x10023208
push esi
call fcn.100709e0
add esp, 4
mov ecx, dword [ebp - 0x20]
add ecx, 1
cmp ecx, dword [ebp + 0xc]
je 0x10023303
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
mov dword [ebp - 0x20], ecx
imul edi, ecx, 0xb8
lea eax, [esi + edi]
add eax, 0x30
push eax
call sym.ffmpeg.dll_av_packet_unref
add esp, 4
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], edi
cmp dword [esi + edi + 0x90], 0
jle 0x10023268
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
lea esi, [eax + ecx]
add esi, 0x90
xor ebx, ebx
xor edi, edi
nop dword [eax + eax]
mov eax, dword [esi - 8]
add eax, ebx
push eax
call sym.ffmpeg.dll_av_frame_free
add esp, 4
add edi, 1
add ebx, 4
cmp edi, dword [esi]
jl 0x10023250
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
lea eax, [edi + ebx]
add eax, 0x88
push eax
call fcn.100709e0
add esp, 4
lea esi, [edi + ebx]
add esi, 0x2c
mov eax, dword [edi + ebx + 0x2c]
test eax, eax
je 0x100231f0
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x2c], 0
je 0x100232a7
push dword [eax + 0x18]
call fcn.10073040
add esp, 4
mov eax, dword [esi]
add eax, 0x18
push eax
call fcn.100709e0
add esp, 4
mov eax, dword [esi]
mov ecx, 0xb8
add eax, ecx
push eax
call fcn.100709e0
add esp, 4
mov eax, dword [esi]
test eax, eax
je 0x100231f0
mov eax, dword [eax + 0x1c]
add eax, 0xc
push eax
call fcn.100683c0
add esp, 4
mov eax, dword [esi]
add eax, 0x1c
push eax
call fcn.100709e0
add esp, 4
mov eax, dword [esi]
mov ecx, 0x35c
add eax, ecx
push eax
call fcn.100683c0
add esp, 4
jmp 0x100231f0
push dword [ebp - 0x10]
call fcn.100709e0
add esp, 4
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x1c]
add eax, 0x10
push eax
call fcn.100709e0
mov edx, esi
add esp, 4
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10023342
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x10023342
cmp dword [ecx + 0x2c], 0
je 0x10023342
push eax
call fcn.10073040
mov edx, dword [ebp + 8]
add esp, 4
mov dword [edx + 0xc], 0
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret