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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
cmp dword [0x1040e4ec], 0
push edi
mov edi, ecx
mov dword [ebp - 8], edi
jne 0x100595d9
xor eax, eax
jmp 0x100595ec
lea eax, [ebp - 0x18]
push eax
push 5
push str.CVideoPlayerManager::ThreadFunc
call fcn.1007e9a0
add esp, 0xc
mov ecx, 0x1040e4e8
mov dword [ebp - 0x18], eax
call fcn.10079ac0
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x10059608
call fcn.1007ea70
mov dword [ebp - 0x10], eax
push ebx
push esi
lea eax, [edi + 0x20]
lock inc dword [eax]
mov bl, byte [ebp + 8]
test bl, bl
je 0x1005961d
lea eax, [edi + 0x24]
lock inc dword [eax]
lea eax, [edi + 0x30]
or esi, 0xffffffff
mov dword [ebp - 0x28], eax
lea eax, [edi + 0x28]
mov dword [ebp - 4], esi
mov dword [ebp - 0x2c], eax
nop
cmp dword [0x1040e4ec], 0
jne 0x1005963d
xor eax, eax
jmp 0x10059650
lea eax, [ebp - 0xc]
push eax
push 1
push str.CVideoPlayerManager::ThreadFunc____Sleep
call fcn.1007e9a0
add esp, 0xc
mov dword [ebp - 0xc], eax
lea eax, [edi + 0x20]
lock dec dword [eax]
or eax, 0xffffffff
test bl, bl
cmovne eax, esi
push eax
movzx eax, bl
xor eax, 1
add eax, 5
lea ecx, [edi + eax*8]
call fcn.1007a4a0
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x10059683
push eax
call fcn.1007e960
add esp, 4
lea eax, [edi + 0x20]
lock inc dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x1005969c
push str.VideoPlayer_Decoder_Thread
mov ecx, eax
call fcn.1007d290
cmp dword [edi + 0x18], 0
jne 0x1005998e
test bl, bl
jne 0x100596b0
lea eax, [edi + 0x24]
lock inc dword [eax]
cmp dword [edi + 0x24], 1
lea eax, [edi + 0x24]
mov dword [ebp - 0x24], eax
je 0x100596d8
push str.m_cNextThreads__1
push 0x14c
push str.c:_buildslave_steam_rel_client_win32_build_srccommon_video_videoplayermanager.cpp
call fcn.10078380
add esp, 0xc
test al, al
jne 0x100596d8
int3
cmp dword [edi + 0x1c], 0
mov bl, 1
mov byte [ebp + 8], bl
jne 0x10059630
call sub.libavutil_56.dll_av_gettime
lea esi, [edi + 0x68]
mov dword [ebp - 0x1c], eax
push esi
mov dword [ebp - 0x20], edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0x64]
test ecx, ecx
jle 0x100597f9
mov eax, dword [edi + 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jne 0x1005972d
push str.IsValidIndex_elem_
push 0x527
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1utlvector.h
call fcn.10078380
add esp, 0xc
test al, al
jne 0x1005972d
int3
mov edx, dword [edi + 0x64]
test edx, edx
jle 0x1005974d
lea eax, [edx - 1]
test eax, eax
je 0x10059747
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx + edx*4 - 4]
mov dword [ecx], eax
mov edx, dword [edi + 0x64]
lea eax, [edx - 1]
mov dword [edi + 0x64], eax
mov ecx, dword [edi + 0x48]
xor ebx, ebx
test ecx, ecx
jle 0x100597f6
mov eax, dword [edi + 0x3c]
mov edx, dword [ebp - 0x14]
cmp dword [eax], edx
je 0x10059771
inc ebx
add eax, 4
cmp ebx, ecx
jl 0x10059760
jmp 0x100597f6
add edi, 0x38
cmp ebx, dword [edi + 0x10]
jb 0x100597b3
push str.m_heap.IsValidIndex_index_
push 0x79
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1utlpriorityqueue.h
call fcn.10078380
add esp, 0xc
test al, al
jne 0x10059792
int3
cmp ebx, dword [edi + 0x10]
jb 0x100597b3
push str.IsValidIndex_elem_
push 0x527
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1utlvector.h
call fcn.10078380
add esp, 0xc
test al, al
jne 0x100597b3
int3
mov edx, dword [edi + 0x10]
test edx, edx
jle 0x100597d4
lea eax, [edx - 1]
cmp ebx, eax
je 0x100597ce
mov ecx, dword [edi + 4]
mov eax, dword [ecx + edx*4 - 4]
mov dword [ecx + ebx*4], eax
mov edx, dword [edi + 0x10]
lea eax, [edx - 1]
mov dword [edi + 0x10], eax
push ebx
mov ecx, edi
call fcn.100590f0
cmp eax, ebx
jne 0x100597e8
push eax
mov ecx, edi
call fcn.100591a0
mov ebx, dword [ebp - 0x14]
test ebx, ebx
jne 0x100598ca
mov edi, dword [ebp - 8]
mov bl, byte [ebp + 8]
cmp dword [edi + 0x48], 0
jne 0x10059815
push esi
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or esi, 0xffffffff
jmp 0x10059630
mov eax, dword [edi + 0x3c]
mov ebx, dword [eax]
cmp dword [ebx + 0x7c], 0
jg 0x10059844
jl 0x10059828
cmp dword [ebx + 0x78], 0
jae 0x10059844
push str.pPlayer__GetNextRunFrameUS_____0
push 0x174
push str.c:_buildslave_steam_rel_client_win32_build_srccommon_video_videoplayermanager.cpp
call fcn.10078380
add esp, 0xc
test al, al
jne 0x10059844
int3
mov eax, dword [ebx + 0x78]
sub eax, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0x7c]
sbb ecx, dword [ebp - 0x20]
js 0x1005987c
jg 0x10059858
test eax, eax
je 0x1005987c
push 0
push 0x3e8
push ecx
push eax
call fcn.100ffdb0
inc eax
push esi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov bl, byte [ebp + 8]
mov esi, dword [ebp - 4]
jmp 0x10059630
add edi, 0x38
cmp dword [edi + 0x10], 0
ja 0x100598a1
push str.IsValidIndex_elem_
push 0x527
push str.c:_buildslave_steam_rel_client_win32_build_srcpublic_tier1utlvector.h
call fcn.10078380
add esp, 0xc
test al, al
jne 0x100598a1
int3
mov edx, dword [edi + 0x10]
test edx, edx
jle 0x100598c1
lea eax, [edx - 1]
test eax, eax
je 0x100598bb
mov ecx, dword [edi + 4]
mov eax, dword [ecx + edx*4 - 4]
mov dword [ecx], eax
mov edx, dword [edi + 0x10]
lea eax, [edx - 1]
mov dword [edi + 0x10], eax
push 0
mov ecx, edi
call fcn.100590f0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
jne 0x100598f1
push str.pPlayer
push 0x182
push str.c:_buildslave_steam_rel_client_win32_build_srccommon_video_videoplayermanager.cpp
call fcn.10078380
add esp, 0xc
test al, al
jne 0x100598f1
int3
mov eax, dword [ebp - 0x24]
mov byte [ebp + 8], 0
lock dec dword [eax]
mov ecx, dword [ebp - 0x28]
call fcn.10079d80
mov ecx, ebx
call fcn.10054ad0
test al, al
je 0x10059979
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [edi + 0x10]
mov ecx, edi
mov dword [ebp - 0x14], eax
call fcn.1004cce0
mov ecx, dword [ebp - 0x14]
inc ecx
cmp ecx, eax
jle 0x10059944
mov ecx, edi
call fcn.1004cce0
mov ecx, dword [edi + 0x10]
sub ecx, eax
inc ecx
push ecx
mov ecx, edi
call fcn.1006ae30
mov eax, dword [edi + 0x10]
jmp 0x10059947
mov eax, dword [ebp - 0x14]
inc eax
lea ecx, [eax - 1]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 4]
push ecx
mov dword [eax + ecx*4], ebx
mov ecx, edi
call fcn.100591a0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x2c]
call fcn.10079d80
mov edi, dword [ebp - 8]
mov bl, byte [ebp + 8]
mov esi, dword [ebp - 4]
jmp 0x10059630
mov ecx, ebx
call fcn.10056ec0
mov edi, dword [ebp - 8]
mov bl, byte [ebp + 8]
mov esi, dword [ebp - 4]
jmp 0x10059630
lea ecx, [edi + 0x30]
call fcn.10079d80
pop esi
test bl, bl
pop ebx
je 0x100599a2
lea eax, [edi + 0x24]
lock dec dword [eax]
lea eax, [edi + 0x20]
lock dec dword [eax]
mov eax, dword [ebp - 0x18]
pop edi
test eax, eax
je 0x100599b9
push eax
call fcn.1007e960
add esp, 4
mov esp, ebp
pop ebp
ret 4